Digital Modulation — BPSK / QPSK / 8PSK / BFSK / 16-QAM / 64-QAM

← Home

The six common schemes on one workbench. Edit the modulation, the pulse shape, the Eb/N0, and the bit count — see the constellation cloud, the I/Q + RF waveform, the eye diagram, and the BER vs Eb/N0 curve update live. Built to address the most common student confusions: Eb/N0 vs SNR, BER vs SER, Gray vs natural mapping, and why QAM beats PSK at high M.

📡 EMFT Hub 📻 Modulation 📶 Digital Modulation ← Home

Modulation

Channel

Bit source

⚠ Common confusion: Eb/N0 ≠ SNR. SNR = Eb/N0 · log₂(M) = energy per bit · bits per symbol, divided by noise. The KV panel shows both — keep them straight.
① Constellation (with AWGN noise cloud at current Eb/N0)
Ideal M-point constellation (large open circles) + received points from a Monte-Carlo run at the current Eb/N0 (small filled dots, one color per transmitted symbol). The cloud tightens as Eb/N0 rises.
ideal constellation point received (with noise)
② Time-domain waveforms (first 12 symbols)
I(t) and Q(t) are the baseband in-phase and quadrature signals. RF(t) = I·cos(2πfct) − Q·sin(2πfct) is the actual transmitted signal at the carrier.
I(t) (in-phase baseband) Q(t) (quadrature baseband) RF(t) (upconverted signal)
Y-axis is log scale (BER, bit error rate). Solid lines = theoretical Q-function formulas. Filled circles = Monte-Carlo simulation at the current Eb/N0 for the selected scheme. Higher M is more bandwidth-efficient (curves shifted right) but needs more Eb/N0 for the same BER (curves shifted up).
BPSK QPSK 8PSK 16-QAM 64-QAM current (● simulation)
Modulation
Scheme
M (constellation size)
k = log₂(M) bits/sym
Mapping
BER plot range (X = Eb/N0 dB, Y = log BER)
Xmin (dB)
Xmax (dB)
Ymin (BER)
Ymax (BER)
Type values directly (e.g. 1e-9 for Ymin = 10⁻⁹). Default = auto-fit on every render: X spans [0, max(30, Eb/N0 + 5)] dB; Y spans [10⁻¹², 1].
Rates + Bandwidth
Rs (sym rate)
Rb = Rs·k
BW (≈)
η = Rb/BW (bits/s/Hz)
Eb/N0 ↔ SNR
Eb/N0 (linear)
SNR = Eb/N0 · k
SNR (dB)
⚠ Not the same: Eb/N0 is energy per bit / noise spectral density. SNR is total signal power / noise power. For M-ary: SNR = k · (Eb/N0).
BER (at current Eb/N0)
Theoretical (formula)
Simulated (Monte Carlo)
Agreement
Common student confusions
① Eb/N0 vs SNR: SNR = k · (Eb/N0), where k = log₂(M).
② SER vs BER: for Gray-coded M-ary, BER ≈ SER / k (one bit flips per symbol error).
③ Why BPSK = QPSK BER: same minimum distance 2√Es between adjacent points.
④ Why QAM beats PSK at high M: 16/64-QAM uses a 2D grid (more packing); PSK is on a circle (constant amplitude, less packing).
⑤ Gray vs natural: Gray makes adjacent symbols differ by 1 bit, so symbol error → 1 bit error. Natural: symbol error → up to k bit errors.

📖 Deep-dive blog (planned)

Hard concepts that don't fit cleanly into a single interactive tool. Each will get a long-form post in the blog with the full derivation, edge cases, and worked GATE problems.

Posts are planned. Tool ships first; deep-dives follow.