Slides

advertisement
Coding Techniques
for Data Storage Systems
Thomas Mittelholzer
IBM Zurich Research Laboratory
1 /28
Göttingen 2012
www.zurich.ibm.com
Agenda
1.
Channel Coding and Practical Coding Constraints
2.
Linear Codes
3.
Weight Enumerators and Error Rates
4.
Soft Decoding
5.
Codes on Graphs
6.
Stopping Sets
7.
Error Rate Analysis of Array-Based LDPC Codes
8.
Summary
2 /28
Göttingen 2012
www.zurich.ibm.com
1. Channel Capacity and Coding
Discrete memoryless channel (DMC)
Example: BSC(ε) = binary symmetric channel
with crossover probability ε
Y output
input X
DMC
1-ε
0
0
ε
X
PY|X
Y
ε
1
1
1-ε
Shannon 1948: Channel capacity can be approached by coding
Capacity:
C = max I( X; Y)
PX
( Recall: I(X;Y) = - ∑ P(y)logP(y) - ∑ P(x,y)logP(y|x) )
Channel Coding Theorem (Gallager): For every rate R < C, there is a code of length n and rate R such
that under maximum-likelihood (ML) decoding the worst case block error probability is arbitrarily small,
i.e.,
P{ X^ ≠ X}worst case < 4 exp[ – n Er(R) ]
where Er(R)>0 is the random coding exponent (which depends on the channel and R).
Practical Problems: 1. Finding a good code is difficult
2. ML-decoding is complex.
E.g., exhaustive search over code to find x ^ = arg max P (y | x)
x∈code
3 /28
Göttingen 2012
www.zurich.ibm.com
1. Practical Coding Constraints of Data Storage Devices
Practical constraints of DRAM, hard disk drives and tape drives
DRAM (DDR3)
Hard Disk Drives
Tape Drives
BER ~ 10-21
BER ~ 10-15
BER ~ 10-17
~ 50 Gbit/s
~ 1 Gbit/s
~ 1 Gbit/s
Delay
~ 5 ns
(~ 3 ms with seek time)
-
Codeword Length
(in bits)
~ 72
~ 4500
~ 160,000
Reliability
(maximum error rates)
Throughput
(burst operation)
For DRAM, the codeword length and/or decoding time cannot be much extended
For hard disk drives and tape drives, the codeword lengths and/or decoding time could be
extended at the price of buffering more data
The low bit error rates (BER) cannot be verified by simulations
Need coding schemes with efficient decoders whose error rates can be assessed analytically
4 /28
Göttingen 2012
www.zurich.ibm.com
2. Linear Codes
Def.: A linear (n,k) code over a finite field GF(q) is a k-dimensional linear subspace C ⊆ GF(q)n
Examples: 1. Binary (3,1) repetition code C = { 0 0 0, 1 1 1 } in GF(2)3
2. Ternary (3, 1) repetition code C = { 0 0 0, 1 1 1, 2 2 2} in GF(3)3
Def.: Hamming distance between two vectors x = x1 x2 … xn and y = y1 y2 … yn in GF(q)n :
d( x, y) = # { i : xi ≠ yi }
(= number of components in which x and y differ)
Hamming weight of a vector x: w(x) = d(x,0)
Proposition: The pair (GF(q)n , d(. , .) ) is a metric space.
Def.: Minimum distance of a linear code C:
dmin = min {d( x, y) : x, y ∈ C, x ≠ y }
Proposition: A linear code C with minimum distance dmin can correct up to t = (dmin -1)/2 errors.
Proof:
5 /28
Any error pattern e = e1e2…en of weight w(e) ≤ t distorts a codeword x into a received word
y = x + e, which lies in the Hamming sphere S(x,t) of radius t around the codeword x. Since
∩x ∈ C S(x,t) = ∅ , there is a unique closest codeword x to each received word y.
Göttingen 2012
www.zurich.ibm.com
2. Linear Codes: Hamming Codes
Description of a linear code C by parity check matrices H and generator matrices G: ker H = C = im G
Example: Binary (n=7, k=4, dmin = 3) Hamming code C = { x = [x1x2…x7] : x HT = 0 } = ker H, where
0
H = 0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
Equivalent systematic parity check matrix H’, i.e., ker H’ = C, and systematic generator matrix G
0
H ' = 1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
=P
1
0
G=
0

0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
=> G HT = [ I – PT] [ P I ]T = PT – PT = 0
Encoding a 4-bit message u = [u1 u2 u3 u4] with generator matrix G:
1
1
0

1
= - PT
x=uG
If G is systematic, the encoder inverse map x → u is a projection
6 /28
Göttingen 2012
www.zurich.ibm.com
2. Linear Codes: Hamming Codes (cont.ed)
The binary (7,4) Hamming code has dmin = 3:
•
there is a weight-3 codeword, viz., x = 1 1 1 0 0 0 0
•
no two columns of H are linearly dependent, i.e.,
there is no weight-2 codeword (and no weight-1 codeword)
0
H = 0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
=> The (7,4) Hamming code can correct t = 1 error.
1
1
1
j-th column
Syndrome Decoding
For an error pattern e = [e1e2…e7] of weight w(e) = 1, the received word y = x + e satisfies
s = y HT = (x + e) HT = eHT = [0 … 1 .. 0] HT = transpose of j-th column of H
“syndrome”
j-th nonzero component of e
=> Error correction at j-th position:
u
7 /28
Encoder
x = uG
x
BSC
y
x^ = y – [0 … 1 .. 0]
Syndrome
Former
s = yHT
Göttingen 2012
s
Decoder
x^
Encoder
Inverse
u^
www.zurich.ibm.com
2. Linear Codes: Hamming Codes (cont.ed)
Proposition:
0
For every m > 1, there is a binary Hamming code
M
of length n = 2m – 1, dimension k = n – m and

0
H
=
dmin = 3, characterized by the mxn parity check matrix

0

m
(columns = binary representation of all numbers 1 … 2 – 1)
1
L
0
0
0
M
0
M
0
M
1
M
1
1
0
1
1
0
0
1
0
L
1
1
M
1

1
1
m
rows
Proposition: Hamming codes are perfect, i.e., the decoding spheres fill the entire space
∪x∈C S(x,t=1) = GF(2)n
To show: ∑x∈C |S(x,t=1)| = 2n ⇔ 2k Vt=1 = 2n-m (1 + n) = 2n
n
n
where Vt = 1 +   + ... +  
1
t 
  23   23   23  12
Remark: There is a (n=23,k=12,dmin=7) perfect “Golay” code
1 +   +   +   2 = 2 23

and there are no other nontrivial binary codes.
  1   2   3 
Sphere packing problems
Applications:
A shortened (n=72,k=64,dmin=4) Hamming code with an overall parity bit is used in
DRAM standards. For a BSC with ε ≈ 10-12, one achieves a BER of about 10-21.
8 /28
Göttingen 2012
www.zurich.ibm.com
2. Linear Codes: Reed-Solomon Codes
Let α∈GF(q) be a primitive element, i.e., <α> = GF(q)\{0}.
Let d > 0 “design distance”
Def.: An (n = q – 1, k = n – d + 1) Reed-Solomon (RS) code is determined by the parity-check matrix
1 α

2
1
α

H = 1 α 3

M
1 α d -2

α2
(α 2 ) 2
(α 3 ) 2
α3
(α 2 ) 3
(α 3 ) 3
L
L
L
(α d-2 ) 2
(α d-2 ) 3
L
α n -1
(α 2 ) n −1
(α 3 ) n −1





M

d - 2 n −1 
(α ) 
d–1
rows
Every (d-1)x(d-1)-submatrix is a Vandermonde matrix based on mutually different terms αi1, αi2, …, αid-1
and, hence, has full rank d-1. Thus, no d – 1 columns of H are linearly dependent dmin ≥ d
Theorem: The minimum distance of the (n, k) RS code is dmin = d = n – k + 1
Singleton – Bound on an (n, k, dmin) linear code:
dmin ≤ n – k + 1
Let G be systematic. Then [ 0 0 … 0 1] G = [ 0 0 … 0 1 xk+1 xk+2 … xn] has weight at most n – k +1
A linear code meeting the Singleton – Bound is called maximum-distance separable
9 /28
Göttingen 2012
www.zurich.ibm.com
3. Weight Enumerators
Let C be a linear (n,k,dmin) code over GF(q) and let Ai be the number of codewords of weight i.
∆
Def.:
n
A( z ) = ∑ Ai z i
weight enumerator of the code C
i =0
(7,4) Hamming code:
Example: Weight enumerator of the (n=7, k=4) binary Hamming code:
A0 = 1, A1 = A2 = 0, A3 = 7, A4 = 7, A5 = A6 = 0, A7 = 1
A(z) = 1 + 7 z3 + 7z4 + z7
Theorem: The weight enumerator of the binary Hamming code
of length n (= 2m – 1 ) is given by
1
n
A( z ) =
(1 + z ) n +
(1 + z ) ( n −1) / 2 (1 − z ) ( n +1) / 2
n +1
n +1
MacWilliams identities, automorphism group of a code
Lattice of a linear (n,k) code C = ρ-1(C), where ρ : Zn → (Z/2Z)n
0000000
1110000
1101000
1001100
1000011
0101010
0100101
0011001
1100110
1011010
1010101
0111100
0110011
0010111
0001111
1111111
weight 0
weight 3
weight 4
weight 7
E.g., Gosset lattice E8 corresponds to the extended Hamming code of length 8
10 /28
Göttingen 2012
www.zurich.ibm.com
3. Weight Enumerators and Error Rates
When using a linear (n,k) code C on the BSC(ε), what is the probability of an undetected error?
An error is undetected iff the received word is a codeword.
By linearity, one can assume that the allzero codeword was transmitted.
ε i (1 − ε ) n −i = prob. that the BSC transforms the allzero word into a fixed codeword of weight i
ε


) − 1
Prob of an undetected error Pu ( E ) = ∑ Aiε i (1 − ε ) n −i = (1 − ε ) n  A(
 1− ε

i =1
n
Remarks:
1 − P

1. This result can be extended to q-ary symmetric DMC with P(b | a ) =  P
 P /( q − 1)

 q − 1
Pu ( E ) = (1 − P) n  A(
) − 1
1− P


2.
if a = b
otherwise
The weight distribution of (n,k,d) RS-codes over GF(q) is given by
A0 = 1, A1 = A2 = …= Ad-1 = 0, and
l−d
n
 l − 1 l − d − j
q
Al =  (q − 1)∑ (−1) j 
j =0
l
 j 
11 /28
for ℓ = d, d+1, …, n
Göttingen 2012
www.zurich.ibm.com
3. Bounded Distance Decoding
Let C be a linear (n,k,dmin) code over GF(q), t = (dmin -1)/2. Symmetric DMC as above w/ error prob P
u
Encoder
x = uG
x
codewords are selected
equally likely
(not needed)
symmetric
DMC
y
Decoder:
Find x^ such that
d(x^,y) ≤ t
x^
Encoder
Inverse
u^
failure
Block error prob PB = P{X^ ≠ X or failure}
Prob of correct decoding Pc = P{ X^ = X } = 1 - PB
 n
Pc = ∑  P i (1 − P) n −i
i =0  i 
t
Theorem:
x
Proof: Each pattern of s errors has prob ( P q − 1) (1 − P)
n
There are   ways to select i errors locations;
i
s
each occurs with prob P i (1 − P) n −i
12 /28
n−s
x’
x’’
transmitted codeword
and decoding sphere S(x,t)
competing codewords x’ ≠ x
with decoding spheres S(x’,t)
Göttingen 2012
www.zurich.ibm.com
3. Bounded Distance Decoding: Applications
Block (error corr. mode)
Byte (error corr. mode)
Block (erasure mode, marg=2)
Byte (erasure mode, marg=2)
-5
10
C2 Parity
RS codes can be efficiently decoded by the
Berlekamp-Massey algorithm, which achieves
bounded distance decoding.
•
C1 is decoded first
If decoder fails it outputs erasure symbols
•
C2 is decoded second
Error Rate
One Row
C1 Parity
Data
One Col
LTO-tape recording devices use two Reed-Solomon (RS) codes over GF(28),
which are concatenated to form a product code:
• (240,230,d=11) RS C1-code on rows
C2-Performance: N2=96, t2=6
• (96,84,d=13) RS C2-code on columns
0
10
10-17-limit
-10
10
-15
10
-20
By taking erasures into account
performance improves substantially!
13 /28
10
-1
10
-2
10
-3
-4
10
Byte Error Probability
10
at input of C2 decoder
Göttingen 2012
www.zurich.ibm.com
4. Soft Decoding: AWGN Channel
Z
input X
x ∈ { ± 1}
⊕
AWGN
X
Y output
Y
AWGN
pY|X(y|x) = pZ(y-x)
Binary-input additive white Gaussian noise (AWGN) channel: ± 1 valued inputs and real-valued outputs
Y=X+Z
Z ~ N(0, σ2) zero-mean normal distribution with variance σ2
2
Bit-error rate (uncoded)
BER = Q(SNR)
1.8
pY|X=-1
1.6
pY|X=1
1.4
1.2
where
• SNR = Eb/N0 = 1/(2σ2)
∞
1
exp(− s 2 / 2)ds
• Q (t ) = ∫
2π
t
1
0.8
0.6
0.4
0.2
0
-4
-3
-2
-1
X = -1
14 /28
Göttingen 2012
0
1
2
3
4
X=1
www.zurich.ibm.com
4. Soft Decoding vs Hard Decoding
Soft channel outputs
Z
AWGN
input X
x ∈ { ± 1}
⊕
Y output
Hard decision channel BSC(ε = BER)
Z
AWGN
YHD output
yHD ∈ { ± 1}
Quantizer
Y
0
10
Toy code with n=9, k=2, dmin = 6
000000000
C= 111111000
000111111
111000111
PHD
BDD
-1
PHD
ML
10
PBP
Block Error Rate
-2
Different Decoding Algorithms
ML: max. likelihood decoding
BP: graph-based decoding with
belief propagation
HD-ML: Hard decision ML decoding
HD-BDD: Hard decision bounded
distance decoding
10
PML
Capacity
-3
10
-4
10
-5
10
-6
10
-7
10
Bounded distance decoding is far from optimum
15 /28
⊕
input X
x ∈ { ± 1}
-2
Göttingen 2012
0
2
4
6
Eb/N0 [dB]
8
10
12
14
www.zurich.ibm.com
4. Soft Decoding: Bit-Wise MAP Decoding
Codewords x of C are
selected uniformly at random
Z
Xi ∈ { ± 1}
AWGN
⊕
Yi
MAP-Decoder
w.r.t. Code C
Xi^(Y)
MAP (maximum a posteriori) decoding
xi^(y) = arg max xi∈{ ± 1} PXi | Y(xi|y)
xi^(y) = arg max xi∈{ ± 1} ∑~xi PX | Y(x|y)
(law of total prob)
xi^(y) = arg max xi∈{ ± 1} ∑~xi pY | X(y|x) PX(x)
(Bayes rule)
xi^(y) = arg max xi∈{ ± 1} ∑~xi ∏ ℓ pYℓ | Xℓ (yℓ|xℓ) 1{x∈C}
(uniform priors, memoryless channel)
indicator function
summation over all components of x except xi
16 /28
Göttingen 2012
www.zurich.ibm.com
5. Codes on Graphs
1
Example

Binary length-4 repetition code C = { 0 0 0 0, 1 1 1 1} can be characterized by H = 1
0
1{x∈C} = 1{x1+x2+x3+x4=0} 1{x1+x2=0} 1{x2+x3=0}
1
1
1
0
1
1
1
0
0
The code membership function decomposes into factors => factor graph of a code
variables
x1
x2
x3
x4
1
H = 1
0
1
1
1
0
0
1
1
0
1
variable
nodes V
x1
checks
f1
x2
f2
f3
x3
H is related to the
adjacency matrix of Γ by
 0
AΓ =  T
H
17 /28
H
0 
Göttingen 2012
x4
check
nodes F
f1
f2
f3
Bipartite graph Γ = ΓH
“Factor graph” or “Tanner graph”
www.zurich.ibm.com
5. Codes on Graphs and Message Passing
Example (cont.ed)
The variable nodes are initialized with the
channel output values p(yi|xi)
Message passing rules (“Belief Propagation”)
Initialization
p(y1|x1)
p(y2|x2)
p(y3|x3)
p(y4|x4)
Motivation for message passing rules
• “Local” MAP decoding
• If graph is has no cycles,
global MAP decoding is achieved
18 /28
Göttingen 2012
www.zurich.ibm.com
5. Codes on Graphs : LDPC Codes
0
1
Array-based LDPC codes

Let q be a prime, j ≤ q, and let P denote the q×q cyclic permutation matrix P = 0

L
1
1
1
1 
1
M
1
0
P
P2
P3
L
P q −1 

H = 1

M
1
P
2
P j-1
2 2
(P )
2 3
(P )
L
( P j-1 ) 2
( P j-1 ) 3
L

(P ) 

M 
( P j-1 ) q −1 
2 q −1
• fixed degree ℓ constellation at variable nodes
• fixed degree r constellation at check nodes
There are (n · ℓ) ! such codes (graphs)
19 /28
Göttingen 2012
L
0
0
L
0
1
0
O
0
L
1
1
0
0

M
0
H has column weight j, row weight q
and length n = q2. The shortest cycle
in the graph ΓH has length 6.
Regular LDPC codes
Number of edges: n · ℓ = r · #{check nodes}
0
.
.
.
P
E
R
M
U
T
A
T
I
O
N
.
.
.
www.zurich.ibm.com
5. Codes on Graphs: Performance of LDPC Codes
Example (n=2209, k=2024) array-based LDPC code
Low-density parity check (LDPC) codes
introduced by Gallager (1963)
row weight = 47
column weight = 4
Rate-2024/2209 (j=4,q=47) array code on AWGN channel
0
10
Very good performance under message
passing (BP), (MacKay&Neal 1995)
PBlock
Pbit
Capacity (BLER)
Capacity (BER)
-2
Depending on the degree structure of the
nodes in ΓH, there is a threshold T such
that message passing decodes
successfully if SNR > T and n →∞
N.B. (i) T > SNR(Capacity)
(ii) Can design ΓH such that
gap to capacity < 0.0045 dB
Error rate
Sparse H matrix
-> few cycles on ΓH
-> good performance of message passing
10
-4
10
-6
10
-8
10
2
2.5
3
3.5
4
4.5
Eb/N0 [dB]
5
5.5
6
6.5
T
(Chung, Forney, Richardson, Urbanke, IEEE Comm. Letters, 2001)
20 /28
Göttingen 2012
range of successful
density evolution
www.zurich.ibm.com
5. Codes on Graphs: Finite Length Performance
Rate-2024/2209 (j=4,q=47) array code on AWGN channel
0
10
“Short” LDPC codes, typically have an
error floor region due to cycles in the graph
PBlock
Pbit
Capacity (BLER)
Capacity (BER)
-2
Error rate
10
How can the performance be
assessed in the error floor region?
-4
10
-6
10
Data points obtained with dedicated FPGA
hardware decoder
-8
10
2
[L. Dolecek, Z. Zhang, V. Anantharam, M.J. Wainwright,
B. Nikolic, IEEE Trans. Information Theory, 2010]
2.5
3
3.5
4
4.5
Eb/N0 [dB]
5
5.5
T
range of successful
density evolution
21 /28
6
6.5
Error floor region
Göttingen 2012
www.zurich.ibm.com
6. Stopping Sets
1-ε
Analyze the behavior of message passing, on the binary erasure channel (BEC)
0
X
Motivation
Consider (short) erasure patterns, i.e., subsets D of the variable nodes V
1
for which the message passing decoder fails
ε
ε
0
Y
∆ erasure
symbol
1-ε
1
Def.: A stopping set is a subset D ⊆ V such that all neighbors of D are connected to D at least twice
1

Example: Binary n=4 repetition code with parity check matrix H = 1
Decoder fails if x1= x2 = x3= ∆ (and x4 = 0 or 1)
0
variable nodes V
message
1
D=
1
1
1
0
1
1
1
0
0
µ= ∆
There are 3 stopping sets
2
• D=∅
neighbors of D
3
• D = {1, 2, 3}
4
• D = {1, 2, 3, 4} = codeword
Decoding failure probability
erasure prob ε
PF = ∑
PF = ε3(1-ε) + (1-ε)4
ε |D| (1 – ε) (n – |D|)
D : nonempty
stopping set
22 /28
Göttingen 2012
www.zurich.ibm.com
6. Finding Stopping Sets
Minimum distance problem
Instance:
A (random) binary mxn matrix H and an integer w > 0
Question:
Is there a nonzero vector x ∈ GF(2)n of weight ≤ w such that x HT = 0?
Theorem (Vardy 1997)
Corollary
The minimum distance problem is NP-complete
Finding the minimum distance or the weight distribution of a linear code is NP-hard
Theorem (Krishnan&Shankar 2006) Finding the cardinality of the smallest nonempty stopping set
is NP-hard
Average ensemble performance (Di et al., IT-48, 2002)
For an LDPC code ensemble of length n with fixed variable and check node degree distributions:
probability that s chosen variable nodes contain a stopping set = B(s)/T(s)
n s
n− s B( s)
Average failure probability E[ PF ] = ∑  ε (1 − ε )
T (s)
s =0  s 
n
23 /28
Göttingen 2012
www.zurich.ibm.com
6. Error Rate Analysis of Array-Based LDPC Codes
Example of a (3,3) fully absorbing set D
Motivation
Consider subsets D of all variable nodes V which
remain erroneous under the bit-flipping algorithm
For D ⊆ V decompose the set of neighboring
check nodes N(D) into those with unsatisfied
checks O(D) and satisfied checks E(D)
E(D): neighboring checks
N(D): neighboring checks
Def.: An (a,b) absorbing set D ⊆ V is characterized by
• | D | = a and | O(D) | = b
• every node in D has fewer neighbors in O(D) than in E(D)
F: all checks
Def.: An (a,b) fully absorbing set is an absorbing set and, in addition,
all nodes in V \ D have more neighbors in F \ O(D) than in O(D).
24 /28
Göttingen 2012
www.zurich.ibm.com
6. Error Rate Analysis of Array-Based LDPC Codes
Theorem
The minimum distance of column
weight 3 array LDPC codes is 6 with
multiplicity (q – 1)q2.
Error floor performance of the (2209,2070) array LDPC code
10
Union bound for rate-2070/2209 (j=3,q=47) array code with AWGN
0
P
Absorbing set bound on block error prob.:
Let D be a (3,3) absorbing set, then
10
10
Block Error Rate
Theorem [DZAWN, IT-2010]
For the family of column weight 3 and row
weight q array codes, the minimal absorbing
and minimal fully absorbing sets are of size
(3,3) and (4,2), respectively.
Their numbers grow as (q – 1)q2.
10
10
10
10
10
PB ≥ (q – 1) q2 P{Y∈ absorbing region of D}
10
number of (3,3)
absorbing sets
25 /28
-1
Block
Union bound
AS Bound
-2
Capacity
-3
-4
-5
-6
-7
-8
3
“easily” estimated by simulation
Göttingen 2012
3.5
4
4.5
5
5.5
6
6.5
7
E /N [dB]
b
0
www.zurich.ibm.com
6. Error Rate Analysis of Array-Based LDPC Codes
Theorem [DZAWN, IT-2010]
For the family of column weight 4 and row weight
q>19 array codes, the minimal absorbing and
minimal fully absorbing sets are of size (6,4).
Example
Error floor performance of the (2209,2024) array LDPC code
Their numbers grow as q3 (up to a constant factor).
Ref.: [L. Dolecek, Z. Zhang, V. Anantharam, M.J. Wainwright,
B. Nikolic, IEEE JSAC vol 27(6), 2009]
26 /28
Göttingen 2012
www.zurich.ibm.com
Summary
In storage applications, Hamming codes and Reed-Solomon codes are used (delay constraints).
These codes are optimal with respect to the Hamming bound and the Singleton bound, i.e.,
in terms of algebraic coding criteria.
The weight enumerator of these codes is known
Analytical evaluation of undetected error probability
error rate performance of bounded distance decoding
Bounded distance decoding is not optimum for the additive white Gaussian noise channel but
maximum-likelihood decoding is too complex.
Iterative BP decoding of LDPC codes achieves almost capacity at “low” complexity.
Error floor performance of “short” LDPC codes is an issue
Analytical results only for a small class of codes (e.g., array-based LDPC codes)
Open problems:
characterization of stopping sets/absorbing sets for special classes of LDPC codes
27 /28
Göttingen 2012
www.zurich.ibm.com
References
Algebraic Coding and Information Theory
Friedrich Hirzebruch, “Codierungstheorie und ihre Beziehung zu Geometrie und Zahlentheorie,”
Rheinisch-Westfälische Akademie der Wissenschaften, Vorträge N 370, Westdeutscher Verlag, 1989
J.H. van Lint, Introduction to Coding Theory,
GTM vol. 86, Springer, 1982
Robert G. Gallager, Information Theory and Reliable Communication,
John Wiley & Sons, N.Y., 1968
A. Vardy, “The Intractability of Computing the Minimum Distance of a Code,” IEEE Trans. Information Theory,
vol. 43(6), pp. 1757-1766, Nov. 1997
Codes on Graphs
T. Richardson & R . Urbanke, Modern Coding Theory,
Cambridge Univ. Press, N.Y., 2008
L. Dolecek, Z. Zhang, V. Anantharam, M.J. Wainwright, B. Nikolic, “Analysis of Absorbing Sets and Fully
Absorbing Sets of Array-Based LDPC Codes,” IEEE Trans. Information Theory, vol. 56(1), pp. 181-201,
Jan. 2010
28 /28
Göttingen 2012
www.zurich.ibm.com
Back-Up
29 /28
Göttingen 2012
www.zurich.ibm.com
Bounded Distance Decoding of Toy Code
0
10
Although suboptimal, the performance
of bounded distance decoding can be
easily evaluated.
P HD
BDD
P HD
ML
HD BDD
-5
Block Error Rate
10
-10
10
-15
10
2
4
6
8
10
E /N [dB]
b
30 /28
Göttingen 2012
12
14
16
0
www.zurich.ibm.com
Soft Decoding Analysis of Toy Code
0
10
BP
The toy code is an (n=9, k=2) array-based LDPC
code with q = 3 = j
PF
ML
PF
UB-ML
AS Bound
The BP performance is determined by the 18
absorbing sets of type (3,3)
The ML performance is determined by the 3
weight-6 codewords
-5
10
Block Error Rate
-10
10
-15
10
31 /28
Göttingen 2012
-2
0
2
4
6
8
Eb/N0 [dB]
10
12
14
www.zurich.ibm.com
Evolution of BP for Toy Code: Absorbing Sets
Input: noisy version of absorbing set { 3, 4, 9}
Evolution of output P(xi = 0) under BP algorithm
P(x1 = 0) P(x2 = 0) P(x3 = 0) P(x4 = 0) P(x5 = 0) P(x6 = 0) P(x7 = 0) P(x8 = 0) P(x9 = 0)
0.9991 0.9994 0.0008 0.0010 0.9992 0.9988 0.9992 0.9994 0.0008
0.6383 1.0000 0.0000 0.0000 0.7363 1.0000 0.6755 1.0000 0.0000
1.0000 0.9221 0.0000 0.0000 1.0000 0.8657 1.0000 0.9077 0.0000
0.0000 0.7329 1.0000 1.0000 0.0000 0.4720 0.0000 0.6950 1.0000
1.0000 0.9996 0.0000 0.0000 1.0000 0.9979 1.0000 0.9995 0.0000
0.0132 1.0000 1.0000 1.0000 0.0342 1.0000 0.0095 1.0000 1.0000
1.0000 0.0000 1.0000 1.0000 1.0000 0.0000 1.0000 0.0000 1.0000
1.0000 1.0000 0.0000 0.0000 1.0000 1.0000 1.0000 1.0000 0.0000
0.0000 1.0000 1.0000 1.0000 0.0000 1.0000 0.0000 1.0000 1.0000
1.0000 0.0000 1.0000 1.0000 1.0000 0.0000 1.0000 0.0000 1.0000
1.0000 1.0000 0.0001 0.0000 1.0000 1.0000 1.0000 1.0000 0.0000
Output alternates between the three absorbing sets { 3, 4, 9}, {1, 5, 7}, {2, 6, 8}
Other possible behavior:
• Output stays on the same absorbing set
• Output converges to a (possibly wrong) codeword
32 /28
Göttingen 2012
www.zurich.ibm.com
Download