0% found this document useful (0 votes)
20 views20 pages

A LDPC Logarithmic Decoder Implementation - Pres - BN

This document summarizes a logarithmic decoder implementation for low-density parity-check (LDPC) codes. The decoder uses only additions and subtractions through a logarithmic version of the sum-product algorithm calculations. Lookup tables are used to simplify operations involving logarithms and exponents. The decoding steps include initialization, horizontal message passing from parity to symbol nodes, vertical message passing from symbol to parity nodes, and construction of the lookup tables.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views20 pages

A LDPC Logarithmic Decoder Implementation - Pres - BN

This document summarizes a logarithmic decoder implementation for low-density parity-check (LDPC) codes. The decoder uses only additions and subtractions through a logarithmic version of the sum-product algorithm calculations. Lookup tables are used to simplify operations involving logarithms and exponents. The decoding steps include initialization, horizontal message passing from parity to symbol nodes, vertical message passing from symbol to parity nodes, and construction of the lookup tables.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 20

A LDPC logarithmic decoder

implementation

L. Arnone, C. Gayoso, C. González and J. Castiñeira Moreira


Electronic Department, School of Engineering,
Mar del Plata University, Argentina.
Overview

 Introduction
 The sum product decoding algorithm
 A logarithmic decoder for LDPC codes
 The decoding algorithm: steps
 Initialization, Horizontal step, Vertical step, look-
up tables
 Complexity analysis
 Results for LDPC codes of small and big sizes
 Conclusions
Introduction
 LDPC codes: They are a powerful class of linear block codes
characterised equivalently by a generator matrix G, which is used to
encode a message vector m into a code vector x, or by its
corresponding parity check matrix H, which is such that any code
vector x fits the condition H.x = 0.
 As it is well known, the aim of the decoding algorithm for a given
block code is to find the vector d, considered as an estimation of
the transmitted vector x, able to fit the condition:
H.d = 0.
 The LDPC decoding algorithm makes an estimation of the A
Posteriori Probability (APP) of each symbol as a function of the
received symbol and the properties of the channel.
 LDPC decoding algorithm is described over a bipartite graph
depicted considering the relationship between the symbol nodes
d(j), which represent the bits of the code vector x, and the parity
nodes f(i), which represent the parity equations described in
matrix H. Rows of the parity check matrix describe those symbols
involved in a given parity equation.

The sum-product decoding algorithm

Symbol nodes d(j)

rijx

Parity nodes f(i)

Symbol nodes d(j)

qijx

Parity nodes f(i)


A logarithmic decoder for LDPC
codes
 The proposed logarithmic decoder algorithm operate
using only additions and subtractions, and two look-up
tables.
 This simplification makes use of a logarithmic version of
the calculations involved in the original algorithm. It is
based on the fact that a given real number can be
expressed as:

 wz  ln z 
 wz
z 1 ze

 The LDPC decoding algorithm involves the evaluation of


the following steps: Initialisation, Horizontal step,
vertical step, and construction of the lookup tables.
These steps are described in the following sub-sections.
The decoding algorithm: steps
 Initialisation

 Horizontal step
 Vertical step

 Construction of the lookup tables


Initialization
 The initialisation process is
x
done by setting the
values of estimations q ij to the APPs of the
x
symbols x . The APP p j is the probability of
pj
that the j-th symbol adopts the value x.
 Thus,
q p
0
ij
0
j
1
q ij  p j
1

 In the logarithmic algorithm:

 ln p 
 wp xj
p e
x
j  wp x
j
x
j

 ln q 
 wq ijx
q e
x
ij  wq x
ij
x
ij
rijx

Horizontal step f ( i )  d ( j )
 The term q ij  q 0
ij  q 1
ij in the sum-product algorithm
can be replaced by:

q ij   1 e   1 e
s ij  wq ij s ij  wq ij0  wq1ij
e
Then:
 

wqij  min wqij0 , wq1ij  ln1  e

 wq ij0  wq 1ij 


Or:

wq ij  minwq 0
ij , wq   f  wq
1
ij 
0
ij  wq 1
ij 
1
where f- is a lookup table with entries wq and wq ij .
0
ij
Horizontal step
 The coefficients ( f ( i )  d ( j ) ) :  r ij    q
j N i \ j
ij 

 Are now of the form:

  1     1
 w r ij  s ij   w q ij  sr ij  w r ij
 rij  e e e
 with: j N i \ j

w r ij   w q ij  s r ij   s ij 
j N i \ j
j N i \ j
 

 The knowledge of  r ij allows us the calculation of

 1 2 1   r ij 
 wr ijx
r e ij
x
Horizontal step

 The coefficients: r 0  wrij0


 e  wrij1  1   r 
1   r 
1
ij1 2 ij
r ij  e  1
2 ij

 Are now of the form:


wrij0  ln2   ln1  e

 w rij 


 ln 2    1srij 1
 f  w rij  0  
wr 1
ij   
 ln 2  ln1  e

 w r ij

  
  ln2    1srij  f w r  0
ij 
qijx

Vertical step d ( j )  f ( i )

 The following coefficients, wq ij0 and wq1ij are evaluated


as:

wq 0
ij
0
ij 
 wc  min wc , wc
0
ij
1
ij  f  wc

0
ij  wc 1
ij 
wq  wc  min wc , wc
1
ij
1
ij  0
ij
1
ij  f  wc

0
ij  wc 1
ij 
Vertical step

 The estimation of the corresponding bits at the end


of each iteration is done with the calculation of the
0 1
q q
probabilities j and j using:
q j p r
 x x x
j j ij
i M  j 
 By defining:
 wc ijx
c e
x
ij p x
j r x
i j
i M  j \ i

wc x
ij wp x
j   wr x
i j
i M  j \ i

Vertical step

  
wq ij0  wc ij0  min wc ij0 , wc 1ij  f  wc ij0  wc 1ij 
wq  wc
1
ij
1
ij  minwc 0
ij , wc 1
ij  f  wc

0
ij  wc 1
ij 
 Similar constants can be defined to estimate the
coefficients qjx
Vertical step

  
wq1j  wc 1j  min wc 0j , wc 1j  f  wc 0j  wc 1j 
wq  wc
0
j
0
j  minwc 0
j , wc 1
j  f  wc

0
j  wc 1
j 
 Estimations of the bits are done by using:


   j 
x
 wq
d j  max q j  max e
x

 
Look-up tables implementation

 As presented in the previous section, the LDPC


decoding algorithm can be implemented in
logarithmic form, by simply using additions and
subtractions, together with lookup tables
containing correction factors. The performance
of the decoding algorithm depends on the
approximations done in the construction of the
tables f- and f+.
 The maximum number of bits used to construct
these tables is C, so that the maximum number
of entries of these tables is of size Nt=2C
Complexity analysis
 If N is the number of columns of the matrix H, and t is
the average number of ones per column of that matrix,
the sum-product decoding algorithm involves the
calculation of 6Nt products and 5Nt sums (average).
 The proposed algorithm requires of 14Nt sums, 3Nt
subtracts, and 4Nt accesses to the look-up tables.
 In spite of requiring more sums than the traditional
decoding algorithm, complexity of the proposed
algorithm implementation is highly reduced due to the
fact of operating by using neither quotients nor
products.
 The proposed decoder Results
for a LDPC code has been
implemented with look-up tables of C=16, so that the
number of entries can be as high as Nt=65536, and the
maximum value in these tables is 65535.
 The BER performance has been evaluated using the
proposed algorithm, for different sizes of the look-up tables,
assuming that each entry is an unsigned integer number
represented in binary format using 2 bytes (16 bits).
 As seen in fig. 1, there is no significant loss in BER
performance using the proposed algorithm, if the size of
each of the two tables is of 256 entries of 2 bytes, or larger.
The use of tables of size 512 or larger does not show
differences with respect to the use of the ideal functions,
which in turn has the same BER performance as the sum-
product algorithm. Therefore it is possible to implement a
low complexity decoding algorithm without significant BER
performance loss, by using the proposed logarithmic
decoder with two look-up tables of reasonable size.
Results
-1
10

-2
10

Pbe

-3
10

4096 entries and ideal


functions
256 entries
-4
128 entries 10
64 entries
Uncoded transmission
-5
10
1 2 3 4 5 6 7 8
Eb/No dB
 Fig. 1. BER performance of a LDPC code with parity check matrix
of size 30x60 for different sizes of the corresponding lookup table
Results
-1
1
0

Pbe

-2
1
0

4096 and 256 entries


-3
128 entries 1
0
64 entries
Uncoded transmission

-4
1
0 1 1. 2 2. 3 3.
5 5 5
Eb/No
Fig. 2 BER performance of a LDPC code with parity check matrix of size 504x1008
 (Mackay) for different sizes of the corresponding lookup table
Conclusions
 In this paper a logarithmic decoder for LDPC codes is
presented. It has the advantage of highly reducing the
complexity of the sum-product.
 Lookup tables are of a reasonable size, and on the
other hand, additions and subtractions replace products
and quotients, that are in general operations of a more
complex implementation.
 Calculations does not either need to be implemented
using float point arithmetic. Therefore, the whole
complexity of the decoding algorithm is significantly
reduced, because the decoding algorithm is being
simplified to an implementation using only additions and
subtractions, and lookup tables of a reasonable size.

You might also like