This visualiser was generated by Claude (Anthropic) as part of the Wireless 101 course materials. Every sample of the FM signal, the instantaneous-frequency deviation, the modulation index β = Δf/f_m, the Carson bandwidth 2(Δf + f_m) and the two demodulated messages under one seeded noise realisation are computed live from the formulas printed at the foot of the page — the signal is evaluated point by point, never sketched. Three kinds of number appear, each labelled where it is used: computed (the waveforms, the bandwidth, the input SNR, the recovered messages), published figure (the FM SNR-improvement factor 3β²(β+1) for tone modulation, and the ~10 dB FM threshold — both quoted from the standard theory and only where the input SNR is above threshold), and illustrative (the on-screen frequencies are a few hertz; the seeded noise draw is one of many; the demodulator is an idealised baseband model). It does not measure anything and it does not call out to a server.
FM signal: s(t) = A_c cos(2πf_c t + β sin(2πf_m t)), modulation index β = Δf/f_m, Carson bandwidth BW = 2(Δf + f_m) (Carson, 1922), and tone-modulation FM output-SNR gain over AM G = 3β²(β+1) above the FM threshold. Course source: M4-L1 / M4-L2 frequency modulation. The FM modulation index is written β; the AM index m is a different quantity.
Build an FM signal, read its modulation index β = Δf/f_m and its Carson bandwidth 2(Δf + f_m), then add noise and watch a frequency discriminator recover a clean message where an AM envelope detector gets a noisy one. Widen the deviation Δf for more noise immunity — but the bandwidth grows with it, and below the FM threshold (~10 dB input SNR) the advantage collapses. Every curve and number is read off the computed samples, never drawn by hand.
A message tone deviates the carrier frequency to make the FM signal; the signal occupies the Carson bandwidth; the channel adds noise; a frequency discriminator differentiates the phase to recover the message. Every thumbnail is computed from the same samples as the full-size panels — nothing here is an icon. Hover a block to highlight the panel and the knobs that feed it.
The blue curve is s(t) = A_c cos(2πf_c t + β sin(2πf_m t)), evaluated sample by sample — a constant-amplitude carrier whose frequency swings. The green curve is the message; where it peaks the carrier packs cycles closer (frequency high), where it dips they spread out (frequency low). The dashed purple curve is the instantaneous-frequency deviation Δf cos(2πf_m t), whose peak is exactly Δf.
One seeded noise realisation is added to both an AM and an FM signal of equal power. The AM envelope detector passes the noise straight through to the message; the FM discriminator differentiates the phase, so above threshold the noise is suppressed by the 3β²(β+1) factor and the recovered message is clean. Drop the input SNR below ~10 dB and FM breaks: phase slips cause clicks and the advantage vanishes. Press New noise draw for another realisation.