One symbol, many bits
Imagine you are signalling to a friend across a noisy stadium using a single flashlight. In rung 3 you agreed on the simplest possible code: light ON means 1, light OFF means 0. One flash, one bit. That is binary digital modulation, and it is honest and robust — but it is slow. To send a long message you need a flash for every single bit.
Now suppose your flashlight has a dimmer (four brightness levels) and you can angle the beam left or right. Suddenly one flash can mean far more than one bit. Pick one of 4 brightnesses and one of 4 angles and a single flash names one of 16 distinct possibilities — that is 4 bits at once. This is the whole idea behind QAM: instead of using only a tone's on/off state, you steer two independent dials — its amplitude (how loud) and its phase (how shifted in time) — to label many messages per symbol.
The word *quadrature* is the key. Any sinusoid `A·cos(2πf·t + φ)` can be rewritten as the sum of two carriers that are 90° apart: `I·cos(2πf·t) − Q·sin(2πf·t)`. The cosine branch is called I (in-phase) and the sine branch Q (quadrature). Because cosine and sine never overlap — they are *orthogonal* — a receiver can recover I and Q completely independently. So one radio tone secretly carries two numbers, and QAM simply chooses crisp, agreed-upon values for that I–Q pair.
Reading a constellation diagram
Engineers draw QAM on a map called a constellation diagram. The horizontal axis is the I value, the vertical axis is the Q value, and every allowed symbol is a single dot. Sending a symbol means transmitting the tone whose amplitude is the dot's distance from the origin and whose phase is the dot's angle. The receiver measures the incoming I and Q, plots the point, and snaps it to the nearest dot to decide what was sent.
Q Q
| |
01 ● | ● 00 0010 ● ● 0110 | ● 0100 ● 1100
| ● ● ● | ● ● ●
--------+--------- I ---------+--------- I
| ● ● ● | ● ● ●
11 ● | ● 10 0011 ● ● 0111 | ● 0101 ● 1101
| |
4-QAM (QPSK) 16-QAM
2 bits / symbol 4 bits / symbol
4 points on a ring 16 points on a 4×4 gridCount the dots and you know the order. A constellation of M points carries `log₂(M)` bits per symbol: 4-QAM → 2 bits, 16-QAM → 4 bits, 64-QAM → 6 bits, 256-QAM → 8 bits, and Wi-Fi 6's headline 1024-QAM → 10 bits. (4-QAM is identical to QPSK — four phases, constant amplitude — which is why you will see both names for the same diamond of four dots.)
Spectral efficiency: bits per second per hertz
Radio spectrum is brutally scarce — a 20 MHz Wi-Fi channel or a 5 MHz LTE block is a fixed, licensed, expensive slice of nature. So the question that decides whether your video call buffers is: how many bits can you push through each hertz of bandwidth per second? That ratio is spectral efficiency, measured in bits per second per hertz (bits/s/Hz), and it is the single number that ranks one modulation scheme against another.
It builds up in two stages. First, the channel lets you send roughly one symbol per hertz of bandwidth each second — that is the symbol rate (baud), set by the channel's width. Second, each symbol carries `log₂(M)` bits. Multiply them and the spectral efficiency is, to first order, simply `log₂(M)` bits/s/Hz. Climbing the QAM ladder is therefore a direct climb in throughput on the *same* spectrum.
Scheme M bits/symbol ≈ spectral efficiency --------------------------------------------------------- BPSK 2 1 1 bit/s/Hz 4-QAM/QPSK 4 2 2 bits/s/Hz 16-QAM 16 4 4 bits/s/Hz 64-QAM 64 6 6 bits/s/Hz 256-QAM 256 8 8 bits/s/Hz 1024-QAM 1024 10 10 bits/s/Hz Same bandwidth. 256-QAM moves 8x the data of BPSK — IF the channel is clean enough to tell 256 dots apart.
The catch: denser constellations are fragile
Here is the brutal trade. The constellation lives inside a fixed power budget — the dots can only spread so far from the origin before the amplifier clips or the regulator forbids it. Cram 4 dots into that circle and they sit comfortably far apart. Cram 256 dots into the *same* circle and they huddle shoulder to shoulder. The gap between neighbouring dots is the safety margin against noise, and that gap shrinks fast as M grows.
Noise in the receiver smears each received dot into a fuzzy cloud of fixed radius. The decision rule is *nearest dot wins*. If the clouds are smaller than the gaps, the receiver almost always guesses right and the bit error rate is tiny. But once the noise clouds overlap their neighbours, points leak across the boundary, the BER explodes, and the link falls apart. Whether the clouds fit between the dots is governed by one quantity: the signal-to-noise ratio.
low SNR, 16-QAM high SNR, 16-QAM
(clouds overlap) (clouds isolated)
◌ ◌ ◌ ◌ · · · ·
◌◌◌◌◌◌◌ · · · · ← tight
◌ overlap ◌ · · · · clusters,
◌◌◌◌◌◌◌ · · · · clean
◌ ◌ ◌ ◌ · · · · decisions
→ many wrong guesses → almost no errors
BER ~ 1e-2 BER ~ 1e-6Worked example: which modem fits the link?
Let's make it concrete. You run a 20 MHz channel and want a reliable target of BER ≤ 10⁻⁶ (about one error per million bits — fine for streaming after error correction mops up the rest). Roughly, the SNR each QAM order needs to hit that BER over a clean Gaussian-noise channel is tabulated below. We then read off the throughput each can deliver.
Channel: B = 20 MHz, symbol rate ≈ 20 Msym/s, target BER 1e-6
Scheme bits/sym SNR needed* raw throughput = B·log2(M)
----------------------------------------------------------------
QPSK (4) 2 ~ 13 dB 20M · 2 = 40 Mbit/s
16-QAM 4 ~ 20 dB 20M · 4 = 80 Mbit/s
64-QAM 6 ~ 26 dB 20M · 6 = 120 Mbit/s
256-QAM 8 ~ 32 dB 20M · 8 = 160 Mbit/s
1024-QAM 10 ~ 38 dB 20M · 10 = 200 Mbit/s
(*approx. SNR for ~1e-6 Bob, uncoded, AWGN; ~6 dB per rung)
Suppose the measured link SNR is 24 dB:
256-QAM (needs 32) -> FAILS, BER far above 1e-6
64-QAM (needs 26) -> marginal, risky
16-QAM (needs 20) -> WORKS with ~4 dB to spare -> 80 Mbit/sRead the table the way a real radio does. The link reports its SNR; the modem looks up the densest constellation whose required SNR is still below it, with a margin for fading. At 24 dB, 16-QAM clears its 20 dB bar with room to spare, but 64-QAM's 26 dB requirement is above the budget — so 16-QAM wins and the link runs at 80 Mbit/s. Push the antenna closer and lift the SNR to 30 dB, and the very same hardware unlocks 64-QAM and 120 Mbit/s with no new spectrum. That is spectral efficiency doing its job.
Where this points next
Step back and notice the pattern. Every rung of the QAM ladder buys more bits/s/Hz but demands more SNR. Plot 'bits/s/Hz you can achieve' against 'SNR you have' and a hard ceiling appears — a curve no modulation, no matter how clever, can cross. That ceiling is the channel capacity, and Claude Shannon wrote its equation in 1948: `C = B·log₂(1 + SNR)`.
Notice the suggestive shape: capacity grows with the *logarithm* of SNR — exactly the `log₂` we kept meeting as we climbed from 4-QAM to 1024-QAM. The QAM ladder is humanity's staircase trying to reach Shannon's ceiling, and good codes plus dense constellations get within a fraction of a decibel of it. Rung 5 takes that ceiling head-on: why it exists, what it promises, and why no engineer can ever beat it.