Shuffled Belief Propagation Decoding
Juntan Zhang and Marc Fossorier
Department of Electrical Engineering University of Hawaii at Manoa Honolulu, HI 96816
Shuffled Belief Propagation Decoding Juntan Zhang and Marc - - PowerPoint PPT Presentation
Shuffled Belief Propagation Decoding Juntan Zhang and Marc Fossorier Department of Electrical Engineering University of Hawaii at Manoa Honolulu, HI 96816 Outline Review of LDPC Codes Standard Belief Propagation Algorithm Shuffled
Department of Electrical Engineering University of Hawaii at Manoa Honolulu, HI 96816
Review of LDPC Codes Standard Belief Propagation Algorithm Shuffled Belief Propagation Algorithm Optimality and Convergence Parallel Shuffled Belief Propagation A Small Example Simulation Results Conclusion
recently [Gallager-IRE62, MacKay-IT99] .
propagation (BP) or sum-product algorithm [Richardson- Urbanke-IT01] .
better distance properties; parallel decoding structure for high speed decoders.
encoding complexity is high; decoder complexity is high for full parallel implementation.
M 1 1 1 1 1 1 1 1 = L L L L M M M M L L L L M M M M M M M O M M M O O O L L L L H
parity check matrix
N
Bit(variable) nodes Check nodes
bipartite graph
weight, or equivalently, the check nodes have constant degree dc and variable nodes have constant degree dv;
constants.
LDPC codes, and can beat turbo codes [Richardson-Urbanke-IT01] .
constructed based on finite geometries (Euclidean and projective geometries) [Weldon-Bell66, Rudolph-IT67];
codes [Lucas-Fossorier-Kou-Lin-COM00, Kou-Lin-Fossorier-IT01];
they are cyclic codes;
= 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 H
Parity matrix is Squared ! Not full rank. Equal number of bit nodes and check nodes. Node degrees are larger.
0.825 0.769 0.700 0.616 0.524 0.429 rate 34 (1057, 813) 66 (4161, 3431) 18 (273, 191) 10 (73, 45) 6 (21, 11) 4 (7, 3) dmin (N, K) 0.822 0.763 0.686 0.587 0.467 rate 33 (1023, 781) 65 (4095, 3367) 17 (255, 175) 9 (63, 37) 5 (15, 7) dmin (N, K)
PG-LDPC codes (DSC) EG-LDPC codes
incoming messages + constraints ⇒ outgoing messages
( )
=
∈ ′ ′ − n m N n n m mn
z L
\ ) ( 1
2 tanh tanh 2
1
mn
z
2
mn
z
4
mn
z
3
mn
z
3
mn
L
2
mn
L
4
mn
L
1
mn
L
2
mn
L
1
mn
z
4
mn
z
3
mn
z
Bit Nodes N(m) Check Node m
∈ ′ ′
+ =
m n M m n m n mn
L F z
\ ) (
,
) (
∈
+ =
n M m mn n n
L F z
n m
z
4
n m
z
3
n m
z
2
n m
z
1
n m
L
4
n m
L
3
n m
L
2
n m
L
1
n
F
for hard decision Check Nodes M(n) Bit Node n
( i ) Horizontal Step: ( ii )Vertical Step:
∈ − ∈ −
− + =
n m N n i mn n m N n i mn i mn
z z
\ ) ( ' ) 1 ( ' \ ) ( ' ) 1 ( ' ) (
) 2 / tanh( 1 ) 2 / tanh( 1 log ε
∈
m n M m i n m n i mn
\ ) ( ' ) ( ' ) (
∈
) ( ) ( ) ( n M m i mn n i n
) 1 ( 66 ) 1 ( 62 ) 1 ( 60 ) 1 ( 56 ) 1 ( 55 ) 1 ( 51 ) 1 ( 45 ) 1 ( 44 ) 1 ( 40 ) 1 ( 36 ) 1 ( 34 ) 1 ( 33 ) 1 ( 25 ) 1 ( 23 ) 1 ( 22 ) 1 ( 14 ) 1 ( 12 ) 1 ( 11 ) 1 ( 03 ) 1 ( 01 ) 1 ( 00 − − − − − − − − − − − − − − − − − − − − − i i i i i i i i i i i i i i i i i i i i i
z z z z z z z z z z z z z z z z z z z z z
) 1 ( 66 ) 1 ( 62 ) 1 ( 60 ) 1 ( 56 ) 1 ( 55 ) 1 ( 51 ) 1 ( 45 ) 1 ( 44 ) 1 ( 40 ) 1 ( 36 ) 1 ( 34 ) 1 ( 33 ) 1 ( 25 ) 1 ( 23 ) 1 ( 22 ) 1 ( 14 ) 1 ( 12 ) 1 ( 11 ) 1 ( 03 ) 1 ( 01 ) 1 ( 00 − − − − − − − − − − − − − − − − − − − − − i i i i i i i i i i i i i i i i i i i i i
ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε
) ( 44 ) ( 34 ) ( 14 i i i
z z z
) ( 60 ) ( 40 ) ( 00 i i i
ε ε ε
) ( 62 ) ( 22 ) ( 12 i i i
ε ε ε
) ( 33 ) ( 23 ) ( 03 i i i
ε ε ε
) ( 44 ) ( 34 ) ( 14 i i i
ε ε ε
) ( 55 ) ( 45 ) ( 25 i i i
ε ε ε
) ( 66 ) ( 56 ) ( 36 i i i
ε ε ε
) ( 60 ) ( 40 ) ( 00 i i i
z z z
) ( 51 ) ( 11 ) ( 01 i i i
ε ε ε
) ( 51 ) ( 11 ) ( 01 i i i
z z z
) ( 62 ) ( 22 ) ( 12 i i i
z z z
) ( 33 ) ( 23 ) ( 03 i i i
z z z
) ( 55 ) ( 45 ) ( 25 i i i
z z z
) ( 66 ) ( 56 ) ( 36 i i i
z z z
Initialization Step1: Update the Belief Matrix, for n=0,..N-1
Horizontal Step: Update the n-th column of Check-to-Bit
Matrix
Vertical Step: Update the n-th column of Bit-to-Check Matrix
Step2: Hard decision and stopping test Step3: Output the decoded codeword
( i ) Horizontal Step: ( ii )Vertical Step:
> ∈ − < ∈ > ∈ − < ∈
− + =
n n n m N n i mn n n n m N n i mn n n n m N n i mn n n n m N n i mn i mn
z z z z
' \ ) ( ' ) 1 ( ' ' \ ) ( ' ) ( ' ' \ ) ( ' ) 1 ( ' ' \ ) ( ' ) ( ' ) (
) 2 / tanh( ) 2 / tanh( 1 ) 2 / tanh( ) 2 / tanh( 1 log ε
∈
+ =
m n M m i n m n i mn
F z
\ ) ( ' ) ( ' ) (
ε
∈
+ =
) ( ) ( ) ( n M m i mn n i n
F z ε
) 1 ( 66 ) 1 ( 62 ) 1 ( 60 ) 1 ( 56 ) 1 ( 55 ) 1 ( 51 ) 1 ( 45 ) 1 ( 44 ) 1 ( 40 ) 1 ( 36 ) 1 ( 34 ) 1 ( 33 ) 1 ( 25 ) 1 ( 23 ) 1 ( 22 ) 1 ( 14 ) 1 ( 12 ) 1 ( 11 ) 1 ( 03 ) 1 ( 01 ) 1 ( 00 − − − − − − − − − − − − − − − − − − − − − i i i i i i i i i i i i i i i i i i i i i
z z z z z z z z z z z z z z z z z z z z z
) 1 ( 66 ) 1 ( 62 ) 1 ( 60 ) 1 ( 56 ) 1 ( 55 ) 1 ( 51 ) 1 ( 45 ) 1 ( 44 ) 1 ( 40 ) 1 ( 36 ) 1 ( 34 ) 1 ( 33 ) 1 ( 25 ) 1 ( 23 ) 1 ( 22 ) 1 ( 14 ) 1 ( 12 ) 1 ( 11 ) 1 ( 03 ) 1 ( 01 ) 1 ( 00 − − − − − − − − − − − − − − − − − − − − − i i i i i i i i i i i i i i i i i i i i i
ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε
) ( 44 ) ( 34 ) ( 14 i i i
z z z
) ( 60 ) ( 40 ) ( 00 i i i
ε ε ε
) ( 62 ) ( 22 ) ( 12 i i i
ε ε ε
) ( 33 ) ( 23 ) ( 03 i i i
ε ε ε
) ( 44 ) ( 34 ) ( 14 i i i
ε ε ε
) ( 55 ) ( 45 ) ( 25 i i i
ε ε ε
) ( 66 ) ( 56 ) ( 36 i i i
ε ε ε
) ( 60 ) ( 40 ) ( 00 i i i
z z z
) ( 51 ) ( 11 ) ( 01 i i i
ε ε ε
) ( 51 ) ( 11 ) ( 01 i i i
z z z
) ( 62 ) ( 22 ) ( 12 i i i
z z z
) ( 33 ) ( 23 ) ( 03 i i i
z z z
) ( 55 ) ( 45 ) ( 25 i i i
z z z
) ( 66 ) ( 56 ) ( 36 i i i
z z z
Backward-forward implementation Computation Complexity
Shuffled BP is optimal in the sense of
Shuffled BP converges faster (or at
Divide the N bits into G groups, each
In each group, the updatings are
G
N
( i ) Horizontal Step:
( ii )Vertical Step:
⋅ ≥ ∈ − − ⋅ ≤ ∈ ⋅ ≥ ∈ − − ⋅ ≤ ∈
− + =
G G G G
N g n n m N n i mn N g n n m N n i mn N g n n m N n i mn N g n n m N n i mn i mn
z z z z
' \ ) ( ' ) 1 ( ' 1 ' \ ) ( ' ) ( ' ' \ ) ( ' ) 1 ( ' 1 ' \ ) ( ' ) ( ' ) (
) 2 / tanh( ) 2 / tanh( 1 ) 2 / tanh( ) 2 / tanh( 1 log ε
∈
+ =
m n M m i n m n i mn
F z
\ ) ( ' ) ( ' ) (
ε
∈
) ( ) ( ) ( n M m i mn n i n
) 1 ( 66 ) 1 ( 62 ) 1 ( 60 ) 1 ( 56 ) 1 ( 55 ) 1 ( 51 ) 1 ( 45 ) 1 ( 44 ) 1 ( 40 ) 1 ( 36 ) 1 ( 34 ) 1 ( 33 ) 1 ( 25 ) 1 ( 23 ) 1 ( 22 ) 1 ( 14 ) 1 ( 12 ) 1 ( 11 ) 1 ( 03 ) 1 ( 01 ) 1 ( 00 − − − − − − − − − − − − − − − − − − − − − i i i i i i i i i i i i i i i i i i i i i
z z z z z z z z z z z z z z z z z z z z z
) 1 ( 66 ) 1 ( 62 ) 1 ( 60 ) 1 ( 56 ) 1 ( 55 ) 1 ( 51 ) 1 ( 45 ) 1 ( 44 ) 1 ( 40 ) 1 ( 36 ) 1 ( 34 ) 1 ( 33 ) 1 ( 25 ) 1 ( 23 ) 1 ( 22 ) 1 ( 14 ) 1 ( 12 ) 1 ( 11 ) 1 ( 03 ) 1 ( 01 ) 1 ( 00 − − − − − − − − − − − − − − − − − − − − − i i i i i i i i i i i i i i i i i i i i i
ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε ε
) ( 44 ) ( 34 ) ( 14 i i i
z z z
) ( 60 ) ( 40 ) ( 00 i i i
ε ε ε
) ( 62 ) ( 22 ) ( 12 i i i
ε ε ε
) ( 33 ) ( 23 ) ( 03 i i i
ε ε ε
) ( 44 ) ( 34 ) ( 14 i i i
ε ε ε
) ( 55 ) ( 45 ) ( 25 i i i
ε ε ε
) ( 66 ) ( 56 ) ( 36 i i i
ε ε ε
) ( 60 ) ( 40 ) ( 00 i i i
z z z
) ( 51 ) ( 11 ) ( 01 i i i
ε ε ε
) ( 51 ) ( 11 ) ( 01 i i i
z z z
) ( 62 ) ( 22 ) ( 12 i i i
z z z
) ( 33 ) ( 23 ) ( 03 i i i
z z z
) ( 55 ) ( 45 ) ( 25 i i i
z z z
) ( 66 ) ( 56 ) ( 36 i i i
z z z
= 1 1 1 1 1 1 1 1 1 H
Decoding Before
bit check } {y1 } {y2 } {y3 } {y4 } {y5 } {y6 } {s1 } {s2 } {s3 } {s4
tion Initializa } y ,y {s 4 2 1 } y y ,y {s 5 3 1 3 } y ,y {s 6 3 4
Iteration1 } y y y ,y s {s 5 3 2 1 3 2 } y y y y s {s 6 5 3 1 , 4 3 } y y {s 4 2 , 1 } y y y {s 5 3 1 , 3 } y y {s 6 3 , 4 } y y y s {s 4 2 1 , 2 1 } y y y y s {s 6 5 3 1 , 4 3 Iteration2 } y y y y y s s {s 6 3 5 2 1 , 4 3 2 } y y y y y s s {s 6 5 3 2 1 , 4 3 2 Iteration3 Iteration4 } y y y y s {s 6 5 3 1 , 4 3 } y ,y {s 2 1 2 } y y y y y s s {s 5 4 3 1 2 , 3 2 1 } y y y y y s s {s 6 5 3 1 2 , 4 3 2 } y y y s {s 4 1 2 , 2 1 } y y y y y s s {s 5 4 3 2 1 , 3 2 1 } y y y s {s 4 1 2 , 2 1 } y y y y y s s {s 4 5 2 3 1 , 3 2 1 } y y y y y s s {s 6 5 3 2 1 , 4 3 2 } y y y y ,y s s {s 5 4 3 2 1 3 2 1 } y y y y y s s {s 6 5 2 3 1 , 4 3 2 Y S U Y S U Y S U Y S U Y S U Y S U Y S U Y S U Y S U Y S U
→ ← → ← → ← → ←
Decoding Before
bit check } {y1 } {y2 } {y3 } {y4 } {y5 } {y6 } {s1 } {s2 } {s3 } {s4 tion Initializa
→
} y ,y {s 4 2 1 } y ,y {s 2 1 2 } y y ,y {s 5 3 1 3 } y ,y {s 6 3 4 Iteration1
←
} y y y ,y s {s 5 3 2 1 3 2
→
} y y y y s {s 5 3 2 1 , 3 2 } y y y y s {s 5 3 2 1 , 3 2
←
} y y y y ,y s s {s 4 5 3 2 1 3 2 1
→
} y y y y ,y s s {s 5 3 1 4 2 3 2 1 } y y y y ,y s s {s 5 3 1 4 2 3 2 1
←
} y y y y y s s {s 5 6 3 2 1 , 4 3 2
→
} y y y y y s s {s 5 6 3 2 1 , 4 3 2 } y y y y y s s {s 5 6 3 2 1 , 4 3 2
←
} y y y y ,y s s {s 5 3 1 4 2 3 2 1
→ ←
} y y y y y s s {s 5 6 3 2 1 , 4 3 2
→ ←
} y y y y y s s {s 5 6 3 2 1 , 4 3 2
→
Iteration2
←
Y S U
→
Y S U Y S U
←
Y S U
→
Y S U
←
Y S U
→
Y S U
←
Y S U
→ ←
Y S U
→ ←
Y S U
→
Decoding Before
bit check } {y1 } {y2 } {y3 } {y4 } {y5 } {y6 } {s1 } {s2 } {s3 } {s4 tion Initializa
→
} y ,y {s 4 2 1 } y ,y {s 2 1 2 } y y ,y {s 5 3 1 3 } y ,y {s 6 3 4 Iteration1
←
} y y y ,y s {s 5 3 2 1 3 2 } y y y s {s 4 1 2 , 2 1 } y y y y s {s 6 5 3 1 , 4 3
→
} y y y s {s 4 1 2 , 2 1 } y y y y y s s {s 4 5 3 2 1 , 3 2 1 } y y y y y s s {s 5 6 3 2 1 , 4 3 2 } y y y y s {s 6 5 3 1 , 4 3
←
} y y y s {s 4 1 2 , 2 1 } y y y y y s s {s 5 6 3 2 1 , 4 3 2 } y y y y s {s 6 5 3 1 , 4 3
→
Iteration2
←
Y S U } y y y y y s s {s 5 4 3 2 1 , 3 2 1 } y y y y y s s {s 6 5 3 2 1 , 4 3 2
→
} y y y y y s s {s 5 4 3 2 1 , 3 2 1 Y S U Y S U } y y y y y s s {s 6 5 3 2 1 , 4 3 2
←
} y y y y y s s {s 5 4 3 2 1 , 3 2 1 Y S U } y y y y y s s {s 6 5 3 2 1 , 4 3 2
→
Iteration3
←
Y S U Y S U
→
Y S U Y S U
←
Y S U Y S U
→
Standard BP Shuffled BP Group Shuffled BP
1 = = G
6 = = G
2 = = G
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 10
10
10
10
10
10
10 Eb/No(dB) Probability of Error Standard BP 20 itr Shuffled BP 20 itr Standard BP 2000 itr Shuffled BP 2000 itr
1 1.1 1.2 1.3 1.4 1.5 1.6 8 10 12 14 16 18 20 Eb/No (dB) Average Number of Iterations Standard BP Algorithm Shuffled BP Algorithm
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 10
10
10
10
10 Eb/No(dB) Probability of Block Error G=1(Standard BP) G=2 G=8 G=100 G=8000(Shuffled BP)
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 6 8 10 12 14 16 18 20 Eb/No(dB) Average Number of Iterations G=1(Standard BP) G=2 G=8 G=100 G=8000(Shuffled BP)
Shuffled BP achieves a good trade-off
Group shuffled BP can decrease