LDPC Decoder Help Doc
LDPC Decoder Help Doc
Notations:
∑ Ck→i
(n) (n−1)
Vi→j = L(ci ) +
k∈Γ i \{j}
LDPC Decoding 1
Message passing from check node to variable node in the nth round
⎛ (n−1)
⎞
∏ tanh ( )
(n) (−1)
Vk→j
= 2 tanh
⎝k∈Υj \{i} ⎠
Cj→i
2
∣ (n−1) ∣
∏ sgn (Vk→j ) ⋅ min ( Vk→j )
(n−1)
≈
k∈Υ j \{i} ∣ ∣
k∈Υ j \{i}
P r(ci = 0∣yi )
L(ci ) = log { }
P r(ci = 1∣yi
(0) (0)
Initialization : Vi→j = 0, Cj→i = 0, n=0
for each iteration n
for each variable node i uses received messages from previous round
and its accumulated LLR from all previous round, calculate and send
messages to its connected check nodes.
∑ Ck→i
(n) (n−1)
Vi→j = L(ci )(0) +
k∈Γ i \{j}
⎛ (n−1)
⎞
tanh ( )
Vk→j
∏
(n) (−1)
= 2 tanh
⎝k∈Υj \{i} ⎠
Cj→i
2
update LLR
( )
LDPC Decoding 2
L(ci )(n) = L(ci )(n−1) + ∑ Ck→i
(n)
k∈Γ i
for each variable node i uses received messages from previous round
and its accumulated LLR from all previous round, calculate and send
messages to its connected check nodes.
(n−1)
L(yi ) = L(ci ) − Cj→i
(n)
Vi→j = L(ci )
the check node j receives message from its connected variable nodes,
calculate and send message back.
⎛ (n−1)
⎞
∏ tanh ( )
(n) (−1)
Vk→j
= 2 tanh
⎝k∈Υj \{i} ⎠
Cj→i
2
(n)
L(ci ) = L(ci ) + Cj→i
∣ (n−1) ∣
∏ sgn (V (n−1) k → j ) ⋅ min k ∈ Υj \{i} ( Vk→j )
(n)
Cj→i =
∣ ∣
k∈Υ j \{i}
LDPC Decoding 3
Normalised min-sum decoding algorithm [4]
scale min-sum approximation with a positive factor less than 1
(n) (n)
Cj→i = αCj→i , 0 < α < 1
(n) (n)
Cj→i = max(Cj→i − β, 0), 0 < α < 1
Performance
min-sum < normalized min-sum < offset min-sum < layered BP = BP
[3] Hocevar, D.E. "A reduced complexity decoder architecture via layered decoding
of LDPC codes." In IEEE Workshop on Signal Processing Systems, 2004. SIPS
2004. doi: 10.1109/SIPS.2004.1363033
[4] Chen, Jinghu, R.M. Tanner, C. Jones, and Yan Li. "Improved min-sum decoding
algorithms for irregular LDPC codes." In Proceedings. International Symposium on
Information Theory, 2005. ISIT 2005. doi: 10.1109/ISIT.2005.1523374
LDPC Decoding 4