Accord.Audio.Windows.WindowBase.Apply C# (CSharp) Method

Apply() public method

Splits a signal using the window.
public Apply ( ComplexSignal complexSignal, int sampleIndex ) : ComplexSignal
complexSignal ComplexSignal
sampleIndex int
return ComplexSignal
        public virtual unsafe ComplexSignal Apply(ComplexSignal complexSignal, int sampleIndex)
        {
            Complex[,] resultData = new Complex[Length, complexSignal.Channels];
            ComplexSignal result = ComplexSignal.FromArray(resultData, complexSignal.SampleRate);

            int channels = result.Channels;
            int minLength = System.Math.Min(complexSignal.Length - sampleIndex, Length);

            for (int c = 0; c < complexSignal.Channels; c++)
            {
                Complex* dst = (Complex*)result.Data.ToPointer() + c;
                Complex* src = (Complex*)complexSignal.Data.ToPointer() + c + channels * sampleIndex;

                for (int i = 0; i < minLength; i++, dst += channels, src += channels)
                {
                    *dst = window[i] * (*src);
                }
            }

            return result;
        }

Same methods

WindowBase::Apply ( Signal signal, int sampleIndex ) : Signal
WindowBase::Apply ( double signal, int sampleIndex ) : double[]
WindowBase::Apply ( double signal, int sampleIndex ) : double[][]