Bit-Flipping Decoding Method and Device
By constructing the flip position set C in the polarized code serial cancellation list decoder and performing bit flip, the problem of low decoding performance in the prior art is solved, and higher decoding performance and bit flip accuracy are achieved.
Patent Information
- Application Number
- CN202310144455.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-20
- Publication Date
- 2025-06-17
- Estimated Expiration
- 2043-02-20
AI Technical Summary
The existing polarized code serial offset list decoding methods have low frame rate performance during the decoding process, and require multiple flips of low and reliable information bits to achieve ideal performance.
A bit flip decoding method is proposed, which constructs the flip position set C during the decoding process through a polarized code serial cancellation list decoder and performs bit flip under specific conditions to improve decoding performance.
The performance is better at the same number of flips, effectively improving the accuracy of bit flips and the performance of polarized code serial offset list decoder.
Smart Images

Figure CN116192158B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a bit - flipping decoding method and apparatus, belonging to the technical field of channel coding and decoding. Background Art
[0002] Polar codes are a coding scheme that has been strictly proven to reach the Shannon limit and are one of the 5G channel coding technologies. The successive cancellation (SC) decoding algorithm proposed by Arikan has unsatisfactory error - correction performance at finite code lengths, and generally has a worse frame error rate performance than low - density parity - check codes.
[0003] To obtain better decoding results, some scholars have proposed the successive cancellation list (SCL) decoding method for polar codes. Compared with the SC decoding method that only retains one decoding path during the decoding process, the SCL decoding method retains L (L >= 1) decoding paths simultaneously during the decoding process. Each path corresponds to a path metric (PM) value. When the SCL decoder finishes decoding, the path with the smallest PM value is selected as the decoding result, and its performance is significantly improved compared with SC decoding. The decoding method of cyclic redundancy check (CRC) - assisted successive cancellation list (CA - SCL) is an improved method of SCL, and its performance is better than SCL. The CA - SCL decoding method adds cyclic redundancy check after the information bit sequence to screen out candidate paths among the L paths to improve the decoding performance. During the SC decoding process, channel noise or error propagation caused by previous incorrect bits is the reason for generating incorrect bits. By flipping the first incorrect bit that causes error propagation, better performance gain can be obtained, and this method is called the SC bit - flipping (SCF) algorithm. Although the above - mentioned methods have certain performance improvements, they need to flip multiple low - reliability information bits to achieve relatively ideal performance.
[0004] In view of this, it is indeed necessary to propose a bit - flipping decoding method and apparatus to solve the above problems. Summary of the Invention
[0005] The object of the present invention is to provide a bit - flipping decoding method and apparatus with excellent decoding performance.
[0006] To achieve the above object, the present invention provides a bit - flipping decoding method, which mainly includes the following steps:
[0007] Step 1: First, use the polar code successive cancellation list decoder for decoding. During the decoding process of the polar code successive cancellation list decoder, construct the flipping position set C. If the decoding result passes the cyclic redundancy check, the decoding ends; otherwise, go to Step 2.
[0008] Step 2: If the flipping position set C is an empty set, the decoding ends; otherwise, select one position from the flipping position set C, delete it from the flipping position set C, restart the polar code successive cancellation list decoder at this position, and select the last L paths among the 2L sorted paths as the surviving paths for decoding. If the decoding result passes the cyclic redundancy check, the decoding ends; otherwise, go back to Step 2 again.
[0009] As a further improvement of the present invention, in Step 1, the specific process of constructing the flipping position set C includes:
[0010] Step 11: The polar code successive cancellation list decoder sequentially accesses different information bit nodes i ∈ A, where A represents the set composed of information bits, expands the paths and calculates the path metrics until reaching the path number limit, that is, 2L paths. Denote the information bit node at this time as i * , starting from the information bit node i ≥ i * , calculate the cumulative sum of the PM values of the first L paths and the cumulative sum of the PM values of the last L branches, and take the ratio of the cumulative sum of the PM values of the first L paths to the α -th power of the cumulative sum of the PM values of the last L branches, and at the same time take the logarithm to obtain E i (α);
[0011] Step 12: Define the set E = {E i (α), i ∈ A / {1,, i * - 1}};
[0012] Step 13: Create an array arr1 with a size of 1×(k - (i * - 1)), sequentially store the elements in the set E into arr1, and create an array arr2 with a size of 1×(k - (i * - 1)); perform an ascending order operation on the array arr1, and store the sorted subscripts of the array arr1 back into the array arr2; take out the data in the array arr2 to form the set F;
[0013] Step 14: Take α1 ≥ 1 and repeat Steps 11 to 13 to form the set F1, take α2 ≥ 1 & α2 ≠ α1 and repeat Steps 11 to 13 to form the set F2;
[0014] Step 15: Take the first n (n≥2) bits of set F1 and set F2 respectively to form set G1 and set G2. Fix set G2, and take the intersection of set G1 and set G2 as the flipping position set C. If the flipping position set C is non-empty, the construction is completed. If the flipping position set C is empty, directly set the flipping position set C as set G1.
[0015] As a further improvement of the present invention, in step 11, E i (α) is
[0016]
[0017] where represents the penalty value of the l-th path of the i-th information bit.
[0018] As a further improvement of the present invention, the penalty value is defined as
[0019]
[0020] where sign() represents the sign function, sign() is 1 if it is greater than 0, and sign() is 0 if it is less than 0. represents the received sequence log-likelihood ratio of the l-th path of the i-th information bit.
[0021] As a further improvement of the present invention, the received sequence log-likelihood ratio is defined as
[0022]
[0023] where represents the received signal vector of length N, u i represents the i-th component of the vector to be encoded, represents the i-1 components to be encoded that have been decided before the i-th moment.
[0024] As a further improvement of the present invention, in step 14, α1 = 1, α2 = 2.
[0025] As a further improvement of the present invention, in step 15, n = 4.
[0026] As a further improvement of the present invention, the code length N of the polar code is 128, the information bit length K is 64, the cyclic redundancy check length is 8, and the list length of the polar code serial cancellation list decoding is L = 4.
[0027] As a further improvement of the present invention, if the decoding result fails the cyclic redundancy check, it is necessary to perform polar code successive cancellation list bit flipping decoding according to the flipping position set C. The polar code successive cancellation list bit flipping (SCLF) decoding performs the following operations under the condition of a given maximum number of flips T:
[0028] Step 21: The L paths of the initial polar code successive cancellation list decoding result fail the cyclic redundancy check and set i = 1;
[0029] Step 22: Select the i-th element from the flipping position set C as the information bit to be flipped;
[0030] Step 23: When performing the shift pruning operation on the current information bit, it is determined that the correct information bit appears in the latter L paths with larger PM values; for this purpose, delete the former L paths with smaller PM values, retain the latter L paths with larger PM values, and the remaining information bits still use normal SCL decoding;
[0031] Step 24: If the decoding result of the above step 23 still fails the cyclic redundancy check, it is necessary to select the (i + 1)-th element from the flipping position set C as the information bit to be flipped, and repeat step 23 until the cyclic redundancy check is passed or the maximum number of flips T is reached, and the decoding ends.
[0032] To achieve the above object, the present invention also provides a device that performs decoding using the bit flipping decoding method as described above.
[0033] The beneficial effects of the present invention are: The performance of the present invention is more excellent under the same number of flips, which can effectively improve the correct rate of bit flipping and improve the performance of the polar code successive cancellation list decoder. Description of the Drawings
[0034] Figure 1 It is a curve graph of the performance of different weighting factors α of the bit flipping decoding method of the present invention;
[0035] Figure 2 It is a decoding flow chart of the bit flipping decoding method;
[0036] Figure 3 It is a flow chart for constructing the flipping position set C in the bit flipping decoding method;
[0037] Figure 4 It is a performance simulation graph of the bit flipping decoding method of the present invention. Detailed Embodiments
[0038] In order to make the purpose, technical solutions and advantages of the present invention clearer, the present invention will be described in detail below with reference to the drawings and specific embodiments.
[0039] Here, it should be noted that in order to avoid obscuring the present invention with unnecessary details, only the structures and / or processing steps closely related to the solution of the present invention are shown in the drawings, while other details less relevant to the present invention are omitted.
[0040] In addition, it should be noted that the term "comprising", "including" or any other variant thereof is intended to cover non-exclusive inclusion, so that a process, method, article or device comprising a series of elements not only includes those elements, but also includes other elements not expressly listed, or elements inherent to such process, method, article or device.
[0041] As Figures 1 to 4 shown, the present invention discloses a bit-flipping decoding method and apparatus. The bit-flipping decoding apparatus decodes by applying the bit-flipping decoding method. The present invention takes a polarization code with a code rate of 1 / 2 as an example. For a polarization code with a code rate of 1 / 2, its code length is N = 128, the information bit length is K = 64, the cyclic redundancy check length is 8, the list length of the serial cancellation list decoding of the polarization code is L = 4, the frozen bits adopt a construction method based on a genetic factor (GA), and the maximum number of times of information bit flipping is set to 1.
[0042] As Figure 1 shown, by selecting different weighting factors α1 = 1, α2 = 2, α3 = 3 to draw performance curves to show that different weighting factors affect the simulation results.
[0043] Regarding Figure 1 the specific implementation of the simulation results is as follows:
[0044] S1. The decoding end receives the log-likelihood ratio LLR and performs SCL decoding. If one of the L surviving paths passes the CRC check, it is considered that the decoding is successful, and the path passing the CRC check is used as the correct decoding output; otherwise, the following operations are performed.
[0045] S2. In order to show that the improvement of decoding performance is different among different weighting factors, α1 = 1, α2 = 2, α3 = 3 are selected to form sets F1, F2, F3. In order to facilitate comparison of the influence among different weighting factors, after decoding fails, the first bit of F1, F2, F3 is selected as the flipped information bit.
[0046] S3. Perform a block-shifting pruning operation on the flipped information bit, and perform normal SCL decoding on other information bits; if there is a path passing the CRC check in the decoding sequence, the decoding is successful. If the maximum number of flipping times T has not been reached at this time, the next bit in C is selected as the flipped information bit, and S3 is executed again.
[0047] As Figure 4As shown, by combining the construction of the flipping position set C with α1 = 1 and α2 = 2, the decoding performance is further improved. Of course, other relationships between the weighting factors can also be selected, which is not restricted here.
[0048] The bit flipping decoding method mainly includes the following steps:
[0049] Step 1: First, use the polar code successive cancellation list decoder for decoding, and construct the flipping position set C during the decoding process of the polar code successive cancellation list decoder. If the decoding result passes the cyclic redundancy check, the decoding ends; otherwise, go to Step 2.
[0050] Step 2: If the flipping position set C is an empty set, the decoding ends; otherwise, select one position from the flipping position set C, delete it from the flipping position set C, restart the polar code successive cancellation list decoder at this position, and select the last L paths among the 2L sorted paths as the surviving paths for decoding. If the decoding result passes the cyclic redundancy check, the decoding ends; otherwise, go back to Step 2 again.
[0051] Combined with Figure 2 and Figure 3 , the following will elaborate on Step 1 and Step 2 in detail.
[0052] In Step 1, the specific process of constructing the flipping position set C includes:
[0053] Step 11: The polar code successive cancellation list decoder sequentially accesses different information bit nodes i ∈ A, where A represents the set composed of information bits, expands the paths and calculates the path metrics until reaching the path number limit, that is, 2L paths. Denote the information bit node at this time as i * , starting from the information bit node i ≥ i * , calculate the cumulative sum of the PM values of the first L paths and the cumulative sum of the PM values of the last L branches, and take the ratio of the cumulative sum of the PM values of the first L paths to the power of α of the cumulative sum of the PM values of the last L branches, and take the logarithm to obtain E i (α), where E i (α) is
[0054]
[0055] Among them, represents the penalty value of the l-th path of the i-th information bit.
[0056] The definition of the penalty value is
[0057]
[0058] Among them, sign() represents the sign function. If sign() is greater than 0, it is 1; if sign() is less than 0, it is 0. represents the received sequence log-likelihood ratio of the l-th path of the i-th information bit.
[0059] The received sequence log-likelihood ratio is defined as
[0060]
[0061] Among them, represents the received signal vector of length N, and u i represents the i-th component of the vector to be encoded, represents the i - 1 components to be encoded that have been decided before the i-th moment.
[0062] Step 12: Define the set E = {E i (α), i ∈ A / {1,…, i * - 1}};
[0063] Step 13: Create an array arr1 of size 1×(k - (i * - 1)), and sequentially store the elements in the set E into arr1. Create an array arr2 of size 1×(k - (i * - 1)); perform an ascending order operation on the array arr1, and store the sorted subscripts of the array arr1 back into the array arr2; take out the data in the array arr2 to form the set F;
[0064] Step 14: Take α1≥1 and repeat Steps 11 to 13 to form the set F1. Take α2≥1 & α2≠α1 and repeat Steps 11 to 13 to form the set F2; preferably, α1 = 1, α2 = 2.
[0065] Step 15: Respectively take the first n (n≥2) bits of the set F1 and the set F2 to form the sets G1 and G2. Fix the set G2, and take the intersection of the set G1 and the set G2 as the flipping position set C. If the flipping position set C is non-empty, the construction is completed. If the flipping position set C is empty, directly set the flipping position set C as the set G1. Preferably, n = 4. The number of bits selected here is specifically related to the set maximum flipping times T. Normally, it is 2 - 4 times the number of set elements, and it satisfies the maximum flipping times T≤N - log2L;
[0066] The way of serial cancellation list bit flipping decoding for polar codes is to perform shift pruning operation when the first error occurs in the information bits. When an error occurs in the information bits, it is considered that the correct path appears in the last L paths with larger PM values. That is, at the current information bit, a shift pruning operation is performed to delete the first L paths with smaller PM values and retain the last L paths with larger PM values. Except for the current information bit, the remaining information bits are decoded by normal SCL decoding.
[0067] If the decoding result does not pass the cyclic redundancy check, polar code serial cancellation list bit flipping decoding needs to be performed according to the flipping position set C. The polar code serial cancellation list bit flipping decoding performs the following operations under the condition of a given maximum number of flips T:
[0068] Step 21: The first L paths of the serial cancellation list decoding result of the polar code do not pass the cyclic redundancy check and set i = 1;
[0069] Step 22: Select the i-th element from the flipping position set C as the information bit to be flipped;
[0070] Step 23: When performing the shift pruning operation at the current information bit, it is determined that the correct information bit should appear in the last L paths with larger PM values. Therefore, the first L paths with smaller PM values are deleted, and the last L paths with larger PM values are retained. The remaining information bits still use normal SCL decoding;
[0071] Step 24: If the decoding result of the above step 23 still does not pass the cyclic redundancy check, then the (i + 1)-th element in the flipping position set C needs to be selected as the information bit to be flipped, and step 23 is repeated until the cyclic redundancy check is passed or the maximum number of flips T is reached, and the decoding ends.
[0072] In summary, the performance of the present invention is more excellent under the same number of flips, which can effectively improve the correct rate of bit flipping and the performance of the polar code serial cancellation list decoder.
[0073] The above embodiments are only used to illustrate the technical solutions of the present invention and not to limit them. Although the present invention has been described in detail with reference to the preferred embodiments, those of ordinary skill in the art should understand that the technical solutions of the present invention can be modified or equivalently replaced without departing from the spirit and scope of the technical solutions of the present invention.
Claims
1. A bit - flipping decoding method, characterized in that, It mainly includes the following steps: Step 1: First, use the polar code successive cancellation list decoder for decoding, and construct the flipping position set C during the decoding process of the polar code successive cancellation list decoder. If the decoding result passes the cyclic redundancy check, the decoding ends; otherwise, go to Step 2; Step 2: If the flipping position set C is an empty set, the decoding ends; otherwise, select one position from the flipping position set C and delete it from the flipping position set C. Restart the polar code successive cancellation list decoder at this position, and select the last L paths among the 2L sorted paths as the surviving paths for decoding. If the decoding result passes the cyclic redundancy check, the decoding ends; otherwise, go back to Step 2 again; In Step 1, the specific process of constructing the flipping position set C includes: Step 11, the polar code successive cancellation list decoder sequentially accesses different information bit nodes \(i\in A\), where \(A\) represents the set composed of information bits, extends the paths and calculates the path metrics until the path number upper limit, i.e., \(2L\) paths, and records the information bit node at this time as \(i\). * , starting from the information bit node \(i\geq i\). * When it is the case, calculate the sum of the PM values of the first \(L\) paths and the sum of the PM values of the last \(L\) branches, and take the ratio of the sum of the PM values of the first \(L\) paths to the \(\alpha\) power of the sum of the PM values of the last \(L\) branches, and at the same time take the logarithm to obtain \(E\). i (\(\alpha\)), traverse all \(i\in A\setminus\{1,\ldots,i\). * - 1\} and sequentially calculate \(E\). i (\(\alpha\)), to obtain the set \(E=\{E\). i (\(\alpha\), \(i\in A\setminus\{1,\ldots,i\). * - 1\}\); Step 12: Create an array arr1 of size 1×(k - (i * - 1)), and sequentially store the elements in set E into arr1. Create an array arr2 of size 1×(k - (i * - 1)); perform an ascending order operation on array arr1, and store the subscripts after sorting array arr1 into array arr2; take out the data in array arr2 to form set F; Step 13: Take α1≥1 and repeat Steps 11 to 12 to form the set F1. Take α2≥1 & α2≠α1 and repeat Steps 11 to 12 to form the set F2; Step 14: Respectively take the first n (n≥2) bits of the set F1 and the set F2 to form the sets G1 and G2. Fix the set G2, and take the intersection of the set G1 and the set G2 as the flipping position set C. If the flipping position set C is non-empty, the construction is completed. If the flipping position set C is empty, directly set the flipping position set C as the set G1.
2. The bit - flipping decoding method according to claim 1, characterized in that: In step 11, E i (α) is Among them, represents the penalty value of the l-th path of the i-th information bit.
3. The bit - flipping decoding method according to claim 2, characterized in that: The penalty value is defined as Among them, sign() represents the sign function. If sign() is greater than 0, it is 1; if sign() is less than 0, it is 0. represents the received sequence log-likelihood ratio of the l-th path of the i-th information bit.
4. The bit - flipping decoding method according to claim 3, characterized in that: The received sequence log-likelihood ratio is defined as Among them, represents a received signal vector of length N, and u i represents the i-th component of the vector to be encoded, represents the i - 1 components to be encoded that have been decided before the i-th moment.
5. The bit - flipping decoding method according to claim 1, characterized in that: In Step 13, α1 = 1 and α2 = 2.
6. The bit - flipping decoding method according to claim 1, characterized in that: In Step 14, n = 4.
7. The bit - flipping decoding method according to claim 1, characterized in that: The code length N of the polar code is 128, the information bit length K is 64, the cyclic redundancy check length is 8, and the list length of the polar code successive cancellation list decoding is L = 4.
8. The bit - flipping decoding method according to claim 1, characterized in that, If the decoding result does not pass the cyclic redundancy check, it is necessary to perform polar code successive cancellation list bit flipping decoding according to the flipping position set C. The polar code successive cancellation list bit flipping decoding performs the following operations under the condition of a given maximum number of flips T: Step 21: The first L paths of the polar code successive cancellation list decoding result do not pass the cyclic redundancy check and set i = 1; Step 22: Select the i-th element from the flipping position set C as the flipped information bit; Step 23: When performing the shift pruning operation on the current information bit, determine that the correct information bit appears in the last L paths with larger PM values; for this purpose, delete the first L paths with smaller PM values, retain the last L paths with larger PM values, and the remaining information bits still use the normal SCL decoding; Step 24: If the decoding result of the above Step 23 still does not pass the cyclic redundancy check, it is necessary to select the (i + 1)-th element from the flipping position set C as the flipped information bit and repeat Step 23 until it passes the cyclic redundancy check or reaches the maximum number of flips T, and the decoding ends.
9. A device, characterized in that: Use the bit flipping decoding method as described in any one of claims 1 - 8 for decoding.
Citation Information
Patent Citations
Serial offset list bit flip decoding method for polarization code
CN108566213A
Self-adaptive serial cancellation list flipping decoding method and system
CN114070331A