+ All Categories
Home > Documents > Seminar Report on Low Density Parity Check codes

Seminar Report on Low Density Parity Check codes

Date post: 08-Nov-2014
Category:
Upload: pavan-suresh
View: 58 times
Download: 3 times
Share this document with a friend
Description:
Notes regarding LDPC codes
Popular Tags:
21
Low-density parity-check (LDPC) codes are a class of linear block LDPC codes. Their main advantage is that they provide a performance which is very close to the capacity for a lot of different channels and linear time complex algorithms for decoding. Furthermore are they suited for implementations that make heavy use of parallelism. They were first introduced by Robert Gallager in his PhD thesis in 1960. But due to the computational effort in implementing coder and encoder for such codes and the introduction of Reed-Solomon codes. They were mostly ignored until about ten years ago. Representations for LDPC codes Basically there are two different possibilities to represent LDPC codes. Like all linear block codes they can be described via matrices. The second possibility is a graphical representation. Matrix Representation Let’s look at an example for a low-density parity- check matrix first. The matrix defined in equation (1) is a parity check matrix with dimension n × m for a (8, 4) code. We can now define two numbers describing this matrix. wr for the number of 1’s in each row and wc for the columns. For a matrix to be called low-density the two conditions wc <<n and wr << m must satisfied. In order to do this, the parity check matrix should usually be very large, so the example matrix can’t be really called low-density.
Transcript
Page 1: Seminar Report on Low Density Parity Check codes

Low-density parity-check (LDPC) codes are a class of linear block LDPC codes. Their main advantage is that they provide a performance which is very close to the capacity for a lot of different channels and linear time complex algorithms for decoding. Furthermore are they suited for implementations that make heavy use of parallelism.They were first introduced by Robert Gallager in his PhD thesis in 1960. But due to the computational effort in implementing coder and encoder for such codes and the introduction of Reed-Solomon codes. They were mostly ignored until about ten years ago.

Representations for LDPC codes

Basically there are two different possibilities to represent LDPC codes. Like all linear block codes they can be described via matrices. The second possibility is a graphical representation.

Matrix Representation

Let’s look at an example for a low-density parity-check matrix first. The matrix defined in equation (1) is a parity check matrix with dimension n × m for a (8, 4) code.We can now define two numbers describing this matrix. wr for the number of 1’s in each row and wc for the columns. For a matrix to be called low-density the two conditions wc <<n and wr << m must satisfied. In order to do this, the parity check matrix should usually be very large, so the example matrix can’t be really called low-density.

Page 2: Seminar Report on Low Density Parity Check codes

Graphical Representation:

Tanner introduced an effective graphical representation for LDPC codes. Not only provide these graphs a complete representation of the code, they also help to describe the decoding algorithm.Tanner graphs are bipartite graphs. That means that the nodes of the graph are separated into two distinctive sets and edges are only connecting nodes of two different types. The two types of nodes in a Tanner graph are called variable nodes (v-nodes) and check nodes (c-nodes). The above is an example for such a Tanner graph and represents the same code as the matrix in 1. The creation of such a graph is rather straight forward. It consists of m check nodes (the number of parity bits) and n variable nodes (the number of bits in a codeword). Check node fi is connected to variable node cj if the element hij of H is a 1.

Regular and irregular LDPC codes:

f0 f1 f2 f3

c0 c1 c2 c3 c4 c5 c6 c7

fj

Page 3: Seminar Report on Low Density Parity Check codes

A LDPC code is called regular if wc is constant for every column and wr = wc · (n/m) is also constant for every row. The example matrix from equation (1) is regular with wc = 2 and wr = 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 numbers of 1’s in each row or column aren’t constant the code is called a irregular LDPC code.

Construction of LDPC codes:

Several different algorithms exist to construct suitable LDPC codes. Gallager himself introduced one. Furthermore MacKay proposed one to semi-randomly generate sparse parity check matrices. This is quite interesting since it indicates that constructing 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.Before describing decoding algorithms, the feature of LDPC codes to perform near the Shannon limit1 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 block length of 107. An interesting fact is that those high performance codes are irregular.The large block length results also in large parity-check and generator 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 [PT I] via Gaussian elimination the generator 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.Since the complexity grows in O(n2) even sparse matrices don’t result in a good performance if the block length gets very high. So iterative decoding (and encoding) algorithms are used. Those algorithms perform local calculations and pass those local results via messages.This step is typically repeated several times. The term ”local calculations” already indicates that a divide and conquere strategy, which separates a complex problem into manage-

Page 4: Seminar Report on Low Density Parity Check codes

able sub-problems, is realized. A sparse parity check matrix now helps this algorithms in several ways. First it helps to keep both the local calculations simple and also reduces the complexity of combining the sub-problems by reducing the number of needed messages to exchange all the information. Furthermore it was observed that iterative decoding algorithms of sparse codes perform very close to the optimal maximum likelihood decoder.

Encoding:

Encoding of LDPC codes uses the property HxT=0 where x is the codeword and H is the sparse parity check matrix A straightforward encoding scheme requires three steps: a) Gaussian elimination to transform the H matrix into a lower triangular form b) split x into information bits and parity bits, i.e., x = (s; p1; p2) where s is vector of information bits, p1, p2 are vectors of parity bits c) Solve the equation HxT=0 using forward substitution methodSince afterwards the H matrix will no longer be sparse, it takes

O (n2), or more precisely, n2( r (1−r )2 ) XOR operations for the actual

encoding.

Richardson Urbanke LDPC Encoding Model

RU method for constructing efficient encoders for LDPC codes

Assume we are given an m x n parity-check matrix H over F. By definition, the associated code consists of the set of n-tuples x over F such that H xT=0

Through Gaussian elimination bring the H matrix to lower triangular form as shown below

Page 5: Seminar Report on Low Density Parity Check codes

Split the vector x into systematic part s, 𝑠∈ F(n−m)and the parity part p, 𝑝 ∈ Fm such that x=(s, p)Construct a systematic encoder as follows: i) Fill s with the (n - m) desired information symbols. ii) Determine the m parity-check symbols using back-substitution More precisely, for l ∈ [m]

∑j=1

(n−m)

H l , j sj+∑j=1

(l−1)

Hl ,n+ j−1 pj

We bring the H matrix to the form

A B TC D E

where A is of size (m - g) x (n - m), B is (m - g) x g, C is g x (n - m), D is g x g and finally E is g x (m x g )Multiplying the above matrix from left by

I 0

−ET−1 I

Page 6: Seminar Report on Low Density Parity Check codes

we get

A B T

−ET−1 A+C −ET−1B+D 0

Let x = (s; p1; p2) where s denotes the systematic part, p1 and p2 combined denote the parity part, p1 has length g, and

p2 has length (m - g).

So according to the equation HxT =0 , we have

𝐴sT+𝐵 p1T+𝑇p2T =0

and

(−𝐸T−1 𝐴)+𝐶sT+ (−𝐸 T−1 𝐵+𝐷) p1T=0

Now if ∅= (−𝐸 T−1 𝐵+𝐷) and for the moment assume ∅ is non-singular, then

p1T= - ∅−1 (𝐸T−1𝐴+𝐶) sT

And once the - ∅−1 (𝐸T−1𝐴+𝐶) sTmatrix has been computed, the determination of p1 can be done.

In a similar manner, from the first equation, p2 can be determined as

p2T=−T−1 (AsT+𝐵p1T)

Page 7: Seminar Report on Low Density Parity Check codes

Computation of p1T= - ∅−1 (𝐸T−1𝐴+𝐶) sT

Page 8: Seminar Report on Low Density Parity Check codes

Computation of p2T= - ∅−1 (𝐸T−1B+D) sT

Label and Decide Algorithm

Identify information bits and parity bits through a labelling process on the Tanner graph.

Assaign numerical values to the bit nodes labelled as information bits and also calculate the missing values of parity bits sequentially.

Algorithm:

flag <- 0

Get the values of all the bits labelled as information bits

while there are parity bits undetermined do

if there exists one undetermined parity bit xβ whose value can be computed from the available information bits and already determined parity bits then

Compute the value of x.

else

flag <- 1, exit the while loop

end if

end while

if flag=1 then

encoding is unsuccessful

else

output the encoded codeword

end if

Page 9: Seminar Report on Low Density Parity Check codes

Steps for encoding:

Step 1: Determine the values of all the information bits x14,

x15, x16, x10, x12, x13, x5, x7, and x8(marked as in the tanner graph above).

Step 2: Compute the parity bit (marked as in the above graph) x11 from the parity check equation

C7 : x11 = x14 ⊕ x15 ⊕ x16;

Step 3: Compute the parity bit x6 from the parity check equation

C5 : x6 = x10 ⊕ x15 ⊕ x11 ⊕ x13;

Compute the parity bit x9 from the parity check equation

C6 : x9 = x11 ⊕ x12 ⊕ x16 ⊕ x13;

Page 10: Seminar Report on Low Density Parity Check codes

Step 4: Compute the parity bits x1, x2, x3, and x4 in the first tier by the parity check equations C1, C2, C3, and C4 respectively.

C1= x1 = x10 ⊕ x5 ⊕ x7,

C2 =x2 = x5 ⊕ x6 ⊕ x12 ⊕ x9,

Page 11: Seminar Report on Low Density Parity Check codes

C3= x3 =x5 ⊕ x7 ⊕ x11 ⊕ x14 ⊕ x8,

C4 =x4 = x6 ⊕ x8 ⊕ x10 ⊕ x9 ⊕ x13.

Decoding:

Hard Decision Decoding

All v-nodes ci send a message to their c-nodes fj ‘s (the information which the v-node ci has , is the corresponding received i th bit of c ,yi ).

Every check nodes fj calculate a response to every connected variable node. The response message contains the bit that fj believes to be the correct one for this v-node ci assuming that the other v-nodes connected to fj are correct.

Page 12: Seminar Report on Low Density Parity Check codes

(This might also be the point at which the decoding algorithm terminates (if all the check equations are fulfilled)).

The v-nodes receive the messages from the check nodes and use this additional information to decide if their originally received bit is OK.

Go to step 2.

Page 13: Seminar Report on Low Density Parity Check codes

overview over messages received and sent by the c-nodes in step 2 of the message passing algorithm

Step 3 of the described decoding algorithm. The v-nodesuse the answer messages from the c-nodes to perform a majority vote on

the bit value

Soft Decision Decoding

Based on the concept of belief propagation.(yields in a better decoding performance )

1. All variable nodes send their qij messages. Since no other information is available at this step, qij(1) = Pi and qij(0) =1 − Pi.

Page 14: Seminar Report on Low Density Parity Check codes

2.The check nodes calculate their response messages rji

rji(0)= 1/2 + 1/2 ∏_(𝑖′∈𝑉𝑗∖𝑖)(1−2qi’j (1))

rji(1)= 1- rji(0)

The variable nodes update their response messages to the check nodes. This is done according to the following equations

"qij (0)= Kij(1−Pi)" ∏j ∈ci\j rj’i(0)

qij (1)=Kij(Pi)" ∏j ∈ci\j rj’i(1)

At this point the v-nodes also update their current estimation ˄ci of their variable ci. This is done by calculating the probabilities for 0 and 1 and voting for the bigger one. The used equations

Qi(0) = Ki (1−Pi) ∏j ∈ci rji(0)

Page 15: Seminar Report on Low Density Parity Check codes

Qi(1) = Ki Pi ∏j ∈ci rji(1)

are quite similar to the ones to compute qij (b) but now the information from every c-node is used.

^ci ={ 1 if Qi(1) >Qi(0)

0 𝑠𝑒If the current estimated codeword fulfils now the parity check equations the algorithm terminates. Otherwise termination is ensured through a maximum number of iterations.

4. Go to step 2.

Page 16: Seminar Report on Low Density Parity Check codes

Applications:

LDPC codes are used as error correcting code in the new DVB-S2 standard for the satellite transmission of digital television

LDPC codes used as the FEC scheme for the ITU-T G.hn standard

G.hn chose LDPC over turbo codes because of its lower decoding complexity (especially when operating at data rates close to 1 Gbit/s) and because the proposed turbo codes exhibited a significant error floor at the desired range of operation

LDPC is also used for 10GBase-T Ethernet, which sends data at 10 gigabits per second over twisted-pair cables.

LDPC codes are also used as a part of the Wi-Fi 802.11 standard as an optional part of 802.11n, in the High Throughput (HT) PHY specification

References:

R. G. Gallager, Low-Density Parity Check Codes, MIT Press, Cambridge, MA, 1963.

Page 17: Seminar Report on Low Density Parity Check codes

D. J. C. Mackay, “Good error-correcting codes based on very sparse matrices,” IEEE Trans. Inform. Theory, vol. 45, no. 2

C. E. Shannon, ‘A mathematical theory of communication’," Bell System Technical Journal,vol. 27

L. Bazzi, T. Richardson, and R. Urbanke, \Exact thresholds and optimal codes for the binary symmetric channel and Gallager's decoding algorithm A," IEEE Trans. Inform. Theory, vol. 47, 2001.

T. Richardson and R. Urbanke, \Ecient encoding of low-density parity-check codes," IEEE Trans. Inform. Theory, vol. 47, 2001.


Recommended