A segmented crc-aided convolutional polar code encoding and decoding scheme
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HANYIN SOCIAL GOVERNANCE INTELLIGENT TECH CO LTD
- Filing Date
- 2022-03-23
- Publication Date
- 2026-08-07
AI Technical Summary
该分段方法虽然能有效地降低计算复杂度,但是并不能提升译码性能
Smart Images

Figure CN114598334B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of communication technology, and further relates to a novel segmented CRC-assisted convolutional polarization code encoding and decoding scheme in the field of wireless communication error control coding technology. This invention can be used for channel coding in control channel scenarios in wireless communication systems. This scheme can accelerate the polarization speed of sub-channels, polarizing more sub-channels into noise-free channels and pure noise channels, thereby achieving better decoding performance and improving the reliability of information bit transmission. Background Technology
[0002] Convolutional Polar Codes (CPCs) are a new type of Branching MERA codes (Branching Multi-scale Entanglement Renormalization Ansatz codes) based on tensor networks, proposed by Andrew James Ferris, David Poulin, and others in 2014. They establish an equivalent form for quantum error-correcting codes and classical decoding problems, and define and construct Branching MERA codes. In 2017, Andrew James Ferris et al. formally named it Convolutional Polar Codes and provided a proof of its achievable capacity, along with an efficient successive cancellation (SC) decoding algorithm. The encoding and decoding process of Convolutional Polar Codes is as follows: First, determine the information set through Monte Carlo simulation; second, transmit the information bits on selected channels within the information set, while freezing bits are transmitted on other channels; third, encode; fourth, transmit through Gaussian channels; fifth, perform successive cancellation decoding based on the log-likelihood ratio.
[0003] However, classic SC decoding has limited performance, while the more efficient list decoding (list SC, SCL) and cyclic redundancy check-aided successive cancellation list (CRC-SCL) decoding are too complex. The main reason for the limited performance of SC decoding is that it is a bit-by-bit decoding based on already decoded bits; if a previously decoded bit is incorrect, subsequent decoding will also be incorrect. SCL decoding, on the other hand, retains L decoding paths and selects the one with the highest reliability as the decoding result at the end, thus improving decoding performance. Therefore, the larger L is, the better the performance. However, this also introduces the problem that the more paths to retain, the higher the computational complexity. CRC-SCL decoding performs CRC checks on the L paths at the end of decoding, using those that pass the check as the decoding result and deleting those that fail, thus increasing the probability of retaining the correct path. However, it still suffers from excessive complexity.
[0004] To reduce computational complexity, segmented CRC-aided SCL decoding schemes have emerged. Huayi Zhou et al., in their paper "Segmented CRC-Aided SC List Polar Decoding" (2016 IEEE 83rd Vehicular Technology Conference (VTC Spring), 2016, pp. 1-5), proposed a uniformly segmented CRC-aided decoding scheme. The principle of this method is simple: during encoding, the information sequence is first evenly divided into several segments, and a CRC check sequence is added to the end of each segment before polar code encoding. During decoding, decoding proceeds sequentially from the first segment. If the current segment passes the CRC check, decoding continues to the next segment; otherwise, decoding stops, thus reducing decoding complexity. While this segmentation method effectively reduces computational complexity, it does not improve decoding performance. Summary of the Invention
[0005] The purpose of this invention is to address the shortcomings of the existing technology by proposing a non-uniform segmented CRC-assisted SCL decoding (segmented cyclic redundancy check-aided successive cancellation list, SCA-SCL) scheme based on a sliding window algorithm, in order to achieve a certain performance gain while effectively reducing computational complexity.
[0006] To achieve the above objectives, the present invention provides a segmented CRC-assisted volume active code encoding and decoding method, the technical steps of which include the following: (1) The information source generates an N-bit random binary bit sequence: The initially generated N-bit binary sequence is used for Monte Carlo simulation, but a sequence of all zero bits can also be sent. (2) Monte Carlo simulation determines the information set: Through M Monte Carlo simulations, K=NR bits with high reliability were selected from linear codes of code length N and code rate R as the information set. The remaining bits are used as a frozen bit set. ; (3) Generate a K-bit information bit sequence: Generate a K-bit random binary bit sequence as information bits, and transmit the remaining NK bits as frozen bits, so all of them can be set to 0; (4) Use the sliding window algorithm to search for the segmentation point location and insert the CRC check sequence: First, select the sliding window length W as the length of the CRC bits. Then, based on the error count of each bit channel estimated in (2), search for the W consecutive sub-channels with the highest error count. This position will be used as the insertion position for the CRC bits. Perform CRC encoding on the current segment and place the resulting check sequence at this position to generate the information sequence. ; (5) Encode the information sequence: Based on the information sequence obtained in (4) Convolutional polarization (CPC) encoding is performed. Since CPC, except for the last layer, has an additional sub-layer XOR operation in each layer compared to polar codes, the sub-layer encoding is performed first, followed by the regular layer encoding, resulting in the encoded bit sequence. ; (6) Modulate and add noise to the encoded sequence: The encoded bit sequence will be obtained After being modulated by binary phase shift keying (BPSK), the signal is transmitted on a Gaussian channel to obtain the received signal. ; (7) Decode the received signal: For each segment, SCL decoding is still performed. After a segment is decoded, a CRC check is performed. If none of the L paths pass the CRC check, a decoding failure flag is output, and the current decoding is terminated. If one of the L paths passes the CRC check, the decoding of the next segment continues until all segments are decoded.
[0007] Compared with the prior art, the present invention has the following advantages: First, the segmentation method of this invention based on the sliding window algorithm differs from the traditional uniform segmentation approach. It obtains the reliability of each sub-channel based on Monte Carlo simulations and then searches for the most error-prone sub-channel location using the sliding window algorithm. The advantage of verifying at the most error-prone sub-channel is that decoding can be immediately terminated upon detection of an error. If no error occurs at the most error-prone location, decoding of the next segment proceeds, increasing the probability of eliminating error paths. Furthermore, the length of each information sequence obtained by this segmentation method is not uniformly segmented but is related to the channel reliability distribution, thereby achieving a certain performance gain. Second, the sliding window length used in this invention is equal to the length of the CRC bit sequence, so that the W consecutive channels searched are just enough to hold the CRC bits. Simulation results show that the verification capability of CRCs of different lengths is different. Therefore, the CRC length added after each segment in this invention is also different, with the length increasing sequentially. The reason is as follows: the first segment position searched is the position with the highest error probability in the entire sequence, so a shorter CRC can be used as the verification sequence. The second segment position is the position with the second highest error probability in the entire sequence, so a longer CRC sequence is used for verification. The other segments follow the same principle, which can fully utilize the verification capability of the CRC in each segment.
[0008] Third, the encoding and decoding scheme of this invention is applicable not only to convolutional polar codes but also to traditional polar codes. The segmentation idea of this invention is based on the reliability distribution of the channel; therefore, regardless of the construction method used, as long as the reliability distribution of the sub-channels is obtained, the sliding window algorithm can be used to search for the segment positions of the information sequence. Thus, this method can be easily generalized. Attached Figure Description
[0009] Figure 1 This is a flowchart of the compilation and decoding implementation of the present invention; Figure 2 This is a comparison diagram of the polar codes and convolutional polar codes with N=8 as an example; Figure 3 The scatter plot shows the channel capacity distribution of convolutional polar codes and polar codes with a code length of 1024 and a deletion probability of 0.5 as an example. Figure 4 This is a schematic diagram of uniform segmentation and non-uniform information sequence in this invention; Figure 5 These are the six decoding modes of volume active codes; Figure 6 This is the path search graph for SC decoding and SCL decoding; Figure 7 This is a comparison chart of simulation results for volume-based and polar codes under this decoding scheme. Figure 8This is a comparison chart of simulation results for uniform segmentation and non-uniform segmentation based on sliding windows in this invention; Figure 9 This is a comparison chart of the average computational complexity of polar codes and convolutional polar codes with no segmentation, uniform segmentation, and non-uniform segmentation. Figure 10 This is a comparison chart of the simulation performance of volume active codes with different segment lengths. Detailed Implementation
[0010] The embodiments and effects of the present invention will now be described in detail with reference to the accompanying drawings.
[0011] This invention is a non-uniform segmentation SCA-SCL encoding and decoding scheme based on a sliding window algorithm, mainly used in the channel coding module of point-to-point wireless communication links. (See attached diagram.) Figure 1 The implementation method of the encoding and decoding process of the present invention is further described, including the following steps: Step 1: The information source generates an N-bit random binary bit sequence.
[0012] Step 2: Monte Carlo simulation determines the information set.
[0013] Monte Carlo simulation determines the information set, and the number of simulations is related to the accuracy; a higher number of simulations results in higher accuracy, but the complexity also increases with the number of simulations. Assume the code length is... N The bitrate is R Then it needs to be determined For information bits.
[0014] Step 3, generate K A sequence of bits containing information.
[0015] Assuming generated K The information sequence is Based on the information bit sub-channel determined in step 2, K The information bits are placed in K On the sub-channel, the remaining bits are set to 0.
[0016] Step 4: Use the sliding window algorithm to search for the segmentation point location and insert the CRC check sequence.
[0017] Assuming the sliding window algorithm determines the first The information sequence of each segment is as follows Then, a sequence of information is CRC encoded. Assume the length of the first CRC check sequence obtained is... The total length of the first segment is The lengths of the other segments can be obtained sequentially. Assume there are a total of... P Each segment , Then the CRC encoded sequence is . Figure 4 This is a schematic diagram of uniform segmentation and non-uniform segmentation information sequences obtained based on the sliding window algorithm.
[0018] Step 5: Encode the information sequence using convolutional positive coding.
[0019] for( K) volume active coding The generating matrix is: , in , It is a binary kernel matrix. This indicates the transpose operation. This represents the Kronecker product. In practice, to avoid repeatedly calculating the Kronecker product in the generator matrix, recursive operations, and transpose operations, the following feasible encoding scheme is used: Assume... For code length is N The volume active code has a total of m Layer, starting from the first m Starting with the first layer, the sub-layers are encoded as follows: ,in , , The encoding for the regular layer is as follows: ,in , , .Then, , to proceed with the first m-1 The encoding of each layer continues, and so on, up to the second layer. According to... Figure 2 The butterfly structure diagram shown only requires the first layer to undergo the regular layer operations; the sub-layer operations can be omitted for this layer to obtain the encoded bit sequence. .
[0020] Step 6: Modulate and add noise to the encoded sequence.
[0021] After the encoded bits are modulated by BPSK and transmitted through a Gaussian channel, the received signal is: ,in .
[0022] Step 7: Decode the received signal.
[0023] Segmented CRC-assisted SCL decoding mainly includes two decoding modes: decoding mode and check mode. In decoding mode, the decoder performs SCL decoding. In check mode, the checker verifies whether the paths in the current list can pass the CRC check.
[0024] SCL decoding is equivalent to using L decoders to decode in parallel on the basis of SC decoding, and in the final stage, selecting the path with the highest reliability from these L paths as the decoding result. (Appendix) Figure 6 In diagram (a), the SC decoding path search is shown. SC decoding is a special case where there is only one search path. (Appendix) Figure 6 Figure (b) shows the path search graph with L=4 as an example. CRC-assisted SCL decoding performs CRC checks on the L candidate paths based on SCL decoding, and uses the path that passes the CRC check as the final decoding result. However, both SCL decoding and SCL decoding have high computational complexity, and the complexity increases with the number of paths L.
[0025] The specific decoding process is as follows: First, the decoder operates in decoding mode. If a frozen bit is decoded, the number of decoding paths remains unchanged. If a non-frozen bit is decoded and the current number of paths has not yet reached the set number of paths L, the number of paths is directly doubled, meaning each path is decoded for both 0 and 1 bit states. If a non-frozen bit is decoded and the set number of paths L has already been reached, after doubling the number of paths, pruning is required. L paths with relatively high reliability are selected from the 2L paths and retained for the next bit of decoding.
[0026] Once i CRC check sequence Once all bits have been decoded, the decoder will enter check mode. The decoder will then check the list... L Each path undergoes a CRC check. If the current path passes the check, it is retained; otherwise, it is removed from the list. If the list is not empty, the decoder continues to decode in decoding mode. If no path passes the CRC check, a decoding failure flag is output, and decoding terminates. This process is repeated until each segment is decoded.
[0027] After each validation, incorrect paths are removed from the list, leaving only one correct path. For example, with a list length L=32, suppose when the first... After decoding the first non-frozen bit, and performing a CRC check, only one correct path is retained. When decoding continues to the second... When the first non-frozen bit is reached, the 32 sub-paths of the correct path are preserved with probability 1. However, for traditional CRC-SCL decoding, after decoding the first non-frozen bit... There are 1024 subpaths for each non-frozen bit. Only when the list length is 1024 can the correct path be preserved with probability 1. This means that in some cases, SCA-SCL decoding can achieve a list length of L. Performance.
[0028] The effects of the present invention will be further illustrated below through simulation experiments: I. Simulation Conditions The simulation parameters used in this invention are as follows: 200,000 Monte Carlo simulations, BPSK modulation, additive white Gaussian noise channel, code length 256, code rate 0.5, and the CRC involved are as follows: To ensure fairness in the comparison, all schemes have the same total CRC length.
[0029] II. Simulation Content Simulation 1, Figure 3 (a) and (b) are channel capacity distribution diagrams for polar codes and convolutional polar codes with a code length of 1024 and a deletion probability of 0.5, respectively.
[0030] Simulation 2, Figure 7 This is a performance comparison chart of polar codes and convolutional polar codes based on the SCA-SCL encoding and decoding scheme proposed in the invention, with no segmentation, two-segmentation, and three-segmentation. The dashed lines represent the simulation curves of polar codes, and the solid lines represent the simulation curves of convolutional polar codes.
[0031] Simulation 3, Figure 8 This is a comparison chart of the simulation performance of three methods: no segmentation, uniform segmentation, and the non-uniform segmentation proposed in this invention.
[0032] Simulation 4, Figure 9 This graph compares the average computational complexity of polar codes, convolutional polar codes (without segmentation), uniform segmentation, and the non-uniform segmentation proposed in this invention. Dashed lines represent simulation curves for polar codes, while solid lines represent simulation curves for convolutional polar codes.
[0033] Simulation 5, Figure 10 The simulation results are shown for different combinations of non-segment lengths when the total CRC length of the active code is 24.
[0034] III. Results Analysis Figure 3 The channel capacity distribution shown indicates that the two codes exhibit different degrees of channel polarization. The convolutional polarization code is more fully polarized, polarizing more sub-channels into noise-free and purely noisy channels. Therefore, the convolutional polarization code has superior decoding performance. There are various construction methods for polar codes, with most currently using the low-complexity and high-accuracy Gaussian approximation. However, for comparison with the convolutional polarization code, Monte Carlo simulations were still used for all polar codes in this invention. Although the selected information differs between the two codes, both can use the sliding window algorithm to search for segmentation points. Due to the different reliability distributions, the searched segmentation positions naturally differ as well.
[0035] Figure 7 This paper compares the performance of polar codes and convolutional polar codes under different conditions: without segmentation and using a sliding window-based non-uniform segmentation algorithm. Simulation results show that both polar codes and convolutional polar codes exhibit performance gains under the encoding / decoding scheme of this invention, with the performance gain increasing with the number of segments. However, since CRC bits occupy some bits in the information set, adding a CRC check sequence will also lead to a certain loss in code rate. Therefore, all simulations ensure that the total length of the added CRC is the same.
[0036] Figure 8 This paper compares the performance of uniform and non-uniform segmentation of convolutional active codes. Simulation results show that the performance of uniform segmentation and no segmentation is basically the same, while the segmentation method in this invention has a significant gain. Three segments have a performance gain of about 0.2dB compared to no segmentation and uniform segmentation.
[0037] Figure 9 These are simulation results of average computational complexity, defined in this invention as the number of calculations for the average path metric. The simulation results show that the computational complexity is highest and constant when no segmentation is used. Both uniform and non-uniform segmentation significantly reduce complexity. Compared to uniform segmentation, the non-uniform segmentation method in this invention shows a slight reduction in complexity at low signal-to-noise ratios (SNR), while maintaining the same complexity at high SNRs. Furthermore, the computational complexity of convolutional active codes is significantly lower than that of polar codes. The basic SC decoding of convolutional active codes in this invention is based on minimum-sum approximation decoding of log-likelihood clusters. The entire decoding process uses addition, subtraction, and comparison operations instead of the multiplication and division operations used in the original probability-based decoding, which significantly improves computational efficiency.
[0038] Figure 10 This simulation demonstrates the performance of different combinations of segment lengths for the three-segment CRC algorithm. The simulation results show that different segment length combinations produce different results, with the best performance observed when the segment lengths are distributed in an increasing order (i.e., 4, 8, 12). This simulation also verifies the previous analysis that different CRC lengths have different verification capabilities. Therefore, reasonably dividing a long CRC sequence into several different shorter CRC sequences and appropriately setting the position of each segment can improve performance.
Claims
1. A segmented CRC-assisted SCL encoding and decoding method based on a sliding window algorithm, characterized in that: Monte Carlo simulation is used to obtain the error probability of each sub-channel, then a sliding window search is used to find the segmentation point location, followed by CRC verification, adding a CRC verification sequence, and then segmented decoding is performed at the receiver via a Gaussian channel. The specific steps of this method include the following: (1) The information source generates an N-bit random binary bit sequence: The initially generated N-bit binary sequence is used for Monte Carlo simulation; a sequence of all zero bits is sent. (2) Monte Carlo simulation determines the information set: Through M Monte Carlo simulations, K=NR bits with high reliability were selected as the information set from linear codes of code length N and code rate R. The remaining bits are used as a frozen bit set. ; (3) Generate a K-bit information bit sequence: Generate a K-bit random binary bit sequence as information bits, and transmit the remaining NK bits as frozen bits, so all of them can be set to 0; (4) Use the sliding window algorithm to search for the segmentation point location and insert the CRC check sequence: First, select the sliding window length W as the length of the CRC bits. Then, based on the error count of each bit channel estimated in (2) with code length N and code rate R, search for the consecutive W sub-channels with the highest error count. This position will be used as the position to insert the CRC bits. Perform CRC encoding on the current segment and place the resulting check sequence at this position to generate the information sequence. ; The process involves using a sliding window search to identify segmentation points, finding the most error-prone consecutive sub-channels, and performing CRC checks at these error-prone locations to increase the probability of removing erroneous paths. The specific steps are as follows: The first step is to perform Monte Carlo simulation to obtain the error probability of each sub-channel; based on the code length N and code rate R, select K=NR sub-channels with higher reliability. The second step involves selecting K sub-channels from the previous step and implementing a sliding window algorithm. Starting from the first selected sub-channel, the algorithm is calculated until the last sub-channel to obtain the consecutive sub-channels with the largest number of errors obtained in the first calculation. The second step involves implementing the sliding window algorithm again from the segment point found in the first step to find the second segment point. This process is repeated to find the other segment points. The third step is to perform CRC encoding on each subsequence to obtain a CRC check sequence, and then add the CRC check sequence. (5) Encode the information sequence: Based on the information sequence obtained in (4) Convolutional polarization (CPC) encoding is performed. Since CPC, except for the last layer, has an additional sub-layer XOR operation in each layer, CPC first encodes the sub-layers and then encodes the regular layers, resulting in the encoded bit sequence. ; The encoding does not directly use the generator matrix to encode the information sequence. Instead, it leverages the two-layer polarization characteristic of convolutional active codes to encode the sub-layers first and then the regular layers. For a convolutional active code of length N with m layers, the sub-layer control parameter n=2 is initialized. The specific operation steps are as follows: The first step is to encode the sub-layers, starting from the m-th layer. The sub-layer encoding is as follows: ,in , , ; The second step is to encode the regular layer. The encoding for the regular layer is as follows: ,in , , ; The third step is to... Encode the (m-1)th layer, and so on, until the second layer; only the first layer requires only the operations of the regular layer, omitting the sub-layer operations, to obtain the encoded bit sequence. ; (6) Modulate and add noise to the encoded sequence: The encoded bit sequence will be obtained After being modulated by binary phase shift keying, the signal is transmitted on a Gaussian channel to obtain the received signal. ; (7) Decode the received signal: SCL decoding is performed for each segment. After a segment is decoded, CRC check is performed. If none of the L paths pass the CRC check, a decoding failure flag is output directly, and the current decoding is terminated. If one of the L paths passes the CRC check, the decoding of the next segment continues until all segments are decoded. In the segmented decoding process, the basic SCL decoding uses minimal-sum approximation decoding based on log-likelihood varieties instead of numerically unstable probability-based decoding. Furthermore, the segmented decoding process involves two modes: decoding mode and check mode. The specific operational steps are as follows: The first step is the decoding of the log-likelihood cluster based on six modes in the basic SCL decoding process; firstly, the first layer of the log-likelihood cluster is initialized according to the received signal; The second step involves decoding layer by layer from the second layer to the m-th layer. When decoding reaches the last layer, three scenarios may occur: First, all three bits of the current three clusters are unknown. In this case, it is necessary to iterate through the last two unknown bits to obtain the log-likelihood ratio of the current bit before performing hard-decision decoding. Second, one bit of the current three clusters is known, while two bits are unknown. In this case, the known bit is used as prior information to iterate through the last bit to obtain the log-likelihood ratio of the current bit before performing hard-decision decoding. Third, the first two bits are known. In this case, the first two bits are used as prior information to obtain the log-likelihood ratio of the current bit before performing hard-decision decoding. The third step is to update the bit in reverse after each bit is decoded. The fourth step involves continuing the decoding process until the last bit of the CRC sequence is reached, repeating the decoding process of the first three steps. Additionally, after decoding each bit, the path needs to be processed. If a frozen bit is decoded, the number of decoding paths remains unchanged. If a non-frozen bit is decoded and the current path count has not reached the set path count L, the path count is doubled, meaning each path is decoded for both 0 and 1 conditions. If a non-frozen bit is decoded and the set path count L has been reached, after doubling the path count, pruning is required. From the 2L paths, L paths with relatively high reliability are selected and retained for the next bit decoding. The fifth step involves entering verification mode when the last bit of the CRC sequence is decoded. The decoded CRC verification sequence is compared with the original verification sequence. If they are equal, the CRC verification is successful. Otherwise, the decoding fails, a decoding failure flag is output, and the decoding process is terminated. This reduces computational complexity and saves computer resources.
Citation Information
Patent Citations
Segmented cyclic redundancy check method for polarization codes
CN106230555A
A polar code encoding and decoding method with non-uniform segmentation check
CN107517095B