fast Fourier transform
- Related Topics:
- algorithm
- Fourier transform
What is the primary advantage of the fast Fourier transform?
What are some applications of fast Fourier transforms?
How does the fast Fourier transform simplify the computation of a discrete Fourier transform?
What are the two categories of fast Fourier transforms?
fast Fourier transform (FFT), an algorithm for calculating the discrete Fourier transform (DFT), which reduces the number of computations needed for an N-point transform from N2 to N log2(N). FFTs have applications in electrical engineering, digital signal processing, neural networks, and radio interferometry.
FFTs were first conceptualized by mathematician Carl Friedrich Gauss in 1805, but his notes on the topic were published after his death, and only in the 1970s did historians realize that he had described an FFT. The first published work on the FFT as a means to calculate the DFT was by James W. Cooley and John W. Tukey in 1965.
Background
A Fourier transform breaks down a signal in the time domain (that is, a signal that changes with time) into its constituent frequencies. It thus represents the signal in the frequency domain, giving the phase and amplitude of each frequency component in the original signal.
The Fourier transform of a signal function f(x) is calculated as,
where i is the square root of −1, ω is the frequency of the signal, and e−iωx = cos(ωx) − sin(ωx). The Fourier transform of a function f(x) is written as F(ω). This transform is also called the continuous Fourier transform, because it applies to continuous signals.
When a signal is discrete and periodic, the discrete Fourier transform (DFT) can be applied instead. This simplifies the integral transform to a summation transform, as below for a signal an:
A DFT is computationally intensive. To calculate the DFT of the signal an over the domain N, each of its values is multiplied by e raised to a function of n, and then the results are summed. This would require N multiplications times N additions, for a total of N2 operations.
When the number of operations is small, the computation runs quickly, but for a large number of operations the computation can take decades. If N is 109, then 1018 operations are needed. At 1 nanosecond per operation, the computation would take 31.7 years.
Concept
The FFT reduces the computation time of a DFT from N2 operations to N log2(N) operations. For the example above, the FFT would need only 29.9 seconds of computation.
The FFT simplifies the computation by using symmetries in the calculation of the transform. By dividing the summation into smaller sequences, it performs calculations in parallel, significantly reducing the number of computations needed. In its simplest form, called the 2-point DFT, the series is split into odd and even sequences, and the transform is calculated on each in parallel before the results are combined, bringing down the calculation time by a factor of 2 (the combination step takes up negligible computational time as compared with the transforms). Extending this approach, the series can be split further and further, reducing it to groups of two and applying the DFT to each pair. The FFT is fastest when N is a power of 2, allowing for a symmetrical split of sequences for calculation. If N is not a power of 2, the FFT can be run by using a set of points corresponding to the prime factors of N, which is slightly slower.
FFTs fall into two categories: decimation in time, wherein the input elements are first rearranged in bit-reversed order before calculating the output transform, and decimation in frequency, wherein the transform precedes the rearrangement of output values.
Applications
The FFT has applications in precision arithmetic, such as calculating an irrational number to 100 decimal places and multiplying high-degree polynomials, because it helps bring down computation time.
FFTs are extensively used in signal processing, in which they extract information from modulated radio frequency signals. In radar systems, FFTs enable accurate tracking and target detection through faster pulse compression and improved range resolution. FFTs allow for improved wireless data transmission speeds by converting signal data into subcarriers that are orthogonal in the frequency domain, reducing interference. FFTs are also used in signal filtering, noise analysis, and evaluation of antennas. FFT processors are popular components in the very-large-scale integration (VLSI) design of semiconductor chips.
Arrays of radio telescopes use interferometry to gather astronomical data. Each interferometer pair measures one “Fourier component” of the brightness distribution of the radio source. The laborious computational task of doing Fourier transforms to identify frequency components and obtain images from the interferometer data is accomplished with high-speed computers and the FFT.
FFTs have also been used in machine learning as well as improving the computational efficiency of neural networks, which find application in such tasks as image classification, image restoration, and object detection.