Fast Fourier transform (FFT)

Level AdvancedDifficulty ★★★★★Application⌖ Open in the map

What is it?

Computes the NN-point DFT in O(Nlog⁡N)O(N\log N) instead of O(N2)O(N^2) by splitting it recursively into even and odd samples (Cooley–Tukey, 1965, anticipated by Gauss). One of the most important algorithms of the 20th century.

Formulas

Xk=Ek+e−2πik/N Ok,Xk+N/2=Ek−e−2πik/N OkX_k = E_k + e^{-2\pi i k/N}\,O_k, \qquad X_{k + N/2} = E_k - e^{-2\pi i k/N}\,O_k
the butterfly: two half-size DFTs give the full one
T(N)=2T(N/2)+O(N)=O(Nlog⁡N)T(N) = 2T(N/2) + O(N) = O(N\log N)

Why does it matter?

Spectrograms, audio effects, OFDM radios, fast convolution, polynomial and big-integer multiplication, MRI — all run on FFTs.

The mathematics behind it

  • Complex numbers★★★★★fundamental

    The FFT is built on the symmetries of the NN-th roots of unity e−2πik/Ne^{-2\pi i k/N}.

  • Fourier transform★★★★★fundamental

    The FFT computes the DFT in O(Nlog⁡N)O(N\log N) instead of O(N2)O(N^2).

This page has the essentials. A fuller treatment (intuition, formal definition, worked example) is on the way.

↑ ↓ to navigate · ↵ · Esc