The Scientific World Journal

Volume 2014 (2014), Article ID 895782, 14 pages

http://dx.doi.org/10.1155/2014/895782

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

Laboratory of Satellite Communications, College of Communications Engineering, PLA University of Science and Technology, Nanjing 210007, China

Received 4 May 2014; Accepted 8 July 2014; Published 23 July 2014

Academic Editor: Lei Cao

Copyright © 2014 Yingxian Zhang et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

#### Abstract

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.

#### 1. Introduction

Due to the ability of achieving Shannon capacity and its low encoding and decoding complexity, the polar codes have received much attention in recent years [1–20]. However, compared to some original coding schemes such as LDPC and Turbo codes, the polar codes have a remarkable drawback; that is, the performance of the codes in the finite length regime is limited [2, 3]. Hence, researchers have proposed many decoding algorithms to improve the performance of the codes [4–19].

In [4, 5], a list successive-cancelation (SCL) decoding algorithm was proposed with consideration of successive-cancelation (SC) [1] decoding paths, and the results showed that performance of SCL was very close to that of maximum-likelihood (ML) decoding. Then, in [6], another decoding algorithm derived from SC called stack successive-cancelation (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–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.

Indeed, all the decoding algorithms in [4–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–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 CRC-aided 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.

#### 2. Preliminary

##### 2.1. Notations

In this work, the blackboard bold letters, such as , denote the sets, and denotes the number of elements in . The notation denotes an -dimensional vector , and indicates a subvector of , . When , is an empty vector. Further, given a vector set , vector is the th element of .

The matrixes in this work are denoted by bold letters. The subscript of a matrix indicates its size; for example, represents an matrix . Specifically, the square matrixes are written as , size of which is , and is the inverse of . Furthermore, the Kronecker product of two matrixes and is written as , and the th Kronecker power of is .

During the procedure of the encoding and decoding, we denote the intermediate node as , , where is the code length. Besides, we also indicate the probability values of the intermediate node being equal to 0 or 1 as or .

Throughout this Paper, “” denotes the Modulo-Two Sum, and “” means “”.

##### 2.2. Polar Encoding and Decoding

A polar coding scheme can be uniquely defined by three parameters: block-length , code rate , and an information set , where . With these three parameters, a source binary vector consisting of information bits and frozen bits can be mapped a codeword by a linear matrix , where , is a bit-reversal permutation matrix defined in [1], and .

In practice, the polar encoding can be completed with the construction shown in Figure 1, where the gray circle nodes are the intermediate nodes. And the nodes in the leftmost column are the input nodes of encoder, values of which are equal to binary source vector; that is, , while the nodes in the rightmost column are the output nodes of encoder, . Based on the construction, a codeword is generated by the recursively linear transformation of the nodes between adjacent columns.

After the procedure of the polar encoding, all the bits in the codeword are passed to the -channels, which are consisted of independent channels of , with a transition probability of , where is th element of the received vector .

At the receiver, the decoder can output the estimated codeword and the estimated source binary vector with different decoding algorithms [1–19]. It is noticed from [1–19] that the construction of all the decoders is the same as that of the encoder; here, we make a strict proof for that with the mathematical formula in the following theorem.

Theorem 1. *For the generation matrix of the a polar code , there exists
**That is to say, for the decoding of the polar codes, one will have
*

*
where 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 can be decided by
*

*In fact, the input probability messages of the decoder depend on the transition probability and the received vector ; hence, there is
*

*For convenience of expression, we will write the input probability messages and as and , respectively, in the rest of this paper. Therefore, we further have
*

*2.3. Frozen and Information Nodes*

*2.3. 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. For the decoder of a polar code with rate , there must exist some frozen nodes, the number of which depends on the information set .*

* Proof. *The proof of Lemma 2 can be easily finished based on the process units of the polar decoder as shown in Figure 2(b), where , , , and are the four nodes of the decoder.

*Lemma 2 has shown that, for a polar code with rate , the frozen nodes are always existing; for example, the frozen nodes in Figure 2(a) are , , , , , and . For convenience, we denote the frozen node set of a polar code as , and we assume that the default value of each frozen node is 0 in the subsequent sections.*

*2.4. Decoding Tree Representation*

*2.4. Decoding Tree Representation*

*It can be found from the construction of the decoder in Figure 2(a) that the decoding of a node can be equivalently represented as a binary decoding tree with some input nodes, where 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 , and each of the intermediate node has one or two son nodes. As illustrated in Figure 3, the decoding trees for frozen nodes , , , , , and in Figure 2(a) are given.*

*During the decoding procedure, probability messages of , , , , , and 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 , there is a unique decoding tree for each node , the leaf nodes set of which is indicated as . And if , the number of the leaf nodes is even; that is,
where and . While if , is equal to 1, and it is true that
*

*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 . As is a bit-reversal permutation matrix, which is generated by permutation of rows in , hence, the generation matrix has the same characteristic as (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.*

*3. Error Checking for Decoding*

*3. 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.*

*3.1. Error Checking by the Frozen Nodes*

*3.1. 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 must satisfy the condition of (the default value of frozen nodes is 0), which is called reliability condition throughout this 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. For any frozen node with a leaf node set , if the probability messages of do not satisfy the reliability condition during the decoding procedure, there must exist an odd number of error nodes in ; otherwise, the error number will be even (including 0).*

* Proof. *For the proof of Theorem 4 see Appendix B for detail.

*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 in Figure 2 do not satisfy the reliability condition, that is, , it can be confirmed that there must exist errors in the set of , 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 , if and 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.*

*3.2. Error-Checking Equations*

*3.2. 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 , 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. 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.*

*Corollary 6. For any frozen node with a leaf node set , there is
where , , and is code length. Furthermore, under the field of , (11) can be written as
*

*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 , , , and 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 and is the coefficient matrix with size of . 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 , we have the error-checking equations as
where is the error indicator vector and , . is called error-checking matrix, elements of which are determined by the code construction method, and is called error-checking vector, elements of which depend on the probability messages of the frozen nodes in ; that is, , , there is a unique such that
*

*Proof. *The proof of the Lemma 8 is based on (10)–(14), Lemma 3, and Theorem 4, which will be ignored here.

*3.3. Solutions of Error-Checking Equations*

*3.3. Solutions of Error-Checking Equations*

*Lemma 8 provides a general method to determine the position of errors in the input nodes by the error-checking equations. It is still needed to investigate the existence of solutions of the error-checking equations.*

*Theorem 9. For a polar code with code length and code rate , there is
where is the augmented matrix of (15) and is the rank of matrix .*

* 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.*

*Corollary 10. For a polar code with code length and code rate , there exists a transformation matrix in the field of such that
where , is the submatrix of transformation result of , and is the subvector of transformation result of . Based on (18), the general solutions of error-checking equations can be obtained by
where and 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: and . Where is determined by the transformation matrix and the error-checking vector , and is a random vector. In general, based on , the number of solutions for the error-checking equations may be up to , 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 and frozen node set , there exists a positive real number such that ; if , there is
where is the leaf nodes set of , , , 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 quickly, by which the freedom degree of 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 ,
*

*By the element permutation of , we further have and . If , with the checking of (21), there is , and , which imply that the solutions number will be 2. Furthermore, with the checking of (11), we obtain the exact solution ; that is, the 4th input node is error.*

*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.*

*4. Proposed Decoding Algorithm*

*4. Proposed Decoding Algorithm*

*In this section, we will introduce the proposed decoding algorithm in detail.*

*4.1. Probability Messages Calculating*

*4.1. 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 with only one son node , , there is
While if has two son nodes and , , we will have
*

*Based on (24) and (25), the probability messages of all the variable nodes can be calculated in parallel, which will be beneficial to the decoding throughput.*

*4.2. Error Correcting*

*4.2. 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 , where , are the new probability messages of the error node , and is a small nonnegative constant; that is, . Furthermore, we will get the new probability vector of the input nodes as
where and , if the input node is error; otherwise, and . 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, , after the error correcting and the probability messages recalculation, the estimated source binary vector can output directly by the hard decision of the output nodes. While if , in order to minimize the decoding error probability, it needs further research about how to get the optimal error indicator vector.*

*4.3. Reliability Degree*

*4.3. 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 , the reliability degree is given by
*

*The reliability degree indicates the reliability of the node’s decision value, and the larger the reliability degree, the higher the reliability of that value. For example, if the probability messages of the node in Figure 2 are and , there is ; that is, the reliability degree of 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.*

*4.4. Optimal Error Indicator Vector*

*4.4. Optimal Error Indicator Vector*

*As aforementioned, due to the existence of , correspondingly, one node in the decoder may have multiple reliability degrees. We denote the th reliability degree of node as , value of which depends on the th element of , 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, . Hence, the main consideration is to maximize the reliability degree of all the nodes in decoder, and the target function can be written as
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 as
*

*On the other hand, we take the maximization of the output nodes’ reliability degree as the optimization target, function of which will be given by
*

*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.(1)Initialization: we first get number candidates of the optimal error indicator vector, , by the formulas of (29) or (30) or (31).(2)CRC-checking: in order to get the optimal error indicator vector correctly, we further exclude some candidates from by the CRC-checking. If there is only one valid candidate after the CRC-checking, the optimal error indicator vector will be output directly; otherwise, the remaining candidates will further be processed in step 3.(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.*

*4.5. Complexity Analysis*

*4.5. 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, , are the space and time complexity of Algorithm 1, respectively, and is the element number of error indicator vectors output by Algorithm 1; that is, . 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 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 and . Furthermore, we can get the space and time complexity of the proposed decoding algorithm as and . From these results, we can find that the complexity of the proposed decoding algorithm mainly depends on and , values of which depend on the different channel condition, as illustrated in our simulation work.*

*5. Simulation Results*

*5. 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 , code rate is 0.5, and the index of the information bits is the same as [1].*

*5.1. Performance*

*5.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, , the proposed algorithm provides a higher SNR advantage; for example, when the bit error rate (BER) is , Algorithm 1 provides SNR advantages of 1.3 dB, 0.6 dB, and 1.4 dB, and when the BER is , 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 , , , and are 2.5, 3.0, 5.0, and 5.5, respectively.*

*5.2. Complexity*

*5.2. Complexity*

*To estimate the complexity of the proposed decoding algorithm, the average numbers of parameters and 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 and are sharply decreasing. In particular, we can find that, in the high SNR region, both of the and are approaching to a number less than 1. In this case, the space complexity of the algorithm will be , and the time complexity approaches to . In addition, we further compare the space and time complexity of Algorithm 1 () and SC, SCL (), 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.*

*6. Conclusion*

*6. 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 error-correcting 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 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 long-length 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.*

*Appendix*

*Appendix*

*A. Proof of Theorem 1*

*A. Proof of Theorem 1*

*
We can get the inverse of through the linear transformation of matrix; that is . Furthermore, we have
*

*Based on the mathematical induction, we will have
*

*The inverse of can be expressed as
*

*Since is a bit-reversal permutation matrix, by elementary transformation of matrix, there is . Hence, we have
*

*It is noticed from Proposition 16 of [1] that ; therefore there is
*

*B. Proof of Theorem 4*

*B. Proof of Theorem 4*

*
We assume the leaf nodes number of the frozen node is ; that is, . If , based on (25), there is
where . Based on the above equations, we have
*

*Therefore, by the mathematical inducing, when , we will have
where .*

*To prove Theorem 4, we assume that the values of all the nodes in are set to 0 without generality. That is to say, when the node is right, there is . Hence, based on the above equation, when the probability messages of do not satisfy the reliability condition, that is, , there must exist a subset , and is an odd number, such that
While if , there must exist a subset , and is an even number, such that
So the proof of Theorem 4 is completed.*

*C. Proof of Theorem 9*

*C. Proof of Theorem 9*

*
It is noticed from (1) that the coefficient vector of error-checking equation generated by the frozen nodes in the leftmost column is equal to one column vector of , denoted as , . For example, the coefficient vector of error-checking equation generated by is equal to . Hence, based on the proof of Theorem 1, we have
*

*In view of the process of polar encoding, we can find that the frozen nodes in the intermediate column are generated by the linear transformation of the frozen nodes in the leftmost column. That is to say, error-checking equation generated by the frozen nodes in the intermediate column can be linear expressed by the error-checking equation generated by the frozen nodes in the leftmost column. Hence, we further have
*

*Therefore, the proof of (17) is completed.*

*D. Proof of Theorem 11*

*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 , such that
where is an input node and is the input nodes set of the decoder. That is to say, for a frozen node with a leaf nodes set , we have
*

*Based on (25) and the decoding tree of , we have the probability messages of as
where . Hence, we further have
*

*With definition of variables , , , , the above equation will be written as
*

*To take the derivative of , we further define functions as
Then, the derivative of with respect to will be
where and . Based on solution of the equations , , and , we get the extreme value point of as . Based on the analysis of the monotonicity of , we can get the maximum value as . What is more, we can also get that when , there is , ,, and . That is to say, when , we will have , , and ; that is, there is no error in . So the proof of Theorem 11 is completed.*

*Conflict of Interests*

*Conflict of Interests*

*The authors declare that they do not have any commercial or associative interests that represent a conflict of interests in connection with the work submitted.*

*Acknowledgment*

*Acknowledgment*

*The authors would like to thank all the reviewers for their comments and suggestions.*

*References*

*References*

- E. Arikan, “Channel polarization: a method for constructing capacity-achieving codes for symmetric binary-input memoryless channels,”
*IEEE Transactions on Information Theory*, vol. 55, no. 7, pp. 3051–3073, 2009. View at Publisher · View at Google Scholar · View at MathSciNet · View at Scopus - E. Arikan and E. Telatar, “On the rate of channel polarization,” in
*Proceedings of the IEEE International Symposium on Information Theory (ISIT '09)*, pp. 1493–1495, June-July 2009. View at Publisher · View at Google Scholar · View at Scopus - S. B. Korada, E. Şaşoğlu, and R. Urbanke, “Polar codes: characterization of exponent, bounds, and constructions,”
*IEEE Transactions on Information Theory*, vol. 56, no. 12, pp. 6253–6264, 2010. View at Publisher · View at Google Scholar · View at MathSciNet · View at Scopus - I. Tal and A. Vardy, “List decoding of polar codes,” in
*Proceedings of the IEEE International Symposium on Information Theory Proceedings (ISIT '11)*, pp. 1–5, St. Petersburg, Russia, August 2011. View at Publisher · View at Google Scholar · View at Scopus - I. Tal and A. Vardy, “List decoding of polar codes,” http://arxiv.org/abs/1206.0050.
- K. Chen, K. Niu, and J.-R. Lin, “Improved successive cancellation decoding of polar codes,”
*IEEE Transactions on Communications*, vol. 61, no. 8, pp. 3100–3107, 2013. View at Publisher · View at Google Scholar · View at Scopus - K. Niu and K. Chen, “CRC-aided decoding of polar codes,”
*IEEE Communications Letters*, vol. 16, no. 10, pp. 1668–1671, 2012. View at Publisher · View at Google Scholar · View at Scopus - A. Alamdar-Yazdi and F. R. Kschischang, “A simplified successive-cancellation decoder for polar codes,”
*IEEE Communications Letters*, vol. 15, no. 12, pp. 1378–1380, 2011. View at Publisher · View at Google Scholar · View at Scopus - G. Sarkis and W. J. Gross, “Increasing the throughput of polar decoders,”
*IEEE Communications Letters*, vol. 17, no. 4, pp. 725–728, 2013. View at Publisher · View at Google Scholar · View at Scopus - G. Sarkis, P. Giard, A. Vardy, C. Thibeault, and W. J. Gross, “Fast polar decoders: algorithm and implementation,”
*IEEE Journal on Selected Areas in Communications*, vol. 32, no. 5, pp. 946–957, 2014. View at Publisher · View at Google Scholar - P. Giard, G. Sarkis, C. Thibeault, and W. J. Gross, “A fast software polar decoder,” http://arxiv.org/abs/1306.6311.
- E. Arikan, H. Kim, G. Markarian, U. Özür, and E. Poyraz, “Performance of short polar codes under ML decoding,” in
*Proceedings of the ICT-Mobile Summit Conference*, June 2009. - S. Kahraman and M. E. Çelebi, “Code based efficient maximum-likelihood decoding of short polar codes,” in
*Proceedings of the IEEE International Symposium on Information Theory (ISIT '12)*, pp. 1967–1971, Cambridge, Mass, USA, July 2012. View at Publisher · View at Google Scholar · View at Scopus - N. Goela, S. B. Korada, and M. Gastpar, “On LP decoding of polar codes,” in
*Proceedings of the IEEE Information Theory Workshop (ITW '10)*, pp. 1–5, Dublin, Ireland, September 2010. View at Publisher · View at Google Scholar · View at Scopus - E. Arikan, “A performance comparison of polar codes and reed-muller codes,”
*IEEE Communications Letters*, vol. 12, no. 6, pp. 447–449, 2008. View at Publisher · View at Google Scholar · View at Scopus - N. Hussami, S. B. Korada, and R. Urbanke, “Performance of polar codes for channel and source coding,” in
*Proceedings of the IEEE International Symposium on Information Theory (ISIT '09)*, pp. 1488–1492, July 2009. View at Publisher · View at Google Scholar · View at Scopus - E. Arikan, “Polar codes: a pipelined implementation,” in
*Proceedings of the 4th International Symposium on Broadband Communication (ISBC '10)*, pp. 11–14, July 2010. - A. Eslami and H. Pishro-Nik, “On bit error rate performance of polar codes in finite regime,” in
*Proceedings of the 48th Annual Allerton Conference on Communication, Control, and Computing (Allerton '10)*, pp. 188–194, October 2010. View at Publisher · View at Google Scholar · View at Scopus - A. Eslami and H. Pishro-Nik, “On finite-length performance of polar codes: stopping sets, error floor, and concatenated design,”
*IEEE Transactions on Communications*, vol. 61, no. 3, pp. 919–929, 2013. View at Publisher · View at Google Scholar - E. Arikan, “Systematic polar coding,”
*IEEE Communications Letters*, vol. 15, no. 8, pp. 860–862, 2011. View at Publisher · View at Google Scholar · View at Scopus - J. L. Massey, “Catastrophic error-propagation in convolutional codes,” in
*Proceedings of the 11th Midwest Symposium on Circuit Theory*, pp. 583–587, January 1968. - R. G. Gallager, “Low-density parity-check codes,”
*IEEE Transactions on Information Theory*, vol. 8, pp. 21–28, 1962. View at Google Scholar · View at MathSciNet - D. Divsalar and C. Jones, “CTH08-4: protograph LDPC codes with node degrees at least 3,” in
*Proceedings of the IEEE Global Telecommunications Conference (GLOBECOM '06)*, pp. 1–5, San Francisco, Calif, USA, December 2006. View at Publisher · View at Google Scholar · View at Scopus

*
*