Professional Documents
Culture Documents
Abstract— Many implementations for decoding LDPC codes circuit areas because the number of nonzero elements is not
are based on the (normalized/offset) min-sum algorithm due small in practice. Manipulating those values also takes a lot
to its satisfactory performance and simplicity in operations. of system time and consumes much of system power at run-
Usually, each iteration of the min-sum algorithm contains two
scans, the horizontal scan and the vertical scan. This paper time. We concluded that further simplification of the min-sum
presents a single-scan version of the min-sum algorithm to speed algorithm is needed to suit the ever demanding requirements
up the decoding process. It can also reduce memory usage or of the next generation communication systems.
wiring because it only needs the addressing from check nodes This paper presents two simplified versions of the min-
to variable nodes while the original min-sum algorithm requires sum algorithm to increase its decoding speed and reduce the
that addressing plus the addressing from variable nodes to check
nodes. To cut down memory usage or wiring further, another requirement on memory usage. Those simplifications are based
version of the single-scan min-sum algorithm is presented where on several obvious observations with some of them already
the messages of the algorithm are represented by single bit values mentioned by other researcher [12]. However, no detail has
instead of using fixed point ones. The software implementation been offered in the previous literature in the form of algorithms
has shown that the single-scan min-sum algorithm is more than which can be directly used by engineers and practitioners in
twice as fast as the original min-sum algorithm.
the communication area. Furthermore, the advantage of the
simplifications is not neglectable because the simplified min-
I. I NTRODUCTION
sum algorithm more than doubles the decoding speed of the
The sum-product algorithm [1], [2], also known as the standard min-sum algorithm in our software implementation
belief propagation algorithm [3], is the most powerful iter- (in C language) for decoding the quasi-cyclic irregular LDPC
ative soft decoding algorithm for LDPC (low density parity codes used for China’s HDTV, the irregular LDPC codes used
check) codes [4], [5], [6]. The normalized/offset min-sum for European digital video broadcasting using satellites (DVB-
algorithm [7], [8], [9], [10] has demonstrated in [9], [10] as S2), and the regular/irregular LDPC codes from Dr. MacKay’s
a good approximation to the sum-product algorithm. It is a website. The comparison is fair because both algorithms are
parallel, iterative soft decoding algorithm for LDPC codes. simple in operations and can be implemented in software in a
It is simpler in computation than the sum-product algorithm straightforward way without much room for further improve-
because it uses only minimization and summation operations ment. Our HDTV research group at Tsinghua University has
instead of multiplication and summation operations used by benefited from the simplifications because we most often use
the latter. It is also simpler in computation than the sum- software simulations first to test the performance of different
product algorithm in the log domain because the latter uses LDPC codes for China’s HDTV which could be very time-
non-linear functions. For hardware/software implementations, consuming and may take hours or even days running on fast
multiplication operations and non-linear functions are, in Intel-based desktop computers.
general, more expensive than minimization and summation
operations. II. D EFINITIONS AND NOTATIONS
Despite of its reduced complexity, we found out, in imple- LDPC codes belong to a special class of linear block codes
menting the normalized/offset min-sum algorithm for China’s whose parity check matrix H has a low density of ones.
HDTV, that the min-sum algorithm is still expensive for hard- LDPC codes were originally introduced by Gallager in his
ware/software implementations since two scans are required thesis [4]. After the discovery of turbo codes in 1993 by Berrou
by the algorithm at each iteration, and its convergence rate et al. [11], LDPC codes were rediscovered by Mackay and
is generally not satisfactory. The min-sum algorithm is also Neal [5] in 1995. Both classes have excellent performances
not memory efficient. The temporary results of the algorithm in terms of error correction close to the Shannon limit. For
are stored in memory as fixed point values. The number of a binary LDPC code, H is a binary matrix with elements,
values is proportional to the number of non-zero elements of denoted as hmn in {0, 1}. Let the code word length be N ,
the parity check matrix of a LDPC code. They require large then H is a M × N matrix, where M is the number of rows.
Each row Hi (1 ≤ i ≤ M ) of H introduces one parity check 2) Vertical scan (variable node update rule) :
constraint on input data x = (x1 , x2 , . . . , xn ), i.e.,
(k)
X
(k)
Zmn = Zn(0) + L m′ n . (2)
Hi xT = 0 mod 2.
m′ ∈M(n)\m
So there are M constraints on x in total.
3) Decoding :
Let N (m) be the set of variable nodes that are included in
For each bit, compute its posteriori log-likelihood ratio
the m-th parity check constraint. Let M(n) be the set of check
(LLR)
nodes which contain the variable node n. N (m) \ n denotes X (k)
the set of variable nodes excluding node n that are included Zn(k) = Zn(0) + L m′ n .
in the m-th parity check constraint. M(n) \ m stands for the m′ ∈M(n)
set of check nodes excluding the check node m which contain Then estimate the original codeword x̂(k) as
the variable node n. The symbol ‘\’ denotes the set minus. (k)
For an additive white Gaussian noise channel and a binary 0, if Zn > 0;
x̂(k)
n = for n = 1, 2, . . . , N .
modulation, let yn be the received data bit at position n, 1, otherwise;
yn = (−1)xn + ξn , If H (x̂(k) )T = 0 or the iteration number exceeds some
cap, stop the iteration and output x̂(k) as the decoded
where ξn is the channel noise. The initial Log-likelihood ratio
(0) codeword.
(LLR) for the input data bit n, denoted as Zn , is
One performance improvement to the above standard min-
p(xn = 0/yn ) (k)
Zn(0) ≡ ln = 2yn /σ 2 , sum algorithm is to multiply Lmn computed in (1) by a
p(xn = 1/yn ) positive constant λk smaller than 1, i.e.,
where σ 2 is the estimated variance of the channel noise. The
L(k) (k)
mn ⇐ λk Lmn ,
performance of the min-sum algorithm does not depend on the
(0)
channel estimate. We can, thus, set Zn = yn in practice. The min-sum algorithm with such a modification is referred
to as the normalized min-sum algorithm [9], [10].
III. T HE (N ORMALIZED /O FFSET ) M IN - SUM A LGORITHM
Another improvement to the standard min-sum algorithm,
The standard min-sum algorithm [7], [8] for decoding (k)
is to reduce the reliability values Lmn computed in (1) by a
LDPC is a parallel, iterative soft decoding algorithm. At each positive value βk , i.e.,
iteration, messages first are sent from the variable nodes to
the check nodes, called the horizontal scan. Then messages L(k)
mn ⇐ max L (k)
mn − β k , 0 ,
are sent from the check nodes back to the variable nodes,
called the vertical scan. During each iteration, the a-posteriori The min-sum algorithm with such a modification is referred to
probability for each bit is also computed. A hard decoding as the offset min-sum algorithm [10]. The difference between
decision is made for each bit based on the probability, and the standard min-sum algorithm and the normalized/offset one
decoded bits are checked against all parity check constraints is minor for software/hardware implementations.
to see if they are a valid codeword. IV. T HE S INGLE -S CAN M IN -S UM A LGORITHM
(k)
At iteration k, let Zn be the posteriori LLR for the input
(k) It is very straightforward to rewrite the variable node update
data bit n. Let Zmn denote the message sent from variable
(k) rule (2) as
node n to check node m. Zmn is the log-likelihood ratio that (k)
Zmn = Zn(k) − L(k)
mn .
the n-th bit of the input data x has the value 0 versus 1, given
(k) (k)
the information obtained via the check nodes other than check If we have computed Zn , the variable node message Zmn can
(k) (k)
node m. Let Lmn denote the message sent from check node be obtained from the check node message Lmn . Hence, we can
(k)
m to variable node n. Lmn is the log-likelihood ratio that the merge the horizontal scan and the vertical scan into a single
(k)
check node m is satisfied when the input data bit n is fixed to horizontal scan where only the check node messages Lmn are
value 0 versus value 1 and the other bits are independent with (k−1) (k−1)
′
computed directly from Zn and Lmn . In summary, the
log-likelihood ratios Zmn′ , n ∈ N (m) \ n. The pseudo-code single-scan min-sum algorithm consists of the following major
for the min-sum algorithm is given as follows. steps.
Initialization : For n ∈ {1, 2, . . . , N }, (0)
Initialization : Lmn = 0.
(0)
Zmn = Zn(0) , for m ∈ M(n). Horizontal scan (check node update rule) :