Summary: Fast Fourier transform (FFT) algorithms efficiently compute the discrete Fourier transform (DFT). There are different types of FFT algorithms for different DFT lengths; lengths equal to a power of two are the simplest and by far the most commonly used. The prime-factor algorithm yields fast algorithms for some other lengths, and along with the chirp z-transform and Rader's conversion allow fast algorithms for DFTs of any length.
Note: Your browser may not currently support MathML. See our browser support page for additional details. You can always view the correct math in the PDF version.
A fast Fourier transform,
or FFT, is not a new transform,
but is a computationally efficient algorithm for the computing
the DFT.
The length-
It is now known that C.F. Gauss invented an FFT in 1805 or so to assist the computation of planetary orbits via discrete Fourier series. Various FFT algorithms were independently invented over the next two centuries, but FFTs achieved widespread awareness and impact only with the Cooley and Tukey algorithm published in 1965, which came at a time of increasing use of digital computers and when the vast range of applications of numerical Fourier techniques was becoming apparent. Cooley and Tukey's algorithm spawned a surge of research in FFTs and was also partly responsible for the emergence of Digital Signal Processing (DSP) as a distinct, recognized discipline. Since then, many different algorithms have been rediscovered or developed, and efficient FFTs now exist for all DFT lengths.
The main strategy behind most FFT algorithms is to factor a
length-
The other major class of algorithms is the Prime-Factor Algorithms (PFA). In PFAs, the short-length DFTs must be of relatively prime lengths. These algorithms gain efficiency by reuse of intermediate computations and by eliminating twiddle-factor multiplies, but require more operations than the power-of-two algorithms to compute the short DFTs of various prime lengths. In the end, the computational costs of the prime-factor and the power-of-two algorithms are comparable for similar lengths, as illustrated in Choosing the Best FFT Algorithm. Prime-length DFTs cannot be factored into shorter DFTs, but in different ways both Rader's conversion and the chirp z-transform convert prime-length DFTs into convolutions of other lengths that can be computed efficiently using FFTs via fast convolution.
Some applications require only a few DFT frequency samples, in which case Goertzel's algorithm halves the number of computations relative to the DFT sum. Other applications involve successive DFTs of overlapped blocks of samples, for which the running FFT can be more efficient than separate FFTs of each block.