4.10.1 Turbo Codes
Turbo codes extend the concept of concatenated coding by incorporating iterative decoding. They are constructed by applying two or more constituent encoders to different interleaved versions of the same input data stream. The interleaver ensures that each encoder processes a decorrelated sequence, which significantly improves error-correction performance.
Unlike conventional concatenated codes, turbo decoders exchange soft information: instead of making hard decisions, the output of one SISO decoder is passed as probabilistic information to the next. This process is repeated iteratively, with each cycle refining the reliability of the decoded bits.
The original Turbo code proposed in 1993 by Berrou, Glavieux, and Thitimajshima was a parallel concatenated convolutional code (PCCC) composed of two recursive systematic convolutional (RSC) encoders separated by an interleaver. Each encoder generates parity bits from either the original or the interleaved input sequence, and the codeword typically comprises the systematic bits plus both parity sequences. Iterative decoding is performed by two SISO decoders—typically based on the maximum a posteriori (MAP), Log-MAP, or soft-output Viterbi algorithm (SOVA)—which iteratively exchange reliability information until convergence.
In SISO decoding, the magnitude of the received symbols is retained throughout the decoding process; for example, in the presence of noise, a received BPSK symbol whose amplitude is closer in value to the expected magnitude of ±V volts provides greater confidence than one closer to zero volts. The soft input symbol stream is passed through an interleaver identical to that used in the transmitter. The interleaver output is then read by rows and columns into two SISO decoders corresponding to the two constituent encoders at the transmitter. Each decoder produces a soft estimate of the transmitted information sequence—one corresponding to the directly encoded path and the other to the interleaved path. The decoders’ outputs are compared, and their soft output values are used to weight the confidence associated with each decoded bit. The process is then repeated iteratively, with updated reliability information exchanged between decoders, to refine the estimate of the original transmitted data. Successive iterations progressively reduce the number of residual errors, thereby improving the overall BER.
Turbo codes achieve performance remarkably close to the Shannon limit, enabling reliable communication at Eb/N0 ratios near 0 dB—typically within about 1.6 dB of the theoretical capacity limit, depending on block length and code rate. They are widely used in applications demanding high spectral and power efficiency, including 3G and 4G mobile standards, satellite communications, and deep-space missions.
Following the introduction of Turbo codes, numerous coding schemes have been developed that share the same iterative-decoding principle—the exchange of extrinsic information between constituent decoders to achieve near-Shannon-limit performance. These schemes, collectively termed Turbo-like codes, extend the original concept of parallel concatenation to serial, product, and spatially coupled forms:
- Serially Concatenated Convolutional Codes (SCCC). SCCCs, or serial Turbo codes, were proposed as an alternative concatenation that retains iterative decoding but reverses the structural order of encoding. An outer convolutional encoder processes the information sequence, which is then interleaved before entering an inner convolutional encoder. Only the inner code’s output is transmitted. The iterative decoder alternates between inner and outer SISO decoders, exchanging soft information via the interleaver/de-interleaver pair. SCCCs typically offer comparable performance to PCCCs but with greater flexibility in code-rate selection and improved minimum-distance properties.
- Turbo Product and Block Turbo Codes (TPC/BTC). Another generalization of the Turbo concept replaces convolutional constituents with block codes. TPCs, sometimes termed BTCs, encode the information array first along one dimension (e.g., rows) and then along the orthogonal dimension (e.g., columns). Each constituent is typically a BCH or Reed–Solomon code. Decoding is iterative and soft-decision-based, commonly using the Chase–Pyndiah algorithm for each component. These codes achieve excellent performance at moderate block lengths with structured interleaving and relatively simple hardware implementation.
- Repeat–Accumulate and Related Codes. Simplified Turbo-like structures also emerged in which the output of the interleaver feeds a rate-1 accumulator—a single-state recursive convolutional code. In a repeat–accumulate (RA) code, each input bit is repeated, interleaved, and passed through the accumulator; irregular repeat–accumulate (IRA) and accumulate–repeat–accumulate (ARA) variants introduce degree irregularity or dual accumulation to improve distance properties and decoding thresholds. These ensembles maintain the Turbo principle but are graph-based and closely related to sparse-graph codes.
- Braided and Spatially Coupled Turbo-Like Codes. More recent research couples multiple Turbo code chains through braided or spatially coupled connections. These structures exhibit threshold saturation, where the belief-propagation decoding threshold approaches the MAP limit, significantly improving performance at long block lengths. Braided convolutional codes intertwine several constituent encoders, while spatially coupled Turbo codes link multiple interleaved instances across time or space, creating convolutional-like ensembles.
