Beruflich Dokumente
Kultur Dokumente
CERTIFICATE
This is to certify that the work presented in this report entitled A performance study of
decoding algorithms for LPDC codes on a Binary Erasure Channel, submitted by Rahul
Chowdhury (Examination Roll : 111205007) and Shreyasee De (Examination Roll : 111205027),
has been carried out under my supervision for the partial fulfilment of the degree of Bachelor
of Technology in Computer Science and Technology during the session 2015-16 in the
Department of Computer Science and Technology, Indian Institute of Engineering Science and
Technology, Shibpur.
Acknowledgements
We would like to take this opportunity to express my sincere gratitude for Dr. Abhik Mukherjee,
Associate Professor, Department of Computer Science and Technology, Indian Institute of Engineering
Science and Technology, Shibpur, for his invaluable advice, resourceful guidance, inspiring
instructions and constant encouragement without which it would not have been possible to
perform this project. Also, we would like to express my gratitude towards all those who helped us
in completing this project, directly or indirectly.
We would also like to thank all the faculty members for their cooperation during the preparation
of this work.
(Rahul Chowdhury)
Department of Computer Science and Technology
Indian Institute of Engineering Science
and Technology, Shibpur
(Shreyasee De)
Department of Computer Science and Technology
Indian Institute of Engineering Science
and Technology, Shibpur
Abstract
Abundance of low-cost storage media as well as deep space communication is resulting in renewed
interest in codes suitable for Erasure channels. In storage media, an entire sector may get damaged,
leading to erasure data. In deep space communication, there are so many erratic and unpredictable
sources of noise that can erase communication for a an entire span of time.These phenomenon can be
directly mapped to an erasure channel, and the recovery of information in these situations is related to
decoding for an erasure channel.
We shall show the performance of various decoding algorithms for recovery of erased bits. In this
project, we have considered three algorithms :
For each of the algorithms, we shall compare their performance, both in terms of speed of decoding and
correctness of decoding. We want to particularly explore the performance of decoders for Random
erasures and Burst erasures.
At this moment, LDPC codes give performance near Shannon Limit for AWGN channel. Thus, to
achieve better performance, we are studying LDPC codes for Binary Erasure Channels (BEC).
Contents
1.
2.
3.
4.
5.
6.
Introduction...6
Preliminaries and Definitions.6
2.1. Binary Erasure Channel...6
2.2. Classification of Erasure Channels.7
2.3. Applications of Decoding Erasure Codes..7
2.4. Channel Capacity of a Binary Erasure Channel...7
2.5. Low density parity check (LDPC) codes....10
2.6. Using LDPC codes for Binary Erasure Channels.10
2.7. Iterative Decoding using Hard-decision Message Passing.11
Implementation of decoders for LDPC codes on a Binary
Erasure Channel..11
3.1. Algorithm A : Steps...12
3.2. Algorithm A : Illustration...12
3.3. Algorithm B : Steps...13
3.4. Algorithm B : Illustration...13
3.5. Algorithm C : Steps...15
3.6. Algorithm C : Illustration...15
Results and Observations..16
4.1. Decoder A v/s Decoder C16
4.2. Decoding time v/s Codeword length..17
4.3. Decoding correctness comparison.18
4.4. Random Erasures v/s Burst Erasures...19
4.4.1. Decoding time v/s Erasure probability for Decoder C..19
4.4.2. Decoding time v/s Codeword length for Decoder C.19
4.4.3. Decoding correctness v/s Erasure probability for Decoder C.20
Conclusion...21
References..22
1. Introduction
A general communication system can be broken into three parts
(i)
Source - Sends information
(ii)
Channel
(iii)
Destination
Source
Channel
Encoder
Destination
Decoder
Source symbols are mapped into sequence of channel symbols, which then produces the output
sequence of the channel. By mapping the source into the appropriate widely spaced input
sequences to the channel, we can transmit a message with very low probability of error and
reconstruct the source message at the output.
A channel is described by a set of transition probabilities. Maximum rate at which this can be done is
called the capacity of the channel. The channel is said to be memoryless if the probability distribution
of the output depends only on the input at that time and is conditionally independent of previous inputs
or outputs.
1?11?1?011
Any random number of bits from any random position may get erased.
101???1011
Jamming
magnetic recording
Capacity of the channel is defined as the maximum mutual information between the input and output of
the channel.
C = max I(X ; Y) = max [H(Y) H(Y|X)]
p(x)
p(x)
Where X and Y are the input and output symbol respectively and mutual information is defined as the
amount of information transferred, when Y is received and X is transmitted and the information about Y
from X:
I( Y;X) = H(Y) - H(Y/X)
Where H(Y) is the entropy of Y and H(Y/X) is the conditional entropy.
Now for binary erasure channel with erasure probability e,
The binary erasure channel is an extension of the binary symmetric channel, in the sense that there
is one more output symbol, $. If the received signal is such that it is very likely to be correct received
it should be the corresponding binary symbol, while if it is more unsure it should be the symbol $.
The graphical representation of the channel is shown above. The probability distribution for the
erasure channel would be:
Since H(Y |X = x) = H(1 e, e, 0) = h(e), both when x = 0 and x = 1. Instead of maximizing I(X; Y ) we
can maximize H(Y ), for varying p = P(X = 1).
To derive H(Y ) we first need to get the distribution of Y , expressed in terms of the distribution of X.
Assume that P(X = 1) = p, then with p(x, y) = p(x)p(y|x) and p(y) =p(x)p(x, y) we can get the
distribution of Y as
Hence the entropy of Y can be derived H(Y ) = H((1 p)(1 e), e, p(1 e)). Naturally, this function can
be optimized by solving for p the derivative equal to zero. But, we can also go ahead and see
H(Y ) = (1 p)(1 e) log(1 p)(1 e) e log e p(1 e) log p(1 e)
= (1 e) p log p (1 e) log(1 p) e log e (1 e) log(1 e)
= (1 e)h(p) + h(e)
Hence the capacity is
C = max H(Y ) h(e) = max (1 e)h(p) = 1 e
The capacity for the binary erasure channel is
plotted as a function of the erasure probability e. If
the e = 0 we get the capacity equal to one, since
then we do not have any errors. On the other
hand, if e = 1 all of our received symbols will be
erasures and we do not have any information
about the transmitted sequence.
In information theory, a low-density parity-check (LDPC) code is a linear error correcting code,
a method of transmitting a message over a noisy transmission channel.
Although LDPC codes can be defined over any finite field, the majority of research is focused
on LDPC codes over GF(2)
An LDPC code is defined with respect to its parity check matrix. The term low density
signifies a sparse parity check matrix in terms of number of 1s in the matrix.
Due to its sparseness LDPC code has a great advantages in terms of efficient decoder
implementation and storage.
LDPC codes are capacity-approaching codes, which means that practical constructions exist
that allow the noise threshold to be set very close (or even close on the BEC) to the theoretical
maximum (the Shannon limit) for a symmetric memoryless channel.
Low Density Parity Check (LDPC) codes have superior error performance (4 dB coding gain
over convolutional codes).
2.6.
LDPC codes are often used in binary erasure channels for the following reasons :
10
The parity check matrix of a code is converted into a bipartite graph, called a Tanner graph which
consists of :
11
3.1.
ALGORITHM A : STEPS
Input : RECEIVED_CODEWORD
Output : a) Decoding success/failure b) DECODED_CODEWORD
1.
2.
Set CODEWORD=RECEIVED_CODEWORD.
A. Find index of first erased bit in the CODEWORD. Name it as ERASED_INDEX.
B. Set XERASED_INDEX ={0,1}
3.
Guess value CODEWORD[ERASED_INDEX]=x, where xXERASED_INDEX .If XERASED_INDEX is
empty, go to
Step 2.
4.
Check if there are any more erased bits in the CODEWORD.
5.
If there are more erased bits, go to step 2.
6.
If there are no more erased bits, calculate SYNDROME of codeword.
7.
If SYNDROME=0, set DECODED_CODEWORD=CODEWORD. Return TRUE.
8.
If SYNDROME 0, XERASED_INDEX = XERASED_INDEX - x. Go to step 3.
3.2.
ALGORITHM A : ILLUSTRATION
Input : Codeword = 1 0 0 1 ? 0 ? 0
12
3.3.
ALGORITHM B : STEPS
Input :
Output :
1.
2.
3.
4.
5.
6.
7.
8.
9.
3.4.
a) RECEIVED_CODEWORD
a) Decoding success/failure
b) PARITY_CHECK_EQUATIONS
b)DECODED_CODEWORD
Set CODEWORD=RECEIVED_CODEWORD.
A. Find index of first erased bit in the CODEWORD. Name it as ERASED_INDEX.
B. Set XERASED_INDEX ={0,1}
Guess value CODEWORD[ERASED_INDEX]=x, where xXERASED_INDEX .If XERASED_INDEX is
empty, go to step 2.
Check all EQUATION PARITY_CHECK_EQUATIONS.
If EQUATION has 1 unknown variable Cz , set CODEWORD[Z] = XOR YEQUATION, Y CZ{Y}
Repeat step 5 until there is no EQUATION remaining with 1 unknown variable.
If all EQUATION have 0 unknown variables, check syndrome of CODEWORD
If SYNDROME=0, set DECODED_CODEWORD=CODEWORD. Return TRUE.
If SYNDROME 0, XERASED_INDEX = XERASED_INDEX - x. Go to step 3.
ALGORITHM B : ILLUSTRATION
Input :
1) Codeword C = 0 1 1 ? ? 0 1 ?
2) Parity check matrix
13
14
a) RECEIVED_CODEWORD
b) TANNER_GRAPH
a) Decoding success/failure b)DECODED_CODEWORD
Set CODEWORD=RECEIVED_CODEWORD.
For all message nodes Ci and check nodes Fj , Ci sends CODEWORD[i] to Fj if
TANNER_GGRAPH[i][j]=1.
Check all CHECK_NODEi TANNER_GRAPH.
If for all i, CHECK_NODEi has no unknown variables, set
DECODED_CODEWORD=CODEWORD. Return TRUE.
If CHECK_NODEi has 1 unknown variable Cj ,
set CODEWORD[j] = XOR YCHECK_NODEi, Y Cj{Y}
If the state of no CHECK_NODEi changes in one iteration, return FALSE.
Go to step 2.
Received codeword C = 1 ? ? 1 0 0 0 0
Message nodes send values to their connected check nodes.
fo =
f1 =
f2 =
f3 =
c1 + 1 + 0 + 0
c2 + 1 + 0 + 0
1 + c2 + 0 + 0
1+ c1 + 0 + 0
?
3.
Calculate c1 = 1 + 0 +0 = 1
4.
Set C = 1 1 ? 1 0 0 0
1
5.
Calculate c2 = 1 + 0 + 0 = 1
6.
Set C = 1 1 1 1 0 0 0
0
T
7.
8.
Return C.
0
0
15
4.
4.1
GRAPH I
GRAPH II
We see that the average decoding time of Decoder A grows exponentially with increase in erasure
probability, but that of decoder C grows polynomially. But, it is seen from Graph II that Decoder C gives
decoding failure when the erasure probability is increased, while decoder A does not.
Thus, the high decoding time of Decoder A is compensated by the number of further retransmissions and
decoding that Decoder C has to perform, due to decoding failure.
Let us define the following terms :
f -> Average time taken by decoder C for decoding failure
r -> Average retransmission time for a codeword
s -> Average time taken by decoder C for decoding success
a -> Average time taken by decoder A for decoding success
n -> number of retransmissions done by decoder C
Nmax -> Maximum number of retransmissions allowed, for which the overall time taken by decoder C will be
less than or equal to that of decoder A.
16
Decoding
DECODER C : failure 1
Retransmission
1
DECODER A :
...
Decoding
failure n
Retransmission
n
Decoding
success
Decoding success
or,
n <= (a-s)/(f+r)
Nmax = (a-s)/(f+r)
4.2.
17
4.3.
Correct Decoding
The brute force decoder gives the best performance for correctness among the 3 decoders. It gives
quite a reasonable performance (40% - 100% correct decoding) in the critical region (0.2 - 0.4
erasure probability).
Incorrect Decoding
The message passing decoder does not give any incorrect results, while the other two decoders give
incorrect results, the rate of which increases with erasure probability.
18
4.4.
4.4.1.
Performance in the region where erasure probability varies from 0.2 to 0.4 is critical for the decoder. Thus,
we call this region as a critical region for erasure decoding.
We can see from the graph that in the critical region, the average time taken to decode random erasure
codes is more than that for burst erasure codes for the message passing decoder (decoder C).
Hence, the decoder C gives very good performance for burst erasures.
4.4.2.
The message passing decoder gives better decoding time performance for random erasures upto
codeword length 15. As codeword length increases further, the decoder takes lower average time
for burst erasures.
19
Critical region
Critical region
The message passing decoder gives better decoding performance (less failure percentage, more
correctness) for random erasures over burst erasures, in the critical region.
20
5. Conclusion
We arrived at the following conclusions after studying the performance of various decoding algorithms
for LDPC codes for the Binary Erasure Channel
Though the brute force decoding algorithm has a exponential time complexity compared to the
polynomial time complexity of the message passing decoder, the high decoding failure rate of
the message passing decoder warrants a number of retransmissions to correctly decode a
codeword. The maximum number of retransmissions allowed Nmax also increases exponentially
with increase in erasure probability.
The message passing decoding algorithm, when run for both random and burst erasure
channels gives
Lower average decoding time for burst erasure codes, in the critical region.
For codeword length <=15, lower average decoding time for random erasure codes. As,
codeword length increases further, the average decoding time is lesser for burst erasure
codes.
Better decoding performance for random erasures over burst erasure, in the critical
region.
Since the parity check matrix of a LDPC code is sparse, it becomes difficult to recover the
codeword for burst erasures. In case of random erasures, a reasonable distribution of edges
lets the decoder solve for the unknown erased bits. But unless the edges are uniformly
distributed, so that there are adequate edges connected between the region of burst and the
correct region, it becomes difficult to solve the equations in case of burst erasure.
21
6. References
R. G. Gallager, Low Density Parity Check Codes, IEEE Trans. Information Theory,, IT-8: pp. 2128, January 1962.
R. G. Gallager, Low Density Parity Check Codes, MIT Press, Cambridge, 1963.
William E. Ryan, An Introduction to LDPC Codes,The University of Arizona,August 2003.
Hossein Pishro-Nik, Faramarz Fekri, On Decoding of Low-Density Parity-Check Codes Over the
Binary Erasure Channel, IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 50, NO. 3,
MARCH 2004
Michael G. Luby, Michael Mitzenmacher, M. Amin Shokrollahi, and Daniel A. Spielman, Efficient
Erasure Correcting Codes, IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 47, NO. 2,
FEBRUARY 2001
Sample LPDC codes - http://www.inference.phy.cam.ac.uk/mackay/CodesFiles.html
22