View Raw SPL
/* FFT panel */
_fftwin(ser, fwin, len, form, winc, fftshft, dc, sym, dwin)
{
local evalstr, dataser;
/* undefine old macros if they exist - runtime */
undefmacro("kaiser");
undefmacro("hamming");
undefmacro("hanning");
/* Cartesian or Polar form */
if (form)
{
func = "Fftp";
}
else
{
func = "Fft";
}
dataser = _winfunform(ser, fwin, winc, dc, sym);
if (strcmp(len, "-1") == 0)
{
evalstr = sprintf("%s(%s)", func, dataser);
}
else if (strcmp(len, "-2") == 0)
{
evalstr = sprintf("%s(%s, bestpow2(%s))", func, dataser, ser);
}
else
{
evalstr = sprintf("%s(%s, %s)", func, dataser, len);
}
if (fftshft == 0)
{
evalstr = sprintf("setwf(%s, '%s')", _dwin, evalstr);
}
else
{
evalstr = sprintf("setwf(%s, 'Fftshift(%s)')", _dwin, evalstr);
}
eval(evalstr);
}