Forty-three lessons have each handed you one piece. Modulation was a lesson, path loss was a lesson, noise was a lesson, OFDM was a lesson, and every one of them was worked with its own numbers, chosen to make that lesson’s point cleanly. What has never happened is the thing a working engineer actually does: take one system, fix one set of parameters, and carry them through every block from a bit at the source to a bit at the sink — so that the modulation you chose on the fourth line is the reason the cell is 336 metres and not 892, and the interference margin you then had to concede is the reason you need three times as many base stations.
This lesson introduces no new physics. Its whole job is assembly, and there is exactly one worked link in it. Every number below is either recomputed from the parameters at the top or carried in from a named lesson, and where a figure disagrees with the lesson it came from, that disagreement is stated rather than smoothed over. If you can follow one link end to end, you can build the spreadsheet that decides whether a network gets built — and, more usefully, you can tell which line in someone else’s spreadsheet is doing the lying.
Start with the shape of the thing. A radio link is a pipeline, and the receiver is the pipeline run backwards. Every block costs something — bandwidth, power, latency, decibels, money — and buys something else, and the table below names the lesson that priced each trade. Read the two halves as mirror images: every operation on the left is undone by the one facing it on the right.
| Transmit block | Taught in | What it costs | What it buys |
|---|---|---|---|
| Source, and digitising it | M5-L1 | Sampling and quantising a waveform turns one analogue signal into a much higher raw bit rate | Everything downstream: error correction, encryption, multiplexing and regeneration only exist for numbers |
| Source coding (compression) | Not taught in this course | Complexity and delay at both ends | Fewer bits to carry, which is the cheapest decibel in the whole chain. Named here for completeness — M5-L1 lists compression as a consequence of going digital but does not develop it |
| Channel coding | M6-L4, M9-L2 | Bandwidth or rate: a rate-Rc code sends 1/Rc channel bits per information bit, plus decoding delay | Coding gain — 5 to 8 dB for classical codes, 10 to 11 dB for turbo and LDPC, measured at a stated BER (M9-L2) |
| Bit-to-symbol mapping | M5-L2, M5-L3, M5-L4 | Required SNR: each extra pair of bits per symbol costs about 6 dB (M6-L4) | log₂M bits per symbol, so spectral efficiency (M6-L3) |
| Pulse shaping / OFDM modulation | M6-L2, M10-L2 | Excess bandwidth α for a single carrier; the cyclic prefix and PAPR for OFDM | Zero ISI at the symbol instants, and for OFDM a channel that is one complex number per subcarrier |
| Upconversion to RF | M3-L1 | An oscillator whose phase noise and frequency error become an SNR floor (M10-L2’s ICI) | A baseband signal moved to a band where an antenna is a sensible size (M3-L1, M7-L2) |
| Power amplifier | M5-L4, M10-L2 | Efficiency: a signal with 8–12 dB of PAPR needs the amplifier backed off by that much | Transmit power — the first and only absolute term in the link budget (M9-L4) |
| Antenna | M7-L1, M7-L2, M7-L4 | Aperture, which is physical size; and gain in one direction is loss in every other | Directive gain in dBi, and with an array, a steerable beam (M7-L4) |
Between the two antennas sits the part nobody designed. The channel contributes four impairments, and it is worth noticing that they fail in four different ways, which is why they are priced with four different tools:
| Receive block | Taught in | What it costs | What it buys |
|---|---|---|---|
| Antenna, then LNA | M7-L2, M9-L1 | Every decibel of noise figure is a decibel of range given away. The Friis cascade makes the first stage dominant, which is why the LNA sits at the antenna | The whole receive chain collapses into one number, NF |
| Downconversion | M3-L1, M10-L2 | Local-oscillator error becomes inter-carrier interference that power cannot remove | RF back to baseband, where the sampling happens |
| Matched filter / FFT | M6-L2, M10-L2 | Timing and frequency synchronisation, and for OFDM an FFT every symbol | The best achievable SNR in Gaussian noise (M6-L2’s root-raised-cosine pair), and per-subcarrier flat channels |
| Equaliser / channel estimation | M10-L2, M10-L3 | Pilot and reference symbols, which are payload you do not send | One complex division per subcarrier instead of an adaptive tapped-delay-line equaliser |
| Demodulation | M5-L3, M9-L2 | The required SNR the whole budget is measured against — the one term the receiver cannot negotiate | Bit decisions, and with them the error rate M9-L2 turned into a curve |
| Channel decoding | M9-L2 | Latency, and silicon area | The coding gain the transmitter paid bandwidth for — collected here, and nowhere else |
| Source decoding, and the sink | M5-L1 | — | The bit that was put in at the top. If it is the same bit, the link worked |
Two blocks in that list are not radio at all, and one is missing entirely. Source coding and source decoding belong to information theory and are not developed anywhere in WRL 101 — M5-L1 mentions compression as a benefit of going digital and stops there. They are in the diagram because a chain drawn without them invites the belief that the radio decides the data rate, when in practice the codec usually does. Be equally suspicious of the other absence: nothing in the chain above is labelled “protocol”, and yet retransmission, scheduling and headers routinely cost more of the delivered rate than any single decibel below.
Now fix the parameters and never change them again except deliberately. The link is a 5G NR mid-band downlink: an urban macro site at 3.5 GHz, in the n78 band M10-L4 and M11-L3 both identify as TDD almost everywhere, serving a hand-held device. Every value below is either a figure a named lesson already used, or a standards number stated as such.
| Parameter | Value | Where it comes from |
|---|---|---|
| Carrier frequency | 3.5 GHz | Band n78, 3300–3800 MHz (M10-L4, M11-L3) |
| Channel bandwidth | 100 MHz, TDD | M9-L1 works the 100 MHz noise floor; M10-L2 lists the 100 MHz / 4096-point / 30 kHz row |
| Subcarrier spacing | 30 kHz, normal cyclic prefix 2.34 µs | M10-L2, verified below |
| Base-station power | 46 dBm (40 W) per carrier | M9-L4’s macro figure |
| Feeder and connector loss | 2.0 dB | M9-L4 |
| Panel antenna gain | 17 dBi sector panel | M9-L4’s cellular example; M7-L2 for what dBi means |
| Handset antenna gain | 0 dBi | M9-L4; M7-L2 for what dBi means |
| Body loss | 3.0 dB | M9-L4 |
| Implementation loss | 2.0 dB | M9-L4 |
| Handset noise figure | 7.0 dB | M9-L4’s downlink budget |
| Modulation and code rate | 64-QAM, Rc = 3/4 | M5-L4, M6-L3 |
| Spatial layers | 2 (a 2×2 link to a two-antenna handset) | M10-L3: min(Nt, Nr) = 2 |
| Path-loss exponent | n = 3.5, anchored at d₀ = 100 m | M8-L4: urban macro n = 2.7–3.5, outdoor anchor at 100 m or 1 km |
| Margins | fade 8.0, shadowing 10.2, interference 3.0 dB | M8-L3, M8-L4, M9-L3, all as priced in M9-L4 |
Everything the receiver contributes collapses into one number, and M9-L1 built it from −174 dBm/Hz at 290 K. The bandwidth term for 100 MHz is 10 log₁₀(10⁸) = 80.00 dB exactly, so the thermal floor is −174 + 80 = −94.0 dBm — and that is the figure M9-L1 states for a 100 MHz 5G channel, so this is a check rather than a new calculation. Add the handset’s 7 dB noise figure and the effective floor is −87.0 dBm.
This is the term most budgets fudge, so build it from M6-L4 and M9-L2 instead. Uncoded 64-QAM needs Eb/N₀ = 18.8 dB at BER 10−6 (M6-L4’s table, quoted again in M9-L2). A rate-3/4 LDPC code returns coding gain that M6-L4 puts at 5 to 8 dB and M9-L2 puts at 10 to 11 dB — the two lessons disagree, and this capstone will not paper over it. Take 5.3 dB, below the bottom of both ranges, so that every figure that follows is a floor rather than a forecast; the section “What this model cannot tell you” walks what a more generous number does to the answer. Then convert energy per bit into a power ratio using M9-L1’s relation SNR = Eb/N₀ + 10 log₁₀η, where η is the on-subcarrier spectral efficiency, log₂64 × 3/4 = 6 × 0.75 = 4.5 b/s/Hz:
EIRP first, because it is everything the rest of the link ever learns about the transmitter (M8-L1): 46.0 − 2.0 + 17.0 = 61.0 dBm. That is exactly the EIRP M9-L4 computed for its 900 MHz downlink, from the same three lines — a coincidence of shared assumptions rather than a derivation, but a useful anchor. Then the receive-end losses:
m9-l4.html’s downlink bullet list. Stating the difference is the point — two budgets that disagree by exactly one named row are consistent; two that disagree by an unnamed amount are notThree margins, three mechanisms, added rather than root-sum-squared because they are not all Gaussian in decibels (M9-L4’s rule): 8.0 dB of fade margin, which is the figure M9-L4 justified for an OFDM link whose symbol spans far more than the coherence bandwidth (M8-L3) — conservative here, since two receive antennas add diversity on top; 10.2 dB of shadowing, being 1.28 × 8 dB for 90% cell-edge reliability at the urban σ of M8-L4; and 3.0 dB of interference margin, the rise-over-thermal of M9-L3. Total 21.2 dB. The link closes when
56.0 − PL ≥ −67.0 + 21.2 = −45.8 dBm, so the allowed path loss is 56.0 + 45.8 = 101.8 dB.
Turn that into a distance. Hata is out of the question here — M8-L4 states its validity ends at 1500 MHz, and 3.5 GHz is more than twice that — so use the log-distance model with an outdoor anchor. M11-L3 computes free-space loss at 3.5 GHz over 100 m as 83.3 dB; recomputing from M8-L1’s form, 92.45 + 20 log₁₀(0.1) + 20 log₁₀(3.5) = 92.45 − 20 + 10.88 = 83.33 dB ✓.
Redo the last three lines at the bottom of the modulation ladder and the same site covers a different city. QPSK at rate 1/2 has η = 2 × 0.5 = 1.0 b/s/Hz, so 10 log₁₀(1.0) = 0, and M6-L4 gives 10.5 dB of uncoded Eb/N₀ for QPSK at BER 10−6. With the same 5.3 dB of coding gain, SNRreq = 10.5 − 5.3 + 0 = 5.2 dB:
One site, one physical environment, one set of margins, and two radii differing by a factor of 2.65 — and the only thing that changed was how many bits you asked each symbol to carry. Coverage is not a property of a base station. It is a property of a base station and a data rate, quoted together.
The budget above says the link closes at 336 m. It says nothing about how fast, and the gap between “100 MHz” and “delivered megabits” is where most datasheet claims are manufactured. Build it the honest way, one factor at a time, using M10-L2’s numerology.
Now the spectral efficiency, which is M6-L3’s definition applied to the number that was actually delivered rather than the one on the subcarrier: η = 710×10⁶/100×10⁶ = 7.10 b/s/Hz. On the subcarrier it was 4.5 per layer, so 9.0 for two layers; the ratio 7.10/9.0 = 0.789 is the useful fraction, arriving a second time by a different route ✓. And check it against a published figure: M6-L3’s table gives LTE 2×2 MIMO a peak of about 7.5 b/s/Hz, reached the same way — 64-QAM times two spatial streams. 7.10 against 7.5 is agreement to 5%, and the residue is coding: at rate 5/6 instead of 3/4 the same chain gives 6 × 5/6 × 2 × 0.789 = 7.89 b/s/Hz, so M6-L3’s 7.5 sits between this lesson’s two code rates. Nothing is inconsistent, and the comparison only works because both figures were stated with their assumptions.
The 710 Mbit/s is a downlink instant, not a downlink hour. This is a TDD carrier, so the two directions share the same 100 MHz in time. M10-L4 works its examples at a 75% downlink share (and prices the alternative at 10 log₁₀(0.75) = −1.25 dB of average power), which on a 3:1 pattern makes the sustained downlink rate 710 × 0.75 = 532 Mbit/s, and the sustained η 5.32 b/s/Hz. Note carefully that the budget does not pay this 25% — 46 dBm is the power during a downlink slot, so the range stays 336 m. TDD charges rate, not decibels. The guard period costs nothing at this cell size either: 336 m is a 672 m round trip, which at M10-L4’s 300 m per microsecond is 2.24 µs, against a single 30 kHz symbol of 35.67 µs available as guard — sixteen times more than needed.
Here is the whole link as one column of decibels. Read it top to bottom and notice that the last line is not an approximation: the SNR left over at the cell edge equals the SNR the modulation required, exactly, because the distance was solved to make it so. A ledger that closes to the decimal is a ledger you can hand to someone else.
| Line | Value | Running total | Source |
|---|---|---|---|
| Power amplifier output | +46.0 dBm | 46.0 dBm | 40 W macro (M9-L4) |
| Feeder and connector loss | −2.0 dB | 44.0 | M9-L4 |
| Panel antenna gain | +17.0 dBi | 61.0 dBm = EIRP | M9-L4; M7-L2, M8-L1 for the concept |
| Path loss at 336 m, n = 3.5 | −101.8 dB | −40.8 | M8-L4 log-distance, anchored on M11-L3’s 83.3 dB |
| Handset antenna gain | +0.0 dBi | −40.8 | M9-L4; M7-L2 for the concept |
| Body loss | −3.0 dB | −43.8 | M9-L4 |
| Implementation loss | −2.0 dB | −45.8 dBm = Pₕₓ | M9-L4 — the gap between a real demodulator and M5-L2’s theory |
| Thermal noise in 100 MHz | −94.0 dBm | — | −174 + 80 (M9-L1) |
| Noise figure | +7.0 dB | −87.0 dBm floor | M9-L1 Friis cascade, M9-L4’s handset value |
| SNR available | — | −45.8 − (−87.0) = 41.2 dB | The whole point of the seven lines above |
| Fade margin reserved | −8.0 dB | 33.2 | M8-L3 Rayleigh tail, relaxed by OFDM frequency diversity (M10-L2) |
| Shadowing margin reserved | −10.2 dB | 23.0 | 1.28 × 8 dB at 90% cell edge (M8-L4) |
| Interference margin reserved | −3.0 dB | 20.0 | 3 dB rise over thermal (M9-L3) |
| SNR at the 90% cell edge | — | 20.0 dB | — |
| SNR required by 64-QAM r = 3/4 | — | 20.0 dB | 18.8 − 5.3 + 6.53 (M6-L4, M9-L2, M9-L1) |
| Link margin | — | 0.0 dB ✓ | Zero by construction — 336 m is the radius where it hits zero |
Read the ledger for what it costs rather than what it totals. The receiver was handed 41.2 dB of SNR and gave 21.2 dB of it back to statistics before the demodulator saw a symbol — more than half of it, spent on things that have not happened yet and might not. That is not waste; it is the price of promising 90% reliability instead of 50%. But it is the largest single expenditure on the sheet, larger than the antenna gain, larger than the coding gain, and it is the one that never appears in a marketing figure.
One last check, and it is the one that ties Module 6 to everything after it. At 20.0 dB of SNR, M6-L3 gives the Shannon ceiling as log₂(1 + 100) = 6.658 b/s/Hz per spatial channel, and M10-L3 says two channels obey it separately, so the ceiling for this link is 2 × 100 MHz × 6.658 = 1331.6 Mbit/s. We delivered 710. The whole shortfall is 10 log₁₀(1331.6/710) = 2.73 dB, and it decomposes into exactly two named parts:
Everything so far has been one pass through the chain. What makes system design a discipline rather than a calculation is that the parameters are coupled, so a single change propagates until it comes back and changes the thing you were trying to improve. Close one loop completely, with the same parameter set, and the shape of the problem becomes visible.
The request is ordinary: go from 64-QAM to 256-QAM and give me a third more throughput. Follow it round.
That is the loop, and it does not terminate on its own. Every densification step raises interference, which shrinks cells, which forces more densification. What breaks the loop is not more power — raising everyone’s transmit power raises the interference by the same amount and changes nothing (M9-L3’s central point). What breaks it is spatial discrimination: narrow beams that put energy on one user and a null on the neighbouring cell, which is M7-L4’s array and M10-L3’s massive MIMO, and it is the single strongest reason 5G invested in antennas rather than in bandwidth. The interference term is the only one in this whole lesson that depends on decisions other people made, and that is exactly what makes it the hard one.
A worked example this tidy invites more confidence than it has earned, so end with the boundaries. Every one of these is a limitation the source lessons stated, and repeating them is not modesty — it is the difference between a model and a claim.
Look back at the ledger one more time and count the lessons in it. Nine modules and seventeen lessons turned up in a single column of sixteen numbers: the decibels of M2-L4, the reason for a carrier from M3-L1, the constellation of M5-L4, the required SNR of M6-L4, the efficiency definition of M6-L3, the antenna gain of M7-L2, the path loss of M8-L1 and M8-L4, the fading statistics of M8-L3, the noise floor of M9-L1, the error rate of M9-L2, the interference of M9-L3, the budget discipline of M9-L4, the numerology of M10-L2, the layers of M10-L3, the duplexing of M10-L4, and the band plan of M11-L3. None of them was optional. Delete any one row and the answer changes by a factor you would notice in a coverage map.
And there is a second, quieter thing the course built, which is a habit rather than a formula: every number arrives with a bandwidth, a reference, an assumption and a validity range attached, or it does not arrive. A sensitivity without a bandwidth is a mood (M9-L4). A range claim without a path-loss exponent is a best case (M11-L4). A model quoted outside its validity range returns a confident, meaningless figure (M8-L4). A spectral efficiency without an overhead assumption cannot be compared with anything (M6-L3). Those four sentences are, in the end, most of what separates an engineer from a spreadsheet.