sffft3 implements a complex-to-complex Fast Fourier Transform (FFT) along an arbitrary axis.
The FFT library that Madagascar uses is
KISS FFT, created by Mark Borgerding. KISS stands for
Keep it simple, Stupid! KISS FFT may not be as fast as
FFTW but it is lightweight and easy to include in the distribution.
The
axis= parameter specifies the data axis for performing the transform. The following example from
bei/ft1/plane4 (Jon Claerbout's
Basic Earth Imaging) shows different forms of the Fourier transform applied to a 2-D dataset.
The algorithm in
KISS FFT uses a mixed-radix algorithm, which is most efficient when the input size is N=2
k 3
l 5
m. By default, the input data is padded to the next optimal size, additionally multiplied by 2. To disable this behavior, use
opt=n pad=1.
By default,
sffft3 applies no scaling in the forward transform and 1/N scaling in the inverse transform. To apply a symmetric
1/√N scaling in both cases, use
sym=y.
For a real-to-complex FFT along the first axis, use
sffft1.
For a real-to-real Cosine Fourier Transform, use
sfcosft.
To apply FFT as a linear operator, try
sffft wrapper script.
Previous programs of the month: