From the ideal brick-wall filter to a practical FIR design — truncating the infinite sinc with a window function, choosing attenuation vs. transition width, and the Kaiser window's parametric control.
The perfect low-pass filter has a rectangular frequency response — gain 1 below ω_c, gain 0 above. Its impulse response is a sinc: symmetric, infinite length, non-causal. Impossible to implement directly.
Multiply the ideal sinc by a finite-length window w[n] that tapers smoothly to zero at its edges. The result is a practical FIR filter: h[n] = h_ideal[n] · w[n]. Smooth tapering trades some stopband attenuation for avoiding the Gibbs ripple caused by abrupt truncation.
- Step 1: specify cutoff ω_c, filter order M, target stopband attenuation A (dB)
- Step 2: select window based on A — Hamming for ≥53 dB, Blackman for ≥74 dB
- Step 3: compute sinc values h_ideal[n] = sin(ω_c n) / (πn) for n = −M/2…M/2
- Step 4: multiply by w[n] and shift to make the filter causal
Filter order M is inversely proportional to transition bandwidth Δf. Halving the transition width doubles the number of taps and the computation cost. Narrower transition band = longer filter.
The Kaiser window has one parameter β that continuously tunes the attenuation–bandwidth trade-off. Given a target stopband attenuation A, β and M can be computed analytically — no trial and error.
- β → 0: rectangular window (narrow transition, low attenuation)
- β = 5.6: ≈ Hamming (53 dB)
- β = 8.6: ≈ 80 dB stopband attenuation
- Implemented via modified Bessel function I₀(·)
- Preferred choice when specifications are tight or precise
- Audio EQ & mastering — linear-phase low-pass and band-pass filters
- Sample-rate converters — anti-aliasing and anti-imaging in decimation/interpolation
- SDR & 5G baseband — adjacent channel rejection filters
- EEG/ECG processing — isolating brainwave and cardiac frequency bands
- Frequency sampling method: alternative that directly specifies frequency response
- Ideal LPF = sinc impulse response — infinite & non-causal, not implementable
- Windowing truncates the sinc smoothly: h[n] = h_ideal[n] · w[n]
- Rectangular → 21 dB; Hamming → 53 dB; Blackman → 74 dB; Kaiser → adjustable
- Filter order M ∝ 1/Δf — narrower transition band = more taps
- Kaiser window computes β and M analytically from the stopband spec
- Frequency sampling is an alternative that directly specifies H at N frequencies