Fast Fourier Transform (FFT)

Fast Fourier Transform (FFT) converts a time domain signal to frequency domain or vice-versa. It is commonly used in instruments like ICR’s and some ion traps to intepret a signal electrically induced on a detection plate (like in SIMION Example: electrostatic_induction).

There are many ways you might compute an FFT within SIMION. You could export the data to a text file and perform the FFT in another program like Matlab/Octave. You could use some Lua library like scimark.lua. You could compile some C implementation as a Lua DLL for used from Lua (basic approach described in SIMION Example: extension/gsl).

Another option is harminv, which is not an FFT but achieves a similar purpose (harmonic inversion), which as their web site says “can provide much better accuracy than straightforwardly extracting FFT peaks, essentially because it assumes a specific form for the signal.” For your convenience, you can download a precompiled harminv.exe binary separately from SIMION 8.1 “Check for Updates” (“simion-harminv-*.zip”). It includes a Lua wrapper to invoke it.

See Data Record periodically, with constant size time steps, possibly for FFT for how to acquire data with fixed periods, suitable for FFT analysis.

See Also