FEC

Forward Erasure Correction / Forward Error Correction

Physical Layer
Introduced in R99
A channel coding technique that adds redundant data to transmitted information, enabling the receiver to detect and correct errors without requesting retransmission. It is fundamental for reliable data transmission over noisy wireless channels, improving throughput and latency by reducing packet loss.

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

R99 Initial

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

SpecificationTitle
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