Skip to main content

Physics V course sequence · Interactive lesson

Fourier series, Fourier transforms, and conjugate variables

Fourier analysis is the spectral theorem applied to a single operator. This topic builds the exponential eigenbasis on an interval, watches its discrete spectrum close into a continuum as L → ∞, checks that the transform is unitary, and ends at a keyboard: what numpy.fft.fft really expands, and why aliasing and leakage belong to the basis rather than to the signal.

UPV-01.08 · Lesson 8 of 9 in this unit. Position is not a completion score.
Starting model: Fourier series, Fourier transforms, and conjugate variablesA Gaussian packet and its Fourier transform drawn as the densities |f(x)|² and |f̃(k)|² on conjugate axes. Each horizontal bar spans one rms width either side of its centre: Δx = 0.80 nm against Δk = 0.63 nm⁻¹, product 0.500 at every setting. Both curves enclose the same area — Plancherel's theorem, drawn.|f(x)|² position density|f̃(k)|² transform densityΔx⋅Δk = 0.500 — pinned at the Gaussian boundx / nmk / nm⁻¹00
Start with a picture. Change the model in the lab below.
1

Build the model

One change of basis diagonalises everything that commutes with translation.

The key idea

A Fourier expansion writes a function as amplitudes along the eigenfunctions of −i d/dx — a discrete sum of e(ikₙx) on a finite interval, a δ-normalised integral over e(ikx) on the line — and the map between f(x) and f̃(k) is a unitary change of basis on L².

Example. On a ring of circumference L = 1.0 μm the allowed wavenumbers step by Δk = 2π/L = 6.3 rad μm⁻¹; stretch to L = 10 μm and the step drops to 0.63 rad μm⁻¹ — the L → ∞ route that turns the series into the transform.

The complete physical model and assumptions

The complex exponentials are not one basis among many: e(ikx) solves −i e′ = k e, so they are the eigenfunctions of the derivative, and writing a function in them turns every constant-coefficient differential operator into multiplication by a function of k. On a finite interval with periodic boundary conditions, −i d/dx is self-adjoint and its spectrum is discrete, kₙ = 2πn/L; the normalised e(ikₙx)/√L form a countable orthonormal basis of L², and a Fourier series is nothing but expansion on that eigenbasis, cₙ = ⟨eₙ|f⟩, exactly as for any Hermitian matrix. Let L → ∞ and the mode spacing 2π/L closes up: the sum becomes an integral, the coefficient list becomes a function f̃(k), and orthonormality survives only in the distributional form ⟨k|k′⟩ = δ(k − k′) — the price of a continuous spectrum is basis elements that no longer live in the space. What survives intact is unitarity: Plancherel's theorem says the transform preserves every inner product, so f and f̃ are the same vector written in two bases, and norm — later, total probability — is representation-independent. The machinery also delivers a hard theorem about widths: a function and its transform cannot both be narrow, Δx Δk ≥ 1/2, with equality only for Gaussians. That inequality is pure analysis; quantum mechanics will buy it wholesale by setting p = ħk.

1The boundary condition picks the basis

On [0, L] the operator −i d/dx is only symmetric once the boundary term f*g at the ends vanishes, and periodic boundary conditions f(0) = f(L) are one choice that makes it genuinely self-adjoint — each twisted condition f(L) = e(iθ) f(0) is another, and shifts every eigenvalue by θ/L. Its eigenvalue problem −i e′ = k e has solutions e(ikx) for every real k, but the boundary condition keeps only kₙ = 2πn/L: the discreteness of a Fourier series is not a property of the exponentials, it is the boundary condition thinning a continuum. Orthonormality is a two-line check — ⟨eₘ|eₙ⟩ = (1/L)∫₀ᴸ e(i(kₙ−kₘ)x) dx integrates a whole number of turns to zero unless m = n — and completeness is the spectral theorem's promise for this operator. Expansion is then the standard move of topic 1.4: each coefficient is a projection, cₙ = ⟨eₙ|f⟩, and the discrete spectrum is why this eigenbasis is countable, as the separability of L² requires.

2Coefficient decay is smoothness, read before computing

The coefficient list is more than a representation; its decay rate is a diagnosis. Integrate cₙ = ⟨eₙ|f⟩ by parts once and the boundary terms cancel by periodicity, leaving the coefficients of f′ equal to ikₙcₙ: every derivative the function owns in L² buys one extra power of 1/n of decay. A unit square wave, with a jump, has odd-harmonic sine amplitudes 4/(πn) and nothing else, so |cₙ| falls only as 1/n: the series converges pointwise but not uniformly, and a partial sum overshoots each jump by about 9 per cent of its height however many terms are kept — Gibbs's overshoot narrows with N but never shrinks. A C∞ periodic function's coefficients fall faster than any power of 1/n. So before computing anything you can say how many terms a truncation needs, and afterwards you can read a measured spectrum's slope as the smoothness of the thing that produced it.

3Stretch the interval and the spectrum closes up

Let the interval grow. The allowed wavenumbers kₙ = 2πn/L pack together with spacing Δk = 2π/L, so a sum over n is (L/2π) Σ Δk — primed to become an integral. The coefficients themselves shrink like 1/√L, so define f̃(kₙ) = √(L/2π) cₙ = (1/√(2π)) ∫ e(−ikₙx) f(x) dx over the interval, which stays finite; as L → ∞ the series pair turns into the symmetric transform pair, with (1/√(2π)) e(ikx) playing the basis role. But the basis has paid a price: ∫|e(ikx)|² dx diverges, so no plane wave is a vector in L². What replaces ⟨eₘ|eₙ⟩ = δₘₙ is the distributional statement (1/2π)∫e(i(k−k′)x) dx = δ(k − k′): continuum basis elements are normalised to a δ, labels for a continuous spectrum rather than members of the space. The genuine vectors are wave packets — integrals of e(ikx) against a square-integrable f̃(k) — and this is exactly the status |p⟩ and |x⟩ will hold from Unit 3 onwards.

4The transform is unitary, and it diagonalises translation

Plancherel's theorem upgrades the transform from an integral formula to a unitary operator: ⟨f|g⟩ = ⟨f̃|g̃⟩ for every pair, so in particular ∫|f|² dx = ∫|f̃|² dk. Nothing about the vector changed — only the basis it is written in, the same insert-a-resolution-of-the-identity move as topic 1.5, executed with the |k⟩ family. Unitarity is what the transform buys operationally. Differentiation becomes multiplication: −i d/dx acting on f appears as k f̃(k), and d²/dx² as −k² f̃(k), so any constant-coefficient differential equation collapses to algebra in the k basis — the transform diagonalising every operator that commutes with translation. Numerically it is why one free-particle Schrödinger step is an FFT, a multiplication by e(−iħk²t/2m), and an inverse FFT.

5Conjugate widths: the bound comes with the transform

Define the widths honestly: Δx is the rms spread of |f|² about its mean, Δk the same for |f̃|². Cauchy–Schwarz — the inequality of topic 1.3 — applied to the pair xf and f′ gives Δx Δk ≥ 1/2, with equality exactly when f′ ∝ xf, i.e. for Gaussians, which transform into Gaussians with widths σ and 1/(2σ). The theorem owns every transform pair, not only quantum ones: a Gaussian light pulse of rms duration Δt = 10 ns has bandwidth Δω ≥ 1/(2 × 10⁻⁸ s) = 5 × 10⁷ rad s⁻¹, about 8 MHz, and laser physicists call the equality case transform-limited. Nothing here was measured and no ħ appeared. Unit 3 will multiply k by ħ and call the result momentum; the inequality comes along unchanged, and the quantum content is that matter is described by an amplitude at all.

6What the FFT actually diagonalises

numpy.fft.fft does not compute the transform of your function; it diagonalises the cyclic shift on N samples, which is the Fourier series of a surrogate that repeats with period NΔx. Its k grid has spacing Δk = 2π/(NΔx) and stops at the Nyquist value π/Δx. Two artefacts follow from the basis, not the signal. Aliasing: on the sample grid e(ikx) and e(i(k−2π/Δx)x) agree at every sample, so a component above Nyquist lands folded — 900 Hz sampled at 1000 samples per second is indistinguishable from 100 Hz, and since the two are identical at the sampler no later processing can separate them; anti-alias filters therefore act in hardware, before digitisation. Leakage: a frequency that does not complete a whole number of cycles in the window is orthogonal to no grid exponential, so its energy smears into sinc-shaped sidelobes across the bins; windows such as Hann trade sidelobe height for main-lobe width. Reading an FFT is reading a projection onto a basis you chose.

2

Key equations

Read the units, assumptions and limits before substituting.

Exponential eigenbasis on an interval

eₙ(x) = e(ikₙx)/√L, kₙ = 2πn/L, n ∈ ℤ

The eigenfunctions of −i d/dx under the boundary condition that makes it self-adjoint — a Fourier series is the spectral theorem applied to one operator.

periodic boundary conditions on a length-L interval; kₙ in rad m⁻¹, L in m

Series coefficients are projections

f = Σ cₙeₙ, cₙ = ⟨eₙ|f⟩ = (1/√L) ∫₀ᴸ e(−ikₙx) f(x) dx

One inner product per coefficient, exactly as on a Hermitian matrix's eigenbasis — no simultaneous equations, orthonormality does all the work.

cₙ carries the unit of f times m^½; Parseval: Σ|cₙ|² = ⟨f|f⟩

Transform pair, symmetric convention

f̃(k) = (1/√(2π)) ∫ f(x) e(−ikx) dx, f(x) = (1/√(2π)) ∫ f̃(k) e(ikx) dk

One square-integrable function of k replaces the coefficient list; scaled by ħ this becomes Unit 3's position–momentum change of basis.

the L → ∞ limit of the series: √(L/2π) cₙ → f̃(kₙ) as the spacing 2π/L → 0

Δ-function orthonormality

(1/2π) ∫ e(i(k−k′)x) dx = δ(k − k′)

The continuum's substitute for ⟨eₘ|eₙ⟩ = δₘₙ: a plane wave indexes the spectrum without belonging to the space, and only wave packets built from plane waves are states.

a distribution, not a function — e(ikx) has infinite norm and is no member of L²

Plancherel's theorem

∫ |f(x)|² dx = ∫ |f̃(k)|² dk, ⟨f|g⟩ = ⟨f̃|g̃⟩

Unitarity is what lets a density be read in either representation: the transform moves coordinates, never lengths or angles between vectors.

the transform preserves every inner product; if f carries unit U, both sides carry U² m

Conjugate width bound

Δx · Δk ≥ 1/2, equality only for the Gaussian

A theorem about any transform pair — radar pulses obey it too. No ħ, no measurement, no quantum mechanics is involved yet.

Δ is the rms width of the squared modulus; substituting p = ħk gives Δx Δp ≥ ħ/2
3

Interactive lab

Predict first. Explore the model. Compare the result.

Explore the model

0.8 nm
0.4 to 2 nm; steps of 0.1.
0.0 nm
−1.5 to 1.5 nm; steps of 0.1.
0.0 nm⁻¹
−2 to 2 nm⁻¹; steps of 0.1.

Try this. Squeeze Δx from 2.0 down to 0.4 nm and watch the position peak shoot up while the spectrum flattens and spreads, the product readout never leaving 0.500 — then drag x₀, which moves the packet but leaves the spectrum untouched (a pure phase), and k₀, which does exactly the reverse.

Live results

Δx RMS WIDTH
0.80 nm
Δk RMS WIDTH
0.63 nm⁻¹
PRODUCT Δx⋅Δk
0.500
SPECTRUM CENTRE ⟨k⟩
0.0 nm⁻¹

Results follow this lesson’s model and assumptions. Displayed values are rounded.

Interactive Physics V modelA Gaussian packet and its Fourier transform drawn as the densities |f(x)|² and |f̃(k)|² on conjugate axes. Each horizontal bar spans one rms width either side of its centre: Δx = 0.80 nm against Δk = 0.63 nm⁻¹, product 0.500 at every setting. Both curves enclose the same area — Plancherel's theorem, drawn.|f(x)|² position density|f̃(k)|² transform densityΔx⋅Δk = 0.500 — pinned at the Gaussian boundx / nmk / nm⁻¹00
A Gaussian packet and its Fourier transform drawn as the densities |f(x)|² and |f̃(k)|² on conjugate axes. Each horizontal bar spans one rms width either side of its centre: Δx = 0.80 nm against Δk = 0.63 nm⁻¹, product 0.500 at every setting. Both curves enclose the same area — Plancherel's theorem, drawn.

Predict → change one variable → check

Plan a change before running it. Every other input stays at the saved baseline.

Saved baseline. Packet rms width Δx: 0.8 nm; Packet centre x₀: 0.0 nm; Carrier wavenumber k₀: 0.0 nm⁻¹

Baseline 0.8; choose 0.4 to 2, in steps of 0.1.
4. Compared with the saved baseline, this result will…

This experiment is kept only while this page is open. It does not change saved course progress.

4

Catch the common trap

Treating the array numpy.fft.fft returns as "the spectrum of the signal" is the standing error. The DFT is the exact expansion of a different object — your function sampled at N points and wrapped onto a circle of length NΔx — and every disagreement between that surrogate and the original shows up as structure in the output. A 1300 Hz line sampled at 1000 samples per second lands on the 300 Hz bin, bit-for-bit identical to a genuine 300 Hz line, because the two agreed at every sample the converter ever took. A 60.5 Hz line in a one-second window fits no bin and leaks across all of them. Neither the folded peak nor the sidelobes are properties of the signal: both belong to the basis you projected onto, and they move when Δx or the window length changes.

5

Practice & worked examples

3 authored examples. Make an attempt, then reveal the reasoning one step at a time.

EasyExample 1

On the interval [−L/2, L/2] with periodic boundary conditions and basis eₙ(x) = e(i2πnx/L)/√L, expand f(x) = A cos(2πx/L) with A = 3.0 and L = 2.0, and verify Parseval's identity.

Sketch your answer or reasoning, then compare it with the authored solution. Your writing is not automatically graded or saved.

0 of 4 steps revealed.

MediumExample 2

A normalised Gaussian wave packet has position density |f(x)|² of rms width σ = 0.50 nm. Find the rms width Δk of its transform, show the packet saturates the conjugate-width bound, and — anticipating p = ħk — state the momentum spread this will imply.

Sketch your answer or reasoning, then compare it with the authored solution. Your writing is not automatically graded or saved.

0 of 4 steps revealed.

HardExample 3

A normalised top-hat f(x) = 1/√a for |x| < a/2 and zero elsewhere, with a = 2.0 μm. Find f̃(k), locate its first zeros, and show that the rms width Δk diverges — then say what a jump discontinuity costs in bandwidth.

Sketch your answer or reasoning, then compare it with the authored solution. Your writing is not automatically graded or saved.

0 of 5 steps revealed.

6

Quick check

Select an answer and explain it before checking.

A real signal containing a 620 Hz component is sampled at 1000 samples per second for 1.0 s and handed to numpy.fft.fft. At what frequency does that component's peak appear in the magnitude spectrum?
7

Review & continue

A Fourier expansion writes a function as amplitudes along the eigenfunctions of −i d/dx — a discrete sum of e(ikₙx) on a finite interval, a δ-normalised integral over e(ikx) on the line — and the map between f(x) and f̃(k) is a unitary change of basis on L².

  • Explain the relationship without looking at the equation.
  • Check a sign, a unit and a model assumption in your working.
  • Return to the lab or worked example if a step is still unclear.

Extra challenging questions

Connect several ideas, explore supplied data, and compare your reasoning with a worked solution.