Description
Forward Error Correction (FEC) is a fundamental digital signal processing technique used to control errors in data transmission over unreliable or noisy communication channels. In 3GPP systems, FEC operates by the transmitter encoding the message in a redundant way using an error-correcting code (ECC). This redundancy allows the receiver to detect a limited number of errors that may occur anywhere in the message and often to correct these errors without needing a retransmission request. The process involves the sender adding parity bits or using more complex algebraic structures to the original data bits before transmission. Upon reception, the decoder uses these extra bits to identify and correct bit errors caused by channel impairments like interference, fading, or noise.
The architecture of FEC in 3GPP spans multiple layers and radio access technologies (GSM, UMTS, LTE, NR). At the physical layer, convolutional codes, Turbo codes (introduced in UMTS), and Low-Density Parity-Check (LDPC) codes (for NR data channels) and Polar codes (for NR control channels) are specified. These codes are applied to transport channels after processes like channel coding, rate matching, and interleaving. The specific code and coding rate are selected based on the channel conditions and required reliability, often as part of link adaptation. The performance is characterized by the coding gain, which is the reduction in required signal-to-noise ratio for a given bit error rate compared to uncoded transmission.
FEC's role is critical for achieving the quality of service (QoS) targets for various services. For voice, it ensures intelligibility; for packet data, it maintains throughput and reduces latency by avoiding higher-layer retransmissions like those from the Radio Link Control (RLC) layer. In evolved systems, Hybrid Automatic Repeat Request (HARQ) is combined with FEC, where the initial transmission uses a weak FEC code, and subsequent retransmissions provide incremental redundancy for the decoder to combine, enhancing efficiency. The specifications detail code structures, encoding/decoding algorithms, and performance requirements for different channels (e.g., PDSCH, PUSCH, PBCH) across all 3GPP releases, ensuring interoperability and robust communication.
Purpose & Motivation
FEC was created to address the inherent unreliability of wireless communication channels. Unlike wired mediums, radio channels are susceptible to time-varying impairments like multipath fading, interference, and additive white Gaussian noise, which cause bit errors. Without FEC, systems would rely solely on retransmission protocols (ARQ), which introduce significant latency and reduce spectral efficiency, especially for real-time services like voice or video. The primary purpose of FEC is to proactively combat these errors at the physical layer, improving the raw bit error rate (BER) before data is passed to higher layers.
Historically, simple parity checks and block codes were used in early digital communications. 3GPP's GSM initially employed convolutional coding. The motivation evolved with UMTS and the need for higher data rates, leading to the adoption of Turbo codes, which offered performance near the Shannon limit. The continuous evolution through LTE to 5G NR is driven by demands for ultra-reliable low-latency communication (URLLC), enhanced mobile broadband (eMBB), and massive machine-type communication (mMTC). Each new service class has distinct reliability and latency requirements, necessitating more advanced FEC schemes like LDPC and Polar codes to provide higher coding gains, lower complexity, and better adaptability than previous generations.
FEC solves the problem of maintaining a target block error rate (BLER) under challenging signal conditions without excessive transmit power. It is a key enabler for spectral efficiency, allowing networks to operate at higher modulation orders (e.g., 256-QAM, 1024-QAM) by providing the necessary error resilience. By reducing the number of required retransmissions, FEC directly contributes to lower latency and higher throughput, which are critical performance indicators for modern cellular networks. It is a foundational technology without which reliable digital mobile communication would not be feasible.
Key Features
- Supports multiple coding schemes: Convolutional, Turbo, LDPC, and Polar codes across different 3GPP generations
- Enables Hybrid ARQ (HARQ) operation by providing incremental redundancy packets
- Integrates with link adaptation to dynamically select coding rates based on channel quality
- Provides coding gain, reducing required SNR for a target error rate
- Specified for all critical physical channels (e.g., PDSCH, PUSCH, PBCH, PDCCH)
- Facilitates reliable transmission for diverse services from voice to ultra-reliable low-latency communications
Evolution Across Releases
Introduced foundational FEC schemes for GSM and initial UMTS. For UMTS, convolutional coding was specified for voice and control channels, while Turbo coding (with a constraint length of 4 and 1/3 base rate) was introduced for higher data rate channels, providing significant coding gain near the Shannon limit. This enabled reliable data services over WCDMA air interface.
Defining Specifications
| Specification | Title |
|---|---|
| TS 03.071 | 3GPP TR 03.071 |
| TS 21.905 | 3GPP TS 21.905 |
| TS 23.247 | 3GPP TS 23.247 |
| TS 23.280 | 3GPP TS 23.280 |
| TS 23.468 | 3GPP TS 23.468 |
| TS 23.479 | 3GPP TS 23.479 |
| TS 23.780 | 3GPP TS 23.780 |
| TS 23.792 | 3GPP TS 23.792 |
| TS 25.201 | 3GPP TS 25.201 |
| TS 25.221 | 3GPP TS 25.221 |
| TS 25.222 | 3GPP TS 25.222 |
| TS 26.110 | 3GPP TS 26.110 |
| TS 26.226 | 3GPP TS 26.226 |
| TS 26.230 | 3GPP TS 26.230 |
| TS 26.253 | 3GPP TS 26.253 |
| TS 26.258 | 3GPP TS 26.258 |
| TS 26.267 | 3GPP TS 26.267 |
| TS 26.268 | 3GPP TS 26.268 |
| TS 26.269 | 3GPP TS 26.269 |
| TS 26.346 | 3GPP TS 26.346 |
| TS 26.348 | 3GPP TS 26.348 |
| TS 26.441 | 3GPP TS 26.441 |
| TS 26.442 | 3GPP TS 26.442 |
| TS 26.443 | 3GPP TS 26.443 |
| TS 26.444 | 3GPP TS 26.444 |
| TS 26.450 | 3GPP TS 26.450 |
| TS 26.451 | 3GPP TS 26.451 |
| TS 26.452 | 3GPP TS 26.452 |
| TS 26.502 | 3GPP TS 26.502 |
| TS 26.802 | 3GPP TS 26.802 |
| TS 26.804 | 3GPP TS 26.804 |
| TS 26.805 | 3GPP TS 26.805 |
| TS 26.851 | 3GPP TS 26.851 |
| TS 26.880 | 3GPP TS 26.880 |
| TS 26.881 | 3GPP TS 26.881 |
| TS 26.891 | 3GPP TS 26.891 |
| TS 26.925 | 3GPP TS 26.925 |
| TS 26.926 | 3GPP TS 26.926 |
| TS 26.936 | 3GPP TS 26.936 |
| TS 26.946 | 3GPP TS 26.946 |
| TS 26.947 | 3GPP TS 26.947 |
| TS 26.952 | 3GPP TS 26.952 |
| TS 26.997 | 3GPP TS 26.997 |
| TS 29.116 | 3GPP TS 29.116 |
| TS 29.333 | 3GPP TS 29.333 |
| TS 29.468 | 3GPP TS 29.468 |
| TS 29.580 | 3GPP TS 29.580 |
| TS 36.355 | 3GPP TR 36.355 |
| TS 37.355 | 3GPP TR 37.355 |
| TS 38.191 | 3GPP TR 38.191 |
| TS 38.201 | 3GPP TR 38.201 |
| TS 38.202 | 3GPP TR 38.202 |
| TS 38.769 | 3GPP TR 38.769 |
| TS 38.835 | 3GPP TR 38.835 |
| TS 44.031 | 3GPP TR 44.031 |
| TS 44.318 | 3GPP TR 44.318 |
| TS 46.041 | 3GPP TR 46.041 |