Belief Propagation List Ordered Statistics Decoding of Polar Codes

It is shown how to combine ordered statistics decoding (OSD) with CRC-aided belief propagation list (CBPL) decoding of polar codes. Even when the reprocessing order of the OSD is as low as one, the new decoder is shown to significantly improve on CBPL. For reprocessing orders higher than one, we suggest partial reprocessing, where only error patterns associated with the least reliable part of the belief propagation decoded most reliable independent bits are considered. This type of partial reprocessing offers a trade-off between performance and computational complexity.


I. INTRODUCTION
The performance of polar codes [1] under successive cancellation (SC) decoding can be significantly improved by concatenating the polar code with a high rate cyclic redundancy check (CRC) code and using CRC-aided successive cancellation list (CA-SCL) decoding [2]. However, the SCL decoder suffers from high decoding latency due to its serial nature. Various modifications and improvements to SC and SCL have been suggested to address this problem, e.g. [3]- [14].
In [15] it was shown that belief propagation (BP) decoding over the code's factor graph (FG) can be used to improve upon the SC decoder. Efficient implementations, improvements and extensions of BP decoding for polar codes were suggested in [16]- [29]. In particular, it was suggested to implement a BP list (BPL) decoder [23] that applies BP decoding on different permutations of the polar FG layers [30] in parallel. It was also suggested to apply BP decoding over a concatenation of the CRC and polar FGs [21], [25]. Yet, even when combining these ideas, the resulting CRC-aided BPL (CBPL) decoder [25] has a higher error rate compared to CA-SCL.
Another family of decoders for polar codes are based on ordered statistics decoding (OSD) [31]. This approach was used in [32], [33], in which OSD was either applied directly on the channel output, or combined with CA-SCL or SC. Ordered statistics decoding and its box and match variant were also proposed in [34]- [38] for polar and polarlike codes when viewed as a generalized concatenated code [39]. However, the required reprocessing order is typically large. Even though there are known methods for improving the complexity-performance trade-off of OSD [40]- [45], the computational complexity may still be prohibitive.
In the context of OSD decoding of low-density parity-check (LDPC) codes it was suggested [46] to combine BP and OSD decoding by using the soft decoded BP output to rank the code bits rather than using the uncoded information as in plain OSD. In this paper, we start by adapting the approach in [46] to CBPL decoding of polar codes. We apply OSD reprocessing of order one using the soft decoding output of each of the parallel CBP decoders in CBPL. Our simulations show that even OSD with reprocessing order as low as one can significantly decrease the error rate of CBPL, and bring it closer to that of CA-SCL for a relatively small permutation list size. For reprocessing orders higher than one, we suggest partial reprocessing, where only error patterns associated with the least reliable part of the belief propagation decoded most reliable independent bits are considered. This type of partial reprocessing offers a trade-off between performance and computational complexity. We demonstrate that partial order-2 reprocessing, incorporating only the least reliable half (or even less) of the total number of pairs of most reliable independent bits, results in an error-rate similar to that of full reprocessing.

A. CRC augmented polar codes
Consider the N × N binary matrix: where F ⊗n is the n-fold Kronecker product of the standard polarization kernel F = 1 0 1 1 and n = log 2 N . Denote by A the length K information set of a length N polar code, P(N, K).
Denote the matrix composed of the rows of G N , corresponding to the elements of A, by G N (A). The polar code, P(N, K), is a linear binary block code with generator matrix G N (A) and code dimension K. Encoding a message vector u A of length K with the generator matrix G N (A) (using u A G N (A)) is equivalent to encoding the vector u with generator matrix G N (using uG N ), where u is a vector of length N with message bits u A and with u A c = 0 (i.e., we assume that the frozen bits are all zeros).
Also consider a CRC code which appends r CRC bits to binary vectors of length m. This code can be represented as a linear binary block code with code rate R crc = m/(m + r), a systematic generator matrix G crc of dimensions m × (m + r), and a parity-check matrix (PCM) H crc with r parity check constraints.
For the polar code and CRC code described above, the corresponding CRC-augmented polar code is the linear binary block code of length N , dimension m and generator matrix G aug = G crc G N (A). Note that we set K = m + r, and that the overall code rate is R = m/N .
In our setup, a message word of length m is encoded into a codeword x = (x 1 , . . . , x N ) of length N using G aug , which is then BPSK-modulated and sent across a binary input additive white Gaussian noise channel (BIAWGNC) with noise Z ∼ N (0, N 0 /2), so that the channel output is given by, The log likelihood ratios (LLRs) of the codeword's bits, ch i , based on the respective channel output, y i , are given by for i = 1, . . . , N , where σ 2 = N 0 /2.

B. CRC-aided belief propogation list decoding
In [15] it was suggested to apply BP decoding on the FG representing the encoding with the generator matrix in (1). This FG is shown in Fig. 1. The BP decoder can be implemented in parallel, thus reducing the latency and increasing the throughput of the decoder compared to SC and SCL decoding. The BP uses left and right-propagating messages over the x 4 x 5 x 6 x 7  edges of the FG. Denote by L t i,l (R t i,l , respectively) the leftpropagating (right-propagating) message out of (into) variable node i in the l'th FG layer at iteration t, for 0 ≤ l ≤ n and 1 ≤ i ≤ N . An iteration of BP consists of a right-toleft message propagation, in which messages are sent from the right-most layer of the FG to the left-most layer, followed by a similar left-to-right propagation of messages. The leftmost (right-most, respectively) layer represents the LLRs of the message and frozen bits (codeword bits). The initialization of the messages (at iteration t = 0) is, The detailed iterative message passing equations are provided in [15].
To reduce the error-rate, it was suggested to perform the message passing on the concatenation of the CRC FG, represented by the PCM H crc , and the polar FG. An example is shown in Fig. 1. As stated in [21], for this concatenation to be beneficial in terms of error-rate performance, the messages must first evolve through I thr iterations on the polar FG alone, so that the information layer LLRs will become reliable enough. The BP iterations are performed until either a predetermined maximum number of iterations I max have been reached, or until a certain stopping condition has been met. Following [19], [20], in our implementation we stop iterating if the following two conditions are satisfied. The first condition isx =û · G N whereû andx are the hard-decisions of the information LLRs and codeword LLRs, respectively. The second condition is thatû A satisfies the CRC constraints (û A H T crc = 0). To further reduce the error-rate, we can perform CBP on a list of L layer-permuted polar FGs [22], [23], [30], thus obtaining the CRC-aided BP List (CBPL) decoder [25]. The estimated codeword is the CBP outputx with BPSK representation closest, in Euclidean distance, to the channel output, y, out of all the outputs that are valid codewords (namely, the outputs of the CBP instances in which the stopping condition was met). To simplify the implementation, instead of using different polar FGs in the CBP realizations, we may permute their inputs and outputs [24].

C. Ordered statistics decoding
Ordered statistics decoding (OSD) [31] is a general method for decoding a linear binary block code. Consider a linear binary block code of blocklength N and K information bits transmitted over the BIAWGNC (2). The code is represented by a K ×N full row rank generator matrix, G. The OSD algorithm consists of two main parts [31]: Finding the most reliable independent basis (MRIB) from the columns of G with respect to the values in = ch (computed from the channel output y according to (3)), and a reprocessing stage. The MRIB is a set of K columns from G, which correspond to the indices in that contain the most reliable LLRs (LLRs with highest absolute values) under the constraint that these columns are linearly independent (over GF (2)). The process of finding the MRIB is described in detail in [31]. It starts by sorting the absolute values of the components of in decreasing order. We then apply the same ordering (permutation) on the columns of G. Following that, we use Gaussian elimination conducted on the above mentioned permuted G in order to find the first K positions of linearly independent columns, which serve as the MRIB. In the end of the process, we have a new matrix, G, which is an equivalent representation of the code up to some permutation, λ, of the code bits. The first K columns of G are the MRIB columns of G with respect to . The above mentioned Gaussian elimination is implemented such thatG is represented in a systematic form, i.e.
where I K is the K×K identity matrix, and A is a K×(N −K) matrix. Denote by˜ = λ( ) the permutation of the LLRs vector, , using the same permutation λ. The first K values in˜ (which are the most reliable LLRs) can be used to obtain an initial estimate to the information vectorv = (v 1 , · · · ,v K ) (corresponding to the systematic generator matrixG), by using hard decisions:v for 1 ≤ i ≤ K. We can now start the reprocessing stage of the OSD algorithm. For each 0 ≤ i ≤ q, flip all possible combinations of i bits inv, i.e., considerv ⊕ e (⊕ is the bit-wise XOR operator) for all error patterns e of Hamming weight at most q (the total number of error patterns is q i=0 K i ). For each error pattern, e, re-encodev ⊕ e using G, and calculate the Euclidean distance between the BPSK representation of the resulting codeword and the permuted channel output vector,ỹ = λ(y). Keep track of the distances, so that after all possible error patterns of Hamming weight at most q have been tested, select the (permuted) codeword with minimum distance fromỹ, and inversely permute it by λ −1 to obtain the OSD(q) estimate of the transmitted codeword.

III. INCLUSION OF OSD IN CBPL DECODING
In order to implement OSD decoding efficiently for LDPC codes, it was proposed [46] to determine from the soft output of a preliminary BP decoder, rather than using = ch . This is usually advantageous, since it will make the LLRs in more reliable (more LLRs will have the correct sign).
We assume the setup described in Section II, where a codeword x from a CRC-augmented polar code of length N = 2 n and with generator matrix G aug is transmitted over the BIAWGNC, resulting in a channel output y. Our suggestion for further improving the error performance of CBPL decoding is to perform OSD(q) on the soft output of each of the L CBP instances running in parallel, as depicted in Fig. 2 for q = 1. We denote this decoder with reprocessing order 1 by CBPLOSD (1). Interestingly, as we report later on, even for q = 1 we obtain a substantial improvement on the performance of the CBPL algorithm. On the other hand, plain OSD decoding requires much higher values of q to reach the same performance, with a much higher total number of operations. A further improvement is obtained by using CBPLOSD(2). This is considered in Section IV. x (2) x(L) Fig. 2. The CBPLOSD(1) scheme. The permutation set is S = {π j } L j=1 , and CBP(π j ) denotes CBP with a polar FG layer permutation π j .
In Fig. 2, the channel output y is the input to L parallel CBP decoders with different polar FG layer permutations. After meeting the stopping criterion (from section II-B) or completing the maximum number of iterations, I max , in the j-th CBP decoder, j = 1, . . . , L, we apply OSD(1) decoding using its soft output LLR vector, (j), which contains the decoded LLRs of the codeword bits. The OSD(1) routine at the j'th branch, uses this soft output, along with y and G aug as input, and outputs a codeword estimatex(j). Note that an output of OSD is always a valid codeword. Thus, we simply choose the codeword estimate,x(f ), with BPSK representation closest to y as the final output of the decoder, The reprocessing part of the OSD(1) decoder can be implemented efficiently as follows. Denote byG aug the permuted systematic generator matrix obtained from G aug in the first stage of OSD described above (finding the MRIB). Denotê v 0 ∆ =v wherev is obtained from the LLRs of the bits corresponding to the MRIB as in (4). Also, is the information vector after flipping the i'th bit inv. The corresponding (permuted) codeword iŝ Denote by g 0 ∆ = (0, . . . , 0), and by g i , the i'th row ofG aug , i = 1, . . . , K. In order to calculatex i for each 0 ≤ i ≤ K efficiently, we can use the relation Furthermore, it can be easily verified that The decoder outputs λ −1 (x i0 ). Using the right-hand-side (RHS) of (5), the reprocessing, which can be implemented in parallel, requires (N − 1)(K + 1) additions / subtractions. The Gaussian elimination over GF(2) required in the first stage of OSD can also be implemented in parallel in hardware [47].
IV. PARTIAL HIGHER ORDER OSD REPROCESSING So far we have focused on CBPLOSD(1), as it has the lowest computational complexity. Yet, a lower error rate may be achieved by using CBPLOSD(q) for q > 1. In this section, we propose approximating higher order reprocessing by performing it only on the bits that are associated with the least reliable LLRs. We demonstrate this approximation for CBPLOSD (2), and show that it can be used to achieve almost the same performance as that of regular CBPLOSD(2), while cutting back half or more of the reprocessing complexity.
Recall the information vectorv from (4) and the systematic K × N generator matrixG =G aug , where g i denotes its i'th row. Also recall the vector s from (5). Let us further denote byv (i,j) the resulting information vector after flipping the i'th and j'th bits inv, and its corresponding codeword bŷ The main bottleneck of order-2 reprocessing is the search for the codewordx (i,j) with BPSK closest to the permuted channel outputỹ in terms of Euclidean distance, To determine the final OSD(2) estimate, the result of the search (6) needs to be compared to the OSD(1) estimate in (5) by minimum Euclidean distance toỹ. In (6) we search over K 2 = [K(K − 1)]/2 pairs of indices (i, j). Similarly to (5), we have the following relation, Using the RHS of (7), the complexity of this search, and thus of order-2 reprocessing, is about N K 2 /2 additions. The RHS of (7) can be expressed using matrix multiplication (that only requires additions / subtractions, and can be implemented efficiently in parallel) as follows. First define a K × N matrix A such that the i'th row, i = 1, . . . , K, of A is s · (−1) g i (element-wise multiplication and exponentiation). Next, define an N × K matrix B such that the j'th column, j = 1, . . . , K, of B is (−1) g j . Finally define the K × K matrix C by Then the RHS of (7) can be written as A similar formulation using matrix multiplication applies to the partial reprocessing method that we now suggest. Recall the permuted LLRs (˜ 1 , . . . ,˜ K ), corresponding to the MRIB, defined in Section II-C. To reduce the complexity we propose the following approximation to the search in (7). For any integer M < [K(K − 1)]/2, we perform this search only on the M pairs of indices (i, j) with the lowest values of |˜ i | + |˜ j |. Namely, we flip the M pairs of bits inv which are associated with the least reliable LLRs (LLRs with the lowest absolute values), and enumerate the M resulting codewords using the RHS of (7). Since |˜ i | > |˜ j | for 1 ≤ i < j ≤ K, this is implemented by enumerating over the indices (i, j) during reprocessing in the following decreasing order: i = K −1, K −2, . . . in the outer loop and j = K, K −1, . . . , i+1 in the inner loop, until we have exhausted M such pairs. This approximation can be straightforwardly extended for higher orders. In the case of order 2, it reduces the complexity of the search over the pairs from about N K 2 /2 to about N M .

V. SIMULATION RESULTS
In this section we present decoding results for two CRCaugmented polar codes of rate R = 0.5 with blocklengths N = 256 and N = 512. The CRC generator polynomial for both codes is the 5G standardized 6-bit polynomial g 6 (x) = x 6 +x 5 +1. All the CBP decoders were set to use I max = 100, I thr = 50, and a total of L = 6 such decoders for CBPL were used, with their input / layer permutations corresponding to all the 3! = 6 possible permutations of the 3 right-most layers of the polar FG. The CA-SCL list size was also 6.
A. CBPOSD(1) and CBPLOSD (1) In Fig. 3 we compare the performances of plain OSD, CBP, CBPOSD(1), CBPL, CBPLOSD(1) and CA-SCL for the code with blocklength N = 256. In Fig. 4 we repeat this comparison for the other code with N = 512. As can be seen, in the high SNR range, the gain in E b /N 0 attributed to the inclusion of OSD(1) in CBPL is around 0.5dB for the N = 256 code and 0.4dB for the N = 512 code. When no permutations are used (L = 1), incorporating OSD(1) in CBP provides a 0.3dB gain in the high SNR range for both codes. Both figures demonstrate that even for a relatively small permutation list size (L = 6), the performance of CBPOSD(1) comes close to that of CA-SCL with a similar list size. On the other hand, plain OSD requires a much larger reprocessing order to match the performances of CBPLOSD(1) and CA-SCL.

B. Partial order-2 reprocessing
In Fig. 5 we compare plain CBPLOSD(2), in terms of error performance, to CBPLOSD decoders in which the search in (7) was conducted only on a portion of the least reliable bits, using the CRC-augmented polar code with blocklength N = 256. We refer to the CBPLOSD decoder in which the partial order 2 reprocessing takes into account only α · RN 2 of the least reliable pairs (0 < α < 1) by P-CBPLOSD(2, α).
We notice that CBPLOSD (2) shows a gain of about 0.2-0.3dB in E b /N 0 over CBPLOSD(1) in the simulated range. For the decoders with partial reprocessing, even when we go over only 1/8 of the least reliable pairs (and, as a result, reduce the decoding complexity by about 8), the performance degradation, compared to full order-2 reprocessing, is about 0.1dB or less in this example. This degradation can be mitigated by a small amount by going over 1/4 or 1/2 of the least reliable pairs instead, and the resulting performance comes close to that of full order-2 reprocessing.
Similar observations can be seen in Fig. 6 for the second code with N = 512.

VI. CONCLUSIONS
We have shown how to combine OSD with CBPL decoding of polar codes. Even when the reprocessing order of the OSD was as low as one, the new decoder was shown to improve on CBPL in terms of the error performance by 0.4-0.5dB in the high SNR region, for the two CRC-augmented polar codes considered. Additional gain can be obtained by increasing the OSD reprocessing order to two. Partial reprocessing, carried out only on the least reliable belief propagation decoded pairs of MRIB bits, can reduce the computational complexity of plain order-2 reprocessing by a significant amount, at the expense of a relatively small performance degradation.