A radio wave on its own is a perfectly boring hum. Everything it carries, from a ballgame on AM to a 4K stream over Wi-Fi, comes from deliberately bending that hum in amplitude, frequency or phase.
Common mix-up: a higher carrier frequency does not by itself make data faster. The carrier is just the address on the dial. Speed comes from how much bandwidth you occupy around it and how clean the signal is. A 20 MHz channel at 2.4 GHz and a 20 MHz channel at 5 GHz with the same signal-to-noise ratio have exactly the same ceiling; 5 GHz Wi-Fi is faster because it has room for wider channels.
A transmitter’s raw output is a carrier: a clean sine wave at one frequency, say 2.437 GHz for Wi-Fi channel 6. It is a remarkable object, and it carries zero information. Once you have seen one cycle you know every cycle that will ever follow. Nothing in it can surprise you, and information, in the strict sense, is surprise.
A sine wave has exactly three things you can change: how big it is (amplitude), how fast it oscillates (frequency), and where in its cycle it is at a given moment (phase). Every modulation scheme ever built, from 1906 voice radio to Wi-Fi 7, is a recipe for wiggling one or more of those three in a pattern the receiver can read back.
The cost of wiggling is spread. A pure sine occupies a single, infinitely thin line on a spectrum analyzer. The moment you change it, it smears into a band of neighboring frequencies, and the faster you change it the wider the smear. That band is the bandwidth a station needs, and it is the scarce resource regulators sell, license and fight over.
Multiply a carrier by a slow tone and trigonometry does the rest: cos(a)·cos(b) = ½cos(a−b) + ½cos(a+b). A 1 MHz carrier swelling and shrinking at 1 kHz is mathematically identical to three steady tones at 0.999, 1.000 and 1.001 MHz. Those side tones are the sidebands, and they exist physically: a narrow filter can pick one out.
The general rule is the time–bandwidth trade of Fourier analysis: a feature lasting a time T needs roughly 1/T of bandwidth. Send a million distinct symbols per second and you need on the order of 1 MHz. No clever circuit gets around it; it is a property of waves, the same one behind the uncertainty principle.
Amplitude modulation is the oldest scheme: make the carrier stronger and weaker in step with the sound. The outline of the waveform, called the envelope, is a copy of the microphone signal, so a receiver needs little more than a diode and a capacitor to trace it back out. That simplicity is why crystal sets worked with no battery at all. US AM stations sit between 530 and 1,700 kHz, spaced 10 kHz apart, which leaves about 5 kHz of audio each: fine for voices, thin for music.
AM’s weakness is that almost everything else in the world also changes amplitude. Lightning, a vacuum cleaner motor, a light dimmer: each adds bursts of energy that ride straight onto the envelope, and the detector cannot tell them from the program. That is the crackle of AM radio during a thunderstorm. AM is also wasteful: at full 100% modulation, two thirds of the transmitted power sits in the unchanging carrier, and only one third in the sidebands that carry the sound.
Frequency modulation, patented by Edwin Armstrong in 1933, keeps the amplitude fixed and nudges the frequency instead. Louder sound pushes the frequency further from center; higher-pitched sound pushes it back and forth faster. Because the information lives in the timing of the zero crossings, the receiver can hard-clip the amplitude, a stage called a limiter, and throw most noise away with it. FM’s other party trick is the capture effect: when two stations share a frequency, the receiver locks onto the one that is a few decibels stronger and nearly silences the other, where AM would play both.
The price is bandwidth. US FM broadcast swings up to ±75 kHz with audio up to 15 kHz, and stations sit 200 kHz apart between 88 and 108 MHz. That is twenty AM stations’ worth of spectrum for one FM station. FM trades spectrum for quality, and for decades that was a bargain worth taking.
FM stereo is a neat backwards-compatible hack. The baseband carries L+R (what a mono radio plays) from 0 to 15 kHz, a 19 kHz pilot tone, and L−R modulated onto a suppressed 38 kHz subcarrier, so the composite audio runs to 53 kHz before it ever touches the carrier. Weak stations hiss in stereo because that L−R channel sits high in the baseband, where FM noise is worst.
Why worst up there? After FM demodulation the noise spectrum rises with frequency (it is triangular in amplitude, parabolic in power). Broadcasters therefore boost treble before transmission, called pre-emphasis, with a 75 µs time constant in the Americas and 50 µs in Europe; receivers cut it back by the same amount, taking the hiss down with it.
The FM noise advantage over AM grows roughly with the square of the modulation index β = Δf / fm, which is the formal version of “spend bandwidth, buy quality.” It holds only above a threshold, around 10 dB of carrier-to-noise; below it, FM collapses into pops and clicks more abruptly than AM fades.
Pick a scheme, then move the sliders and watch the bottom trace. Drag across the scope to scrub time by hand. Top: the message. Middle: the bare carrier. Bottom: what actually leaves the antenna.
Digital modulation uses the same three knobs, but instead of sliding them smoothly it snaps between a small set of agreed states, called symbols. The receiver’s job shrinks from “reproduce this exact waveform” to “which of these few states was it?”, which is far more forgiving: a symbol bent slightly by noise still lands closer to the right answer than the wrong one.
Amplitude-shift keying (ASK) switches between two strengths; its extreme form, on-off keying, is Morse code, and it is how cheap 433 MHz garage remotes and classic fiber-optic links work. Frequency-shift keying (FSK) switches between two frequencies. Phase-shift keying (PSK) keeps both amplitude and frequency constant and flips the wave’s timing: binary PSK jumps half a cycle (180°) for a zero. GPS satellites broadcast their navigation codes this way at 1.023 million chips per second.
Bluetooth Classic uses GFSK, Gaussian frequency-shift keying: one million symbols per second, with the frequency nudged about ±160 kHz for ones and zeros. The “Gaussian” is a smoothing filter (bandwidth–time product 0.5) that rounds off each frequency step so the signal doesn’t splatter into the neighboring 1 MHz channels. Bluetooth’s faster Enhanced Data Rate modes switch to phase keying: π/4-DQPSK for 2 Mbit/s and 8DPSK for 3 Mbit/s, carrying 2 and 3 bits per symbol.
That last point is the key idea of the rest of this chapter. With two states a symbol carries one bit. With four states, two bits. With M states, log2M bits. The symbol rate is fixed by bandwidth, so the only way to go faster in the same channel is to pack in more states.
The symbol rate is measured in baud, after Émile Baudot. The two were equal for early modems, which is why “baud” and “bits per second” got used interchangeably. They stopped being equal as soon as symbols carried more than one bit: a 1990s V.32 modem ran at 2,400 baud and 9,600 bit/s, with 4 bits per symbol on a telephone line only about 3 kHz wide.
Why “differential” in DQPSK? The receiver compares each symbol’s phase with the previous one instead of with an absolute reference. That avoids having to recover the transmitter’s exact phase, which is hard for a tiny, cheap radio, at a cost of roughly 2–3 dB of noise tolerance.
Here is the idea that runs every modern radio. Any wave at the carrier frequency, whatever its amplitude and phase, can be built by adding two fixed ingredients: a cosine and a sine at that frequency, each with its own volume knob. Engineers call the two volumes I (in-phase) and Q (quadrature). Turn I up and Q down and you get a big wave at one phase; set them equal and you get a wave shifted by 45°. Two numbers, (I, Q), pin down amplitude and phase at once.
Plot (I, Q) as a point on a plane and you get a constellation diagram. Distance from the center is amplitude; angle is phase. BPSK is two dots on opposite sides. QPSK is four dots on a circle: 2 bits per symbol. Quadrature amplitude modulation (QAM) fills a square grid: 16-QAM is a 4×4 grid carrying 4 bits per symbol, 64-QAM an 8×8 grid with 6 bits, and so on: 256-QAM (Wi-Fi 5, 8 bits), 1024-QAM (Wi-Fi 6, 10 bits), 4096-QAM (Wi-Fi 7 and DOCSIS 3.1 cable, 12 bits).
The hardware is beautifully symmetric. The transmitter generates I and Q digitally, multiplies one by cos and the other by sin, and adds. The receiver multiplies the incoming wave by the same cos and sin and low-pass filters, which separates I and Q again because cosine and sine are orthogonal: averaged over a cycle, their product is zero. Then it looks at where the point landed and picks the nearest grid dot.
Each step up the ladder (16 to 64 to 256 to 1024 to 4096) quadruples the number of points and adds 2 bits. But the transmitter’s average power is capped, so the grid has to fit in the same space: the dots get twice as close together in each direction every step. That is the whole problem the next section is about.
Bits are assigned to grid points with a Gray code, so any two neighboring points differ in exactly one bit. The commonest error, landing on the next dot over, then costs one wrong bit instead of several. That is why bit error rate is roughly symbol error rate divided by bits per symbol.
For square M-QAM with points at odd integers (±1, ±3, …), the average symbol energy is Es = 2(M−1)/3 while the spacing between neighbors stays 2. The ratio of squared spacing to energy is 6/(M−1). Going from M to 4M divides it by about 4: 10·log104 ≈ 6 dB. So every extra 2 bits per symbol costs about 6 dB more signal-to-noise for the same error rate, and 4096-QAM needs about 1,000 times (30 dB) the SNR of 16-QAM for the same symbol error rate. Our numbers below: 17.7 dB versus 42.2 dB at one error in a thousand symbols, a 24.5 dB gap that approaches the asymptotic 6-dB-per-step figure.
Choose a constellation and lower the SNR slider until the clouds start to merge. Every redraw transmits 6,000 random symbols through Gaussian noise and counts how many the receiver decodes wrong. Tap or drag on the plot to see which symbol, and which bits, a received point would decode to.
Every receiver hears noise: the thermal jiggle of electrons in its own circuits (about −174 dBm per hertz at room temperature, before the amplifier adds its own), other transmitters, and interference. What matters is the signal-to-noise ratio, usually in decibels: 10 dB is 10× more signal power than noise, 20 dB is 100×, 30 dB is 1,000×. A Wi-Fi client a room away from the router might see 30–40 dB; through two walls, 15–20.
Noise turns each sharp constellation dot into a fuzzy cloud. As long as clouds don’t overlap, the receiver picks the right dot almost every time. As they spread into each other, errors climb steeply. A real Wi-Fi radio constantly measures SNR and steps its scheme up or down, called rate adaptation, which is why your link speed drifts as you walk around.
In 1948 Claude Shannon proved something startling: for any channel there is a maximum rate, the capacity, below which you can make errors as rare as you like with clever enough coding, and above which you cannot, no matter what. It depends on only two things: bandwidth and SNR.
Work one through. A 20 MHz Wi-Fi channel at 25 dB SNR: 25 dB is a power ratio of 102.5 ≈ 316.2. Add one and take log2: log2(317.2) ≈ 8.31 bits per second per hertz. Multiply by 20 million hertz: about 166 Mbit/s. No modulation, coding or chip design will ever push error-free data through that channel faster. Doubling the bandwidth doubles the ceiling; doubling the SNR (+3 dB) adds only about one bit per second per hertz.
Shannon’s promise needs error-correcting codes. The transmitter adds structured redundancy so the receiver can repair mistakes. Wi-Fi labels this with a code rate: rate 5/6 means 5 data bits ride in every 6 coded bits; rate 1/2 means half the bits are protection. A modern LDPC code (low-density parity check, invented by Robert Gallager in 1960 and used by Wi-Fi 6 and 7 and by 5G) lets a 1024-QAM link that would make one symbol error in ten on its own deliver data with essentially none, at the price of one-sixth of its raw rate.
So a Wi-Fi “MCS” (modulation and coding scheme) number is just a pair: a constellation plus a code rate. MCS 0 is BPSK rate 1/2, the tough, slow fallback. MCS 11 in Wi-Fi 6 is 1024-QAM rate 5/6. The best practical codes land within a decibel or two of Shannon’s line. After 75 years, the ceiling has been reached; what is left is finding more bandwidth and better SNR.
Engineers often quote Eb/N0, energy per bit divided by noise density, to compare schemes fairly at different speeds. With SNR = (Eb/N0)·(R/B), Shannon’s formula implies that even with unlimited bandwidth you need Eb/N0 ≥ ln 2 ≈ 0.693, which is −1.59 dB. Below that, no code works at all. Deep-space probes operate within a few dB of this wall, which is how Voyager still sends data from more than 20 billion kilometers away with a 23-watt transmitter.
The SNR numbers in the table and lab are per symbol (Es/N0) for uncoded square QAM with Gaussian noise. Real links also suffer phase noise, amplifier distortion and fading, so radios need a few dB more than these textbook figures; Wi-Fi 6 vendors typically quote around 35 dB for 1024-QAM.
| Scheme | Bits / symbol | SNR for 1 error per 1,000 symbols (uncoded) | Where you meet it |
|---|---|---|---|
| BPSK | 1 | 6.8 dB | GPS, Wi-Fi MCS 0, deep-space links |
| GFSK | 1 | (FSK; less efficient than BPSK) | Bluetooth Classic and Low Energy |
| QPSK | 2 | 10.4 dB | Satellite TV, LTE and 5G at cell edge |
| 16-QAM | 4 | 17.7 dB | Wi-Fi mid rates, LTE, 5G |
| 64-QAM | 6 | 24.0 dB | Top rate of Wi-Fi 4 (802.11a/g/n) |
| 256-QAM | 8 | 30.1 dB | Wi-Fi 5, 5G, digital cable TV |
| 1024-QAM | 10 | 36.2 dB | Wi-Fi 6 / 6E, recent 5G |
| 4096-QAM | 12 | 42.2 dB | Wi-Fi 7, DOCSIS 3.1 cable |
Indoors, a radio signal reaches you along many paths at once: straight through the air, off the ceiling, off the fridge. The reflected copies arrive tens to hundreds of nanoseconds late. If you sent 20 million symbols per second on a single carrier, each symbol would last only 50 ns, and a 200 ns echo would smear every symbol across the next four. This is multipath, and for a single fast carrier it is crippling.
Orthogonal frequency-division multiplexing (OFDM) dodges it by splitting the channel into many narrow subcarriers, each carrying its own slow QAM symbol, all sent side by side at once. The subcarriers are spaced exactly 1/T apart, where T is the symbol length, which makes each one’s spectrum peak fall precisely on the zeros of all its neighbors. They overlap heavily yet don’t interfere: that is the “orthogonal.”
802.11a, g and n split a 20 MHz channel into 64 subcarriers 312.5 kHz apart (52 actually carry signal: 48 data, 4 pilots). Each symbol lasts 3.2 µs, sixty-four times longer than 50 ns. Wi-Fi 6 (802.11ax) goes further: 256 tones 78.125 kHz apart, symbols of 12.8 µs. Before each symbol the transmitter repeats its own tail as a guard interval, 0.8 µs by default. Any echo shorter than that lands harmlessly inside the guard. 0.8 µs at light speed is 240 m of extra path, more than any house produces.
There’s a second gift. Multipath makes some frequencies fade while others don’t. With OFDM, a fade just knocks out a few subcarriers, the error-correcting code repairs those bits from the rest, and the receiver equalizes each subcarrier with a single multiplication. All of it is computed with a fast Fourier transform, which is why OFDM only became practical once cheap chips could do millions of FFTs per second. Today it runs Wi-Fi, 4G, 5G, DSL, digital TV and DAB radio.
The guard interval isn’t silence; it is a copy of the symbol’s last 0.8 µs pasted in front. That makes every echo look, inside the receiver’s 3.2 µs or 12.8 µs window, like a circularly shifted copy of the symbol, and a circular shift in time is just a phase rotation in frequency. So the channel’s effect on each subcarrier becomes one complex number, which the receiver learns from pilots and divides out. Without the cyclic copy, echoes would leak energy between subcarriers.
The transmitter literally builds the waveform with an inverse FFT: 256 QAM values in, 256 time samples out. The receiver runs a forward FFT to get the 256 values back. Wi-Fi 6 also made the guard interval selectable (0.8, 1.6 or 3.2 µs) so outdoor links with long echoes can trade speed for robustness, and it lets an access point hand different groups of subcarriers to different clients at once (OFDMA).
Choose how many subcarriers share a 20 MHz channel and how long the worst echo is. Drag on the spectrum to pick out one subcarrier; drag on the timeline to change the echo delay. Watch the peaks sit on each other’s zeros, and the echo either land in the guard or spill into the symbol.
Follow one Wi-Fi 6 transmission on 2.4 GHz channel 6, 20 MHz wide, centered at 2,437 MHz, between two good radios a room apart.
The arithmetic: 234 subcarriers × 10 bits × 5/6 = 1,950 data bits per symbol. One symbol every 13.6 µs (12.8 + 0.8) gives 1,950 ÷ 13.6 µs ≈ 143.4 Mbit/s per spatial stream. A router and laptop with two antennas each send two independent streams over the same frequencies (MIMO), for the 286.8 Mbit/s headline on the box. Real downloads land lower, often around half to two thirds of that, because of acknowledgments, contention for airtime and retransmissions.
Compare with Shannon: 1024-QAM needs roughly 35 dB in practice, where one stream’s 20 MHz ceiling is about 232 Mbit/s. The gap to 143 is the price of guard intervals, pilots, unused edge tones and a code that is good but finite. Step back to the 25 dB worked example and the radio drops to 256-QAM or 64-QAM; at the edge of the house it falls back to BPSK rate 1/2, still connected, at about 8.6 Mbit/s. Wi-Fi 7’s 4096-QAM adds two more bits per tone, a 20% boost (12 ÷ 10), but only when you are close enough to the router for roughly 40 dB of SNR.
Where those signals come from and how they fade along the way is the subject of Antennas and How signals travel; the band they share is the star of The 2.4 GHz band.