BCH

Bose-Chaudhuri-Hocquenghem Code

Physical Layer
Introduced in R99
BCH is a class of powerful cyclic error-correcting codes used in 3GPP systems for forward error correction (FEC). It is crucial for protecting broadcast and control channels, ensuring reliable data transmission over noisy wireless channels by detecting and correcting bit errors without retransmission.

Description

The Bose-Chaudhuri-Hocquenghem (BCH) code is a sophisticated block-based forward error correction (FEC) code belonging to the family of cyclic codes. It operates by adding redundant parity bits to the original information bits according to a specific algebraic construction over finite fields (Galois fields). The encoder generates codewords where the information bits and parity bits satisfy a set of polynomial equations defined by the code's generator polynomial. This structure allows the decoder to detect and correct a predetermined number of errors by calculating syndromes and solving for error locations using algorithms like the Berlekamp-Massey algorithm and Chien search. The code's parameters, such as codeword length (n), number of information bits (k), and error-correcting capability (t), are carefully selected based on the channel conditions and required reliability.

In 3GPP systems, BCH codes are primarily deployed to protect critical broadcast and control information that must be received reliably by all user equipment (UE) within a cell. A key application is the Broadcast Channel (BCH) transport channel, which carries the Master Information Block (MIB) containing essential system information for initial cell access. The physical layer processing for the BCH transport channel involves channel coding with a specific BCH code, followed by rate matching, scrambling, modulation, and mapping to physical resources. The robustness of BCH coding ensures that UEs can successfully decode the MIB even under poor signal-to-noise ratio (SNR) conditions, which is vital for cell selection, synchronization, and acquiring further system information.

The implementation and parameters of BCH codes have evolved across 3GPP releases to meet the demands of new radio access technologies. In UMTS (3G), BCH coding is applied to the Broadcast Control Channel (BCCH) logical channel mapped to the BCH transport channel. For LTE (4G), the BCH transport channel uses a tail-biting convolutional code for the MIB, but BCH codes are utilized in other contexts, such as the Physical Broadcast Channel (PBCH) which carries the MIB and employs a combination of coding schemes. In 5G NR, while the PBCH also carries the MIB, the term 'BCH' in specifications often refers more broadly to the broadcast channel functionality and its associated processing chain, which may involve polar codes or LDPC codes for the payload, but the conceptual role of robust broadcast channel coding remains, with BCH principles influencing design.

Purpose & Motivation

BCH codes were created to address the fundamental challenge of reliable digital communication over noisy and interference-prone channels, such as wireless radio links. Prior to sophisticated FEC like BCH, communication systems relied on simpler parity checks or repetition codes, which were inefficient and offered limited error correction capability. The mathematical foundation of BCH codes, developed by Bose, Ray-Chaudhuri, and Hocquenghem, provided a method to construct codes with precisely defined and powerful error-correcting properties, enabling systems to maintain communication integrity without constant retransmission requests, which is inefficient for broadcast traffic.

In the context of 3GPP mobile networks, the primary motivation for employing BCH coding is to ensure the robust and reliable delivery of critical system broadcast information. Channels like the BCH transport channel carry information essential for network entry and operation, such as system bandwidth and frame timing. If this information is corrupted, a UE cannot access the network. BCH codes solve this by allowing the UE to correct a certain number of bit errors autonomously upon reception, significantly increasing the probability of successful decoding at the cell edge or in challenging radio conditions. This reduces call drop rates and improves overall system accessibility and reliability.

The adoption and continued reference to BCH codes across 3GPP releases underscore their effectiveness as a benchmark for reliable control channel design. While specific coding schemes for user data have evolved (e.g., to Turbo codes, LDPC, Polar codes), the requirements for broadcast channels have consistently demanded high reliability with relatively small block sizes, a domain where BCH codes excel. Their use represents a careful engineering trade-off between coding gain, computational complexity, and latency, ensuring that vital control signaling remains robust as network technologies advance from 3G to 5G and beyond.

Key Features

  • Powerful algebraic error correction capable of correcting multiple random bit errors
  • Block-based cyclic code structure enabling efficient encoding and decoding algorithms
  • Configurable parameters (n, k, t) to trade off between overhead and correction strength
  • Crucial for protecting broadcast and control channels (e.g., BCH transport channel) in 3GPP systems
  • Enables reliable system information acquisition by UEs in low-SNR conditions
  • Provides forward error correction, eliminating need for retransmission on broadcast channels

Evolution Across Releases

R99 Initial

Introduced as the channel coding scheme for the Broadcast Channel (BCH) transport channel in UMTS. The BCH carried the Master Information Block (MIB) for cell system information. The specific BCH code parameters were defined to provide robust error correction for this critical broadcast data, supporting initial cell search and selection procedures in the new WCDMA-based radio interface.

Defining Specifications

SpecificationTitle
TS 21.905 3GPP TS 21.905
TS 25.133 3GPP TS 25.133
TS 25.202 3GPP TS 25.202
TS 25.211 3GPP TS 25.211
TS 25.212 3GPP TS 25.212
TS 25.213 3GPP TS 25.213
TS 25.214 3GPP TS 25.214
TS 25.221 3GPP TS 25.221
TS 25.222 3GPP TS 25.222
TS 25.224 3GPP TS 25.224
TS 25.225 3GPP TS 25.225
TS 25.301 3GPP TS 25.301
TS 25.302 3GPP TS 25.302
TS 25.321 3GPP TS 25.321
TS 25.322 3GPP TS 25.322
TS 25.430 3GPP TS 25.430
TS 25.704 3GPP TS 25.704
TS 25.912 3GPP TS 25.912
TS 26.267 3GPP TS 26.267
TS 36.133 3GPP TR 36.133
TS 36.212 3GPP TR 36.212
TS 36.213 3GPP TR 36.213
TS 36.300 3GPP TR 36.300
TS 36.302 3GPP TR 36.302
TS 36.322 3GPP TR 36.322
TS 36.331 3GPP TR 36.331
TS 38.202 3GPP TR 38.202
TS 38.212 3GPP TR 38.212
TS 38.300 3GPP TR 38.300
TS 38.889 3GPP TR 38.889