Contents / Information Theory / Modern Codes: LDPC, Polar and Turbo
Chapter 9
Modern Codes: LDPC, Polar and Turbo
The sparse-graph and polarization constructions that finally reach capacity in practice, and how they are decoded.
Introduction
The sparse-graph and polarization constructions that finally reach capacity in practice, and how they are decoded.
9.1LDPC Codes: Sparsity and Ensembles
Hamming's codes are optimal packings but hopeless at capacity: their distance does not grow with the block length. Shannon's argument says that long random codes are excellent — the problem is decoding them. Robert Gallager's 1963 thesis found the resolution: choose the parity-check matrix at random but sparse, so that the code is still essentially random, yet the constraints are local enough to be resolved by a message-passing algorithm. The idea was forgotten for thirty years, rediscovered by MacKay and Neal in the mid-1990s, and is now in Wi-Fi, DVB-S2, 5G data channels and every hard-disk controller.
Definition 9.1 (LDPC code). An LDPC code is a binary linear code specified by a parity-check matrix of size that is sparse: the number of ones per row and per column is bounded by a constant independent of . The code is the null space,
It is -regular if every column has exactly ones and every row exactly .
Proposition 9.2 (Design rate of a regular ensemble). A -regular parity-check matrix satisfies , and the code it defines has rate
with equality if and only if has full row rank.
Proof. Count the ones of twice: by columns, ; by rows, . Hence . The dimension of the null space is , giving , with equality exactly when the rows are independent.∎
The inequality is not pedantry: a random sparse usually has a few dependent rows, so the true rate slightly exceeds the design rate. Standards fix this by using structured (quasi-cyclic) matrices whose rank is known.
Definition 9.3 (Degree distributions). An irregular LDPC ensemble is described from the edge perspective by
where (resp. ) is the fraction of edges incident to a variable node of degree (resp. a check node of degree ). The design rate is .
Intuition. Think of a huge crossword in which every clue involves only a handful of letters and every letter appears in only a handful of clues. No clue determines its letters by itself, but because the clues overlap sparsely, information propagates: solving a few letters unlocks neighbouring clues, and the puzzle unzips. Density is the enemy — a check involving half the bits tells you almost nothing about any one of them.
Theorem 9.4 (Good LDPC ensembles have linearly growing distance). For a -regular ensemble with , there is a constant such that a randomly chosen code from the ensemble has minimum distance at least with probability tending to as .
Proof. Sketch. A first-moment (union) bound. For each weight one computes the expected number of codewords of weight in the ensemble, which is the number of ways of choosing the support, , times the probability that the edges leaving the support pair up so that every check sees an even number of them. For that probability decays fast enough that the expectation is exponentially small for all below some , and Markov's inequality then says almost no code in the ensemble has such a codeword. The case genuinely fails: the code is then a cycle code, with minimum distance . The full computation is in Gallager's thesis; we use only the conclusion.∎
Example 9.5 (A small regular ensemble). Describe the -regular LDPC matrix for and check its consistency.
Solution. Design rate , so and is . Counting ones by columns gives ; by rows, — consistent, as the proposition requires. So of the entries are ones; at this is hardly "low density", and it illustrates that sparsity is an asymptotic notion: at (DVB-S2) the same degrees leave the matrix zeros.□
Pitfall. Sparsity of does not mean the code is weak or the generator matrix is sparse. for an LDPC code is typically dense, which is why encoding is done by back-substitution on an approximately lower-triangular , or by using a quasi-cyclic structure, rather than by multiplying by .
9.2Tanner Graphs and Belief Propagation
Definition 9.6 (Tanner graph). The Tanner graph of a code with parity-check matrix is the bipartite graph with variable nodes (one per coordinate), check nodes (one per row), and an edge between variable and check exactly when . The girth is the length of its shortest cycle.
Decoding is inference on this graph: given the channel observations, compute (or approximate) the posterior probability of each bit, subject to all parity constraints.
Definition 9.7 (Log-likelihood ratio). The LLR of a bit given an observation is
A positive LLR favours ; the magnitude is the strength of the belief. On a received carries ; on a BI-AWGN channel with signalling, .
Theorem 9.8 (Sum-product update rules). In belief propagation on a Tanner graph, with the channel LLR of bit , the extrinsic messages are
The final belief at variable is .
Proof. Variable rule. Conditioned on the bit value, the incoming pieces of evidence are independent (in a cycle-free graph they come from disjoint subtrees), so their likelihood ratios multiply and their log-likelihood ratios add. Excluding from the message sent back to is what makes the message extrinsic: it carries only evidence has not already supplied.
Check rule. Let be independent bits with , and let . A standard identity gives . For the parity , the probability of an even sum satisfies
which is proved by expanding the product of the generating factors , or by induction on using . Writing the left-hand side as where is the LLR of the parity bit and substituting gives exactly the stated product rule.∎
Corollary 9.9 (Exactness on trees). If the Tanner graph is a tree, belief propagation converges after a number of iterations equal to the tree's diameter, and its output is the exact bitwise a posteriori probability. On a graph with cycles it is an approximation whose fixed points need not be the true posterior.
Proof. On a tree, removing a node's edge to a neighbour splits the graph into disjoint components, so the messages entering along different edges are functions of disjoint sets of observations and are conditionally independent given the bit. The update rules are then exact applications of Bayes' rule, and a single sweep from the leaves inward and back out computes every marginal exactly. Cycles destroy the independence, and the same evidence can circulate and be counted twice.∎
Remark (Why cycles are tolerable). For a random sparse graph, the neighbourhood of a given node within radius is a tree with probability . So for a fixed number of iterations the algorithm is asymptotically running on a tree, which is exactly what makes the density-evolution analysis of the next section rigorous. Short cycles hurt at finite length, and constructions such as progressive edge growth and protographs exist to push the girth up.
Example 9.10 (One variable-node update). Variable has channel LLR and is connected to checks , which send and . Compute the belief and both outgoing messages.
Solution. Belief: , so currently favours .
Message to (excluding 's own message): .
Message to : .
Each outgoing message omits the recipient's contribution. Including it would return the check's own opinion to it and let a single observation be counted repeatedly around the graph.□
Example 9.11 (One check-node update, exactly and by min-sum). Check has three other neighbours sending . Compute its outgoing message exactly and by the min-sum approximation.
Solution. Exact: , , . The product is . Then .
Min-sum: the sign is the product of signs, ; the magnitude is approximated by the smallest incoming magnitude, . So min-sum gives , the right sign and an optimistic magnitude — which is why implementations scale it by a factor around .
Note how the exact magnitude is smaller than every incoming magnitude: a parity check is only as confident as its least confident member, because one uncertain bit makes the parity of the rest uncertain.□
9.3Density Evolution, Thresholds and Error Floors
The remarkable feature of LDPC codes is that their asymptotic performance can be computed exactly. Because the local neighbourhood of a node is a tree with high probability, the fraction of erroneous messages evolves according to a deterministic one-dimensional recursion.
Definition 9.12 (Decoding threshold). For an ensemble and a family of channels ordered by a noise parameter , the threshold is the supremum of noise levels for which the expected fraction of incorrect messages tends to as the number of iterations and the block length grow.
Theorem 9.13 (Density evolution on the BEC). Consider an irregular ensemble with edge degree distributions used on with the peeling (message-passing) decoder. Let be the probability that a variable-to-check message is an erasure after iterations. Then and
The decoder succeeds asymptotically if and only if for all , and the threshold is the largest for which this holds.
Proof. Work in the tree-like local neighbourhood, where all incoming messages are independent.
Check to variable. A check-to-variable message is known (not an erasure) precisely when every other message into that check is known. For a check of degree this has probability , and averaging over the edge-perspective distribution gives . So a check-to-variable message is an erasure with probability .
Variable to check. A variable-to-check message is an erasure precisely when the channel erased the bit and every other incoming check message is an erasure. For a variable of degree that probability is ; averaging over gives the recursion.
The recursion is monotone increasing in and is non-increasing in when it starts at , so it converges to the largest fixed point below . Convergence to therefore holds exactly when no fixed point exists in , which is the stated strict-inequality condition.∎
Example 9.14 (Threshold of the ensemble on the BEC). Compute the recursion for the regular code and estimate its threshold; compare with capacity.
Solution. Regular degrees mean and , so
At the map has a fixed point near (since ), so the decoder stalls there and never clears the block. At iterating from gives , then , then , , decreasing steadily to . The true threshold is , against the capacity limit . Irregular ensembles close most of that gap; optimised degree distributions reach .□
Theorem 9.16 (Stability condition). A necessary condition for the threshold of an ensemble on to be at least is
Proof. Linearise the density-evolution recursion at . Writing , the chain rule gives . If then for small positive , so a fixed point exists arbitrarily close to and the erasure fraction cannot be driven to zero.∎
The stability condition explains why good irregular ensembles keep the fraction of degree-2 variable nodes small but nonzero: degree-2 nodes speed up the waterfall but, in excess, stall the endgame.
Remark (Error floors and trapping sets). Density evolution describes the waterfall: the steep fall of error rate just below threshold. At high SNR a different mechanism dominates. Small subgraphs — near-codewords, absorbing sets, trapping sets — can hold the decoder in a stable wrong configuration even though the code's true minimum distance is large. The resulting error floor is a plateau in the error-rate curve, and it is a finite-length, decoder-specific phenomenon that density evolution cannot see. Standards mitigate it with girth-optimised constructions and an outer CRC or BCH code.
Intuition. Think of the BEC decoder as unzipping: find a check with exactly one unknown bit, solve it, repeat. Density evolution tracks the fraction of bits still unknown. Below threshold the unzipping never runs out of solvable checks and the whole block resolves; above threshold it jams on a stuck subgraph — a set of bits whose checks each contain at least two of them — and stops.
Example 9.17 (Complexity of message passing). Show that one iteration costs operations for a fixed degree distribution, and comment on latency.
Solution. The number of edges is , with the average variable degree, a constant. Each iteration performs work per edge in both directions, so the cost is , and with iterations the total is — linear in the block length, unlike the of exhaustive maximum-likelihood decoding. The work is also fully parallel across edges, which is why LDPC decoders map so well onto hardware; the latency cost is the to sequential iterations, mitigated in practice by layered scheduling that propagates information within an iteration.□
9.4Channel Polarization
LDPC and turbo codes approach capacity but do not provably attain it, and their analysis is asymptotic and ensemble-averaged. In 2009 Erdal Arıkan produced the first explicit construction with a proof: a deterministic family of codes, with encoding and decoding in , that achieves the symmetric capacity of any binary-input memoryless channel. The mechanism is a phenomenon he named channel polarization.
Definition 9.18 (Symmetric capacity and Bhattacharyya parameter). For a binary-input channel , the symmetric capacity is the mutual information with a uniform input, and the Bhattacharyya parameter is
is an upper bound on the error probability of a maximum-likelihood decision between the two inputs on one use of ; and mean a clean channel, and a useless one.
Definition 9.19 (The basic polar transform). Given two independent copies of and inputs , set , , and transmit . This defines two synthetic channels
where decodes from the two outputs alone, and decodes from the two outputs and a known .
Theorem 9.20 (Conservation and polarization of one step). For any binary-input channel ,
with equality in the second display if and only if .
Proof. The map is a bijection on , so with uniform and independent, is also uniform and independent, and because the two uses are independent. The chain rule splits the left side:
the two terms being exactly the symmetric capacities of the synthetic channels, since are uniform. That proves conservation.
For the ordering, note : giving the decoder and the extra output cannot hurt, and conditioning on the independent does not reduce the information here because is independent of . Conservation then forces . Equality throughout requires , which happens only in the extreme cases .∎
Intuition. The transform takes two identical mediocre channels and makes one worse and one better, keeping the total constant. must be read through the interference of , so its channel degrades; , once is known, enjoys both observations, so its channel improves. Capacity is neither created nor destroyed — it is redistributed.
Proposition 9.21 (Erasure channels stay erasure channels). If , then and .
Proof. For : can be recovered iff both and arrive, so it is erased with probability . For : knowing , the value can be recovered from alone or from alone, so it is erased only if both are erased, which has probability . Both synthetic channels are still erasure channels because the outputs are either fully informative or entirely uninformative. Note , i.e. , in accordance with conservation.∎
Definition 9.22 (Recursive construction). Apply the transform recursively. For , the synthetic channels , , are obtained by levels of the basic transform; in the notation above, and .
Theorem 9.23 (Channel polarization, Arıkan 2009). For any binary-input memoryless channel and any , as ,
The fraction of synthetic channels that are neither almost perfect nor almost useless tends to zero.
Proof. Sketch. Let be i.i.d. fair bits choosing the or branch at each level, and let be the symmetric capacity of the synthetic channel reached after steps. Conservation, , says precisely that
so is a bounded martingale and converges almost surely to some , with . The remaining step shows almost surely: martingale convergence forces , while a separate estimate shows that one step moves the capacity by a definite amount unless the channel is already nearly extremal. Since takes only the values and and has mean , it equals with probability exactly , which is the statement. The quantitative step — that a non-extremal channel polarises at a definite rate — is the technical core of Arıkan's paper and we do not reproduce it.∎
Example 9.24 (Polarization on the BEC, by hand). Start with and run two levels of the recursion, listing the four erasure probabilities.
Solution. Level 1: and .
Level 2, applying the same rules to each:
- from : and ;
- from : and .
So the four synthetic channels have erasure probabilities — already spreading toward the extremes. Their average is , confirming conservation. After levels the great majority of the channels sit within of or .□
9.5Construction and Encoding
Polarization hands us synthetic channels, some nearly perfect and some nearly useless. The code writes data on the good ones and fixes the bad ones to values the decoder already knows.
Definition 9.26 (Polar transform matrix). With , the polar transform of length is the Kronecker power (composed with a bit-reversal permutation in Arıkan's original presentation). Encoding is
Definition 9.27 (Polar code). Fix a rate . Choose the information set with to consist of the indices of the synthetic channels with the smallest Bhattacharyya parameters . The frozen set is , and is fixed to a value known to both ends (usually ). The codeword is with carrying the message.
Theorem 9.28 (Encoding complexity). can be computed with binary additions, i.e. in time and space.
Proof. Write for the cost. The Kronecker structure (up to the standard index permutation) means the length- transform consists of XORs combining the two halves followed by two independent length- transforms, so with . By induction : indeed if then . This is the butterfly structure of the fast Hadamard transform.∎
Proposition 9.29 (Polar codes are linear, and their rate). A polar code is the linear code generated by the rows of indexed by , so it is an linear code of rate when the frozen values are zero.
Proof. With , , a linear span of rows. The rows of are linearly independent because and is invertible over (indeed ), so is invertible and its selected rows are independent.∎
Remark (Choosing the frozen set). For the BEC the parameters follow the exact recursion of the erasure proposition, so the information set is computable in arithmetic. For general channels one uses density evolution on quantised distributions, the Gaussian approximation, or — as in 5G — a single fixed reliability sequence tabulated once and nested across lengths. Note that the good set depends on the channel quality, so a polar code designed for one SNR is slightly mismatched at another.
Example 9.30 (A length-8 polar code). Take , , . Determine the information set.
Solution. Apply the erasure recursion three times. From : level 1 gives ; level 2 gives ; level 3 gives
The four smallest erasure probabilities are at indices , so and the frozen set is . The average of the eight numbers is , as conservation demands. Note that the good indices are the ones with many branches in their binary expansion — the pattern that the 5G reliability sequence tabulates once and for all.□
Pitfall. Frozen bits are not wasted parity; they are positions whose value is known in advance to the decoder. That knowledge is what the successive-cancellation decoder leans on. Setting them to random-but-known values works equally well on a symmetric channel; setting them to values the decoder does not know destroys the code.
9.6Successive Cancellation Decoding
The decoder mirrors the encoder's recursion, deciding in order and using each decision as known side information for the next.
Method 9.31 (Successive cancellation decoding). For :
- If , set to the known frozen value.
- Otherwise compute the LLR of the -th synthetic channel, using the recursive butterfly, and set if and otherwise.
Proposition 9.32 (LLR recursions). Writing and for the LLRs of the two synthetic channels built from LLRs and , and for the earlier decision,
Proof. For : is a parity of two independently observed bits, so the check-node (box-plus) rule proved in the LDPC section applies verbatim. For : given , the observation is a noisy version of , so it is evidence about with the sign of its LLR flipped when , while is direct evidence about . Independent evidence adds in the LLR domain, giving the stated sum.∎
Theorem 9.33 (Decoding complexity). Successive cancellation decoding of a length- polar code costs operations.
Proof. Let be the cost of decoding all bits. The recursion computes, from the channel LLRs, two length- decoding problems — one for the odd-indexed ("minus") branch, one for the even ("plus") branch — each preceded by combining operations, and the plus branch reuses the already decided bits. So , with , and the master theorem gives .∎
Theorem 9.34 (Block error bound). Under successive cancellation with genie-free decoding, the block error probability of a polar code with information set satisfies
Proof. Sketch. Consider the first index at which the decoder errs. Conditioned on all previous decisions being correct, the decision on is a maximum-likelihood binary decision on the synthetic channel , whose error probability is at most — the standard Bhattacharyya bound on the error of a binary hypothesis test. Union bounding over gives the claim. Arıkan's rate-of-polarization theorem then shows that for any one can choose with , which is what makes polar codes capacity-achieving.∎
Example 9.35 (Decoding a length-2 polar code). Let with frozen to , so the code is . The channel LLRs are and . Decode.
Solution. is frozen, so without computation — which is fortunate, since its synthetic channel is the bad one: , a weak belief.
Then , a strong belief, so . The decoded codeword is .
Observe the polarization concretely: the two channel LLRs of magnitude and became a synthetic pair of magnitudes and — one worse than either, one better than both.□
Remark (SC list decoding). Plain SC is greedy: one early wrong decision is never revisited, and at short lengths it falls well short of maximum likelihood. SC list decoding keeps the most likely partial paths (typically or ), doubling the list at each information bit and pruning; its complexity is . Concatenating a CRC over the information bits and selecting the surviving path that passes the CRC gives CRC-aided SCL, which at short lengths is close to the finite-length bounds and is what 5G actually deploys. The CRC here is not an error detector bolted on afterwards; it is part of the code.
Intuition. Successive cancellation is a relay race in a fixed order. Each runner may consult everything the earlier runners decided, and the positions have been chosen so that by the time a runner has to make a real decision, the accumulated information makes it nearly obvious. The weakness is that nobody checks the earlier runners' work — hence list decoding, which keeps several teams running and lets the CRC pick the winner at the end.
9.7Performance in Standards
Remark (Where polar codes stand). The honest summary is three claims, one asymptotic and two practical.
Asymptotically, polar codes are the first explicit, low-complexity family proved to achieve the symmetric capacity of any binary-input memoryless channel. That is a theorem, and it is what makes them a landmark.
At finite length, plain SC decoding is mediocre; polar codes became competitive only with CRC-aided list decoding, whose complexity is times larger. With and a CRC of to bits, at block lengths of a few hundred bits they match or beat LDPC and turbo codes and come within a few tenths of a dB of the finite-blocklength (normal-approximation) bound.
At long lengths and high rates, LDPC codes generally win on throughput per unit of silicon, because belief propagation is fully parallel while SC list decoding is inherently sequential across bits.
Example 9.36 (Polar codes in 5G New Radio). Summarise the deployment choices in 5G and why they follow from the theory.
Solution. 5G NR uses polar codes for the control channels — downlink control information (PDCCH), uplink control (PUCCH), and the broadcast channel — and LDPC codes for the data channel. The control payloads are short (tens to a few hundred bits) and must meet block error rates of to with very low latency, exactly the regime where CRC-aided SCL is strongest and where LDPC thresholds do not apply. Distributed CRC bits let the decoder prune list paths early, and a fixed nested reliability sequence avoids per-SNR construction. Rate matching by puncturing, shortening or repetition supports arbitrary lengths, since the natural lengths are only powers of two. The data channel, by contrast, carries long blocks at high throughput, which is where LDPC parallelism wins — so 5G runs both families, each where the theory says it belongs.□
Pitfall. "Capacity-achieving" is an asymptotic statement about a sequence of codes, not a claim about any particular block length. A length- polar code is not at capacity, and plain SC decoding of it is not even close; the gap is closed by list size, CRC and rate matching, all of which are finite-length engineering outside the theorem.
9.8Convolutional Codes and Turbo Concatenation
In 1993 Berrou, Glavieux and Thitimajshima reported bit error rates within half a decibel of the Shannon limit at rate — a claim so far beyond the state of the art that the audience largely disbelieved it until the simulations were reproduced. Their construction combined two ingredients that had been available for thirty years: convolutional codes, and the idea of exchanging soft information between decoders. We treat convolutional codes first, because turbo codes are built out of them and because the Viterbi algorithm is the cleanest example of decoding by dynamic programming.
Definition 9.37 (Convolutional encoder). A rate- binary convolutional encoder with constraint length maps an input stream to output streams by
a convolution of the input with fixed generator sequences . The encoder is a finite-state machine whose state is the contents of its memory cells, so it has states.
Definition 9.38 (Trellis and free distance). The trellis of a convolutional encoder is the graph whose nodes are (time, state) pairs and whose edges are the state transitions, labelled by the output symbols they emit. The free distance is the minimum Hamming weight of any nonzero codeword, equivalently the minimum weight of any path that leaves the zero state and later returns to it.
Example 9.39 (The rate-, encoder). Describe the encoder with generators and , written in octal as , and find its free distance.
Solution. The state is , so there are states. On input the encoder emits and .
For the free distance, drive the encoder with the input from the zero state: the outputs are , then , then , after which the encoder is back in state and emits zeros. The total weight is . No shorter or lighter excursion exists (a single-step excursion cannot return to zero, and the other short excursions have weight ), so . This encoder can therefore correct up to errors within a constraint span, and it is the classic code used in countless textbooks and in the CCSDS convolutional standard's ancestor.□
Theorem 9.40 (Viterbi decoding is maximum likelihood, in linear time). For a convolutional code of states used over a memoryless channel for steps, the Viterbi algorithm returns a maximum-likelihood codeword using operations and surviving paths.
Proof. Maximum-likelihood decoding maximises over paths through the trellis, an additive path metric. The key observation is the principle of optimality: if a maximum-metric path passes through state at time , its initial segment must be a maximum-metric path among all paths ending at — otherwise replacing that segment would improve the total. So it suffices to keep, for each of the states at each time, one survivor with its metric. Extending all survivors by one step costs per time step (two incoming edges per state, a constant), for overall, and a traceback at the end recovers the path. Since every path is represented by a survivor at some stage, the maximum over final states is the global maximum.∎
Intuition. Exhaustive maximum-likelihood decoding would examine input sequences. Viterbi exploits the fact that the encoder's memory is only bits: two input histories that end in the same state are interchangeable from then on, so only the better one needs to be remembered. The cost is exponential in the memory, not in the message length.
Definition 9.41 (Recursive systematic convolutional encoder). An RSC encoder is obtained from a feedforward encoder by feeding back one output into the input and transmitting the information bit itself. Its transfer function is rational, , so a single input produces an output of infinite (or very long) weight, whereas a feedforward encoder responds to it with a burst of weight at most .
That last clause is why turbo codes use RSC components rather than ordinary ones, as the next theorem makes precise.
Definition 9.42 (Turbo encoder, parallel concatenation). A turbo encoder feeds the information block of length to one RSC encoder, and the permuted block to a second RSC encoder. Transmitted are the systematic bits and the two parity streams , giving rate before puncturing; puncturing the parity streams alternately gives rate .
Theorem 9.43 (Interleaver gain). For a parallel concatenation of two RSC encoders with a uniform random interleaver of length , the contribution to the bit error probability from input sequences of weight scales as . Hence weight- inputs contribute and every heavier input contributes a vanishing amount, so the dominant error events come from the lowest input weight that produces a finite-weight codeword in both encoders.
Proof. Sketch. Under the uniform interleaver model — averaging over all permutations — the probability that a weight- input producing a particular low-weight parity pattern in encoder 1 also produces a low-weight pattern in encoder 2 is governed by the number of ways of placing ones, , against the number of "bad" placements, which grows like ; carrying the count through gives the exponent for the multiplicity per information bit. For an RSC encoder a weight- input produces an infinite-weight (in practice, very heavy) parity sequence, so contributes nothing; is the first relevant weight and it already carries the factor . The full derivation is Benedetto and Montorsi's uniform-interleaver analysis, which we cite rather than reproduce.∎
Remark (Why RSC, in one sentence). With feedforward components a weight- input gives low-weight parity in both encoders no matter how they are interleaved, so there is no interleaver gain at all; recursion is what forces the low-weight error events to require at least two well-placed ones, and the interleaver then makes that coincidence rare.
Example 9.44 (Rate and block structure). A rate- turbo code carries information bits. How many bits are transmitted, and what changes at rate ?
Solution. Systematic plus two parity streams of each gives transmitted bits, a rate of (ignoring the few tail bits used to return each encoder to the zero state). To reach rate , puncture the parity: keep for odd and for even , transmitting systematic plus parity bits in total. Puncturing raises the rate and lowers the effective free distance, which is the usual trade.□
Pitfall. The interleaver is not a scrambler for security or for burst protection, and a "nice" interleaver such as a block (row-column) permutation is a poor choice: it maps some low-weight patterns to other low-weight patterns. S-random and quadratic permutation polynomial interleavers are used precisely because they guarantee that nearby positions are separated.
9.9Iterative Decoding and Extrinsic Information
Neither constituent decoder can decode the turbo code on its own — each sees only its own parity. The turbo principle is to let them take turns, each passing the other only what the other does not already know.
Definition 9.45 (Soft-input soft-output decoding, BCJR). The BCJR algorithm computes, for each information bit of a trellis code, the exact a posteriori LLR
by a forward recursion over states, a backward recursion , and branch metrics , combining them as . Its cost is , the same order as Viterbi, with a larger constant.
Definition 9.46 (Extrinsic information). Write the output LLR of a decoder as
the channel LLR of the systematic bit, the a priori LLR supplied by the other decoder, and the remainder , which is the extrinsic information: what this decoder learned about from its parity and from the other bits, excluding what it was told.
Method 9.47 (Turbo iteration).
- Decoder 1 runs BCJR on the first trellis with a priori LLRs (zero on the first pass) and outputs extrinsic .
- Interleave: .
- Decoder 2 runs BCJR on the second trellis and outputs .
- De-interleave: ; return to step 1.
- After the last iteration, decide from the sign of the total a posteriori LLR.
Proposition 9.48 (Why only extrinsic information may be passed). If a decoder passes its full a posteriori LLR instead of the extrinsic part, the same evidence is returned to its source and counted twice; the iteration then develops a positive feedback loop whose beliefs grow without bound and which converges to a confident answer independent of whether that answer is right.
Proof. The LLR update rule is exact only for independent pieces of evidence, which is what allows likelihood ratios to multiply. If decoder 2 receives , the term is precisely the information decoder 2 supplied on the previous half-iteration, and the channel term is already in decoder 2's own input. Adding them again multiplies the same likelihood ratio twice, which is the error of treating dependent evidence as independent; iterating the doubling makes grow geometrically, and the sign is fixed early by whichever hypothesis happened to lead.∎
Intuition. Two experts examine the same patient from different angles. Progress is made only when each reports what their own examination added, rather than repeating back what the other told them — otherwise the pair talk themselves into certainty by hearing their own opinions returned as confirmation.
Example 9.49 (One half-iteration in numbers). On rate- turbo decoding, the systematic bit has channel LLR and decoder 1 has a priori on the first pass. Its BCJR output is . What is passed to decoder 2, and to which position?
Solution. The extrinsic part is . That value — not — is interleaved and delivered to decoder 2 as a priori information at position , say position .
If decoder 2 then returns extrinsic for that bit, decoder 1's next pass runs with , and its total belief becomes . The disagreement is exactly the useful signal: two nearly independent views of the same bit that differ are what drives the iteration.□
Remark (EXIT charts). Convergence is analysed with extrinsic information transfer charts: plot each constituent decoder's output mutual information against its input mutual information, and superimpose the second decoder's curve with axes swapped. The iteration is the staircase between the two curves, and it reaches the top-right corner — perfect information, hence successful decoding — if and only if a tunnel remains open between them. The SNR at which the tunnel closes is the iterative decoding threshold, the turbo analogue of the LDPC threshold computed by density evolution.
9.10Performance, Error Floors and Applications
Remark (The two regions of a turbo code's error curve). A turbo code's bit error rate against SNR has two distinct regions. The waterfall is a near-vertical drop starting just above the iterative threshold, and it is what made the codes famous. The error floor is the shallow region at higher SNR, where the curve flattens; it is governed by the few low-weight codewords that the interleaver failed to break up, and by the maximum-likelihood distance spectrum rather than by the iterative decoder.
Example 9.50 (Reading the gap to capacity honestly). A rate- turbo code with interleaver length reaches a bit error rate of at dB on the AWGN channel. How far from the limit is that?
Solution. The relevant limit is the binary-input AWGN capacity at rate , which requires dB; the unconstrained-input Shannon limit for rate is dB, and using it would flatter the code. So the gap is about dB, the number Berrou and co-authors reported, and it is measured at a specific error rate and block length. Shrinking the interleaver to costs several tenths of a dB and raises the error floor; enlarging it to buys perhaps dB more and lowers the floor, since interleaver gain scales the floor by for the dominant weight- events.□
Pitfall. Quoting "within dB of Shannon" without saying which limit, at which error rate, with which block length and how many iterations is the most common overstatement in coding papers. The binary-input limit is the right comparison for a binary code, and it sits about dB above the unconstrained one at rate .
Remark (Where each family is deployed). Turbo codes were adopted in 3G UMTS and in 4G LTE data channels, and in the CCSDS deep-space standard where the interleaver may be very long and latency is irrelevant. 5G moved the data channel to LDPC codes and the control channels to polar codes, for reasons that are about implementation rather than about distance: belief propagation parallelises across edges, whereas BCJR is sequential along a trellis and has to be run twice per iteration. The turbo principle — exchanging extrinsic information between soft-in soft-out blocks — survives everywhere, including in turbo equalisation and in joint detection-and-decoding receivers.
Intuition. Two weak codes, plus a shuffle, plus a conversation, equal one very strong code. Neither constituent code has a large free distance; what the interleaver does is make it overwhelmingly unlikely that an error pattern is simultaneously plausible to both decoders.
- Confusing LDPC with turbo codes: both are iteratively decoded and capacity-approaching, but LDPC codes are defined by a sparse parity-check matrix and decoded on its Tanner graph, whereas turbo codes concatenate convolutional codes through an interleaver.
- **Assuming any sparse gives a good code**: degree-2-heavy ensembles violate the stability condition, short cycles wreck finite-length performance, and ensembles have logarithmic minimum distance.
- Treating belief propagation as maximum likelihood: it is exact only on trees. On a loopy graph it may converge to a non-codeword, oscillate, or stop at a trapping set.
- Reading a threshold as a finite-length guarantee: thresholds are asymptotic. A length-1000 code performs visibly worse than its ensemble threshold predicts.
- Forgetting that the all-zero codeword suffices for simulation: for a linear code on a symmetric channel the error probability does not depend on the transmitted codeword, so simulations transmit — but only after checking that the decoder itself is symmetric.
- Ignoring the error floor: the waterfall is not the whole curve. Systems that need error rates below care more about trapping sets than about the threshold.
- Reading the polarization theorem as a finite-length guarantee: it says the *fraction* of extremal channels converges. At any finite many synthetic channels are still mediocre, and they are the ones that cause errors.
- Confusing the polar transform with the FFT: has the butterfly structure of a fast Hadamard transform, but the code lies in the choice of frozen set, which is channel-dependent and has no analogue in signal processing.
- Thinking frozen bits carry information: they carry *known* values. Their role is to make the good synthetic channels usable, not to add parity.
- Assuming SC is maximum likelihood: it is greedy and cannot revisit a decision. SCL with plus a CRC is what approaches ML.
- Designing the information set at the wrong SNR: the ordering of synthetic channels depends on the channel. A set chosen for a clean channel is wrong for a noisy one, which is why standards fix a single nested reliability sequence as a compromise.
- Expecting polar codes to dominate everywhere: at long blocks and high rates LDPC codes usually win on implementation; 5G deploys both for exactly that reason.
- Calling every concatenation "turbo": the classical construction is *parallel* concatenation of two RSC encoders. Serial concatenation is a different (and sometimes better) architecture with its own analysis.
- Using feedforward components: without recursion there is no interleaver gain, and the error floor does not fall with block length.
- Passing a posteriori instead of extrinsic information: this double-counts evidence and produces a confidently wrong decoder.
- Expecting a short turbo code to perform well: interleaver gain is a effect. Short blocks have visible floors, which is why 5G control channels use polar codes instead.
- Treating the BCJR as maximum likelihood for the whole code: it is exact for one constituent trellis; the concatenation is decoded only approximately, by iteration.
- Comparing against the wrong Shannon limit: for binary signalling the relevant number at rate is dB in , not dB.