ELE-350 · Lesson 8 of 12 · 24 min
Digital modulation
Digital modulation puts bits onto a carrier by switching its amplitude, phase or frequency among a small set of allowed values. Each allowed waveform is a symbol, and the whole set can be drawn as points on a plane, the constellation. The geometry of that drawing explains almost everything about a modulation scheme: how many bits each symbol carries, how much bandwidth the signal needs, how close the points are and therefore how sensitive the scheme is to noise, and whether the envelope is constant enough for an efficient power amplifier. This lesson builds the signal-space view and uses it to compare amplitude-shift keying, phase-shift keying, quadrature amplitude modulation and frequency-shift keying, ending with the choice of modulation for the TLR-1.
Amara has a short list from the transceiver datasheets. The chips she is considering all offer two- and four-level FSK with Gaussian filtering, some offer offset QPSK with spreading, and some offer a proprietary chirp spread-spectrum mode. She wants to understand the trade-offs in general before she reads any vendor's claims, so she starts from first principles with Leo at the whiteboard.
Signal space
A digital modulator sends one of M waveforms s_i(t) in each symbol period T. For most schemes, every waveform can be built from two basis functions, a cosine and a sine at the carrier frequency, scaled so each has unit energy over a symbol. Each symbol is then a point (s_i1, s_i2) on a plane: the in-phase (I) coordinate along the cosine and the quadrature (Q) coordinate along the sine. The distance of a point from the origin squared is the symbol's energy, and the distance between two points is what noise must bridge to cause an error.
Two energy measures are used. E_s is the average energy per symbol, the average of the squared distances of the points from the origin. E_b = E_s/log₂M is the energy per bit, the fair basis for comparing schemes that carry different numbers of bits per symbol. The key figure of merit for noise is the minimum distance d_min between any two points, compared with √E_b: the larger d_min²/E_b, the less power the scheme needs for a given error rate.
Amplitude-shift keying and on-off keying
Amplitude-shift keying switches the carrier between amplitude levels. Its simplest form, on-off keying (OOK), turns the carrier on for a one and off for a zero. It is cheap: the transmitter is an oscillator switched by the data and the receiver can be an envelope detector, so OOK is common in garage-door openers, key fobs and simple sensors. Its points lie at 0 and √(2E_b) on the I axis, so d_min²/E_b = 2, half that of BPSK, and its envelope varies completely, so the decision threshold depends on the received level. For the TLR-1, which must work reliably near strong interferers, OOK's simplicity does not compensate for those weaknesses.
Phase-shift keying
Binary phase-shift keying (BPSK) sends the carrier with phase 0 for one bit value and π for the other, which is simply polar NRZ data multiplied by the carrier: the DSB-SC signal of lesson 2 with a two-level message. Its two points are at ±√E_b, so d_min² = 4E_b, the best possible for two signals of a given energy; they are antipodal.
Quadrature PSK (QPSK) sends two BPSK signals at once, one on the cosine and one on the sine. Each carries one bit, so a QPSK symbol carries two bits in the same bandwidth that BPSK needs for one. Since the two components are orthogonal, each behaves like an independent BPSK channel, and QPSK has exactly the same bit error rate as BPSK for the same E_b/N₀. That free doubling of spectral efficiency is why QPSK and its variants are everywhere, from satellite links to the Zigbee-style radios that use offset QPSK. Gray coding assigns bit patterns so that neighboring points differ in only one bit, so the most likely error, to a nearest neighbor, costs only one bit error.
Higher-order PSK puts M points on a circle. Every symbol has the same energy, so the envelope is nearly constant, but the points crowd together as M grows. Going from QPSK to 8-PSK adds one bit per symbol and costs about 3.6 dB of power for the same error rate; 16-PSK costs about 4.6 dB more. Variants address practical problems: offset QPSK delays the Q channel by half a symbol so the phase never jumps by 180°, which keeps the envelope from passing through zero after filtering; π/4-DQPSK alternates between two QPSK constellations rotated by 45° and encodes data in phase changes, allowing simple differential detection. Differential encoding in general, as in DPSK, lets a receiver compare each symbol's phase with the previous one instead of needing an absolute phase reference, at a cost of about 1 dB for binary DPSK at low error rates.
Quadrature amplitude modulation
QAM uses both amplitude and phase, arranging points in a grid. Each of the I and Q components is a √M-level PAM signal from lesson 6, so 16-QAM is two 4-level signals in quadrature and carries 4 bits per symbol; 64-QAM carries 6 and 256-QAM carries 8. For a given average energy, a square grid keeps points farther apart than a circle of the same size, so 16-QAM needs about 4 dB less power than 16-PSK. QAM is the workhorse of high-capacity links: cable modems, Wi-Fi, cellular networks and microwave backhaul all switch among QAM orders as the SNR allows, a technique called adaptive modulation. Its cost is a large peak-to-average power ratio, which forces the power amplifier to run backed off from saturation, wasting battery and heat.
Frequency-shift keying
Frequency-shift keying sends each symbol as a different frequency. Binary FSK uses two tones, f_c ± Δf, so it is the digital version of the FM of lesson 3, and like FM it has a constant envelope. The modulation index h = 2Δf/R_b is the tone spacing divided by the bit rate. Two tones are orthogonal over a symbol, so their correlation is zero, when the spacing is a multiple of 1/(2T) for a coherent receiver that knows the phase, or a multiple of 1/T for a non-coherent receiver that does not. Orthogonal binary FSK has d_min² = 2E_b, so it needs 3 dB more power than BPSK for the same error rate with coherent detection, and a little more again with non-coherent detection.
If the frequency changes without any jump in phase, the scheme is continuous-phase FSK. Its spectrum is far more compact than that of FSK made by switching two independent oscillators, whose phase jumps splatter energy widely. Minimum-shift keying (MSK) is continuous-phase FSK with h = 0.5, the smallest spacing that is orthogonal for coherent detection, and it can be shown to be equivalent to offset QPSK with half-sine pulse shaping. Passing the data through a Gaussian filter before the frequency modulator smooths the transitions further: Gaussian MSK, used in GSM cellular with BT = 0.3, and Gaussian FSK (GFSK), used in Bluetooth and many sub-gigahertz radios with BT around 0.5.
Large-alphabet FSK uses M orthogonal tones. Unlike PSK and QAM, its power efficiency improves as M grows, because each symbol carries more bits while the tones stay orthogonal, but it needs more bandwidth, roughly M tones' worth. That is the opposite trade to QAM: M-FSK spends bandwidth to save power. Chirp spread spectrum, used by some long-range low-power radios, makes a related trade by sweeping each symbol across a wide band; it reaches very low sensitivities at very low data rates.
import math, cmath
def stats(points):
M = len(points); Es = sum(abs(p)**2 for p in points) / M
dmin = min(abs(a - b) for i, a in enumerate(points) for b in points[i+1:])
Eb = Es / math.log2(M); papr = max(abs(p)**2 for p in points) / Es
return math.log2(M), dmin**2 / Eb, 10 * math.log10(papr)
psk = lambda M: [cmath.exp(2j * math.pi * k / M) for k in range(M)]
qam = lambda M: [complex(i, q) for i in range(-int(M**0.5) + 1, int(M**0.5), 2) for q in range(-int(M**0.5) + 1, int(M**0.5), 2)]
for name, pts in (('BPSK', psk(2)), ('QPSK', psk(4)), ('8-PSK', psk(8)), ('16-PSK', psk(16)), ('16-QAM', qam(16)), ('64-QAM', qam(64))):
k, d2, papr = stats(pts)
print(f"{name:7s}: {k:.0f} bits/symbol, dmin^2/Eb = {d2:5.2f} ({10*math.log10(4/d2):4.1f} dB worse than BPSK), symbol PAPR = {papr:4.2f} dB, RF spectral efficiency (alpha 0.35) = {k/1.35:.2f} b/s/Hz")
# orthogonality of two FSK tones over one symbol, as a function of spacing x = df*T
def corr(x, phase):
n = 2000; s = 0.0
for i in range(n):
t = (i + 0.5) / n
s += math.cos(2*math.pi*20*t) * math.cos(2*math.pi*(20 + x)*t + phase)
return 2 * s / n
for x in (0.25, 0.5, 0.75, 1.0):
print(f"spacing {x:.2f}/T: correlation {corr(x, 0):+.3f} (same phase), worst over phase {max(abs(corr(x, p)) for p in (0, math.pi/4, math.pi/2)):.3f}")BPSK : 1 bits/symbol, dmin^2/Eb = 4.00 ( 0.0 dB worse than BPSK), symbol PAPR = 0.00 dB, RF spectral efficiency (alpha 0.35) = 0.74 b/s/Hz QPSK : 2 bits/symbol, dmin^2/Eb = 4.00 ( 0.0 dB worse than BPSK), symbol PAPR = 0.00 dB, RF spectral efficiency (alpha 0.35) = 1.48 b/s/Hz 8-PSK : 3 bits/symbol, dmin^2/Eb = 1.76 ( 3.6 dB worse than BPSK), symbol PAPR = 0.00 dB, RF spectral efficiency (alpha 0.35) = 2.22 b/s/Hz 16-PSK : 4 bits/symbol, dmin^2/Eb = 0.61 ( 8.2 dB worse than BPSK), symbol PAPR = 0.00 dB, RF spectral efficiency (alpha 0.35) = 2.96 b/s/Hz 16-QAM : 4 bits/symbol, dmin^2/Eb = 1.60 ( 4.0 dB worse than BPSK), symbol PAPR = 2.55 dB, RF spectral efficiency (alpha 0.35) = 2.96 b/s/Hz 64-QAM : 6 bits/symbol, dmin^2/Eb = 0.57 ( 8.5 dB worse than BPSK), symbol PAPR = 3.68 dB, RF spectral efficiency (alpha 0.35) = 4.44 b/s/Hz spacing 0.25/T: correlation +0.641 (same phase), worst over phase 0.641 spacing 0.50/T: correlation +0.000 (same phase), worst over phase 0.644 spacing 0.75/T: correlation -0.216 (same phase), worst over phase 0.306 spacing 1.00/T: correlation +0.000 (same phase), worst over phase 0.000
The first table reproduces the numbers on the figure: QPSK matches BPSK's distance at twice the bits per symbol, 8-PSK is about 3.6 dB worse, 16-QAM about 4 dB worse than QPSK and 4 dB better than 16-PSK, and the QAM points have a peak power about 2.6 dB above average for 16-QAM and 3.7 dB for 64-QAM before any pulse shaping adds more. The tone correlations show orthogonality: at a spacing of 0.5/T the in-phase correlation is zero but some phases leave a residual, while at 1/T the tones are orthogonal for every phase, which is why non-coherent FSK uses the wider spacing.
Bandwidth, power and the amplifier
| Scheme | Bits/symbol | d²min/E_b | Envelope | Typical use |
|---|---|---|---|---|
| OOK | 1 | 2 | On-off | Key fobs, simple sensors |
| BPSK | 1 | 4 | Constant (before filtering) | Deep-space links, robust control channels |
| QPSK, O-QPSK | 2 | 4 | Nearly constant | Satellite, low-power mesh radios |
| 8-PSK | 3 | 1.76 | Nearly constant | Satellite and microwave |
| 16-QAM | 4 | 1.6 | Varies, PAPR high | Wi-Fi, cellular, cable |
| 2-FSK, GFSK | 1 | 2 (orthogonal) | Constant | Sub-GHz telemetry, Bluetooth |
| M-FSK, chirp | log₂M | grows with M | Constant | Long-range low-rate links |
A modulation's envelope decides the transmitter's power amplifier. Constant-envelope schemes, FSK, MSK and GFSK, can use a saturated class C or class E amplifier at 50 to 70 percent efficiency, because amplitude distortion does not matter when the amplitude carries no information. QAM and filtered PSK need a linear amplifier, the class A or AB of ELE-340, backed off by roughly the PAPR, so the efficiency may be 10 to 30 percent. For a battery-powered pole station that is a big difference. The TLR-1 pole stations draw power from the APS-2 supply, which is not a battery, but the cabinet's thermal budget and the transceiver's integrated power amplifier still favor a constant envelope.
Choosing the TLR-1 modulation
Amara scores the candidates against the project's needs. A data rate of tens of kilobits per second is far below what QPSK or QAM could carry in the band, so spectral efficiency is not the constraint; reliability, range and interference tolerance are. Binary GFSK is supported by every candidate chip, is constant-envelope, can be detected non-coherently without carrier recovery, which keeps the preamble short for the TLR-1's brief bursts, and enjoys the capture effect of lesson 3 against weaker interferers. Its 3 dB power penalty relative to coherent BPSK, plus about 1 dB more for non-coherent detection, is the price. Lesson 9 quantifies that price, and lesson 10 shows how coding can recover most of it.
Worked problem
Bandwidth and bit rate for three choices
For 50 kb/s, compare the approximate RF bandwidth of BPSK and QPSK with α = 0.35 root-raised-cosine filtering, and binary GFSK with h = 0.5, using Carson's rule for the GFSK estimate.
Show solution
- \[\text{BPSK: } R_s = 50\ \text{k/s}, \quad B \approx 1.35 \times 50 = 67.5\ \text{kHz}\]
- \[\text{QPSK: } R_s = 25\ \text{k/s}, \quad B \approx 1.35 \times 25 = 33.8\ \text{kHz}\]
- \[\text{GFSK: } \Delta f = \frac{hR_b}{2} = 12.5\ \text{kHz}, \quad B \approx 2(12.5 + 25) = 75\ \text{kHz}\]
Answer: QPSK uses half the bandwidth of BPSK at the same error performance. GFSK with h = 0.5 needs roughly the same bandwidth as BPSK and about 3 to 4 dB more power for the same error rate, in exchange for a constant envelope and a simpler, non-coherent receiver. For a band of 26 MHz and only a few links, Amara accepts that trade.
Common mistakes
MistakeComparing modulations by d_min alone without normalizing energy.
InsteadCompare d_min²/E_b so schemes with different bits per symbol and energies are judged fairly.
MistakeAssuming QPSK needs more power per bit than BPSK because it has more points.
InsteadQPSK is two orthogonal BPSK channels and has the same BER versus E_b/N₀.
MistakeBuilding FSK by switching two free-running oscillators.
InsteadPhase jumps widen the spectrum; use continuous-phase FSK, ideally with Gaussian shaping.
MistakeRunning a QAM transmitter's amplifier at saturation.
InsteadQAM carries information in amplitude; back off by about the PAPR or the constellation distorts.
Summary and key terms
- Signal space represents each symbol as a point on I and Q axes; distance from the origin gives energy, distance between points gives noise tolerance.
- BPSK is antipodal with d_min² = 4E_b; QPSK doubles the bits per symbol with the same BER.
- M-PSK and M-QAM pack more bits per symbol at the cost of power; QAM's grid is more efficient than PSK's circle but has a varying envelope.
- FSK is orthogonal at spacings of 1/(2T) for coherent and 1/T for non-coherent detection; MSK and GFSK use continuous phase for compact spectra.
- Constant-envelope schemes allow efficient saturated amplifiers; QAM needs linear, backed-off amplifiers.
- Binary GFSK suits the TLR-1: constant envelope, non-coherent detection, short preambles, at a 3–4 dB power cost.
- Constellation
- The set of points representing a modulation's symbols in signal space.
- Energy per bit
- The average symbol energy divided by the number of bits per symbol.
- Gray coding
- A bit mapping in which neighboring constellation points differ in only one bit.
- BPSK
- Binary phase-shift keying, with phases 0 and π.
- QAM
- Quadrature amplitude modulation, a grid of points using both amplitude and phase.
- MSK
- Minimum-shift keying, continuous-phase FSK with modulation index 0.5.
- GFSK
- Frequency-shift keying with Gaussian-filtered data for a compact spectrum.
- Peak-to-average power ratio
- The ratio of a signal's peak power to its average power.
Practice problems
Work each problem on paper first, then reveal the answer to check.
How many bits per symbol does 256-QAM carry, and what is its symbol rate for 48 Mb/s?
Show answer
8 bits; 6 M symbols/s.
Using d_min = 2√E_s sin(π/M), find d_min²/E_b for 8-PSK.
Show answer
E_s = 3E_b; d² = 4 × 3E_b × sin²(22.5°) = 1.76E_b.
A 9.6 kb/s FSK link uses h = 1. What is the tone spacing?
Show answer
9.6 kHz (Δf = ±4.8 kHz).
Why does offset QPSK suit a nonlinear amplifier better than QPSK?
Show answer
Its phase never jumps by 180°, so after filtering the envelope does not pass through zero.
Rank BPSK, 16-QAM and 2-FSK by power needed for the same coherent BER.
Show answer
BPSK least, then 2-FSK (3 dB more), then 16-QAM (about 4 dB more than BPSK).
What is the minimum tone spacing for non-coherent orthogonal FSK at 50 kb/s?
Show answer
1/T = 50 kHz.
Lesson quiz · 5 questions
Score 60% or more to complete this lesson.
Create a free account to save your progress, take quizzes and earn a certificate.