protected unsafe override void ProcessFilter(ComplexSignal sourceData, ComplexSignal destinationData)
{
int length = sourceData.Length;
Complex* src = (Complex*)sourceData.Data.ToPointer();
Complex* dst = (Complex*)destinationData.Data.ToPointer();
for (int i = 0; i < length - 1; i++, src++, dst++)
{
double re = src[i + 1].Real - src[i].Real;
// Retain only if difference is positive
*dst = (re > 0) ? new Complex(re, 0) : Complex.Zero;
}
}