Digital Modulation: ASK, FSK, PSK & QAM
Every digital modulation is a set of points in the I/Q plane, and one number — the minimum Euclidean distance between them — fixes the error probability. How BPSK through 256-QAM trade bits per symbol against required Eb/N0, why Gray coding is what makes BER ≈ SER/k, what pulse shaping costs in bandwidth, and why peak-to-average power ratio, not noise, is often the binding constraint.
Digital modulation maps groups of bits onto a finite set of waveforms. Because every practical scheme builds those waveforms from two quadrature carriers, and , the whole set collapses into a picture: a constellation of points in a two-dimensional I/Q plane. ASK moves points along a radius, PSK moves them around a circle, QAM uses the plane properly, and FSK is the one family that refuses to fit in two dimensions at all.
Once you have that picture, one number does almost all the work. The receiver adds Gaussian noise to the transmitted point and picks the nearest legal one; the probability it picks wrong is set by the minimum Euclidean distance between constellation points measured against the noise standard deviation. Everything else in this entry — how many bits a symbol carries, how the bits are labelled, how the pulses are shaped, how much bandwidth results, and how hard the power amplifier has to work — is downstream of that single geometric fact.
The constellation, and the one bound that matters #
A symbol is a complex number transmitted as
with the pulse shape. A matched filter followed by a sampler recovers plus a complex Gaussian noise sample whose real and imaginary parts each have variance . Detection is then a nearest-neighbour search in the plane — nothing about carriers or radio survives into the decision.
Cioffi's nearest-neighbour union bound is the general form of the error expression, and it is worth internalising because every scheme-specific formula below is a special case of it:
is the average number of decision-region boundaries surrounding a symbol. For square -QAM, — interior points have four neighbours, edge and corner points fewer.
flowchart LR
B["Bits"] --> G["Gray mapper<br/>k bits to 1 symbol"]
G --> D["Differential<br/>encoder (optional)"]
D --> P["RRC pulse<br/>shaping filter"]
P --> U["I/Q upconvert<br/>to fc"]
U --> PA["Power<br/>amplifier"]
PA --> CH(("AWGN +<br/>fading"))
CH --> LNA["LNA, downconvert"]
LNA --> MF["RRC matched<br/>filter"]
MF --> S["Symbol-rate<br/>sampler"]
S --> DET["Nearest-neighbour<br/>detector"]
DET --> DM["De-map<br/>to bits"]
The two RRC blocks are the same filter split in half; the pair multiplies out to a raised cosine, which is the zero-ISI shape. That is the subject of a later section, and it is the reason the sampler in the middle sees clean symbols rather than a smear.
The four families #
| ASK / PAM | PSK | QAM | FSK | |
|---|---|---|---|---|
| What varies | amplitude only | phase only | amplitude and phase | frequency |
| Geometry | points on a line | points on a circle | points on a grid | orthogonal axes — one dimension per tone |
| Dimensions used | 1 | 2, but only the ring | 2, fully | M |
| Bandwidth as M grows | constant | constant | constant | grows linearly with M |
| Envelope | varies — needs a linear PA | constant (unfiltered) | varies | constant |
| Typical use | optical intensity, baseband wireline (PAM-4) | satellite, low-SNR links, Bluetooth EDR | everything bandwidth-limited: cable, Wi-Fi, LTE/NR, microwave backhaul | cheap short-range radio, paging, GSM's GMSK |
The dimension row is the load-bearing one. PSK spends two dimensions but only uses the perimeter of the available energy budget, so beyond 8PSK its points get crowded on the circle while the interior sits empty — which is exactly why nothing above 8PSK is deployed and why 16-QAM beats 16-PSK by about 4 dB. FSK goes the other way: it buys distance by spending bandwidth, one orthogonal dimension per tone, which is a good trade only when spectrum is free and power is not.
Error probability, exactly #
Write (energy per information bit) and bits per symbol, so . Comparing at fixed rather than fixed is what makes the comparison honest — otherwise high-order schemes get their extra bits for free.
BPSK and QPSK. Two antipodal points at ; QPSK is two independent BPSK channels on I and Q. Both are exact:
M-PSK, . Points at radius , angular spacing , so . Two dominant neighbours:
Square M-QAM (). Two independent -PAM constellations. With the symbol error rate is exact:
and the standard Gray-coded bit-error approximation, which is the one you actually use, is
The factor is the whole story of higher-order QAM: the argument of shrinks roughly as , so each doubling of (one more bit per symbol) costs on the order of 3 dB once you are past 16-QAM.
Binary ASK and FSK. With the average bit energy, coherent on-off keying and coherent orthogonal binary FSK have the same expression, 3 dB worse than BPSK, because their signal points are orthogonal rather than antipodal:
What it costs, in dB #
Required for an uncoded BER of on AWGN, solved from the expressions above:
| Scheme | bits/symbol k | Eb/N0 for BER 1e−6 | Es/N0 for BER 1e−6 | Penalty vs BPSK |
|---|---|---|---|---|
| BPSK | 1 | 10.53 dB | 10.53 dB | — |
| QPSK | 2 | 10.53 dB | 13.54 dB | 0.00 dB |
| Coherent orthogonal FSK / OOK | 1 | 13.54 dB | 13.54 dB | 3.01 dB |
| Noncoherent orthogonal FSK | 1 | 14.19 dB | 14.19 dB | 3.66 dB |
| DBPSK (differentially coherent) | 1 | 11.18 dB | 11.18 dB | 0.65 dB |
| 8PSK | 3 | 13.95 dB | 18.72 dB | 3.42 dB |
| 16-QAM | 4 | 14.40 dB | 20.42 dB | 3.87 dB |
| 16-PSK | 4 | 18.44 dB | 24.46 dB | 7.91 dB |
| 64-QAM | 6 | 18.78 dB | 26.56 dB | 8.25 dB |
| 256-QAM | 8 | 23.51 dB | 32.55 dB | 12.98 dB |
| 1024-QAM | 10 | 28.50 dB | 38.50 dB | 17.97 dB |
| 4096-QAM | 12 | 33.67 dB | 44.46 dB | 23.14 dB |
Three things to read off it. 16-QAM beats 16-PSK by 4.0 dB at the same spectral efficiency, which is why nobody deploys 16-PSK. 8PSK and 16-QAM sit within half a dB of each other, so 8PSK survives only where a near-constant envelope matters (satellite, EDGE) and 16-QAM wins everywhere else because it carries a fourth bit for 0.45 dB. And past 16-QAM each extra bit per symbol costs roughly 2.4 dB (16→64→256→1024→4096: 4.38, 4.74, 4.99, 5.17 dB per two bits), so the last constellation you can close a link on is a very sharp function of margin.
Gray coding: why BER ≈ SER / k #
The formulas above quietly assumed . That is only true with the right bit labelling.
At the SNRs that matter, essentially every symbol error is a slip to a nearest neighbour — errors to farther points are suppressed by an additional exponential. Gray coding labels the constellation so that any two nearest neighbours differ in exactly one bit position. A nearest-neighbour symbol error then produces exactly one bit error out of , so
Without it, a single symbol slip can flip several bits. Square QAM makes Gray coding trivial: Gray-code the -PAM levels on each axis independently and concatenate the two labels — which is exactly what the 16-QAM panel in the figure shows, and why every horizontal or vertical neighbour there differs in one bit. 3GPP does the same for EDGE 8PSK: TS 45.004 Table 1 is a Gray map onto the eight phases.
ASK and FSK, and the continuous-phase branch #
ASK in its pure form barely exists in radio — it is one-dimensional, so it wastes half the plane, and its envelope swings to zero, which is the worst case for a power amplifier. It survives where intensity is the only thing you can modulate: on-off keying in optical links, and multi-level PAM in wireline (PAM-4 on 100G-per-lane Ethernet and on DDR5's command bus). The moment you have a phase reference, ASK becomes the I-axis of a QAM constellation and the family name stops being useful.
FSK transmits one of tones. It is the odd one out because its signal points are orthogonal, living in dimensions rather than 2, so does not shrink as grows — but bandwidth does. Coherently detected tones are orthogonal when spaced by ; noncoherent detection needs . The figure is the "minimum shift" that names the next scheme.
MSK and GMSK #
Plain FSK switches tones abruptly, and a phase discontinuity has an infinite-bandwidth spectrum. Continuous-phase FSK instead integrates the data into the phase, so the waveform never jumps. The modulation index sets how much phase accumulates per symbol; gives exactly per bit and tone spacing — minimum shift keying, the smallest spacing that keeps the two tones orthogonal.
GMSK pre-filters the data with a Gaussian filter before the phase integrator. That trades a deliberate, bounded amount of ISI for a much faster spectral roll-off. GSM specifies it exactly (3GPP TS 45.004 §2.4–2.5): the modulating impulses excite where is a Gaussian with , the modulation index is ("maximum phase change in radians is per data interval"), and the symbol rate is ksymb/s 270.833 ksymb/s in a 200 kHz channel.
Bluetooth Basic Rate is the same family at a different operating point: GFSK, , modulation index between 0.28 and 0.35, 1 Msym/s — deliberately below MSK's , which narrows the spectrum further at the cost of distance.
Differential encoding and the phase ambiguity #
A coherent PSK receiver recovers the carrier from the received signal itself, typically by a nonlinearity that removes the modulation. Squaring recovers the carrier of a BPSK signal — but also destroys the sign, so the recovered reference is right or inverted with equal probability. For M-PSK the fourth-power or M-th-power loop leaves an -fold ambiguity. Nothing in the received waveform distinguishes the branches: the constellation has rotational symmetry, and that symmetry is exactly the problem.
Two standard fixes, and they are not the same thing:
- Differential encoding with coherent detection. Encode data in the change of phase, then detect coherently and difference the decisions. A constant unknown rotation cancels. Cost: an isolated symbol error corrupts two consecutive differences, so the BER roughly doubles — with , which at BER is a penalty of only 0.25 dB. GSM does this on GMSK: TS 45.004 §2.3 differentially encodes each data value, , before the modulator.
- Differentially coherent detection (DPSK). Skip carrier recovery entirely and use the previous symbol as the phase reference. No carrier loop, no ambiguity, and immunity to slow phase drift. Cost is larger because the reference itself is noisy: , a 0.65 dB penalty at BER , growing to roughly 2–3 dB for differentially detected QPSK.
Bluetooth EDR takes the second route on both of its higher modulations: "π/4 rotated differential encoded quaternary phase shift keying (π/4-DQPSK)" at 2 Mb/s and "differential encoded 8-ary phase shift keying (8DPSK)" at 3 Mb/s.
Pulse shaping: Nyquist, raised cosine, and the bandwidth you actually get #
A rectangular symbol pulse has a spectrum whose sidelobes decay at only 6 dB/octave — unusable next to a neighbouring channel. Band-limiting it, though, spreads each symbol in time so that it leaks into its neighbours' sampling instants. That leakage is intersymbol interference, and Nyquist's 1928 result says exactly how to band-limit without it.
His criterion in modern form: sampling the received pulse at picks out one symbol cleanly if and only if the folded spectrum is flat,
Nyquist stated both halves. His minimum-bandwidth result — "the minimum band width required for unambiguous interpretation is substantially equal, numerically, to the speed of signaling and is substantially independent of the number of current values employed" — gives the Nyquist bandwidth: at baseband, as an RF (double-sideband) bandwidth. And he showed that adding any component with odd symmetry about the band edge changes nothing at the sampling instants: "shape factors symmetrical about [] ... do not contribute anything to the current value at the middle of the signal elements". That vestigial-symmetry observation is precisely what the raised cosine implements.
Raised cosine and its root #
The extra factor makes the tails decay as instead of , which is what makes the pulse usable with real timing recovery.
The filter is then split between transmitter and receiver as two root-raised-cosine (RRC) filters, each. This is not a convenience: the receive RRC is the matched filter for the transmit pulse, so it maximises SNR at the sampling instant, and the cascade of the two is the raised cosine, so ISI is zero at the sampler. You get both optimality conditions from one factorisation. DVB-S2 writes it out as the normative transmit filter, in the form
which is algebraically identical to over the roll-off band.
The bandwidth that results is the practical payoff:
DVB-S2 says this in operational terms: " corresponds to the theoretical total signal bandwidth after the modulator ... typical ratios are and ."
| Roll-off β | Excess bandwidth | Bandwidth at Rs = 1 Msym/s | Where it is used |
|---|---|---|---|
| 0 (ideal sinc) | 0 % | 1.00 MHz | nowhere — unrealisable, and fatal to timing jitter |
| 0.20 | 20 % | 1.20 MHz | DVB-S2 narrowest option |
| 0.22 | 22 % | 1.22 MHz | UMTS/WCDMA chip shaping |
| 0.25 | 25 % | 1.25 MHz | DVB-S2 middle option |
| 0.35 | 35 % | 1.35 MHz | DVB-S / DVB-S2 default |
| 0.40 | 40 % | 1.40 MHz | Bluetooth EDR (spec-mandated: "the roll off factor β shall be 0.4") |
Spectral efficiency and the Shannon ceiling #
Spectral efficiency is bits per second per hertz:
With a rate- channel code it becomes — the coding entry's rate penalty and this entry's excess bandwidth are two multiplicative discounts on the same number.
The ceiling is Shannon's. Substituting into gives the minimum at which any code could work at that efficiency:
| Scheme | k | η at β=0 | η at β=0.20 | η at β=0.35 | Required Eb/N0 (BER 1e−6) | Shannon min at η=k | Gap |
|---|---|---|---|---|---|---|---|
| BPSK | 1 | 1.00 | 0.83 | 0.74 | 10.53 dB | 0.00 dB | 10.53 dB |
| QPSK | 2 | 2.00 | 1.67 | 1.48 | 10.53 dB | 1.76 dB | 8.77 dB |
| 8PSK | 3 | 3.00 | 2.50 | 2.22 | 13.95 dB | 3.68 dB | 10.27 dB |
| 16-QAM | 4 | 4.00 | 3.33 | 2.96 | 14.40 dB | 5.74 dB | 8.66 dB |
| 64-QAM | 6 | 6.00 | 5.00 | 4.44 | 18.78 dB | 10.21 dB | 8.57 dB |
| 256-QAM | 8 | 8.00 | 6.67 | 5.93 | 23.51 dB | 15.03 dB | 8.48 dB |
| 1024-QAM | 10 | 10.00 | 8.33 | 7.41 | 28.50 dB | 20.10 dB | 8.40 dB |
| 4096-QAM | 12 | 12.00 | 10.00 | 8.89 | 33.67 dB | 25.33 dB | 8.34 dB |
The unconstrained bound's own floor, dB, is where power-limited links live; the top of the table is where bandwidth-limited ones do.
Peak-to-average power ratio #
Noise sets how many points you can pack. The power amplifier sets whether you can transmit them. PAPR is the ratio of the instantaneous peak envelope power to the average:
An amplifier is efficient near saturation and linear only well below it. A signal with high PAPR must be backed off so its peaks stay in the linear region, which means the average transmit power — the thing your link budget cares about — drops by roughly the back-off, and DC-to-RF efficiency drops with it. Clip instead and you get spectral regrowth into the adjacent channel and a raised error floor.
Two distinct numbers get called PAPR, and conflating them is the usual mistake:
| Constellation | Constellation PAPR (unfiltered) | Waveform PAPR, RRC β=0.35 | Waveform PAPR, RRC β=0.20 |
|---|---|---|---|
| π/2-BPSK | 0.00 dB | 1.9 dB | 2.6 dB |
| BPSK | 0.00 dB | 4.0 dB | 5.6 dB |
| QPSK | 0.00 dB | 3.8 dB | 5.1 dB |
| 16-QAM | 2.55 dB | 5.6 dB | 6.5 dB |
| 64-QAM | 3.68 dB | 6.1 dB | 6.7 dB |
| 256-QAM | 4.23 dB | 6.8 dB | 6.9 dB |
Column 2 is over the constellation points — for square -QAM, , which is 1.8 for 16-QAM, matching Cioffi's stated figure. Columns 3–4 are the 99.99th-percentile envelope power of the filtered continuous-time waveform, computed for this entry by simulation (200 000 random symbols, 8× oversampling, 25-symbol RRC span).
Two deployed consequences worth carrying:
- DVB-S2's constellation choice is a PAPR decision, not only an SNR one. The spec gives the unfiltered peak-to-average as 0 dB for QPSK and 8PSK, 1.05–1.11 dB for 16APSK and 1.97–2.12 dB for 32APSK — and says 16APSK/32APSK "are inherently more sensitive to non-linear distortions and would require quasi-linear transponders (i.e. with larger Output-Back-Off, OBO)". The APSK rings exist instead of square QAM precisely to keep that number low on a nonlinear transponder.
- 5G NR carries π/2-BPSK for coverage-limited uplink. TS 38.211 lists it first among the modulation mappers. Its ~2 dB waveform PAPR against QPSK's ~4–5 dB is directly recoverable as PA back-off, i.e. as transmit power, i.e. as cell-edge range.
OFDM is far worse than any of this: summing independently modulated subcarriers gives a near-Gaussian envelope whose PAPR grows with — the theoretical peak is dB, and deployed systems sit far below it. The commonly quoted 8–12 dB operating range is folklore here: it is not sourced in this entry. That, not modulation order, is why OFDM systems obsess over back-off and clipping.
Adaptive modulation and coding #
Nothing above chooses one constellation, because a real channel does not hold still. Fading, rain, and distance move the received SNR over tens of dB, and a fixed modulation must be designed for the worst case — wasting the entire margin whenever conditions are better than that. Adaptive modulation and coding measures the channel and picks the highest pair that still closes.
5G NR is the cleanest example because the standard publishes the ladder as a table. TS 38.214 MCS index table 2 for the downlink shared channel runs 28 entries from QPSK at target code rate 120/1024 up to 256-QAM at 948/1024:
| MCS index | Modulation order Qm | Target code rate ×1024 | Spectral efficiency (bit/s/Hz per RE) |
|---|---|---|---|
| 0 | 2 (QPSK) | 120 | 0.2344 |
| 4 | 2 (QPSK) | 602 | 1.1758 |
| 5 | 4 (16-QAM) | 378 | 1.4766 |
| 10 | 4 (16-QAM) | 658 | 2.5703 |
| 11 | 6 (64-QAM) | 466 | 2.7305 |
| 19 | 6 (64-QAM) | 873 | 5.1152 |
| 20 | 8 (256-QAM) | 682.5 | 5.3320 |
| 27 | 8 (256-QAM) | 948 | 7.4063 |
Read the boundaries. At each modulation change the ladder steps down in code rate — from QPSK at 602/1024 to 16-QAM at 378/1024, from 16-QAM at 658 to 64-QAM at 466 — so that spectral efficiency increases monotonically and continuously across the switch. That is the design: the two knobs are tuned jointly, never independently, and the transition points are where a higher constellation with more coding beats a lower one with less.
DVB-S2 does the same over a satellite link, adapting "on a frame-by-frame basis" using channel-quality reports fed back from each receiving terminal. Its 28 MODCODs span spectral efficiencies from 0.49 to 4.45 bits per symbol at required from −2.35 dB to +16.05 dB — an 18.4 dB operating range on one waveform. The claimed payoff is large: "ACM systems promise satellite capacity gains of up to 100 % − 200 %" relative to designing for the worst case.
| DVB-S2 MODCOD | Spectral efficiency (bit/symbol) | Required Es/N0 at QEF | Implied Eb/N0 |
|---|---|---|---|
| QPSK 1/4 | 0.490 | −2.35 dB | 0.75 dB |
| QPSK 3/4 | 1.487 | 4.03 dB | 2.31 dB |
| 8PSK 3/4 | 2.228 | 7.91 dB | 4.43 dB |
| 16APSK 3/4 | 2.967 | 10.21 dB | 5.49 dB |
| 32APSK 9/10 | 4.453 | 16.05 dB | 9.56 dB |
Spectral efficiency and are from TS 13 of EN 302 307 (64 800-bit FECFRAME, PER , AWGN, 50 LDPC iterations); the last column applies the standard's own note, . Compare 8PSK 3/4 at 4.43 dB against uncoded 8PSK's 13.95 dB in the earlier table: 9.5 dB of coding gain, net of the rate penalty, is what the LDPC/BCH concatenation buys.
At the top end the constellation eventually stops being limited by thermal noise at all. 802.11be's 4096-QAM carries 12 bits per symbol and "increases the nominal rate by 20 % using the same coding rate", but the SNR demand "is high, which is often achieved through strict error vector magnitude (EVM) requirement and beamformed transmission" — that is, the binding constraint has moved from the channel to the transmitter's own phase noise, PA linearity and I/Q imbalance. A required of 33.7 dB is not something you close by adding power.
Choosing one #
| Situation | Choice |
|---|---|
| Power-limited, bandwidth is free (deep space, IoT uplink) | BPSK/QPSK with a low-rate code; spend everything on coding gain |
| Nonlinear transponder, single carrier per amplifier | Constant or quasi-constant envelope — QPSK, 8PSK, APSK rings; never square QAM |
| Battery-powered handset, tight adjacent-channel mask | Continuous-phase, constant envelope: GMSK/GFSK, saturated PA |
| Bandwidth-limited with SNR to spare (cable, backhaul, indoor Wi-Fi) | Highest square QAM the EVM and margin support, with adaptive fallback |
| Channel SNR varies by more than a few dB | Adaptive modulation and coding — a ladder, not a point |
| No usable carrier phase reference (fast drift, cheap radio) | Differentially coherent DPSK; budget ~0.65 dB for DBPSK, more for DQPSK |
| Cell-edge / coverage-limited uplink | Low-PAPR variants (π/2-BPSK); the back-off you save is transmit power |
Two habits are worth carrying out of this. Compare at fixed , never fixed — the latter silently gifts high-order schemes their extra bits. And state the roll-off with every spectral-efficiency figure: bits per symbol is not bit/s/Hz, and the 20–35 % you lose to excess bandwidth is the same order as the difference between two adjacent constellations.
Sources
- paperNyquist, Certain Topics in Telegraph Transmission Theory (Trans. AIEE 47:617–644, 1928; Proc. IEEE 90(2) reprint)
- bookCioffi, Data Transmission Basics (Stanford EE379 course reader, Chapter 1)
- docsETSI EN 302 307 V1.2.1 — DVB-S2
- docsETSI TS 145 004 V9.0.0 — GSM/EDGE Modulation (3GPP TS 45.004)
- docsETSI TS 145 005 V9.3.0 — GSM/EDGE Radio transmission and reception (3GPP TS 45.005)
- docsETSI TS 138 211 V15.3.0 — 5G NR, Physical channels and modulation
- docsETSI TS 138 214 V15.3.0 — 5G NR, Physical layer procedures for data
- docsBluetooth Core Specification 6.2, Vol. 2 Part A — Radio Physical Layer Specification
- paperLiu et al., IEEE 802.11be Wi-Fi 7: Feature Summary and Performance Evaluation (arXiv:2309.15951)