This file is raw output from pdftotext and may not be ideal for distribution. If you are a maintainer for Hackipedia, please sit down when you have time and clean this text version up. Source PDF: /mnt/fw-js/docs/Algorithms/Encryption and data integrity/Decoding Low-Density Parity Check Codes with Normalized APP-Based Algorithm.pdf Like all conversions the text below should be fully readable as UTF-8 unicode text. --------------------------------------------------------------- Decoding Low-Density Parity Check Codes with Normalized APP-Based Algorithm Jinghu Chen and Marc P.C. Fossorier ½ Department of Electrical Engineering, University of Hawaii, Honolulu, HI 96822, USA e-mail:jinghu,marc@spectra.eng.hawaii.edu Abstract- In this paper, we propose a normalized a posteriori prob- LDPC codes can be decoded with a soft decision iterative ability (APP) based algorithm for the decoding of low-density parity decoding algorithm called belief propagation (BP) algorithm check (LDPC) codes. The normalized APP-based algorithm utilizes [12], or sum-product algorithm. The BP algorithm is a kind normalization to improve the accuracy of the soft values delivered by of message passing algorithm working on a bipartite graph. the simplified APP-based algorithm from one iteration to another dur- Each node in the bipartite graph can be regarded as a message ing the iterative decoding, and can achieve very good tradeoff between processor, which accepts messages from its neighbor nodes, decoding complexity and performance. processes them and sends updated messages back to its neigh- bors. We can simplify the processing in either bit nodes or I. I NTRODUCTION check nodes, or both, and obtain different simplified versions Low-density parity check (LDPC) codes [1], first proposed by of the BP algorithm. In [10, 11], the uniformly most pow- Gallager in the 1960’s, and later rediscovered by MacKay and erful (UMP) BP-based algorithm is introduced which actually Neal [2, 3], can achieve near Shannon limit error performance simplifies the processing of BP in check nodes. The simplifica- [4, 5] and represent a very promising prospect for error control tion causes degradation in performance, especially for LDPC coding. codes with check sums of large weights, such as geometric One popular way to describe a LDPC code is by means of a LDPC codes. In [15], the authors suggest a way to improve bipartite graph, with one subset of nodes being all the bits, and the UMP BP-based algorithm by normalization. The normal- the other subset of nodes being all the checks [6]. Each bit node ized BP-based algorithm can nearly achieve the same error per- Ò, Ò ½ ¾ Æ , has Ø´Òµ nodes connected to it, which are formance as BP decoding with reduced complexity. Also pre- all check nodes; we denote the set of these Ø´Òµ check nodes as Å´Òµ. Similarly each check node Ñ, Ñ ½ ¾ Å , has sented in [10] is the UMP a posteriori probability (APP) based ØÖ´Ñµ bit nodes connected to it; this set is denoted as Æ ´Ñµ. algorithm which simplifies the processing in both bit and check nodes. Unfortunately, the UMP APP-based algorithm can not This graph representation can facilitate the analysis and design achieve very good performance for LDPC codes in general. of LDPC codes, as well as their decoding. In this paper, we propose to improve the error performance Some majority logic decodable codes can be regarded as of the UMP APP-based algorithm by normalization. The pro- a special family of regular LDPC codes. Among many such posed normalized UMP APP-based algorithm is effective for codes are one-step majority logic decodable (OSMLD) codes, both LDPC codes with check sums of small weights such as including difference-set cyclic (DSC) codes [7]. These kinds Gallager codes, and those with check sums of large weights of codes are referred to as geometric LDPC codes since they such as geometric codes. It can further reduce the decoding can be constructed systematically based on finite geometries complexity of the UMP BP-based algorithm of [15] by a factor [8, 9]. They are competitive candidates for high rate LDPC proportional to Ø´Òµ. codes of medium length, as it has been shown that the perfor- mances of these codes are better than those of regular LDPC II. T HE BP A LGORITHM AND I TS S IMPLIFICATIONS codes with the same block length Æ and dimension à . An- In the following, we assume BPSK modulation which maps other advantage of these codes is that they are cyclic or quasi- a codeword ´ ½ ¾ Æ µ, with Ò ¼ or 1, into cyclic codes. As a result, the encoding complexity can be a transmitted sequence Ü ´Ü ½ ܾ ÜÆ µ, according to greatly reduced compared to that of conventional LDPC codes, ÜÒ ¾ Ò   ½, for Ò ½ ¾ Æ Then Ü is transmitted over since cyclic code encoders can be easily implemented with a channel corrupted by additive white Gaussian noise (AWGN) register circuits. However, these codes have check sums with with zero mean and power spectral density Ƽ W/Hz. The ¾ comparatively larger weights than those of conventional Gal- received value corresponding to Ü Ò after the demodulator is lager codes, and have more checks on each bit. Consequently, ÝÒ ÜÒ · Ò , where Ò is a random variable with zero mean the degrees of both the bit nodes and check nodes in the bipar- and variance Ƽ . ¾ tite graph are larger than that of conventional Gallager codes, At each iteration of BP decoding, each check node receives resulting in a greater decoding complexity. messages from all bit nodes connected to it, and after process- ½ This research was supported by NSF under Grants CCR-97-32959 and ing, it sends messages back to these bit nodes. Then a similar CCR-00-98029, and by the Hawaii Center for Advanced Communications procedure is applied to each bit node. We assume all the mes- (HCAC). sages passing between bit and check nodes are in the form of 0-7803-7206-9/01/$17.00 © 2001 IEEE 1026 log-likelihood ratios (LLR’s). Moreover, we define the follow- B BP-Based Algorithm ing notations associated with a given iteration: The processing in the check nodes for BP algorithm can be ¯ Ò : The LLR of bit Ò which is derived from the received simplified. First, for Ò ¾ Æ ´Ñµ, define ÑÒ as the hard value ÝÒ . In BP decoding, we initially set Ò Æ¼ ÝÒ . decision according to Þ ÑÒ , i.e., ÑÒ ½ if ÞÑÒ ¼; ¯ ÄÑÒ: The LLR of bit Ò which is sent from check node ÑÒ ¼, otherwise. Also, define Ñ as the modulo-2 sum Ñ to bit node Ò. It is obtained from the information cording to Þ ÑÒ , i.e., Ñ È of the hard decisions of all the bits of the check sum Ñ, ac- ÞÑÒ Ò¼ ¾ Æ ´ÑµÒÒ , where the notation Þ ÑÒ will be Ò ¾Æ ´Ñµ ÑÒ mod 2. Then ¼ introduced next and Æ ´ÑµÒÒ is the set of all bit nodes Ñ ¨ ÑÒ represents the modulo-2 sum of the hard decisions of all the bits in Æ ´ÑµÒÒ . Note that the sign of Ì ÑÒ in (1) is connected to check node Ñ with bit node Ò excluded. ´ ½µ Ñ ¨ ÑÒ . Therefore, ¯ ÞÑÒ: The LLR of bit Ò which is sent from the bit node Ò to check node Ñ. It is obtained from the a priori ½   Þ ÜÔ´ ÑÒ¼ µ information Ò and the information Ä Ñ Ò Ñ¼ ¾ Þ Æ Ñ ÒÒ ½ · ÜÔ´ ÑÒ¼ µ ¼ Å´ÒµÒÑ , where Å´ÒµÒÑ is the set of all check nodes Ò¼ ¾ ´ µ connected to bit node Ò with check node Ñ excluded. ¨ ÜÔ´Ñ ÒÒ¼¾Æ ´ÑµÒÒ ÞÑÒ µ  ½  ½µ ¼ Ñ ÑÒ ´ (5) ÜÔ´Ñ ÒÒ ¾Æ ´ÑµÒÒ ÞÑÒ ¯ ÞÒ: The a posteriori LLR of bit Ò computed at each it- ¼ ¼ µ·½ eration. It is obtained from the a priori information Ò and the information Ä Ñ Ò Ñ ¾ Å´Òµ . Based on (5), (2) can be simplified into A BP Algorithm ÄÑÒ ´ ½µ Ñ ¨ ÑÒ ÑÒ ÞÑÒ (6) Æ Ñ ÒÒ ¼ The BP algorithm can be described as follows. Ò¼ ¾ ´ µ Initialization: For each Ò and each Ñ ¾ Å´Òµ, set ÞÑ Ò Replacing (2) with (6) for the processing in check nodes, we Ò. obtain the BP-based algorithm of [10, 11], which performs ad- Iterative processing: For each iteration, the processing in- ditions only. The BP-based algorithm also reduces the storage requirement, since for each check node Ñ, only the smallest cludes three consecutive steps. 1. Processing in check nodes: (See Fig. 1 (a)) two amplitudes of all Þ ÑÒ need to be stored for represen- For each check node Ñ and each bit node Ò con- tation of all ÄÑÒ . In addition, the positive factor Ƽ in Ò nected to node Ñ, Ò ¾ Æ ´Ñµ, update ÄÑÒ by can be omitted and no a priori information about the AWGN ÌÑÒ ½   Þ ÜÔ´ ÑÒ¼ µ (1) channel is required. ÜÔ´ÞÑÒ µ Ò¾ ¼ Æ Ñ ÒÒ ´ µ ½· ¼ C Iterative APP Algorithm ½   ÌÑÒ The iterative APP algorithm can be regarded as a simplifica- ÄÑÒ ÐÒ (2) ½· ÌÑÒ tion of the BP algorithm, and the simplification is done for the processing in bit nodes. In the BP algorithm, the processing in 2. Processing in bit nodes: (See Fig. 1 (b)) each bit node Ò includes two calculations: (i) for each check For each bit node Ò and each check node Ñ con- node Ñ connected to it, following (3), the a priori message Ò nected to node Ò, Ñ ¾ Å´Òµ, update ÞÑ Ò by is added to the incoming messages from all check nodes con- nected to it except for that from check node Ñ , such that ÞÑ Ò , ÞÑ Ò Ò· ÄÑ Ò ¼ (3) the outgoing message to check node Ñ , is somewhat uncorre- Ѽ ¾Å Ò ÒÑ ´ µ lated with the incoming message Ä Ñ Ò from check node Ñ ; Also, for each Ò, update Þ Ò for hard decision by (ii) following (4), the a priori message Ò is added to all the ÞÒ ÄÑÒ messages from check nodes Å´Òµ to obtain the a posteriori Ò· (4) information Þ Ò used to make hard decision for bit Ò. Ѿ ÅÒ ´ µ In the iterative APP algorithm, we only do calculation (ii) to 3. Hard decision and stopping criterion test: compute ÞÒ ’s. Then the ÞÒ ’s are not only used for hard deci- Create the hard decision vector Ü ÜÒ such that sion, but also substituted for all Þ Ñ Ò (Ñ ¾ Å´Òµ), as shown ÜÒ ½ if ÞÒ ¼, and ÜÒ ¼ if ÞÒ ¼. If Ü in Fig. 1 (c). Indeed, with this simplification, correlation is in- is a codeword, it is considered as a valid decoded troduced between the bidirectional messages along each edge. word and the decoding process ends; if the number On the other hand, the computational complexity and storage of iterations exceeds some maximum number and size of the iterative APP algorithm can be greatly reduced since Ü is not a valid codeword, a failure is declared and we only need to compute and store one value for each bit node. the decoding process ends; otherwise the decoding Note that this decoding can be viewed as an iterative imple- repeats from Step 1. mentation of [14]. 1027 D Iterative APP-Based Algorithm Since the processing in check nodes for iterative APP algo- rithm is the same as that for BP algorithm, it can also be sim- plified with (6) to avoid exponential and logarithmic operations and to reduce storage requirement. This results in the UMP it- erative APP-based algorithm. III. N ORMALIZED I TERATIVE APP-BASED A LGORITHM For conventional LDPC codes, the iterative APP algorithm has much worse performance than that of the BP algorithm. For ex- ample, it has been shown in [10] that for (504, 252) and (1008, 504) Gallager codes with ØÖ and Ø ¿, the performance with the iterative APP algorithm is more than 1.0 dB worse than that of the BP algorithm. The reason lies in the fact that the degree of each bit node, which is equal to Ø, is very small, and hence for every bit node, the correlation between the out- going and incoming messages along each of the Ø edges is very significant. However, for geometric LDPC codes, because the degree of each node is usually very large, the fore-mentioned correlation is somewhat reduced, and it doesn’t have predomi- nant effect on the error performance. As a result, the iterative APP algorithm is not a bad choice for geometric LDPC codes since it can provide good tradeoff between decoding complex- ity and performance. It has been shown in [8, 13] that the gap between the error performances of BP decoding and iterative APP decoding is only about 0.2 dB for the (273, 191) DSC code. Furthermore, the iterative APP algorithm can tremendously Fig. 1: (a) Processing in check nodes; (b) Processing in bit nodes with reduce the storage requirement and computational complexity BP algorithm;(c) Processing in bit nodes with APP algorithm. of BP decoding. For example, for the (1057, 813) DSC code with ØÖ Ø ¿¿, if BP decoding is adopted, then ½¼ ¢ ¿¿ units are needed to store Þ ÑÒ and the same amount of 1. sgn´Ä½ µ sgn´Ä¾ µ; units are needed to store Ä ÑÒ . However, with iterative APP 2. ľ Ľ . algorithm, we only need 1057 and ½¼ ¢ ¿¿ units to store We have shown in [15] that with these two facts, the BP-based ÞÒ and ÄÑÒ , respectively. Nevertheless the total storage algorithm can be improved by normalization, i.e. by dividing is only reduced by nearly one half. The decoding is also faster ľ by a factor « greater than 1 to get a much better approxima- since the processing in bit nodes is greatly simplified. tion of Ľ . The theoretical computation of « has been derived As mentioned in Section II-D, the iterative APP algorithm in [15] and is reviewed below. Since the iterative APP-based can be further simplified to iterative APP-based algorithm if algorithm has the same processing in check nodes as BP-based the processing in check nodes is approximated with (6). Con- algorithm, this suggests that the iterative APP-based algorithm sequently, for the fore-mentioned code, 1057 units to represent can be improved with the same normalization approach. We ÞÒ and ÄÑÒ are now required, corresponding to a reduc- refer to this algorithm as normalized iterative APP-based algo- tion of ØÖ Ø. Unfortunately, while for conventional LDPC rithm. codes, the iterative APP-based algorithm brings no degrada- We propose to determine the scaling factors for the normal- tion to the already bad performance of iterative APP decod- ized iterative APP-based algorithm by the same method as pro- ing, for geometric LDPC codes, the performance of the itera- posed in [15], i.e., by forcing the mean of the normalized mag- tive APP-based decoding is much worse than that of iterative nitude ľ « to equal the mean of the magnitude Ä ½ , or APP decoding. Consequently, the approximation and resulting complexity reduction is paid at the expense of a severe per- E´ Ä ¾ µ « (7) formance degradation. Fortunately, this degradation can be re- E´ Ä ½ µ claimed with the same normalization approach as that of [15], as considered below. The scaling factors depend on the signal-to-noise ratio (SNR). For a given pair of Ñ and Ò , denote Ľ and ľ as the value For the first iteration, they can either be determined based on ÄÑÒ computed by (2) and (6), respectively. It can be shown Monte Carlo simulations, or obtained theoretically with the that the two following facts hold [15]: formulas derived in [15]. Also, for a given LDPC code, we can 1028 0 0 10 10 −1 −1 10 10 −2 10 −2 10 −3 10 BER BER −3 10 −4 10 −4 10 BP 200 itr −5 APP 200 itr 10 APP−based 200 itr BP 1000 itr Normalized BP−based 200 itr APP−based 50 itr Normalized APP−based 200 itr −5 Normalized BP−based 200 itr, factor=1.4 10 Normalized APP−based 50 itr, factor=1.4 −6 10 Normalized APP−based 200 itr, factor=2.6 −6 −7 10 10 0.5 1 1.5 2 2.5 3 3.5 4 1 1.5 2 2.5 3 3.5 4 4.5 Eb/No (in dB) Eb/No (in dB) Fig. 2: Bit error performance for iterative decoding of the (504, 252) Fig. 3: Bit error performance for iterative decoding of the (273, 191) LDPC code with BP, APP-based, normalized BP-based and DSC code with BP, APP, APP-based, normalized BP-based and normalized APP-based algorithms. normalized APP-based algorithms. choose one scaling factor for all iterations and all SNR values, the scaling factor « ½ is chosen for both normalized BP- so that the normalized iterative APP-based algorithm becomes based and normalized APP-based algorithms. However, with independent of the SNR value. this factor, the performance of the normalized iterative APP- In iterative APP-based decoding, correlation values are in- based algorithm is still much worse than that of BP and nor- troduced by: (i) the overestimation of the values Ä based on malized BP-based algorithms, since due to the small number (6) in the processing at the check nodes; (ii) the approximation of check sums Ø ¿, the correlation introduced by approxi- of BP by APP in the processing at the bit nodes. This sug- mating BP with APP is very serious. By increasing this factor gests that even larger scaling values than for BP-based decod- to « ¾ , the normalized iterative APP-based algorithm can ing should be chosen for the APP-based algorithm, especially achieve its best performance which is only about 0.3 dB worse when the number of check sums is small. than that of the BP algorithm. Normalization is not a new concept. For example, in [16], Fig. 3 and 4 depict the bit error performance of the (273, the authors propose to clip and scale numbers in the VLSI de- 191) and (1057, 813) DSC codes, respectively. Similar curves sign of a decoder for the (73, 45) DSC code and use the same were obtained for block error performances. For the normal- simplification of (3) by (4) discussed in Section II-C. However, ized iterative APP-based algorithm, we choose the scaling fac- the scaling is mainly intended to represent numbers efficiently tors « ¾ ¼ for the former code and « ¼ for the latter one, in hardware implementation and the entire a posteriori values as we computed for the normalized BP-based algorithm based rather than only the extrinsic information values are scaled. In on the analysis of [15]. Fig. 3 shows that for the (273, 191) [17, 18], the authors show that the performance of SOVA de- DSC code, the performance of the normalized iterative APP- coding can be improved by normalization, since the soft values based algorithm is almost the same as that of the iterative APP delivered by the SOVA algorithm are usually overestimated, algorithm. It is about 0.6 dB better than that of the iterative compared to those of Max-Log-MAP algorithm. Normaliza- APP-based algorithm, and only about 0.2 dB worse than that tion values have also been proposed in [19, 20] to approach of the BP algorithm. No noticeable improvements are observed the error performance of Max-Log-MAP decoding with a sub- by changing the scaling factor for this code. Fig. 4 shows that optimum version of the Max-Log-MAP algorithm applied to the performance of the normalized iterative APP-based algo- iterative decoding of block product codes. However, for the rithm is more than 1.0 dB better than that of the iterative APP- Max-Log-MAP algorithm, the two facts discussed above and based algorithm, and only slightly worse than that of the BP essential to the effectiveness of our proposed scaling method algorithm. Surprisingly, the performance of the normalized it- no longer hold [15]. erative APP-based algorithm is even about 0.15 dB better than that of the iterative APP algorithm. IV. S IMULATION R ESULTS We also simulated the (4161, 3431) DSC code for which In the following, the maximum number of iterations has been ØÖ Ø . In this case, we compute the scaling factor « ¼ based on [15]. The performance of the normalized chosen as the smallest value for which near convergence per- iterative APP-based is only about 0.1 dB worse than that of the formance of the algorithm considered is achieved. Fig. 2 shows BP algorithm as shown in Fig. 5. the bit error performance of different algorithms for the regu- lar (504, 252) LDPC code with ØÖ and Ø ¿. If we only V. C ONCLUSION consider the overestimation of the values Ä based on (6), then 1029 0 −1 10 10 −1 10 −2 10 −2 10 BER BER −3 −3 10 10 −4 10 BP 200 itr −4 10 BP 1000 itr APP 200 itr Normalized APP−based 1000 itr −5 APP−based 10 itr 10 Normalized BP−based 200 itr Normalized APP−based 200 itr −6 −5 10 10 2 2.5 3 3.5 4 4.5 2.8 3 3.2 3.4 3.6 3.8 4 Eb/No (in dB) Eb/No (in dB) Fig. 4: Bit error performance for iterative decoding of the (1057, 813) Fig. 5: Bit error performance for iterative decoding of the (4161, DSC code with BP, APP, APP-based, normalized BP-based and 3431) DSC code with BP and normalized APP-based algorithms. normalized APP-based algorithms. [6] R. M. Tanner, “A Recursive Approach to Low Complexity Codes,” IEEE In this paper, we have summarized different simplifications of Trans. Inform. Theory, vol. 27, pp. 533-547, Sept. 1981. the BP algorithm for decoding LDPC codes. We proposed a [7] E. J. Weldon, “Difference-Set Cyclic Codes,” Bell Syst. Tech. J., vol. 45, normalized iterative APP-based algorithm to improve the per- pp. 1045-1055, Sept. 1996. formance of the iterative APP-based algorithm. The simula- [8] R. Lucas, M. Fossorier, Y. Kou and S. Lin, “Iterative Decoding of One- tion results shows that the normalized iterative APP-based al- Step Majority Logic Decodable Codes Based on Belief Propagation,” IEEE Trans. Comm., vol. 48, pp. 931-937, June 2000. gorithm can achieve good performance for both conventional LDPC codes with check sums of small weights and geomet- [9] Y. Kou, S. Lin and M. Fossorier, “Low Density Parity Check Codes Based on Finite Geometries: A Rediscovery and More,” IEEE Trans. Inform. ric LDPC codes with check sums of large weights. However, Theory, to appear. while for the latter the scaling factors can be derived based [10] M. Fossorier, M. Mihaljevi´ and H. Imai, “Reduced Complexity Iterative c on [15], larger scaling factors than those derived in [15] are Decoding of Low Density Parity Check Codes Based on Belief Propaga- needed to achieve the best error performance for the former tion,” IEEE Trans. Commun., vol. 47, pp. 673-680, May 1999. codes. [11] A. J. Felstrom and K. S. Zigangirov, “Time-Varying Periodic Convolu- From these results, we conclude that for LDPC codes with tional Codes with Low-Density Parity-Check Matrix,” IEEE Trans. In- check sums of large weights, the proposed normalized iterative form. Theory, vol. 45, pp. 2181-2191, Sept. 1999. APP-based decoding performs nearly as well as BP decoding. [12] J. Pearl, Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference. San Mateo, CA: Morgan Kaufmann, 1988. For LDPC codes with check sums of small weights, the ap- proach of [15] is needed to achieve nearly the same error per- [13] R. Lucas, M. Bossert, and M. Breitbach, “On Iterative Soft-Decision Decoding of Linear Binary Block Codes And Product Codes”, IEEE J. formance as BP decoding, while the proposed approach pro- Select. Areas Commun., vol. 16, pp.276-296, Feb. 1998. vides good trade-off between error performance and decoding [14] J. L. Massey, Threshold Decoding. Cambridge, MA: M.I.T. Press, 1963. complexity. [15] J. Chen and M. Fossorier, “Near Optimum Universal Belief Propagation ACKNOWLEDGMENTS Based Decoding of LDPC Codes,” IEEE Trans. Commun., to appear. The authors wish to thank R.M. Tanner for interesting discus- [16] K. Karplus and H. Krit, “A Semi-Systolic Decoder for the PDSC- sions and providing [16]. 73 Error-Correcting Code,” Discrete Applied Mathematics 33, North- Holland, pp. 109-128, 1991. R EFERENCES [17] L. Papke and P. Robertson, “Improved Decoding with the SOVA in a [1] R.G. Gallager, Low-Density Parity-Check Codes. Cambridge, MA: M.I.T. Parallel Concatenated (Turbo-code) Scheme,” Proc. ICC96, pp. 102-106, Press, 1963. June 1996. [2] D.J.C. MacKay, “Good Error-Correcting Codes Based on Very Sparse [18] L. Lin and R. S. Cheng, “Improvements in SOVA-Based Decoding for Matrices,” IEEE Trans. Inform. Theory, vol. 45, pp. 399-431, Mar. 1999. Turbo Codes,” Proc. ICC97, pp. 1473-1478, June 1997. [3] D.J.C. MacKay and R.M. Neal, “Near Shannon Limit Performance of [19] R. M. Pyndiah, “Near Optimum Decoding of Product Codes: Block Low Density Parity Check Codes,” Electronics Letters 32(18), pp. 1645- Turbo Codes,” IEEE Trans. Commun., vol. 46, pp.1003-1010, Aug. 1998. 1646, Aug. 1996. [20] P. A. Martin and D. P. Taylor, “On Multilevel Codes and Iterative Multi- [4] T. Richardson and R. Urbanke, “The Capacity of Low-Density Parity stage Decoding,” IEEE Trans. Commun., to appear. Check Codes under Message-Passing Decoding,” IEEE Trans. Inform. Theory, vol. 47, pp. 599-618, Feb. 2001. [5] T. Richardson, A. Shokrollahi and R. Urbanke, “Design of Capacity- Approaching Irregular Low-Density Parity Check Codes,” IEEE Trans. Inform. Theory, vol. 47, pp. 619-637, Feb. 2001. 1030