Alternating direction multiplier method decoding method of LDPC (Low Density Parity Check) code and related equipment
By initializing the indication vector in the ADMM decoding algorithm and correcting the projection result, the problem of low decoding performance at low iterations is solved, and more efficient decoding performance and shorter decoding time are achieved.
Patent Information
- Application Number
- CN202411970690.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-30
- Publication Date
- 2025-05-30
AI Technical Summary
The prior art has low coding performance within a limited number of iterations, especially in the case of low signal-to-noise ratio, the decoding performance of the ADMM decoding algorithm is poor.
By initializing the indication vector, it detects whether the corresponding vector to be projected has a cut set. If it exists, the projection coefficient is calculated and the multiplication is enlarged according to the preset parameters, and the projection result is corrected to determine the decoding result of the LDPC code.
The decoding performance is significantly improved under low number of iterations, the average number of iterations and average decoding time are reduced, and the practicality and competitiveness of the ADMM decoding algorithm are improved.
Smart Images

Figure CN120074544A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of communication technologies, and in particular, to a decoding method for LDPC codes based on the alternating direction method of multipliers and related devices. Background Art
[0002] In the field of communication, channel coding and decoding technologies play a crucial role. To improve the decoding accuracy and shorten the decoding time, the industry has been constantly exploring various optimization solutions. The traditional Belief Propagation (BP) decoding algorithm, as a heuristic algorithm, is difficult to analyze theoretically, and exhibits an error floor phenomenon in the case of high signal-to-noise ratio.
[0003] In contrast, the decoding algorithm obtained by combining the Linear Programming (LP) decoding algorithm with the Alternating Direction Method of Multipliers (ADMM) has many advantages such as easy modeling, convenient analysis, maximum likelihood certification characteristics, and no error floor phenomenon. However, during the relaxation process of the parity polytope, this algorithm may lead to decoding failure due to the appearance of pseudo-codewords, resulting in poor decoding performance in the case of low signal-to-noise ratio. To address this problem, the ADMM decoding algorithm further improves the decoding performance by adding a penalty function to the objective function and adopting the ADMM over-relaxation technique. Among them, the existence of the penalty function forces the intermediate results in the decoding process to be far from fractional pseudo-codewords and close to integer codewords, thereby improving the decoding performance. Common solutions include L1, L2, and F penalties. The ADMM over-relaxation technique is more conducive to the convergence of the decoding algorithm, and studies have shown that the relaxation coefficient is usually optimal when taking 1.9. The improved ADMM decoding algorithm has been improved to a certain extent in terms of decoding performance. Even for some codewords at high iteration times, the decoding performance shown exceeds that of the traditional BP decoding algorithm. However, at low iteration times, there is still a certain gap in the decoding performance between the ADMM decoding algorithm and the BP decoding algorithm.
[0004] For application scenarios that pursue high-speed processing, especially in the actual deployment of ADMM decoding, due to resource limitations or real-time requirements, the number of iterations is often limited. Therefore, how to maintain or improve the decoding performance within a limited number of iterations has become a key problem to be solved urgently. Summary of the Invention
[0005] The present invention provides a decoding method for LDPC codes based on the alternating direction method of multipliers and related devices, which is used to solve the defect of low decoding performance within a limited number of iterations in the prior art, and realizes better decoding performance under low iteration times.
[0006] The present invention provides an alternating direction multiplier method for decoding LDPC codes, including: Based on the LDPC code, determine the vector to be projected, and initialize the indicator vector according to the vector to be projected; Determine the parity of the number of target elements in the indicator vector; If the parity indicates that the number of target elements is even, flip the vector elements in the indicator vector that are closest to the preset center point to obtain the target indicator vector; If the parity indicates that the number of target elements is odd, use the indicator vector as the target indicator vector; Detect whether there is a cut set in the vector to be projected corresponding to the target indicator vector; If there is a cut set in the vector to be projected corresponding to the target indicator vector, calculate the projection coefficient on the projection hyperplane based on the vector to be projected, expand the projection coefficient by a preset multiple according to a preset parameter, and correct the projection result based on the expanded projection coefficient; Based on the projection result, determine the decoding result of the LDPC code.
[0007] According to the alternating direction multiplier method for decoding LDPC codes provided by the present invention, the calculating the projection coefficient on the projection hyperplane based on the vector to be projected, expanding the projection coefficient by a preset multiple according to a preset parameter, and correcting the projection result based on the expanded projection coefficient includes: Determine the projection vector elements in the vector to be projected that meet the preset rules, and perform a descending order arrangement on the projection vector elements to obtain an element set; Initialize the first parameter based on the indicator vector, the vector to be projected, and the number of target elements; Perform an update operation based on the element set and the first parameter, and calculate the projection coefficient during the update operation; Expand the projection coefficient by a preset multiple according to a preset parameter to obtain the target projection coefficient, and correct the projection result based on the target projection coefficient.
[0008] According to the alternating direction multiplier method for decoding LDPC codes provided by the present invention, the performing an update operation based on the element set and the first parameter, and calculating the projection coefficient during the update operation includes: According to the order of the projection vector elements in the element set, perform an update operation on the first parameter and the second parameter based on the projection vector elements that meet the preset conditions; During the execution of the update operation, calculate the projection coefficient based on the updated first parameter and the second parameter.
[0009] An alternating direction multiplier method decoding method for LDPC codes provided by the present invention, during the execution of the update operation, calculating the projection coefficient based on the first parameter and the second parameter includes: During the execution of the update operation, calculate the quotient of the first parameter and the second parameter after the update operation; If the quotient is greater than the projection vector element corresponding to the current update operation, use the quotient as the projection coefficient.
[0010] An alternating direction multiplier method decoding method for LDPC codes provided by the present invention, initializing the indication vector according to the vector to be projected includes: Normalize the vector to be projected to obtain the indication vector.
[0011] An alternating direction multiplier method decoding method for LDPC codes provided by the present invention, after detecting whether there is a cut set in the vector to be projected corresponding to the target indication vector, the method further includes: If there is no cut set in the vector to be projected corresponding to the target indication vector, determine the projection result based on the vector to be projected.
[0012] An alternating direction multiplier method decoding method for LDPC codes provided by the present invention, correcting the projection result based on the enlarged projection coefficient includes: Through the formula Calculate the projection result; where represents the projection result, represents the vector to be projected, the represents the enlarged projection coefficient, the represents the indication vector.
[0013] The present invention also provides an alternating direction multiplier method decoding optimization device for LDPC codes, including: A first determination module configured to determine a vector to be projected based on an LDPC code and initialize an indication vector according to the vector to be projected; A second determination module configured to determine the parity of the number of target elements in the indication vector; A flipping module configured to, if the parity indicates that the number of target elements is even, flip the vector elements in the indication vector closest to the preset center point to obtain a target indication vector; An assignment module configured to, if the parity indicates that the number of target elements is odd, use the indication vector as the target indication vector; A first detection module configured to detect whether there is a cut set in the vector to be projected corresponding to the target indication vector; A computing module, configured to calculate projection coefficients on a projection hyperplane based on the vector to be projected if there is a cut set in the vector to be projected corresponding to the target indication vector, multiply the projection coefficients by a preset multiple according to preset parameters, and correct the projection result based on the enlarged projection coefficients; A third determination module, configured to determine a decoding result of the LDPC code based on the projection result.
[0014] The present invention also provides an electronic device, including a memory, a processor, and a computer program stored on the memory and executable on the processor. When the processor executes the program, the method for decoding LDPC codes by the alternating direction multiplier method as described in any one of the above is implemented.
[0015] The present invention also provides a non-transitory computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the method for decoding LDPC codes by the alternating direction multiplier method as described in any one of the above is implemented.
[0016] The present invention also provides a computer program product, including a computer program. When the computer program is executed by a processor, the method for decoding LDPC codes by the alternating direction multiplier method as described in any one of the above is implemented.
[0017] The method for decoding LDPC codes by the alternating direction multiplier method and related devices provided by the present invention initialize an indication vector through a vector to be projected, determine the parity of the number of target elements in the indication vector. When the parity indicates that the number of target elements is even, the vector elements in the indication vector closest to a preset center point are flipped to obtain a target indication vector. If it is odd, the indication vector is directly used as the target indication vector. It is detected whether there is a cut set in the vector to be projected corresponding to the target indication vector. If there is a cut set in the vector to be projected after the target indication vector, projection coefficients are calculated based on the vector to be projected, the calculated projection coefficients are enlarged, and a projection result of the vector to be projected is calculated based on the enlarged projection coefficients, and then the decoding result of the LDPC code is determined. The enlarged projection coefficients can make the projection result of the Euclidean projection operation fall more in the parity-check polytope and closer to the projection hyperplane, and can ensure better decoding performance at a low number of iterations. Description of the Drawings
[0018] In order to more clearly illustrate the technical solutions in 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, the drawings in the following description are some embodiments of the present invention. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0019] Figure 1It is a schematic flowchart of the alternating direction multiplier method decoding method for LDPC codes provided by the present invention.
[0020] Figure 2 It is a comparison diagram of the frame error rate of the cutting search projection algorithm for three codewords provided by the present invention under different scaling parameters.
[0021] Figure 3 It is provided by the present invention Comparison diagram of the frame error rate of the codeword under 20 iteration times.
[0022] Figure 4 It is provided by the present invention Comparison diagram of the frame error rate of the codeword under 20 iteration times.
[0023] Figure 5 It is provided by the present invention Comparison diagram of the frame error rate of the codeword under 20 iteration times.
[0024] Figure 6 It is provided by the present invention Comparison diagram of the average number of iterations of the codeword under 20 iteration times.
[0025] Figure 7 It is provided by the present invention Comparison diagram of the average number of iterations of the codeword under 20 iteration times.
[0026] Figure 8 It is provided by the present invention Comparison diagram of the average number of iterations of the codeword under 20 iteration times.
[0027] Figure 9 It is provided by the present invention Comparison diagram of the average decoding time of the codeword under 20 iteration times.
[0028] Figure 10 It is provided by the present invention Comparison diagram of the average decoding time of the codeword under 20 iteration times.
[0029] Figure 11 It is provided by the present invention Comparison diagram of the average decoding time of the codeword under 20 iteration times.
[0030] Figure 12 It is a schematic structural diagram of the alternating direction multiplier method decoding optimization device for LDPC codes provided by the present invention.
[0031] Figure 13 It is a schematic structural diagram of the electronic device provided by the present invention. Specific embodiments
[0032] To make the objectives, technical solutions, and advantages of the present invention clearer, the following will clearly and completely describe the technical solutions in the present invention in conjunction with the accompanying drawings in the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, rather than all of the embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments in the present invention without making creative efforts fall within the scope of protection of the present invention.
[0033] First, the ADMM decoding algorithm introduces the methods of dual decomposition and augmented Lagrangian function, further optimizing the LP linear decoding problem. And the early termination technology (Early Termination, ET) is introduced to accelerate the convergence speed of the algorithm. There are two common ET conditions. The first is to judge whether the decoding result is a valid codeword; the second is to set the threshold parameter for iterative termination or the maximum number of iterations. When the decoding result meets the threshold parameter or the number of algorithm iterations reaches the preset maximum number of iterations, the iteration is terminated and the decoding ends.
[0034] The optimization method for improving the decoding performance of the alternating direction method of multipliers at low iteration times proposed by the present invention is mostly used for low density parity check codes (LDPC). The LDPC code can use the Tanner graph to represent the parity check matrix and describe the message passing process during decoding. The Tanner graph contains codeword bit nodes, corresponding to the columns of the parity check matrix; and also contains check equation nodes, corresponding to the rows of the parity check matrix.
[0035] The iteration of the entire decoding process is as follows: In the first iteration, each variable node transmits the corresponding reliable information to the connected check nodes. After each check node receives all the reliable information, it processes it and returns a new reliable message to the connected variable nodes. At this time, if the check equation is satisfied, the iteration ends and the judgment result of this time is directly output; if not, each variable node receives all the reliable information and processes it, and then returns a new reliable message to continue the above iterative process. This process will continue until the check equation is satisfied or the set maximum number of iterations is reached, at which point the decoding ends.
[0036] In the overall process of the ADMM decoding algorithm, it can be known from the description of the iterative process that when the decoding framework and the codeword structure are fixed, all the nodes that do not satisfy the check equation will continue to perform iterative calculations until the set maximum number of iterations is reached, that is, the increase in the number of iterations will directly lead to the extension of the decoding time. Unfortunately, most current algorithms can only ensure good decoding performance when the number of iterations is relatively high.
[0037] In view of the requirements of the actual application scenario, it is crucial to optimize the performance at low iteration times. The core of the present invention focuses on how to reduce the loss of decoding performance in the case of low iteration times, so as to ensure that good decoding performance can be achieved even at low iteration times, thereby enhancing the reliability and competitiveness of ADMM decoding in practical applications.
[0038] The following combines Figures 1 - 13 to describe the alternating direction multiplier method decoding method and related devices of the LDPC code of the present invention.
[0039] Figure 1 is a flowchart of an optimization method for the alternating direction multiplier method decoding of an LDPC code shown according to an exemplary embodiment. As Figure 1 shown, in an exemplary embodiment, the optimization method for the alternating direction multiplier method decoding of an LDPC code includes steps 110 to 170, which are introduced in detail as follows.
[0040] Step 110: Based on the LDPC code, determine the vector to be projected, and initialize the indicator vector according to the vector to be projected.
[0041] In an embodiment of the present invention, based on a low-density parity-check code LDPC, a corresponding selection matrix of the LDPC, and a Lagrange multiplier vector, the vector to be projected is determined . The selection matrix is to determine the corresponding parity-check matrix according to the LDPC code, and then generate the corresponding selection matrix according to the parity-check matrix. Initialize the indicator vector according to the vector to be projected , and the indicator vector is used to determine the Euclidean projection of the vector to be projected on the check polytope.
[0042] Step 120: Determine the parity of the number of target elements in the indicator vector.
[0043] In an embodiment of the present invention, determine the number of target elements in the indicator vector. The target element is set to 1, that is, determine the number of elements with a value of 1 in the indicator vector, and determine whether the number is odd or even.
[0044] Step 130: If the parity indicates that the number of target elements is even, flip the vector element in the indicator vector that is closest to the preset center point to obtain a target indicator vector.
[0045] In an embodiment of the present invention, if the number is even, flip the vector element in the indicator vector that is closest to the preset center point. The preset center point is set to 0.5. The indicator vector is divided into two cases. When flipping, flip the corresponding vector element to the corresponding opposite situation. For example, if it is set to 1 and -1, then flip 1 to -1.
[0046] Step 140, if the parity indicates that the number of target elements is odd, use the indication vector as the target indication vector.
[0047] In an embodiment of the present invention, if the parity indicates that the number of target elements is odd, directly use the indication vector as the target indication vector. At this time, the target indication vector is equal to the original indication vector.
[0048] Step 150, detect whether there is a cut set in the vector to be projected corresponding to the target indication vector.
[0049] In an embodiment of the present invention, detect whether there is a cut set in the vector to be projected corresponding to the target indication vector.
[0050] Step 160, if there is a cut set in the vector to be projected corresponding to the target indication vector, calculate the projection coefficient on the projection hyperplane based on the vector to be projected, multiply the projection coefficient by a preset multiple according to preset parameters, and correct the projection result based on the enlarged projection coefficient.
[0051] In an embodiment of the present invention, if there is a cut set in the vector to be projected corresponding to the target indication vector, calculate the projection coefficient based on the vector to be projected , multiply the projection coefficient by a preset multiple, and then calculate the projection result of the vector to be projected based on the enlarged projection coefficient. The enlarged projection coefficient can make the projection result of the Euclidean projection operation fall more in the parity-check polytope and closer to the projection hyperplane, and can effectively improve the decoding performance of the original cut-finding projection algorithm at a low number of iterations.
[0052] Step 170, determine the decoding result of the LDPC code based on the projection result.
[0053] In an embodiment of the present invention, directly determine the decoding result of the LDPC code based on the obtained projection result. It can ensure better decoding performance at a low number of iterations, and can effectively reduce the average number of iterations and the average decoding time, which makes this algorithm more advantageous than similar algorithms in the process of hardware deployment and practical application.
[0054] In an exemplary embodiment of the present invention, calculating the projection coefficient on the projection hyperplane based on the vector to be projected, multiplying the projection coefficient by a preset multiple according to preset parameters, and correcting the projection result based on the enlarged projection coefficient includes: Determine the projection vector elements in the vector to be projected that meet the preset rules, and sort the projection vector elements in descending order to obtain an element set; Initialize a first parameter based on the indication vector, the vector to be projected, and the number of target elements; Perform an update operation based on the element set and the first parameter, and calculate the projection coefficient during the update operation; Enlarge the projection coefficient by a preset multiple according to a preset parameter to obtain a target projection coefficient, and correct the projection result based on the target projection coefficient.
[0055] In an embodiment of the present invention, determine the projection vector elements in the vector to be projected that satisfy a preset rule, where the preset rule is that the projection vector element is less than 0 or the projection vector element is greater than 1, and for the projection vector elements Sort them in descending order in the manner of to obtain an element set , where represents the i-th projection element vector in the element set. The element set W can be represented by the following formula: ; where represents the i-th projection vector element.
[0056] Initialize the first parameter based on the indication vector, the vector to be projected, and the number of target elements . The first parameter can be represented by the following formula: ; where T represents the transpose, V represents the number of 1s in the indication vector, represents the dimension of the check node at this time.
[0057] Perform an update operation based on the element set and the first parameter. The update operation is implemented based on the numerical relationship among the projection vector elements, the first parameter, and the second parameter in the element set, and calculate the projection coefficient during the update operation. Enlarge the calculated projection coefficient by a preset multiple according to a preset parameter to obtain a target projection coefficient , and correct the projection result based on the target projection coefficient .
[0058] In an exemplary embodiment of the present invention, the performing an update operation based on the element set and the first parameter, and calculating the projection coefficient during the update operation includes: Update the first parameter and the second parameter based on the projection vector elements that satisfy the preset conditions according to the order of the projection vector elements in the element set; During the execution of the update operation, calculate the projection coefficient based on the updated first parameter and the second parameter.
[0059] In an embodiment of the present invention, according to the order of the projection vector elements in the element set, start detecting whether each projection element vector satisfies a preset condition from , where the preset condition is , where Indicates the second parameter, and when is satisfied, an update operation is performed on the first parameter and the second parameter, and the update operation can be represented by the following formula: .
[0060] During the execution of the update operation, the projection coefficient is calculated based on the updated first parameter and second parameter.
[0061] In an exemplary embodiment of the present invention, calculating the projection coefficient based on the first parameter and the second parameter during the execution of the update operation includes: During the execution of the update operation, calculate the quotient of the first parameter and the second parameter after the update operation; If the quotient is greater than the projection vector element corresponding to the current update operation, use the quotient as the projection coefficient.
[0062] In an embodiment of the present invention, during the process of traversing the element set, calculate the quotient of the first parameter and the second parameter after the update operation, and compare the quotient with the corresponding projection vector element for comparison. If occurs, directly use the quotient at this time as the projection coefficient , that is .
[0063] The obtained is a scalar that makes hold. This coefficient can project the vector to be projected onto the face of the parity-check polytope. On this basis, the present invention multiplies the coefficient by a preset scalar coefficient to obtain the target projection coefficient , so that the result of the Euclidean projection operation falls more within the parity-check polytope and closer to the projection hyperplane. In this way, the decoding performance of the original cutting search projection algorithm can be effectively improved at a low number of iterations.
[0064] In an exemplary embodiment of the present invention, initializing the indication vector according to the vector to be projected includes: Normalize the vector to be projected to obtain the indication vector.
[0065] In an embodiment of the present invention, after normalizing the vector to be projected , the indication vector is obtained, being the dimension of the check node at this time.
[0066] In an exemplary embodiment of the present invention, after detecting whether there is a cut set in the vector to be projected corresponding to the target indication vector, the method further includes: If there is no cut set in the vector to be projected corresponding to the target indication vector, determine a projection result based on the vector to be projected.
[0067] In an embodiment of the present invention, if there is no cut set in the vector to be projected corresponding to the target indication vector, it is proved that the unit cube projection of the vector to be projected is the final projection result, that is , output the projection result, and end the projection process.
[0068] In an exemplary embodiment of the present invention, calculating the projection result of the vector to be projected based on the target projection coefficient includes: Calculate the projection result through the formula ; where represents the projection result, represents the vector to be projected, the represents the expanded projection coefficient, and the represents the indication vector.
[0069] In an embodiment of the present invention, after calculating the target projection coefficient, calculate the projection result of the vector to be projected through the formula In an embodiment of the present invention, the final projection result is corrected by the target projection coefficient, so as to ensure better decoding performance under low iteration times.
[0070] The test codewords in the present invention are all obtained by simulating the codeword information after Binary Phase Shift Keying (BPSK) modulation and transmission through an Additive White Gaussian Noise (AWGN) channel. All unmodulated original codeword information is obtained by encoding randomly generated information through a generator matrix. The obtained random codewords are modulated by BPSK and then simulated to be transmitted through an AWGN channel under a fixed signal-to-noise ratio, thereby generating corresponding test codewords.
[0071] Respectively with code rates of , degree-6 and degree-7 (576, 288) irregular codes ; code rate of , degree-4 (1920, 640) regular codes ; code rate of , degree-6 (2640, 1320) regular codes Perform tests. Using the ADMM-based L1 penalty decoding framework, set the penalty coefficient to the optimal parameter of the CSA algorithm. Let codewords be at , codewords be at codewords be at Under the signal-to-noise ratio conditions, set the maximum number of iterations to times, change the size of the scalar coefficient to 0.98, 1.00, 1.01, 1.04, 1.07, 1.10, 1.12. By counting 100 error frames, calculate the result of the frame error rate.
[0072] Figure 2 shows the test results. It can be clearly seen from them that within a certain range of amplitudes, the scalar coefficient can optimize the performance of the CSA algorithm, and when or , the decoding performance deteriorates significantly. This is because the projection results all fall outside the parity polytope, and the projection results are far from the faces of the parity polytope, both of which are consistent with the algorithm principle. Different codewords correspond to different optimal scalar coefficients . The present invention then gives examples of the optimal coefficients of three codewords for subsequent tests.
[0073] Denote the improved algorithm of the present invention as ICSA (Improve Cut Search Algorithm, ICSA). Considering that in the practical application of the present invention, a low number of iterations is often used as the final decoding deployment scheme, the present invention further specifically gives the specific decoding performance of each codeword in three projection algorithms, namely CSA, ICSA, and the Line segment Projection Algorithm (LSA), under the setting of 20 maximum iterations. Conduct decoding performance tests under the optimal coefficients of the three codewords respectively. According to the experimental tests, select the optimal scalar coefficient at , select the optimal scalar coefficient at , select the optimal scalar coefficient , so that the projection coefficient is multiplied by the fixed scalar coefficient to obtain the target projection coefficient .
[0074] Figure 3 , Figure 4 , Figure 5 respectively give the when the maximum number of iterations is 20 times , The experimental results of the frame error rate of the codewords. The experimental conditions also ensure the use of the ADMM-based L1-penalty decoding framework, and the penalty coefficient is set to the optimal parameter of the CSA algorithm.
[0075] Among them Figure 3 is the test result when the signal-to-noise ratio range of the codeword is in dB with a step size of 0.3 dB. It can be seen from Figure 3 that the frame error rate result of ICSA after introducing the parameter has been significantly improved. Specifically, when , ICSA is improved by 0.16 dB compared with CSA, and when , ICSA is improved by 0.36 dB compared with CSA.
[0076] The same situation also appears in Figure 4 the codeword test. At this time the signal-to-noise ratio range of the codeword experimental test is dB with a step size of 0.3 dB. When , ICSA is improved by 0.15 dB compared with CSA, and when , ICSA is improved by 0.31 dB compared with CSA.
[0077] Figure 5 Among the signal-to-noise ratio range of the codeword experimental test is in dB with a step size of 0.1 dB. When , ICSA is improved by 0.07 dB compared with CSA, and when
[0078]
[0079] Generally speaking, two measurement criteria, namely the average number of iterations and the average decoding time, need to be introduced to judge the decoding performance. In the process of the above frame error rate statistics of the present invention, the average number of iterations and the average decoding time are also statistically analyzed.
[0080] Figure 6 , Figure 7 , Figure 8 respectively correspond to the comparison of the average number of iterations of the three codewords under the above experimental conditions. It can be found from these figures that compared with the original CSA algorithm, ICSA with parameter correction has reduced the average number of iterations in all three codewords.
[0081] For codewords, when the average number of iterations of ICSA is reduced by 7.48% compared to CSA.
[0082] For codewords, when the average number of iterations of ICSA is reduced by 4.47% compared to CSA.
[0083] For codewords, when the average number of iterations of ICSA is reduced by 6.25% compared to CSA.
[0084] Figure 9 , Figure 10 , Figure 11 respectively correspond to the comparison of the average decoding time of three types of codewords during the above experimental conditions. It can be seen that the average decoding time of the optimized ICSA algorithm for the three types of codewords is less than that of the original CSA algorithm and is similar to the approximate projection algorithm LSA.
[0085] For codewords, when the average decoding time of ICSA is shortened by 6.85% compared to CSA.
[0086] For codewords, when the average decoding time of ICSA is shortened by 6.82% compared to CSA.
[0087] For codewords, when the average decoding time of ICSA is shortened by 9.46% compared to CSA.
[0088] The above embodiments fully prove that the present invention can achieve better decoding performance with fewer iterations and shorter decoding time.
[0089] Next, the alternating direction multiplier method decoding optimization device for LDPC codes provided by the present invention will be described. The alternating direction multiplier method decoding optimization device for LDPC codes described below can be correspondingly referred to the alternating direction multiplier method decoding optimization method for LDPC codes described above. It should be noted that the device provided in the following embodiments and the method provided in the above embodiments belong to the same concept. The specific ways in which each module and unit perform operations have been described in detail in the method embodiments and will not be repeated here.
[0090] In an exemplary embodiment of the present invention, please refer to Figure 12 , Figure 12An alternating direction multiplier method decoding optimization device for LDPC codes shown according to an exemplary embodiment includes the following modules.
[0091] A first determination module 1210, configured to determine a vector to be projected based on an LDPC code and initialize an indication vector according to the vector to be projected; A second determination module 1220, configured to determine the parity of the number of target elements in the indication vector; A flipping module 1230, configured to flip the vector elements in the indication vector that are closest to a preset center point if the parity indicates that the number of target elements is even, to obtain a target indication vector; A serving as module 1240, configured to use the indication vector as the target indication vector if the parity indicates that the number of target elements is odd; A first detection module 1250, configured to detect whether there is a cut set in the vector to be projected corresponding to the target indication vector; A calculation module 1260, configured to calculate a projection coefficient on a projection hyperplane based on the vector to be projected if there is a cut set in the vector to be projected corresponding to the target indication vector, and expand the projection coefficient by a preset multiple according to a preset parameter, and correct the projection result based on the expanded projection coefficient; A third determination module 1270, configured to determine a decoding result of the LDPC code based on the projection result.
[0092] In an exemplary embodiment of the present invention, the calculation module 1260 includes: A determination sub-module, configured to determine projection vector elements in the vector to be projected that meet a preset rule, and perform a descending order arrangement on the projection vector elements to obtain an element set; An initialization sub-module, configured to initialize a first parameter based on the indication vector, the vector to be projected, and the number of target elements; A first calculation sub-module, configured to perform an update operation based on the element set and the first parameter, and calculate the projection coefficient during the update operation; An expansion sub-module, configured to expand the projection coefficient by a preset multiple according to a preset parameter to obtain a target projection coefficient, and correct the projection result based on the target projection coefficient.
[0093] In an exemplary embodiment of the present invention, the calculation sub-module includes: An update unit, configured to perform an update operation on the first parameter and a second parameter based on the projection vector elements in the element set that meet a preset condition according to the order of the projection vector elements in the element set; A computing unit configured to calculate the projection coefficient based on the updated first parameter and the second parameter during the execution of an update operation.
[0094] In an exemplary embodiment of the present invention, the computing unit includes: A calculation subunit configured to calculate the quotient of the first parameter and the second parameter after the update operation during the execution of the update operation; A comparison subunit configured to use the quotient as the projection coefficient if the quotient is greater than the projection vector element corresponding to the current update operation.
[0095] In an exemplary embodiment of the present invention, the first determination module 1210 includes: A normalization processing sub-module configured to perform normalization processing on the vector to be projected to obtain the indication vector.
[0096] In an exemplary embodiment of the present invention, the alternating direction multiplier method decoding device for LDPC codes further includes: A fourth determination module configured to determine a projection result based on the vector to be projected if there is no cut set in the vector to be projected corresponding to the target indication vector.
[0097] In an exemplary embodiment of the present invention, the calculation module 1250 includes: A second calculation sub-module configured to calculate the projection result through the formula wherein, represents the projection result, represents the vector to be projected, the represents the expanded projection coefficient, and the represents the indication vector.
[0098] Figure 13 FIG. exemplarily shows a schematic physical structure diagram of an electronic device, as Figure 13 shown. The electronic device may include: a processor 1310, a communication interface 1320, a memory 1330, and a communication bus 1340. Among them, the processor 1310, the communication interface 1320, and the memory 1330 complete mutual communication through the communication bus 1340. The processor 1310 may call logic instructions in the memory 1330 to execute the alternating direction multiplier method decoding method for LDPC codes, and the method includes: determining a vector to be projected based on the LDPC code, and initializing an indication vector according to the vector to be projected; determining the parity of the number of target elements in the indication vector; If the parity indicates that the number of target elements is even, flip the vector elements in the indication vector closest to the preset center point to obtain a target indication vector; If the parity indicates that the number of target elements is odd, use the indication vector as the target indication vector; Detect whether there is a cut set in the vector to be projected corresponding to the target indication vector; If there is a cut set in the vector to be projected corresponding to the target indication vector, calculate the projection coefficient on the projection hyperplane based on the vector to be projected, expand the projection coefficient by a preset multiple according to preset parameters, and correct the projection result based on the expanded projection coefficient; Based on the projection result, determine the decoding result of the LDPC code.
[0099] In addition, when the logical instructions in the above-mentioned memory 1330 are implemented in the form of software function units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, or a part of this technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in various embodiments of the present invention. The foregoing storage medium includes: various media such as USB flash drives, mobile hard disks, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disks, or optical discs that can store program codes.
[0100] On the other hand, the present invention also provides a computer program product. The computer program product includes a computer program. The computer program can be stored on a non-transitory computer-readable storage medium. When the computer program is executed by a processor, the computer can execute the alternating direction multiplier method decoding method of the LDPC code provided by the above-mentioned various methods. The method includes: based on the LDPC code, determine the vector to be projected, and initialize the indication vector according to the vector to be projected; Determine the parity of the number of target elements in the indication vector; If the parity indicates that the number of target elements is even, flip the vector elements in the indication vector closest to the preset center point to obtain a target indication vector; If the parity indicates that the number of target elements is odd, use the indication vector as the target indication vector; Detect whether there is a cut set in the vector to be projected corresponding to the target indication vector; If there is a cut set in the vector to be projected corresponding to the target indication vector, calculate the projection coefficient on the projection hyperplane based on the vector to be projected, and expand the projection coefficient by a preset multiple according to a preset parameter, and correct the projection result based on the expanded projection coefficient; Based on the projection result, determine the decoding result of the LDPC code.
[0101] On the other hand, the present invention also provides a non-transitory computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, it is used to execute the alternating direction multiplier method for decoding LDPC codes provided by the above methods. The method includes: based on the LDPC code, determine the vector to be projected, and initialize the indication vector according to the vector to be projected; Determine the parity of the number of target elements in the indication vector; If the parity indicates that the number of target elements is even, flip the vector elements in the indication vector that are closest to the preset center point to obtain the target indication vector; If the parity indicates that the number of target elements is odd, use the indication vector as the target indication vector; Detect whether there is a cut set in the vector to be projected corresponding to the target indication vector; If there is a cut set in the vector to be projected corresponding to the target indication vector, calculate the projection coefficient on the projection hyperplane based on the vector to be projected, and expand the projection coefficient by a preset multiple according to a preset parameter, and correct the projection result based on the expanded projection coefficient; Based on the projection result, determine the decoding result of the LDPC code.
[0102] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separated. The components shown as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. Those of ordinary skill in the art can understand and implement it without creative labor.
[0103] Through the description of the above embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus a necessary general hardware platform, and of course, it can also be implemented by hardware. Based on such an understanding, the essence of the above technical solution, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) to execute the methods described in each embodiment or some parts of the embodiments.
[0104] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements on some of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for decoding LDPC codes by an alternating direction multiplier method, characterized in that: include: Determine a vector to be projected based on an LDPC code, and initialize an indication vector according to the vector to be projected; Determining the parity of the number of target elements in the indicator vector; If the parity indicates that the number of the target elements is an even number, flipping the vector element in the indicator vector closest to the preset center point to obtain a target indicator vector; If the parity indicates that the number of the target elements is an odd number, taking the indicator vector as a target indicator vector; Detecting whether there is a cut set for the vector to be projected corresponding to the target indication vector; If there is a cut set for the vector to be projected corresponding to the target indication vector, a projection coefficient on a projection hyperplane is calculated based on the vector to be projected, and the projection coefficient is enlarged by a preset multiple according to a preset parameter, and a projection result is corrected based on the enlarged projection coefficient; Based on the projection result, a decoding result of the LDPC code is determined.
2. The LDPC code decoding method according to claim 1, characterized in that: The step of calculating a projection coefficient on a projection hyperplane based on the vector to be projected, and enlarging the projection coefficient by a preset multiple according to a preset parameter, and correcting a projection result based on the enlarged projection coefficient includes: Determine the projection vector elements that meet the preset rule in the vector to be projected, and arrange the projection vector elements in descending order to obtain an element set; Initializing a first parameter based on the indicator vector, the vector to be projected, and the number of target elements; Performing an update operation based on the element set and the first parameter, and calculating the projection coefficient during the update operation; The projection coefficient is enlarged by a preset multiple according to preset parameters to obtain a target projection coefficient, and the projection result is corrected based on the target projection coefficient.
3. The LDPC code decoding method according to claim 2, characterized in that: The updating operation is performed based on the element set and the first parameter, and the projection coefficient is calculated during the updating operation, including: According to the order of the projection vector elements in the element set, based on the projection vector elements that meet a preset condition, updating the first parameter and the second parameter; During the updating operation, the projection coefficient is calculated based on the updated first parameter and the second parameter.
4. The LDPC code decoding method according to claim 3, characterized in that: The step of calculating the projection coefficient based on the first parameter and the second parameter during the update operation includes: During the update operation, calculating a quotient of the first parameter and the second parameter after the update operation; If the quotient is greater than the projection vector element corresponding to the current update operation, the quotient is used as the projection coefficient.
5. The LDPC code decoding method according to claim 1, characterized in that: The initializing the indication vector according to the vector to be projected comprises: The vector to be projected is normalized to obtain the indicator vector.
6. The LDPC code decoding method according to claim 1, characterized in that: After detecting whether there is a cut set of the vector to be projected corresponding to the target indication vector, the method further includes: If there is no cut set for the vector to be projected corresponding to the target indication vector, a projection result is determined based on the vector to be projected.
7. The LDPC code decoding method according to any one of claims 1 to 6, characterized in that: The method of correcting the projection result based on the expanded projection coefficient includes: By formula Calculate the projection result; wherein, represents the projection result, represents the vector to be projected, the represents the projection coefficient after expansion, the represents the indicator vector.
8. An LDPC code decoding optimization device using an alternating direction multiplier method, characterized in that: include: A first determination module is configured to determine a vector to be projected based on an LDPC code, and initialize an indication vector according to the vector to be projected; a second determination module configured to determine the parity of the number of target elements in the indicator vector; a flipping module configured to flip the vector element in the indicator vector closest to the preset center point to obtain a target indicator vector if the parity indicates that the number of the target elements is an even number; As a module, configured to use the indicator vector as a target indicator vector if the parity characterizes that the number of the target elements is an odd number; A first detection module is configured to detect whether there is a cut set of the to-be-projected vector corresponding to the target indication vector; A calculation module, configured to calculate a projection coefficient on a projection hyperplane based on the vector to be projected if a cut set exists for the vector to be projected corresponding to the target indication vector, and to expand the projection coefficient by a preset multiple according to a preset parameter, and to correct the projection result based on the expanded projection coefficient; The third determination module is configured to determine a decoding result of the LDPC code based on the projection result.
9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and running on the processor, characterized in that: When the processor executes the program, the alternating direction multiplier method decoding method of the LDPC code according to any one of claims 1 to 7 is implemented.
10. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the alternating direction multiplier method decoding method of the LDPC code according to any one of claims 1 to 7 is implemented.