Cooley-Tukey FFT algorithm Created 2026-10-14 Updated 2026-10-20
The radix-two Cooley--Tukey algorithm recursively splits a discrete Fourier transform into transforms of the even-indexed and odd-indexed samples. For a power-of-two length this evaluates the transform in arithmetic operations.
The saving comes from reusing the two shorter discrete Fourier transforms for both halves of the output, through an FFT butterfly. For , each level of the even--odd fast Fourier transform recursion needs work proportional to , and there are levels. This gives the time complexity without changing the discrete Fourier transform being computed.
James W. Cooley and John W. Tukey published An Algorithm for the Machine Calculation of Complex Fourier Series in Mathematics of Computation 19 (1965), pp. 297–301. Their original paper factors a composite length as , derives an operation count , and discusses powers of two and in-place storage. Its opening explicitly builds on earlier algorithms by I. J. Good; the 1965 paper is a landmark computational formulation, rather than the invention of the underlying Fourier analysis. Its positive-exponent convention also illustrates why a Fast Fourier transform's exponent sign must be specified.[ref]
https://janmr.com/files/papers/cooley-tukey.pdf. Cooley and Tukey 1965, original paper, pp. 297–300, equations (1)–(12); scan of the published article
FFT butterfly 2026-10-14
An FFT butterfly combines corresponding outputs of two half-sized transforms using a twiddle factor . Sharing the product costs one complex multiplication and two additions. For the unnormalized positive-exponent inverse discrete Fourier transform of length , use at index .
Past exam of the mathematics course of the University of Cambridge 2001 iii Paper 57 8 Solution Created 2026-10-03 Updated 2026-10-14
For data values, define the discrete Fourier transform byDirect evaluation costs operations. For even , split the sum into even and odd indices. If and are the length- transforms of and , thenThe fact that makes the two smaller transforms reusable; gives the second output. This is the FFT butterfly. For recursively splitting until length one givesAn iterative Cooley-Tukey FFT algorithm can arrange the input in bit-reversed order and apply butterflies of lengths . The factors are the twiddle factors. Each level uses work, and in-place organization uses storage. The inverse uses the conjugate roots with the final normalization . Mixed-radix factorizations extend the same idea beyond powers of two. For a two-dimensional array, transforming rows and then columns implements the two-dimensional transform, again exploiting separability.
For a concrete Poisson application, choose in the unit square with zero Dirichlet boundary conditions. Let and use interior indices . The five-point finite difference equation isThe product sine vectors diagonalize this matrix. Their eigenvalues areDefine the two-dimensional discrete sine transform coefficients byThe sine orthogonality identity gives the inverse reconstruction. The discrete sine transform Poisson solver is thereforeAll eigenvalues are positive, so there is no division by a zero mode for Dirichlet data. Nonzero prescribed boundary values are moved to the right side at neighboring interior points before transforming.
To compute the sine transform with a Fast Fourier transform, extend a one-dimensional interior vector oddly to length : set and . Its length- Fourier coefficient is . Thus ordinary FFTs compute each sine transform. Apply this along all rows and columns, divide the coefficients, and apply inverse transforms. The total cost is operations and storage for unknowns. The method solves the finite-difference linear system directly to rounding accuracy; discretization error is separate and is second order for sufficiently smooth data and solution.
Boundary conditions determine the appropriate transform. Periodic data use the ordinary two-dimensional discrete Fourier transform and eigenvalues . The constant mode then requires zero-mean forcing, and the solution mean is fixed separately. Neumann conditions similarly use an appropriate discrete cosine transform, with a compatibility condition and an undetermined additive constant. A Fourier spectral discretization would use continuous spectral eigenvalues instead of the finite-difference eigenvalues above. The speed comes from a constant-coefficient separable operator on a regular rectangle; a general irregular domain or variable-coefficient equation is not diagonalized by this simple FFT construction.
Past exam of the mathematics course of the University of Cambridge 2010 ii Paper 2 39A 1 Solution 2026-10-14
Separate even and odd indices, using . ThenThe second identity uses . Each FFT butterfly uses one shared twiddle-factor product and two additions, so assembly costs multiplications and additions.
Past exam of the mathematics course of the University of Cambridge 2010 ii Paper 2 39A 2 Solution 2026-10-14
The radix-two Fast Fourier transform recursively splits the input into even and odd subsequences until length one, then assembles the transforms using the FFT butterfly identities. For , the recursive leaf order is the bit-reversed order . The three assembly stages have block sizes two, four and eight. In a block of size , butterfly number maps to .
Past exam of the mathematics course of the University of Cambridge 2010 ii Paper 2 39A 4 Solution 2026-10-14
For , the even and odd subsequences are both and each length-two inverse discrete Fourier transform is . Since , the FFT butterfly givesFor , the even transform is and the odd transform is . The same assembly gives
