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
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
| Specification | Title |
|---|---|
| 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 |