Documente Academic
Documente Profesional
Documente Cultură
LDPC ( Low Density Parity Check ) codes are a class of linear bock code. The term
Low Density refers to the characteristic of the parity check matrix which contains only
few 1s in comparison to 0s. LDPC codes are arguably the best error correction codes
in existence at present. LDPC codes were first introduced by R. Galager in his PhD
thesis in 1960 and soon forgotten due to introduction of Reed-Solomon codes and the
implementation issues with limited technological knowhow at that time. The LDPC
codes were rediscovered in mid 90s by R. Neal and D. Mackay at the Cambridge
University.
We can define N bit long LDPC code in terms of M number of parity check equations
and describing those parity check equations with a M x N parity check matrix H.
Where,
M Number of parity check equations
N Number of bits in the codeword
Low Density Parity Check Codes
Consider the 6 bit long codeword in the form
c c1 , c2 , c3 , c4 , c5 , c6
which satisfies 3 parity check equations as shown below.
c1 c2 c5 0 We can now define 3x6 parity check matrix as,
c1 c4 c6 0 c1 c2 c5
c1 c2 c3 c6 0
If the parity check matrix has uniform row weight and uniform column weight (same number of 1 in a
column and same number of 1 in a row) we call that a regular parity check matrix.
Low Density Parity Check Codes
1 1 0 0 1 0 The H M N parity check matrix defines a rate R K N , N , K code
H 1 0 0 1 0 1 where K N M
We can obtain the generator matrix G from parity check matrix H by,
1 0 0 1 0 1
1.) Arranging the parity check matrix in systematic form H sys I M P M K H sys 0 1 0 1 1 1
using row and column operations 0 0 1 0 1 1
1 1 0 1 0 0
2.) Rearranging the systematic parity check matrix G P T
K M IK G 0 1 1 0 1 0
1 1 1 0 0 1
3.) We can verify our results as G.H T 0
Low Density Parity Check Codes
1 1 0 0 1 0
H 1 0 0 1 0 1
Tanner graph is a graphical representation of parity check matrix
specifying parity check equations.
1 1 1 0 0 1 Tanner graph consists of N number of variable nodes and M
number of check nodes
In Tanner graph mth check node is connected to nth variable node if and only if nth element in
mth row hmn in parity check matrix H is a 1.
z1 z2 z3
c1 c2 c3 c4 c5 c6
The number of steps needed to return to the original position is known as the girth of
the code
Low Density Parity Check Codes
1. Suppose we have codewordc as follows: c c1 , c2 , c3 , c4 , c5 , c6
where each ci is either 0 or 1 and codeword now has three parity-check
equations.
c1 c2 c5 0
c1 c4 c6 0
c1 c2 c3 c6 0
a.) Determine the parity check matrix H by using the above equation
b.) Show the systematic form of H by applying Gauss Jordan elimination
c.) Determine Generator matrix G from H and prove G * HT = 0
d.) Find out the dimension of the H, G
e.) State whether the matrix is regular or irregular
Low Density Parity Check Codes
c1 c2 c5 0
1 1 0 0 1 0 6 columns and 3 rows
c1 c4 c6 0
H 1 0 0 1 0 1
c1 c2 c3 c6 0
1 1 1 0 0 1
Convert H into systematic form H sys using basic row and operations (try to avoid column operations)
1 1 0 0 1 0 1 1 0 0 1 0
H 1 0 0 1 0 1 R2 R3 1 1 1 0 0 1
1 1 1 0 0 1 1 0 0 1 0 1
1 1 0 0 1 0 1 1 0 0 1 0
H 1 1 1 0 0 1 R2 R3 R2 0 1 1 1 0 0
1 0 0 1 0 1 1 0 0 1 0 1
1 1 0 0 1 0 1 1 0 0 1 0
H 0 1 1 1 0 0 R3 R3 R2 R1 0 1 1 1 0 0
1 0 0 1 0 1 0 0 1 0 1 1
Low Density Parity Check Codes
1 1 0 0 1 0 1 0 0 1 0 1
H 0 1 1 1 0 0 R1 R1 R2 R3 0 1 1 1 0 0
0 0 1 0 1 1 0 0 1 0 1 1
1 0 0 1 0 1 1 0 0 1 0 1
H 0 1 1 1 0 0 R2 R2 R3 0 1 0 1 1 1
0 0 1 0 1 1 0 0 1 0 1 1
1 0 0 1 0 1
H sys 0 1 0 1 1 1
H sys I M P M K G PKTM I K
0 0 1 0 1 1
1 1 1
1 0 1
1 1 0 1 0 0 1 1 0 1 0 0 0 0 0
G 0 1 1 0 1 0
0 0 1
G.H 0 1 1 0 1 0
T
.
0 0 0
1 1 1 0 0 1 0 1 0
0 0 0
1 1 1 0 0 1 1 0 0
0 1 1
Dimensions of H = 3x6
Since the column weight and row weight changes,
Dimensions of G = 3x6 this is an irregular parity check matrix
Low Density Parity Check Codes
2. The parity check matrix H of LDPC code is given below:
10 1 0 0 1 1 0 1 0 0 1
01 1 1 1 0 1 0 0 0 0 1
01 01 0 1 0 1 1 1 0 0
H
1 1 10 0 0 0 1 1 0 1 0
0 0 01 1 0 1 0 0 1 1 1
1 0 0 0 1 1 0 1 0 1 1 0
Since the parity check matrix has a uniform row weight and uniform column weight,
this is a regular LDPC parity check matrix
Since the parity check matrix has a uniform row weight and uniform column weight,
this is a regular LDPC parity check matrix
If we make the number of rows equal to columns code rate will be equal to 0
Low Density Parity Check Codes
1 0 1 0 0 1 1 0 1 0 0 1
0 1 1 1 1 0 1 0 0 0 0 1
0 1 0 1 0 1 0 1 1 1 0 0
H
1 1 1 0 0 0 0 1 1 0 1 0
0 0 0 1 1 0 1 0 0 1 1 1
1 0 0 0 1 1 0 1 0 1 1 0
z1 c1 c3 c6 c7 c9 c12
z 2 c2 c3 c4 c5 c7 c12
z3 c2 c4 c6 c8 c9 c10
z 4 c1 c2 c3 c8 c9 c11
z5 c4 c5 c7 c10 c11 c12
z6 c1 c5 c6 c8 c10 c11
Low Density Parity Check Codes
3. Consider parity check matrix H generated in question 1,
a.) Determine message bits length K, parity bits length M, codeword length N
b.) Use the generator matrix G obtained in question 1 to generate all possible codewords c.
If the parity check matrix has uniform row weight and uniform column weight (same number of 1 in a
column and same number of 1 in a row) we call that a regular parity check matrix.
The decoding algorithm assumes that the LDPC code is cycle free ( large girth sizes ). The short cycles
in the code ( cycles with a girth of 4 and cycles of girth of 6 ) weakens the code. Therefore the codes
must be carefully constructed to be free of short cycles.
Check Nodes
Variable Nodes