CN112104379B - Polarization code confidence propagation dynamic overturning decoding method based on key set - Google Patents

Polarization code confidence propagation dynamic overturning decoding method based on key set Download PDF

Info

Publication number
CN112104379B
CN112104379B CN202010864035.5A CN202010864035A CN112104379B CN 112104379 B CN112104379 B CN 112104379B CN 202010864035 A CN202010864035 A CN 202010864035A CN 112104379 B CN112104379 B CN 112104379B
Authority
CN
China
Prior art keywords
row
column
turning
matrix
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010864035.5A
Other languages
Chinese (zh)
Other versions
CN112104379A (en
Inventor
张小军
韩晓文
陈达
曾庆田
陈成官
烟晓凤
李恒忠
郭华
崔建明
张德学
王道岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University of Science and Technology
Original Assignee
Shandong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong University of Science and Technology filed Critical Shandong University of Science and Technology
Priority to CN202010864035.5A priority Critical patent/CN112104379B/en
Publication of CN112104379A publication Critical patent/CN112104379A/en
Application granted granted Critical
Publication of CN112104379B publication Critical patent/CN112104379B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

The invention provides a polarization code confidence coefficient propagation dynamic overturn decoding method based on a key set, which comprises the steps of carrying out confidence coefficient propagation decoding on a polarization code, combining a cyclic redundancy check auxiliary early stop standard, carrying out early cut-off judgment on each iteration decoding result, reaching the preset maximum iteration times and CRC check failure, combining the absolute value of a node log likelihood ratio to generate a dynamic overturn position, further combining a static key set to construct an overturn matrix, and improving the decoding performance through bit overturn. Simulation results show that when the frame error rate is 0.001 and the current flip bit number omega is 2, the polarization code belief propagation dynamic flip decoding method based on the key set is improved by about 0.17dB gain compared with a CS-omega-based bit flip belief propagation decoder, and is improved by about 0.77dB compared with an original BP decoding algorithm.

Description

Polarization code confidence propagation dynamic overturning decoding method based on key set
Technical Field
The invention relates to Polar Code (Polar Code) decoding, in particular to a Polar Code belief propagation (Belief Propagation, BP) dynamic flip decoding method based on a Critical Set (CS).
Background
In the international information theory (ISIT) conference in 2008, turkish teaches that Erdal Arikan first proposes the concept of channel polarization (Channel Polarization), and the given channel coding method is named as Polar Code (Polar Code), which is a channel coding method that is strictly proven to reach channel capacity, and has low coding and decoding complexity and superior performance. As the code length of the polar code continues to increase, selecting to transmit information directly over a reliable channel with a channel capacity close to 1 may approach the channel capacity. In the 5G short code scheme discussion of 3gpp RAN1 87 conferences in 2016, it was determined that the polarization code became the eMBB control channel coding standard.
The Arikan teaches that the belief propagation (Belief Propagation, BP) decoding algorithm is proposed for the first time, and the BP algorithm adopts a parallel processing mode, so that the throughput is higher, but the existing BP decoding algorithm still has the defects, so that it is important to find a better decoding scheme to improve the decoding performance.
The bit turning method is a decoding method capable of remarkably reducing the error rate, the turning bit position is determined through error rate of channel transmission and error-prone position statistics in the decoding process, the initial information of the bit position which is most error-prone in the initial decoding process is subjected to positive and negative infinite substitution, bit turning is realized, and then the decoding error probability is reduced in the decoding process.
The polarization code confidence propagation dynamic flip decoding method based on the key set is initially adopted in a continuous cancellation algorithm (Successive cancellation, SC) decoding algorithm, and after the SC bit flip decoding program is carried out, the error rate is obviously reduced. However, in the continuous decoding process, the bit flipping algorithm of SC has obvious decoding delay, and is poor in the case of calculation complexity and decoding duration.
Disclosure of Invention
Aiming at the defects in the prior art, the invention aims to provide a polarization code confidence propagation dynamic overturn decoding method based on a key set.
The invention provides a polarization code confidence propagation (Belief Propagation, BP) dynamic turnover decoding method based on a key Set (CS), which comprises the following steps:
step S1: performing belief propagation decoding on the polarization codes to generate an original decoding result sequence;
step S2: performing CRC (cyclic redundancy check) on the original decoding result sequence, outputting an original decoding result when the CRC is passed, otherwise, generating an original dynamic overturning position after node log likelihood ratio (Log Likelihood Ratio, LLR) absolute value sequencing according to the original decoding result;
step S3: constructing a static turnover key set as a column of turnover matrix according to the error rate of channel transmission, wherein the error rate of channel transmission is the channel transmission error rate obtained by calculating Bahattacharyya parameters, density evolution or Gaussian approximation after channel polarization;
step S4: entering a one-bit turning program, turning the polarization code according to the one-column turning matrix, and generating a one-bit turning result sequence;
step S5: and performing CRC (cyclic redundancy check) on the one-bit turnover result sequence, and outputting a turnover decoding result when the CRC is passed.
Preferably, in step S5, when the CRC check is not passed, the method further comprises the steps of:
step S6: according to the one-bit turning decoding result, after node LLR absolute value ascending order, selecting the minimum position of node LLR absolute value, generating a second column of dynamic turning positions, combining the original dynamic turning positions and a static turning key set, constructing two groups of two columns of turning matrixes, and entering a two-bit turning program;
step S7: according to the two groups of two columns of turning matrixes, turning the polarization code to generate two groups of bit turning decoding result sequences;
step S8: and performing CRC (cyclic redundancy check) on the two-bit overturn decoding result sequence, outputting an original decoding result when the CRC is passed, otherwise judging whether the number of the overturn key set lines is larger than a preset maximum number of lines, and executing the next line overturn according to the two-bit overturn matrix when the number of the overturn key set lines is not larger than the preset maximum number of lines.
Preferably, in step S8, when the CRC check is not passed and the preset maximum number of rows is reached, the method further includes the steps of:
step S9: according to the two-bit turning decoding result, after the node LLR absolute value ascending order, selecting the minimum node LLR absolute value position to generate a third column dynamic turning position, combining the original dynamic turning position, the second column dynamic turning position and the static turning key set to construct two groups of three-column turning matrixes, and entering a three-bit turning program;
step S10: according to the two groups of three-column turning matrixes, turning the polarization code to generate a three-bit turning decoding result sequence;
step S11: and performing CRC (cyclic redundancy check) on the three-bit turning decoding result sequence, outputting an original decoding result when the CRC is passed, otherwise judging whether the number of the turning key set lines is larger than a preset maximum number of lines, executing next line turning according to a three-bit turning matrix when the number of the turning key set lines is not reached, otherwise outputting decoding failure, and ending the decoding process.
Preferably, when constructing the flip matrix, it is specifically:
step M1: the first column of the turnover matrix is constructed, and the order is arranged according to the error rate of channel transmission from large to small, wherein the error rate of channel transmission is the channel transmission error rate obtained by calculating the Bahattacharyya parameter, the density evolution or the Gaussian approximation after channel polarization. Q bit positions with the maximum error rate are selected, Q is the maximum element number of a static turning key set, and the static turning key set is used as a first column of a turning matrix;
step M2: constructing a second column of the turning matrix, and sequencing the absolute values of the node LLRs of the original decoding result sequence and the one-bit turning decoding result sequence from small to large, wherein bit positions of the absolute values of the minimum node LLRs corresponding to Q+1 are obtained as the second column of the turning matrix;
preferably, when one-bit flipping is performed, that is, the flipping bit number ω=1, specifically:
step N1: starting from the first row of the flip matrix, forward the initial information of omega positions of the first row negative infinity (+++ and- +++) substitutions, wherein +_infinity and- _infinity represent positive infinity and negative infinity, respectively;
step N2: calculate the number of inversions k, k=2 ω -1, when k=0, performing step N3, and when k=1, performing step N4;
step N3: converting k into omega-bit binary number b, wherein when omega=1, b is 0, and replacing initial information of the position of the first row and the first column of the turning matrix with- ≡;
step N4: k is converted into an ω -bit binary number b, where ω=1, b is 1, replacing initial information of the position of the first row and the first column of the turning matrix with + -infinity;
step N5: entering a second row of the turning matrix, and executing a step N2;
step N6: after the Q-th row of the flip matrix is executed, the process proceeds to step S5.
Preferably, when two-bit flipping is performed, i.e., the number of flipping times ω=2, specifically:
step N1: starting from the first row of the flip matrix, forward the initial information of omega positions of the first row negative infinity (+++ and- +++) substitutions, wherein +_infinity and- _infinity represent positive infinity and negative infinity, respectively;
step N2: calculate the number of inversions k, k=2 ω -1, k=0, step N3, k=1, step N4, k=2, step N5, k=3, step N6;
step N3: converting k into omega-bit binary number b, wherein when omega=2, b is 00, and replacing initial information of positions of a first row and a first column of the turning matrix and a second row with- ≡;
step N4: converting k into omega-bit binary number b, wherein when omega=2, b is 01, and replacing the position of the first row and the first column of the turning matrix with- ≡and the initial information of the position of the second row and the first column with ++≡;
step N5: converting k into omega-bit binary number b, wherein when omega=2, b is 10, and replacing the position of the first row and the first column of the turning matrix with + -infinity and the initial information of the position of the second row and the first column with- + -infinity;
step N6: converting k into omega-bit binary number b, wherein when omega=2, b is 11, and replacing initial information of positions of a first row and a first column of the turning matrix and a second row with + -infinity;
step N7: entering a second row of the turning matrix, and executing a step N2;
step N8: after the Q-th row of the flip matrix is executed, the process proceeds to step S8.
Preferably, when three-bit flipping is performed, i.e., the flipping bit number ω=3, specifically:
step N1: starting from the first row of the flip matrix, forward the initial information of omega positions of the first row negative infinity (+++ and- +++) substitutions, wherein +_infinity and- _infinity represent positive infinity and negative infinity, respectively;
step N2: calculate the number of inversions k, k=2 ω -1, k=0, step N3, k=1, step N4, k=2, step N5, k=3, step N6, k=4, step N7, k=5, step N8, k=6, step N9, k=7, step N10;
step N3: converting k into ω -bit binary number b, where ω=3, b being 000, replacing initial information of positions of the first row first column, the first row second column, and the first row third column of the flip matrix with- ≡;
step N4: converting k into omega-bit binary number b, wherein ω=3, b is 001, and the initial information of the position of the first row and the first column of the inversion matrix is replaced by- ≡, the initial information of the position of the second row and the first column is replaced by-fact, and the initial information of the position of the second row and the first column is replaced by + -fact;
step N5: converting k into omega-bit binary number b, wherein ω=3, b is 010, and initial information of the position of the first row and the first column of the inversion matrix is replaced by- ≡, initial information of the position of the second row and the first column is replaced by ++, and initial information of the position of the second row and the first column is replaced by-fact;
step N6: converting k to ω -bit binary number b, where ω=3, b is 011, replacing the initial information of the position of the first column of the first row of the flip matrix with- ≡, the initial information of the position of the second column of the first row is replaced by + -infinity, and the initial information of the position of the second column of the first row is replaced by + -infinity;
step N7: converting k into omega-bit binary number b, wherein when omega=3, b is 100, and replacing initial information of a first row and a first column of the turning matrix with +_infinity, replacing initial information of a second row and a first column with- ≡, and replacing initial information of a second row and a first column with-fact-infinity;
step N8: converting k into omega-bit binary number b, wherein ω=3, b is 101, and the initial information of the position of the first row and the first column of the inversion matrix is replaced by +_infinity, the initial information of the position of the second row and the first column is replaced by- +_infinity, and the initial information of the position of the second row and the first column is replaced by +_infinity;
step N9: converting k into omega-bit binary number b, wherein ω=3, b is 110, and the initial information of the position of the first row and the first column of the inversion matrix is replaced by + -infinity, the initial information of the position of the second row and the first column is replaced by + -infinity, and the initial information of the position of the second row and the first column is replaced by- ≡;
step N10: converting k into ω -bit binary number b, where ω=3, b is 111, and initial information of positions of the first row and first column, the first row and second column, and the first row and third column of the flip matrix is replaced with + -infinity;
step N11: entering a second row of the turning matrix, and executing a step N2;
step N12: after the Q-th row of the flip matrix is executed, the process proceeds to step S11.
Preferably, in step S2, the node LLR absolute value ordering is performed on the original decoding result to perform ascending order ordering according to the node LLR absolute value, and when the absolute values are equal, the descending order ordering is performed according to the channel error rate of the channel transmission, so as to finally obtain the ordering sequence according to the position.
Compared with the prior art, the invention has the following beneficial effects:
according to the invention, the key set CS is determined according to the error rate of channel transmission, and the turning matrix is constructed by combining the absolute values of the node LLRs, so that the number of turning bits can be flexibly adjusted, the number of multi-bit turning attempts can be controlled and reduced, the decoding performance of the polar code is improved, and the decoding complexity is reduced. Simulation results show that when the frame error rate is 0.001 and the current flip bit number omega is 2, the polarization code belief propagation dynamic flip decoding method based on the key set is improved by about 0.17dB gain compared with a CS-omega-based bit flip belief propagation decoder, and is improved by about 0.77dB compared with an original BP decoding algorithm.
Drawings
Other features, objects and advantages of the present invention will become more apparent upon reading of the detailed description of non-limiting embodiments, given with reference to the accompanying drawings in which:
FIG. 1 is a flow chart of the steps of a method for dynamic flip decoding of polarization code belief propagation based on a key set according to an embodiment of the present invention;
FIG. 2 is a diagram showing an example of coding of (8, 4) polarization codes according to an embodiment of the present invention;
FIG. 3 is a graph of frame error rate according to an embodiment of the present invention;
fig. 4 is a flowchart of a specific implementation of a polarization code belief propagation dynamic inversion decoding method based on a key set according to an embodiment of the present invention.
Detailed Description
The present invention will be described in detail with reference to specific examples. The following examples will assist those skilled in the art in further understanding the present invention, but are not intended to limit the invention in any way. It should be noted that variations and modifications could be made by those skilled in the art without departing from the inventive concept. These are all within the scope of the present invention.
In the embodiment of the invention, first, a polarization code encoding process is performed, where the polarization code encoding process includes: after channel polarization, the polarized channel is obtained by calculating Pasteur parameters and the likeIs a transmission error rate P (A) i ) Wherein A is i Polarized channel denoted by sequence number i>The carried bit is received after transmission and is in error, P (A i ) The smaller the channel the more stable, i.e. the more reliable. And selecting K most reliable channel transmission information bit sequences, generally 1, from N channels polarized by the channels according to the reliability, and the rest N-K channels transmit fixed bits known by the receiving end, generally 0. Vector +.>And core generator matrix->Is->Multiplication to obtain the code sequence->Wherein->As a generator matrix, the multiplier is as follows:
wherein the method comprises the steps ofn=log 2 N,/>Representing the power of Kronecker (Kronecker) of n.
Encoding by bit-reversal sequenceA kind of electronic deviceRearranging the sequences to obtain the code sequences after reverse sequenceUsing pi (i) to represent the reverse function, there is x i =v π(i) . The reverse order function pi (i) can be expressed as: the sequence number i is expressed in binary as (b) 1 ,b 2 ,...,b n ) I.e. +.>Then pi (i) can be represented in binary as (b) n ,b n-1 ,...,b 1 ). Representing the reverse order rearrangement as a one-dimensional matrix B, +.>The inverted coding sequence can be expressed as
By constructing an N-th order generator matrix G N Encoding the obtained product by using the expression as followsAfter channel transmission, a receiving codeword sequence of +.>Complete codeword estimation in decoder>If u is i Is a fixed bit ∈>Otherwise, when i ε A, the log-likelihood ratio for each bit channel is as follows:
wherein,representing the log-likelihood ratio of the ith row channel, < >>And->The probabilities of 0 and 1 are transmitted for the i-th row channel.
Fig. 2 shows (8, 4) polarization encoding, in which the left column of numbers corresponds to the pasteurization parameter values of the polarized channels, and the lower bus parameter channel numbers 4, 6, 7, 8 are selected for transmission information bits for the construction plan encoding, and the other four channels transmit fixed bits. The information bit is mixed with the fixed bit sequence and then multiplied by the generation matrix (modulo double addition operation) to obtain the code sequenceObtaining a final coding sequence after reverse order rearrangement>And then respectively pass through the channel W 1 8 And transmitting.
In the embodiment of the invention, the polarization code confidence propagation dynamic overturn decoding method based on the key set provided by the invention, as shown in fig. 1, comprises the following steps:
step S1: performing belief propagation decoding on the polarization codes to generate an original decoding result sequence;
step S2: checking the original decoding result sequence according to a cyclic redundancy check auxiliary (CRC-Aided, CA) early stop standard, outputting an original decoding result when the CRC check is passed, otherwise, selecting the minimum position of the node LLR absolute value as an original dynamic overturning position after the node LLR absolute value is sequenced according to the node log likelihood ratio (log likelihood ratio, LLR) absolute value according to the original decoding result;
and (3) performing node LLR absolute value sequencing on the BP decoding result to perform ascending sequencing according to the size of the node LLR absolute value, and performing descending sequencing according to the size of the channel error rate of channel transmission when the sizes of the absolute values are equal, so as to finally obtain a sequence according to the position sequencing.
Step S3: constructing a static turnover key set as a column of turnover matrix according to the error rate of channel transmission, wherein the error rate of channel transmission is the channel transmission error rate obtained by calculating Bahattacharyya parameters, density evolution or Gaussian approximation after channel polarization;
step S4: entering a one-bit turning program, turning the polarization code according to the one-column turning matrix, and generating a one-bit turning result sequence;
step S5: and performing CRC (cyclic redundancy check) on the one-bit overturn result sequence, outputting an overturn decoding result when the CRC passes, otherwise judging whether the number of the overturn key set lines is larger than a preset maximum number of lines, and executing the next line overturn according to the one-bit overturn matrix when the number of the overturn key set lines is not larger than the preset maximum number of lines.
In step S5, when the CRC check is not passed and the preset maximum number of rows is reached, the method further includes the steps of:
step S6: according to the one-bit turning decoding result, after node LLR absolute value ascending order, selecting the minimum position of node LLR absolute value, generating a second column of dynamic turning positions, combining the original dynamic turning positions and a static turning key set, constructing two groups of two columns of turning matrixes, and entering a two-bit turning program;
step S7: according to the two groups of two columns of turning matrixes, turning the polarization code to generate two groups of bit turning decoding result sequences;
step S8: and performing CRC (cyclic redundancy check) on the two-bit overturn decoding result sequence, outputting an original decoding result when the CRC is passed, otherwise judging whether the number of the overturn key set lines is larger than a preset maximum number of lines, and executing the next line overturn according to the two-bit overturn matrix when the number of the overturn key set lines is not larger than the preset maximum number of lines.
In step S8, when the CRC check is not passed and the preset maximum number of rows is reached, the method further includes the steps of:
step S9: according to the two-bit turning decoding result, after the node LLR absolute value ascending order, selecting the minimum node LLR absolute value position to generate a third column dynamic turning position, combining the original dynamic turning position, the second column dynamic turning position and the static turning key set to construct two groups of three-column turning matrixes, and entering a three-bit turning program;
step S10: according to the two groups of three-column turning matrixes, turning the polarization code to generate a three-bit turning decoding result sequence;
step S11: and performing CRC (cyclic redundancy check) on the three-bit turning decoding result sequence, outputting an original decoding result when the CRC is passed, otherwise judging whether the number of the turning key set lines is larger than a preset maximum number of lines, executing next line turning according to a three-bit turning matrix when the number of the turning key set lines is not reached, otherwise outputting decoding failure, and ending the decoding process.
In the embodiment of the present invention, when constructing the flip matrix, the specific steps are:
step M1: the first column of the turnover matrix is constructed, and the order is arranged according to the error rate of channel transmission from large to small, wherein the error rate of channel transmission is the channel transmission error rate obtained by calculating the Bahattacharyya parameter, the density evolution or the Gaussian approximation after channel polarization. Q bit positions with the maximum error rate are selected, Q is the maximum element number of a static turning key set, and the static turning key set is used as a first column of a turning matrix;
step M2: constructing a second column of the turning matrix, and sequencing the absolute values of the node LLRs of the original decoding result sequence and the one-bit turning decoding result sequence from small to large, wherein bit positions of the absolute values of the minimum node LLRs corresponding to Q+1 are obtained as the second column of the turning matrix;
in the embodiment of the present invention, when one-bit flipping is performed, that is, when the flipping bit number ω=1, specifically:
step N1: starting from the first row of the flip matrix, forward the initial information of omega positions of the first row negative infinity (+++ and- +++) substitutions, wherein +_infinity and- _infinity represent positive infinity and negative infinity, respectively;
step N2: calculate the number of inversions k, k=2 ω -1, when k=0, performing step N3, and when k=1, performing step N4;
step N3: converting k into omega-bit binary number b, wherein when omega=1, b is 0, and replacing initial information of the position of the first row and the first column of the turning matrix with- ≡;
step N4: k is converted into an ω -bit binary number b, where ω=1, b is 1, replacing initial information of the position of the first row and the first column of the turning matrix with + -infinity;
step N5: entering a second row of the turning matrix, and executing a step N2;
step N6: after the Q-th row of the flip matrix is executed, the process proceeds to step S5.
In the embodiment of the present invention, when two-bit flipping is performed, that is, when the flipping number ω=2, specifically:
step N1: starting from the first row of the flip matrix, forward the initial information of omega positions of the first row negative infinity (+++ and- +++) substitutions, wherein +_infinity and- _infinity represent positive infinity and negative infinity, respectively;
step N2: calculate the number of inversions k, k=2 ω -1, k=0, step N3, k=1, step N4, k=2, step N5, k=3, step N6;
step N3: converting k into omega-bit binary number b, wherein when omega=2, b is 00, and replacing initial information of positions of a first row and a first column of the turning matrix and a second row with- ≡;
step N4: converting k into omega-bit binary number b, wherein when omega=2, b is 01, and replacing the position of the first row and the first column of the turning matrix with- ≡and the initial information of the position of the second row and the first column with ++≡;
step N5: converting k into omega-bit binary number b, wherein when omega=2, b is 10, and replacing the position of the first row and the first column of the turning matrix with + -infinity and the initial information of the position of the second row and the first column with- + -infinity;
step N6: converting k into omega-bit binary number b, wherein when omega=2, b is 11, and replacing initial information of positions of a first row and a first column of the turning matrix and a second row with + -infinity;
step N7: entering a second row of the turning matrix, and executing a step N2;
step N8: after the Q-th row of the flip matrix is executed, the process proceeds to step S8.
In the embodiment of the present invention, when three-bit flipping is performed, that is, when the flipping bit number ω=3, specifically:
step N1: starting from the first row of the flip matrix, forward the initial information of omega positions of the first row negative infinity (+++ and- +++) substitutions, wherein +_infinity and- _infinity represent positive infinity and negative infinity, respectively;
step N2: calculate the number of inversions k, k=2 ω -1, k=0, step N3, k=1, step N4, k=2, step N5, k=3, step N6, k=4, step N7, k=5, step N8, k=6, step N9, k=7, step N10;
step N3: converting k into ω -bit binary number b, where ω=3, b being 000, replacing initial information of positions of the first row first column, the first row second column, and the first row third column of the flip matrix with- ≡;
step N4: converting k into omega-bit binary number b, wherein ω=3, b is 001, and the initial information of the position of the first row and the first column of the inversion matrix is replaced by- ≡, the initial information of the position of the second row and the first column is replaced by-fact, and the initial information of the position of the second row and the first column is replaced by + -fact;
step N5: converting k into omega-bit binary number b, wherein ω=3, b is 010, and initial information of the position of the first row and the first column of the inversion matrix is replaced by- ≡, initial information of the position of the second row and the first column is replaced by ++, and initial information of the position of the second row and the first column is replaced by-fact;
step N6: converting k to ω -bit binary number b, where ω=3, b is 011, replacing the initial information of the position of the first column of the first row of the flip matrix with- ≡, the initial information of the position of the second column of the first row is replaced by + -infinity, and the initial information of the position of the second column of the first row is replaced by + -infinity;
step N7: converting k into omega-bit binary number b, wherein when omega=3, b is 100, and replacing initial information of a first row and a first column of the turning matrix with +_infinity, replacing initial information of a second row and a first column with- ≡, and replacing initial information of a second row and a first column with-fact-infinity;
step N8: converting k into omega-bit binary number b, wherein ω=3, b is 101, and the initial information of the position of the first row and the first column of the inversion matrix is replaced by +_infinity, the initial information of the position of the second row and the first column is replaced by- +_infinity, and the initial information of the position of the second row and the first column is replaced by +_infinity;
step N9: converting k into omega-bit binary number b, wherein ω=3, b is 110, and the initial information of the position of the first row and the first column of the inversion matrix is replaced by + -infinity, the initial information of the position of the second row and the first column is replaced by + -infinity, and the initial information of the position of the second row and the first column is replaced by- ≡;
step N10: converting k into ω -bit binary number b, where ω=3, b is 111, and initial information of positions of the first row and first column, the first row and second column, and the first row and third column of the flip matrix is replaced with + -infinity;
step N11: entering a second row of the turning matrix, and executing a step N2;
step N12: after the Q-th row of the flip matrix is executed, the process proceeds to step S11.
In a more specific embodiment, a polarization code belief propagation dynamic inversion decoding method based on a key set is as follows:
performing BP decoding iteration, performing CRC (cyclic redundancy check) after each iteration, and if the CRC passes before the preset maximum iteration times, jumping out of the iteration and outputting a decoding result;
if the preset maximum iteration number is reached, CRC check is not passed yet, then according to the original decoding result, after the absolute value of the node LLR is sequenced in ascending order, the original dynamic turning position is generated, a column of turning matrix is constructed according to a column of CS set, then a one-bit turning program of omega=1 is entered, CRC check is carried out after each iteration, and before the preset maximum iteration number is reached, if CRC check is passed, iteration is jumped out, and the decoding result is output;
if the preset maximum iteration number is reached, CRC check is not passed, then ascending order of absolute value of node LLR is carried out on the node information according to the last iteration result of each overturn, and the bit position with the minimum absolute value of the node LLR of the frame is screened out:
i_2_1{i=min(|node_data[i]|)}
i_2_2{i=min(|node_data[i]|)}
wherein node_data [ i ] represents the node LLR value of the ith row, judges whether the minimum bit position i_2_1 is equal to the minimum bit position i_2_2, and if the minimum bit position i_2_1 is equal to the minimum bit position i_2_2, places the minimum bit position i_2_1 at the second position of the flip matrix; if the two are not equal, combining a column CS set, respectively placing the minimum bit position i_2_1 and the minimum bit position i_2_2 in the second position of the turning matrix, combining the original dynamic turning position, generating two columns of bit turning key sets with the length of Q, and entering a two-bit turning program.
Performing CRC (cyclic redundancy check) in each iteration process of the two-bit flipping program, and if the CRC passes before reaching the preset maximum iteration times, jumping out of the iteration and outputting a decoding result;
if the preset maximum iteration times are reached, CRC check is not passed yet, and according to the decoding result obtained after the inversion of each bit inversion bit position, minimum node LLR sequence ordering is carried out, and the bit position with the minimum absolute value of the node LLR of the frame is screened out:
i_3_1{i=min(|node_data[i]|)}
i_3_2{i=min(|node_data[i]|)}
i_3_3{i=min(|node_data[i]|)}
i_3_4{i=min(|node_data[i]|)}
judging whether the minimum bit positions i_3_i are equal to each other, selecting mutually unequal i_3_i positions, combining a column of CS set, respectively placing the unequal i_3_i in a third position of the turning matrix, generating two groups of three-column bit turning key sets with the length of Q, and entering a three-bit turning decoding program.
Performing CRC (cyclic redundancy check) in the iteration process of the three-bit flipping program, and if the CRC passes before reaching the preset maximum iteration times, jumping out of iteration, outputting a decoding result and ending decoding; if the preset maximum iteration number is reached, the CRC check is not passed, the overturn decoding is failed, the decoding result of the original BP iteration is output, and the decoding is finished.
A specific case where ω=2 is taken as an example is shown in fig. 4, specifically:
step 1: firstly, 1024-position-confidence-level propagation decoding is carried out, left information Nodes [ i ] [10]. Inf_L at the rightmost end and right information Nodes [ i ] [0]. Inf_R at the leftmost end of a decoder are respectively updated into channel LLR absolute values and + -infinity, wherein Nodes [ i ] [ j ] represents node LLR information of an ith row and a jth column, nodes [ i ] [ j ]. Inf_L represents left information of a jth column node of the decoder, and Nodes [ i ] [ j ]. Inf_R represents right information of the ith row and the jth column:
Nodes[i][10].inf_L=LLR[i]
Nodes[i][0].inf_R=+∞
then executing the step (2);
step 2: performing conventional BP decoding iteration, and updating left information sequences L of i rows and j columns i,j And right information sequence R of i row and j column i,j Where i=1, 2..1024 denotes a code length, i.e., a decoding line number, j=1, 2, …,10, denotes an order of a decoding factor graph:
L i,j =g(L i+1,2j-1 ,L i+1,2j +R i,j+N/2 )
L i,j+N/2 =g(R i,j ,L i+1,2j-1 )+L i+1,2j
R i+1,2j-1 =g(R i,j ,L i+1,2j +R i,j+N/2 )
R i+1,2j =g(R i,j ,L i+1,2j-1 )+R i,j+N/2
after reaching the preset maximum iteration number, the left information sequence of the leftmost column node reaching the maximum iteration number is used forAnd leftmost node right information sequence up to maximum number of iterations +.>Judgment of sign bit is carried out, and the iteration result is estimated to be the sequence +.>Making a hard decision:
performing ascending sort on the obtained decoding iteration result sequence Nodes_data [1024] according to the absolute value of the node LLR to obtain the minimum position mllr_de of the absolute value of the node LLR of the current decoding, and executing the step (3);
step 3: performing CRC on the decoding result sequence;
step 4: if the CRC check is passed, decoding is successful, a decoding result is output, and if the CRC check is not passed, the step 5 is entered;
step 5: let the flip times t be 0, construct a column of flip matrix M (Q, 1) according to a column of static flip key sets, i.e., CS sets:
step 6, performing;
step 6: according to a column of the flip matrix M (Q, 1), a one-bit flip program of ω=1 is performed, and the initial information of the bit position of the t-th row in M (Q, 1) is replaced by positive and negative infinity (+infinity, - +_infinity), wherein+_infinity and- +_infinity represent positive infinity and negative infinity respectively:
Nodes[CS i ][0].inf_R=-∞
Nodes[CS i ][0].inf_R=+∞
step 7 is entered;
step 7: executing step 3, if the CRC check is passed, decoding is successful, and outputting a decoding result; if the CRC check is not passed, if t < =q, t=t+1, entering step 6; if t > Q, entering step 8;
step 8: minimum node LLR absolute value position mllr_de screened out from decoding results of original decoding program iteration is sorted by channel node LLR absolute value size, and 2 groups of minimum node LLR absolute value positions mllr_omega are screened out 1,1 [Q],mllr_ω 1,2 [Q]Step 9 is entered;
step 9: and (3) constructing two groups of two-column bit-flipping key sets M (Q, 2) according to the minimum node LLR absolute value position generated in the step (8) and the single-column static flipping position constructed by combining the channel error rate:
step 10 is carried out;
step 10: setting the turnover times t to be 0; according to M (Q, 2), a two-bit flipping program of omega=2 is performed, and the initial information of the bit position of the t-th line in M (Q, 2) is replaced by positive infinity (+ -infinity) and negative infinity (- + -infinity), wherein+ -infinity and- + -infinity represent positive infinity and negative infinity respectively:
Nodes[CS j ][0].inf_R=-10000;Nodes[mllr_ω 1,i [t]][0].inf_R=-∞
Nodes[CS j ][0].inf_R=10000;Nodes[mllr_ω 1,i [t]][0].inf_R=+∞
Nodes[CS j ][0].inf_R=10000;Nodes[mllr_ω 1,i [t]][0].inf_R=-∞
Nodes[CS j ][0].inf_R=-10000;Nodes[mllr_ω 1,i [t]][0].inf_R=+∞
and
Nodes[CS j ][0].inf_R=10000;Nodes[mllr_de][0].inf_R=+∞
Nodes[CS j ][0].inf_R=10000;Nodes[mllr_de][0].inf_R=-∞
Nodes[CS j ][0].inf_R=-10000;Nodes[mllr_de][0].inf_R=+∞
Nodes[CS j ][0].inf_R=-10000;Nodes[mllr_de][0].inf_R=-∞
wherein, mllr_ω 1,j [t]According to mllr omega 1,1 [t],mllr_ω 1,2 [t]If mllr omega is determined by comparison of the results of (2) 1,1 [t]=mllr_ω 1,2 [t]J=1, mllr_ω 1,j [t]=mllr_ω 1,1 [t]The method comprises the steps of carrying out a first treatment on the surface of the If mllr omega 1,j [t]!=mllr_ω 1,1 [t]J is 1 and 2, mllr- ω, respectively 1,j [t]=mllr_ω 1,1 [t],mllr_ω 1,j [t]=mllr_ω 1,2 [t];
Executing step 11;
step 11: executing step 3, if the CRC check is passed, decoding is successful, and outputting a decoding result; if the CRC check is not passed, if t < =q, t=t+1, step 6=10 is entered; if t > Q, then go to step 12;
step 12: and (5) decoding fails, and ending the whole decoding process.
The polarization code confidence propagation dynamic overturn decoding method based on the key set in the embodiment of the invention is a bit decoding method combining the node LLR absolute values generated in the iterative process of constructing the key set CS and BP decoding by the channel transmission error rate. The method comprises the steps of constructing a decoding turnover matrix, judging whether a bit turnover program is needed by using CRC (cyclic redundancy check), and performing bit turnover on bit positions in the turnover matrix in the turnover program, so that the reliability of BP iterative decoding is improved, and according to the method, the number of simultaneous turnover bits can be automatically increased after two-bit turnover.
The foregoing describes specific embodiments of the present invention. It is to be understood that the invention is not limited to the particular embodiments described above, and that various changes and modifications may be made by one skilled in the art within the scope of the claims without affecting the spirit of the invention.

Claims (7)

1. A polarization code confidence propagation dynamic overturn decoding method based on a key set is characterized by comprising the following steps:
step S1: performing belief propagation decoding on the polarization codes to generate an original decoding result sequence;
step S2: performing CRC (cyclic redundancy check) on the original decoding result sequence, outputting an original decoding result when the CRC is passed, otherwise, selecting the minimum position of the absolute value of the node LLR as an original dynamic overturning position after the absolute value of the node log likelihood ratio is ordered according to the original decoding result;
step S3: constructing a static overturn key set as a column of overturn matrix according to the error rate of channel transmission, wherein the error rate of channel transmission is the channel transmission error rate obtained by calculating Pasteur parameters, density evolution or Gaussian approximation after channel polarization;
step S4: entering a one-bit turning program, turning the polarization code according to the one-column turning matrix, and generating a one-bit turning result sequence;
step S5: performing CRC (cyclic redundancy check) on the one-bit turnover result sequence, and outputting a turnover decoding result when the CRC passes;
in step S5, when the CRC check is not passed, it is determined whether the number of rows of the flip key set is greater than a preset maximum number of rows, and when the number of rows is not reached, performing next row flip according to the one-bit flip matrix, and when the number of rows is greater than the preset maximum number of rows, the method further includes the following steps:
step S6: according to the one-bit turning result sequence, after the node LLR absolute value ascending order is adopted, the node LLR absolute value minimum position is selected, a second column of dynamic turning positions are generated, and two groups of two columns of turning matrixes are constructed by combining the original dynamic turning positions and the static turning key set, and then a two-bit turning program is entered;
step S7: according to the two groups of two columns of turning matrixes, turning the polarization code to generate two groups of bit turning decoding result sequences;
step S8: and performing CRC (cyclic redundancy check) on the two groups of bit flipping decoding result sequences, and outputting a bit flipping decoding result when the CRC is passed.
2. The method for dynamic inversion decoding of polarization code belief propagation based on a key set according to claim 1, wherein in step S8, when the CRC check is not passed, it is determined whether the number of the inverted key set lines is greater than a preset maximum number of lines, and when the number of the inverted key set lines is not reached, the next line inversion is performed according to a two-bit inversion matrix, and when the number of the inverted key set lines is greater than the preset maximum number of lines, the method further comprises the steps of:
step S9: according to the two groups of bit turning decoding results, after node LLR absolute value ascending order, selecting the minimum position of node LLR absolute value, generating a third column of dynamic turning position, combining the original dynamic turning position, the second column of dynamic turning position and the static turning key set, constructing two groups of three columns of turning matrixes, and entering a three-bit turning program;
step S10: according to the two groups of three-column turning matrixes, turning the polarization code to generate a three-bit turning decoding result sequence;
step S11: and performing CRC (cyclic redundancy check) on the three-bit turning decoding result sequence, outputting an original decoding result when the CRC is passed, otherwise judging whether the number of the turning key set lines is larger than a preset maximum number of lines, executing next line turning according to a three-bit turning matrix when the number of the turning key set lines is not reached, otherwise outputting decoding failure, and ending the decoding process.
3. The method for dynamic inversion decoding of polarization code belief propagation based on a key set according to claim 2, wherein when constructing the inversion matrix, it is specifically:
step M1: constructing a first column of a turnover matrix, and sequencing according to the error rate of channel transmission from large to small, wherein the error rate of channel transmission is the channel transmission error rate obtained by calculating Pasteur parameters, density evolution or Gaussian approximation after channel polarization; q bit positions with the maximum error rate are selected, Q is the maximum element number of a static turning key set, and the static turning key set is used as a first column of a turning matrix;
step M2: and constructing a second column of the turning matrix, and sequencing the absolute values of the node LLRs of the original decoding result sequence and the one-bit turning decoding result sequence from small to large, wherein the bit positions of the absolute values of the minimum node LLRs corresponding to the Q+1 are obtained as the second column of the turning matrix.
4. The method for dynamic flip decoding of polarization code belief propagation based on key set according to claim 1, wherein when one bit flip is performed, the number of flip bits isWhen=1, specifically:
step N1: starting from the first row of the flip matrix, for the first rowThe initial information of each position is positive and negative infinitely、/>) Is replaced by>And->Representing positive infinity and negative infinity respectively;
step N2: the number of inversions k is calculated,step N3 is performed when k=0, and step N4 is performed when k=1;
step N3: converting k intoA binary number b, in this case->When the value of b is 0, the initial information of the position of the first row and the first column of the turning matrix is replaced by +.>
Step N4: converting k intoA binary number b, in this case->When the value of b is 1, the initial information of the position of the first row and the first column of the turning matrix is replaced by +.>
Step N5: entering a second row of the turning matrix, and executing a step N2;
step N6: after the Q-th row of the flip matrix is executed, the process proceeds to step S5.
5. The method for dynamic inversion decoding of polarization code belief propagation based on key set according to claim 1, wherein when two-bit inversion is performed, the number of times of inversion isWhen=2, specifically:
step N1: starting from the first row of the flip matrix, for the first rowThe initial information of each position is positive and negative infinitely、/>) Is replaced by>And->Representing positive infinity and negative infinity respectively;
step N2: the number of inversions k is calculated,when k=0, step N3 is executed, when k=1, step N4 is executed, when k=2, step N5 is executed, and when k=3, step N6 is executed;
step N3: converting k intoA binary number b, in this case->When the value of b is equal to 00, the initial information of the positions of the first row, the first column and the second column of the turning matrix is replaced by +.>
Step N4: converting k intoA binary number b, in this case->When =2, b is 01, the position of the first row and the first column of the inversion matrix is replaced by +.>And the initial information of the position of the second column of the first row is replaced by +.>
Step N5: converting k intoA binary number b, in this case->When =2, b is 10, the position of the first row and the first column of the inversion matrix is replaced by +.>And the initial information of the position of the second column of the first row is replaced by +.>
Step N6: converting k intoA binary number b, in this case->When the number of the first row and the second column of the flip matrix is =2, b is 11, and the initial information of the positions of the first row and the second column of the flip matrix is replaced by +.>
Step N7: entering a second row of the turning matrix, and executing a step N2;
step N8: after the Q-th row of the flip matrix is executed, the process proceeds to step S11.
6. The method for dynamic flip decoding of polarization code belief propagation based on key set according to claim 2, wherein when three-bit flip is performed, the number of flip bits isWhen=3, specifically:
step N1: starting from the first row of the flip matrix, for the first rowThe initial information of each position is positive and negative infinitely、/>) Is replaced by>And->Representing positive infinity and negative infinity respectively;
step N2: the number of inversions k is calculated,when k=0, step N3 is executed, when k=1, step N4 is executed, when k=2, step N5 is executed, when k=3, step N6 is executed, when k=4, step N7 is executed, when k=5, step N8 is executed, when k=6, step N9 is executed, and step N10 is executed;
step N3: converting k intoA binary number b, in this case->When the value of b is equal to 000, the initial information of the positions of the first row, the first column, the first row, the second column and the first row, the third column of the flip matrix is replaced by +.>
Step N4: converting k intoA binary number b, in this case->When =3, b is 001, and the initial information of the position of the first row and the first column of the inversion matrix is replaced with +.>The initial information of the position of the second column of the first row is replaced by +.>The initial information of the position of the second column of the first row is replaced by +.>
Step N5: converting k intoA binary number b, in this case->When =3, b is 010, and the initial information of the position of the first row and the first column of the flip matrix is replaced with +.>The initial information of the position of the second column of the first row is replaced by +.>The initial information of the position of the second column of the first row is replaced by +.>
Step N6: converting k intoA binary number b, in this case->When =3, b is 011, the initial information of the position of the first row and the first column of the inversion matrix is replaced by +.>The initial information of the position of the second column of the first row is replaced by +.>The initial information of the position of the second column of the first row is replaced by +.>
Step N7: converting k intoA binary number b, in this case->When =3, b is 100, and the initial information of the position of the first row and the first column of the inversion matrix is replaced by +.>The initial information of the position of the second column of the first row is replaced by +.>The initial information of the position of the second column of the first row is replaced by +.>
Step N8: converting k intoA binary number b, in this case->When =3, b is 101, and the initial information of the position of the first row and the first column of the inversion matrix is replaced with +.>The initial information of the position of the second column of the first row is replaced by +.>The initial information of the position of the second column of the first row is replaced by +.>
Step N9: converting k intoA binary number b, in this case->When =3, b is 110, the initial information of the position of the first row and the first column of the inversion matrix is replaced by +.>The initial information of the position of the second column of the first row is replaced by +.>The initial information of the position of the second column of the first row is replaced by +.>
Step N10: converting k intoA binary number b, in this case->When =3, b is 111, the initial information of the positions of the first row, the first column, the first row, the second column and the first row, the third column of the flip matrix is replaced with +.>
Step N11: entering a second row of the turning matrix, and executing a step N2;
step N12: after the Q-th row of the flip matrix is executed, the process proceeds to step S11.
7. The method of claim 1, wherein in step S2, the absolute value of the node LLR is sorted according to the absolute value of the node LLR, and when the absolute values are equal, the order is reduced according to the channel error rate of the channel transmission, so as to obtain the ordered sequence according to the position.
CN202010864035.5A 2020-08-25 2020-08-25 Polarization code confidence propagation dynamic overturning decoding method based on key set Active CN112104379B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010864035.5A CN112104379B (en) 2020-08-25 2020-08-25 Polarization code confidence propagation dynamic overturning decoding method based on key set

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010864035.5A CN112104379B (en) 2020-08-25 2020-08-25 Polarization code confidence propagation dynamic overturning decoding method based on key set

Publications (2)

Publication Number Publication Date
CN112104379A CN112104379A (en) 2020-12-18
CN112104379B true CN112104379B (en) 2024-01-30

Family

ID=73752700

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010864035.5A Active CN112104379B (en) 2020-08-25 2020-08-25 Polarization code confidence propagation dynamic overturning decoding method based on key set

Country Status (1)

Country Link
CN (1) CN112104379B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112929036A (en) * 2021-02-01 2021-06-08 山东科技大学 Confidence propagation dynamic flip decoding method based on log-likelihood ratio

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109842418A (en) * 2018-11-27 2019-06-04 东南大学 A kind of polarization code belief propagation interpretation method based on bit reversal
CN111490796A (en) * 2020-04-24 2020-08-04 北京交通大学 Belief propagation decoding method based on dynamic flip bit

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180285900A1 (en) * 2017-03-28 2018-10-04 Wipro Limited Method and system for determining a predictive model for estimating target output for an enterprise

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109842418A (en) * 2018-11-27 2019-06-04 东南大学 A kind of polarization code belief propagation interpretation method based on bit reversal
CN111490796A (en) * 2020-04-24 2020-08-04 北京交通大学 Belief propagation decoding method based on dynamic flip bit

Also Published As

Publication number Publication date
CN112104379A (en) 2020-12-18

Similar Documents

Publication Publication Date Title
TWI663839B (en) Method for providing soft information with decoder under hard decision hard decoding mode
US7373581B2 (en) Device, program, and method for decoding LDPC codes
Zhang et al. Shuffled belief propagation decoding
USRE44421E1 (en) Decoding apparatus for low-density parity-check codes using sequential decoding, and method thereof
JP4389373B2 (en) Decoder for iterative decoding of binary cyclic code
JP4320418B2 (en) Decoding device and receiving device
CN105763203B (en) Multi-element LDPC code decoding method based on hard reliability information
US11316540B2 (en) Method of decoding polar codes based on belief propagation
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
CN109921803B (en) High-density linear block code decoding method based on neural network
Deng et al. Reduced-complexity deep neural network-aided channel code decoder: A case study for BCH decoder
CN112104379B (en) Polarization code confidence propagation dynamic overturning decoding method based on key set
KR101657912B1 (en) Method of Decoding Non-Binary Low Density Parity Check Codes
Dupraz et al. Finite alphabet iterative decoders robust to faulty hardware: Analysis and selection
US20170222659A1 (en) Power improvement for ldpc
CN112929036A (en) Confidence propagation dynamic flip decoding method based on log-likelihood ratio
US11323139B2 (en) Apparatuses and methods for mapping frozen sets between polar codes and product codes
Rovella et al. Improved Syndrome-based Neural Decoder for Linear Block Codes
CN113556135A (en) Polarization code belief propagation bit flipping decoding method based on frozen flipping list
Judson et al. Efficient construction of successive cancellation decoding of polar codes using logistic regression algorithm
CN112534724B (en) Decoder and method for decoding polarization code and product code
CN113098532B (en) Low-delay low-complexity polar code decoding method and system
CN117914446A (en) Decoding method and system for algebraic code
CN116781089A (en) Belief propagation decoding method and related equipment
Aharoni et al. Data-Driven List Polar Decoder for Symmetric and Asymmetric Input Distributions

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant