A Parallel Decoding Algorithm for Short Polar Codes Based on Error Checking and Correcting

We propose a parallel decoding algorithm based on error checking and correcting to improve the performance of the short polar codes. In order to enhance the error-correcting capacity of the decoding algorithm, we first derive the error-checking equations generated on the basis of the frozen nodes, and then we introduce the method to check the errors in the input nodes of the decoder by the solutions of these equations. In order to further correct those checked errors, we adopt the method of modifying the probability messages of the error nodes with constant values according to the maximization principle. Due to the existence of multiple solutions of the error-checking equations, we formulate a CRC-aided optimization problem of finding the optimal solution with three different target functions, so as to improve the accuracy of error checking. Besides, in order to increase the throughput of decoding, we use a parallel method based on the decoding tree to calculate probability messages of all the nodes in the decoder. Numerical results show that the proposed decoding algorithm achieves better performance than that of some existing decoding algorithms with the same code length.

In [4,5], a list successive-cancelation (SCL) decoding algorithm was proposed with consideration of successivecancelation (SC) [1] decoding paths, and the results showed that performance of SCL was very close to that of maximumlikelihood (ML) decoding. Then, in [6], another decoding algorithm derived from SC called stack successivecancelation (SCS) was introduced to decrease the time complexity of the SCL. In particular, with CRC aided, SCL yielded better performance than that of some Turbo codes, as shown in [7]. However, due to the serial processing nature of the SC, the algorithms in [4][5][6][7] suffered a low decoding throughput and high latency. Based on this observation, some improved versions of SC were proposed with the explicit aim to increase throughput and reduce the latency without sacrificing error-rate performance, such as simplified successive-cancellation (SSC) [8], maximum-likelihood SSC (ML-SSC) [9], and repetition single parity check ML-SSC (RSM-SSC) [10,11]. Besides those SC based algorithms, researchers had also investigated some other algorithms. In [12,13], the ML and maximum a posteriori (MAP) decoding were proposed for the short polar codes. And in [14], a linear programming decoder was introduced for the binary erase channels (BECs). With the factor graph representation of polar codes [15], authors in [16,17] showed that belief propagation (BP) polar decoding had particular advantages with respect to the decoding throughput, while the performance was better than that of the SC and some improved SC decoding. What is more is that, with the minimal stopping set optimized, results of [18,19] had shown that the error floor performance of polar codes was superior to that of LDPC codes. 2 The Scientific World Journal Indeed, all the decoding algorithms in [4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19] can improve the performance of polar codes to a certain degree. However, as the capacity achieving coding scheme, the results of those algorithms are disappointing. Hence, we cannot help wondering why the performance of the polar codes with finite length is inferior to that of the existing coding schemes and how we can improve it. To answer the questions, we need to make a further analysis of those decoding algorithms in [4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19].
For the decoding algorithms with serial processing, there has been the problem of error propagation except the low decoding throughput and high latency [20,21]. That is to say, errors which occurred in the previous node will lead to the error decoding of the later node. However, none of the existing serial processing algorithms has considered this observation. Furthermore, it is noticed from the factor graph of polar codes in [15] that the degree of the check or variable nodes in the decoder is 2 or 3, which will weaken the error-correcting capacity of the decoding, as compared to the LDPC codes with the average degree usually greater than 3 [22,23]. Hence, the performance of the polar codes is inferior to that of LDPC codes with the same length [18,19]. What is more is that BP polar decoding needs more iterations than that of LDPC codes, as shown in [16,17,22,23]. Therefore, in order to improve the performance of a decoding algorithm for polar codes, it is important to enhance the error-correcting capacity of the algorithm.
Motivated by aforementioned observations, we propose a parallel decoding algorithm for short polar codes based on error checking and correcting in this paper. We first classify the nodes of the proposed decoder into two categories: information nodes and frozen nodes, values of which are determined and independent of decoding algorithms. Then, we introduce the method to check the errors in the input nodes of the decoder, with the solutions of the error-checking equations generated based on the frozen nodes. To correct those checked errors, we modify the probability messages of the error nodes with constant values according to the maximization principle. Through delving the error-checking equations solving problem, we find that there exist multiple solutions for those equations. Hence, as to check the errors as accurately as possible, we further formulate a CRCaided optimization problem of finding the optimal solution of the error-checking equations with three different target functions. Besides, we also use a parallel method based on the decoding tree representations of the nodes to calculate probability messages in order to increase the throughput of decoding. The main contributions of this paper can be summarized as follows.
(i) An error-checking algorithm for polar decoding based on the error-checking equations solving is introduced; furthermore, as to enhance the accuracy of the error checking, a CRC-aided optimization problem of finding the optimal solution is formulated.
(ii) To correct the checked errors, we propose a method of modifying the probability messages of the error nodes according to the maximization principle.
(iii) In order to improve the throughput of the decoding, we propose a parallel probability messages calculating method based on the decoding tree representation of the nodes. (iv) The whole procedure of the proposed decoding algorithm is described with the form of pseudocode, and the complexity of the algorithm is also analyzed.
The finding of this paper suggests that, with the error checking and correcting, the error-correcting capacity of the decoding algorithm can be enhanced, which will yield a better performance at cost of certain complexity. Specifically, with the parallel probability messages calculating, the throughput of decoding is higher than the serial process based decoding algorithms. All of these results are finally proved by our simulation work.
The remainder of this paper is organized as follows. In Section 2, we explain some notations and introduce certain preliminary concepts used in the subsequent sections. And in Section 3, the method of the error checking for decoding based on the error-checking equations is described in detail. In Section 4, we introduce the methods of probability messages calculating and error correcting, and after the formulation of the CRC-aided optimization problem of finding the optimal solution, the proposed decoding algorithm with the form of pseudocode is presented. Then, the complexity of our algorithm is analyzed. Section 5 provides the simulation results for the complexity and bit error performance. Finally, we make some conclusions in Section 6.

Notations.
In this work, the blackboard bold letters, such as X, denote the sets, and |X| denotes the number of elements in X. The notation When > , is an empty vector. Further, given a vector set U, vector ⃗ is the th element of U. The matrixes in this work are denoted by bold letters. The subscript of a matrix indicates its size; for example, A × represents an × matrix A. Specifically, the square matrixes are written as A , size of which is × , and A −1 is the inverse of A . Furthermore, the Kronecker product of two matrixes A and B is written as A ⊗ B, and the th Kronecker power of A is A ⊗ .
During the procedure of the encoding and decoding, we denote the intermediate node as V( , ), 0 ≤ ≤ , 0 ≤ ≤ − 1, where = 2 is the code length. Besides, we also indicate the probability values of the intermediate node V( , ) being equal to 0 or 1 as V( , ) (0) or V( , ) (1).
That is to say, for the decoding of the polar codes, one will havê− 1 0 where G −1 is construction matrix of the decoder.
Proof. The proof of Theorem 1 is based on the matrix transformation, which is shown detailedly in Appendix A.
Hence, as for the polar encoder shown in Figure 1, there is ] . ( Furthermore, we have the construction of the decoder as shown in Figure 2(a), where nodes in the rightmost column are the input nodes of the decoder, and the output nodes are the nodes in the leftmost column. During the procedure of the decoding, the probability messages of the received vector are recursively propagated from the rightmost column nodes to the leftmost column nodes. Then, the estimated source binary vector̂7 0 can be decided bŷ In fact, the input probability messages of the decoder depend on the transition probability ( | ) and the received vector 7 0 ; hence, there is For convenience of expression, we will write the input probability messages ( | = 0) and ( | = 1) as (0) and (1), respectively, in the rest of this paper. Therefore, we further have

Frozen and Information
Nodes. In practice, due to the input of frozen bits [1], values of some nodes in the decoder are determined, which are independent of the decoding algorithm, as the red circle nodes illustrated in Figure 2(a) (code construction method is the same as [1]). Based on this observation, we classify the nodes in the decoder into two categories: the nodes with determined values are called frozen nodes, and the other nodes are called information nodes, as the gray circle nodes shown in Figure 2(a). In addition, with the basic process units of the polar decoder shown in Figure 2(b), we have the following lemma.    Lemma 2 has shown that, for a polar code with rate < 1, the frozen nodes are always existing; for example, the frozen nodes in Figure 2 and V(0, 4). For convenience, we denote the frozen node set of a polar code as V , and we assume that the default value of each frozen node is 0 in the subsequent sections.

Decoding Tree Representation.
It can be found from the construction of the decoder in Figure 2(a) that the decoding of a node V( , ) can be equivalently represented as a binary decoding tree with some input nodes, where V( , ) is the root node of that tree, and the input nodes are the leaf nodes. The height of a decoding tree is as most as log 2 , and each of the intermediate node has one or two son nodes. As illustrated in Figure 3, the decoding trees for frozen nodes V(0, 0), V(0, 1), V(0, 2), V(0, 4), V(1, 0), and V(1, 1) in Figure 2(a) are given.
During the decoding procedure, probability messages of V(0, 0), V(0, 1), V(0, 2), V(0, 4), V(1, 0), and V(1, 1) will strictly depend on the probability messages of the leaf nodes as the bottom nodes shown in Figure 3. In addition, based on the (2), we further have To generalize the decoding tree representation for the decoding, we introduce the following Lemma.

Lemma 3.
In the decoder of a polar code with length = 2 , there is a unique decoding tree for each node V( , ), the leaf nodes set of which is indicated as V V( , ) . And if ̸ = − 1, the number of the leaf nodes is even; that is, Proof. The proof of Lemma 3 is based on (2) and construction of the generation matrix. It is easily proved that, except the last column (only one "1" element), there is an even number of "1" elements in all the other columns of F ⊗ 2 . As B is a bit-reversal permutation matrix, which is generated by permutation of rows in I , hence, the generation matrix G has the same characteristic as F ⊗ 2 (see the proof of Theorem 1). Therefore, (8) and (9) can be easily proved by (2). Lemma 3 has clearly shown the relationship between the input nodes and other intermediate nodes of the decoder, which is useful for error checking and probability messages calculation introduced in the subsequent sections.

Error Checking for Decoding
As analyzed in Section 1, the key problem to improve the performance of polar codes is to enhance the error-correcting capacity of the decoding. In this section, we will show how to achieve the goal.

Error Checking by the Frozen Nodes.
It is noticed from Section 2.3 that the values of the frozen nodes are determined. Hence, if the decoding is correct, the probability messages of any frozen node V( , ) must satisfy the condition of V( , ) (0) > V( , ) (1) (the default value of frozen nodes is 0), which is called reliability condition throughout this The Scientific World Journal paper. While in practice, due to the noise of received signal, there may exist some frozen nodes unsatisfying the reliability condition, which indicates that there must exist errors in the input nodes of the decoder. Hence, it is exactly based on this observation that we can check the errors during the decoding. To further describe detailedly, a theorem is introduced to show the relationship between the reliability condition of the frozen nodes and the errors in the input nodes of the decoder. Theorem 4 has provided us an effective method to detect the errors in the leaf nodes set of the frozen node. For example, if the probability messages of the frozen node V(0, 0) in Figure 2 do not satisfy the reliability condition, that is, V(0,0) (0) ≤ V(0,0) (1), it can be confirmed that there must exist errors in the set of {V(3, 0), V(3, 1), . . . , V(3, 7)}, and the number of these errors may be 1 or 3 or 5 or 7. That is to say, through checking the reliability condition of the frozen nodes, we can confirm existence of the errors in the input nodes of the decoder, which is further presented as a corollary.

Corollary 5.
For a polar code with the frozen node set V , if ∃V( , ) ∈ V and V( , ) does not satisfy the reliability condition, there must exist errors in the input nodes of decoder.
Proof. The proof of Corollary 5 is easily completed based on Theorem 4. Corollary 5 has clearly shown that, through checking the probability messages of each frozen node, errors in the input nodes of decoder can be detected.

Error-Checking Equations.
As aforementioned, errors in the input nodes can be found with probability messages of the frozen node, but there still is a problem, which is how to locate the exact position of each error. To solve the problem, a parameter called error indicator is defined for each input node of the decoder. And for the input node V( , ), the error indicator is denoted as , value of which is given by That is to say, by the parameter of error indicator, we can determine whether an input node is error or not. 6 The Scientific World Journal Hence, the above problem can be transformed into how to obtain the error indicator of each input node. Motivated by this observation, we introduce another corollary of Theorem 4. ) , and = 2 is code length. Furthermore, under the field of (2), (11) can be written as

Corollary 6. For any frozen node V( , ) with a leaf node set
Proof. The proof of Corollary 6 is based on Lemma 3 and Theorem 4, and here we ignore the detailed derivation process.
Corollary 6 has shown that the problem of obtaining the error indicator can be transformed to find solutions of (12) under the condition of (11). In order to introduce more specifically, here, we will take an example based on the decoder in Figure 2(a).
Example 7. We assume that frozen nodes V(0, 0), V(1, 0), V(0, 2), and V(0, 4) do not satisfy the reliability condition; hence, based on Theorem 4 and Corollary 6, there are equations as Furthermore, (13) can be written as matrix form, which is where 5 0 = (1, 1, 0, 0, 1, 1,) and E 68 is the coefficient matrix with size of 6 × 8. Therefore, by solving (14), we will get the error indicator vector of input nodes in Figure 2. In order to further generalize the above example, we provide a lemma.

Lemma 8.
For a polar code with the code length , code rate = / , and frozen node set V , we have the error-checking equations as where Proof. The proof of the Lemma 8 is based on (10)- (14), Lemma 3, and Theorem 4, which will be ignored here.

Solutions of Error
where [ E ( −1 0 ) ] is the augmented matrix of (15) and rank(X) is the rank of matrix X.
Proof. For the proof of Theorem 9 see Appendix C for detail.
It is noticed from Theorem 9 that there must exist multiple solutions for error-checking equations; therefore, we further investigate the general expression of solutions of the error-checking equations as shown in the following corollary.
The Scientific World Journal 7 Corollary 10. For a polar code with code length and code rate = / , there exists a transformation matrix P in the field of (2) such that . Based on (18), the general solutions of errorchecking equations can be obtained by wherê∈ {0, 1} andB is an element-permutation matrix, which is determined by the matrix transformation of (18).
Proof. The proof of Corollary 10 is based on Theorem 9 and the linear equation solving theory, which are ignored here.
It is noticed from (18) and (19) that solutions of the error-checking equations tightly depend on the two vectors: , the number of solutions for the error-checking equations may be up to 2 , which is a terrible number for decoding. Although the solutions number can be reduced through the checking of (11), it still needs to reduce the solutions number in order to increase efficiency of error checking. To achieve the goal, we further introduce a theorem.
Theorem 11. For a polar code with code length = 2 and frozen node set V , there exists a positive real number such where V V( , ) is the leaf nodes set of V( , ), 0 ≤ ≤ − 1, 0 ≤ ≤ |V V( , ) |−1, and the value of is related to the transition probability of the channel and the signal power.
Proof. For the proof of Theorem 11 see Appendix D for detail.
Theorem 11 has shown that, with the probability messages of the frozen node and , we can determine the values of some elements in̂− 1 0 quickly, by which the freedom degree of̂− 1 0 will be further reduced. Correspondingly, the number of solutions for the error-checking equations will be also reduced.
Based on above results, we take (14) as an example to show the detailed process of solving the error-checking equations. Through the linear transformation of (18), we have 3 0 = (1, 1, 1, 0), ] .
It is noticed clearly from the above example that, with the checking of (11) and (21), the number of the solutions can be greatly reduced, which make the error checking more efficient. And, of course, the final number of the solutions will depend on the probability messages of the frozen nodes and .
As the summarization of this section, we given the complete process framework of error checking by solutions of the error-checking equations, which is shown in Algorithm 1.

Proposed Decoding Algorithm
In this section, we will introduce the proposed decoding algorithm in detail.

Probability Messages Calculating. Probability messages calculating is an important aspect of a decoding algorithm.
Our proposed algorithm is different from the SC and BP algorithms, because the probability messages are calculated based on the decoding tree representation of the nodes in the decoder, and for an intermediate node V( , ) with only one son node V( + 1, ), 0 ≤ ≤ − 1, there is The Scientific World Journal

Error
Correcting. Algorithm 1 in Section 3.3 has provided an effective method to detect errors in the input nodes of the decoder, and, now, we will consider how to correct these errors. To achieve the goal, we propose a method based on modifying the probability messages of the error nodes with constant values according to the maximization principle. Based on the method, the new probability messages of a error node will be given by and (1)  Then, probability messages of all the nodes in the decoder will be recalculated.
In fact, when there is only one error indicator vector output from Algorithm 1, that is, |C| = 1, after the error correcting and the probability messages recalculation, the estimated source binary vector̂− 1 0 can output directly by the hard decision of the output nodes. While if |C| > 1, in order to minimize the decoding error probability, it needs further research about how to get the optimal error indicator vector.

Reliability Degree.
To find the optimal error indicator vector, we will introduce a parameter called reliability degree for each node in the decoder. And for a node V( , ), the reliability degree V( , ) is given by , , otherwise.
The reliability degree indicates the reliability of the node's decision value, and the larger the reliability degree, the higher The Scientific World Journal 9 the reliability of that value. For example, if the probability messages of the node V(0, 0) in Figure 2 are V(0,0) (0) = 0.95 and V(0,0) (1) = 0.05, there is V( , ) = 0.95/0.05 = 19; that is, the reliability degree of V(0, 0) = 0 is 19. And in fact, the reliability degree is an important reference parameter for the choice of the optimal error indicator vector, which will be introduced in the following subsection.

Optimal Error Indicator
Vector. As aforementioned, due to the existence of |C| > 1, correspondingly, one node in the decoder may have multiple reliability degrees. We denote the th reliability degree of node V( , ) as V( , ) , value of which depends on the th element of C, that is, ⃗ . Based on the definition of reliability degree, we introduce three methods to get the optimal error indicator vector. The first method is based on the fact that, when there is no noise in the channel, the reliability degree of the node will approach to infinity; that is, V( , ) → ∞. Hence, the main consideration is to maximize the reliability degree of all the nodes in decoder, and the target function can be written aŝ where ⃗̂is the optimal error indicator vector.
To reduce the complexity, we have further introduced two simplified versions of the above method. On one hand, we just maximize the reliability degree of all the frozen nodes; hence, the target function can be written aŝ On the other hand, we take the maximization of the output nodes' reliability degree as the optimization target, function of which will be given bŷ Hence, the problem of getting the optimal error indicator vector can be formulated as an optimization problem with the above three target functions. What is more is that, with the CRC aided, the accuracy of the optimal error indicator vector can be enhanced. Based on these observations, the finding of the optimal error indicator vector will be divided into the following steps.
(2) CRC-checking: in order to get the optimal error indicator vector correctly, we further exclude some candidates from ⃗̂0 , ⃗̂1 , . . . , ⃗̂− 1 by the CRC-checking. If there is only one valid candidate after the CRCchecking, the optimal error indicator vector will be output directly; otherwise, the remaining candidates will further be processed in step 3. Step number in Algorithm 2 Space complexity Time complexity (1) ( ) Table 2: The space and time complexity of each step in Algorithm 1.
Step number in Algorithm 1 Space complexity Time complexity (3) Determination: if there are multiple candidates with a correct CRC-checking, we will further choose the optimal error indicator vector from the remaining candidates of step 2 with the formulas of (29) or (30) or (31).
So far, we have introduced the main steps of proposed decoding algorithm in detail, and, as the summarization of these results, we now provide the whole decoding procedure with the form of pseudocode, as shown in Algorithm 2.

Complexity Analysis.
In this section, the complexity of the proposed decoding algorithm is considered. We first investigate the space and time complexity of each step in Algorithm 2, as shown in Table 1.
In Table 1, ( 0 ), ( 1 ) are the space and time complexity of Algorithm 1, respectively, and 0 is the element number of error indicator vectors output by Algorithm 1; that is, 0 = |C|. It is noticed that the complexity of the Algorithm 1 has a great influence on the complexity of the proposed decoding algorithm; hence, we further analyze the complexity of each step of Algorithm 1, and the results are shown in Table 2.
In Table 2, is the number of the frozen nodes, and 1 is the valid solution number of the error-checking equations after the checking of (21). Hence, we get the space and time complexity of Algorithm 1 as ( 0 ) = (1) and ( 1 ) = 2 ( ) + ( ) + ( 1 ( − ) ) + ( 1 ). Furthermore, we can get the space and time complexity of the proposed decoding algorithm as (( 0 + 1) log 2 ) and (2 ) + ((2 0 + 1) log 2 ) + (( 1 + + 2) ) + ( 1 ( − )). From these results, we can find that the complexity of the proposed decoding algorithm mainly depends on 0 and 1 , values of which depend on the different channel condition, as illustrated in our simulation work.

Simulation Results
In this section, Monte Carlo simulation is provided to show the performance and complexity of the proposed decoding algorithm. In the simulation, the BPSK modulation and the additive white Gaussian noise (AWGN) channel are assumed. The code length is = 2 3 = 8, code rate is 0.5, and the index of the information bits is the same as [1].

Performance.
To compare the performance of SC, SCL, BP, and the proposed decoding algorithms, three optimization targets with 1 bit CRC are used to get the optimal error indicator vector in our simulation, and the results are shown in Figure 4.
As it is shown from Algorithms 1, 2, and 3 in Figure 4, the proposed decoding algorithm almost yields the same performance with the three different optimization targets. Furthermore, we can find that, compared with the SC, SCL, and BP decoding algorithms, the proposed decoding algorithm achieves better performance. Particularly, in the low region of signal to noise ratio (SNR), that is, / 0 , the proposed algorithm provides a higher SNR advantage; for example, when the bit error rate (BER) is 10 −3 , Algorithm 1 provides SNR advantages of 1.3 dB, 0.6 dB, and 1.4 dB, and when the BER is 10 −4 , the SNR advantages are 1.1 dB, 0.5 dB, and 1.0 dB, respectively. Hence, we can conclude that performance of short polar codes could be improved with the proposed decoding algorithm.
In addition, it is noted from Theorem 11 that the value of depended on the transition probability of the channel and the signal power will affect the performance of the proposed decoding algorithm. Hence, based on Algorithm 1 in Figure 4, the performance of our proposed decoding algorithm with different and SNR is also simulated, and the results are shown in Figure 5. It is noticed that the optimal values of according to / 0 = 1 dB, / 0 = 3 dB, / 0 = 5 dB, and / 0 = 7 dB are 2.5, 3.0, 5.0, and 5.5, respectively. , BP (iteration number is 60), and the proposed decoding algorithm. Algorithm 1 means that target function to get the optimal error indicator vector is (29), Algorithm 2 means that the target function is (30), and Algorithm 3 means that the target function is (31). in Theorem 11 takes the value of 4. and 1 indicated in Section 4.5 are counted and shown in Figure 6. It is noticed from Figure 6 that, with the increasing of the SNR, the average numbers of parameters 0 and 1 are sharply decreasing. In particular, we can find that, in the high SNR region, both of the 0 and 1 are approaching to a number less than 1. In this case, the space complexity of the algorithm will be ( log 2 ), and the time complexity approaches to (

Complexity
). In addition, we further compare the space and time complexity of Algorithm 1 ( = 4) and SC, SCL ( = 4), and BP decoding algorithm, results of which are shown in Figure 7. It is noticed that, in the high  SNR region, the space complexity of the proposed algorithm is almost the same as that of SC, SCL, and BP decoding algorithm, and the space complexity of the proposed algorithm will be close to ( ). All of the above results have suggested the effectiveness of our proposed decoding algorithm.

Conclusion
In this paper, we proposed a parallel decoding algorithm based on error checking and correcting to improve the performance of the short polar codes. To enhance the errorcorrecting capacity of the decoding algorithm, we derived the error-checking equations generated on the basis of the frozen nodes, and through delving the problem of solving these equations, we introduced the method to check the errors in the input nodes by the solutions of the equations. To further correct those checked errors, we adopted the method of modifying the probability messages of the error nodes with constant values according to the maximization principle. Due to the existence of multiple solutions of the error-checking equations, we formulated a CRC-aided optimization problem of finding the optimal solution with three different target functions, so as to improve the accuracy of error checking. Besides, in order to increase the throughput of decoding, we used a parallel method based on the decoding tree to calculate probability messages of all the nodes in the decoder. Numerical results showed that the proposed decoding algorithm achieves better performance than that of the existing decoding algorithms, where the space and time complexity were approaching to ( log 2 ) and ( ) ( is the number of frozen nodes) in the high signal to noise ratio (SNR) region, which suggested the effectiveness of the proposed decoding algorithm.
It is worth mentioning that we only investigated the error correcting for short polar codes, while for the longlength codes, the method in this paper will yield higher complexity. Hence, in future, we will extend the idea of error correcting in this paper to the research of long code length in order to further improve the performance of polar codes.
Based on the mathematical induction, we will have The inverse of G can be expressed as Since B is a bit-reversal permutation matrix, by elementary transformation of matrix, there is B −1 = B . Hence, we have

B. Proof of Theorem 4
We assume the leaf nodes number of the frozen node V( , ) is ; that is, = |V V( , ) |. If = 2, based on (25), there is ) . Based on the above equations, we have (1)) .

(B.2)
Therefore, by the mathematical inducing, when > 2, we will have To prove Theorem 4, we assume that the values of all the nodes in V V( , ) are set to 0 without generality. That is to say, when the node V ∈ V V( , ) is right, there is V (0) > V (1). Hence, based on the above equation, when the probability messages of V( , ) do not satisfy the reliability condition, that is, V( , ) (0) − V( , ) (1) ≤ 0, there must exist a subset V V( , ) ⊆ V V( , ) , and |V V( , ) | is an odd number, such that

C. Proof of Theorem 9
It is noticed from (1)  Therefore, the proof of (17) is completed.

D. Proof of Theorem 11
To prove Theorem 11, we assume that the real values of all the input nodes are 0 without generality. Given the conditions of transition probability of the channel and constraint of the signal power, it can be easily proved that there exists a positive constant 0 > 1, such that where V( , ) is an input node and V is the input nodes set of the decoder. That is to say, for a frozen node V( , ) with a leaf nodes set V V( , ) , we have The Scientific World Journal

13
Based on (25) and the decoding tree of V( , ), we have the probability messages of V( , ) as .