5G NR: LDPC + QAM + HARQ

BICM Is a Paradigm, Not a Specification

The point of this chapter is that BICM is a paradigm, not a specification. Every modern wireless standard customises the three BICM ingredients — code, interleaver, mapper — to its own constraints. 5G NR and Wi-Fi 7 both use LDPC codes, but the code-block sizes, base-graph selection rules, and HARQ protocols differ because the underlying physical constraints differ. DVB-S2 uses a different family of LDPC codes concatenated with a BCH outer code and replaces QAM with APSK because a satellite travelling-wave-tube amplifier is operated near saturation and therefore the modulation must cluster on rings. Chapters 5 and 6 gave us the theory; this chapter walks through the engineering.

We start with 5G NR. The choice of NR is deliberate: it is the most flexible BICM design ever deployed, because a single LDPC code family (two base graphs) drives every modulation from QPSK to 1024-QAM at every rate from 0.12 to 0.93 via rate matching — a mixture of puncturing and shortening. When you compute a 5G downlink spectral efficiency, you are literally evaluating η=QmR\eta = Q_m R where Qm=log2MQ_m = \log_2 M is the modulation order and RR is the LDPC rate after rate matching. That is BICM capacity-ordering made into hardware.

NR PDSCH Encoder Pipeline

NR PDSCH Encoder Pipeline
The 3GPP NR downlink shared channel (PDSCH) encoder pipeline. A transport block of size TBS\mathrm{TBS} bits flows through CRC attachment, code-block segmentation (if TBS>8448\mathrm{TBS} > 8448), LDPC encoding using either base graph BG1 or BG2, rate matching (puncturing + shortening to the target number of coded bits), scrambling, QAM mapping at order QmQ_m, layer mapping, and mapping to physical resource elements (REs). The MCS index controls (Qm,R)(Q_m, R) and hence the two highlighted stages.

Definition:

Modulation and Coding Scheme (MCS) Index

The MCS index i{0,1,,31}i \in \{0, 1, \ldots, 31\} is an integer selector into a standards-defined table that fixes the pair (Qm,R)(Q_m, R) used for one NR transport block. Three MCS tables are defined in 3GPP TS 38.214:

  • MCS Table 1 (up to 64-QAM): the legacy LTE-compatible table, used when the UE reports no support for 256- or 1024-QAM. Modulation orders Qm{2,4,6}Q_m \in \{2, 4, 6\} corresponding to QPSK, 16-QAM, 64-QAM.
  • MCS Table 2 (up to 256-QAM): the default for sub-6 GHz (FR1) and mmWave (FR2) commercial networks in Release 15+. Adds Qm=8Q_m = 8 for 256-QAM.
  • MCS Table 3 (URLLC / low spectral efficiency): supports only up to 64-QAM but starts at a much lower rate, R0.03R \approx 0.03. Designed for BLER target 10510^{-5}, not the usual 10110^{-1}. Added in Release 16.

The fourth table introduced in Release 17 extends MCS Table 2 to include 1024-QAM (Qm=10Q_m = 10) for FR1. The mapping of MCS index ii to (Qm,R)(Q_m, R) is tabulated directly in the specification; entries are designed so that η(i)=QmR\eta(i) = Q_m R is approximately monotone in ii and covers the range from about 0.23 to 8\sim 8 bits per 2D symbol.

Indices 28-31 of each table are reserved for retransmissions and carry only the modulation order; the rate is inherited from the first transmission so the HARQ soft buffer stays consistent. This is one of the details that makes NR's HARQ-IR more flexible than LTE's.

5G NR MCS Table (η=QmR\eta = Q_m R versus MCS Index)

The spectral efficiency η=QmR\eta = Q_m R as a function of MCS index ii for the three NR PDSCH MCS tables. Observe the kink points at index boundaries — these are exactly where the modulation order jumps, e.g. from 16-QAM to 64-QAM. Between kinks the code rate RR climbs monotonically from 0.3\sim 0.3 to 0.93\sim 0.93 before the next jump happens. Table 3 (URLLC) starts at rates 10x lower to hit the stringent 10510^{-5} BLER target.

Parameters

Definition:

5G NR LDPC Base Graphs BG1, BG2

NR defines exactly two LDPC base graphs:

  • BG1\mathrm{BG}_1 is 46×6846 \times 68 (46 parity rows, 68 variable columns). The resulting mother code has information length up to Kmax=8448K_{\max} = 8448 bits and rate as low as 1/31/3 (the code becomes lower-rate after puncturing is reversed and extended parity is included). BG1 is selected when TBS>292\mathrm{TBS} > 292 bits and (target R>2/3R > 2/3 or TBS>3824\mathrm{TBS} > 3824).
  • BG2\mathrm{BG}_2 is 42×5242 \times 52. Information length up to Kmax=3840K_{\max} = 3840 bits, rate as low as 1/51/5. Used for short blocks or low rates.

Each base graph is lifted by a cyclic-shift factor Z{2,3,,384}Z \in \{2, 3, \ldots, 384\} chosen from the standard table to match the desired code block length. The lifted matrix has circulant Z×ZZ \times Z blocks in each base-graph position, yielding a quasi-cyclic LDPC structure. This quasi-cyclic property is what makes the decoder hardware-friendly: the same shift register implements every circulant block.

The rule "BG1 for high rates, BG2 for low rates" comes from density evolution. BG1's degree distribution is optimised for the waterfall region around R=0.5R = 0.5 to R=0.9R = 0.9; BG2's is optimised for R[0.2,0.67]R \in [0.2, 0.67]. Outside their design ranges both base graphs still work but give up 0.5-1.0 dB of threshold performance.

,

NR LDPC Base-Graph Selection Rule

Complexity: O(1)O(1) — pure table lookup
Input: Transport block size AA bits, target code rate RR
Output: Base graph BG{BG1,BG2}\mathrm{BG} \in \{\mathrm{BG}_1, \mathrm{BG}_2\}
1. if A292A \le 292 then return BG2\mathrm{BG}_2 (always BG2 for very short blocks)
2. if A3824A \le 3824 and R0.67R \le 0.67 then return BG2\mathrm{BG}_2
3. if R0.25R \le 0.25 then return BG2\mathrm{BG}_2 (low rate always BG2)
4. return BG1\mathrm{BG}_1

See 3GPP TS 38.212 §7.2.2 for the full decision tree; the rule above is the simplified form. Notice that very short blocks always use BG2 — BG1 with K<300K < 300 would be severely over-parameterised and lose diversity. This mirrors the abstract BICM diversity rule of Chapter 6: short codewords cannot harvest much diversity, so we use the lower-rate base graph to compensate.

,

Definition:

Hybrid ARQ: Chase Combining and Incremental Redundancy

A hybrid ARQ (HARQ) scheme retransmits on decode failure and combines the retransmitted copies with the original. Two flavours:

  • HARQ Chase Combining (HARQ-CC): every retransmission contains the same rate-matched bits as the first transmission. The receiver maximal-ratio-combines the LLRs before feeding the decoder. After kk transmissions the effective SNR is kSNR1k \cdot \text{SNR}_{1}, a 3 dB gain per retransmission.
  • HARQ Incremental Redundancy (HARQ-IR): each retransmission contains new rate-matched bits (obtained by a different puncturing pattern of the mother LDPC codeword). The receiver appends the new LLRs to the old and decodes the larger codeword, whose effective rate is Rk=k0/(N1+N2++Nk)R_k = k_0 / (N_1 + N_2 + \ldots + N_k) — the rate falls with each retransmission. IR is superior to CC because it reduces the effective code rate rather than just the noise.

NR uses HARQ-IR by default. The four redundancy versions RV{0,1,2,3}\mathrm{RV} \in \{0, 1, 2, 3\} are four distinct starting points in the circular buffer of the rate-matched codeword; the UE signals the RV of each retransmission in the downlink control information (DCI).

HARQ's throughput gain is easiest to see at the extreme: on a channel where first-transmission BLER is 50%, HARQ-IR with 2 transmissions can bring the residual BLER to <1%< 1\% by halving the effective rate. Without HARQ we would have to pick an MCS twice as conservative up front — a much worse average throughput.

,

Theorem: HARQ-IR Throughput Formula

Let η0=QmR\eta_0 = Q_m R be the spectral efficiency of the first HARQ transmission, and let pkp_k be the block error probability after the kk-th (re)transmission, with p0=1p_0 = 1 and p=0p_\infty = 0. Assume independent transmissions. Then the long-run HARQ-IR throughput is ηHARQ=η0E[K],\eta_{\mathrm{HARQ}} = \frac{\eta_0}{\mathbb{E}[K]}, where E[K]=k=1pk1\mathbb{E}[K] = \sum_{k=1}^{\infty} p_{k-1} is the expected number of transmissions per successful block. At high SNR (first-try success), E[K]1\mathbb{E}[K] \to 1 and ηHARQη0\eta_{\mathrm{HARQ}} \to \eta_0; at low SNR, E[K]\mathbb{E}[K] grows and the effective rate collapses toward η0/Kmax\eta_0 / K_{\max}.

HARQ converts the binary "succeed or retransmit" event into a throughput penalty proportional to the expected number of transmissions. The operational observation is that a properly-tuned MCS should target p10.1p_1 \approx 0.1 so E[K]1.1\mathbb{E}[K] \approx 1.1 — each retransmission costs 10% of throughput but the outer BLER after HARQ is p1Kmax103p_1^{K_{\max}} \ll 10^{-3}, well below any application requirement.

Example: MCS 20 on NR Table 2 at 100 PRBs

Compute the transport block size (TBS) for NR PDSCH MCS index i=20i = 20 on MCS Table 2, with 100 physical resource blocks (PRBs), a single layer, normal cyclic prefix, and no DMRS overhead. Also compute the effective spectral efficiency.

🚨Critical Engineering Note

3GPP TS 38.214 — The Canonical MCS Specification

3GPP TS 38.214 is the canonical spec for NR link adaptation. It defines:

  • CQI tables (§5.2.2.1): 16 quality indices mapping to target (Qm,R)(Q_m, R) at BLER 10110^{-1} (tables 5.2.2.1-2, -3, -4) or 10510^{-5} (table 5.2.2.1-5 for URLLC).
  • MCS tables (§5.1.3.1): 4 tables mapping MCS index i{0,,27}i \in \{0, \ldots, 27\} to (Qm,R1024)(Q_m, R \cdot 1024), plus retransmission entries {28,,31}\{28, \ldots, 31\}.
  • TBS tables (§5.1.3.2): quantised list of allowed transport block sizes from 24 to 3824 bits in 3824-region, and a formula for larger blocks using BG1.
  • Scheduling restrictions (§5.1.4) that prevent the gNB from picking an MCS inconsistent with the UE's reported capability.

The complement, TS 38.212, defines:

  • LDPC base graphs BG1 (46x68, Kmax=8448K_{\max} = 8448) and BG2 (42x52, Kmax=3840K_{\max} = 3840) (§5.3.2).
  • Code block segmentation and 24-bit CRC attachment (§5.2.2).
  • Rate matching via circular buffer + puncturing + shortening (§5.4.2).
  • Bit-level interleaver (§5.4.2.2) — the π\pi of BICM theory.

Together these two specs define everything about NR BICM at the physical layer. Commercial implementations typically parse both in full.

Practical Constraints
  • UE capability signalling determines which MCS table is allowed

  • BLER target is service-dependent: 10% for eMBB, 10510^{-5} for URLLC

  • Retransmission MCS indices 28-31 carry only QmQ_m, inheriting rate

  • 1024-QAM (Table 3) requires extreme channel quality and FR1 band allocation

📋 Ref: 3GPP TS 38.214 v17.3.0, 3GPP TS 38.212 v17.3.0
,

Common Mistake: MCS Table 3 Is NOT an Extended MCS Table 2

Mistake:

A common confusion is that MCS Table 3 extends MCS Table 2 by adding higher modulation orders (1024-QAM). In fact, MCS Table 3 starts much lower than the others (at R0.03R \approx 0.03 for QPSK) and goes only up to 64-QAM.

Correction:

MCS Table 3 is the URLLC (ultra-reliable low-latency communication) table, designed for BLER target 10510^{-5} rather than the usual 10110^{-1}. Since URLLC needs orders of magnitude better reliability at the same SNR, the spec provides lower code rates (all else equal). The 1024-QAM support is a separate addition to Table 2 in Release 17, indexed as Table 5.1.3.1-4 in the spec. Always check the exact table number in 38.214 before computing an MCS — mixing tables gives an answer off by an order of magnitude in effective rate.

Historical Note: NR Release 15: Industry's First BICM-LDPC Cellular Standard

2015-2018

5G NR Release 15 (frozen June 2018) was the first cellular standard to abandon convolutional and turbo codes in favour of LDPC for the data channel. The design began in 2016 when 3GPP RAN1 convened a code "down-selection" between LDPC, polar codes, and turbo codes.

The decision for data traffic went to LDPC for three reasons: (i) the quasi-cyclic lifting gives very high parallelism and hence ASIC- friendly throughput, (ii) the two-base-graph construction supports block lengths from 40 to 8448 bits with a single hardware block, and (iii) density-evolution design techniques (Richardson-Urbanke 2001) were mature enough to optimise the degree distributions for the exact set of rates and block lengths the standard needed.

Polar codes were selected for the control channels — short-block signalling where list-decoding is practical and LDPC's per-block overhead dominates. Turbo codes, despite their success in LTE, were retired: their decoder has an intrinsic sequential element that does not parallelise as well.

The result: 5G NR's PDSCH is a pure BICM-LDPC system, the single largest commercial deployment of bit-interleaved coded modulation ever attempted. Every NR smartphone sold after 2019 runs the LDPC decoder continuously while the radio is on.

,

Why This Matters: Why 5G Did Not Reuse LTE's Turbo Code

LTE used a rate-1/3 parallel-concatenated turbo code (PCCC) with 8 states per constituent RSC. The 5G decision to switch to LDPC was driven by three pragmatic factors:

  1. Throughput per mm² of silicon. Turbo decoders are limited by the sequential BCJR sweep on each constituent; doubling throughput means doubling memory. LDPC's column-row message passing is embarrassingly parallel and scales to > 20 Gbps in one RAN vendor's current decoders.
  2. Flexibility across rates. LTE had 13 fixed puncturing patterns. NR needed R[0.03,0.93]R \in [0.03, 0.93] at block lengths from 40 to 8448 bits — two orders of magnitude more rate-block combinations. LDPC's circular-buffer rate matching handles all of them with a single code.
  3. Error floor. Turbo codes have an error floor around BLER 10510^{-5} that is irreducible without interleaver redesign. URLLC requires BLER 10510^{-5} at the application layer; LDPC's error floor is below 10710^{-7} with commodity decoder precision.

The migration illustrates a recurring theme of this chapter: BICM is stable, but the binary code inside BICM cycles every generation based on hardware and service-class evolution. The mapper and interleaver of NR are almost identical to those of LTE; only the encoder changed.

Quick Check

You are designing an NR PDSCH transmission with target code rate R=0.85R = 0.85 and transport block size TBS=6000\mathrm{TBS} = 6000 bits. Which LDPC base graph is selected?

BG1\mathrm{BG}_1

BG2\mathrm{BG}_2

Either BG1 or BG2 — the choice is left to the decoder

Neither — this combination is outside NR spec

Key Takeaway

5G NR is BICM in its purest commercial form. A single LDPC code family (BG1 + BG2) drives every QAM constellation from QPSK to 1024-QAM via rate matching. The MCS index is a 5-bit integer controlling (Qm,R)(Q_m, R); HARQ-IR provides adaptive retransmission; three MCS tables handle eMBB, URLLC, and extreme-rate profiles separately. The whole system is 3GPP TS 38.212 + 38.214 and it implements Chapter 5's theory end-to-end.

MCS Index

A 5-bit integer i{0,,31}i \in \{0, \ldots, 31\} in 3GPP NR that selects a pair (Qm,R)(Q_m, R) from one of the MCS tables in TS 38.214. Values 0-27 denote distinct data transmissions; 28-31 are reserved for HARQ retransmissions and carry only the modulation order.

Related: CQI Feedback Delay in Fast Fading, Block Error Rate (BLER), HARQ Incremental Redundancy (HARQ-IR)

HARQ Incremental Redundancy (HARQ-IR)

A hybrid ARQ scheme in which each retransmission contains new coded bits (a different puncturing pattern of the same mother LDPC codeword). The receiver appends new LLRs to old and decodes a lower-rate code. Superior to Chase Combining (HARQ-CC) because it reduces the effective rate, not just the noise. Used by 5G NR, LTE, and Wi-Fi 6/7.

Related: Harq Cc, Rate Matching, MCS Index