+ All Categories
Home > Documents > Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a...

Codes on graphs and iterative decoding · 2016-01-05 · • The Tanner graph of an LDPC code is a...

Date post: 07-Aug-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
87
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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
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
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Concept of a trapping set

(3,3) trapping set (5,3) trapping set

(8,0) Trapping Set


Recommended