5G NR Transmitter and Receiver Chain: Following the Bits From MAC to Antenna and Back
A block-by-block walk through the NR physical-layer transmit chain and its mirror-image receiver, explaining what each stage does and why it sits where it does.
The mental model: an assembly line and its reverse
The transmit chain is an assembly line. It receives a bag of bits from the MAC (a transport block) and, station by station, wraps it in protection, spreads it over antennas, and turns it into a time-domain waveform. The receive chain is the same line run backwards: every station is undone in reverse order. If you remember the order on one side, you know it on the other.
Two questions to ask at every station: what problem does this stage solve, and why here and not earlier or later.
The transmit chain (downlink PDSCH as the example)
Transport block from MAC
│
1 CRC attachment "Did the whole block arrive intact?"
2 Base-graph selection Pick LDPC BG1 (big/high-rate) or BG2 (small/low-rate)
3 Code-block segmentation Cut into ≤ 8448 / 3840-bit pieces, each with its own CRC
4 LDPC encoding Add parity bits
5 Rate matching + RV Trim/repeat to fit the allocated REs; choose redundancy version
6 Bit interleaving Spread bits so a burst of errors hits many code bits lightly
7 Code-block concatenation Reassemble into one codeword
8 Scrambling XOR with a UE/cell-specific sequence
9 Modulation mapping Bits → QPSK … 256QAM symbols
10 Layer mapping Split the codeword(s) across 1–8 spatial layers
11 [Transform precoding] Uplink DFT-s-OFDM only
12 Precoding / port mapping Layers → antenna ports (implementation-specific in DL)
13 VRB → PRB → RE mapping Place symbols on the grid, skipping DM-RS, CSI-RS, reserved REs
14 OFDM: IFFT + CP Frequency-domain grid → time-domain samples
15 RF DAC, up-conversion, analog beamforming, PA, antenna
Stages 1–7 are channel coding (TS 38.212, the "upper PHY"). Stages 8–14 are modulation and mapping (TS 38.211, the "lower PHY"). That boundary is also where O-RAN's 7-2x split puts the fronthaul.
Why each stage sits where it does
- CRC before coding: the receiver must be able to check the whole block after decoding, so the CRC has to be inside the code.
- Segmentation before LDPC: LDPC decoders work on fixed-size blocks; giant transport blocks (up to ~1.2 Mbit) are cut into code blocks, each with a 24-bit CRC so the receiver can ask for retransmission of only the failed pieces (code-block groups).
- Rate matching after coding: the code produces a fixed mother-code output; rate matching adapts it to however many REs the scheduler allocated. The redundancy version chooses which part of the circular buffer to send, enabling incremental redundancy across HARQ retransmissions.
- Scrambling before modulation: scrambling is a bit operation. Done here it randomises the bit pattern so neighbouring cells' interference looks like noise rather than structured signal, and so that a UE cannot accidentally decode another UE's codeword.
- Layer mapping before precoding: layers are the logical spatial streams; precoding maps them onto antenna ports (and hence beams). Splitting first, then mixing, keeps the MIMO processing clean.
- Precoding is not standardised in the downlink: the gNB may use any precoder because the DM-RS goes through the same one — the UE estimates the effective channel. The spec only fixes the uplink codebooks (so the gNB can tell the UE which precoder to use).
- IFFT last: everything before it lives on the frequency-domain grid; the IFFT is the single point where the grid becomes a waveform. The CP is appended to each output symbol.
The receive chain (the same line backwards)
Antenna → LNA, down-conversion, ADC
│
1 Timing/frequency sync Using SSB / TRS (and QCL info); align the FFT window
2 CP removal + FFT Time-domain samples → frequency-domain grid
3 RE de-mapping Pull out data REs, DM-RS REs, PT-RS REs of this allocation
4 Channel estimation From DM-RS (per port, per PRG); interpolate across REs
5 Phase-noise correction From PT-RS (FR2)
6 Equalisation / MIMO detection Undo the effective channel (MMSE, etc.), separate layers
7 [Inverse transform precoding] Uplink DFT-s-OFDM only
8 Demodulation Symbols → soft bits (LLRs)
9 Descrambling Flip LLR signs per the scrambling sequence
10 Rate de-matching Place LLRs into the circular buffer; combine with earlier HARQ copies
11 LDPC decoding Iterative belief propagation
12 Code-block CRC check Report failed CBs / CBGs
13 Concatenation + TB CRC Deliver to MAC; generate HARQ ACK/NACK
Two stages have no transmit-side twin — synchronisation and channel estimation — because they exist only to undo what the channel did, not what the transmitter did. They are also where most of the receiver's complexity and most of the performance differences between vendors live.
Where the reference signals plug in
| Receiver stage | Reference signal used |
|---|---|
| Timing/frequency sync | SSB (initial), TRS (connected), via QCL Type A/C |
| Rx beam selection (FR2) | SSB / CSI-RS via QCL Type D (TCI state) |
| Channel estimation | DM-RS of the specific channel (PBCH, PDCCH or PDSCH) |
| Phase-noise correction | PT-RS |
| Link adaptation feedback (not in the chain, but feeds the transmitter) | CSI-RS → CQI/PMI/RI |
Uplink differences
The PUSCH chain is the same with three changes: transform precoding may be inserted (stage 11), precoding uses a codebook the gNB signals in DCI 0_1 (or non-codebook based on SRS), and uplink control information (UCI) may be multiplexed into the PUSCH before modulation. The gNB receiver is the same list, generally with more antennas and more sophisticated MIMO detection.
A numbers example
A 30 kHz PDSCH, 50 PRBs, 12 symbols (one of them DM-RS), 2 layers, 64QAM, R ≈ 0.6. Data REs per layer = 50 × 12 × 11 = 6 600, so 13 200 REs over 2 layers, × 6 bits = 79 200 coded bits. At R ≈ 0.6 that carries a TBS of about 47.5 kbit, which is cut into 6 code blocks (BG1, ≤ 8448 bits each), LDPC-encoded to roughly 3× their size, rate-matched down to the 79 200 bits available, scrambled, mapped to 13 200 64QAM symbols on 2 layers, placed on 6 600 REs per layer, then IFFT'd with a 4096-point transform (of which 600 bins carry this UE's data) 12 times, each output getting a 2.34 µs CP. The UE reverses all of it in well under a slot.
Common confusions
- "Scrambling is encryption." It is interference randomisation; security is in PDCP.
- "Beamforming is a separate block." It is inside precoding (digital) and/or RF (analog); the spec sees only ports.
- "The receiver knows the precoder." In the downlink it does not and need not — it estimates channel × precoder from DM-RS.
- "Rate matching happens before coding." After. Coding produces the mother code; rate matching selects from it.
- "The FFT size equals the number of subcarriers used." The FFT is sized for the whole carrier (e.g. 4096 at 30 kHz/100 MHz); an allocation uses a subset of bins.
Spec pointers
- TS 38.212 §5 (general coding: CRC, LDPC, rate matching) and §7.2 (DL-SCH), §6.2 (UL-SCH)
- TS 38.211 §7.3.1 (PDSCH: scrambling → RE mapping), §6.3.1 (PUSCH incl. transform precoding), §5.3 (OFDM baseband generation)
- TS 38.214 §5.1 / §6.1 — UE/gNB procedures, DM-RS/PT-RS/CSI-RS use
- TS 38.201 — physical layer general description (the one-page overview of all of this)
Recap
Transmit: CRC → LDPC (with segmentation) → rate matching/RV → scrambling → modulation → layers → (transform precoding) → precoding → RE mapping → IFFT + CP → RF. Receive: the same in reverse, plus synchronisation (SSB/TRS), beam selection (QCL-D), channel estimation (DM-RS) and phase correction (PT-RS), which only exist to undo the channel. Coding stages are TS 38.212; mapping stages are TS 38.211; the boundary between them is the O-RAN fronthaul split.
Interview questions
The questions below are drawn from this topic and phrased the way they tend to come up. Try each one out loud before revealing the answer.
19 questions
- Transport block, CRC attachment, code block segmentation with per-block CRC, LDPC encoding, rate matching, concatenation, scrambling, modulation, layer mapping, precoding, resource element mapping, then OFDM generation with the cyclic prefix.
- The transport block CRC decides HARQ acknowledgement. The per-code-block CRC lets the receiver stop decoding a block that has already succeeded, saving processing.
- Splitting a large transport block into pieces small enough for the LDPC decoder. The maximum code block size bounds decoder complexity and latency.
- LDPC decodes with far greater parallelism, which is what makes multi-gigabit throughput achievable at reasonable power. Turbo decoding is more inherently sequential.
- Polar coding for control. Control payloads are short, where polar codes perform better and LDPC's parallelism advantage does not apply.
- Selects which coded bits are actually transmitted from the circular buffer, adjusting the effective code rate to the allocation and choosing the redundancy version for HARQ.
- It randomises the bit sequence with a cell- and UE-specific sequence so that interference from neighbouring cells appears noise-like rather than structured.
- Distributes modulation symbols across the spatial layers being transmitted, which is where spatial multiplexing begins.
- Precoding maps layers onto antenna ports with weights, shaping the transmission spatially — beamforming and MIMO precoding both happen here.
- Scrambling operates on bits. Once symbols are formed the bit-level randomisation is no longer possible, so the order is fixed by what each stage operates on.
- Remove cyclic prefix, FFT to the frequency domain, estimate the channel from DMRS, equalise, demodulate to log-likelihood ratios, descramble, rate dematch into the soft buffer, LDPC decode, check CRC.
- Log-likelihood ratios carry confidence, which the LDPC decoder exploits and which HARQ combining requires. Hard decisions would discard the information that makes both work.
- From the DMRS accompanying the channel being received, with large-scale properties potentially carried over from another signal through QCL.
- It holds the demodulated soft values so a retransmission can be combined with the original rather than replacing it. Its size is a real constraint on UE capability.
- It may include transform precoding for DFT-s-OFDM, uses fewer layers, and the power amplifier constraint shapes the whole design — which is what motivates π/2-BPSK and the waveform choice.
- Because the cyclic prefix turns the channel into a circular convolution, which is a per-subcarrier multiplication in the frequency domain. Remove the CP guarantee and this no longer holds.
- The receiver sends a negative acknowledgement, keeps the soft bits, and combines them with the retransmission — which is why the redundancy version choice matters.
- DMRS is mapped to resource elements alongside the data during resource element mapping, so it experiences the same precoding and therefore reveals the effective channel the data sees.
- Each stage exists to survive the next one: coding protects against the channel, rate matching fits the allocation, scrambling randomises interference, modulation and precoding prepare for the air, and the receiver undoes them in exact reverse.
Related Articles
5G NR Waveforms: CP-OFDM and DFT-s-OFDM, and When the Uplink Should Use Which
Why NR uses CP-OFDM everywhere but keeps DFT-s-OFDM as an uplink option, what PAPR really costs, and how the network chooses per UE.
5G NR Synchronisation Signals (PSS and SSS): How a Phone Finds a Cell From Nothing
PSS and SSS explained from the UE's point of view: what each signal gives the receiver, how the PCI is built from them, and why NR has 1008 cell identities.
5G NR SS/PBCH Blocks and Bursts: Beams, Timing and the 5 ms Window
How PSS, SSS and PBCH are packaged into one SSB, how multiple SSBs form a burst set for beam sweeping, and the Case A–E timing patterns.