A LDPC Logarithmic Decoder Implementation - Pres - BN
A LDPC Logarithmic Decoder Implementation - Pres - BN
implementation
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
rijx
qijx
wz ln z
wz
z 1 ze
Horizontal step
Vertical step
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 wq ij s ij wq ij0 wq1ij
e
Then:
wqij min wqij0 , wq1ij ln1 e
wq ij0 wq 1ij
Or:
wq ij minwq 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
1 1
w r ij s ij w q ij sr 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
1 2 1 r ij
wr ijx
r e ij
x
Horizontal step
Vertical step d ( j ) f ( i )
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
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 minwc 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 minwc 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
-2
10
Pbe
-3
10
Pbe
-2
1
0
-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.