VIEWS: 7 PAGES: 12 POSTED ON: 8/13/2012 Public Domain
Low Density Parity Check Codes 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 ‘1’s in comparison to ‘0’s. 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 The density of ‘1’s in LDPC code parity check matrix is very low 1 1 0 0 1 0 H 1 0 0 1 0 1 Row weight wc - number of ‘1’s in a row Number of Number of symbols taking part in a parity check 1 1 1 0 0 1 Column weight wc - number of ‘1’s in a column wr and wc changes, therefore this is an irregular parity check matrix Number of times a symbol taking part in parity checks 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 1 1 1 0 0 1 Codeword is said to be valid if it satisfies the syndrome calculation z c.H T 0 We can generate the codeword in by multiplying message m with generator matrix G c m.G 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 m th check node is connected to nth variable node if and only if nth element in m th row hmn in parity check matrix H is a ‘1’. z1 z2 z3 c1 c2 c3 c4 c5 c6 The marked path z2 → c1 → z3 → c6 → z2 is an example for short cycle of 4 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 codeword as follows: c c1 , c2 , c3 , c4 , c5 , c6 c 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 c1 c4 c6 0 6 columns and 3 rows 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 1 1 1 0 0 1 R R R 0 1 1 1 0 0 H 2 3 2 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 PK M I K T 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 T 0 1 1 0 1 0. 0 0 0 0 1 0 1 1 1 0 0 1 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, this Dimensions of G = 3x6 is an irregular parity check matrix Low Density Parity Check Codes 2. The parity check matrix H of LDPC code is given below: 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 01 0 1 0 1 1 1 0 0 H 1 1 10 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 a.) Determine the degree of rows and column b.) State whether the LDPC code is regular or irregular c.) Determine the rate of the LDPC code d.) Draw the tanner graph representation of this LDPC code. e.) What would be the code rate if we make rows equals to column f.) Write down the parity check equation of the LDPC code 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 Dimensions of the H matrix = 6x12 0 1 01 0 1 0 1 1 1 0 0 M 6, N 12, K N M 6 H 1 1 10 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 Row weight wr 6 1 0 0 0 1 1 0 1 0 1 1 0 Column weight wc 3 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 Code rate R K N 612 1 2 , R 1 2 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 10 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 The parity check equations of the matrix are z1 c1 c3 c6 c7 c9 c12 z2 c2 c3 c4 c5 c7 c12 z3 c2 c4 c6 c8 c9 c10 z4 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. 1 1 0 0 1 0 1 1 0 1 0 0 H 1 0 0 1 0 1 G 0 1 1 0 1 0 Dimensions of the H matrix = 3x6 M 3, N 6, K N M 3 1 1 1 0 0 1 1 1 1 0 0 1 All possible message set All possible codeword set msg_1 000 codeword_1 msg_1.G 000000 msg_2 001 codeword_2 msg_2.G 111001 msg_3 010 codeword_3 msg_3.G 011010 msg_4 011 codeword_4 msg_4.G 100011 m c msg_5 100 codeword_5 msg_5.G 110100 msg_6 101 codeword_6 msg_6.G 001101 msg_7 110 codeword_7 msg_7.G 101110 msg_8 111 codeword_8 msg_8.G 010111 Low Density Parity Check Codes Question 4. a.) What is the difference between regular and irregular LDPC codes? b.) What is the importance of cycles in parity check matrix? c.) Identify the cycles of 4 in the following tanner graph. 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. C heck Nodes Variable Nodes