Professional Documents
Culture Documents
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 ReedSolomon codes. They were mostly ignored until about ten years ago.
Matrix Representation
Lets 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 1s 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 cant be really called low-density.
f0
f1
f2
f3
fj
c0
c1
c2
c3
c4
c5
c6
c7
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.
Since the complexity grows in O( ) even sparse matrices dont 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- 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 H =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 H =0 using forward substitution method Since afterwards the H matrix will no longer be sparse, it takes
O ( ), or more precisely,
actual encoding.
Through Gaussian elimination bring the H matrix to lower triangular form as shown below
) Split the vector x into systematic part s, ( and the parity part p, 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 backsubstitution More precisely, for l [m]
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
we get
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).
=0 , we have
+
and
=0
)+ + (
+ )
=0
Now if
= (
is
non-singular, then
And once the -
= - (
+ )
(A
Computation of
= -
+ )
Computation of
= -
B+D)
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 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 graph above). Step 2: Compute the parity bit (marked as 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 in the above in the tanner
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, 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. (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.
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-nodes use 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.
rji
rji(0)= 1/2 + 1/2 _( )(12qij (1)) rji(1)= 1- rji(0) The variable nodes update their response messages to the check nodes. equations "qij (0)= Kij(1Pi)" qij (1)=Kij(Pi)" This is done according to the following
j c \j rji(0)
i
j ci\j rji(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 (1Pi)
j ci rji(0)
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 0 if Qi(1) >Qi(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.
Applications:
LDPC codes are used as error correcting code in the new DVBS2 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. 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.