A symbol flipping decoding method and system applicable to multi - polarization codes
By introducing a symbol flip decoding method in the multivariate polarization code, and dynamic flipping is used to use the SC-MS symbol flip decoder and the flip matrix to perform dynamic flip, the problems of high coding complexity and insufficient error correction performance are solved, and efficient decoding performance is achieved.
Patent Information
- Application Number
- CN202510407063.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-02
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2045-04-02
AI Technical Summary
The decoding complexity of multivariate polarization code is high. Traditional SCL algorithms need to traverse all possible values in the symbol domain, resulting in a sharp increase in computing resource consumption. The existing decoding methods lack the correlation between multivariate symbols and lack an efficient low-complexity error correction mechanism.
A symbol flip decoding method suitable for multivariate polarization code is proposed. By obtaining the decoded symbol sequence and its corresponding LLR value, precoding checksum dynamic symbol flip, and decoding using the prebuilt SC-MS symbol flip decoder and flip matrix to reduce the complexity of path search.
It significantly improves the SC-MS decoding performance of multivariate polarization code, reduces the path search complexity of traditional multivariate polarization code decoding, and is suitable for communication systems using multivariate polarization code.
Smart Images

Figure CN119906440B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of channel coding and decoding, and specifically to a symbol flipping decoding method and system applicable to multi - ary polar codes. Background Art
[0002] In the field of channel coding, as a coding scheme that can theoretically approach the Shannon limit, polar codes have received extensive attention since they were proposed by Arikan in 2009. Binary polar codes convert independent channels into reliable and unreliable channels through the channel polarization effect and have been applied to control channels in the 5G communication standard. However, the decoding performance of traditional binary polar codes has limitations in scenarios with short code lengths or medium - to - high signal - to - noise ratios. To improve performance, existing technologies adopt algorithms such as successive cancellation list decoding (SCL) and its improved algorithms (such as CRC - assisted SCL, CA - SCL), but still face problems such as high path metric calculation complexity and error propagation, especially with limited performance in multi - ary symbol mapping scenarios.
[0003] With the increasing demand for high spectral efficiency in communication systems, multi - ary polar codes have gradually become a research hotspot. Compared with binary polar codes, multi - ary polar codes are constructed based on higher - order finite fields and their symbol - level coding characteristics can better adapt to higher - order modulation, thus improving transmission efficiency. However, the decoding complexity of multi - ary polar codes grows exponentially with the symbol dimension. The traditional SCL algorithm needs to traverse all possible values in the symbol domain, resulting in a sharp increase in computational resource consumption. In addition, existing decoding methods lack sufficient exploration of the correlation between multi - ary symbols and lack an efficient low - complexity error - correction mechanism, which restricts their practical application in high - reliability communication systems.
[0004] In current technologies, the decoding optimization for multi - ary polar codes mostly focuses on reducing the computational amount of path expansion, such as by simplifying symbol probability calculation or restricting the search space. However, such methods may sacrifice error - correction performance. At the same time, bit - flipping decoding technology has proven to improve performance by dynamically correcting key bit errors in binary polar codes, but it faces challenges such as enhanced symbol - space discreteness and complex flipping decision criteria when directly extended to the multi - ary domain. Summary of the Invention
[0005] To solve the deficiencies mentioned in the above background art, the purpose of the present invention is to provide a symbol flipping decoding method and system applicable to multi - ary polar codes.
[0006] In a first aspect, the purpose of the present invention can be achieved through the following technical solutions: A symbol flipping decoding method applicable to multi - ary polar codes, the method comprising the following steps:
[0007] Obtain the decoded symbol sequence and the LLR values corresponding to the decoded symbol sequence, and perform precoding verification on the decoded symbol sequence. If the verification passes, the decoding ends. Among them, the decoded symbol sequence and the LLR values corresponding to the decoded symbol sequence are obtained based on initializing the SC-MS decoder and performing decoding;
[0008] If the verification fails, calculate the flipping position and the flipping symbol value based on the LLR values corresponding to the decoded symbol sequence and save them to the flipping matrix, and perform dynamic flipping on the decoded symbol based on the pre-built SC-MS symbol flipping decoder and the flipping matrix;
[0009] Perform precoding verification and maximum flipping decoding times judgment again. If the verification passes or the maximum flipping decoding times is reached, the decoding ends. Otherwise, perform dynamic flipping on the decoded symbol again.
[0010] Combined with the first aspect, in some implementation manners of the first aspect, the method further includes: The process of precoding verification is performed in field, and construct a multi-ary polarization code with the number of information symbols being in the field, the code length being , and the number of precoding verification symbols being , where represents the multi-ary polarization code , and the position sets of the information symbols and the precoding verification symbols of the multi-ary polarization code , where and , represents the rd element in the set , the code length , is a positive integer greater than 1, represents a finite field, is the number of elements in the finite field, and , is a positive integer greater than 1, the precoding matrix is a row column matrix, and the elements in the precoding matrix are defined in the finite field . Define the kernel transformation of the multi-ary polarization code as:
[0011]
[0012] The factor graph of the multi-ary polarization code has a total of layers, where , and each layer has a total of nodes, represents the kernel transformation function of the multi-ary polarization code, and is the layer, the and symbol values of the nodes; is the layer, the and kernel coefficients of the nodes; and are the symbol values of the layer, the and nodes; represents finite field addition, represents finite field multiplication, and the value of is obtained according to equations and , where the value of
[0013] is , and the value of is . Combining with the first aspect, in some implementations of the first aspect, the method further includes: The initialization process of the SC-MS decoder is as follows: Initialize the precoding check vector with a length of , where is the th element in the vector . Let represent the LLR value calculated in the th layer during the decoding process, represent the LLR value of the th layer, the 0th node, represent the LLR value of the th layer, the th node, and so on. is a -dimensional vector, written as , represents the 0th element in the vector , represents the th element in the vector , and so on. represents the th element in the vector , where . Initialize the LLR value of the th layer as the LLR value received by the decoder from the demodulator , that is .
[0014] Combined with the first aspect, in some implementations of the first aspect, the method further includes: The decoding process of the SC-MS decoder includes:
[0015] Based on the binary tree traversal characteristics of the serial cancellation (SC) decoding algorithm for binary polar codes and the binary tree structure with a depth of , the SC-MS decoder performs the following operations in the hierarchical order from to :
[0016] Update the LLR value of the check node: When the -th layer and the -th node are in the left subtree decoding stage, calculate the LLR value of the -th layer and the -th node according to the following formula :
[0017]
[0018] where represents the traversal subscript Find the minimum value of the vector , and are elements in the field, and the value of is ;
[0019] Update the LLR value of the variable node: When the -th layer and the -th node are in the right subtree decoding stage, calculate the LLR value of the -th layer and the -th node according to the following formula :
[0020]
[0021] where is the estimated symbol value of the -th layer and the -th node, is field element, and the value of is ;
[0022] Estimate the symbol value of the leaf node: When the -th node is in the -th layer, make a decision on it using the following formula to obtain the -th layer and the Estimated symbol value of a node :
[0023] ;
[0024] wherein is an element in the field, represents the traversal subscript to find the index of the minimum value in the vector ;
[0025] Perform feedback of the estimated symbol: When the symbol values of the th layer, the and th nodes are determined, use Equation to feedback the estimated symbol values of the th layer, the and th nodes to the th layer, the and th nodes, and update the estimated symbol values and ;
[0026] Repeat the process of updating the check node LLR value, estimating the leaf node symbol value, and performing feedback of the estimated symbol until the estimated symbol values of all nodes in the th layer are calculated, and save the decoded symbol sequence and its corresponding LLR value , wherein represents the th layer, the th estimated symbol, that is, the th decoded symbol, represents the LLR value corresponding to the th layer, the th estimated symbol, that is, the LLR value corresponding to the th decoded symbol
[0027] Combined with the first aspect, in some implementation manners of the first aspect, the method further includes: the process of pre-coding check on the decoded symbol sequence:
[0028] Calculate the pre-coding check vector of the current decoding through Equation , wherein represents the information symbol and pre-coding check symbol sequence of the current decoding, wherein is an element in the set , represents the estimated symbol value of the th layer, the th node Represents the pre-coding check matrix The transpose of, if , the check is successful, output the current decoded symbol sequence ; if , the check fails, then calculate all flipping cases according to the LLR values corresponding to the decoded symbol sequence where Represents the layer, the th estimated symbol, that is, the th decoded symbol, Represents the layer, the LLR value corresponding to the th estimated symbol, that is, the LLR value corresponding to the th decoded symbol.
[0029] Combined with the first aspect, in some implementations of the first aspect, the method further includes: the process of calculating the flipping position and the flipping symbol value based on the LLR values corresponding to the decoded symbol sequence:
[0030] Define the maximum number of decoded flipping times , where Represents the maximum possible number of values of the flipping position, Represents the maximum number of values of the flipping symbol value for each flipping position, initialize rows, columns of the flipping matrix All elements of are , that is , define two rows columns of the matrix and , initialize the value to 0, that is ; define two vectors of length and , initialize the value to 0, that is , denote the LLR value corresponding to the decoded sequence symbol obtained by the first SC-MS decoding as , use the set to represent the first elements in the set , that is ;
[0031] After initializing , sort the data in the th row of the matrix in ascending order, and store the sorted elements in the th row of the matrix in the Row In, the position indices of the sorted elements corresponding to the original array elements are stored in the matrix of the row In, is a counter, and every time a sorting is completed, increases by 1;
[0032] After sorting all the is completed, take the first column elements of the matrix and sort them in ascending order. Store the sorted elements in the vector . The position indices of the sorted elements corresponding to the original array elements are stored in the vector ; In;
[0033] According to the matrix and the vector calculate all the flipping situations in the subsequent symbol flipping decoding, and store the flipping situations in the flipping matrix . The operation is as follows: Set two nested loops. The outer loop is , and the inner loop is . Obtain the variable , the flipping position , and the flipping symbol value . Traverse the two nested loops and update the value of the th row and the th column of the matrix to be , that is . After obtaining the flipping matrix , then perform symbol flipping decoding.
[0034] Combined with the first aspect, in some implementation manners of the first aspect, the method further includes: The process of dynamically flipping the decoded symbols includes:
[0035] Dynamically estimate the symbol value of the leaf node using the flipping matrix: In the th flipping decoding, when the th node is at the th layer, perform dynamic flipping on it using the following formula to obtain the estimated symbol value of the node at the th layer and the th node:
[0036]
[0037] Based on the binary polarization code serial cancellation SC decoding algorithm's binary tree traversal characteristics and the depth of The binary tree structure initializes variables , and updates the LLR values of the check nodes and variable nodes in the hierarchical order from to . Dynamically estimate the symbol values of the leaf nodes using the flipping matrix and perform feedback of the symbol values until the estimated symbol values of all nodes in the th layer are calculated , obtaining the decoded symbol sequence . Then, perform the parity check formula and flipping decoding times judgment;
[0038] Process of parity check formula and flipping decoding times judgment:
[0039] Calculate the pre-coded parity vector of the current decoding through formula , where represents the information symbols and pre-coded parity symbol sequence of the current decoding, where is an element in the set , represents the estimated symbol value of the th layer and the th node, represents the transpose of the pre-coded parity matrix . If , the check is successful, the decoding ends, and the decoded symbol sequence is output; if , the check fails, and the maximum flipping decoding times judgment is performed;
[0040] If the current flipping decoding times , the decoding ends, and the decoded symbol sequence is output; if , update the flipping decoding times , and then continue to perform flipping decoding until the check is passed or the maximum flipping decoding times is reached.
[0041] In a second aspect, to achieve the above object, the present invention discloses a symbol flipping decoding system applicable to multi - polarization codes, including:
[0042] A decoding module, used to obtain the decoded symbol sequence and the LLR values corresponding to the decoded symbol sequence, perform pre - coded parity check on the decoded symbol sequence. If the check is passed, the decoding ends. Among them, the decoded symbol sequence and the LLR values corresponding to the decoded symbol sequence are obtained through decoding based on an initialized SC - MS decoder;
[0043] A dynamic flipping module, used to calculate the flipping positions and flipping symbol values based on the LLR values corresponding to the decoded symbol sequence and save them to the flipping matrix if the check fails, and perform dynamic flipping on the decoded symbols based on a pre - built SC - MS symbol flipping decoder and the flipping matrix;
[0044] The verification and judgment module is used to perform pre - coding verification and maximum flip decoding times judgment again. If the verification is passed or the maximum flip decoding times is reached, the decoding ends; otherwise, the decoded symbols are dynamically flipped again.
[0045] In another aspect of the present invention, in order to achieve the above - mentioned purpose, a terminal device is disclosed, which includes a memory, a processor, and a computer program stored in the memory and capable of running on the processor. The memory stores a computer program capable of running on the processor. When the processor loads and executes the computer program, a symbol flip decoding method for multi - ary polar codes as described above is adopted.
[0046] In yet another aspect of the present invention, in order to achieve the above - mentioned purpose, a computer - readable storage medium is disclosed. The computer - readable storage medium stores a computer program. When the computer program is loaded and executed by a processor, a symbol flip decoding method for multi - ary polar codes as described above is adopted.
[0047] Advantages of the present invention:
[0048] Through the multi - ary finite - field symbol flip strategy, the present invention significantly improves the SC - MS decoding performance of multi - ary polar codes and effectively reduces the path search complexity of traditional multi - ary polar code decoding, and is applicable to communication systems using multi - ary polar codes. Description of the drawings
[0049] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for use in the description of the embodiments or the prior art. Obviously, for those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings;
[0050] Figure 1 It is a schematic flow chart of the method of the present invention;
[0051] Figure 2 It is a schematic structural diagram of the system of the present invention;
[0052] Figure 3 It is a schematic diagram of the comparison of bit error rates in the embodiments of the present invention;
[0053] Figure 4 It is a schematic diagram of the comparison of average decoding times in the embodiments of the present invention. Detailed implementation manners
[0054] Next, the technical solutions in the embodiments of the present invention will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are only a part of the embodiments of the present invention, rather than all the embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments of the present invention without creative efforts belong to the scope of protection of the present invention.
[0055] Embodiment 1:
[0056] As Figure 1 shown, a symbol flipping decoding method applicable to multiple polarization codes includes the following steps:
[0057] S101: Obtain the decoded symbol sequence and the LLR value corresponding to the decoded symbol sequence, and perform precoding verification on the decoded symbol sequence. If the verification is passed, the decoding ends. Among them, the decoded symbol sequence and the LLR value corresponding to the decoded symbol sequence are obtained based on initializing the SC-MS decoder and performing decoding;
[0058] The process of initializing the SC-MS decoder includes:
[0059] Define and initialize a precoding verification vector with a length of , where is the th element in the vector , initialize the LLR value of the th layer to be the LLR value received by the decoder from the demodulator, that is, .
[0060] The decoding process of the SC-MS decoder includes:
[0061] Based on the binary tree traversal characteristics of the binary polarization code serial cancellation (SC) decoding algorithm and the binary tree structure with a depth of , the SC-MS decoder repeats updating the LLR values of the check nodes and variable nodes, estimating the symbol values of the leaf nodes, and performing feedback of the estimated symbols in the hierarchical order from to until the estimated symbol values of all nodes in the th layer are calculated, and save the decoded symbol sequence and its corresponding LLR value .
[0062] Specifically, based on the binary tree traversal characteristics of the binary polarization code serial cancellation SC decoding algorithm and the binary tree structure with a depth of , the SC-MS decoder follows the order from to Perform the following operations in the hierarchical order:
[0063] Update the LLR value of the check node: When the -th layer and the -th node are in the left subtree decoding stage, calculate the LLR value of the -th layer and the -th node according to the following formula :
[0064]
[0065] where represents the traversal subscript Find the minimum value of the vector , and are elements in the field, takes the value of ;
[0066] Update the LLR value of the variable node: When the -th layer and the -th node are in the right subtree decoding stage, calculate the LLR value of the -th layer and the -th node according to the following formula :
[0067]
[0068] where is the estimated symbol value of the -th layer and the -th node, is an element in the field, takes the value of ;
[0069] Estimate the symbol value of the leaf node: When the -th node is in the -th layer, make a decision on it using the following formula to obtain the estimated symbol value of the -th layer and the -th node :
[0070] ;
[0071] where is an element in the field, represents the traversal subscript Find the index of the minimum value in the vector ;
[0072] Perform feedback of the estimated symbols: When the symbol values of the th layer, the and th nodes are determined, use Equation to feedback the estimated symbol values of the th layer, the and th nodes to the th layer, the and th nodes, and update the estimated symbol values and ;
[0073] Repeat the above steps until the estimated symbol values of all nodes in the th layer are calculated, and save the decoded symbol sequence and its corresponding LLR value .
[0074] The process of performing precoding verification on the decoded symbol sequence includes:
[0075] Calculate the precoding verification vector of the current decoding through Equation , where represents the information symbol and precoding verification symbol sequence of the current decoding, where is an element in the set , represents the estimated symbol value of the th layer, the th node, represents the transpose of the precoding verification matrix . If , the verification is successful, and output the current decoded symbol sequence ; if , the verification fails, then calculate all flipping cases according to the LLR value corresponding to the decoded symbol sequence, where represents the th layer, the th estimated symbol, that is, the th decoded symbol, represents the LLR value corresponding to the th layer, the th estimated symbol, that is, the LLR value corresponding to the th decoded symbol.
[0076] S102: If the verification fails, calculate the flipping position and flipping symbol value based on the LLR value corresponding to the decoded symbol sequence and save them to the flipping matrix, and perform dynamic flipping on the decoded symbol based on the pre-built SC-MS symbol flipping decoder and the flipping matrix;
[0077] The process of calculating the flipping position and the flipped symbol value based on the LLR values corresponding to the decoded symbol sequence:
[0078] Define the maximum number of flipping decoding times , where represents the maximum possible number of values for the flipping position, represents the maximum possible number of values for the flipped symbol value at each flipping position. Initialize a row, column flipping matrix with all elements being , that is . Define two row column matrices and , initialize their values to 0, that is ; Define two vectors with lengths of and , initialize their values to 0, that is . Denote the LLR values corresponding to the decoded sequence symbols obtained by the first SC-MS decoding as . Use the set to represent the first elements in the set , that is .
[0079] First, after initialization , sort the data in the th row of the matrix in ascending order, and store the sorted elements in the th row of the matrix . Store the position indices of the sorted elements corresponding to the original array elements in the th row of the matrix . is a counter, and increases by 1 each time a sorting is completed. is a counter, and each time a sorting is completed, increases by 1.
[0080] Secondly, after sorting all , take the first column elements of the matrix , sort them in ascending order, and store the sorted elements in the vector . Store the position indices of the sorted elements corresponding to the original array elements in the vector .
[0081] Finally, based on the matrix and the vector calculate all possible flipping situations in the subsequent symbol flipping decoding, and store these possible flipping situations in the flipping matrix The specific operation is as follows: Set two nested loops. The outer loop is and the inner loop is to obtain the variables , the flipping position , and the flipped symbol value . Traverse the two nested loops to update the value of the th row and the th column of the matrix to , that is .
[0082] S103: Perform pre-coding check and maximum flipping decoding times judgment again. If the check is passed or the maximum flipping decoding times is reached, the decoding ends; otherwise, dynamically flip the decoded symbols again.
[0083] The process of dynamically flipping the decoded symbols includes:
[0084] Based on the binary polarization code successive cancellation (SC) decoding algorithm's binary tree traversal characteristics and the binary tree structure with a depth of , initialize the variable , and repeat updating the LLR values of the check nodes and variable nodes, dynamically estimating the symbol values of the leaf nodes using the flipping matrix, and performing feedback of the estimated symbols in the hierarchical order from to until the estimated symbol values of all nodes in the th layer are calculated to obtain the decoded symbol sequence , and then perform the check formula and flipping decoding times judgment;
[0085] The process of the check formula and flipping decoding times judgment:
[0086] Calculate the pre-coding check vector of the current decoding through the formula , where represents the information symbols and pre-coding check symbol sequence of the current decoding, where is an element in the set , represents the estimated symbol value of the th layer and the th node, represents the transpose of the pre-coding check matrix . If , the check is successful and the decoding ends, and the decoded symbol sequence is output ; If , the check fails, and the maximum number of flipping decoding times is determined;
[0087] If the current number of flipping decoding times , the decoding ends, and the decoded symbol sequence is output ; If , update the number of flipping decoding times , then continue to perform flipping decoding until the check is passed or the maximum number of flipping decoding times is reached.
[0088] Specifically, the solution of the present invention will be further elaborated by the following embodiments: In this specific implementation, it is set that the number of precoding check symbols is , the number of information symbols is , the code length is , the parameter , defined on the finite field , the parameter , , the maximum number of flipping decoding times , the kernel coefficients are all , the information symbol set is , the transmitted symbol sequence is . The LLR value received from the demodulator is .
[0089] Initialize the precoding check vector , the matrix , the LLR value of the th layer is assigned the LLR value received by the decoder from the demodulator, that is .
[0090] Calculate the symbol sequence of the first decoding according to the formula and its corresponding LLR value .
[0091] Calculate the precoding check vector , and get , the check fails, and symbol flipping decoding is performed.
[0092] Define , , , , , , . After sorting the LLR value obtained from the first decoding, the matrices and are obtained, and the first column elements of the matrix , sort it in ascending order and store the sorted elements in a vector . Store the position indices of the sorted elements corresponding to the original array elements in a vector . Obtain . Set up an outer loop , an inner loop , and a variable .
[0093] When , the variable , the flipping position , the flipping sign value ;
[0094] When , the variable , the flipping position , the flipping sign value ;
[0095] When , the variable , the flipping position , the flipping sign value ;
[0096] When , the variable , the flipping position , the flipping sign value ;
[0097] When , the variable , the flipping position , the flipping sign value ;
[0098] When , the variable , the flipping position , the flipping sign value ;
[0099] In summary, it can be seen that for the elements in the matrix , , , , , , and all other elements are .
[0100] In the flipping decoding, the calculation process of the LLR value of the node and the estimated symbol feedback process are the same as those of the SC-MS decoder. In the th flipping decoding, the estimated symbol value of the th layer and the th node is calculated using the following formula .
[0101]
[0102] In the th flipping decoding, when it is queried that , the symbol value that needs to be flipped is , and the decoded symbol sequence
[0103] is obtained. If it fails the parity check and the maximum number of flipping decoding times is not reached, continue with the flipping decoding;
[0104] In the th flipping decoding, when it is queried that , the symbol value that needs to be flipped is , and the decoded symbol sequence
[0105] is obtained. If it fails the parity check and the maximum number of flipping decoding times is not reached, continue with the flipping decoding; In the th flipping decoding, when it is queried that , the symbol value that needs to be flipped is , and the decoded symbol sequence
[0106] is obtained. If it passes the parity check, end the flipping decoding and output the decoded symbol sequence.
[0107] Embodiment 2: Second aspect, as Figure 2 shown, to achieve the above object, the present invention discloses a symbol flipping decoding system applicable to multi - element polar codes, including:
[0108] A decoding module 11, configured to obtain a decoded symbol sequence and the LLR value corresponding to the decoded symbol sequence, perform precoding parity check on the decoded symbol sequence. If the check passes, the decoding ends, where the decoded symbol sequence and the LLR value corresponding to the decoded symbol sequence are obtained based on initializing an SC - MS decoder and performing decoding;
[0109] The dynamic flipping module 12 is used to calculate the flipping position and the flipped symbol value based on the LLR values corresponding to the decoded symbol sequence and save them to the flipping matrix if the verification fails, and perform dynamic flipping on the decoded symbols based on the pre-built SC-MS symbol flipping decoder and the flipping matrix;
[0110] The verification judgment module 13 is used to perform pre-coding verification and maximum flipping decoding times judgment again. If the verification is passed or the maximum flipping decoding times is reached, the decoding ends; otherwise, the dynamic flipping of the decoded symbols is performed again.
[0111] Simulation content:
[0112] The SC-MS symbol flipping decoding method of the present invention and the existing SC-MS decoding method are respectively used for decoding, and the respective bit error rates are obtained as Figure 3 shown, and the average decoding times are as Figure 4 shown, where the length of the multi-ary polar code is , the number of information symbols is , the number of parity symbols is , and the kernel coefficient is .
[0113] Figure 3 In , the red curve is the bit error rate of the existing SC-MS decoding method for the code, and the black curve is the bit error rate of the symbol flipping decoding method with the maximum flipping times of the decoding method of the present invention for the Figure 3 code. It can be seen from that when the signal-to-noise ratio is 2.0 dB, the bit error rate of the existing SC-MS decoding method is , and the bit error rate of the symbol flipping decoding method with the maximum flipping times is
[0114] Figure 4 , and the decoding performance is improved by about one order of magnitude. In , the blue square column is the average decoding times of the symbol flipping decoding method with the maximum flipping times of the decoding method of the present invention for the Figure 4 code, and the orange square column is the decoding times of the existing SC-MS decoding method for the
[0115] Based on the same inventive concept, the present invention further provides a computer device, which includes: one or more processors, and a memory for storing one or more computer programs; the program includes program instructions, and the processor is configured to execute the program instructions stored in the memory. The processor may be a Central Processing Unit (CPU), or may also be other general-purpose processors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field-Programmable Gate Arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. It is the computing core and control core of the terminal, and is used to implement one or more instructions. Specifically, it is used to load and execute one or more instructions in the computer storage medium to implement the above method.
[0116] It should be further noted that, based on the same inventive concept, the present invention further provides a computer storage medium, on which a computer program is stored, and the computer program, when run by a processor, executes the above method. The storage medium may adopt any combination of one or more computer-readable media. The computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electrical, magnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples (non-exhaustive list) of the computer-readable storage medium include: an electrical connection having one or more wires, a portable computer disk, a hard disk, a Random Access Memory (RAM), a Read Only Memory (ROM), an Erasable Programmable Read Only Memory (EPROM or flash memory), an optical fiber, a portable compact disk read only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present invention, the computer-readable storage medium may be any tangible medium that contains or stores a program, and the program may be used by or combined with an instruction execution system, apparatus, or device.
[0117] In the description of this specification, the description with reference to terms such as "one embodiment", "example", "specific example", etc. means that the specific features, structures, materials, or characteristics described in connection with the embodiment or example are included in at least one embodiment or example of the present disclosure. In this specification, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials, or characteristics described may be combined in any one or more embodiments or examples in a suitable manner.
[0118] The foregoing has shown and described the basic principles, main features and advantages of the present disclosure. Those skilled in the art should understand that the present disclosure is not limited by the above embodiments, and what is described in the above embodiments and the specification is only to illustrate the principles of the present disclosure. Without departing from the spirit and scope of the present disclosure, the present disclosure will have various changes and improvements, and these changes and improvements fall within the scope of the present disclosure claimed.
Claims
1. A symbol flipping decoding method applicable to multi-element polar codes, characterized in that: The method comprises the following steps: Obtaining a decoding symbol sequence and an LLR value corresponding to the decoding symbol sequence, performing a precoding check on the decoding symbol sequence, and if the check passes, decoding is completed, wherein the decoding symbol sequence and the LLR value corresponding to the decoding symbol sequence are obtained by decoding based on a continuous elimination-minimum sum decoder; The precoding check process is performed on the GF(q) domain. A multi-element polar code C with K information symbols, N code length, and r precoding check symbols is constructed on the GF(q) domain. The information symbol and precoding check symbol position set of the multi-element polar code C is: where a i ∈[0, 1, ..., N-1] and a i <a i+1 , a i Representing a collection The i-th element in, code length N = 2 n , n is a positive integer greater than 1, GF(q) represents a finite field, q is the number of elements in the finite field, and q = 2 p , p is a positive integer greater than 1, the precoding matrix H is a matrix with r rows and r+K columns, the elements in the precoding matrix H are defined in the finite field GF(q), and the kernel transformation of the multivariate polar code is defined as: The factor graph of the multivariate polar code has n+1 layers, where n=log2(N), and each layer has N nodes. represents the kernel transformation function of the multivariate polar code, and It is the first layer, the and The symbol value of the node, is the l-1th layer, The kernel coefficient of each node, and is the l-1th layer, and The symbol value of the node, represents finite field addition, ⊙ represents finite field multiplication, and The value of and It is found that, where the value of t is t=0,1,...,N / 2-1, and the value of l is l=0,1,...,n; If the check fails, the flip position and flip symbol value are calculated based on the LLR value corresponding to the decoded symbol sequence and saved in the flip matrix, and the decoded symbol is dynamically flipped based on the pre-built continuous elimination-minimum sum symbol flip decoder and the flip matrix; The precoding check and the maximum number of flip decoding times are performed again. If the check is passed or the maximum number of flip decoding times is reached, the decoding is completed. Otherwise, the decoded symbols are dynamically flipped again.
2. The method for symbol flipping decoding of a multi-element polar code according to claim 1, characterized in that: The initialization process of the continuous elimination-minimum sum decoder is as follows: Initialize the precoding check vector s=[s0, ..., s i , ..., s r-1 ]=0, where s i is the i-th element in vector s, let represents the LLR value calculated at layer l during the decoding process, represents the LLR value of the 0th node at the lth layer, Represents the LLR value of the lth layer, the N-1th node, and so on. represents the LLR value of the i-th node at the l-th layer, where i = 0, 1, ..., N-1; is a q-dimensional vector, written as Represents vector The 0th element in Represents vector The qth element in , and so on, Represents vector The jth element in, where j = 0, 1, ..., q-1, initializes the LLR value L of the l = 0 layer 0 is the LLR value L received by the decoder from the demodulator ch , that is, L 0 =L ch .
3. The method for symbol flipping decoding of a multi-element polar code according to claim 2, characterized in that: The decoding process of the continuous elimination-minimum sum decoder includes: Based on the binary tree traversal characteristics of the serial elimination SC decoding algorithm of binary polar codes and the binary tree structure with a depth of n+1, the continuous elimination-minimum sum decoder performs the following operations in the hierarchical order from l=1 to l=n: Update the check node LLR value: when the lth layer and the When the node is in the left subtree decoding stage, the lth layer and the first layer are calculated according to the following formula: LLR value of each node Where min i∈GF(q) (x i ) means to traverse the index i to find the vector x=[x0,...,x i ,...,x q-1 ], α and β are elements in the GF(q) domain, and the value of t is t=0,1...,N / 2-1; Update variable node LLR value: when the lth layer, the When the node is in the right subtree decoding stage, the lth layer and the first layer are calculated according to the following formula: LLR value of each node in It is the first layer, the The estimated symbol value of each node, α is an element in the GF(q) field, and the value of t is t=0, 1, ..., N / 2-1; Estimated leaf node symbol value: When the i-th node is in the l=n-th layer, use the following formula to judge it and get the estimated symbol value of the i-th node in the l=n-th layer where α is an element in GF(q), arg min(x i ) means to traverse the index i to find the vector x=[x0,...,x i ,...,x q-1 ]; Feedback of estimated symbols: when the lth layer, the and After the symbol value of each node is determined, use the formula The first layer, the and The estimated symbol value of each node is fed back to the l-1th layer and the and nodes, update the estimated symbol value and Repeat the process of updating the check node LLR value, estimating the leaf node symbol value, and feeding back the estimated symbol until the estimated symbol values of all nodes in the l=nth layer are calculated and the decoded symbol sequence is saved. And its corresponding LLR value in represents the l=nth layer, the N-1th estimated symbol, that is, the N-1th decoded symbol, It represents the LLR value corresponding to the N-1th estimated symbol in the l=nth layer, that is, the LLR value corresponding to the N-1th decoded symbol.
4. The method for symbol flipping decoding of a multi-element polar code according to claim 1, characterized in that: The process of performing precoding check on the decoded symbol sequence: Pass-through Calculate the precoding check vector for the current decoding, where represents the current decoded information symbol and pre-coded check symbol sequence, where a0, a1, ..., a K+r-1 Is a collection The elements in Indicates the l=nth layer, the ath K+r-1 The estimated symbol value of nodes, H T represents the transpose of the precoding check matrix H. If s = 0 r , verification is successful, output the current decoding symbol sequence If s≠0 r If the check fails, then the LLR value corresponding to the decoded symbol sequence is Calculate all flipping cases where represents the l=nth layer, the N-1th estimated symbol, that is, the N-1th decoded symbol, It represents the LLR value corresponding to the N-1th estimated symbol in the l=nth layer, that is, the LLR value corresponding to the N-1th decoded symbol.
5. The method for symbol flipping decoding of a multi-element polar code according to claim 1, characterized in that: The process of calculating the flip position and the flip symbol value based on the LLR value corresponding to the decoded symbol sequence: Define the maximum number of flip decoding times T max =N s ×N v , where N s Indicates the maximum possible number of flip positions, N v Indicates the maximum number of flip symbol values for each flip position, initialize T max Row, N column flip matrix All elements of are -1, that is, Define two matrices with K rows and q columns and The initialization value is 0, that is Define two vectors L' and I' of length K, with an initial value of 0, that is, L' = 0 K×1 , I′=0 K×1 , record the decoded symbol sequence obtained by the first continuous elimination-minimum sum decoding The corresponding LLR value is Using ordered sets Represents an ordered set The first K elements in After initializing i=b0, j=0, the matrix L is n Middle Row Data Arrange in ascending order and store the sorted elements in the matrix The jth row in In the matrix, the position index of the sorted elements corresponding to the original array elements is stored in the matrix The jth row of In the above example, j is a counter, which increases by 1 each time a sort is completed. In all After sorting, take the matrix The first element of Sort it in ascending order, store the sorted elements in vector L′, and store the position index of the sorted elements corresponding to the original array elements in vector I′; According to the matrix The sum vector I′ calculates all T in the subsequent sign flip decoding max Flip the situation and store it in the flip matrix The operation is as follows: set up two layers of loops, the outer loop is i = 0:1:N s -1, the inner loop is j=0:1:N v -1, get variable k = i × N v +j, flip position Flip the sign value Traverse the two layers of loops and update the matrix in turn The value of the kth row and ath column is b, that is, Get the flip matrix After that, the sign is reversed and decoded.
6. The method for symbol flipping decoding of a multi-element polar code according to claim 1, characterized in that: The process of dynamically flipping the decoded symbols includes: Use the flip matrix to dynamically estimate the leaf node symbol value: at the tth s In the flip decoding, when the i-th node is in the l=n-th layer, it is dynamically flipped using the following formula to obtain the estimated symbol value of the i-th node in the l=n-th layer: Based on the binary tree traversal characteristics of the binary polar code serial elimination SC decoding algorithm and the binary tree structure with a depth of n+1, the variable t is initialized. s = 0, update the LLR values of the check nodes and variable nodes in the hierarchical order from l = 1 to l = n, use the flip matrix to dynamically estimate the symbol value of the leaf node and feedback the symbol value until the estimated symbol value of all nodes in the l = n layer is calculated Get the decoded symbol sequence After that, the check formula and the number of flip decoding are judged. GF(q) represents a finite field. The process of checking the formula and determining the number of flip decoding times: Pass-through Calculate the precoding check vector for the current decoding, where represents the current decoded information symbol and pre-coded check symbol sequence, where a0, a1, ..., a K+r-1 Is a collection The elements in Indicates the l=nth layer, the ath K+r-1 The estimated symbol value of nodes, H T represents the transpose of the precoding check matrix H. If s = 0 r , verification is successful, decoding is completed, and the decoding symbol sequence is output If s≠0 r , verification fails, and the maximum number of flip decoding times is determined; If the current number of flip decoding times is t s ≥T max , decoding is completed, and the decoding symbol sequence is output If t s <T max , update the number of flip decoding times t s =t s +1, the flip decoding continues until it passes the check or reaches the maximum number of flip decoding times.
7. A symbol flip decoding system applicable to a multi-element polar code, adopting a symbol flip decoding method applicable to a multi-element polar code according to any one of claims 1 to 6, characterized in that: include: A decoding module is used to obtain a decoding symbol sequence and an LLR value corresponding to the decoding symbol sequence, and perform a precoding check on the decoding symbol sequence. If the check is passed, the decoding is completed, wherein the decoding symbol sequence and the LLR value corresponding to the decoding symbol sequence are obtained based on initializing a continuous elimination-minimum sum decoder and decoding; The precoding check process is performed on the GF(q) domain. A multi-element polar code C with K information symbols, N code length, and r precoding check symbols is constructed on the GF(q) domain. The information symbol and precoding check symbol position set of the multi-element polar code C is: where a i ∈[0, 1, ..., N-1] and a i <a i+1 , a i Representing a collection The i-th element in, code length N = 2 n , n is a positive integer greater than 1, GF(q) represents a finite field, q is the number of elements in the finite field, and q = 2 p , p is a positive integer greater than 1, the precoding matrix H is a matrix with r rows and r+K columns, the elements in the precoding matrix H are defined in the finite field GF(q), and the kernel transformation of the multivariate polar code is defined as: The factor graph of the multivariate polar code has n+1 layers, where n=log2(N), and each layer has N nodes. represents the kernel transformation function of the multivariate polar code, and It is the first layer, the and The symbol value of the node, is the l-1th layer, The kernel coefficient of each node, and is the l-1th layer, and The symbol value of the node, represents finite field addition, ⊙ represents finite field multiplication, and The value of and It is found that, where the value of t is t=0,1,...,N / 2-1, and the value of l is l=0,1,...,n; A dynamic flip module is used to calculate the flip position and flip symbol value based on the LLR value corresponding to the decoded symbol sequence and save them to the flip matrix if the verification fails, and dynamically flip the decoded symbol based on the pre-built continuous elimination-minimum sum symbol flip decoder and the flip matrix; The verification judgment module is used to perform precoding verification and maximum flip decoding times again. If the verification is passed or the maximum flip decoding times are reached, the decoding is completed; otherwise, the decoded symbols are dynamically flipped again.
8. A terminal device, comprising a memory, a processor, and a computer program stored in the memory and capable of running on the processor, characterized in that: The memory stores a computer program that can be run on the processor. When the processor loads and executes the computer program, a symbol flipping decoding method applicable to a multi-element polar code according to any one of claims 1 to 6 is adopted.
9. A computer-readable storage medium having a computer program stored therein, characterized in that: When the computer program is loaded and executed by the processor, a symbol flipping decoding method applicable to a multi-element polar code according to any one of claims 1 to 6 is adopted.
Citation Information
Patent Citations
Polarization code belief propagation bit flipping decoding method based on frozen flipping list
CN113556135A