Turning bits into waves
A radio carrier is a sine wave. To carry information you change — modulate — something about it: its phase, its amplitude, or both. The scheme you choose sets two things at once: how many bits each symbol carries (spectral efficiency, in bits/s/Hz) and how much Eb/N₀ you need to tell the symbols apart (robustness).
| Scheme | Bits per symbol | Required Eb/N₀ for BER 10⁻⁶ (uncoded) | Used for |
|---|---|---|---|
| BPSK | 1 | ~10.5 dB | TT&C, deep space, CubeSats |
| QPSK | 2 | ~10.5 dB | The workhorse: EO downlinks, DVB-S2, most everything |
| 8PSK | 3 | ~14 dB | High-rate downlinks with margin to spare |
| 16APSK / 16QAM | 4 | ~14.5 dB | GEO broadband, high-throughput links |
| 32APSK | 5 | ~18 dB | Best case, clear sky, big dishes |
QPSK is the sweet spot because it carries two bits per symbol for the same Eb/N₀ as BPSK — a free doubling of rate. Beyond QPSK, every extra bit per symbol costs several dB.
Coding: spend bandwidth, save power
Forward error correction (FEC) adds structured redundancy so the receiver can repair errors without asking for retransmission — essential when the round trip is 8 minutes to Mars or the pass ends in 40 seconds. The code rate is the fraction of transmitted bits that are real data: rate 1/2 sends two bits for every one of yours.
| Code family | Typical coding gain | Notes |
|---|---|---|
| Convolutional (Viterbi), r=1/2 | ~5 dB | 1970s–2000s standard; simple |
| Reed–Solomon + convolutional | ~7 dB | Voyager, early CCSDS |
| Turbo codes | ~8–9 dB | Deep space from the 2000s |
| LDPC (DVB-S2, CCSDS) | ~9–10 dB, within ~1 dB of the Shannon limit | Today's default for everything serious |
With LDPC rate 1/2, QPSK closes at roughly 1.5–2 dB Eb/N₀ instead of 10.5. That 8+ dB is worth more than a 2.5× bigger dish — which is why nobody flies uncoded links anymore.
Adaptive coding and modulation (ACM)
Weather and elevation angle change the link minute by minute. Modern standards (DVB-S2/S2X, and the CCSDS equivalents) let the transmitter switch MODCOD on the fly: 32APSK in clear sky at high elevation, dropping to QPSK 1/2 when rain arrives. Throughput rises and falls, but the link never breaks. Starlink, Ka-band GEO broadband and modern EO downlinks all do this.
Shannon's ceiling
There is a hard limit: C = B · log2(1 + S/N). No modulation or code can carry more than the channel capacity. LDPC codes get within a decibel of it, so remaining gains come from more bandwidth (higher bands, optical) or more S/N (bigger antennas, more power) — not cleverer coding.