Spokes.wiki Search About
Defined Term stable
Created
Updated

Low-density parity-check code

A block code whose parity-check matrix H is sparse: every row and column has a small, fixed number of ones. A regular (j,k) Gallager code puts j ones in each column and k in each row and is otherwise constructed at random subject to that constraint. The rate-¼ example in the book has blocklength 16, twelve checks, j = 3, k = 4 — each transmitted bit takes part in three parity checks and each check forces four bits to sum to zero mod 2.

Sourced from information-theory-inference-learning-algorithms, held in ../machine-learning-wiki (see the provenance note on information-theory).

Invented, forgotten, rediscovered

Gallager published them in 1962. MacKay's account: they "were promptly forgotten by most of the coding theory community," were rediscovered in 1995, and turned out to be the best block codes known for Gaussian channels. The thirty-three-year gap is the sharpest fact in this corner of the subject — the construction was never lost or wrong, it was published before the machines that make its decoder cheap and before the turbo-code result (1993) that made anyone look again.

Why they work, and the catch

Theoretically. For any column weight j ≥ 3 these codes are good under an optimal decoder, and have good distance. Sequences in which j grows slowly with N (slowly enough that j/N → 0) are very good — arbitrarily small error at any rate up to capacity.

The catch, stated by MacKay in one sentence: "However, we don't have an optimal decoder, and decoding low-density parity-check codes is an NP-complete problem."

Practically. All the effective decoders are message-passing algorithms, the best being the sum–product algorithm — belief propagation on the code's factor graph, also called iterative probabilistic decoding. The decoding problem is written as an inference problem, find the x maximising P(x)·[Hx = z], and solved approximately. Sparsity is what makes each message cheap; the random construction is what keeps the code good. Approximate inference on a problem whose exact version is NP-complete is not a compromise here, it is the entire method.

How close to the limit

Density evolution gives thresholds for the sum–product decoder on a binary symmetric channel. For rate ½ the Shannon limit is a flip probability of f = 0.11; the regular families reach:

Code Threshold f_max
(3,6) 0.084
(4,8) 0.076
(5,10) 0.068

Regular codes therefore leave a visible margin, and the ways to close it are known: irregular constructions (varying the column weights) and codes over larger fields GF(q). On the rate-¼ Gaussian channel, where the Shannon limit is about 0.79 dB, MacKay's comparison chart puts an irregular GF(8) code at blocklength 48,000 in front, followed by the JPL turbo code and a regular GF(16) code — with the Galileo code, best known in 1992, well behind them all. As of the book's writing in 2003, better sparse-graph codes had already been built.

Note what the table is really saying: a family invented in 1962 and ignored, decoded by an approximate algorithm on a randomly generated graph, beat a code that needed a room of custom hardware.

coding-theory · error-correcting-code · fountain-code · noisy-channel-coding-theorem · information-theory · information-theory-inference-learning-algorithms · mathematics · synthesis