Introduction to Low-Density Parity
Download
Report
Transcript Introduction to Low-Density Parity
Code and Decoder Design of
LDPC Codes for Gbps Systems
Jeremy Thorpe
Presented to: Microsoft Research
2002.11.25
Talk Overview
Introduction (13 slides)
Wiring Complexity ( 9 slides)
Logic Complexity (7 slides)
Reliable Communication over
Unreliable Channels
Channel is the means by
which information is
communicated from sender
to receiver
Sender chooses X
Channel generates Y from
conditional probability
distribution P(Y|X)
Receiver observes Y
X
P(Y|X)
channel
Y
Shannon’s Channel Coding
Theorem
Using the channel n times, we can communicate k
bits of information with probability of error as
small as we like as long as
k
R C
n
as long as n is large enough. C is a number that
characterizes any channel.
The same is impossible if R>C.
The Coding Strategy
Encoder chooses the mth
codeword in codebook C
and transmits it across the
channel
Decoder observes the
channel output y and
generates m’ based on the
knowledge of the codebook
C and the channel
statistics.
x C X n
m {0,1}k
Encoder
Channel
Decoder
m'{0,1}k
y Y n
Linear Codes
A linear code C can be defined in terms of
either a generator matrix or parity-check
matrix.
Generator matrix G (k×n)
C {mG}
Parity-check matrix H (n-k×n)
C {c : cH' 0}
Regular LDPC Codes
LDPC Codes linear codes defined in terms of H.
The number of ones in each column of H is a fixed
number λ.
The number of ones in each row of H is a fixed
number ρ.
Typical parameters for Regular LDPC codes are
(λ,ρ)=(3,6).
Graph Representation of LDPC
Codes
v
v|c
0
...
x
Variable nodes
...
H is represented by a
bipartite graph.
nodes v (degree λ) on
the left represent
variables.
Nodes c (degree ρ)on
the right represent
equations:
Check nodes
Message-Passing Decoding of
LDPC Codes
Message Passing (or Belief Propagation)
decoding is a low-complexity algorithm
which approximately answers the question
“what is the most likely x given y?”
MP recursively defines messages mv,c(i) and
mc,v(i) from each node variable node v to each
adjacent check node c, for iteration i=0,1,...
Two Types of Messages...
Liklihood Ratio
x , y
p( y | x 1)
p( y | x 0)
Probability Difference
x, y p( x 1 | y) p( x 0 | y)
For y1,...yn independent For x1,...xn
conditionally on x:
independent:
x , y x , y
n
1
i
i
x , y x , y
i
i
i
i
...Related by the Biliniear
Transform
Definition:
1 x
B( x)
1 x
Properties:
p ( y | x 1)
)
p ( y | x 0)
p ( y | x 0) p ( y | x 1)
p ( y | x 0) p ( y | x 1)
p ( y | x 0) p ( y | x 1)
2 p( y)
2 p( x 0 | y) p( y ) 2 p( x 1 | y ) p( y)
2 p( y )
p( x 0 | y) p( x 1 | y)
B ( x , y ) B (
B ( B ( x )) x
B ( x , y ) x , y
B( x, y ) x, y
x, y
Variable to Check Messages
On any iteration i, the
message from v to c is:
mv ,c
(i )
xv , y v
B(mc ',v
( i 1)
v
c
)
c '|v c
...
...
Check to Variable Messages
On any iteration, the
message from c to v is:
mc ,v
(i )
B(m
v ',c
(i )
v
c
)
v '|c v
...
...
Decision Rule
After sufficiently many iterations, return the
likelihood ratio:
0, if x , y B(mc ,v (i 1) ) 0
v v
c|v
xˆ
otherwise
1,
Theorem about MP Algorithm
r
...
v
...
If the algorithm stops after r
iterations, then the algorithm
returns the maximum a
posteriori probability estimate
of xv given y within radius r of
v.
However, the variables within
a radius r of v must be
dependent only by the
equations within radius r of v,
...
Wiring Complexity
Physical Implementation
(VLSI)
We have seen that the MP decoding algorithm for
LDPC codes is defined in terms of a graph
Nodes perform local computation
Edges carry messages from v to c, and c to v
Instantiate this graph on a chip!
Edges →Wires
Nodes →Logic units
Complexity vs. Performance
Longer codes provide:
More efficient use of
the channel (eg. less
power used over the
AWGN channel)
Faster throughput for
fixed technology and
decoding parameters
(number of iterations)
Longer codes demand:
More logic resources
Way more wiring
resources
The Wiring Problem
The number of edges in
the graph grows like
the number of nodes n.
The length of the edges
in a random graph also
grows like n .
A random graph
Graph Construction?
Idea: find a construction that has low wirelength and maintains good performance...
Drawback: it is difficult to construct any
graph that has the performance of random
graph.
A Better Solution:
Use an algorithm which generates a graph at
random, but with a preference for:
Short edge length
Quantities related to code performance
Conventional Graph Wisdom
Short loops give rise to dependent messages
(which are assumed to be independent) after
a small number of iterations, and should be
avoided.
Simulated Annealing!
Simulated annealing approximately
minimizes an Energy Function over a
Solution space.
Requires a good way to traverse the solution
space.
Generating LDPC graphs with
Simulated Annealing
Define energy function
with two components:
E cw Ew cl El
Wirelength
Ew | w |
w
Loopiness
El |l|
l
traverse the space by
picking two edges at
random and do:
Results of Simulated Annealing
The graph on the right
has nearly identical
performance to the one
shown previously
A graph generated by
Simulated Annealing
Logic Complexity
Complexity of Classical
Algorithm
Original algorithm defines messages in terms
of arithmetic operations over real numbers:
mv ,c
(i )
xv , yv B (mc ,v
c |v c
( i 1)
)
However, this implies floating-point
addition, multiplication, and even division!
A modified Algorithm
( i 1)
(i )
We define a modified
mv ,c x , y B (mc ,v )
c |v c
algorithm in which all
(i )
(i )
messages are their
m'v,c log(mv,c )
logarithms in the
( i 1)
log(
)
log(
B
(exp(
m
)))
original scheme
x ,y
c ,v
c|v c
The channel message
(i 1)
'
(
m
)
x ,y
c ,v
λ is similarly replaced
c|v c
by it's logarithm.
v
v
v
v
v
v
Quantization
Replaced a product by
a sum, but now we
have a transcendental
function φ.
However, if we
quantize the messages,
we can pre-compute φ
for all values!
m'v,c 'xv , yv (mc,v
(i )
c|v c
( i 1)
)
Quantized MP Performance
The graph to the following page shows the
bit error rate for a regular (3,6) of length
n=10,000 code using between 2 and 4 bits of
quantization.
(Some error floors predicted by density
evolution, some are not)
Conclusion
There is a tradeoff between logic complexity
and performance
Nearly optimal performance (+.1 dB = ×
1.03 power) is achievable with 4-bit
messages.
More work is needed to avoid error-floors
due to quantization.