Channel Coding
Understanding Channel Coding
Every RF communication link contends with noise, interference, and fading that introduce bit errors. Channel coding combats these impairments by adding redundancy in a mathematically structured way, enabling the receiver to reconstruct the original data even when some bits are corrupted. The code rate R = k/n expresses the ratio of useful information bits (k) to total transmitted bits (n). A lower code rate provides more protection but consumes more bandwidth.
The evolution of channel coding spans four generations. First-generation block codes (Hamming, BCH, Reed-Solomon) offer algebraic decoding with modest coding gain. Second-generation convolutional codes with Viterbi decoding became the workhorse of 2G/3G cellular and satellite links. Third-generation turbo codes, discovered in 1993, demonstrated near-Shannon-limit performance and were adopted for 3G/4G. Fourth-generation LDPC and polar codes now dominate 5G NR, Wi-Fi 6/7, and next-generation satellite systems, with polar codes being the first codes mathematically proven to achieve Shannon capacity.
Fundamental Equations
C = B·log2(1 + SNR) bps
Code rate:
R = k/n (information bits / total bits)
Coding gain:
Gc = SNRuncoded − SNRcoded dB (at same BER)
Spectral efficiency with coding:
η = R × log2(M) bps/Hz
M = modulation order
Eb/N0 relationship:
Eb/N0 = (C/N) × (B / Rb)
Rb = information bit rate
FEC Code Family Comparison
| Code Family | Rate Range | Gap to Shannon | Decoder | Latency | Standard |
|---|---|---|---|---|---|
| Convolutional | 1/2–7/8 | 2–5 dB | Viterbi / MAP | Low | GSM, DVB-S |
| Reed-Solomon | Variable | 3–6 dB | Berlekamp-Massey | Low | DVB-S, CD/DVD |
| Turbo | 1/3–0.95 | ~1 dB | Iterative BCJR | High | 3G/4G LTE |
| LDPC | 1/5–0.95 | 0.5–1 dB | Belief propagation | Medium | 5G data, Wi-Fi 6 |
| Polar | 1/8–0.95 | ~0.5 dB | SCL + CRC | Low-Med | 5G NR control |
5G NR Coding Configuration
| Channel Type | FEC Code | Max Block | Base Graph | Rate Range | HARQ |
|---|---|---|---|---|---|
| PDSCH (data DL) | LDPC | 8448 bits | BG1 (high rate) | 1/5–0.95 | Incremental redundancy |
| PUSCH (data UL) | LDPC | 8448 bits | BG2 (low rate) | 1/5–0.95 | Incremental redundancy |
| PDCCH (ctrl DL) | Polar | 512 bits | N/A | 1/8–0.75 | N/A |
| PUCCH (ctrl UL) | Polar/RM | 1706 bits | N/A | Variable | N/A |
| PBCH (broadcast) | Polar | 864 bits | N/A | 1/4 | N/A |
Frequently Asked Questions
What is coding gain?
Coding gain is the SNR reduction to achieve a target BER vs. uncoded: Gc = SNRuncoded − SNRcoded. Convolutional (K=7): ~5 dB. Turbo: ~8–10 dB. LDPC/Polar: ~9–11 dB, within 0.5 dB of Shannon at BER = 10−6. The cost is bandwidth expansion by 1/R.
Why LDPC and polar in 5G?
LDPC handles data channels: parallelizable decoding supports multi-Gbps throughput with block sizes up to 66560 bits. Polar handles control channels: proven Shannon-achieving with shorter blocks (up to 1024 bits) and lower latency. This dual architecture optimizes both use cases.
Hard vs. soft decision?
Hard decision: 1-bit quantization per symbol. Soft decision: multi-bit log-likelihood ratios preserving confidence. Soft decoding yields 2–3 dB improvement. All modern FEC (turbo, LDPC, polar) use soft input. The trade-off is increased decoder memory and complexity.