How the digital modulation lab fits together

The page generates discrete message samples \(m[k]\) and maps them to pulses \(s(t)\) using the modulation scheme you choose. The sampling frequency must satisfy \(f_s \ge 2 f_m\) to avoid aliasing, while the pulse repetition frequency sets the symbol spacing \(T_p = 1/\mathrm{PRF}\). Additive white Gaussian noise models the channel with a signal-to-noise ratio \(\mathrm{SNR} = 10 \log_{10}\!\left(\tfrac{P_s}{P_n}\right)\,\text{dB}\), which you can sweep below.

PAM/PWM/PPM
Encode the amplitude, width, or timing of each pulse in proportion to the sample \(m[k]\).
PCM
Quantises samples into \(L\) discrete levels before line coding, showing quantisation noise in the spectra.
Spectra
Toggle the spectral plots to compare transmitted and recovered signals after demodulation.
Digital modulation controls
Pulse parameters
Noise & Spectrum
Modulation — time domain
Demodulation — time domain
Modulation spectrum
Demodulation spectrum
Coherent passband link (carrier-modulated digital)

Compare how BPSK, QPSK, and 16-QAM behave when an RF carrier suffers frequency and phase errors. Toggle the Costas loop to mimic a carrier recovery stage and watch the constellation collapse back into place.

Passband waveforms
Baseband I/Q vs. time
Constellation at symbol sampling
Digital PAM (M-PAM) simulation

Shape baseband symbols with a root-raised cosine pulse, add AWGN, and recover with a matched filter. Toggle the TX/RX pulse shaping to explore inter-symbol interference.

Constellation after matched filter
Eye diagram
BER vs. theory