LDPC Coding
LDPC Coding
4
Why QC for High Speed Systems?
Quasi-cyclic structure A1,1 A1, 2 A1,n
A A 2, 2 A 2,n
H 2,1
A m,1 A m, 2 A m,n
5
QC LDPC Prime Field Construction
For prime q, the integers {0,1,….q-1} form the Galois
field GF(q)
Select ‘a’ and ‘b’ from GF(q) with o(a)=k and o(b)=j
Form a j x k matrix P of elements from GF(q) that
has its ( s, t ) th element as Ps,t =bsat
6
QC LDPC Prime Field Construction
Corresponding H is made up of an array of circulant
submatrices
P=
7
Decoding LDPC codes
Like Turbo codes, LDPC can be decoded iteratively
– Instead of a trellis, the decoding takes place on a Tanner graph
– Messages are exchanged between the v-nodes and c-nodes
– Edges of the graph act as information pathways
Hard decision decoding
– Bit-flipping algorithm
Soft decision decoding
– Belief Propagation or Sum-product algorithm
• Also known as message passing/ belief propagation algorithm
In general, the per-iteration complexity of LDPC codes is less than it is
for turbo codes
– However, many more iterations may be required (max100;avg30)
– Thus, overall complexity can be higher than turbo
Tanner Graphs
A Tanner graph is a bipartite graph that describes the parity check
matrix H
There are two classes of nodes:
Variable-nodes: Correspond to bits of the codeword or equivalently, to
columns of the parity check matrix
There are n number of v-nodes
Check-nodes: Correspond to parity check equations or equivalently, to
rows of the parity check matrix
There are m=n-k number of c-nodes
Bipartite means that nodes of the same type cannot be connected (e.g. a c-
node cannot be connected to another c-node)
The ith check node is connected to the jth variable node iff the (i,j)th
element of the parity check matrix is one, i.e. if hij =1
All of the v-nodes connected to a particular c-node must sum (modulo-2)
to zero
More on Tanner Graphs
A cycle of length l in a Tanner graph is a path of l distinct edges which
closes on itself
The girth of a Tanner graph is the minimum cycle length of the
graph.
The shortest possible cycle in a Tanner graph has length 4
c-nodes
f0 f1 f2
c0 c1 c2 c3 c4 c5 c6
v-nodes
Bi-partite Graph Structure
Belief Propagation- Hard decoding
c = [1 0 0 1 0 1 0 1]; y = [1 1 0 1 0 1 0 1]
1. In the first step all v-nodes ci send a “message” to
their c-nodes fj containing the bit they believe to be
the correct one for them. At this stage the only
information a v-node ci has, is the corresponding
received ith bit of c, yi. That means for example, that
c0 send a message containing 1 to f1 and f3, node c1
sends messages containing y1(1) to f0 and f1, and so
on.
Belief Propagation- Hard decoding
Belief Propagation- Hard decoding
2. In the second step 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.
4. Go to step 2
Belief Propagation- Hard decoding
Belief Propagation- Soft decoding
Pi =Pr(ci=1/yi)
qij is a message sent by the variable node ci to the check
node fj. Every message contains always the pair qij(0) and
qij(1) which stands for the amount of belief that yi is a “0”
or a “1”.
rji is a message sent by the check node fj to the variable
node ci. Again there is a rji(0) and rji(1) that indicates the
(current) amount of belief in that yi is a “0” or a “1”.
Belief Propagation- Soft decoding
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
Belief Propagation- Soft decoding
2. The check nodes calculate their response messages rji