AM / FM Modulation

**Amplitude modulation (AM)** impresses a **message** onto a **high-frequency carrier** by varying the **envelope** of the RF waveform: in the canonical teaching form **s(t) = [1 + m cos(ω_m t)] cos(ω_c t)**, small **m** keeps sidebands symmetric about **f_c** at **f_c ± f_m** (ideal sinusoidal message). **Frequency modulation (FM)** holds amplitude nearly fixed and encodes information in **instantaneous frequency**, modeled here as **s(t) = cos(ω_c t + β sin(ω_m t))** with **modulation index β**; the spectrum spreads into **Bessel sidebands**, and **Carson’s rule** **2(β+1)f_m** is a common bandwidth estimate. This page uses a **short fixed window** of samples and a **512-point DFT magnitude** with **log-style vertical scaling** for readability—**spectral leakage** and **finite window** effects are visible and are part of the teaching point when comparing to textbook line spectra. **Nyquist** for the internal sample rate limits how high you can set **f_c** before **aliasing** appears in the plot.

Who it's for: Introductory signals & systems, communications, or physics labs linking time-domain waveforms to frequency-domain intuition.

Key terms

  • Amplitude modulation
  • Frequency modulation
  • Carrier
  • Modulating signal
  • Sideband
  • Modulation index
  • DFT / FFT
  • Carson bandwidth rule
  • Nyquist frequency

How it works

**Amplitude modulation (AM)** scales the **carrier** by a **slowly varying envelope** (1 + m cos ω_m t). **Frequency modulation (FM)** keeps amplitude roughly constant but drives **instantaneous frequency** through **phase** β sin ω_m t. The plots use a fixed time window and a **DFT magnitude** snapshot—useful for **seeing carrier and sidebands**, not for broadcast-standard masking or leakage-free spectra.

Key equations

AM: s(t) = [1 + m cos(ω_m t)] cos(ω_c t)
FM: s(t) = cos(ω_c t + β sin(ω_m t))

Frequently asked questions

Why don’t the spectrum lines look infinitely sharp?
A **finite time window** convolves the true spectrum with a **sinc-like** kernel, **spreading** energy across bins. This simulator does not apply windowing beyond the rectangular capture, so **leakage** is expected.
What happens if f_c is set close to Nyquist?
The discrete model **folds** energy around **f_s/2**. Raise **f_c** too high and **aliases** appear in the plotted band—use it as a **Nyquist demo**.
Is Carson’s rule exact?
No—it is a **practical rule of thumb** for sinusoidal FM. Real audio FM uses much richer messages and bandwidth regulations; treat the number as **pedagogical**.
Why separate sliders for AM depth and FM β?
They play **analogous** roles (how strongly the message affects the waveform) but enter **different equations**; keeping both avoids confusion when switching modes.