FFT: Compute a Forward Fast-Fourier Transform

FFT generates the 1D or 2D direct fourier transform of a real image. If the keyword ONEDIM is specified, an independent 1D direct fourier transform will be generated for each row of the source image. For one-row images (spectra) ONEDIM is the default.

The FFT basic routine works on data arrays whose size is an integer power of two. If the number of columns of the original image is not an integer power of two, the data is padded with zeros to the next power of two before transforming. In the case of 2D transforms, also the rows will be zero-padded to the next integer power of two.

No filtering of any kind (like the popular cosine-bell) is applied before transforming (the user can create its own filters). It is up to the user to manipulate the data before the FFT.

The output image is a complex image, that is to say that the real and imaginary parts of each fourier frequency are stored in consecutive columns. The number of columns in the transform (output image) is one more than the power of two closest, but larger or equal, to the number of columns in the original image. In the case of a 2D transform, the number of rows is the a power of two closer, but larger equal, to the number of rows in the original image. This image size accommodates all of the independent fourier frequencies to reconstruct the original image.

BE AWARE that most VISTA commands treat complex images as real images (except for commands FFT IFFT POWERS CMPLX CABS CMUL CDIV CONJ), some operations on the transform-image can make it loose its meaning as "a fourier transform of a real image" (things like rotations, column flips, and boxing are particular dangerous). VISTA provides basic complex arithmetic (CMUL, CDIV, CABS, etc) that can be safely used in fourier images. If you want to make extensive manipulations of fourier transforms, it may be safe to separate first the real and imaginary parts (with VISTA commands REAL and IMAG), and perform identical operation on both parts before recombining them again into a complex image (See command CMPLX).

Convolution and deconvolution in fourier space can be perform with the help of complex arithmetic commands CMUL and CDIV. Estimations of the power spectrum from fourier images can be made with command POWERS or by squaring the modulus of the transform (command CABS).