This interactive designer was generated by Claude (Anthropic) for the
Wireless 101 course materials. It builds the lab that
courses/dsp101/SYLLABUS.md declares at lines 293–294
(“Interactive filter designer with frequency response”) and 335
(“Compare FIR and IIR Filters”).
Nothing here is drawn to look plausible. The coefficients are designed from the real definitions in this file — windowed sinc with real window functions for FIR; a real Butterworth / Chebyshev pole set, a real pre-warped bilinear transform and a real biquad cascade for IIR. Magnitude, phase and group delay come from evaluating those coefficients with complex arithmetic. Passband ripple, transition width and stopband attenuation are measured by searching the computed response, so they are results, not the numbers you typed. The test signal is filtered by real convolution (FIR) and a real recursive difference equation (IIR), and its spectrum is a real radix‑2 FFT.
Quoted, not measured here (labelled published where it
appears): the window comparison table — peak side‑lobe, minimum
stopband attenuation and transition width — from
m7-l2.html, which follows Harris (1978); the Kaiser order
estimate M ≈ (A − 8) / (2.285 Δω)
from the same lesson; and the Butterworth minimum-order formula from
m8-l2.html. Each sits beside the measured number so you can
compare the rule of thumb with the filter you actually got.
The audio half of the lab is deferred, not dropped. The syllabus asks for “apply to audio in real time”. Audio generation and playback are parked across this repository by an owner decision, so the filter is applied to a visualised test signal instead — real filtering, shown in time and in frequency. There is no sound on this page.
Design a filter two ways at once and watch the trade-off that Modules 7 and 8 describe in words: FIR buys exactly linear phase with taps, IIR buys a sharp transition with feedback and pays for it in phase. Every readout marked measured was found by searching the computed response. Frequencies are given in Hz and, in brackets, as ω in rad/sample where ω = π is fs/2 — the normalisation the lessons use.
1