Four-step FFT
   HOME

TheInfoList



OR:

The Bailey's FFT (also known as a 4-step FFT) is a high-performance algorithm for computing the
fast Fourier transform A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT). A Fourier transform converts a signal from its original domain (often time or space) to a representation in ...
(FFT). This variation of the
Cooley–Tukey FFT algorithm The Cooley–Tukey algorithm, named after James Cooley, J. W. Cooley and John Tukey, is the most common fast Fourier transform (FFT) algorithm. It re-expresses the discrete Fourier transform (DFT) of an arbitrary composite number, composite size ...
was originally designed for systems with hierarchical memory common in modern computers (and was the first FFT algorithm in this so called "out of core" class). The algorithm treats the samples as a two dimensional matrix (thus yet another name, a matrix FFT algorithm) and executes short FFT operations on the columns and rows of the matrix, with a correction multiplication by "
twiddle factor A twiddle factor, in fast Fourier transform (FFT) algorithms, is any of the trigonometric constant coefficients that are multiplied by the data in the course of the algorithm. This term was apparently coined by Gentleman & Sande in 1966, and has ...
s" in between. The algorithm got its name after an article by David H. Bailey, ''FFTs in external or hierarchical memory'', published in 1989. In this article Bailey credits the algorithm to W. M. Gentleman and G. Sande who published their paper, ''Fast Fourier Transforms: for fun and profit'', some twenty years earlier in 1966. The algorithm can be considered a radix-\sqrt n FFT decomposition. Here is a brief overview of how the "4-step" version of the Bailey FFT algorithm works: # The data (in natural order) is first arranged into a matrix. # Each column of a matrix is then independently processed using a standard FFT algorithm. # Each element of a matrix is multiplied by a correction coefficient. # Each row of a matrix is then independently processed using a standard FFT algorithm. The result (in natural order) is read column-by-column. Since the operations are performed column-wise and row-wise, steps 2 and 4 (and reading of the result) might include a
matrix transpose In linear algebra, the transpose of a matrix is an operator which flips a matrix over its diagonal; that is, it switches the row and column indices of the matrix by producing another matrix, often denoted by (among other notations). The tr ...
to rearrange the elements in a way convenient for processing. The algorithm resembles a 2-dimensional FFT, a 3-dimensional (and beyond) extensions are known as 5-step FFT, 6-step FFT, etc. The Bailey FFT is typically used for computing DFTs of large datasets, such as those used in scientific and engineering applications. The Bailey FFT is a very efficient algorithm, and it has been used to compute FFTs of datasets with billions of elements (when applied to the
number-theoretic transform In mathematics, the discrete Fourier transform over a ring generalizes the discrete Fourier transform (DFT), of a function whose values are commonly complex numbers, over an arbitrary ring. Definition Let be any ring, let n\geq 1 be an integer, ...
, the datasets of the order of 1012 elements were processed in mid-2000s).


See also

*
Row-column FFT algorithm A fast Fourier transform (FFT) is an algorithm that computes the discrete Fourier transform (DFT) of a sequence, or its inverse (IDFT). A Fourier transform converts a signal from its original domain (often time or space) to a representation in ...
*
Vector-radix FFT algorithm The vector-radix FFT algorithm, is a multidimensional fast Fourier transform (FFT) algorithm, which is a generalization of the ordinary Cooley–Tukey FFT algorithm that divides the transform dimensions by arbitrary radices. It breaks a multidimens ...


References


Sources

* * * * * FFT algorithms {{Signal-processing-stub