Decoding method and related apparatus
By introducing the iterative update of the initialized decoding parameters and punishment factor sequences in the bit flip decoder, the problem of insufficient error correction performance of the bit flip decoder under lightweight calculations is solved, and the error correction performance of the bit flip decoder under lightweight conditions is realized. Improved efficiency error correction performance.
Patent Information
- Application Number
- PCT/CN2024/089059
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-06-29
- Filing Date
- 2024-04-22
- Publication Date
- 2025-01-02
AI Technical Summary
In the prior art, Bit-Flipping Decoder (BF) has insufficient error correction performance based on lightweight computing, making it difficult to find a balance between hardware area and power consumption.
By introducing initialized decoding parameters, including entropy threshold, bit flip sequence, penalty factor sequence and companion formula, iterative calculations are performed to improve error correction performance, and the penalty factor sequence is used to update during the iteration process to avoid huge local traps. Improve the accuracy of the decoding process.
Under the conditions of lightweight computing, the error correction performance is significantly improved, the error detection and correction capabilities of decoding sequences are improved, the complexity of hardware implementation is reduced, the huge local traps are avoided, and the reliability of the decoding process is enhanced.
Smart Images

Figure CN2024089059_02012025_PF_FP_ABST
Abstract
Description
A decoding method and related device
[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on June 29, 2023, with application number 202310778381.5 and invention name “A decoding method and related device”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present invention relates to the field of chip data processing technology, and in particular to a decoding method and related devices. Background Art
[0003] Low-Density Parity-Check Code (LDPC) is widely used in NAND flash applications. To cover NAND channels under different aging conditions, multi-decoder integrated systems have become a multi-type solution to balance the trade-offs between error correction performance, throughput, power, and area. Among the various decoding algorithms, the Min-Sum Decoder (MS) provides excellent decoding performance but sacrifices hardware area and power consumption. In contrast, the Bit-Flipping Decoder (BF) achieves lightweight computing at the expense of error correction performance.
[0004] Therefore, how to improve the error correction performance of the bit-flipping decoder BF based on lightweight computing is a problem that needs to be solved urgently.
[0005] Summary of the Invention
[0006] The embodiment of the present invention provides a decoding method and related apparatus for performing iterative calculation based on initialized decoding parameters, and decoding a sequence to be decoded based on the decoding parameters after iterative calculation, thereby improving the error correction performance of the sequence to be decoded on the basis of lightweight calculation.
[0007] A first aspect of the embodiments of the present application provides a decoding method, including:
[0008] Obtaining a check matrix and a sequence to be decoded;
[0009] Check whether the sequence to be decoded is correct based on the syndrome generated by the check matrix and the sequence to be decoded;
[0010] If so, performing iterative calculation according to the initialized decoding parameters, and decoding the to-be-decoded sequence according to the iteratively calculated decoding parameters, where the initialized decoding parameters include an entropy threshold, a bit flip sequence, a penalty factor sequence, a first syndrome, and a second syndrome;
[0011] Output the decoding result.
[0012] Preferably, before performing iterative calculation according to the initialized decoding parameters, the method further includes:
[0013] The decoding parameters are initialized according to the syndrome and the maximum column weight of the check matrix to obtain initialized decoding parameters.
[0014] Preferably, initializing the decoding parameters according to the syndrome and the maximum column weight of the check matrix includes:
[0015] Calculate the entropy threshold according to the maximum column weight of the check matrix;
[0016] Let the first syndrome and the second syndrome be equal to syndrome;
[0017] Let the length of the bit-reversed sequence be equal to the length of the sequence to be decoded, and let the sequence elements in the bit-reversed sequence have the same value;
[0018] The length of the penalty factor sequence is set to be equal to the length of the sequence to be decoded, and the sequence elements in the penalty factor sequence have the same value.
[0019] Preferably, performing iterative calculation according to the initialized decoding parameters, and decoding the to-be-decoded sequence according to the iteratively calculated decoding parameters, includes:
[0020] Calculate the entropy value according to the bit reversal sequence, the first syndrome and the penalty factor sequence;
[0021] According to the comparison result between the entropy value and the entropy value threshold, the iterative bit flip sequence and the second syndrome are updated;
[0022] Check whether the sequence to be decoded is correct based on the updated iterative second syndrome;
[0023] If the sequence to be decoded is correct, the sequence to be decoded is decoded according to the updated iterative bit flip sequence.
[0024] Preferably, if the sequence to be decoded is checked to be incorrect according to the updated second syndrome, the method further includes:
[0025] Calculate the penalty factor sequence after updating iteration according to the entropy value, entropy threshold, bit flip sequence, and first syndrome;
[0026] Calculate the first syndrome after the update iteration according to the second syndrome after the update iteration;
[0027] Iterative calculation is performed according to the updated decoding parameters, and the sequence to be decoded is decoded according to the iteratively calculated decoding parameters.
[0028] Preferably, if the sequence to be decoded is checked to be incorrect according to the updated second syndrome, the method further includes:
[0029] The entropy value threshold after the update iteration is calculated according to the bit flip sequence after the update iteration, the second syndrome after the update iteration, and the penalty factor sequence after the update iteration.
[0030] Preferably, calculating the updated penalty factor sequence according to the entropy value, the entropy value threshold, the bit flip sequence, and the first syndrome includes:
[0031] If it is determined that the sequence element of the sequence to be decoded is incorrect, a first update instruction is executed on the penalty factor sequence according to the entropy value and the entropy value threshold;
[0032] If a maximum local trap occurs during the decoding process and the error rate of the judgment behavior is greater than a first threshold, a second update instruction is executed on the penalty factor sequence according to the entropy value, the entropy value threshold, the bit flip sequence, and the first syndrome, wherein the judgment behavior is used to indicate that a sequence element of the sequence to be decoded is incorrect;
[0033] If no maximum local trap occurs during the decoding process, or the accuracy of the judgment behavior is greater than a second threshold, a third update instruction is executed on the penalty factor sequence according to the bit flip sequence and the first syndrome, wherein the first update instruction, the second update instruction, and the third update instruction are different from each other.
[0034] Preferably, updating the bit flip sequence and the second syndrome according to the comparison result of the entropy value and the entropy value threshold comprises:
[0035] If the entropy value is greater than or equal to the entropy threshold, or,
[0036] If the entropy value is less than the entropy value threshold, a maximum local trap occurs in the decoding process, and the misjudgment rate of the judgment behavior is greater than the first threshold, then the bit flip sequence and the second syndrome are updated;
[0037] If no maximum local trap occurs during the decoding process, or the accuracy of the judgment behavior is greater than the second threshold, the bit flip sequence and the second syndrome are not updated.
[0038] Preferably, a large local trap occurs during the decoding process, including:
[0039] The number of error bits in the decoded sequence during the decoding process is less than a third threshold, but the iteration does not converge;
[0040] or,
[0041] The number of false flips of the decoding sequence during the decoding process is greater than a fourth threshold.
[0042] A second aspect of the embodiments of the present application provides a decoding device, including:
[0043] An acquisition unit, used for acquiring a check matrix and a sequence to be decoded;
[0044] A check unit, configured to check whether the sequence to be decoded is correct based on a syndrome generated by a check matrix and the sequence to be decoded;
[0045] a decoding unit configured to perform iterative calculation based on initialized decoding parameters when a sequence to be decoded is erroneous, and decode the sequence to be decoded based on the iteratively calculated decoding parameters, wherein the initialized decoding parameters include an entropy threshold, a bit flip sequence, a penalty factor sequence, a first syndrome, and a second syndrome;
[0046] The output unit is used to output the decoding result.
[0047] Preferably, the device further comprises:
[0048] The initialization unit is used to initialize the decoding parameters according to the syndrome and the maximum column weight of the check matrix before performing iterative calculation according to the initialized decoding parameters to obtain the initialized decoding parameters.
[0049] Preferably, the initialization unit is specifically used for:
[0050] Calculate the entropy threshold according to the maximum column weight of the check matrix;
[0051] Let the first syndrome and the second syndrome be equal to syndrome;
[0052] Let the length of the bit-reversed sequence be equal to the length of the sequence to be decoded, and let the sequence elements in the bit-reversed sequence have the same value;
[0053] The length of the penalty factor sequence is set to be equal to the length of the sequence to be decoded, and the sequence elements in the penalty factor sequence have the same value.
[0054] Preferably, the decoding unit is specifically used for:
[0055] Calculate the entropy value according to the bit reversal sequence, the first syndrome and the penalty factor sequence;
[0056] According to the comparison result between the entropy value and the entropy value threshold, the iterative bit flip sequence and the second syndrome are updated;
[0057] Check whether the sequence to be decoded is correct based on the updated iterative second syndrome;
[0058] If the sequence to be decoded is correct, the sequence to be decoded is decoded according to the updated iterative bit flip sequence.
[0059] Preferably, the decoding unit is further configured to:
[0060] If the decoded sequence is incorrect according to the updated second syndrome, the updated iterative penalty factor sequence is calculated based on the entropy value, the entropy threshold, the bit flip sequence, and the first syndrome;
[0061] Calculate the first syndrome after the update iteration according to the second syndrome after the update iteration;
[0062] Iterative calculation is performed according to the updated decoding parameters, and the sequence to be decoded is decoded according to the iteratively calculated decoding parameters.
[0063] Preferably, the decoding unit is further configured to:
[0064] If the sequence to be decoded is incorrect according to the updated second syndrome, the updated entropy threshold is calculated according to the updated iterative bit flip sequence, the updated iterative second syndrome and the updated iterative penalty factor sequence.
[0065] Preferably, the decoding unit is specifically used for:
[0066] If it is determined that the sequence element of the sequence to be decoded is incorrect, a first update instruction is executed on the penalty factor sequence according to the entropy value and the entropy value threshold;
[0067] If a maximum local trap occurs during the decoding process and the error rate of the judgment behavior is greater than a first threshold, a second update instruction is executed on the penalty factor sequence according to the entropy value, the entropy value threshold, the bit flip sequence, and the first syndrome, wherein the judgment behavior is used to indicate that a sequence element of the sequence to be decoded is incorrect;
[0068] If no maximum local trap occurs during the decoding process, or the accuracy of the judgment behavior is greater than a second threshold, a third update instruction is executed on the penalty factor sequence according to the bit flip sequence and the first syndrome, wherein the first update instruction, the second update instruction, and the third update instruction are different from each other.
[0069] Preferably, the decoding unit is specifically used for:
[0070] If the entropy value is greater than or equal to the entropy threshold, or,
[0071] If the entropy value is less than the entropy value threshold, a maximum local trap occurs in the decoding process, and the misjudgment rate of the judgment behavior is greater than the first threshold, then the bit flip sequence and the second syndrome are updated;
[0072] If no maximum local trap occurs during the decoding process, or the accuracy of the judgment behavior is greater than the second threshold, the bit flip sequence and the second syndrome are not updated.
[0073] Preferably, the maximal local trap comprises:
[0074] The number of error bits in the decoded sequence during the decoding process is less than a third threshold, but the iteration does not converge;
[0075] or,
[0076] The number of false flips of the decoding sequence during the decoding process is greater than a fourth threshold.
[0077] A third aspect of an embodiment of the present application provides a computer device, comprising a processor, which is used to implement the decoding method provided in the first aspect of the embodiment of the present application when executing a computer program stored in a memory.
[0078] A fourth aspect of the embodiments of the present application provides a computer-readable storage medium on which a computer program is stored. When the computer program is executed by a processor, it is used to implement the decoding method provided in the first aspect of the embodiments of the present application.
[0079] In an embodiment of the present application, a check matrix and a sequence to be decoded are obtained; based on a syndrome generated by the check matrix and the sequence to be decoded, the sequence to be decoded is checked for errors; if so, an iterative calculation is performed based on initialized decoding parameters, and the sequence to be decoded is decoded based on the iteratively calculated decoding parameters, where the initialized decoding parameters include an entropy threshold, a bit flip sequence, a penalty factor sequence, a first syndrome, and a second syndrome; and a decoding result is output.
[0080] Because a penalty factor sequence is introduced into the initialization parameters of the embodiment of the present application, and the penalty factor sequence is continuously updated and iterated during the iteration process, the decoding sequence during the decoding process can escape from the maximum local trap, thereby improving the error correction performance of the decoding sequence. BRIEF DESCRIPTION OF THE DRAWINGS
[0081] FIG1 is a schematic diagram of an embodiment of a decoding method in an embodiment of the present application;
[0082] FIG2 is a schematic diagram of an embodiment of a decoding parameter initialization process in an embodiment of the present application;
[0083] FIG3 is a detailed description of step 103 in the embodiment of FIG1 ;
[0084] FIG4 is a schematic diagram comparing the decoding effects of the decoding method according to an embodiment of the present application and the decoding method according to the prior art;
[0085] FIG5 is a schematic diagram of a hardware device of a decoding method according to an embodiment of the present application;
[0086] FIG6 is a schematic diagram of a decoding process in an embodiment of the present application;
[0087] FIG7 is a schematic diagram of an embodiment of a decoding device in an embodiment of the present application. DETAILED DESCRIPTION
[0088] The embodiment of the present invention provides a decoding method and related apparatus for performing iterative calculation based on initialized decoding parameters, and decoding a sequence to be decoded based on the decoding parameters after iterative calculation, thereby improving the error correction performance of the sequence to be decoded on the basis of lightweight calculation.
[0089] In order to enable those skilled in the art to better understand the solutions of the present invention, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the embodiments described are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts should fall within the scope of protection of the present invention.
[0090] The terms "first," "second," "third," "fourth," and the like in the specification and claims of the present invention and in the accompanying drawings are used to distinguish similar objects and are not necessarily used to describe a particular order or precedence. It should be understood that the terms used in this manner are interchangeable where appropriate so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "including" and "having," and any variations thereof, are intended to cover non-exclusive inclusions. For example, a process, method, system, product, or apparatus comprising a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0091] For ease of understanding, the decoding method in the embodiment of the present application is described below. Please refer to FIG1 . An embodiment of the decoding method in the embodiment of the present application includes:
[0092] 101. Obtain a check matrix and a sequence to be decoded;
[0093] Specifically, in the embodiment of the present application, when error correction is performed on the sequence to be decoded, the sequence to be decoded is generally checked for correctness or error using a check matrix. In the bit-flipping decoding method, the check matrix is a matrix composed of 0s and 1s. For the convenience of description, the check matrix is referred to as H, and the sequence to be decoded is referred to as C. H can be the matrix described as follows:
[0094] The sequence C to be decoded can be described as follows: C = {c1, c2, ..., cn}.
[0095] 102. Check whether the sequence to be decoded is correct based on the parity check matrix and the syndrome generated by the sequence to be decoded. If so, execute step 103; if not, output the sequence to be decoded.
[0096] Specifically, when the check matrix is used to check the sequence to be decoded, the syndrome s is generally calculated according to the following formula, and s is used to check the sequence to be decoded: s = HC T ;
[0097] If s=0, it indicates that there is no error bit in the sequence to be decoded; if s≠0, it indicates that there is an error bit in the sequence to be decoded.
[0098] 103. Perform iterative calculation based on the initialized decoding parameters, and decode the to-be-decoded sequence based on the iteratively calculated decoding parameters, where the initialized decoding parameters include an entropy threshold, a bit flip sequence, a penalty factor sequence, a first syndrome, and a second syndrome;
[0099] If it is determined in step 102 that the sequence to be decoded is erroneous, iterative calculation is performed based on the initialized decoding parameters, and the sequence to be decoded is decoded based on the iteratively calculated decoding parameters, wherein the initialized decoding parameters include an entropy threshold, a bit flip sequence, a penalty factor sequence, a first syndrome, and a second syndrome.
[0100] For the convenience of description, we denote the bit flip sequence as e, the penalty factor sequence as p, the entropy threshold as En_max, the first syndrome as s1, and the second syndrome as s2.
[0101] Specifically, the bit flip sequence in the embodiment of the present application is used to decode the sequence to be decoded; the entropy value threshold is used to determine whether to flip the current bit in the sequence to be decoded. If the current bit in the sequence to be decoded is judged to be incorrect, the current bit is flipped; otherwise, the current bit is not flipped; the penalty factor sequence is used to correct the misjudgment behavior of the decoding process, the first syndrome is used to calculate the threshold of the variable node in the check matrix, and the second syndrome is used to perform the calculation of the entropy value threshold and determine whether the current decoding is successful.
[0102] Specifically, the origin of the initialized decoding parameters and the process of iterative calculation based on the initialized decoding parameters will be described in the following embodiments and will not be repeated here.
[0103] 104. Output the decoding result.
[0104] Furthermore, after decoding the sequence to be decoded, if the decoding is successful, the decoded sequence is output; if the decoding fails, a prompt indicating that the decoding is completed is given.
[0105] Because a penalty factor sequence is introduced into the decoding parameters after initialization in the embodiment of the present application, and the penalty factor sequence is continuously updated and iterated (i.e., corrected) during the iterative process, the decoding sequence during the decoding process can escape from the maximum local trap, thereby improving the error correction performance of the decoding sequence.
[0106] In the embodiment of FIG1 , before executing step 103, it is necessary to initialize the decoding parameters to obtain the initialized decoding parameters. The process of initializing the decoding parameters is described below. Please refer to FIG2 , which shows an embodiment of the decoding parameter initialization process.
[0107] 201. Calculate an entropy threshold value according to the maximum column weight of the check matrix;
[0108] Before describing this method, the Tanner graph in the bit-flipping decoding method is explained first, because the binary LDPC code is defined by a parity check matrix H with m rows and n columns, and the Tanner graph is a bipartite graph consisting of a cardinality n variable node set v = {v1, v2, ..., vn} and a cardinality m check node set x = {x1, x2, ..., xm}, and these nodes are connected by edges.
[0109] If the element H in the check matrix H ij =1, it means that node v j and x i There are edge connections between them, where j∈(1,n) and i∈(1,m). The weight of a column (or row) in H refers to the number of non-zero values in that column or row. Therefore, the degree of a variable node (or check node) is equal to the weight of the corresponding column (or row) in H. That is, the variable node v j (or check node x i ) is equal to the weight of the j-th column in H (or the weight of the i-th row in H).
[0110] Furthermore, if each column in H has a fixed weight dv, then the binary LDPC code is considered to have fixed column weights dv, and if there are at least two columns with different weights in H, then the LDPC code has variable column weights.
[0111] Corresponding to the check matrix in step 101, assuming that the maximum column weight of the check matrix is dv, the embodiment of the present application calculates the entropy value threshold according to the following formula: En_max=dv+1;
[0112] Therefore, corresponding to the check matrix in step 101, En_max in the embodiment of the present application is dv+1.
[0113] 202. Let the first syndrome and the second syndrome be equal to syndrome;
[0114] During the initialization process, the embodiment of the present application sets the first syndrome and the second syndrome to be equal to the syndrome.
[0115] That is, s1=s, s2=s.
[0116] 203. Set the length of the bit-reversed sequence to be equal to the length of the sequence to be decoded, and set the sequence elements in the bit-reversed sequence to have the same value;
[0117] Corresponding to the sequence to be decoded C={c1, c2, ..., cn} in the embodiment of Figure 1, since the length of the sequence to be decoded is n, e={e1, e2, ..., en} in the embodiment of the present application, and e1 to en are all the same value. For convenience of description, the embodiment of the present application sets each element in e1 to en to 0.
[0118] That is: e={e1,e2,...,en}, where e j =0,j∈[1,n].
[0119] 204. Set the length of the penalty factor sequence to be equal to the length of the sequence to be decoded, and set the sequence elements in the penalty factor sequence to be the same value.
[0120] Similarly, the embodiment of this application makes:
[0121] p={p1,p2,...,pn}, where p j =1,j∈[1,n].
[0122] The above embodiment describes the initialization process of the decoding parameters in detail, thereby improving the reliability of the decoding process of the embodiment of the present application.
[0123] Based on step 103 in the embodiment of FIG. 1 , the iterative calculation process of the decoding parameters after initialization and the decoding process of the to-be-decoded sequence according to the iterative decoding parameters are described below. Please refer to FIG. 3 , which shows the detailed steps of step 103:
[0124] 301. Calculate the entropy value according to the bit reversal sequence, the first syndrome and the penalty factor sequence;
[0125] For ease of understanding, the following describes the decoding process of the sequence to be decoded by taking the column layering in the layered bit flipping method as an example:
[0126] Because the check matrix in the sequence to be decoded is m*n, the column layering in this application is n layers, and the number of variable nodes determined according to the check matrix H is m, and the number of check nodes is n.
[0127] Specifically, for each variable node in each layer, the entropy value of the corresponding variable node is calculated according to the following formula: Ej = e j + S1 j + p j , j ∈ [1, n];
[0128] Among them, E j represents the entropy value of the j-th variable node, e j represents the j-th sequence element in the e sequence, S1 j represents the number of unsatisfied check nodes connected to the j-th variable node, p j represents the j-th sequence element in the p sequence.
[0129] Among them:
[0130] N x(j) represents the set of all check nodes connected to the j-th variable node.
[0131] 302. Update the iterative bit flipping sequence and the second syndrome according to the comparison result between the entropy value and the entropy value threshold;
[0132] After obtaining the entropy value of the corresponding variable node in each layer, the entropy value of the corresponding variable node is compared with the entropy value threshold, and the bit flipping sequence and the second syndrome are updated according to the comparison result.
[0133] Specifically:
[0134] (1) If the entropy value of the variable node is greater than the entropy value threshold, update the bit flipping sequence and the second syndrome, that is:
[0135] If E j ≥ En_max, then N x(j) represents the set of all check nodes connected to the j-th variable node.
[0136] (2) If the entropy value of the variable node is less than the entropy value threshold, a large local trap appears in the decoding process, and when the misjudgment rate of bit errors in the sequence to be decoded is greater than the first threshold, also update the bit flipping sequence and the second syndrome, that is:
[0137] If E j < En_max, a large local trap appears in the decoding process, e j = 1, and S1 j ≠ 0, then N x(j) represents the set of all check nodes connected to the j-th variable node, where, e j = 1, and S1 j ≠ 0 indicates that the misjudgment rate of bit errors in the decoding process is greater than the first threshold.
[0138] (3) If the maximum local trap does not occur during the decoding process, or the accuracy of the judgment behavior is greater than the second threshold, the bit flip sequence and the second syndrome are not updated, that is:
[0139] The decoding process does not appear the said extremely large local trap, or e j =0, or S1 j =0, then e j =e j , s2 i =s2 i ,i∈n x(j) ,N x(j) Represents the set of all check nodes connected to the j-th variable node.
[0140] Furthermore, the maximal local trap in (2) and (3) above refers to:
[0141] A. During the decoding process, the number of error bits in the decoded sequence is less than the third threshold, but the iteration does not converge;
[0142] or,
[0143] B. The number of false flips of the decoding sequence during the decoding process is greater than the fourth threshold.
[0144] Specifically, in mathematical representation, to determine if situation A has occurred, we can count the number of "1"s in the second syndrome, s_num, and the number of changes in the bit-flip sequence, e_num, between the two iterations. If both s_num and e_num are less than the set threshold for several consecutive iterations, then situation A in the maximum local trap has occurred.
[0145] In mathematical representation, to determine situation B, we can count the number of changes in the bit flip sequence between the two iterative updates, e_num, and the current entropy threshold En_max. If e_num is greater than the set threshold and En_max is less than the set threshold, it is determined that situation B in the maximum local trap has occurred.
[0146] 303. Verify whether the sequence to be decoded is correct based on the updated iterative second syndrome.
[0147] After obtaining the updated iterative second syndrome, it is determined whether the second syndrome is 0. If the second syndrome is 0, it indicates that the sequence to be decoded is correct; otherwise, the sequence to be decoded is incorrect.
[0148] Because there are n variable nodes in the embodiment of the present application, the embodiment of the present application needs to calculate the entropy value of each variable node separately, and then update the bit flip sequence and the second syndrome according to the comparison result of the entropy value of each variable node and the entropy value threshold.
[0149] 304. If the sequence to be decoded is correct, the sequence to be decoded is decoded according to the updated bit flip sequence after iteration.
[0150] If the sequence to be decoded is correct after being verified by the updated second syndrome, the sequence to be decoded is decoded according to the following formula:
[0151] where, z j represents the decoded sequence, c j represents the sequence to be decoded, and e j represents the bit flip sequence.
[0152] 305. If the sequence to be decoded is incorrect, calculate the updated penalty factor sequence according to the entropy value, entropy threshold, bit flip sequence, and first syndrome;
[0153] Specifically:
[0154] (1) If it is determined that the sequence element of the sequence to be decoded is incorrect, execute the first update instruction on the current sequence element in the penalty factor sequence according to the entropy value and the entropy threshold, that is:
[0155] If E j ≥ En_max, let p j = 0;
[0156] (2) If a large local trap appears in the decoding process and the misjudgment rate of the judgment behavior is greater than the first threshold, execute the second update instruction on the penalty factor sequence according to the entropy value, the entropy threshold, the bit flip sequence, and the first syndrome, where the judgment behavior is used to represent that it is determined that the sequence element of the sequence to be decoded is incorrect, that is:
[0157] If Ej < En_max, a large local trap appears in the decoding process, e j = 1, and S1 j ≠ 0, then let p j = 2;
[0158] (3) If the large local trap does not appear in the decoding process, or the correct rate of the judgment behavior is greater than the second threshold, execute the third update instruction on the penalty factor sequence according to the bit flip sequence and the first syndrome, where the first update instruction, the second update instruction, and the third update instruction are different from each other, that is:
[0159] If the large local trap does not appear in the decoding process, or e j = 0, or S1 j = 0, then let p j = 1.
[0160] The description of the maximum local trap is similar to that of step 302 and will not be repeated here.
[0161] Specifically, during the decoding process, steps 301 to 305 are executed for each of all variable nodes until the decoding is successful (the second syndrome is 0), or all variable nodes have completed one round of decoding parameter iterative calculation (that is, all nodes have completed steps 301 to 305), but the decoding still fails, then step 306 is executed.
[0162] 306. Calculate the updated iterative first syndrome based on the updated iterative second syndrome.
[0163] Specifically, the first syndrome after the update iteration is calculated based on the second syndrome after the update iteration, that is:
[0164] Let s1 = s2;
[0165] 307. Calculate the entropy value threshold after the update iteration according to the bit flip sequence after the update iteration, the second syndrome after the update iteration, and the penalty factor sequence after the update iteration;
[0166] If all variable nodes are iterated for one round of decoding parameter calculation, the entropy threshold after the update iteration is calculated according to the bit flip sequence after the update iteration, the second syndrome after the update iteration, and the penalty factor sequence after the update iteration, that is: En_max=max(e j +s2 j +p j ), j∈(1,n).
[0167] 308. Perform iterative calculation based on the updated decoding parameters, and decode the sequence to be decoded based on the iteratively calculated decoding parameters.
[0168] After the update iterations of all decoding parameters are completed, iterative calculations are continued according to the updated iterative decoding parameters, and decoding of the sequence to be decoded is continued according to the iteratively calculated decoding parameters.
[0169] That is, after completing one round of iterative calculation on the decoding parameters of all variable nodes, a second round of iterative calculation is performed on all variable nodes according to the updated iterative decoding parameters until the decoding is successful, or the iterative round reaches the preset maximum number of iterations and the sequence to be decoded is still incorrect, then the decoding failure is output.
[0170] In the embodiment of the present application, on the one hand, the syndromes are extended into two groups: one group is a first syndrome for calculating the entropy value of the variable node, and the other group is a second syndrome for determining whether the decoding is successful. In addition, the updating of the entropy value threshold reduces the complexity of the hardware implementation compared to the full comparator in the prior art. On the other hand, the embodiment of the present application dynamically adjusts the penalty factor sequence according to the maximum local trap, so that the decoded sequence in the decoding process escapes the maximum local trap, thereby improving the error correction performance.
[0171] For the convenience of comparison, FIG4 shows a comparison diagram of the performance of the decoding method in the embodiment of the present application and the decoding method in the prior art.
[0172] Further, for easier understanding, the following examples are given with reference to specific embodiments:
[0173] Assume that the hardware device of the layered bit-flipping (LBF) decoding method is shown in FIG5 , where:
[0174] LBF input check: This unit receives the sequence to be decoded C and performs syndrome check s=HC T If s=0, there is no error bit in C, and the LBF output unit directly outputs the decoding sequence z, z=C; otherwise, there is an error bit in C, and decoding operation is required.
[0175] LBF Initialization: This unit initializes the LBF decoder parameters based on the syndrome s generated by the LBF input check unit, including the first syndrome s1 = s and the second syndrome s2 = s. Other initialization parameters include the bit flip sequence e = 0, the penalty factor sequence p = 1, and the entropy threshold En_max = dv + 1.
[0176] LBF decoding: This unit is responsible for iteratively calculating the decoding parameters of the variable node in each update iteration, including entropy value calculation, bit flip sequence iterative calculation, second syndrome iterative calculation, second syndrome judgment, penalty factor sequence adjustment, entropy value threshold iterative calculation, and first syndrome iterative calculation.
[0177] LBF State Machine: This unit is primarily responsible for managing all control signals sent to the LBF decoding module and the LBF output module, as well as the control signals it receives from the LBF decoding module. If the LBF state machine receives an interrupt signal from the LBF decoding module indicating a successful decoding, it sends a signal to the LBF output module indicating that the current decoding was successful and also sends a signal to the LBF decoding module indicating that the next set of sequences to be decoded can be received. If the LBF state machine receives an interrupt signal from the LBF decoding module indicating a failed decoding, it sends a signal to the LBF output module indicating that the current decoding failed and also sends a signal to the LBF decoding module indicating that the next set of sequences to be decoded can be received.
[0178] LBF output: This unit is responsible for the following two things: First, it stores the decoded sequence z output from the LBF decoding module. Second, it stores the sequence to be decoded C output from the LBF input check module.
[0179] Furthermore, Figure 6 shows a diagram of the cyclic decoding process. In the LBF decoding module, the entropy threshold En_max and the first syndrome s1 are updated after each round (a round is defined as the iterative update of decoding parameters for all variable nodes), but remain constant during the decoding process of the current round. Specifically, in the first round of updates, the entropy threshold En_max and the first syndrome s1 are both derived from the initialized decoder. In the second and subsequent rounds, the entropy threshold En_max and the first syndrome s1 are both derived from the previous round of updates.
[0180] The bit flip sequence, penalty factor sequence and first syndrome are updated after the entropy value of each variable node is calculated, but the initial values of the bit flip sequence, penalty factor sequence and first syndrome are derived from the initialization parameters.
[0181] Based on the hardware device of FIG5 , the decoding process is described in detail below:
[0182] The hardware input parameters include: check matrix H, number of check matrix rows m, number of columns n, preset maximum number of cycles, and sequence to be decoded C = {c1, c2, ..., cn};
[0183] Output parameters include: decoding sequence z = {z1, z2, ..., zn};
[0184] The hardware initialization includes:
[0185] 1. Calculate the syndrome: j∈N v(i) , i∈[1,m], N v(i) Represents the set of variable nodes connected to the i-th check node.
[0186] 2. Initialization of bit reversal sequence: e={e1,e2,...en}, e j =0,j∈[1,n];
[0187] 3. Initialization of penalty factor sequence: p = {p1, p2, ... pn}, where p j =1,j∈[1,n];
[0188] 4. Entropy threshold initialization: En_max = dv + 1, where dv is the maximum column weight of the check matrix H;
[0189] 5. Initialize the first and second syndromes, where s1 = s and s2 = s.
[0190] The decoding process includes:
[0191] 1. Use the layered bit flip decoding method to calculate the entropy value of each variable node;
[0192] 2. For each variable node, according to the calculated entropy value E j Compare with the entropy threshold En_max and classify according to whether the current decoding process falls into a maximum local trap:
[0193] 2.1, if E j ≥En_max, then P j =0, i∈N x(j) , N x(j) represents the set of all check nodes connected to the j-th variable node.
[0194] 2.2, if E j <En_max,e j =1, S1 j ≠0, and a large local trap occurs during the decoding process, then P j =2, j∈[1,n],i∈N x(j) , N x(j) represents the set of all check nodes connected to the j-th variable node.
[0195] 2.3, if the decoding process does not have a large local trap, or e j ≠1, or S1 j =0, then e j =e j , P j =1,s2 i =s2 i , j∈[1,n], i∈Nx(j) , N x(j) represents the set of all check nodes connected to the j-th variable node.
[0196] 3. Determine whether the second syndrome is 0. If it is 0, output the decoding sequence z. If it is not 0, obtain the current layer number in the layered bit-flipping decoding and determine whether the layer number of the current layer is less than n. If it is less than n, continue to update the decoding parameters for the next layer until the update reaches the nth layer. If it is equal to n, perform the next round of update (i.e., execute the next round of decoding) until the decoding is successful within the preset maximum number of decoding times, or when the preset maximum number of decoding times is reached, if the sequence to be decoded is still incorrect, then the decoding is terminated.
[0197] The decoding method in the embodiment of the present application is described in detail above. Next, the decoding device in the embodiment of the present application is described. Please refer to Figure 7. An embodiment of the decoding device in the embodiment of the present application includes:
[0198] An acquisition unit 701 is configured to acquire a check matrix and a sequence to be decoded;
[0199] A check unit 702 is configured to check whether the sequence to be decoded is correct based on a syndrome generated by a check matrix and the sequence to be decoded;
[0200] a decoding unit 703 configured to perform iterative calculation based on initialized decoding parameters when the sequence to be decoded is erroneous, and decode the sequence to be decoded based on the iteratively calculated decoding parameters, wherein the initialized decoding parameters include an entropy threshold, a bit flip sequence, a penalty factor sequence, a first syndrome, and a second syndrome;
[0201] The output unit 704 is configured to output the decoding result.
[0202] Preferably, the device further comprises:
[0203] The initialization unit 705 is configured to initialize the decoding parameters according to the syndrome and the maximum column weight of the check matrix before performing iterative calculation based on the initialized decoding parameters to obtain the initialized decoding parameters.
[0204] Preferably, the initialization unit 705 is specifically used for:
[0205] Calculate the entropy threshold according to the maximum column weight of the check matrix;
[0206] Let the first syndrome and the second syndrome be equal to syndrome;
[0207] Let the length of the bit-reversed sequence be equal to the length of the sequence to be decoded, and let the sequence elements in the bit-reversed sequence have the same value;
[0208] The length of the penalty factor sequence is set to be equal to the length of the sequence to be decoded, and the sequence elements in the penalty factor sequence have the same value.
[0209] Preferably, the decoding unit 703 is specifically configured to:
[0210] Calculate the entropy value according to the bit reversal sequence, the first syndrome and the penalty factor sequence;
[0211] According to the comparison result between the entropy value and the entropy value threshold, the iterative bit flip sequence and the second syndrome are updated;
[0212] Check whether the sequence to be decoded is correct based on the updated iterative second syndrome;
[0213] If the sequence to be decoded is correct, the sequence to be decoded is decoded according to the updated iterative bit flip sequence.
[0214] Preferably, the decoding unit 703 is further configured to:
[0215] If the decoded sequence is incorrect according to the updated second syndrome, the updated iterative penalty factor sequence is calculated based on the entropy value, the entropy threshold, the bit flip sequence, and the first syndrome;
[0216] Calculate the first syndrome after the update iteration according to the second syndrome after the update iteration;
[0217] Iterative calculation is performed according to the updated decoding parameters, and the sequence to be decoded is decoded according to the iteratively calculated decoding parameters.
[0218] Preferably, the decoding unit 703 is further configured to:
[0219] If the sequence to be decoded is incorrect according to the updated second syndrome, the updated entropy threshold is calculated according to the updated iterative bit flip sequence, the updated iterative second syndrome and the updated iterative penalty factor sequence.
[0220] Preferably, the decoding unit 703 is specifically configured to:
[0221] If it is determined that the sequence element of the sequence to be decoded is incorrect, a first update instruction is executed on the penalty factor sequence according to the entropy value and the entropy value threshold;
[0222] If a maximum local trap occurs during the decoding process and the error rate of the judgment behavior is greater than a first threshold, a second update instruction is executed on the penalty factor sequence according to the entropy value, the entropy value threshold, the bit flip sequence, and the first syndrome, wherein the judgment behavior is used to indicate that a sequence element of the sequence to be decoded is incorrect;
[0223] If no maximum local trap occurs during the decoding process, or the accuracy of the judgment behavior is greater than a second threshold, a third update instruction is executed on the penalty factor sequence according to the bit flip sequence and the first syndrome, wherein the first update instruction, the second update instruction, and the third update instruction are different from each other.
[0224] Preferably, the decoding unit 703 is specifically configured to:
[0225] If the entropy value is greater than or equal to the entropy threshold, or,
[0226] If the entropy value is less than the entropy value threshold, a maximum local trap occurs in the decoding process, and the misjudgment rate of the judgment behavior is greater than the first threshold, then the bit flip sequence and the second syndrome are updated;
[0227] If no maximum local trap occurs during the decoding process, or the accuracy of the judgment behavior is greater than the second threshold, the bit flip sequence and the second syndrome are not updated.
[0228] Preferably, the maximal local trap comprises:
[0229] The number of error bits in the decoded sequence during the decoding process is less than a third threshold, but the iteration does not converge;
[0230] or,
[0231] The number of false flips of the decoding sequence during the decoding process is greater than a fourth threshold.
[0232] It should be noted that the functions of each unit in the embodiment of the present application are similar to those described in the embodiments of Figures 1 to 6 and will not be repeated here.
[0233] Because a penalty factor sequence is introduced into the decoding parameters after initialization in the embodiment of the present application, and during the iterative process, the penalty factor sequence is continuously updated and iterated (i.e., corrected) by the decoding unit 703, the decoding sequence during the decoding process can escape from the maximum local trap, thereby improving the error correction performance of the decoding sequence.
[0234] The decoding device in the embodiment of the present invention is described above from the perspective of modular functional entities. The computer device in the embodiment of the present invention is described below from the perspective of hardware processing:
[0235] The computer device is used to implement the functions of the decoding device. In one embodiment of the present invention, the computer device includes:
[0236] processor and memory;
[0237] The memory is used to store computer programs, and when the processor is used to execute the computer programs stored in the memory, the following steps can be implemented:
[0238] Obtaining a check matrix and a sequence to be decoded;
[0239] Check whether the sequence to be decoded is correct based on the syndrome generated by the check matrix and the sequence to be decoded;
[0240] If so, performing iterative calculation according to the initialized decoding parameters, and decoding the to-be-decoded sequence according to the iteratively calculated decoding parameters, where the initialized decoding parameters include an entropy threshold, a bit flip sequence, a penalty factor sequence, a first syndrome, and a second syndrome;
[0241] Output the decoding result.
[0242] In some embodiments of the present invention, before performing iterative calculation according to the initialized decoding parameters, the processor may further be configured to implement the following steps:
[0243] The decoding parameters are initialized according to the syndrome and the maximum column weight of the check matrix to obtain initialized decoding parameters.
[0244] In some embodiments of the present invention, the processor may further be configured to implement the following steps:
[0245] Calculate the entropy threshold according to the maximum column weight of the check matrix;
[0246] Let the first syndrome and the second syndrome be equal to syndrome;
[0247] Let the length of the bit-reversed sequence be equal to the length of the sequence to be decoded, and let the sequence elements in the bit-reversed sequence have the same value;
[0248] The length of the penalty factor sequence is set to be equal to the length of the sequence to be decoded, and the sequence elements in the penalty factor sequence have the same value.
[0249] In some embodiments of the present invention, the processor may further be configured to implement the following steps:
[0250] Calculate the entropy value according to the bit reversal sequence, the first syndrome and the penalty factor sequence;
[0251] According to the comparison result between the entropy value and the entropy value threshold, the iterative bit flip sequence and the second syndrome are updated;
[0252] Check whether the sequence to be decoded is correct based on the updated iterative second syndrome;
[0253] If the sequence to be decoded is correct, the sequence to be decoded is decoded according to the updated iterative bit flip sequence.
[0254] In some embodiments of the present invention, the processor may further be configured to implement the following steps:
[0255] Calculate the penalty factor sequence after updating iteration according to the entropy value, entropy threshold, bit flip sequence, and first syndrome;
[0256] Calculate the first syndrome after the update iteration according to the second syndrome after the update iteration;
[0257] Iterative calculation is performed according to the updated decoding parameters, and the sequence to be decoded is decoded according to the iteratively calculated decoding parameters.
[0258] In some embodiments of the present invention, the processor may further be configured to implement the following steps:
[0259] The entropy value threshold after the update iteration is calculated according to the bit flip sequence after the update iteration, the second syndrome after the update iteration, and the penalty factor sequence after the update iteration.
[0260] In some embodiments of the present invention, the processor may further be configured to implement the following steps:
[0261] If it is determined that the sequence element of the sequence to be decoded is incorrect, a first update instruction is executed on the penalty factor sequence according to the entropy value and the entropy value threshold;
[0262] If a maximum local trap occurs during the decoding process and the error rate of the judgment behavior is greater than a first threshold, a second update instruction is executed on the penalty factor sequence according to the entropy value, the entropy value threshold, the bit flip sequence, and the first syndrome, wherein the judgment behavior is used to indicate that a sequence element of the sequence to be decoded is incorrect;
[0263] If no maximum local trap occurs during the decoding process, or the accuracy of the judgment behavior is greater than a second threshold, a third update instruction is executed on the penalty factor sequence according to the bit flip sequence and the first syndrome, wherein the first update instruction, the second update instruction, and the third update instruction are different from each other.
[0264] In some embodiments of the present invention, the processor may further be configured to implement the following steps:
[0265] If the entropy value is greater than or equal to the entropy threshold, or,
[0266] If the entropy value is less than the entropy value threshold, a maximum local trap occurs in the decoding process, and the misjudgment rate of the judgment behavior is greater than the first threshold, then the bit flip sequence and the second syndrome are updated;
[0267] If no maximum local trap occurs during the decoding process, or the accuracy of the judgment behavior is greater than the second threshold, the bit flip sequence and the second syndrome are not updated.
[0268] In some embodiments of the present invention, the extremely large local trap comprises:
[0269] The number of error bits in the decoded sequence during the decoding process is less than a third threshold, but the iteration does not converge;
[0270] or,
[0271] The number of false flips of the decoding sequence during the decoding process is greater than a fourth threshold.
[0272] It is understood that when the processor in the computer device described above executes the computer program, it can also implement the functions of the various units in the corresponding device embodiments described above, and no further details are given here. Exemplarily, the computer program can be divided into one or more modules / units, one or more modules / units are stored in the memory and executed by the processor to complete the present invention. One or more modules / units can be a series of computer program instruction segments that can perform specific functions, and the instruction segments are used to describe the execution process of the computer program in the decoding device. For example, the computer program can be divided into the various units in the above-mentioned decoding device, and each unit can implement the specific functions described in the above-mentioned corresponding decoding device.
[0273] A computer device may be a computing device such as a desktop computer, laptop, PDA, or cloud server. A computer device may include, but is not limited to, a processor and memory. Those skilled in the art will appreciate that processors and memory are merely examples of computer devices and do not constitute a limitation of a computer device. A computer device may include more or fewer components, or a combination of certain components, or different components. For example, a computer device may also include input and output devices, network access devices, buses, and the like.
[0274] The processor can be a central processing unit (CPU), other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA), other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor can be a microprocessor or any conventional processor. The processor is the control center of the computer device and connects the various parts of the entire computer device using various interfaces and lines.
[0275] The memory can be used to store computer programs and / or modules. The processor implements various functions of the computer device by running or executing the computer programs and / or modules stored in the memory, and calling the data stored in the memory. The memory can mainly include a program storage area and a data storage area. The program storage area can store an operating system, at least one application required for a function, etc.; the data storage area can store data created based on the use of the terminal, etc. In addition, the memory can include high-speed random access memory and non-volatile memory, such as a hard disk, internal memory, a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card (Flash Card), at least one disk storage device, a flash memory device, or other volatile solid-state storage device.
[0276] The present invention further provides a computer-readable storage medium, which is used to implement the functions of a decoding device and stores a computer program. When the computer program is executed by a processor, the processor can be configured to perform the following steps:
[0277] Obtaining a check matrix and a sequence to be decoded;
[0278] Check whether the sequence to be decoded is correct based on the syndrome generated by the check matrix and the sequence to be decoded;
[0279] If so, performing iterative calculation according to the initialized decoding parameters, and decoding the to-be-decoded sequence according to the iteratively calculated decoding parameters, where the initialized decoding parameters include an entropy threshold, a bit flip sequence, a penalty factor sequence, a first syndrome, and a second syndrome;
[0280] Output the decoding result.
[0281] In some embodiments of the present invention, before performing iterative calculations based on the initialized decoding parameters, when a computer program stored in a computer-readable storage medium is executed by a processor, the processor may further be configured to implement the following steps:
[0282] The decoding parameters are initialized according to the syndrome and the maximum column weight of the check matrix to obtain initialized decoding parameters.
[0283] In some embodiments of the present invention, when a computer program stored in a computer-readable storage medium is executed by a processor, the processor may further be configured to implement the following steps:
[0284] Calculate the entropy threshold according to the maximum column weight of the check matrix;
[0285] Let the first syndrome and the second syndrome be equal to syndrome;
[0286] Let the length of the bit-reversed sequence be equal to the length of the sequence to be decoded, and let the sequence elements in the bit-reversed sequence have the same value;
[0287] The length of the penalty factor sequence is set to be equal to the length of the sequence to be decoded, and the sequence elements in the penalty factor sequence have the same value.
[0288] In some embodiments of the present invention, when a computer program stored in a computer-readable storage medium is executed by a processor, the processor may further be configured to implement the following steps:
[0289] Calculate the entropy value according to the bit reversal sequence, the first syndrome and the penalty factor sequence;
[0290] According to the comparison result between the entropy value and the entropy value threshold, the iterative bit flip sequence and the second syndrome are updated;
[0291] Check whether the sequence to be decoded is correct based on the updated iterative second syndrome;
[0292] If the sequence to be decoded is correct, the sequence to be decoded is decoded according to the updated iterative bit flip sequence.
[0293] In some embodiments of the present invention, when a computer program stored in a computer-readable storage medium is executed by a processor, the processor may further be configured to implement the following steps:
[0294] Calculate the penalty factor sequence after updating iteration according to the entropy value, entropy threshold, bit flip sequence, and first syndrome;
[0295] Calculate the first syndrome after the update iteration according to the second syndrome after the update iteration;
[0296] Iterative calculation is performed according to the updated decoding parameters, and the sequence to be decoded is decoded according to the iteratively calculated decoding parameters.
[0297] In some embodiments of the present invention, when a computer program stored in a computer-readable storage medium is executed by a processor, the processor may further be configured to implement the following steps:
[0298] The entropy value threshold after the update iteration is calculated according to the bit flip sequence after the update iteration, the second syndrome after the update iteration, and the penalty factor sequence after the update iteration.
[0299] In some embodiments of the present invention, when a computer program stored in a computer-readable storage medium is executed by a processor, the processor may further be configured to implement the following steps:
[0300] If it is determined that the sequence element of the sequence to be decoded is incorrect, a first update instruction is executed on the penalty factor sequence according to the entropy value and the entropy value threshold;
[0301] If a maximum local trap occurs during the decoding process and the error rate of the judgment behavior is greater than a first threshold, a second update instruction is executed on the penalty factor sequence according to the entropy value, the entropy value threshold, the bit flip sequence, and the first syndrome, wherein the judgment behavior is used to indicate that a sequence element of the sequence to be decoded is incorrect;
[0302] If no maximum local trap occurs during the decoding process, or the accuracy of the judgment behavior is greater than a second threshold, a third update instruction is executed on the penalty factor sequence according to the bit flip sequence and the first syndrome, wherein the first update instruction, the second update instruction, and the third update instruction are different from each other.
[0303] In some embodiments of the present invention, when a computer program stored in a computer-readable storage medium is executed by a processor, the processor may further be configured to implement the following steps:
[0304] If the entropy value is greater than or equal to the entropy threshold, or,
[0305] If the entropy value is less than the entropy value threshold, a maximum local trap occurs in the decoding process, and the misjudgment rate of the judgment behavior is greater than the first threshold, then the bit flip sequence and the second syndrome are updated;
[0306] If no maximum local trap occurs during the decoding process, or the accuracy of the judgment behavior is greater than the second threshold, the bit flip sequence and the second syndrome are not updated.
[0307] In some embodiments of the present invention, the extremely large local trap comprises:
[0308] The number of error bits in the decoded sequence during the decoding process is less than a third threshold, but the iteration does not converge;
[0309] or,
[0310] The number of false flips of the decoding sequence during the decoding process is greater than a fourth threshold.
[0311] It is understood that if the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a corresponding computer-readable storage medium. Based on this understanding, the present invention implements all or part of the processes in the above-mentioned corresponding embodiment methods, and can also be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium. When the computer program is executed by a processor, it can implement the steps of the above-mentioned various method embodiments. Among them, the computer program includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal and software distribution medium. It should be noted that the content contained in the computer-readable medium can be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, computer-readable media do not include electric carrier signals and telecommunication signals.
[0312] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.
[0313] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0314] In addition, the functional units in the various embodiments of the present invention may be integrated into a single processing unit, each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.
[0315] As described above, the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit the same. Although the present invention has been described in detail with reference to the above embodiments, those skilled in the art should understand that the technical solutions described in the above embodiments can still be modified, or some of the technical features thereof can be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A decoding method, characterized in that: include: Obtaining a check matrix and a sequence to be decoded; Checking whether the sequence to be decoded is correct according to the check matrix and the syndrome generated by the sequence to be decoded; If yes, iterative calculation is performed according to the initialized decoding parameters, and the sequence to be decoded is decoded according to the iteratively calculated decoding parameters, wherein the initialized decoding parameters include an entropy value threshold, a bit flip sequence, a penalty factor sequence, a first syndrome and a second syndrome; Output decoding result; The iterative calculation is performed according to the initialized decoding parameters, and the decoding sequence to be decoded is decoded according to the iteratively calculated decoding parameters, including: Calculating an entropy value according to the bit flip sequence, the first syndrome and the penalty factor sequence; According to a comparison result between the entropy value and the entropy value threshold, updating and iterating the bit flip sequence and the second syndrome; Checking whether the sequence to be decoded is wrong according to the second syndrome after updating and iteration; If the sequence to be decoded is correct, the sequence to be decoded is decoded according to the updated iterative bit flip sequence.
2. The method according to claim 1, characterized in that Before performing iterative calculation according to the initialized decoding parameters, the method further includes: The decoding parameters are initialized according to the syndrome and the maximum column weight of the check matrix to obtain the initialized decoding parameters.
3. The method according to claim 2, characterized in that The initializing the decoding parameters according to the syndrome and the maximum column weight of the check matrix comprises: Calculating the entropy value threshold according to the maximum column weight of the check matrix; Let the first syndrome and the second syndrome be equal to the syndrome; The sequence length of the bit flip sequence is set to be equal to the length of the sequence to be decoded, and the sequence elements in the bit flip sequence have the same value; Let the sequence length of the penalty factor sequence be equal to the length of the sequence to be decoded, and The sequence elements in the penalty factor sequence have the same value.
4. The method according to claim 1, characterized in that: If the sequence to be decoded is checked to be incorrect according to the second syndrome after the update iteration, the method further includes: Calculate and update the iterative penalty factor sequence according to the entropy value, the entropy value threshold, the bit flip sequence, and the first syndrome; According to the second syndrome after the update iteration, the first syndrome after the update iteration is calculated; Iterative calculation is performed according to the updated iterative decoding parameters, and the to-be-decoded sequence is decoded according to the iteratively calculated decoding parameters.
5. The method according to claim 4, characterized in that If the sequence to be decoded is checked to be incorrect according to the updated second syndrome, the method further comprises: The entropy value threshold after the update iteration is calculated according to the bit flip sequence after the update iteration, the second syndrome after the update iteration and the penalty factor sequence after the update iteration.
6. The method according to claim 4, characterized in that Calculating an updated penalty factor sequence according to the entropy value, the entropy value threshold, the bit flip sequence, and the first syndrome, including: If it is determined that the sequence element of the sequence to be decoded is incorrect, executing a first update instruction on the penalty factor sequence according to the entropy value and the entropy value threshold; If a maximum local trap occurs in the decoding process and the misjudgment rate of the judgment behavior is greater than a first threshold, a second update instruction is executed on the penalty factor sequence according to the entropy value, the entropy value threshold, the bit flip sequence and the first syndrome, wherein the judgment behavior is used to characterize that a sequence element of the sequence to be decoded is judged to be incorrect; If no maximum local trap occurs during the decoding process, or the accuracy of the judgment behavior is greater than a second threshold, a third update instruction is executed on the penalty factor sequence according to the bit flip sequence and the first syndrome, wherein the first update instruction, the second update instruction and the third update instruction are different from each other.
7. The method according to claim 6, characterized in that According to the comparison result of the entropy value and the entropy value threshold, updating the bit flip sequence and the second syndrome includes: If the entropy value is greater than or equal to the entropy value threshold, or, If the entropy value is less than the entropy value threshold, the maximum local trap occurs in the decoding process, and When the misjudgment rate of the judgment behavior is greater than the first threshold, the bit flip sequence and the second syndrome are updated; If the maximum local trap does not occur during the decoding process, or the accuracy of the judgment behavior is greater than the second threshold, the bit flip sequence and the second syndrome are not updated.
8. The method according to claim 6, characterized in that The decoding process has extremely large local traps, including: The number of error bits in the decoding sequence during the decoding process is less than a third threshold, but the iteration does not converge; or, The number of false flips of the decoding sequence in the decoding process is greater than a fourth threshold.
9. A decoding device, characterized in that: include: An acquisition unit, used for acquiring a check matrix and a sequence to be decoded; A checking unit, configured to check whether the sequence to be decoded has errors according to the check matrix and a syndrome generated by the sequence to be decoded; A decoding unit, configured to perform iterative calculation according to the initialized decoding parameters when the sequence to be decoded is erroneous, and decode the sequence to be decoded according to the iteratively calculated decoding parameters, wherein the initialized decoding parameters include an entropy value threshold, a bit flip sequence, a penalty factor sequence, a first syndrome and a second syndrome; An output unit, used for outputting a decoding result; The decoding unit is specifically used for: Calculate the entropy value according to the bit flip sequence, the first syndrome and the penalty factor sequence; According to the comparison result between the entropy value and the entropy value threshold, the iterative bit flip sequence and the second syndrome are updated; According to the updated iterative second syndrome, check whether the sequence to be decoded is wrong; If the sequence to be decoded is correct, the sequence to be decoded is decoded according to the updated iterative bit flip sequence.
10. A computer device comprising a processor, characterized in that: When the processor executes the computer program stored in the memory, the processor is used to implement the decoding method according to any one of claims 1 to 8.
11. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, it is used to implement the decoding method according to any one of claims 1 to 8.
Citation Information
Patent Citations
Dynamic multi-symbol flipping decoding method suitable for multivariate LDPC (Low Density Parity Check) code
CN114421971A
Self-adaptive single-symbol and multi-symbol flipping LDPC decoding method and device
CN115051715A
Depth expansion channel decoding method and device based on penalty dual decomposition method
CN115913454A
Decoding method and related device
CN116505961A
Performance of a bit flipping (BF) decoder of an error correction system
US11108407B1