Also known as: window function, windowing, apodization, taper function
A window function is a smooth taper multiplied onto a block of samples before an FFT, forcing the block’s edges gently to zero so the transform does not treat the abrupt cut-off as a real signal feature.1 Without it, the DFT assumes the finite block repeats forever; the step discontinuity where the record wraps radiates energy across the whole spectrum — spectral leakage — burying weak signals near strong ones. A window suppresses that leakage at the cost of slightly blurring the frequencies it keeps.
How it works
The transform of a windowed block is the transform of the signal convolved with the transform of the window itself. Every window’s spectrum has two features that define the trade-off:
- Main-lobe width sets frequency resolution — how far apart two tones must be to appear as two peaks. A wider main lobe means coarser resolution.
- Side-lobe level sets dynamic range — how far a leaked skirt sits below the true peak. Lower side-lobes let a faint signal survive next to a loud neighbour.
These pull against each other: you cannot narrow the main lobe and lower the side-lobes at once for a fixed block length. Choosing a window is choosing where on that curve to sit. The rectangular (“no window”) case has the narrowest possible main lobe but side-lobes only about 13 dB down — usually unacceptable.
Variants
- Hann (raised cosine): side-lobes ~31 dB down with fast roll-off; a sensible general default for waterfalls.
- Hamming: a tuned raised cosine with the nearest side-lobe pushed to ~43 dB, but a slower far-out roll-off than Hann.
- Blackman–Harris (3- and 4-term): side-lobes down 71–92 dB for high-dynamic-range work, at the price of a noticeably wider main lobe.
- Nuttall: a Blackman-family window optimised for very low, fast-decaying side-lobes.
- Kaiser: a single parameter β continuously trades main-lobe width against side-lobe level, so it can be dialled to a spec rather than picked from a fixed list.
- Flat-top: a wide main lobe deliberately flattened so a tone’s amplitude is measured accurately even when it falls between bins — used for calibration, not resolution.
The same tapers also shape FIR filters via the window design method, where the identical resolution-versus-leakage trade governs the filter’s transition width and stop-band rejection.
Relevance to SDR
Windowing is applied to almost every FFT block a software radio takes of its I/Q data before it becomes a line in a spectrum display or waterfall. The right choice depends on the task: Hann or Hamming for general band-scanning where you want to see many signals; Blackman–Harris or Nuttall when a strong local carrier would otherwise smear over the weak signal you actually care about; flat-top when you need an accurate power reading. Welch’s method for power-spectral-density estimation windows every overlapping segment before averaging, and the choice of window sets both its bias and the effective bin bandwidth.
GopherTrunk applies windowing in its FFT-based spectral visualisation and signal-search tooling, where it improves the operator’s ability to pick control channels and weak carriers out of a busy band. The choice is a display-quality decision rather than part of the digital symbol-decode path, which relies on time-domain matched filtering instead.
Sources
-
Window function — Wikipedia, on spectral leakage, the main-lobe/side-lobe trade-off, and the common window families. ↩