Density Evolution for BP-Based Decoding Algorithms of LDPC Codes and Their Quantized Versions Jinghu Chen and Marc P.C. Fossorier Department of Electrical Engineering, University of Hawaii, Honolulu, HI 96822, USA e-mail:jinghu,
[email protected] Abstract- In this paper, we analyze the performance of two improved BP-based decoding algorithms for LDPC codes, namely the normalized BP-based and the offset BP-based algorithms, by means of density evolution. The numerical calculations show that with one properly chosen parameter for each of these two improved BP-based algorithms, performances very close to that of the BP algorithm can be achieved. Simulation results for LDPC codes with code length moderately long validate the proposed optimization. Finite quantization effects on the BP-based and the offset BP-based decoding algorithms are evaluated.
I. I NTRODUCTION Low density parity check (LDPC) codes [1, 2] can achieve very good performance with the so-called belief propagation (BP) algorithm or sum-product algorithm [2]. The BP algorithm can also be simplified to the BP-based algorithm [3], which greatly reduces the decoding complexity in implementation, but degrades the decoding performance as well. In [4], density evolution has been elaborated to analyze the capacity of LDPC codes for BP decoding. The density evolution was applied in [5, 6] to the BP-based decoding algorithm (which is called max-product algorithm and Max-Log-MAP algorithm in [5] and [6], respectively), and in [7] to modified versions based on corrective terms [8]. In [9], we proposed to improve the performance of the BPbased algorithm by normalization. In this paper, we apply density evolution to obtain the thresholds of the normalized BPbased algorithm and another improved BP-based algorithm, named offset BP-based algorithm. Surprisingly good results are obtained for both algorithms, whose implementations are much simpler than that of the BP algorithm. The discretized density evolution of the BP algorithm was proposed in [10], not only to simplify the numerical calculation of the density evolution, but also to take into account the effect of finite quantization. In [7], the density evolution of the BP-based algorithm is discretized and the calculation in check nodes is realized in an iterative manner. In this paper, we derive a more efficient discretized density evolution algorithm of the BP-based algorithm with non-iterative calculation in check nodes, and further extend the results to the offset BP-based algorithm. The paper is organized as follows. In Section II, the BP and BP-based algorithms are briefly reviewed, and the density evolution for iterative BP-based decoding is derived based on
This research was supported by NSF under Grants CCR-97-32959 and CCR-00-98029, and by the Hawaii Center for Advanced Communications (HCAC).
[5, 6]. Then we present two improved BP-based algorithms in Section III, their density evolution procedures and the numerical results. Discretized density evolution procedures for the BP-based and offset BP-based algorithms are presented in Section IV. Simulation results are given in Section V. Section VI concludes the paper. II. D ENSITY E VOLUTION
FOR
BP-BASED D ECODING
"!
#$ % %& * ( %' %&)( - , + % .
/103254 6 7 % A BP and BP-Based Algorithms 03:;4 / 03:;4 For iteration 8 , let 9 < and < denote the message sent from bit node = to check node . and the message sent from check node . to bit node = , respectively [2]. Also denote the set of check nodes connected to bit node . as > . , and the set of bit nodes connected to ( check = as ? = . For regular (node LDPC codes, we have ? = A@ and ( > . ( A@CB . Then each iteration 8 of the BP decoding includes the following two In the following, we assume BPSK modulation which maps , with or 1, into a codeword , according to . Then is transmitted over an AWGN channel. The received vector is and is a Gaussian random variable with mean and variance . The loglikelihood ratio (LLR) of bit given the received value is .
steps:
E. DF? = , update / 39 < 0 :;4 / b 0_2`4 a
2. Processing in bit nodes: for each and each
. , update c /d03:34 T< V > 0 4W < < T
(1)
(2)
/ 0_2`4 % /