public static ComplexSignal[] Split(this ComplexSignal signal, IWindow window, int step)
{
int n = (int)System.Math.Floor(signal.Length / (double)step);
ComplexSignal[] windows = new ComplexSignal[n];
for (int i = 0; i < n; i++)
{
windows[i] = window.Apply(signal, i * step);
}
return windows;
}