Logo der Uni Stuttgart
LDPC Codes

They are linear block codes with a sparse parity check matrix H.

They were developed by Gallager in the 1960s.

They are now widely used in real life applications because they have good minimum distance properties, they only need a low memory complexity in storing the sparse H-Matrix, simple iterative decoding schemes can be used and they have low error floors.

The LDPC codes can be regular or irregular. In the regular LDPC codes, each column of H contains exactly V ones and each row of H contain exactly C ones. So a regular LDPC code is characterized by the values of V and C only. The irregular LDPC codes are a generalization of the regular LDPC codes in which the number of ones per column and per row is not necessarily constant.

The LDPC codes are encoded using the H-Matrix. For a regular LDPC code, this H-Matrix can be constructed with two methods:

Gallager's method: The H-Matrix is divided into V sets. Each set contains $\frac{(n-k)}{V}$ rows. The first set will contain C consecutive ones per row. And then every other set is a random column permutation from the first set. The H-Matrix of an LDPC code with $V=3$ and $C=4$ constructed with this method is shown below: $$H=\begin{pmatrix} 1& 1& 1& 1& 0& 0& 0& 0& 0& 0& 0& 0&\\ 0& 0& 0& 0& 1& 1& 1& 1& 0& 0& 0& 0&\\ 0& 0& 0& 0& 0& 0& 0& 0& 1& 1& 1& 1&\\ \hdashline 1& 0& 1& 0& 0& 1& 0& 0& 0& 1& 0& 0&\\ 0& 1& 0& 0& 0& 0& 1& 1& 0& 0& 0& 1&\\ 0& 0& 0& 1& 1& 0& 0& 0& 1& 0& 1& 0&\\ \hdashline 1& 0& 0& 1& 0& 0& 1& 0& 0& 1& 0& 0&\\ 0& 1& 0& 0& 0& 1& 0& 1& 0& 0& 1& 0&\\ 0& 0& 1& 0& 1& 0& 0& 0& 1& 0& 0& 1& \end{pmatrix}$$

MacKay and Neal method: V ones per column are added randomly from left to right. In a certain column, ones are added to the rows that are not full yet (contains less than C ones). Back tracing is allowed to reach the correct H-Matrix with the correct number of ones at the end.