Accord.Audio.Filters.WaveRectifier.ProcessFilter C# (CSharp) Method

ProcessFilter() protected method

Applies the filter to a signal.
protected ProcessFilter ( Signal sourceData, Signal destinationData ) : void
sourceData Signal
destinationData Signal
return void
        protected unsafe override void ProcessFilter(Signal sourceData, Signal destinationData)
        {
            SampleFormat format = sourceData.SampleFormat;
            int samples = sourceData.Samples;

            if (format == SampleFormat.Format32BitIeeeFloat)
            {
                float* src = (float*)sourceData.Data.ToPointer();
                float* dst = (float*)destinationData.Data.ToPointer();

                for (int i = 0; i < samples; i++, dst++, src++)
                    *dst = System.Math.Abs(*src);
            }
            else if (format == SampleFormat.Format128BitComplex)
            {
                Complex* src = (Complex*)sourceData.Data.ToPointer();
                Complex* dst = (Complex*)destinationData.Data.ToPointer();

                for (int i = 0; i < samples; i++, dst++, src++)
                {
                    *dst = new Complex((*src).Magnitude, 0);
                }
            }
        }