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);
}
}
}