What is FFT?
A fast Fourier transform (FFT) is a highly optimized implementation of the discrete Fourier transform (DFT), which convert discrete signals from the time domain to the frequency domain. FFT computations provide information about the frequency content, phase, and other properties of the signal.
Popular FFT algorithms include the Cooley-Tukey algorithm, prime factor FFT algorithm, and Rader’s FFT algorithm. The most commonly used FFT algorithm is the Cooley-Tukey algorithm, which reduces a large DFT into smaller DFTs to increase computation speed and reduce complexity. FFT has applications in many fields.
In signal processing, FFT forms the basis of frequency domain analysis (spectral analysis) and is used for signal filtering, spectral estimation, data compression, and other applications. Variations of the FFT such as the short-time Fourier transform also allow for simultaneous analysis in time and frequency domains. These techniques can be used for a variety of signals such as audio and speech, radar, communication, and other sensor data signals. FFT is also sometimes used as an intermediate step for more complex signal processing techniques.
In image processing, FFT is used for filtering and image compression. FFT is also used in physics and mathematics to solve partial differential equations (PDEs).
FFT-Based Time Frequency Analysis
Transform Time-Frequency Signals into Frequency-Domain Analysis
Dynamic Range Compression Using Overlap-Add Reconstruction
Pitch Shifting and Time Dilation in Simulink
Radar and Communications
Frequency Agility in Radar, Communications, and EW Systems
FFT in MATLAB
MATLAB® provides many functions like fft, ifft, and fft2 with which FFT can be implemented directly. In MATLAB, FFT implementation is optimized to choose from among various FFT algorithms depending on the data size and computation. Similarly, Simulink® provides blocks for FFT that can be used in Model-Based Design and simulation. MATLAB and Simulink also support implementation of FFT on specific hardware such as FPGAs, processors including ARM, and NVIDIA GPUs, through automatic code generation.
Explore the functions and examples below to learn more about Fourier transforms and applications and implementations of FFT using MATLAB.
Run FFT Examples in MATLAB Online
Hardware Implementation of FFT
Implementing FFT on programmable logic devices is not as straightforward as software implementation. Incorrect decisions on engineering trade-offs like speed and accuracy or inefficient code can impact the quality and performance of an application. With the MATLAB and Simulink code generation tools, it is easy to implement FFT on various hardware devices, from general-purpose processors such as ARM to more specialized devices such as FPGA.
More About FFT
Learn from experts about the history and uses of FFT.
See also: MATLAB and Simulink for signal processing, MATLAB for image processing and computer vision, MATLAB and Simulink for radar systems, Signal Processing Toolbox, Audio Toolbox, Radar Toolbox