Computations in FFT

Butterfly diagram, bit reversal.

Darshan N
Updated: 19 March 2026
10 min read

The Fast Fourier Transform reduces the computational burden of the Discrete Fourier Transform dramatically. Understanding how these savings arise, and how the butterfly diagram encodes them, is essential for both GATE and practical DSP implementation.

FFT Butterfly Structure (N=8, Decimation-in-Time)Stage 1Stage 2Stage 3Outputx[0]x[4]x[2]x[6]x[1]x[5]x[3]x[7]X[0]X[1]X[2]X[3]X[4]X[5]X[6]X[7]W^0W^0,2W^0..4
Figure 1: 8-point DIT-FFT butterfly flow graph. Three stages each contribute log2(8)=3 levels of computation.

Why FFT Exists: The Computation Problem

Computing an N-point DFT directly requires N complex multiplications for each output sample, and there are N output samples. The total cost is therefore N squared complex multiplications and N(N-1) complex additions. For N = 1024, this means over one million complex multiplications, which is expensive in both hardware and time.

The FFT exploits two properties of the twiddle factor W_N^k to collapse this cost significantly. The first is the periodicity property: W_N^(k+N) = W_N^k. The second is the symmetry property: W_N^(k+N/2) = -W_N^k. These two properties together mean many computations are redundant in the direct DFT, and the FFT eliminates that redundancy by recursively splitting the DFT.

Mathematical Expression

The Cooley-Tukey radix-2 algorithm splits an N-point DFT into two N/2-point DFTs. If x[n] is the input, define the even-indexed subsequence x_e[n] = x[2n] and the odd-indexed subsequence x_o[n] = x[2n+1], both of length N/2. The DFT X[k] is then expressed as:

X[k] = X_e[k] + W_N^k * X_o[k] and X[k + N/2] = X_e[k] - W_N^k * X_o[k]

This is the butterfly equation. Each butterfly involves one complex multiplication (the twiddle factor W_N^k) and two complex additions. Applying this recursion log2(N) times gives the complete FFT. Total complex multiplications become (N/2) * log2(N), which is a massive reduction from N^2.

Bit Reversal and Stage Count

The decimation-in-time FFT requires the input to be arranged in bit-reversed order before the butterfly computations begin. Bit reversal means reversing the binary representation of each index. For N=8, index 3 in binary is 011, reversed to 110 which is 6. So input x[3] moves to position 6 in the input array. This permutation is a necessary preprocessing step when implementing the DIT-FFT in-place.

The total number of stages in a radix-2 FFT is log2(N). Each stage contains N/2 butterflies. Therefore the total butterfly count is (N/2) * log2(N). Each butterfly performs exactly one complex multiplication and two complex additions. For N=8: 4 butterflies per stage, 3 stages, total 12 butterflies.

Computational Savings

The comparison between DFT and FFT complexity is a standard GATE topic. For a direct DFT, complex multiplications = N^2 and complex additions = N(N-1). For a radix-2 FFT, complex multiplications = (N/2) * log2(N) and complex additions = N * log2(N). The savings become dramatic as N grows. At N=1024, the direct DFT needs 1,048,576 multiplications while the FFT needs only 5,120.

Numerical Example

Example
Given:
N = 64 (number of DFT points)

Why this formula applies:
Radix-2 FFT reduces N^2 DFT operations to (N/2)log2(N) multiplications

Formula:
Complex multiplications (DFT) = N^2
Complex multiplications (FFT) = (N/2) * log2(N)
Number of stages = log2(N)

Substitution:
DFT: 64^2 = 4096 multiplications
FFT: (64/2) * log2(64) = 32 * 6 = 192 multiplications
Stages: log2(64) = 6
Butterflies per stage: N/2 = 32

Calculation:
Savings = 4096 / 192 = 21.3x fewer multiplications

Final Answer:
FFT requires 192 complex multiplications vs 4096 for DFT.
Speedup factor = 21.3. Total butterflies = 32 * 6 = 192.
Exam Tip: GATE frequently asks to compute the number of complex multiplications in FFT. Always use (N/2)*log2(N) for multiplications and N*log2(N) for additions. For N=8: 12 multiplications, 24 additions. Do not confuse with N^2 which is the direct DFT cost.

In-Place Computation and Memory

The butterfly operation is designed to be in-place, meaning the two output values of a butterfly overwrite the two input memory locations. This keeps memory usage at exactly N complex locations throughout all stages. In-place computation is why the radix-2 FFT is so hardware-friendly and why it maps well to fixed-size processor architectures.

Loading lab...

Quick Revision

  • Direct DFT: N^2 complex multiplications and N(N-1) additions.
  • Radix-2 FFT: (N/2)*log2(N) multiplications and N*log2(N) additions.
  • Number of stages in radix-2 FFT = log2(N). Each stage has N/2 butterflies.
  • DIT-FFT requires bit-reversal of input indices before processing.
  • Butterfly equation: X[k] = A + W*B and X[k+N/2] = A - W*B.
  • Twiddle factor symmetry: W_N^(k+N/2) = -W_N^k is the key identity.
  • FFT is in-place: output overwrites input in the same N-point memory array.

Computations in FFT Quiz

Test your knowledge on this topic!

Question 1 of 3

Q1.How many distinct stages of computation are required in a Radix-2 FFT of length N?