
1.2 Regular and irregular LDPC codes
A LDPC code is call ed regular if w
c
is constant for every column regular
and w
r
= w
c
· (n/m) is also constant for every row. The example
matrix from equation (1) is regular with w
c
= 2 and w
r
= 4. It’s also
possible to see the regularity of this code while looking at the graphical
representation. There is the same number of incoming edges for every
v-node and also for all the c-nodes.
If H is low density but the num bers of 1’s i n each row or column
aren’t constant the code is called a irregular LDPC code. irregular
1.3 Constructing LDPC codes
Several different algorithms exists to construct suitable LDPC codes.
Gallager himself introduced one. Fu rthermore MacKay proposed one MacKay
to semi-randomly generate sparse parity check matrices. This is quite
interesting since it indicates that cons tructing good performing LDPC
codes is not a hard problem. In fact, completely randomly chosen
codes are good with a high probability. The problem that will arise,
is that the encoding complexity of such codes is usually rather high.
2 Performance & Complexity
Before describing decoding algorithms in section 3, I would like to
explain why all this effort is needed. The feature of LDPC codes to
perform near the Shannon limit
1
of a channel exists only for large
block lengths. For example there have been simulations that perform
within 0.04 dB of the Shannon limit at a bit error rate of 10
−6
with an Shannon limit
block length of 10
7
. An interesting fact is that those high performance
codes are irregular.
The large block length results also in large parity-check and gen-
erator matrices. The complexity of multiplying a codeword with a
matrix depends on the amount of 1’s in the matrix. If we put the
sparse matrix H in the form [P
T
I] via Gaussian elimination the gen-
erator matrix G can be calculated as G = [I P]. The sub-matrix P
is generally not sparse so that the encoding complexity will be quite
high.
1
Shannon proofed that reliable communication over an unreliable channel is
only possible with code rates above a certain limit – the channel capacity.
3