- Research
- Open Access
Enhanced belief propagation decoding of polar codes by adapting the parity-check matrix
- Guiping Li†^{1}Email authorView ORCID ID profile,
- Jianjun Mu†^{1, 2},
- Xiaopeng Jiao†^{1},
- Junjun Guo^{3} and
- Xiaohang Liu^{4}
https://doi.org/10.1186/s13638-017-0825-3
© The Author(s) 2017
- Received: 5 April 2016
- Accepted: 15 February 2017
- Published: 28 February 2017
Abstract
Though the performance of belief propagation (BP) decoder for polar codes is comparable with the successive cancellation (SC) decoder, it has significant performance gap when compared with the improved SC decoders, such as SC list (SCL) decoding. In this paper, we propose an improved BP decoding for polar codes with good performance by adapting their parity-check matrices. The decoding process is iterative and consists of two parts. Firstly, the parity-check matrix of polar codes is adjusted such that one of its submatrices corresponding to less reliable bits is in a sparse nature. Secondly, the BP decoding is applied to the adjusted parity-check matrix. Simulation results show that the proposed decoder, when accompanied with the early termination scheme, provides significant performance gains over the original polar BP decoder under a relatively low decoding complexity and even competes with the cyclic redundancy check (CRC)-aided SCL (CRC-SCL) decoder only by increasing a tolerate complexity.
Keywords
- Polar codes
- Belief propagation
- Parity-check matrix adaptation
- early termination
1 Introduction
Polar codes are shown to be capacity-achieving for binary input discrete memoryless channel (B-DMC) with explicit construction and decoding methods [1]. In the regime of finite block lengths with practical considerations, the performance of polar codes is not very appealing. One of the reasons is that the successive cancellation (SC) decoding for polar codes is suboptimal and it may cause error propagation due to the serial decoding architecture. Although there are some improved SC decoders [2, 3], the throughput of these decoders is low and the decoding latency is relatively high. Another interesting decoding method for polar codes is belief propagation (BP) decoding [4–11]. One advantage of BP decoder is its fully parallel architecture which is important for possible applications. However, the performance of BP decoders reported in the literatures is inferior to the improved SC decoders.
Since the parity-check matrix of polar codes is not sparse in general [12], running BP decoding directly on it does not obtain good frame error rate (FER) performances. Thus, the proposed BP decoders in [4, 5] are based on the factor graph representation of the generator matrix. In this paper, based on the idea of iterative soft-input-soft-output decoding of Reed-Solomon (RS) codes [13], we propose an improved BP decoder for polar codes by adapting their parity-check matrices. In particular, we first adapt the parity-check matrix according to the bit reliability so that the unreliable bits correspond to a sparse submatrix. Then, the BP decoding algorithm is applied to the adapted parity-check matrix. The above process is iteratively performed until the predefined maximum number of iterations is reached or the stopping criterion is satisfied.
2 Preliminaries
2.1 Polar codes
Let W denote a B-DMC with input u∈{0,1}, output \(y \in \mathcal {Y}\), and transition probabilities W(y|u). By recursively applying channel combining and splitting operations on N (N = 2^{ n }, n≥1) independent copies of W, we can get a set of N polarized subchannels, denoted by \(W_{N}^{(i)}\left (y_{1}^{N},u_{1}^{i-1}|u_{i}\right)\), where i=1,2,⋯,N. The construction of an (N,K) polar code is completed by choosing the K best polarized subchannels which carry information bits and freezing the remaining subchannels to zero or some fixed values. According to the encoding rule of polar codes, the encoder can first generate the source block \(u_{1}^{N}\). Then, polar coding is performed on the constraint \(x_{1}^{N}=u_{1}^{N}{\boldsymbol {G}}_{N}\), where G _{ N } is the generator matrix and the vector \(x_{1}^{N}\) is the codeword. The matrix G _{ N } is obtained by the formula B _{ N } F ^{⊗n }, where F ^{⊗n } is the nth Kronecker power of \({\boldsymbol {F}}\triangleq \left [\begin {array}{cc} 1 & 0 \\ 1 & 1 \end {array}\right ]\) and B _{ N } is the bit-reversal permutation matrix. The popular decoding algorithms of polar codes are SC algorithm and BP algorithm.
2.2 Successive cancellation decoding of polar codes
where \(\hat {u}_{1, e}^{2i-2}\) and \(\hat {u}_{1, o}^{2i-2}\) denote the subvectors which consist of elements of \(\hat {u}_{1}^{N}\) with even and odd indices, respectively, and the symbol ⊕ denotes modulo-2 addition. From the above decoding process, we can see that the complexity is determined essentially by the complexity of computing the LLRs.
2.3 Belief propagation decoding of polar codes
To perform BP decoding of polar codes, the authors in [4] show that the factor graph of polar codes can be obtained by adding N check nodes to each column of the first n (n = logN) columns from left to right in the encoding graph. During the whole BP iteration process, soft messages are updated and propagated among adjacent nodes from the rightmost column to the leftmost column. Then, the decoder reverses the course and updates schedule toward the rightmost column. This procedure makes one round of BP iteration. After reaching predefined number of BP iteration M _{BP}, the decision sequence \(\hat {u}_{1}^{N}\) is determined based on the hard decision of messages from the nodes in the leftmost column. However, the performance gains of BP decoder are not significant over the binary-input additive white Gaussian noise (BAWGN) channel [12].
3 Enhanced belief propagation decoding of polar codes by adapting the parity-check matrix
3.1 Enhanced belief propagation decoding of polar codes
Generally, the BP decoder for polar codes is based on the factor graph representation obtained by the encoding graph of polar codes [4]. In [12], the authors proved that the parity-check matrix H of polar codes is formed by the columns of G _{ N } with indices in I ^{ c }, where I ^{ c } is the index set of frozen channels. However, no one considers to use H for the polar BP decoder since the density of H is relatively high. In general, BP decoder is not suitable for linear block codes with high-density parity-check (HDPC) matrix. However, in [13], Jiang and Narayanan proposed an iterative decoding scheme that performs well for RS code with HDPC matrix by adapting its parity-check matrix when BP decoding fails to converge. In this paper, we investigate whether the idea of parity-check matrix adaptation also performs well for polar codes or not.
Suppose a codeword x is transmitted over a B-DMC and y is received. The LLR of the ith coded bit is defined as γ(x _{ i }) = log\(\left (\frac {\text {Pr}\left (\mathbf {y}|x_{i}~=~0\right)}{\text {Pr}\left (\mathbf {y}|x_{i}~=~1\right)}\right)\). Let γ = (γ(x _{1}),γ(x _{2}),⋯,γ(x _{ N−K }),⋯,γ(x _{ N })) denotes the LLRs of N coded bits. The improved polar BP decoder is described as follows.
Stage 1 matrix adaptation. Firstly, all absolute values |γ(x _{ i })|(i=1,2,⋯,N) for γ are sorted by ascending order. This yields a permutation sequence (j _{1},j _{2},⋯,j _{ N−K },⋯,j _{ N }) of (1,2,⋯,N- K,⋯,N) with \(\left |\gamma \left (x_{j_{1}}\right)\right | < \left |\gamma \left (x_{j_{2}}\right)\right | <,\cdots,< \left |\gamma \left (x_{j_{N}}\right)\right |\). Secondly, we introduce a new vector B=(j _{1},j _{2},⋯,j _{ N−K }) which denotes the indices of the N−K least reliable bits in γ. Let H _{ B } denotes the columns of H with the indices chosen from B. Finally, the Gauss elimination (GE) is applied to H _{ B } to reduce this submatrix to be an identity matrix. If H _{ B } is singular, we replace some elements of B with the indices of less reliable information bits until H _{ B } becomes invertible. Then, a new matrix H ^{′} of H is obtained. The process can make H _{ B } as sparse as possible. We choose to use GE to H _{ B } based on the fact that the LLR value for a bit reflects its reliability. Therefore, the columns of H corresponding to the most unreliable bits are reduced to a sparse matrix. This will help BP to correct these unreliable bits.
According to γ ^{′}(x _{ i }), the hard decision of ith bit can be made. After a fixed number of BP iterations, say M _{BP}, the decoder goes to stage 1 and continues to the next round of outer iteration. It should be noted that the matrix adaptation should use the latest updated LLRs γ ^{′} obtained by the inner BP decoder. The advantages of matrix adaptation are as follows: (1) It reduces the density of the original parity-check matrix H and eliminates part of short cycles. (2) It takes LLR values of reliable bits into account when updating unreliable bits. Therefore, the decoding performance can be improved [13].
3.2 Early termination
It is well-known that the stopping criterion for the BP decoder is to determine if the constraint \(\hat {\boldsymbol {x}}\left ({\boldsymbol {H}}^{'}\right)^{T}\)= 0 is satisfied. However, according to the analysis in [15] and simulation results, the BP decoder does not provide a good error-correction performance if we only use \(\hat {\boldsymbol {x}}\left ({\boldsymbol {H}}^{'}\right)^{T}\)= 0 as the stopping criterion for polar codes. Hence, we consider the following simple but efficient stopping criterion for the proposed decoder based on the criterion described in [15], which also can reduce the number of matrix adaption.
minLLR-based stopping criterion: Let Min|LLR| denotes the minimum absolute value of LLRs for γ ^{′} and β be a positive real number. If Min|LLR|>β, then the decoder calculates \(\hat {\boldsymbol {u}}\) according to \(\hat {\boldsymbol {x}}\) and stops decoding. Otherwise, the decoder continues to perform the next round of matrix adaptation.
3.3 Algorithm description
Symbol definition
Symbol | Meaning |
---|---|
\(\boldsymbol {\hat {u}}\) | The decision source block |
\(\boldsymbol {\hat {x}}\) | The decision codeword |
M _{BP} | The predefined number of BP iterations |
M _{AP} | The predefined number of matrix adaptation |
H | The parity check matrix |
H ^{′} | The adjusted parity-check matrix |
B | The index set of the N−K least reliable bits in γ |
γ | The initial LLRs set of N coded bits |
γ ^{′} | The new LLRs set of N coded bits |
η | The damping factor |
Min|LLR| | The minimum absolute value of LLRs for γ ^{′} |
β | a positive real number |
BP_{result} | The returned value of function BP() |
C _{AP} | The average number of matrix adaptation |
C _{BP} | The average number of iterations that BP() used |
W _{ R } | The average row weight |
W _{ C } | The average column weight |
3.4 Computational complexity
Complexity comparisons with different decoders
BOs | FPCs | FPOs | ||
---|---|---|---|---|
×/÷ | +/− | |||
SC | / | / | O(N logN) | O(N logN) |
proposed | O(C _{ AP } N ^{3}) | O(C _{ AP } N logN) | O(C _{ AP } C _{ BP }(N−K)(W _{ R }−2)) | O(C _{ AP } C _{ BP } N(W _{ c }−2)) |
The average row and column weight of H ^{′} for a (1024, 512) polar code
SNR | Avg. weight of column(W _{ C }) | Avg. weight of row(W _{ R }) |
---|---|---|
2.0 dB | 26.08 | 52.67 |
2.5 dB | 26.12 | 52.72 |
3.0 dB | 26.10 | 52.73 |
3.5 dB | 26.14 | 52.77 |
4.0 dB | 26.16 | 52.79 |
3.5 Variations to the Proposed Algorithms
- 1.
Improving the performance
The first variation inspired by [13] can further improve the performance by running the proposed algorithm several times each time with the same initial LLRs from the channel but a different grouping of the less reliable bits. This is based on the fact that some bits with their |LLR|s close to those in the unreliable set B are also of the wrong sign and vice versa. Each time the proposed algorithm is run, a different estimate of codeword may be obtained due to the different parity-check matrix. The decoder keeps all the returned codewords in a list and chooses the one that minimizes Euclidean distance from the received vector of the channel. This variation can significantly improve the asymptotic performance of polar codes.
- 2.Reducing the complexity
- (a)
Partial reliable bit updating
The complexity of the proposed algorithm mostly depends on the complexity of the FPCs. The main FPCs complexity comes from two ways: the computation of the extrinsic information in the reliable part and the adaptation of the parity-check matrix. Since only some bits in the boundary will be switched from the reliable part to the unreliable part in the adaptation of the parity-check matrix, we can use the rule of partial reliable bit updating proposed in [13] to reduce the complexity in the bit reliabilities update part.
- (b)
Sophisticated update schemes
Using sophisticated update schemes reduces the complexity of matrix adaptation, such as the scheme that adapting the parity-check matrix from the previous ones proposed by EI-Khamy and McEliece [16], which reduces the overall complexityby 75%.
- (a)
4 Simulation results
In this section, we consider three polar codes: a (256, 128) rate- 1/2 polar code C _{1}, a (1024, 512) rate- 1/2 polar code C _{2}, and a (2048, 1536) rate- 3/4 polar code C _{3}. We set M _{AP} = 10 and M _{BP} = 20/50. According to the selection principle of η in [13], we set first the observed performances of the proposed decoder when η = 0.5. And a CRC-8 code for C _{1} with generator polynomial g(D) = D ^{8}+D ^{7}+D ^{6}+D ^{4}+D ^{2}+1 is used. While for for C _{2} and C _{3}, we use a CRC-24 code with generator polynomial g(D)=D ^{24}+D ^{23}+D ^{6}+D ^{5}+D+1. Since the length of CRC sequences is very short when compared to that of information bits in a polar code, the rate loss caused by using CRC is almost negligible. All simulations are performed over an additive white Gaussian noise (AWGN) channel with binary phase shift keying (BPSK).
4.1 Choice of β
4.2 Comparison of the FER performance
4.3 Average iterative number and decoding complexity
The numbers of FPOs of different decoders (×10^{3}) for C _{2}
SNR = 2.5dB | SNR = 3.0dB | SNR = 3.5dB | SNR = 4.0dB | |||||
---|---|---|---|---|---|---|---|---|
M/D | A/S | M/D | A/S | M/D | A/S | M/D | A/S | |
SC | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
SCL(L = 32) | 328 | 328 | 328 | 328 | 328 | 328 | 328 | 328 |
Proposed(M _{BP} = 50) | 286 | 272 | 182 | 173 | 130 | 124 | 78 | 74 |
Improved SCL(L = 32)[18] | 45 | 45 | 23 | 23 | 10 | 10 | 6 | 6 |
Proposed(10, 50, 3) | 214 | 204 | 136 | 130 | 98 | 93 | 58 | 55 |
5 Conclusions
In this paper, we have proposed an improved BP decoder for polar codes by adapting their parity-check matrices. Though the idea of the proposed decoder is not new, it has never been used for polar codes before. More importantly, simulation results show that the proposed decoder can provide significant performance gains compared to the polar BP decoder and also can compete with CRC-SCL decoder when using the variations of the proposed algorithm described in Section 3.5. Although the proposed decoder still has a little larger complexity than that of those reduced-complexity CRC-SCL, the proposed decoder is a promising decoder as a fully parallel architecture to reduce the decoding latency of CRC-SCL decoder for polar codes with a tolerated complexity.
Declarations
Acknowledgements
The authors would like to thank the editor and anonymous reviewers for their constructive comments which helped improve the quality of this paper. This work is supported by the National Nature Science Foundation of China (no. 61471286, no. 61271004), the Fundamental Research Funds for the Central Universities, and the open research fund of Key Laboratory of Information Coding and Transmission, Southwest Jiaotong University (no. 2010-03).
Competing interests
The authors declare that they have no competing interests.
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License(http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
Authors’ Affiliations
References
- E Arikan, Channel polarization: a method for constructing capacity achieving codes for symmetric binary-input memoryless channels. IEEE Trans. Inform. Theory. 55(7), 3051–3073 (2009).MathSciNetView ArticleGoogle Scholar
- I Tal, A Vardy, List decoding of polar codes. IEEE Trans Inf Theory. 61(5), 2213–2226 (2015).MathSciNetView ArticleGoogle Scholar
- K Niu, K Chen, Stack decoding of polar codes. Electron. Lett. 48(12), 695–697 (2012).View ArticleGoogle Scholar
- E Arikan, A performance comparison of polar codes and Reed-Muller codes. IEEE Commun. Lett. 12(6), 447–449 (2008).View ArticleGoogle Scholar
- A Eslami, H Pishro-Nik, On finite-length performance of polar codes: stopping sets, error floor, concatenated design.IEEE Trans. Commun. 61(3), 919–929 (2013).View ArticleGoogle Scholar
- N Hussami, R Urbanke, SB Korada, in Proceedings of the IEEE International Symposium on Information Theory (ISIT). Performance of polar codes for channel and source coding (IEEESeoul, 2009), pp. 1488–1492.Google Scholar
- A Eslami, H Pishro-Nik, in Proceedings of the 48th Annual Allerton Conference on Communication, Control, and Computing. On bit error rate performance of polar codes in finite regime (AACCCCAllerton, 2010), pp. 188–194.Google Scholar
- Y Zhang, A Liu, X Pan, Z Ye, C Gong, A modified belief propagation polar decoder. IEEE Commun. Lett. 18(7), 1091–1094 (2014).View ArticleGoogle Scholar
- B Yuan, KK Parhi, in Proceedings of the IEEE International Conference Acoustics, Speech and Signal Processing. Architecture optimizations for BP polar decoders (ICASSPVancouver, British Columbia, 2013), pp. 2654–2658.Google Scholar
- J Guo, M Qin, A Guillén i Fàbregas, PH Siegel, in Proceedings of the IEEE International Symposium on Information Theory. Enhanced belief propagation decoding of polar codes through concatenation (ISITHonolulu, 2014), pp. 2987–2991.Google Scholar
- Y Zhang, Q Zhang, X Pan, Z Ye, C Gong, in Proceedings of the IEEE International Wireless Symposium. A simplified belief propagation decoder for polar codes (IWSXi’an, 2014), pp. 1–4.Google Scholar
- N Goela, SB Korada, M Gastpar, in Proceedings of the IEEE Information Theory Workshop. On LP decoding of polar codes (ITWDublin, 2010), pp. 1–5.Google Scholar
- J Jiang, K Narayanan, Iterative soft-input-soft-output decoding of Reed-Solomn codes by adapting the parity check matrix. IEEE Trans. Inf. Theory. 52(8), 3746–3756 (2006).View ArticleMATHGoogle Scholar
- R Mori, T Tanaka, Performance of polar codes with the construction using density evoluation. IEEE Commun. Lett. 13(7), 519–521 (2009).View ArticleGoogle Scholar
- B Yuan, KK Parhi, Early stopping criteria for energy-efficient low-latency belief-propagation code decoders. IEEE Trans. Signal Proc. 62(24), 6496–6506 (2014).MathSciNetView ArticleGoogle Scholar
- M El-Khamy, RJ McEliece, J Harel, in Proceedings of the IEEE International Symposium on Information Theory. Performance enhancements for algebraic soft-decision decoding of Reed-Solomon codes (ISITChicago, 2004), p. 419.Google Scholar
- K Chen, K Niu, J Lin, Improved successive cancellation decoding of polar codes. IEEE Trans. Commun. 61(8), 3100–3107 (2013).View ArticleGoogle Scholar
- K Chen, K Niu, J Lin, in Proceedings of the IEEE Vehicular Technology Conference. A reduced-complexity successive cancellation list decoding of polar codes (VTC SpringDresden, 2013), pp. 1–5.Google Scholar
- S Mohsin Abbas, Y Fan, J Chen, C Tsui, Low complexity belief propagation polar code decoders [Online] (2015). Available, http://arxiv.org/abs/1505.04979.Google Scholar