Library

4.6 CONVOLUTIONAL CODES

Convolutional codes differ from block codes n that they incorporate memory into the encoding process. In block codes, each block of k input bits is mapped independently into a block of n output bits. In convolutional codes, each block of k input bits is likewise mapped into a block of n bits; however, the output bits are determined not only by the current k input bits but also by a set of previous bits stored in the encoder’s memory.

Convolutional codes were historically the dominant form of forward error correction in wireless and satellite systems, forming the basis of many 2G and 3G cellular standards and numerous space communication links. They remain conceptually important because they introduce memory into the encoding process and provide a natural framework for probabilistic decoding using algorithms such as the Viterbi decoder. However, in modern high-throughput communication systems — including contemporary cellular, Wi-Fi, optical, and broadband standards — convolutional codes have largely been superseded by more powerful capacity-approaching codes such as turbo codes and low-density parity-check (LDPC) codes.

The number of bits that influence the encoder’s output is defined by the constraint length, K. The codes are typically characterized by their code rate R = k/n. Most practical convolutional encoders are binary and operate with k = 1, meaning that message bits are shifted into the encoder one at a time through a series of shift registers and modulo-2 adders. The encoder produces output continuously as each new bit enters the register, unlike block codes where data are first collected into finite blocks before encoding.

The performance of a convolutional code is determined by its free distance, d₍fᵣₑₑ₎, which serves as the analogue of the minimum Hamming distance (dₘᵢₙ) in block codes. The free distance is defined as the smallest Hamming distance between any two valid code sequences—that is, the minimum distance between all possible paths through the trellis that diverge from a common state and then remerge. A convolutional encoder can correct t errors if and only if dfree >2t.

Convolutional coding offers excellent performance when combined with efficient decoding algorithms such as the Viterbi or sequential decoding methods, which are discussed in later sections. These algorithms operate on the trellis representation of the code to trace the most likely transmitted bit sequence, achieving near-optimal error-correction performance with manageable computational complexity for practical constraint lengths.