Channel Coding
What Is Channel Coding?
Channel coding is a branch of information theory and digital communications concerned with adding structured redundancy to a transmitted message so that errors introduced by a noisy channel can be detected and corrected at the receiver. By appending carefully designed parity or check symbols to source data, a channel code enables the receiver to identify and repair bit errors without requesting retransmission. The ratio of information bits to total transmitted bits defines the code rate, a fundamental parameter that quantifies the bandwidth efficiency cost of error protection.
The field originates in Claude Shannon's 1948 paper establishing the theoretical limits of reliable communication over noisy channels. Shannon's channel capacity theorem proved that codes exist which allow transmission at any rate below the channel capacity with arbitrarily low error probability, but the proof was non-constructive. The subsequent decades of coding theory have been devoted to finding practical codes that approach that theoretical bound.
Block Codes
Block codes operate by dividing the information sequence into fixed-length blocks of k bits and mapping each block to a longer codeword of n bits, where the extra n-k bits carry redundancy. Linear block codes, including Hamming codes, Reed-Solomon codes, and Bose-Chaudhuri-Hocquenghem (BCH) codes, are defined by a generator matrix and admit efficient algebraic decoding algorithms. Reed-Solomon codes are particularly prevalent in storage systems and optical communications because they perform well against burst errors: the DVDs, QR codes, and deep-space telemetry links that rely on them all exploit the code's ability to recover from contiguous error bursts up to a defined symbol count. The minimum Hamming distance of a block code determines both its error-detection and error-correction capability, and this distance is the central parameter in code design. The IEEE Transactions on Information Theory has documented the theoretical development of block codes since 1955.
Turbo Codes
Turbo codes, introduced by Berrou, Glavieux, and Thitimajshima in 1993, were the first practical codes to approach Shannon capacity within a fraction of a decibel. A turbo encoder combines two recursive systematic convolutional encoders connected by a pseudorandom interleaver; the decoder uses an iterative message-passing algorithm that alternates between the two component decoders, refining soft probability estimates on each pass. This iterative decoding process gives turbo codes their name and their power: with sufficient iterations, the decoder converges on a near-optimal estimate even at low signal-to-noise ratios. Turbo codes were adopted in third-generation (3G) and fourth-generation (4G) cellular standards, including UMTS and LTE, where reliable high-rate transmission over fading radio channels is essential. Low-density parity-check (LDPC) codes, which share the iterative decoding principle, have since been adopted in 5G NR and IEEE 802.11n Wi-Fi standards.
Combined Source-Channel Coding
Traditional communication system design follows the separation theorem, which states that source compression and channel error protection can be designed independently without loss of optimality. Combined source-channel coding departs from this framework by jointly optimizing source representation and channel protection, often achieving better performance at low delay or under stringent latency constraints where the separation theorem's asymptotic assumptions do not hold. Applications include wireless image and video transmission, where a small number of critical bits (such as motion vector headers) receive stronger protection than less significant data. Joint source-channel coding is also central to NIST-documented wireless sensor standards for low-power networks where retransmission is expensive and latency-sensitive.
Applications
Channel coding has applications in a wide range of disciplines, including:
- Cellular and wireless communications, where turbo and LDPC codes protect voice and data transmission
- Deep-space and satellite communications, where Reed-Solomon and convolutional codes guard against long propagation-delay links
- Data storage, including hard drives, NAND flash, and optical discs, where codes correct read errors
- Digital broadcasting, where error protection enables reliable reception under varying signal conditions
- Quantum computing, where quantum error-correcting codes address decoherence in qubit systems