Intuition The ONE core idea
Any wiggle-in-time can be rebuilt by stacking pure spinning waves of different speeds, and the FFT is the machine that tells you exactly how much of each speed is inside your wiggle . Everything below is just the vocabulary you need before that sentence means something — a sample, a frequency, a spinning arrow, a sum.
This page assumes you have seen nothing . We will meet every symbol the parent NumPy FFT — np.fft module uses — x n , N , k , ∑ , e − 2 π ik n / N , f s , Δ t — and earn each one with a picture before it is ever used in a formula.
Definition Sample and the symbol
x n
When a microphone (or sensor, or camera pixel) records the world, it does not store a smooth curve. It takes a quick measurement, waits a tiny moment, measures again, and so on. Each measurement is called a sample . We write the samples as
x 0 , x 1 , x 2 , … , x N − 1 .
The little number below the x is the index n — it just says "which sample, counting from zero." So x 0 is the first, x 3 is the fourth.
Picture it. Look at Figure 1: the smooth grey curve is the true sound; the magenta dots sitting on it are the samples. The FFT never sees the curve — only the dots.
Intuition Why start counting at zero?
Programmers (and the DFT formula) count 0 , 1 , 2 , … . If there are N samples, the last index is N − 1 , not N . This off-by-one is the single most common beginner slip — burn it in now.
Question — what does the subscript in x 5 tell you? It is the index: x 5 is the sample at position 5 (the sixth sample, since we start at 0).
N
N is simply the total number of samples you collected. In the parent's examples N was 1000 or 4 . It appears everywhere because it sets the size of everything: N samples in, N frequency answers out.
Now, the DFT formula adds up many terms. Writing x 0 + x 1 + ⋯ + x 999 by hand is madness, so mathematicians invented a shorthand.
Definition The summation symbol
∑
The big Greek "S" (sigma) means "add up a bunch of similar things."
∑ n = 0 N − 1 x n = x 0 + x 1 + x 2 + ⋯ + x N − 1 .
Read it as a recipe: "start the counter n at 0 ; write down the thing to the right (x n ); bump n up by one; repeat until n reaches N − 1 ; total everything."
If x = [ 2 , 2 , 2 , 2 ] then N = 4 and
∑ n = 0 3 x n = 2 + 2 + 2 + 2 = 8.
This is exactly why the parent's Worked Example 3 gave bin 0 the value 8 — bin 0 is nothing but this plain sum.
Question — expand ∑ n = 0 2 x n . x 0 + x 1 + x 2 .
Δ t (delta-t) — the gap between samples
Δ t is the tiny amount of time between one sample and the next , in seconds. The triangle Δ is the Greek letter "delta" and traditionally means "a small change/step." If you measure every millisecond, Δ t = 0.001 s.
f s — the sampling rate
f s is how many samples you take per second , measured in hertz (Hz) = "per second." It is just the flip of the gap:
f s = Δ t 1 .
If Δ t = 0.001 s, then f s = 1000 Hz — a thousand samples every second.
Picture it. In Figure 2 the horizontal spacing between neighbouring dots is Δ t . Cram the dots closer (smaller Δ t ) and you take more samples per second (bigger f s ).
Intuition Why the topic needs
Δ t and f s
The raw DFT only knows about sample indices 0 , 1 , 2 , … It has no idea what "one second" means. To translate a bin number back into real Hz, we must feed it the timing — that is what Δ t (and its flip f s ) supply. Without them you get bin numbers, not physics. See Sampling and Nyquist Theorem for why f s also caps the highest frequency you can ever detect.
Question — if you sample every 0.002 s, what is f s ? f s = 1/0.002 = 500 Hz.
Frequency is how many full up-and-down cycles a wave completes each second, in Hz. A low hum = few cycles/second; a high whistle = many. This is the "pitch" your ear actually hears.
Definition The frequency index
k
The DFT does not report Hz directly. It reports answers slot by slot, and k is which frequency slot (called a "bin") we are asking about: k = 0 , 1 , 2 , … , N − 1 . Bin k corresponds to a probe wave that fits exactly k whole cycles inside your recording window.
The bridge from slot k back to real Hz is the parent's key formula
f k = N k f s .
Intuition Why that formula, in words
Your whole recording lasts T = N Δ t seconds. Probe k squeezes k cycles into that time, so its frequency is "cycles ÷ seconds" = k / T = k f s / N . That's the entire derivation — read it slowly.
Question — with N = 1000 , f s = 1000 Hz, which Hz does bin k = 50 represent? f 50 = 50 ⋅ 1000/1000 = 50 Hz.
This is the scariest-looking symbol in the parent. We build it in three calm steps.
i — a 90° turn
i is a special number defined by i 2 = − 1 . The useful picture: multiplying by i rotates a point 90° counter-clockwise in a flat plane. Don't worry about "imaginary" — treat i as a quarter-turn operator . Full background: Complex Numbers and Euler's Formula .
Picture it. Figure 3 shows the unit circle: the violet arrow sits at angle θ ; its shadow on the horizontal axis is cos θ , its shadow on the vertical axis is sin θ . That is all e i θ says — "a spinning arrow, here is where it points."
Now read the exponent piece by piece:
2 π radians = one full turn around the circle.
N k n = a fraction telling you how far around you have spun. As the sample counter n runs 0 → N , this fraction runs 0 → k , i.e. the arrow makes exactly k complete turns.
The minus sign means "spin clockwise instead of counter-clockwise." (The parent explains this minus is the conjugate — the measuring version — of the forward probe.)
Intuition Why a spinning arrow is the perfect measuring stick
Each frequency you want to detect is itself a spinning-arrow wave. To ask "how much of speed-k is inside my signal?" , you spin a matching probe at speed k and see if the signal keeps pace. When speeds match, the products pile up in one direction (a big answer). When they mismatch, the products point every which way and cancel to zero — the orthogonality the parent proves. This cancel-unless-matched trick is the heart of the whole FFT.
Question — as n goes from 0 to N , how many full turns does e − 2 π ik n / N make? Exactly k full turns (clockwise).
X k — a complex answer
Each DFT answer X k is a complex number : it has a size and a direction (like the arrows above), because it records both how much of frequency k is present and what phase (timing offset) it has. Capital X (vs lower-case x ) signals "we are now in the frequency world."
∣ X k ∣ — magnitude
The bars mean length of the arrow (its magnitude). For finding how loud a frequency is, we usually care only about this length, not the direction — that's why the parent writes np.abs(X).
X k — conjugate
The bar on top means "flip the arrow's vertical part," i.e. reflect across the horizontal axis. The parent's symmetry rule X N − k = X k says the top half of a real signal's spectrum is just the mirror image of the bottom half — which is why rfft can throw it away.
Question — what does ∣ X 3 ∣ measure physically? The strength (amplitude-ish size) of frequency bin 3 in the signal.
Every box on the left is a symbol you now own; together they build the single formula the parent lives on:
X k = ∑ n = 0 N − 1 x n e − 2 π ik n / N .
Can you read x 7 out loud and say what it is? "sample number 7" — the eighth measurement (indices start at 0).
Can you expand ∑ n = 0 3 x n ? x 0 + x 1 + x 2 + x 3 .
Do you know the relation between Δ t and f s ? f s = 1/Δ t (samples per second = 1 over the gap).
Can you convert bin k to Hz? f k = k f s / N .
Do you know what e i θ pictures? A unit-length arrow at angle θ spinning on the unit circle; equals cos θ + i sin θ .
Why does multiplying by i matter geometrically? It rotates a point 90° counter-clockwise.
What does ∣ X k ∣ tell you? The size/strength of frequency bin k .
What does the total window length T = N Δ t control? The frequency resolution Δ f = 1/ T (finer with longer recordings).