Sie sind auf Seite 1von 39
Bit Flipping Decoding Algorithms for LDPC codes Author: Miroslav Vanek e-mail: miroslav.vanek@alcatel-lucent.com 18.
Bit Flipping Decoding Algorithms for LDPC codes Author: Miroslav Vanek e-mail: miroslav.vanek@alcatel-lucent.com 18.

Bit Flipping Decoding Algorithms for LDPC codes

Author:

Miroslav Vanek e-mail: miroslav.vanek@alcatel-lucent.com

18. March 2010

Outline of presentation  LDPC codes  Parity-check property  Characteristics  Description  Encoding

Outline of presentation

LDPC codes

Parity-check property Characteristics Description Encoding

LDPC codes decoding

“soft” decision decoding “hard” decision decoding

 Encoding  LDPC codes decoding  “soft” decision decoding  “hard” decision decoding 18. March

18. March 2010

Outline of presentation  “Hard” decision decoding  Principles  Algorithms  Gallager algorithms 

Outline of presentation

“Hard” decision decoding

Principles

Algorithms

Gallager algorithms

Weighted Bit Flipping algorithm

Parallel Weighted Bit Flipping algorithm

Fast Parallel Weighted Bit Flipping algorithm

Bit Flipping algorithm  Fast Parallel Weighted Bit Flipping algorithm  Results  Conclusion 18. March

Results

Conclusion

Bit Flipping algorithm  Fast Parallel Weighted Bit Flipping algorithm  Results  Conclusion 18. March
Bit Flipping algorithm  Fast Parallel Weighted Bit Flipping algorithm  Results  Conclusion 18. March

18. March 2010

LDPC codes  Introduced by R. Gallager (1964)  part of his PhD. Thesis 

LDPC codes

Introduced by R. Gallager (1964)

part of his PhD. Thesis

left unused for more than 30 years

Subset of Linear Block Codes

linear property:

same length of each codeword

+ c

2

C

c

1

Parity – Check codes

18. March 2010

LDPC codes, parity-check property  Standard parity-check codes  Checksum generated according to Truth table

LDPC codes, parity-check property

Standard parity-check codes

Checksum generated according to Truth table:

A

B

X-OR

0

0

0

0

1

1

1

0

1

1

1

0

Example of encoding:

Data = [1 1 1 1 1 1]

Encoded message = [1 1 1 1 1 1 0]

18.
18.

March 2010

LDPC codes, parity-check property  LDPC codes  using the same principal with Truth table

LDPC codes, parity-check property

LDPC codes

using the same principal with Truth table as common parity-check codes more parity-check bits added to the message Also parity-check bits are involved in parity- check equation Example of encoding:

Data = [1 1 1 1 1 1] Encoded message = [1 1 1 1 1 1 | 1 ]

18.
18.

March 2010

LDPC codes, parity-check property  LDPC codes  using the same principal with Truth table

LDPC codes, parity-check property

LDPC codes

using the same principal with Truth table as common parity-check codes more parity-check bits added to the message Also parity-check bits are involved in parity- check equation Example of encoding:

Data = [1 1 1 1 1 1] Encoded message = [1 1 1 1 1 1 | 1 0]

18.
18.

March 2010

LDPC codes, parity-check property  LDPC codes  using the same principal with Truth table

LDPC codes, parity-check property

LDPC codes

using the same principal with Truth table as common parity-check codes more parity-check bits added to the message Also parity-check bits are involved in parity- check equation Example of encoding:

Data = [1 1 1 1 1 1] Encoded message = [1 1 1 1 1 1 | 1 0 0]

18.
18.

March 2010

LDPC codes  Code Description:  sparse Parity – Check Matrix (matrix of huge dimensions)

LDPC codes

Code Description:

sparse Parity – Check Matrix (matrix of huge dimensions)

graphical representation (Tanner Graph)

Main characteristics:

high performance (theoretically achieving Shannon limit)

reliability

increased need for computing resources in LDPC decoders

successfully implemented in various standards (WiMAX)

need for computing resources in LDPC decoders  successfully implemented in various standards (WiMAX) 18. March

18. March 2010

Parity – Check Matrix H = 1 0  0     

Parity – Check Matrix

H =

1

0

0

1

0

0

parity - check matrix

regular

irregular

0

1

0

0

1

0

0

0

1

0

0

1

1

0

0

0

0

1

0

1

0

1

0

0

0

0

1

0

1

0

1

0

0

0

1

0

0

1

0

0

0

1

0

0

1

1

0

0

defines parity – check equations for each codeword

T

if is a codeword, then: c×H = 0

c

defines parity – check equations for each codeword T  if is a codeword, then: c

18. March 2010

Parity – Check matrix: graphical representation Tanner graph: z 1 z 2 z 3 z

Parity – Check matrix: graphical representation

Tanner graph:

z 1 z 2 z 3 z 4 z 5 z 6 check nodes c
z
1 z
2 z
3 z
4 z
5 z
6
check
nodes
c
1 c
2 c
3 c
4 c
5 c
6 c
7 c
8 c
9

18. March 2010

variable

nodes

Encoding of LDPC codes  Possibility of encoding using standard principles of linear codes encoding:

Encoding of LDPC codes

Possibility of encoding using standard principles

of linear codes encoding:

c = i×G

Due to large dimensions of control matrix H, it is difficult to create generation matrix G

Direct encoding algorithms – encoding based on control matrix H instead of generation matrix H

encoder based on triangulation of control matrix

on control matrix H instead of generation matrix H  encoder based on triangulation of control

18. March 2010

Decoding of LDPC codes  Performance of ECC strongly dependent on decoding process  Iterative

Decoding of LDPC codes

Performance of ECC strongly dependent on decoding process

Iterative decoding algorithms

sequential repair of erroneous bits instead of searching for closest codeword in code space

Hard and Soft decision decoding algorithms

18. March 2010

Decoding of LDPC codes  Hard decision decoding  simple decoder construction  input values

Decoding of LDPC codes

Hard decision decoding

simple decoder construction

input values are not considering the channel information

bit flipping algorithms

faster convergence with significant impact on error correcting characteristics

Soft decision decoding

complicated decoder construction

channel information is considered in decoding process

message passing algorithms

slow converging, but more powerful methods of decoding

process  message passing algorithms  slow converging, but more powerful methods of decoding 18. March

18. March 2010

Hard decision decoding – Bit Flipping decoding  Principles of Bit Flipping decoding  Define

Hard decision decoding – Bit Flipping decoding

Principles of Bit Flipping decoding

Define parity-check equations from control matrix H

Based on parity-check equations define evaluation metrics

Results of this metrics defines a set of bits to be flipped

Flip the values of selected bits

Check the result and proceed to next iteration

18. March 2010

Gallager algorithm – type A  Basic hard decision bit flipping algorithm for LDPC decoding

Gallager algorithm – type A

Basic hard decision bit flipping algorithm for LDPC decoding

Simple construction of decoder – only comparator and XOR elements used

Tanner graph used for making decisions

Particular bit is considered to be correct – all check node it influences are satisfied

decisions  Particular bit is considered to be correct – all check node it influences are

18. March 2010

Gallager algorithm, type A - algorithm  Check all parity-check equations  If all of

Gallager algorithm, type A - algorithm

Check all parity-check equations

If all of them are satisfied -> end decoding

Find the number of all unsatisfied parity-check equations for all received bits

If this number for particular bit = overall number of its parity-check nodes -> flip this bit

Check the stopping criteria and proceed to next iteration

18. March 2010

Gallager algorithm, type A - example z z z z z z 1 2 3

Gallager algorithm, type A - example

z z z z z z 1 2 3 4 5 6 c 1 c
z
z
z
z
z
z
1
2
3
4
5
6
c
1 c
2 c
3 c
4 c
5 c
6 c
7 c
8 c
9

18. March 2010

Gallager algorithm – type B  Using the same principle as type A algorithm 

Gallager algorithm – type B

Using the same principle as type A algorithm

Particular bit is flipped also in case, that not all of parity-check equations are unsatisfied (threshold approach)

Ability to adapt the algorithm during the encoding process (threshold adaptation)

18. March 2010

Gallager algorithm, type B - example  Let threshold t=1 z z z z z

Gallager algorithm, type B - example

Let threshold t=1

z z z z z z 1 2 3 4 5 6 c 1 c
z
z
z
z
z
z
1
2
3
4
5
6
c
1 c
2 c
3 c
4 c
5 c
6 c
7 c
8 c
9

18. March 2010

Weighted Bit Flipping algorithm  Description:  smoothing the difference between simple BF and soft

Weighted Bit Flipping algorithm

Description:

smoothing the difference between simple BF and soft decoding

Simple algorithm

Iterative approach

Flips only that bit of codeword, for which metric

E

n

(

α

)

=

m M

(

(2

n

)

s

m

1) w

,

n m

α

y

n

achieves the maximum value

Slow convergence due to flipping only one bit per iteration

n m − α y n achieves the maximum value  Slow convergence due to flipping

18. March 2010

WBF - algorithm  Count syndrome components for all check nodes s m = ∑

WBF - algorithm

Count syndrome components for all check nodes

s

m

=

h

m n

,

n

z

n

Count evaluation metrics for each bit of received codewordfor all check nodes s m = ∑ h m n , n ⋅ z n

E

n

(

α )

=

(2

m M

(

n

)

s

m

w

n m

,

= min

i

N

(

m

)\

1)

n

y i

w n

,

m

α

y

n

Flip the bit with highest value of En

Check the final codeword and proceed to next iteration

m − α y n Flip the bit with highest value of En Check the final

18. March 2010

Parallel Weighted Bit Flipping algorithms  Description:  Improving WBF algorithms in the way of

Parallel Weighted Bit Flipping algorithms

Description:

Improving WBF algorithms in the way of convergence time and number of iterations

Introduces the ability of parallel flipping of several bits in one iterations

Parallelization allows to improve speed of decoding and even improve overall performance of decoder

18. March 2010

PWBF - algorithm  Count syndrome component for each parity – check equation  Count

PWBF - algorithm

Count syndrome component for each parity – check equation

Count the metric from WBF algorithm for each bit of received codeword

Each unsatisfied parity – check equation “votes” for one bit to be flipped

If the number of votes for particular bit exceeds the threshold, this bit is flipped

All bits are flipped in parallel

18. March 2010
18. March
2010
PWBF - example z 1 z 2 z 3 z 4 z 5 z 6

PWBF - example

z 1 z 2 z 3 z 4 z 5 z 6 c 1 c
z
1 z
2 z
3 z
4 z
5 z
6
c
1 c
2 c
3 c
4 c
5 c
6 c
7 c
8 c
9

Threshold = 3

2 1 5 2 4 4 1 2 5
2
1
5
2
4
4
1
2
5

18. March 2010

Fast PWBF algorithm – “Guaranteed” bits approach  Analogy with Gallager algorithm – type A

Fast PWBF algorithm – “Guaranteed” bits approach

Analogy with Gallager algorithm – type A

Each transmitted codeword contains bits transmitted without error (this bits are called “Guaranteed”)

Set of guaranteed bits is identified using parity – check equations

Bit is marked as “Guaranteed” only if all the parity – check equations, in which this bit participates are satisfied

If bit is marked as “Guaranteed”, it is not necessary to decide, weather this bit needs to be flipped or not

is marked as “Guaranteed”, it is not necessary to decide, weather this bit needs to be

18. March 2010

“Guaranteed” bits – short example c = [ 0 H =  1  

“Guaranteed” bits – short example

c =[0

H =

1

0

0

0

0

1

18. March 2010

0

0

1

0

0

1

0

0

0

0

1

0

0

1

0

1

0

0

0

0

1

0

0

1

0

1

0

0

0

0

0

1

0

1

0

0

1

0

0

0

1

0

0

0

1

0

0

0

1

0]

0

0

1

1

0

0

“Guaranteed” bits – short example c =[0 0  1 0  0 1 

“Guaranteed” bits – short example

c =[0 0  1 0  0 1   0 0 H =
c =[0
0
 1
0
0
1
 0
0
H =
1
0
0
1
 0
0

18. March 2010

0

0

0

0

0

0

0

1

0

0

1

0

0

0

1

0

0

1

1

0

0

1

0

0

0

0

1

0

0

0

0

0

0

1

1

0

1

1

0

0

0

1

0]

0

0

1

1

0

0

“Guaranteed” bits – short example c =[0 0 0 0 0 0 0 0 0]

“Guaranteed” bits – short example

c =[0 0 0 0 0 0 0 0 0]  1 0 0 1
c =[0
0
0
0
0
0
0
0
0]
 1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
 0
0
1
0
0
1
0
0
1
H =
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
 0
0
1
1
0
0
0
1
0

18. March 2010

“Guaranteed” bits – short example c =[0 0 0 0 0 0 0 0 0]

“Guaranteed” bits – short example

c =[0 0 0 0 0 0 0 0 0]  1 0 0 1
c =[0
0
0
0
0
0
0
0
0]
 1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
 0
0
1
0
0
1
0
0
1
H =
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
 0
0
1
1
0
0
0
1
0

18. March 2010

“Guaranteed” bits – short example c =[0 0 0 0 0 0 0 0 0]

“Guaranteed” bits – short example

c =[0 0 0 0 0 0 0 0 0]  1 0 0 1
c =[0
0
0
0
0
0
0
0
0]
 1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
 0
0
1
0
0
1
0
0
1
H =
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
 0

18. March 2010

OK1    0 1 0 0 0 1 1 0 0   

OK1    0 1 0 0 0 1 1 0 0   

Average number of “Guaranteed” bits 18. March 2010

Average number of “Guaranteed” bits

Average number of “Guaranteed” bits 18. March 2010

18. March 2010

Introduction to Fast PWBF algorithm  Based on principles of standard PWBF algorithm  Using

Introduction to Fast PWBF algorithm



Based on principles of standard PWBF algorithm

Using “Guaranteed” bits approach speeds – up the convergence

Algorithm changes:

in each iteration, “Guaranteed” bits are found for received codeword

for “Guaranteed” bits, no evaluation metrics needs to be

calculated and its value is set to

−∞

directly

This approach leads to approximately 25% savings of computational time without any visible decrease of decoding performance

to approximately 25% savings of computational time without any visible decrease of decoding performance 18. March

18. March 2010

WBF vs. Fast WBF comparison 18. March 2010

WBF vs. Fast WBF comparison

WBF vs. Fast WBF comparison 18. March 2010

18. March 2010

BF algorithms - comparison 18. March 2010

BF algorithms - comparison

BF algorithms - comparison 18. March 2010

18. March 2010

BF vs. “soft” decoding - comparison 18. March 2010

BF vs. “soft” decoding - comparison

BF vs. “soft” decoding - comparison 18. March 2010

18. March 2010

Conclusion  LDPC codes: “future of Coding Theory”  Importance of decoding  Hard vs.

Conclusion

LDPC codes: “future of Coding Theory”

Importance of decoding

Hard vs. Soft decision decoding



Hard decision decoding – space for improvement

18. March 2010

References:  R. Gallager, “ Low Density Parity-Check codes” , MIT Press, Cambridge, MA, 1963

References:

R. Gallager, “Low Density Parity-Check codes”, MIT Press, Cambridge, MA,

1963

Kou Y., Lin S., Fossorier M., “Low density parity check codes based on finite geometries: a rediscovery and more”, IEEE Trans. on Inform. Theory, vol. 47, Nov. 2001, pp. 2711 – 2736

J. Zhang and M. Fossorier, “A modified weighted bit – flipping decoding of low density parity – check codes”, IEEE Commun. Lett., vol. 8, Mar. 2004, pp. 165 – 167

Wu X., Zhao Ch., You X., “Parallel weighted Bit – Flipping decoding”, IEEE Communications letters, vol. 11, no. 8, August 2007, pp. 671 – 673

M. Jiang, X. Enyang, C. Zhao, X. You, “Towards Understanding Weighted Bit-Flipping Decoding”, National Mobile Commun. Research Lab., Suotheast University, Nanjing, China

18. March 2010

Thank you for your attention. 18. March 2010

Thank you for your attention.

18. March 2010