4.10.26 · D5Advanced Topics (Elite Level)

Question bank — Fourier analysis — DFT, FFT algorithm (Cooley-Tukey)

1,704 words8 min readBack to topic

Prerequisites this page leans on: Roots of Unity, Geometric Series, Linear Algebra — Orthogonal Bases, Divide and Conquer Algorithms, Master Theorem, Convolution Theorem, Continuous Fourier Transform, Sampling & Aliasing (Nyquist).


True or false — justify

The FFT computes a different, approximate version of the DFT
False. The FFT is an exact algorithm for the very same DFT; it only reorganizes the arithmetic. The only difference in practice is floating-point rounding, which is tiny and unrelated to the algorithm's logic.
Doubling the length roughly doubles the DFT-vs-FFT speed advantage
False. The advantage is , which grows sublinearly: because the denominator also grows, doubling gives less than double the speedup (it goes from to ).
For a real input signal, exactly half of the DFT outputs are redundant copies of the other half
True. Conjugate symmetry makes the upper half the mirror of the lower half, so the nonzero-frequency outputs pair up and only (plus the real and, for even , real ) are independent.
The DFT basis vectors form an orthonormal basis
False. They are orthogonal but not normal: each has squared norm , not . That leftover factor of is exactly why the inverse DFT needs a .
Radix-2 Cooley–Tukey works for any positive integer
False. Radix-2 requires . Arbitrary needs mixed-radix splitting or Bluestein's algorithm; libraries hide this by padding or switching methods.
The frequency index represents the highest frequency in the signal
False. Beyond the indices represent negative frequencies ( stands for ), so corresponds to — the lowest-magnitude negative frequency, essentially the slowest wiggle.
and define the same DFT
False — they define the forward and inverse conventions (a sign flip). Both are valid choices, but you must be consistent: mixing them scrambles the result.
The butterfly step computes two outputs but only needs one nontrivial multiplication
True. and (with the even/odd half-DFTs) reuse the single product ; the compounding of this reuse across levels is the whole source of the speedup.
Every entry of the DFT of a real signal is real
False. and (for even ) are real, but the others are generally complex — they encode both amplitude and phase.

Spot the error

"Since is a length- DFT, it is only defined for ; therefore is undefined." — find the flaw
The flaw is treating as undefined outside its range. (the even-sample half-DFT) is periodic with period , so ; the butterfly uses this periodicity, it does not violate any domain.
"The inner product of two distinct basis vectors is zero because each term is zero." — what is wrong
The individual terms are not zero; they are complex numbers of magnitude 1. The sum is zero because it is a geometric series with ratio satisfying , giving .
"A pure cosine at frequency 3 gives a single spike at ." — correct it
A real cosine is , so it carries and . The negative frequency sits at index (since index means frequency ), producing two spikes, not one.
"The recurrence gives because we halve the work each time." — fix the reasoning
We halve the size but there are two subproblems each level, and the combine cost recurs at every one of the levels. Summing over levels gives , not .
"Forgetting the on the inverse only rescales, so it's harmless." — why is this dangerous
It multiplies your reconstructed signal by , which is a factor of a million for . In any chained pipeline (transform, process, invert) this destroys the numbers and any comparison to the original.
"Since , we have whenever is a multiple of , so those terms drop out of ." — spot the subtle mistake
They do not "drop out" — means that term contributes to the sum, it is fully counted, not removed. A weight of 1 is not a weight of 0.

Why questions

Why must there be exactly distinct frequencies on sample points, no more?
On a discrete grid, frequency and produce identical samples because . So frequencies wrap modulo , leaving exactly distinguishable ones.
Why does orthogonality of the basis matter so much for the DFT?
It lets each coefficient be read off by a single independent projection, so no simultaneous linear system must be solved. Extraction becomes one weighted sum per coefficient.
Why does the identity unlock the FFT?
It turns each even/odd sub-sum into — literally a half-size DFT. Recognizing a sub-DFT is what makes the recursion possible.
Why does come "almost free"?
Because (using ): only a sign flips. The expensive product is computed once and reused with a minus.
Why is the speedup ratio exactly ?
The naïve DFT costs operations (each of outputs is a sum of products), while the FFT costs . Their ratio is — the run-time forms cancel one factor of , leaving the log in the denominator.
Why is the minus sign present in the forward DFT exponent?
Projecting onto a basis vector uses the conjugate inner product, and conjugating gives . The inverse, which reconstructs rather than projects, carries the plus sign.
Why does a real input force conjugate symmetry ?
Replacing by flips the sign of the exponent, and for real that is exactly complex conjugation of the whole sum. Reality of the data becomes a mirror symmetry in the spectrum.
Why can the FFT speedup be described as "compounding factors of 2"?
Each level of recursion buys a factor-of-2 saving by computing two outputs per multiply, and there are levels. The savings multiply across levels rather than add.

Edge cases

What does the DFT of a single sample () return?
Just the sample itself: . This is the recursion's base case — a length-1 "DFT" is the identity, which is where FFT recursion bottoms out.
What is always equal to, for any input?
The plain sum , since for every term. It is the DC component times the average of the signal.
For even , what is special about the middle index ?
, so — a purely alternating sum. For real input this coefficient is real; it is the Nyquist frequency (see Sampling & Aliasing (Nyquist)).
What happens to the FFT recursion if is odd (not a power of two)?
Radix-2 splitting stalls — you cannot cleanly halve. You must switch to mixed-radix, pad to the next power of two, or use Bluestein, otherwise the even/odd trick doesn't apply.
If all samples are equal ( for all ), what is the spectrum?
Only is nonzero; every other because for (that vanishing geometric series again). A constant signal is pure DC.
What is the DFT of a single impulse , all others ?
Every : the weighted sum picks out only the term, whose weight for all . A spike in time is a flat, all-frequencies spectrum — the discrete uncertainty principle in miniature.