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.