# Higher-Order Belief Propagation Correction Decoder for Polar Codes
###### Abstract  
Belief propagation (BP) decoding for polar codes has been extensively studied because of its inherent parallelism. However, its performance remains inferior to that of successive cancellation list decoding (SCL) due to the structure of the decoding graph. To improve the block error rate (BLER) performance, the BP correction (BPC) decoding, a post-processing scheme that corrects prior knowledge of the identified code bit, improves convergence by executing additional iterations on the failed BP decoder. Moreover, the BPC decoder demonstrates a better decoding performance than the BP-based bit-flipping decoder. Nevertheless, the additional decoding attempts lead to increased latency. In this article, a modified BPC decoder is proposed to reduce the number of decoding attempts by redefining the correction rules. A new metric is designed to effectively identify the corrected location. Numerical results show that the proposed modified BPC decoder achieves a slight improvement in BLER compared with the original BPC, with a dramatic reduction in average complexity. Furthermore, a higher-order version, named MBPC-\(\Omega\), is extended to further improve the performance, where the \(\Omega\) is the maximum correction order. Numerical results show that the higher-order modified BPC achieves a similar BLER performance to existing multiple bit-flipping BP decoders but has around half the latency overhead. In addition, the proposed MBPC-2 decoder performs better than the cyclic redundancy check-aided SCL (CA-SCL) decoder with list size 4 and is slightly worse than the CA-SCL with list size 8 in high signal-to-noise ratio (SNR) regions but with significant decoding latency reduction. polar code; belief propagation decoding; post-processing; higher-order correction +
Footnote †: journal: _entropy_  
0000-0002-4000-0002-4000]M. [PERSON]  
0000-0002-4000-0002-4000]Z. [PERSON]  
0000-0002-4000-0002-4000-0002-4000-0002-4000-0002-4000-0002-4000-002-4000-0002-4000-0002-40002-4000  
of girths was designed in [12], resulting in better performance and lower average decoding latency. Post-processing is another effective strategy to improve the BLER performance. A random perturbation-based post-processing method was developed in [13] to address different types of BP errors and to improve convergence. The noise-aided BPL decoder, combined with random noise injection and list decoding, introduced in [14], has a much better performance than the SCL and is a bit behind the CA-SCL decoder in terms of BLER performance. Inspired by the SC bit-flipping decoder, the BP flipping (BPF) decoder, as a post-processing method, was first proposed in [15] and was then improved in [16; 17; 18]. The BPF decoder, performing bit-flipping on error-prone information bits, achieved a comparable BLER performance with that of the SCL decoder with a small list size. The flipping set which is constructed by a convolutional neural network-based imitation learning scheme was presented in [19], such that useless flipping attempts are avoided. [20] proposed a noised-aided BPL bit-flipping decoder which is superior to the CA-SCL decoder at the cost of numbers of decoding iterations. In [21], a low-complexity two-level post-processing algorithm was proposed to modify the false converged error efficiently in the BPL decoder. In [22], the correction performed on code bits was studied. When the BP decoder failed, the correction operation performed as an external perturbation used to improve the convergence, named the BPC decoder. By correcting the unreliable code bits, i.e., assigning \(\pm\infty\) to their log-likelihood rate (LLR) and performing additional iterations, the decoder is expected to converge correctly. For identical additional decoding attempts, the BPC decoder shows better BLER performance than the BPF decoder. However, without benefiting from prior knowledge about the identified code bit, assignments on both sides lead to excessive decoding attempts, resulting in relatively high decoding latency overhead.