codes on graphs and iterative decoding · 2016-01-05 · • the tanner graph of an ldpc code is a...
TRANSCRIPT
![Page 1: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/1.jpg)
Codes on graphs and
iterative decoding
Bane Vasić
Error Correction Coding Laboratory
University of Arizona
Funded by:
National Science Foundation (NSF)
Seagate Technology
Defense Advanced Research Projects Agency (DARPA)
Knowledge Enhanced Compressive Measurement (KECoM)
International Disk Drive Equipment and Materials Association (IDEMA)
Advanced Storage Technology Consortium (ASTC)
European Commission (EC) FET-Open
![Page 2: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/2.jpg)
Why you should listen to this lecture?
• Wireless networks, satellite communications, deep-space
communications, power line communications are among
applications where the low-density parity check (LDPC) codes are
the standardized. Standards include: Digital video broadcast over
satellite (DVB-S2 Standard) and over cable (DVB-C2 Standard),
terrestrial television broadcasting (DVB-T2, DVB-T2-Lite Standards),
GEO-Mobile Radio (GMR) satellite telephony (GMR-1 Standard),
local and metropolitan area networks (LAN/MAN) (IEEE 802.11
(WiFi)), wireless personal area networks (WPAN) (IEEE 802.15.3c
(60 GHz PHY)), wireless local and metropolitan area networks
(WLAN/WMAN) (IEEE 802.16 (Mobile WiMAX), near-earth and deep
space communications (CCSDS), wire and power line
communications ( ITU-T G.hn (G.9960)), utra-wide band
technologies (WiMedia 1.5 UWB), magnetic hard disk drives, optical
communications, flash memories.
![Page 3: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/3.jpg)
Outline
• Basics
– Error correction codes, linear block codes, parity check matrices,
code graphs
– Decoding using local information, iterative decoders
– Decoders as finite-state dynamical systems, basins of attraction
and decoding failures
• Failures of iterative decoders
– Trapping sets
• Code design
– Combinatorial designs and codes
– Quasi-cyclic codes designed from group-theoretic transforms,
Latin squares, difference families, finite geometries
– Many codes in literature are equivalent
![Page 4: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/4.jpg)
Information transmission
Channel
1 0 1 0 0 … 1 0 1 0 0 …
![Page 5: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/5.jpg)
Information transmission
signal
time
threshold
1 0 1 1 0 0
![Page 6: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/6.jpg)
Noisy memoryless channels
Channel
x1 x2 x3 x4 … y1 y2 y3 y4 … p( yi | xi )
1 1
1
,..., | ,..., |n
n n j i
i
P y y x x P y x
![Page 7: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/7.jpg)
Simple memoryless channels
• Binary symmetric channel (BSC)
• Binary erasure channel (BEC)
• Binary input additive white Gaussian
noise (AWGN) channel, s 2
a a
1-a
1-a
0
1
0
1
e
e
1-e
1-e
0
1
0
1
E
p(y|0)
0
1
0
1
p(y|1)
y
![Page 8: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/8.jpg)
Channel capacity
• The channel capacity, C, bounds the information rate R
(in bits per channel use) that can be achieved with
arbitrarily small error probability.
• Note that for channels with binary input, C1.
![Page 9: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/9.jpg)
Channel capacity - examples
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
-25 -20 -15 -10 -5 5 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
0 (dB)
0.2 0.4 0.6 0.8 1
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
a a
1-a
1-a
0
1
0
1
p(y|0)
0
1
0
1
p(y|1)
y
e
e
1-e
1-e
0
1
0
1
E
![Page 10: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/10.jpg)
Channel coding
• Channel coding idea: in addition to k information bits to
be transmitted through the channel, transmit n-k
redundant bits. A set of such n-tuples forms a channel
code. The code rate is
• Noisy-channel coding theorem: It is possible to transmit
information over this channel reliably if and only if R<C.
• Conversely, if R>C, an arbitrarily small probability of error
is not achievable. Probability of error achieved by any
such code is lower bounded by a strictly positive value.
This value is larger for larger rates.
kRn
=
![Page 11: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/11.jpg)
Thresholds for binary-input AWGN channel
-5 -4 -3 -2 -1 0 1 2 310
-6
10-5
10-4
10-3
10-2
10-1
Eb/N
0 (dB)
Pb
R=0.2
R=0.4
R=0.6
R=0.8
![Page 12: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/12.jpg)
Error correction coding
• Decoder tries to find x ( or m ) from y so that the
probability of bit/codeword error is minimal.
• In other words, decoder tries to find a codeword “closest”
to y.
m̂Encoder Decoder
Channel
x̂m x y
1( ,..., )nx x x
1( ,..., )km m m
1( ,..., )ny y y
• Message
• Codeword
• Received word
• Code rate
kRn
=
![Page 13: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/13.jpg)
Maximum likelihood decoding
0 20 40 60 80 1000
10
20
30
40
50
60
70
80
90
100
0 20 40 60 80 1000
10
20
30
40
50
60
70
80
90
100
![Page 14: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/14.jpg)
Bounded distance decoder
• The decoder circles a sphere of the predetermined
radius around the received word and then searches for
a codeword within this bounded distance.
• Two things can happen:
– Decoder finds a single codeword (success). Note that this
codeword may be correct (correct decoding) or wrong (error)
– Does not find a single (does not find a codeword at all or finds
multiple codewords) codeword (failure).
![Page 15: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/15.jpg)
coded
Error rate performance
FER
SNR 10-1
10-6
10-
1
5
Shannon limit uncoded
![Page 16: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/16.jpg)
Protecting information by coding
all words of length n
![Page 17: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/17.jpg)
all words of length n
Protecting information by coding
codewords
![Page 18: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/18.jpg)
Minimum distance
![Page 19: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/19.jpg)
Protecting information by coding
code C
![Page 20: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/20.jpg)
Linear block codes
![Page 21: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/21.jpg)
Dimension of a linear block code
h1
g2
g1
{g1,…,gk} the basis for code C
{h1,h2,…,hn-k} the basis of C^
v HT =0
![Page 22: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/22.jpg)
Parity check
g1
g2
h1
v vHT =0
![Page 23: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/23.jpg)
Parity check
g1
g2
h1
v
vHT =0
![Page 24: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/24.jpg)
Parity check
g1
g2
h1
v
vHT =0
![Page 25: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/25.jpg)
Syndrome
y HT 0
y
h1
g1
g2
![Page 26: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/26.jpg)
Linear constraints
• A binary linear (n,k) code C is a k-dimensional subspace
of GF(2n).
• A codeword v satisfies
• n-k equations in n variables
• Example:
• Binary operations
0Tv H× =
1 0 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1
H
1 1 4 6 7
2 2 4 5 6
3 3 5 6 7
: 0
: 0
: = 0
c v v v v
c v v v v
c v v v v
+ + + =
+ + + =
+ + +
0 0 0
0 1 0
1 0 0
1 1 1
a b a b×
0 0 0
0 1 1
1 0 1
1 1 0
a b a b+
![Page 27: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/27.jpg)
Correcting one error
1 1 4 6 7
2 2 4 5 6
3 3 5 6 7
: 0
: 0
: = 0
c v v v v
c v v v v
c v v v v
+ + + =
+ + + =
+ + +
c1 c2
c3
v1 v2
v3
v4
v5 v7 v6
Checks Variables
![Page 28: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/28.jpg)
Graphical model for a linear block code
Variables
1 1 4 6 7
2 2 4 5 6
3 3 5 6 7
: 0
: 0
: = 0
c v v v v
c v v v v
c v v v v
+ + + =
+ + + =
+ + +
v1 v2 v3 v4 v5 v6 v7
c1 c2 c3
Checks
![Page 29: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/29.jpg)
Linear block codes achieve capacity
• Channel coding theorem holds if a
code is linear block code.
• Shannon also proved that if R<C then
a typical (random) code has the
probability of error decreasing
exponentially with the code length.
• If R<C, then
C 0
R
1
• The complexity of decoding of a random code is O(2n),
thus e need codes with a nice structure.
• Algebraic codes such (BCH, Reed-Solomon, Algebraic
Geometry) have nice structure, but cannot achieve
capacity.
![Page 30: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/30.jpg)
Definitions
• LDPC codes belong to the class of linear block codes
which can be defined by sparse bipartite graphs.
• The Tanner graph of an LDPC code is a bipartite graph
with two sets of nodes:
– the set of variable nodes
– and the set of check nodes
• The check nodes (variable nodes resp.) connected to a
variable node (check node resp.) are referred to as its
neighbors.
• The set of neighbors of a node is denoted by
• The degree of a node is the number of its
neighbors.
C
![Page 31: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/31.jpg)
Definitions
• A vector is a codeword if and only if
for each check node, the modulo two sum of its
neighbors is zero.
• An regular LDPC code has a Tanner graph with
variable nodes each of degree and check nodes
each of degree .
• This code has length rate
• It should be noted that the Tanner graph is not uniquely
defined by the code and when we say the Tanner graph
of an LDPC code, we only mean one possible graphical
representation.
![Page 32: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/32.jpg)
An example of a regular n=25 =3, =5 code
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0
0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0
0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0
0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0
0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
H
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0
0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0
0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
1 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0
0 0 1 0 0 1 0 0 0 0 0 0 0 1 0
0 0 0 1 0 0 1 0 0 0 0 0 0 0 1
0 0 0 0 1 0 0 1 0 0 1 0 0 0 0
0 0 1 0 0
0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 0 1
0 0 1 0 0 1 0 0 0 0
0 0 0 1 0 0 1 0 0 0
![Page 33: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/33.jpg)
Iterative decoding
![Page 34: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/34.jpg)
Math. Seminar Tucson
Crossword puzzles
• Iterate!
Across:
4 Animal with long ears and a short tail.
10 Person who is in charge of a country.
12 In no place.
Down:
5 Pointer, weapon fired from a bow.
6 Accept as true.
7 A place to shoot at; objective.
4 5 6 7
10
12
14 15
13
16
25
![Page 35: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/35.jpg)
![Page 36: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/36.jpg)
![Page 37: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/37.jpg)
Iterative decoders for BEC
![Page 38: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/38.jpg)
Iterative decoding on BEC
e
e
1-e
1-e
0
1
0
1
E erased bit
correct bit
![Page 39: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/39.jpg)
Decoding simulation
![Page 40: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/40.jpg)
BEC decoding simulation
a check involving a single erased bit
other check
![Page 41: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/41.jpg)
BEC simulation - 1
a check satisfied after correction
![Page 42: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/42.jpg)
BEC simulation - 2
![Page 43: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/43.jpg)
BEC simulation - 3
![Page 44: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/44.jpg)
BEC simulation - 4
![Page 45: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/45.jpg)
BEC simulation - 5
![Page 46: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/46.jpg)
BEC simulation - 6
Success !
![Page 47: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/47.jpg)
Another example BEC simulation - 1
![Page 48: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/48.jpg)
Another example BEC simulation - 2
![Page 49: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/49.jpg)
BEC simulation -final
Stuck !
![Page 50: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/50.jpg)
Decoding failures
• A BEC iterative decoder fails to converge to a codeword
(correct or wrong) if at any iteration there is no check
node connected to less than one erased variable node.
• A graph induced by such set of check nodes is called a
stopping set.
![Page 51: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/51.jpg)
Combinatorial definition of a stopping set
• Consider a set S of variable nodes.
• Let N(S) be a set of all checks nodes connected to S.
• If smallest outdegree of nodes in N(S) is two, then S is a
stopping set.
• Other channels such as BSC, AWGN do not have such
combinatorial definition of a decoding failure.
S
N(S)
![Page 52: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/52.jpg)
Decoding by belief propagation
![Page 53: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/53.jpg)
Decoders for channels with soft outputs
• In addition to the channel value, a measure of bit
reliability is also provided
• Bit log-likelihood ratio given yi.
Encoder
Channel
Decoder
x x̂
m ˆ ˆ,x my
( )x
( 0 | )( ) log
( 1| )
i ii
i i
P x yx
P x y
( | 0) ( 0)
( )log
( | 1) ( 1)
( )
i i i
i
i i i
i
p y x P x
p y
p y x P x
p y
( | 0) ( 0)log
( | 1) ( 1)
i i i
i i i
p y x P x
p y x P x
( | 0) ( 0)log log
( | 1) ( 1)
i i i
i i i
p y x P x
p y x P x
![Page 54: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/54.jpg)
Log-likelihood ratio
• Without prior knowledge on xi
• For AWGN (yi = xi + ni, ni ~ N( 0, s2 ) )
• For BSC with parameter a
( | 0)( ) log
( | 1)
i ii i
i i
p y xx
p y x
2 2
2 2
( | 0) 1log ( 1) ( 1)
( | 1) 2 2
i i ii i i
i i
p y x yy y
p y x
s s
- -
1log if 0
log if 11
i
i
y
iy
a
aa
a
-
-
![Page 55: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/55.jpg)
Message-passing
• Soft outputs (xi, i)
– xi – an estimate of the ith bit
– i- belief, reliability, likelihood, likelihood ratio
Example:
1 1 0 0 1 0 1
1 1 0 0 1 1 1
- 6 -1 +10 +2 -1 -2 -5
:
ˆ :
ˆ( ) :
x
x
x
-5
-4
-3
-2
-1
0
1
2
3
4
5
0 0.5 1
Pr( xi=1|yi )
xi)
![Page 56: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/56.jpg)
Soft decoding example
-6 1 0 +2 1 ? -5
1 -1 0 +2 -3 ?
1 1 +10 0 -3 ? -5
1 1 0 0 1 -2 1
1
1
1 1 1
min(| 6 |,| 2 |,| 5 |) 2
( 6) ( 2) ( 5) 1
M
S sign sign sign
A S M
- -
- -
0 0 1 2 3A A A A A
0 ' 2 2 1 3 4A -
1 1 0 0 1 0 1
1 1 0 0 1 1 1
- 6 -1 +10 +2 -1 -2 -5
:
ˆ :
ˆ( ) :
x
x
x
![Page 57: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/57.jpg)
Side remark: some bits “voted” twice
-6 1 0 +2 1 ? -5
1 -1 0 +2 -3 ?
1 1 +10 0 -3 ? -5
![Page 58: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/58.jpg)
Min-sum algorithm
• For each connected variable-check pair (v,c):
– Find product of reliability signs of all variables connected to
check node c (excluding node v).
– Find the magnitude of the smallest reliability of variables
connected to check node c (excluding node v).
– Combine sign and minimum reliability to update reliability of the
variable node.
• Repeat until all parity checks are satisfied or maximum
number of iterations is reached.
![Page 59: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/59.jpg)
The min-sum update rule
( )\{ }
( ) ( )f x y f
y n f x
x y
( )\{ }( )\{ }
( ) sgn( ( )) min | ( ) |x f h x h xh n x f
h n x f
x x x
( )
( ) ( ) ( )i
i
i i i h x i
h n x
g x x x
x f ( )x f x
( )f x x
h1
h2
1( )h x x
2( )h x x
1 1( )y f y
2 2( )y f y
n(x)\{f} n(f)\{x}
y1
y2
![Page 60: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/60.jpg)
Derivation of the check update rule
• Given the log-likelihoods of (xj)1jm find the log-
likelihood of y, L(y).
1 2 j m-1 m 1
Pr{ 0} Pr{# "1" }( ) log log
Pr{ 1} Pr{# "1" }
y in x is evenL y
y in x is odd
x1 x2 xj xm-1 xm 1
y
1
( ) 2artanh tanh2
j
j m
L y
11
( ) sgn( ) | |j j
j mj m
L y
![Page 61: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/61.jpg)
Derivation of the check update rule
0
0
Pr{ 0} , Pr{ 1}
( 1)
1Pr{# "1" }
2
1Pr{# "1" }
2
m m j m j
j
j m
m j m j m j
j
j m
m m
m m
Bernoulli trials: x q x p
q p p q
q p p q
in x is even q p q p
in x is odd q p q p
-
-
- -
-
- -
1 1 1
1 1 1
:
Pr{ 0} , Pr{ 0} , 0
1 1Pr{# "1" } 1
2 2
1 1Pr{# "1" } 1
2 2
j j j j
j j j j j j
j m j m j m
j j j j j j
j m j m j m
Generalization
x q x p j m
in x is even q p q p q p
in x is odd q p q p q p
- -
- - - -
![Page 62: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/62.jpg)
Derivation of the check update rule
1
1
1
1
Pr{ 0} Pr{# "1" }( ) log log
Pr{ 1} Pr{# "1" }
11
1 1log
11
1 1
11
1log
11
1
j
j j
j
j j
j
j
j
j
j m
j m
j m
j m
y in x is evenL y
y in x is odd
e
e e
e
e e
e
e
e
e
-
- -
-
--
/2 /2
/2 /2
1
/2 /2
/2 /2
1
1
1
1
1
1
1
( ) log
1
1 tanh2
log
1 tanh2
1 tanh21
2 log2
1 tanh2
2artanh tanh2
j j
j j
j j
j j
j m
j m
j
j m
j
j m
j
j m
j
j m
j
j m
e e
e eL y
e e
e e
-
-
-
-
-
--
-
-
1
( ) 2artanh tanh2
j
j m
L y
![Page 63: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/63.jpg)
Sum-product algorithm (Kschischang et. al.)
~{ } ( )\{ }
( ) ( ) ( )f x y f
x h n f x
x f X y
( )\{ }
( ) ( )x f h x
h n x f
x x
( )
( ) ( )i
i
i i h x i
h n x
g x x
x f ( )x f x
( )f x x
h1
h2
1( )h x x
2( )h x x
1 1( )y f y
2 2( )y f y
n(x)\{f} n(f)\{x}
y1
y2
![Page 64: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/64.jpg)
Iterative decoders for BSC
![Page 65: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/65.jpg)
Decoding on graphs
• Two basic types of algorithms:
– Bit flipping
• If more checks are unsatisfied than satisfied, flip the bit
• Continue until all checks are satisfied
– Message passing
• A variable node sends his value to all neighboring
checks
• A checks computes XOR of all incoming messages and
sends this along the edges
• But it excludes the message on the edge the result is
send along!
• Variable takes a majority vote of incoming messages
and sends this along
• If tie, sends its original value
1
0
0
0
1
0
1
0
1
1
0
1
![Page 66: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/66.jpg)
Gallager A/B algorithm
• The Gallager A/B algorithms are hard decision decoding
algorithms in which all the messages are binary.
• With a slight abuse of the notation, let denote
the number of incoming messages to which are equal
to . Associated with every decoding round
and variable degree is a threshold .
• The Gallager B algorithm is defined as follows.
![Page 67: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/67.jpg)
Gallager A/B algorithm
• The Gallager A algorithm is a special case of the
Gallager B algorithm with for all .
• At the end of each iteration, a decision on the value of
each variable node is made based on all the incoming
messages and possibly the received value.
![Page 68: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/68.jpg)
The sum-product algorithm
• The update rule
• The result of decoding after iterations, denoted by
• is determined by the sign of
• If otherwise
![Page 69: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/69.jpg)
The min-sum algorithm
• In the limit of high SNR, when the absolute value of the
messages is large, the sum-product becomes the min-
sum algorithm, where the message from the check to
the bit looks like:
![Page 70: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/70.jpg)
General iterative decoders
• An iterative decode is defined as a 4-tuple given by
• is a set the message values are confined to
• is the set of channel values
![Page 71: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/71.jpg)
Finite alphabet iterative decoders
• Messages belong to a finite alphabet , channel values
belong to a finite alphabet .
• The function used for update at a
check node with degree is defined as
• The function is the update function
used at a variable node with degree is defined as
• is a quantizatation, and is computed using a
symmetric function
![Page 72: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/72.jpg)
• Different thresholds the quantizer and choice of the
function lead to different decoders
– linear-threshold (LT) function decoders or
– non-linear-threshold (NLT) function decoders
![Page 73: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/73.jpg)
Decoders as dynamical systems
• Let be the vector of messages along all edges in the
Tanner graph in the -th iteration, and the received
vector, then an iterative decoder on the Tanner graph
can be seen as a dynamical system
• Such dynamical system may have a chaotic behavior
• When alphabets are finite, a decoder is a finite state
machine, with a very large state space.
• The trajectory converge either to a fixed
point or exhibits oscillations around attractor points in the
state space.
• The attractor structure is defined by and .
![Page 74: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/74.jpg)
Failures of iterative decoders
(intuition)
![Page 75: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/75.jpg)
Error floor
FER
SNR
10-1
10-6
10-15
Shannon limit
Sphere packing bound
uncoded
coded
FER
SNR 10-1
10-6
10-
1
5
Shannon limit uncoded
![Page 76: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/76.jpg)
Locality of decoding
![Page 77: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/77.jpg)
A motivating example
• Consider a six cycle in a 3-variable regular Tanner
Graph.
• Assume the channel introduces three errors exactly on
the variable nodes in the cycle.
• Also the assume that the neighborhood of the subgraph
does not influence the messages propagated within the
subgraph (condition to be explained later)
• Gallager – A fails for such error pattern.
• By adding an extra bit in the message, the decoder can
succeed.
![Page 78: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/78.jpg)
Gallager – A iteration 1
1 1
1
0 0 0 0
0 0
1 1 1
1 1 1 1
0 0
1
0
1 1
0 0 0
Initially wrong variable node
Initially correct variable node
Odd-degree check node
Even-degree check node
![Page 79: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/79.jpg)
Gallager – A iteration 2
1 1
1
0 0 0 0
0 0
1
1
1
1
1
1 1 1 1
0 0
1 1
0 0
1 1
0 0
![Page 80: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/80.jpg)
1 1 1 1 1 1
Corrupt variable
Variable decoded correctly
Variable decoded wrongly
Correct variable
A trapping set illustration
![Page 81: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/81.jpg)
1 1 1 1 1 1
Corrupt variable
Variable decoded correctly
Variable decoded wrongly
Correct variable
A trapping set illustration
![Page 82: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/82.jpg)
1 1 1 1 1 1
Corrupt variable
Variable decoded correctly
Variable decoded wrongly
Correct variable
1 1 1
Oscillations in the decoder
![Page 83: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/83.jpg)
1
1 1 1
Corrupt variable
Variable decoded correctly
Variable decoded wrongly
Correct variable
1 1
Oscillations in the decoder
![Page 84: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/84.jpg)
1 1 1 1 1 1
Corrupt variable
Variable decoded correctly
Variable decoded wrongly
Correct variable 1
1 1
Oscillations in the decoder
![Page 85: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/85.jpg)
1 1 1 1 1 1
Corrupt variable
Variable decoded correctly
Variable decoded wrongly
Correct variable
1 1 1
Oscillations in the decoder
![Page 86: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/86.jpg)
1 1 1 1 1 1
Corrupt variable
Variable decoded correctly
Variable decoded wrongly
Correct variable
1 1 1
1 1 1
Oscillations in the decoder
![Page 87: Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a bipartite graph with two sets of nodes: – the set of variable nodes – and the](https://reader033.vdocuments.net/reader033/viewer/2022050509/5f99f05cea9eb014080c3fa8/html5/thumbnails/87.jpg)
Concept of a trapping set
(3,3) trapping set (5,3) trapping set
(8,0) Trapping Set