1. Introduction
Polar code is the first error-correcting code [
1] which has achieved the Shannon limit. It has been adopted as the fifth generation (5G) wireless communications standard [
2]. Not only does it have a strong error correction capability, but its encoding and decoding complexity is also affordable compared with the Low Density Parity Check (LDPC) [
3] and Turbo codes [
4].
The Successive Cancellation (SC) algorithm, which was proposed by Arıkan [
5], is one of the most common decoding methods for polar codes and has attracted widespread attention. The original SC algorithm has been optimized by the relevant scholars, producing optimizations such as the SC list (SCL) [
6], SC flip (SCF) [
7] and dynamic SC flipping (DSCF) [
8] algorithms. The Cyclic redundancy check (CRC)-aided SC list (CA-SCL) [
9] decoder was introduced to improve the BLER of polar codes and has become a baseline algorithm used in the standardization process. Compared with the SC and its other optimized algorithms, the Belief Propagation (BP) algorithm [
10] with parallel decoding has great advantages in terms of its throughput and decoding latency. In addition, BP decoding is expected to support polar codes of 5G standard in practical applications with a set of hardware units. However, the BP decoder will not terminate until the maximum number, the termination scheme suffers from lack of flexibility, and introduces great computational complexity. Moreover, the BLER performance of BP is uncompetitive.
To improve the original BP decoding performance, many methods to improve the BP-based algorithm have been proposed—for example, the BP list (BPL) [
11] decoder. When using the standard polar code decoding factor graph (DFG), the original BP algorithm may generate incorrect decoding results because the transmission process of the messages is modified. However, the BPL decoder uses the permuted version of the standard graph and can produce the correct estimation result. A permuted factor graph is introduced in [
12,
13] based on the BPL decoder. The guessing algorithm [
14] was first proposed in the LDPC codes and then introduced to the BP decoding, which guesses the oscillating bits by assigning the priority log-likelihood ratios (LLRs), the maximum LLR magnitude, and repeating the original BP decoding to achieve good decoding results. The BP Bit-Flip (BPF) [
15] algorithm, which is different from other BP-based evolutionary algorithms, utilizes the information in the decoding process to make it more targeted to the codeword being decoded.
BP flipping algorithms identify and then flip error-prone positions to improve decoding performance. For polar codes, bit-flipping strategies have been applied to both SC and BP decoding. However, the principles of flipping strategies on SC and BP decoding are different due to their different decoding schedules. The key to the BP flipping algorithm is to construct a flip set (FS), which consists of the error-prone bits. FS can accurately indicate the error bits, thus flipping the bits within FS can narrow the search space. Initially, the FS was constructed in SC [
7], which proposed a progressive multi-bit-flipping algorithm. Under the Gaussian approximation (GA) construction, it was generated according to the Rate-1 nodes called the critical set (CS). The bits identified in the CS may exhibit a high possibility of error in the BP decoding. Thus, the CS is introduced to BP and the constructed CS with order
T (CS-
T) [
15], where
T denotes the size of the CS. By analyzing the behavior of the incorrect decoding results of the bit-flipping BP decoder with CS, a BP decoder with multiple bit-flipping sets (BFSs) and stopping criteria (BP-MF-MC) was proposed [
16]. The CS is relatively static and the multiple BPSs have more complexity, so the Generalized BP Bit-flipping (GBPF) Decoder [
17] with a redefinition of BP bit-flipping was proposed. The error-prone bits in the FS consist of the unfrozen bits with small LLR magnitudes from the outputs, which contribute to a better performance. Subsequently, the GBPF decoding was extended to a higher-order GBPF algorithm (GBPF-
) [
18], where the maximum bit-flipping order is
. To narrow the BLER performance gap between BP-based decoders and CA-SCL decoder, the bit-flip method was also introduced into the BPL decoder and the noise-aided BPL (NA-BPL) decoder [
19] was proposed. Above all, although flipping error-prone positions after the failure of the first decoding trail will improve the performance of BP-based decoder, the characteristics of the bits in FS are selected to be flipped in turn and many of them have no contribution to correcting the error frame, which will result in a huge amount of invalid repeated decoding attempts, giving rise to more latency.
This paper aims to reduce the number of decoding attempts in the BP flipping algorithms. The main contributions are summarized as follows:
A stepping strategy is proposed. We first analyze the behavior of FS and find that only a few bits in the FS could correct the error frame. Therefore, a concept to evaluate the likelihood of bits correcting the trajectory of BP decoding is presented to judge whether the bits in FS should be flipped or not. The judgement condition determines whether flipping the bits in the FS is helpful in correcting error frames.
Based on the stepping strategy, an optimization algorithm for the BP flipping algorithm, the BP step-flipping (BPSF) algorithm, is proposed. The algorithm flips only unreliable bits in FS and steps reliable bits to shrink the number of flipping attempts necessary. Similarly, the stepping strategy is also added into the GBPF-
algorithm [
17,
18] to reduce the number of flipping attempts.
In addition, we notice that some effective flipping bits may be skipped over when the LLR magnitude is small. We further propose the enhanced BPSF- (EBPSF-) algorithm, which adopts a threshold to identify the unreliable bits and lowers the block error rate (BLER). The numerical results obtained indicate that the average number of iterations can be significantly reduced for the EBPSF-1 and EBPSF-2 algorithms at the low , compared with the BPF-1 and BPF-2 flipping algorithms when the code length is 256.
The remainder of this paper is organized as follows.
Section 2 reviews the polar code, the original BP algorithm, and the BP flipping algorithm. The BPSF-
algorithm with a threshold is proposed in
Section 3.
Section 4 analyzes the decoding performance. Conclusions are drawn in
Section 5.
2. Preliminary
In this paper, we use calligraphic characters, such as , to denote sets. We write r, , and to denote a scalar, a vector, and a matrix, respectively. In this section, we first describe the polar codes. Then, we briefly introduce the original BP algorithm. Finally, the BP flipping algorithm is presented.
2.1. Polar Code
After channel combining and channel splitting,
N independent copies of binary-input discrete memoryless channels are converted to
N split channels with different capacities [
18]. Some of these have a high channel capacity, which means that the channel is more reliable for transmitting information, and some of them have a low capacity. Polar codes use high-capacity channels to transmit information bits and CRC bits, and the rest of the channels are used to transmit frozen bits. In this paper, the frozen bits are fixed to zero.
Polar code can be represented as
P (
N,
K), where
N is the code length of the polar code and
K represents the length of the information bits. Meanwhile,
represents the length of frozen bits. The code rate is
R =
. The
K information bits comprise
-bit data and
r-bit CRC. The set of information bits and frozen bits are denoted as
and
, respectively. The encoding process can be expressed as
where
=
represents the codeword and
=
denotes the source vector which is mixed with the information bits
and the frozen bits
. The generator matrix is represented as
=
, where
is the bit-reversal permutation matrix [
20], and
denotes the
n-th Kronecker power of
and
The BP decoding is initiated from the received value
=
. The decoder generates an estimation
of
based on the received
as
A binary input memoryless channel
generates
N sub-channels by channel splitting, defining
,
i =
1,
2, …,
N. Let the LLR of
be defined as
2.2. Original BP Decoding Algorithm
The BP algorithm for polar codes is based on a DFG. A polar code with code length
N is represented by an
n-stage DFG. We use (
i,
j) to indicate the nodes of the DFG, where
i indicates node index and
j indicates column index. The leftmost nodes in the DFG mean
j = 0, such as the blue and black nodes in the
Figure 1. Similarly, the rightmost nodes in the DFG mean
j =
n, as shown in the grey node column.
The classic BP DFG is depicted in
Figure 1. Each stage consists of
processing elements (PE), where a fundamental PE is shown in
Figure 2.
Figure 1 consists of three stages and each stage has four PEs. One PE has four nodes and each node is associated with two types of messages, a right-to-left message
and a left-to-right message
.
and
are in the form of LLR. The message propagation rules are as follows:
where
where
= 0.9375 follows from the scaling factor used in [
21].
and
need to be initialized as follows
where
denotes the LLR of the
j-th received bit. The
in the first column of
indicates the prior knowledge carried by the frozen bits.
The maximum number of iterations
is preset, and the decoding is terminated when the number of iterations is equal to
or when the CRC check is satisfied. The hard decisions of
and
are estimated as
2.3. BP Flipping Decoding Algorithm
The bit-flipping strategy is a feasible method with which to improve the performance of BP-based algorithms. Due to the parallelism of BP decoding, there may be more than one bit that could correct the error frame by flipping it. Not only can the real error bits correct the error frames, but there are still other bits that can correct the error frames in the process of the iterative computation of the DFG [
18]. However, there exist more bits that provide no assistance in error frame correction, and the invalid flipping of these will cause much latency. Therefore, the study of the strategy used for locating the flipping bits which can effectively correct the error frames is essential.
Initially, the CS is used to identify unreliable bits in the SC flipping decoder, which is composed of the first bit index of each Rate-1 node [
15]. As shown in
Figure 3, blue nodes are referred to as Rate-1 nodes because all the leaf nodes are information bits, white node means that all its leaf nodes are frozen bits and grey node denotes that its leaf nodes include both information and frozen bits. In
Figure 3, CS = {8,10,11,13} is shown as striped blue nodes. It can be noticed that the size and elements of CS are fixed for a certain polar code, which means that CS is static in decoding. Because of this characteristic, no latency will be caused by FS construction. The BPF algorithm [
15] employs CS in bit-flipping and the flipping operation is as follows
For the GBPF decoding [
17,
18] algorithm, the FS is constructed dynamically with the smallest LLR magnitude. A sorting network is required to select information bits to constitute the FS,
=
, where
denotes the length of the FS. Before the next-round of BP decoding attempts, the FS is generated by the smallest LLR magnitude and the bit-flipping operation is performed with the FS. The rule used to generate the FS is defined by
Specifically, the GBPF flipping operation can be written as
The oracle-assisted BP (OA-BP) decoder [
18] knows which bit estimates make the frame mistakes after the original BP decoding and then re-decodes the incorrect frame by flipping the erroneous bit in turn into the correct value. The incorrect codeword set can be expressed as
=
, where
is the count of erroneous bits.
The differences between BPF algorithms are how to choose the flipping set. The BPF algorithm generates CS before decoding with Rate-1 nodes and stays static in decoding. The GBPF algorithm generates FS dynamically in decoding, which will lead to extra costs of sorting the LLR magnitude in generating FS. However, the GBPF algorithm also provides greater possibility of error-correction by setting larger sizes of FS. The generalized procedure for BPF-1 algorithm [
15] and GBPF-1 algorithm [
17] can be summarized as Algorithm 1.
Algorithm 1 BP flipping algorithm. |
- 1:
Input: , , - 2:
Output: - 3:
BP ; - 4:
if CRC() fail - 5:
for 1 to do - 6:
BP ; - 7:
if CRC () succeed - 8:
break; - 9:
end if - 10:
end for - 11:
end if - 12:
return
|
The bits needing to be flipped by the BP flipping algorithms are listed in
Table 1. The BPF algorithm has a significantly higher number of flipping bits than the GBPF algorithm. The BLER performance and the average number of iterations for the existing algorithms are shown in
Figure 4. It can be seen that the BLER performance of the BPF-
and GBPF-
algorithms is competitive. However, the average number of iterations for the BPF and GBPF algorithms increases exponentially with the rise of
. The average number of iterations of the BPF-2 algorithm is more than two thousand at
= 1. Therefore, we propose a step-flipping strategy to reduce the average number of iterations in
Section 3.
4. Numerical Results
In this section, we compare the proposed step-flipping algorithm and the existing flipping algorithm in terms of
the average number of iterations, and the BLER with different code lengths. Simulations are performed with additive white Gaussian noise (AWGN) channel and binary-phase shift keying (BPSK) modulation. The additional simulation parameters are listed in
Table 4. The simulations for the (256, 128), (512, 256), and (1024, 512) polar codes are concatenated with 24-bit CRC and for (64, 32) polar codes with 11-bit CRC. The
m CRC bits are attached to the information block, where
m is the CRC remainder length, and all the
K bits are sent into the error-correcting encoders.
4.1. Analysis of the Threshold
To verify the effectiveness of the threshold
, the BLERs of the BPSF-1, EBPSF-1, GBPSF-1 and EGBPSF-1 algorithms with different threshold
are compared in
Figure 8. Additionally, the GBPF-1 and BPF-1 algorithms are provided as references.
With the assistance of
, the EBPSF-1 algorithm outperforms the BPSF-1 algorithm in BLER under the same parameters for both
in
Figure 8a and
in
Figure 8b. For
= 0.5 and
= 1 when
and
T = 128, the EBPSF-1 algorithm achieves 0.09 dB and 0.13 dB gain with the BPSF-1 algorithm at BLER =
, respectively. Furthermore, for
= 1 and
= 10 when
and
T = 116, the EBPSF-1 algorithm obtain the gain of 0.04 dB and 0.23 dB for BLER =
compared with the BPSF-1 algorithm. Therefore, the EBPSF-1 algorithm has more accuracy in locating the reliable bits among the CS-
T. With the increase of
, the BLER performance of the EBPSF algorithm is continuously optimized, but the average number of iterations also increases. Therefore choosing a proper
is essential to optimizing the BLER performance and can lead to a negligible increase in the average number of iterations.
4.2. Analysis of the Average Number of Iterations
The stepping strategy is used to skip some bits in FS. Thus, the number of flippings is smaller than the original flipping algorithm without the stepping strategy. To verify this point, some simulations are performed.
Figure 9 and
Figure 10 compare the average number of iterations among the BPF-
, GBPF-
, EBPSF-
and EGBPSF-
algorithms. The average number of iterations for the EBPSF-
algorithm is lower than the BPF-
algorithm, while the EGBPSF-
algorithm is lower than that of the GBPF-
algorithm. That’s because the step-flipping strategy applied in the EBPSF-
and EGBPSF-
algorithms reduces flipping attempts by skipping the reliable flipping bits.
It can be observed from
Figure 9 and
Figure 10 that there is a significant decrease in the average number of iterations when applying the step-flipping strategy. At high
, the EBPSF-
(
T = 256) algorithm is close to the BPF-
(
T = 39) algorithm in the average number of iterations. For
T = 39, the EBPSF-1 (
= 1) algorithm reduces the average number of iterations by 14.1% and 62.2% at 1.5 dB compared with the GBPF-1 and BPF-1 algorithms, respectively. In comparison with the GBPF-1 algorithms, the EGBPSF-1 (
= 116,
= 0) algorithm reduces the average number of iterations by 16.28% at 1.5 dB.
Similarly, for the two-bit flipping, the average number of iterations is shown in
Figure 10. Under the same
T, the average number of iterations for the EBPSF-2 algorithm is significantly lower than that for the BPF-2 and GBPF-2 algorithms. In the case of 0 dB and
T = 12, the EBPSF-2 algorithm is inferior to BPF-2 and GBPF-2 algorithms by 40.54% and 47.62%, as shown in
Figure 10a, respectively. In
Figure 10b, with
T = 128 and
T = 256, the EBPSF-2 algorithm reduces the average number of iterations by 77.4% and 95.9% at 1.5 dB against the BPF-2 algorithm, respectively. Consequently, the step-flipping strategy that we propose for the BP one-bit flipping and multi-bit flipping algorithms is effective in reducing the average number of iterations.
4.3. Analysis of the BLER Performance
Using the stepping strategy, some bits in FS are skipped during the procedure of flipping with negligible performance loss. The BLER performance of the EBPSF-
and EGBPSF-
algorithms is depicted in
Figure 11 and
Figure 12. It can be observed that the algorithms which apply the proposed step-flipping strategy are better in terms of the BLER performance. Unlike the BPF-
and GBPF-
algorithms, which flip the right information of the leftmost nodes in the DFG, we flip the left information of the rightmost nodes by (16). In contrast to the CA-SCL decoding, the EBPSF-
and EGBPSF-
algorithms can achieve comparable decoding performance.
When
T = 39,
Figure 11a indicates that the EBPSF-1 (
= 1) algorithm performs similarly to the BLER of GBPF-1 algorithm. Additionally, the EBPSF-1 algorithm has 0.23 dB gain at BLER =
against the OA-BP decoder when
T = 256. The BPF-
and GBPF-
algorithms flip the right information of the leftmost nodes in the DFG. However, the proposed algorithm flips the left information of the rightmost nodes, and the EBPSF algorithm obtains a gain over the OA-BP decoder. With the same parameters, the EBPSF-1 (
T = 256) outperforms the CA-SCL (
L = 4) decoder by 0.13 dB when BLER =
. The one-bit flipping BLER performance for
N = 512 is depicted in
Figure 11b. When
T = 60 and
= 0.5, the EBPSF-1 algorithm for BLER compared to the BPF-1 algorithm shows a gain of 0.09 dB at BLER =
. At
T = 60, the performance of the EGBPSF-1 (
= 60,
= 0.5) algorithm is approaching the BLER of the CA-SCL (
L = 2) decoder.
The two-bit flipping performance for
N = 64 is illustrated in
Figure 12a. With
T = 32, the EBPSF-2 (
= 1) algorithm has 0.47 dB, 0.53 dB and 0.41 dB gain compared with the BPF-2, GBPF-2 and OA-BP-2 algorithms at BLER =
, respectively. Furthermore, the EBPSF-2 (
T = 32,
= 1) algorithm achieves the BLER performance between CA-SCL (
L = 4) and (
L = 8).
Figure 12b presents the two-bit flipping performance for
N = 256. The EBPSF-2 (
= 1) algorithm, when
T = 256, shows an improvement of 0.21 dB compared with the OA-BP-2 algorithm at BLER =
. The EBPSF-2 (
T = 256,
= 1) algorithm outperforms the CA-SCL (
L = 16) decoder by 0.02 dB at BLER =
.