Turbo Codes

Definition:

Turbo Code (Parallel Concatenated Convolutional Code)

A turbo code consists of two (or more) constituent convolutional encoders operating in parallel on the same information sequence, but with different interleaved versions of the input:

  • Encoder 1 encodes the original information bits u\mathbf{u}.
  • Encoder 2 encodes an interleaved version Ξ (u)\Pi(\mathbf{u}).

The transmitted codeword consists of the systematic bits u\mathbf{u} plus the parity bits from both encoders:

c=[u,β€…β€Šp1,β€…β€Šp2]\mathbf{c} = [\mathbf{u},\; \mathbf{p}_1,\; \mathbf{p}_2]

For rate-1/2 constituent codes, the overall rate is Rc=1/3R_c = 1/3 before puncturing. Puncturing (deleting selected parity bits) raises the rate to 1/21/2 or higher.

The key innovation is not the constituent codes (which are simple) but the iterative decoding that exchanges soft information between the two decoders.

,

Iterative Turbo Decoding

Turbo decoding alternates between two SISO (soft-input soft-output)
decoders, typically BCJR/MAP decoders:
1. Decoder 1 receives:
- Channel LLRs for the systematic bits
- Channel LLRs for parity bits from encoder 1
- Extrinsic information from decoder 2 (initially zero)
It computes APP LLRs and extracts the extrinsic component:
Le(1)(ut)=LAPP(1)(ut)βˆ’Lch(ut)βˆ’Le(2)(ut)L_e^{(1)}(u_t) = L_{\text{APP}}^{(1)}(u_t) - L_{\text{ch}}(u_t) - L_e^{(2)}(u_t)
2. Interleave Le(1)L_e^{(1)} and pass it to decoder 2 as a priori
information.
3. Decoder 2 computes its own extrinsic LLRs Le(2)L_e^{(2)}
using the interleaved systematic LLRs, parity-2 LLRs, and the
a priori information from decoder 1.
4. De-interleave Le(2)L_e^{(2)} and feed back to decoder 1.
5. Repeat for NiterN_{\text{iter}} iterations (typically 6-10).
6. Decision: After the final iteration, make hard decisions
based on the total LLR:
Ltotal=Lch+Le(1)+Le(2)L_{\text{total}} = L_{\text{ch}} + L_e^{(1)} + L_e^{(2)}.
,

Definition:

EXIT Chart

An extrinsic information transfer (EXIT) chart is a tool for analysing the convergence of iterative decoding. For each constituent decoder, it plots the output extrinsic mutual information IEI_E as a function of the input a priori mutual information IAI_A:

IE=T(IA,Eb/N0)I_E = T(I_A, E_b/N_0)

The EXIT chart for the turbo decoder overlays the transfer functions of both decoders (with axes swapped for decoder 2). Convergence requires an open tunnel between the two curves. As Eb/N0E_b/N_0 increases, the tunnel widens. The threshold Eb/N0E_b/N_0 is the minimum SNR at which the tunnel just opens, allowing convergence to the (1,1)(1, 1) point.

EXIT charts provide a semi-analytical tool to predict the convergence threshold without running Monte Carlo simulations.

EXIT Chart for Turbo Decoding

Visualise the EXIT chart for a turbo code. Observe how the tunnel between the two decoder transfer curves opens as SNR increases. The decoding trajectory shows the iterative exchange of mutual information.

Parameters
1.5

Example: Turbo Decoder Convergence

A rate-1/3 turbo code uses two identical rate-1/2 recursive systematic convolutional (RSC) codes with generators (1,5/7)8(1, 5/7)_8 (constraint length K=3K = 3) and a random interleaver of length N=1000N = 1000.

At Eb/N0=1.0E_b/N_0 = 1.0 dB, trace the iterative decoding convergence and estimate the number of iterations needed to achieve BER<10βˆ’5\text{BER} < 10^{-5}.

BER Curves: Comparing Channel Codes

Compare BER performance of different channel coding schemes on the AWGN channel. Toggle individual codes on/off and change the code rate to see how each family performs relative to the uncoded baseline and the Shannon limit.

Parameters

Common Mistake: Error Floor in Turbo Codes

Mistake:

Assuming that turbo codes maintain their steep waterfall BER improvement at all error rates.

Correction:

Turbo codes exhibit an error floor at BER around 10βˆ’510^{-5} to 10βˆ’710^{-7}, where the BER curve flattens and decreases much more slowly. This is caused by low-weight codewords in the code's distance spectrum. The error floor depends on the interleaver design and code structure.

For applications requiring very low BER (e.g., 10βˆ’1010^{-10} for storage), LDPC codes with carefully optimised degree distributions or polar codes with CRC-aided list decoding are preferred.

Historical Note: The Turbo Code Revolution (1993)

1993

Claude Berrou, Alain Glavieux, and Punya Thitimajshima presented turbo codes at the 1993 IEEE International Conference on Communications in Geneva. Their results β€” BER of 10βˆ’510^{-5} at Eb/N0=0.7E_b/N_0 = 0.7 dB with a rate-1/2 code (only 0.7 dB from the Shannon limit) β€” were initially met with disbelief. The paper sparked an intense research effort that transformed coding theory, revived interest in LDPC codes, and ultimately led to the adoption of turbo codes in 3G (UMTS/WCDMA) and 4G (LTE) standards.

Why This Matters: Turbo Codes in 3G and 4G

Turbo codes are used in the following cellular standards:

  • 3G (UMTS/WCDMA): Rate-1/3 turbo code with constituent generators (13,15)8(13, 15)_8, constraint length K=4K = 4, and QPP (quadratic permutation polynomial) interleaver.

  • 4G (LTE): The same turbo code structure with interleaver lengths up to 6144 bits, supporting data rates up to hundreds of Mbps.

In 5G NR, turbo codes were replaced by LDPC codes for data channels and polar codes for control channels, reflecting the superior performance and parallelisability of these newer codes at the block lengths and throughputs required by 5G.

Connection to Information-Theoretic Coding Theorems

The near-capacity performance of turbo and LDPC codes can be understood through Shannon's channel coding theorem (covered in depth in the ITA book, Chapters 5-7). The coding theorem guarantees the existence of capacity-achieving codes but uses a random coding argument that is not constructive. Turbo codes (1993) and re-discovered LDPC codes (1996) provided the first practical codes approaching this theoretical limit, while polar codes (2009) gave the first provably capacity-achieving construction with explicit, polynomial-complexity encoding and decoding. The CC (Channel Coding) book covers these constructions in full mathematical detail.

Turbo Code

A parallel concatenation of two or more convolutional codes separated by an interleaver, decoded iteratively by exchanging extrinsic soft information between constituent decoders.

Related: Iterative Decoding, Interleaver, BCJR/MAP Decoding for Soft Outputs

EXIT Chart

Extrinsic information transfer chart: a graphical tool that plots the input-output mutual information relationship of constituent decoders in an iterative system, used to predict convergence thresholds.

Related: Turbo Code (Parallel Concatenated Convolutional Code), Iterative Decoding, Mutual Information

Iterative Decoding

A decoding strategy where two or more component decoders exchange soft (probabilistic) information in multiple rounds, progressively refining their estimates. Used in turbo codes, LDPC codes, and BICM-ID systems.

Related: Turbo Code (Parallel Concatenated Convolutional Code), Low-Density Parity-Check (LDPC) Code, Belief Propagation (Message Passing) Decoding