A LDPC layered decoding method and LDPC decoder

By renewal calculation and processing by using layer flow in the LDPC layered decoding method, the problem of delaying and long delay in the existing technology is solved, and more efficient decoding performance and processing speed are achieved.

CN114124110BActive Publication Date: 2025-01-28SHANGHAI SMARTLOGIC TECHNOLOGY LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111430441.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-29
Publication Date
2025-01-28
Estimated Expiration
2041-11-29

AI Technical Summary

Technical Problem

In the prior art, the LDPC hierarchical decoding method has the problem of excessive inter-layer delay, resulting in processing delays and waste of resources.

Method used

The inter -layer flowing method is used to perform a multi -layer renewal calculation and calculation processing to eliminate the empty shot of the layer and reduce the delay. Specific steps include obtaining the layered verification matrix, and the post -test probability update difference calculation and accumulation processing until the decoding judgment is successful.

Benefits of technology

By eliminating the inter -layer empty shot, the inter -layer processing delay is reduced, the work speed of the decoder is improved, and the decoding performance of the decoding code during flowing water is ensured.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114124110B_ABST
    Figure CN114124110B_ABST
Patent Text Reader

Abstract

The present application provides an LDPC layered decoding method and an LDPC decoder, including: obtaining a layered check matrix; performing update calculation processing on multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner at the current number of iterations; performing decoding judgment on the posterior probability value after the update calculation processing corresponding to the last layer at the current number of iterations, if the decoding judgment fails, the current number of iterations is increased by 1, and the execution is returned to perform update calculation processing on multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner at the current number of iterations until the decoding judgment is successful, or the current number of iterations reaches the set number of iterations. The present application adopts an inter-layer pipeline method, which eliminates inter-layer empty beats, reduces inter-layer processing delays, and improves the working speed of the decoder. In addition, the present application calculates the posterior probability update difference during the update calculation processing, and updates the posterior probability value in the specified storage based on the posterior probability update difference, thereby ensuring the decoding performance during inter-layer pipeline.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communications, and in particular to an LDPC decoding method and an LDPC decoder. Background Art

[0002] The basic LDPC (Low-density Parity-check) decoding algorithm in academia is a flood-type fully parallel decoding scheme. In each round of iterative decoding, all check nodes are first updated in parallel, then all variable nodes are updated in parallel, and then decoding decisions are made based on the posterior information of the variable nodes. This flood decoding requires a huge amount of computing and storage resources when implemented in the decoder.

[0003] When implementing LDPC decoding, the industry's 5GNR usually adopts a layered decoding scheme, that is, the check matrix is ​​layered according to the base graph and expansion factor of the 5GNR LDPC code, and each layer is updated and calculated in turn in each round of iterative decoding, that is, after the update calculation of one layer is completed, the update calculation of the next layer is performed; each layer of update calculation processing starts with reading the posterior probability value of the variable node from the storage, and after the variable node update and check node update process, it ends with calculating the posterior probability value of the variable node and writing it back to the storage. In 5GNR LDPC, since the number of variable nodes (corresponding to the code length) is much larger than the parallel width of the decoder, the update calculation processing of each layer is performed in a parallel pipeline manner within the layer. For details, see Figure 1a As shown in the intra-layer parallel pipeline method, assuming that each layer requires Nr beats to read in information, and Nh beats are required from each time the information is read in to the time it is calculated and processed to the time it is written back, then a layer of information requires (Nr+Nh) beats from the first time the information is read in to the last time the information is written back.

[0004] Since hierarchical scheduling is a single-layer update calculation, it requires less storage resources than flooding scheduling. In addition, the hierarchical scheduling scheme has the advantage of fast decoding convergence speed because the updated messages of each layer can be used for subsequent node updates immediately. Setting a smaller number of iterations can achieve the same decoding performance as the flooding scheduling scheme. However, the basic hierarchical scheme requires that the calculation of one layer be completed before the calculation of the next layer, so there is no pipeline processing between layers, such as Figure 1b As shown, the processing delay between layers is (Nr+Nh) beats, there is a problem of empty beats in processing, the number of empty beats is Nh, which causes waste in processing timing and the delay between layers is too long. Summary of the invention

[0005] In view of this, the present application provides an LDPC decoding method and an LDPC decoder to solve the problem of long inter-layer delay in the prior art. The technical solution is as follows:

[0006] An LDPC layered decoding method, applied to an LDPC decoder, comprises:

[0007] Obtain a layered check matrix, wherein the layered check matrix includes sub-check matrices corresponding to multiple layers, the number of rows and the number of columns of the sub-check matrices corresponding to the multiple layers are the same, and the number of columns is the same as the number of columns of the layered check matrix, the row weight of each row of the sub-check matrix corresponding to any layer is the same, the column weight of each column is 0 or 1, and each row corresponds to a check node, and each column corresponds to a variable node;

[0008] At the current number of iterations, update calculation processing is performed on multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner, wherein the update calculation processing corresponding to any layer includes a posterior probability update difference calculation processing and an update difference accumulation processing, the posterior probability update difference calculation processing is used to calculate the posterior probability update difference of the variable node connected to the check node of the layer, and the update difference accumulation processing is used to update the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation processing based on the posterior probability update difference;

[0009] The decoding decision is made on the posterior probability value after the update calculation corresponding to the last layer under the current iteration number. If the decoding decision fails, the current iteration number is increased by 1, and the execution is returned to the current iteration number. The update calculation processing based on the corresponding sub-check matrix is ​​performed on multiple layers in an inter-layer pipeline manner until the decoding decision is successful, or the current iteration number reaches the set iteration number.

[0010] Optionally, for each layer in the multiple layers, performing update calculation processing on the layer based on the corresponding sub-check matrix includes:

[0011] Based on the sub-check matrix corresponding to the layer, read the posterior probability value of the target variable node from the specified storage, wherein the target variable node is the variable node connected to the check node of the layer, and the posterior probability value of the target variable node is the posterior probability value after the update calculation corresponding to the target variable node in the previous layer or previous layers of the layer;

[0012] According to the posterior probability value of the target variable node and the sub-check matrix corresponding to the layer, the maximum logarithmic likelihood ratio value transmitted by the target variable node to the connected target check node is determined;

[0013] According to the logarithmic maximum likelihood ratio value transmitted by the target variable node to the connected target check node and the sub-check matrix corresponding to the layer, the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to the layer to the connected target variable node under the current number of iterations is calculated;

[0014] According to the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to the layer to the connected target variable node under the current number of iterations, the posterior probability update difference of the target variable node is determined;

[0015] Based on the posterior probability update difference of the target variable node, the posterior probability value of the corresponding variable node in the specified storage is updated to the posterior probability value after the updated calculation process, so as to obtain the posterior probability value after the updated calculation process corresponding to the layer under the current number of iterations.

[0016] Optionally, determining the posterior probability update difference of the target variable node according to the logarithmic maximum likelihood ratio value transmitted to the connected target variable node by the target check node corresponding to the layer at the current iteration number, including:

[0017] Get the logarithmic maximum likelihood ratio value of the target check node corresponding to the layer transmitted to the connected target variable node at the previous iteration number of the current iteration number;

[0018] Calculate the maximum logarithmic likelihood ratio of the target check node corresponding to this layer to the connected target variable node at the current iteration number, and the difference between the maximum logarithmic likelihood ratio of the target check node corresponding to this layer to the connected target variable node at the previous iteration number of the current iteration number as the posterior probability update difference of the target variable node.

[0019] Optionally, updating the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation based on the posterior probability update difference of the target variable node includes:

[0020] The updated difference of the posterior probability of the target variable node is accumulated and written back to the position of the posterior probability value of the corresponding variable node in the specified storage;

[0021] or,

[0022] Read the posterior probability value of the target variable node again from the specified storage;

[0023] Sum the updated difference of the posterior probability of the target variable node and the posterior probability value of the target variable node read again to obtain the updated posterior probability value of the layer after the current number of iterations;

[0024] Write the updated posterior probability value corresponding to the layer at the current number of iterations back to the specified storage.

[0025] Optionally, the updated difference of the posterior probability of the target variable node is accumulated and written back to the location of the posterior probability value of the corresponding variable node in the specified storage, including:

[0026] For each variable node contained in the target variable node, the updated difference of the posterior probability of the variable node is accumulated and written back to the position of the posterior probability value of the variable node in the specified storage.

[0027] An LDPC decoder comprises: a layered check matrix acquisition module, an update calculation processing module and a decoding decision module;

[0028] A layered check matrix acquisition module is used to acquire a layered check matrix, wherein the layered check matrix includes sub-check matrices corresponding to multiple layers, the number of rows and columns of the sub-check matrices corresponding to the multiple layers are the same, and the number of columns is the same as the number of columns of the layered check matrix, the row weight of each row of the sub-check matrix corresponding to any layer is the same, the column weight of each column is 0 or 1, and each row corresponds to a check node, and each column corresponds to a variable node;

[0029] An update calculation processing module is used to perform update calculation processing on multiple layers based on corresponding sub-check matrices in an inter-layer pipeline manner under the current number of iterations, wherein the update calculation processing corresponding to any layer includes a posterior probability update difference calculation processing and an update difference accumulation processing, the posterior probability update difference calculation processing is used to calculate the posterior probability update difference of the variable node connected to the check node of the layer, and the update difference accumulation processing is used to update the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation processing based on the posterior probability update difference;

[0030] The decoding decision module is used to make a decoding decision on the posterior probability value after the update calculation processing corresponding to the last layer under the current iteration number. If the decoding decision fails, the current iteration number is increased by 1, and the execution is returned to the current iteration number, and the update calculation processing based on the corresponding sub-check matrix is ​​performed on multiple layers in an inter-layer pipeline manner until the decoding decision is successful, or the current iteration number reaches the set iteration number.

[0031] Optionally, when the update calculation processing module performs update calculation processing on each layer in the multiple layers based on the corresponding sub-check matrix, it includes: a first posterior probability value reading module, a variable node update module, a check node update module, a posterior probability update difference calculation module and an update difference accumulation module;

[0032] A first posterior probability value reading module is used to read the posterior probability value of the target variable node from the specified storage based on the sub-check matrix corresponding to the layer, wherein the target variable node is the variable node connected to the check node of the layer, and the posterior probability value of the target variable node is the posterior probability value after the update calculation corresponding to the target variable node in the previous layer or previous layers of the layer;

[0033] A variable node updating module is used to determine the logarithmic maximum likelihood ratio value transmitted by the target variable node to the connected target check node according to the posterior probability value of the target variable node and the sub-check matrix corresponding to the layer;

[0034] A check node update module is used to calculate the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to the layer to the connected target variable node under the current number of iterations according to the logarithmic maximum likelihood ratio value transmitted by the target variable node to the connected target check node and the sub-check matrix corresponding to the layer;

[0035] The posterior probability update difference calculation module is used to determine the posterior probability update difference of the target variable node according to the logarithmic maximum likelihood ratio value transmitted to the connected target variable node by the target check node corresponding to the layer under the current number of iterations;

[0036] The update difference accumulation module is used to update the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation based on the posterior probability update difference of the target variable node, so as to obtain the posterior probability value after the update calculation corresponding to the layer under the current number of iterations.

[0037] Optionally, the posterior probability update difference calculation module includes: an acquisition module and a difference calculation module;

[0038] An acquisition module is used to obtain the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to the layer to the connected target variable node at the previous iteration number of the current iteration number;

[0039] The difference calculation module is used to calculate the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to this layer to the connected target variable node at the current iteration number, and the difference between the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to this layer to the connected target variable node at the previous iteration number of the current iteration number as the posterior probability update difference of the target variable node.

[0040] Optionally, an update difference accumulation module is specifically used to accumulate the updated difference of the posterior probability of the target variable node and write it back to the position of the posterior probability value of the corresponding variable node in the specified storage; or, read the posterior probability value of the target variable node from the specified storage again, sum the posterior probability update difference of the target variable node and the posterior probability value of the target variable node read again, obtain the posterior probability value after the updated calculation corresponding to the layer at the current number of iterations, and write the posterior probability value after the updated calculation corresponding to the layer at the current number of iterations back to the specified storage.

[0041] Optionally, when the update difference accumulation module writes the updated difference accumulation of the posterior probability of the target variable node back to the position of the posterior probability value of the corresponding variable node in the specified storage, it is specifically used to, for each variable node contained in the target variable node, write the updated difference accumulation of the posterior probability of the variable node back to the position of the posterior probability value of the variable node in the specified storage.

[0042] Through the above technical solution, it can be known that the LDPC layered decoding method provided by the present application first obtains the layered check matrix, and then at the current number of iterations, performs update calculation processing on multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner, and finally performs decoding judgment on the posterior probability value after the update calculation processing corresponding to the last layer at the current number of iterations. If the decoding judgment fails, the current number of iterations is increased by 1, and the execution is returned to the current number of iterations, and the update calculation processing based on the corresponding sub-check matrix is ​​performed on multiple layers in an inter-layer pipeline manner until the decoding judgment is successful, or the current number of iterations reaches the set number of iterations. The LDPC layered decoding method provided in the present application performs update calculation processing on multiple layers based on corresponding sub-check matrices in an inter-layer pipeline manner, thereby eliminating inter-layer empty beats, reducing inter-layer processing delays, and improving the working speed of the decoder; and when performing update calculation processing on each layer, the posterior probability update difference of the variable node connected to the check node of the corresponding layer is calculated, and based on the posterior probability update difference, the posterior probability value of the corresponding variable node of the corresponding layer in the specified storage is updated to the posterior probability value after the update calculation processing, thereby ensuring the decoding performance when piping between layers. BRIEF DESCRIPTION OF THE DRAWINGS

[0043] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.

[0044] Figure 1a It is a schematic diagram of pipeline processing in the LDPC layered decoding layer in the prior art;

[0045] Figure 1b It is a schematic diagram of the inter-layer empty beat problem of LDPC layered decoding in the prior art;

[0046] Figure 2 A flowchart of an LDPC layered decoding method provided in an embodiment of the present application;

[0047] Figure 3a A schematic diagram of a hierarchical check matrix provided in an embodiment of the present application;

[0048] Figure 3bA schematic diagram of a Tanner graph corresponding to a layered check matrix provided in an embodiment of the present application;

[0049] Figure 4 A schematic diagram of the structure of an LDPC decoder provided in an embodiment of the present application;

[0050] Figure 5 A hardware structure block diagram of an LDPC layered decoding device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0051] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0052] As introduced in the background technology, in the LDPC layered decoding method provided by the prior art, each round of iterative decoding is to update and calculate each layer in turn in units of layers, and each layer of update calculation processing starts with reading the posterior probability value of the variable node from the storage, and then goes through the process of updating the variable node and checking the node, and then ends with calculating the posterior probability value of the variable node and writing it back to the storage. Among them, the formulas used for updating the variable node, updating the check node and calculating the posterior probability value of the variable node (obtaining the posterior probability) are as follows:

[0053] Variable node update:

[0054] Checkpoint update:

[0055] Find the posterior probability:

[0056] The existing LDPC layered decoding method has the problem of too long inter-layer delay, for example, see Figure 1b, the number of inter-layer empty beats is Nh. In order to solve this problem, that is, to eliminate the number of inter-layer empty beats Nh, the inventor of this case thought of a method of hard elimination of inter-layer empty beats after studying the prior art. However, hard pipeline processing between layers will result in the posterior probability of each layer not being fully written back to the designated storage, and even when the variable nodes and check nodes are not fully updated, the information will be used for the next layer calculation, which will cause excessive distortion when the next layer updates the information, especially increasing the error rate when the check nodes are updated, resulting in deterioration of decoding performance. According to simulation verification, the performance is worse than that of the flooding method. In order to overcome the inter-layer processing empty beats while ensuring performance, the inventor of this case conducted further in-depth research and finally proposed an LDPC layered decoding method, which can be applied to LDPC decoders. The LDPC layered decoding method provided by this application will be introduced in detail through the following embodiments.

[0057] See also Figure 2 , shows a schematic flow chart of an LDPC layered decoding method provided in an embodiment of the present application, and the LDPC layered decoding method may include:

[0058] Step S201: Obtain a hierarchical check matrix.

[0059] Among them, the layered check matrix includes sub-check matrices corresponding to multiple layers, the number of rows and columns of the sub-check matrices corresponding to the multiple layers are the same, and the number of columns is the same as the number of columns of the layered check matrix, the row weight of each row of the sub-check matrix corresponding to any layer is the same (the row weights of each row of the sub-check matrices corresponding to different layers may be different), the column weight is 0 or 1, and each row corresponds to a check node, and each column corresponds to a variable node.

[0060] In this step, the target check matrix H can be layered according to the 5GNR LDPC base matrix and the expansion factor to obtain a layered check matrix.

[0061] Specifically, if the dimension of the base matrix Hb is hm×hn and the expansion factor is Zc, then the dimension of the target check matrix H is M×N=(hm×Zc)×(hn×Zc), where M corresponds to the number of check nodes and N corresponds to the number of variable nodes. Then, stratifying the target check matrix H means stratifying from the dimension of the "row" of the target check matrix, with each Zc row as a sub-check matrix corresponding to a layer. Then, stratifying the target check matrix H, the obtained stratified check matrix includes sub-check matrices corresponding to hm layers, with layer number l=1,2,3,…,hm.

[0062] Due to the design characteristics of 5GNR LDPC, after the above stratification, the sub-check matrices corresponding to each layer have the following characteristics: the row weight is the same, and the column weight is 0 or 1. Here, the row weight of a row refers to the number of non-zero elements in the row, and the column weight of a column refers to the number of non-zero elements in the column.

[0063] For example, see Figure 3a The layered check matrix shown in FIG. 1 includes two layers of corresponding sub-check matrices (i.e., two layers of corresponding sub-check matrices divided by horizontal dotted lines), hm = 2, hn = 4, and Zc = 4. It can be seen that for the sub-check matrices corresponding to each layer, the row weights of each row are the same, and the column weights of each column are 0 or 1.

[0064] Step S202: at the current number of iterations, update calculation processing is performed on multiple layers based on corresponding sub-check matrices in an inter-layer pipeline manner.

[0065] Among them, the update calculation process corresponding to any layer includes a posterior probability update difference calculation process and an update difference accumulation process. Here, the posterior probability update difference calculation process is used to calculate the posterior probability update difference of the variable node connected to the check node of the layer, and the update difference accumulation process is used to update the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation process based on the posterior probability update difference.

[0066] Specifically, in this step, for each iterative decoding, each layer is updated and calculated based on the sub-check matrix corresponding to each layer in an inter-layer pipeline manner. Here, the inter-layer pipeline means that it is not necessary to complete the update calculation processing of the current layer before starting the operation of the next layer, but after each step of the current layer (including the posterior probability update difference calculation processing and the update difference accumulation processing) is executed, the step is executed on the next layer, so that the empty beats between layers can be eliminated, the inter-layer processing delay can be reduced, and the working speed of the decoder can be improved.

[0067] For example, for the calculation and processing of the posterior probability update difference, the inter-layer pipeline method means that after calculating the posterior probability update difference of the last batch of variable nodes connected to the check nodes in the current layer, the posterior probability update difference of the first batch of variable nodes connected to the check nodes in the next layer is calculated.

[0068] It should be noted that in this step, the update calculation processing of each layer based on the sub-check matrix corresponding to the layer is performed in accordance with the intra-layer parallel pipeline mode, and the intra-layer parallel pipeline mode is the same as the prior art (refer to Figure 1a and Figure 1b ), this application will not be introduced in detail.

[0069] Following the above analysis, in this step, in one iterative decoding, update calculation processing based on the corresponding layer can be performed for each layer in the multiple layers. Here, the update calculation processing corresponding to any layer can include: posterior probability value reading processing, variable node update processing, check node update processing, posterior probability update difference calculation processing and update difference accumulation processing. Among them, the posterior probability value reading process is used to read the posterior probability value of the variable node connected to the check node of the layer from the specified storage; the variable node update process is used to update the LLR (Log Likelihood Ratio) of the variable node connected to the check node of the layer; the check node update process is used to update the LLR of all check nodes connected to the variable node of the layer; the posterior probability update difference calculation process is used to determine the posterior probability update difference of the variable node connected to the check node of the layer; the update difference accumulation process is used to update the posterior probability value of the corresponding variable node in the specified storage (the posterior probability value of the corresponding variable node refers to the posterior probability value of the variable node connected to the check node of the layer stored in the specified storage when the update difference accumulation process is performed) to the posterior probability value after the update calculation process. The above-mentioned posterior probability value reading process, variable node update process, and check node update process are the same as those in the prior art, and the details can be referred to the introduction in the prior art.

[0070] It can be seen that this step no longer completely follows the five steps of the prior art of "reading posterior probability values ​​from storage, updating variable nodes, updating check nodes, calculating posterior probabilities, and writing posterior probabilities back to storage" to perform update calculations on each layer, but uses "posterior probability update difference calculation processing and update difference accumulation processing" to replace the two steps of "calculating posterior probabilities and writing posterior probabilities back to storage". Since the update difference accumulation processing can update the posterior probability values ​​of the variable nodes corresponding to the corresponding layers in the specified storage to the posterior probability values ​​after the update calculation processing based on the posterior probability update difference, the decoding performance is ensured when piping between layers.

[0071] Step S203, perform decoding judgment on the posterior probability value after the update calculation processing corresponding to the last layer under the current iteration number. If the decoding judgment fails, add 1 to the current iteration number, return to execute under the current iteration number, and perform update calculation processing based on the corresponding sub-check matrix on multiple layers in an inter-layer pipeline manner until the decoding judgment is successful, or the current iteration number reaches the set iteration number.

[0072] Specifically, in this step, a decoding decision can be made on the updated a posteriori probability value after calculation and processing corresponding to the last layer of the iterative decoding for each iterative decoding. If the decoding decision is successful, it indicates that the LDPC decoding is successful, and no iterative decoding will be performed thereafter. If the decoding decision fails, it indicates that the LDPC decoding fails. At this time, the current number of iterations can be increased by 1, and it is determined whether the current number of iterations reaches the set number of iterations. If the set number of iterations is reached, it indicates that the LDPC decoding has failed, and no iterative decoding will be performed thereafter. If the set number of iterations is not reached, the above step S202 is returned to continue the iterative decoding.

[0073] The LDPC layered decoding method provided by the present application first obtains the layered check matrix, and then performs update calculation processing on multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner under the current number of iterations, and finally performs decoding judgment on the posterior probability value after the update calculation processing corresponding to the last layer under the current number of iterations. If the decoding judgment fails, the current number of iterations is increased by 1, and the execution is returned to perform update calculation processing on multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner under the current number of iterations until the decoding judgment is successful, or the current number of iterations reaches the set number of iterations. The LDPC layered decoding method provided by the present application performs update calculation processing on multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner, eliminates inter-layer empty beats, reduces inter-layer processing delays, and improves the working speed of the decoder; and when updating and calculating each layer, the posterior probability update difference of the variable node connected to the check node of the corresponding layer is calculated, and the posterior probability value of the corresponding variable node of the corresponding layer in the specified storage is updated to the posterior probability value after the update calculation processing based on the posterior probability update difference, thereby ensuring the decoding performance during inter-layer pipeline.

[0074] The following is an explanation of "step S202, at the current number of iterations, performing update calculation processing on multiple layers based on corresponding sub-check matrices in an inter-layer pipeline manner" in the above embodiment.

[0075] It can be understood that the process of performing update calculation processing based on the corresponding sub-check matrix on each layer in the multiple layers in this step is the same. For the convenience of description, taking one layer in the multiple layers as an example, the process of "performing update calculation processing on the layer based on the corresponding sub-check matrix" is introduced.

[0076] Optionally, the process of “performing update calculation processing on the layer based on the corresponding sub-check matrix” may include:

[0077] S1. Based on the sub-check matrix corresponding to the layer, read the posterior probability value of the target variable node from the specified storage.

[0078] The target variable node is a variable node of the layer connected to the check node, and the posterior probability value of the target variable node is the posterior probability value after update calculation corresponding to the target variable node in the previous layer or previous layers of the layer.

[0079] The following description is made by taking the current iteration number as t (t-th iteration decoding) and the layer as the l-th layer as an example.

[0080] This step refers to the posterior probability value reading process mentioned in the above application, and the specific implementation process is described as follows:

[0081] Each column of the sub-check matrix corresponding to the lth layer corresponds to a variable node. For the lth layer, only some of these variable nodes may be connected to the check node. In this step, based on the sub-check matrix corresponding to the lth layer, the variable nodes connected to the check node in the lth layer can be determined. For example, based on Figure 3a The obtained Tanner diagram is as follows Figure 3b As shown, for Figure 3a The sub-check matrix corresponding to the first layer shown (the sub-check matrix on the upper side of the horizontal dotted line) corresponds to Figure 3b As shown in the first layer of lines (solid lines), it can be seen that, among the 16 (N=16) variable nodes, the first variable node is connected to the first check node, the second variable node is connected to the second check node, the third variable node is connected to the third check node, the fourth variable node is connected to the fourth check node, the fifth variable node is connected to the fourth check node, the sixth variable node is connected to the first check node, the seventh variable node is connected to the second check node, the eighth variable node is connected to the third check node, the ninth to twelfth variable nodes are not connected to the check nodes, the thirteenth variable node is connected to the third check node, the fourteenth variable node is connected to the fourth check node, the fifteenth variable node is connected to the first check node, and the sixteenth variable node is connected to the second check node; similarly, for Figure 3a The sub-check matrix corresponding to the second layer shown (the sub-check matrix below the horizontal dotted line) corresponds to Figure 3bFrom the second layer of connections (dashed lines) shown, it can be seen that among the 16 (N=16) variable nodes, the 1st variable node is connected to the 6th check node, the 2nd variable node is connected to the 7th check node, the 3rd variable node is connected to the 8th check node, the 4th variable node is connected to the 5th check node, the 5th variable node is connected to the 5th check node, the 6th variable node is connected to the 6th check node, the 7th variable node is connected to the 7th check node, the 8th variable node is connected to the 8th check node, the 9th variable node is connected to the 8th check node, the 10th variable node is connected to the 5th check node, the 11th variable node is connected to the 6th check node, the 12th variable node is connected to the 7th check node, and the 13th to 16th variable nodes are not connected to any check node.

[0082] The variable nodes connected to the check nodes in the above-determined lth layer are used as target variable nodes. For example, for the above-mentioned first layer, the target variable nodes are 1 to 8, 13 to 16; for the above-mentioned second layer, the target variable nodes are 1 to 12. Then, in this step, the posterior probability value of the target variable node can be read from the specified storage. Here, it should be noted that the posterior probability value of each variable node (i.e., the posterior probability value after the update calculation corresponding to the most recently calculated layer in each layer) is stored in the specified storage. As the update calculation is performed on each layer, the posterior probability value of each variable node stored in the specified storage is also continuously updated.

[0083] For the convenience of subsequent description, the posterior probability value of the target variable node read in this step is recorded as n represents the nth variable node, n is the column number of the sub-check matrix corresponding to the lth layer whose column weight is not 0, and the number of values ​​of n is ρ l ×Zc,ρ l is the row weight of the first layer, that is, this step needs to read a total of ρ l ×Zc posterior probability values.

[0084] The above l_unknown may be l-1 or l-2 or other values. This is because: the present application adopts an inter-layer pipeline method, and the row weights of the sub-check matrices corresponding to each layer are not equal. At the same time, it is affected by factors such as the dimension of the layered check matrix, the parallelism of the decoder, and the execution time of each computing component. Therefore, it is not certain that when executing this step, the Z in the specified storage n Which layer is the updated value (i.e. the posterior probability value after the updated calculation process), where if Zc is large enough and the processing time of each step (S1 to S5) is short enough, it can be ensured that Zc is read at the lth layer. n When the previous layer updates Z nhas been written back to the specified storage, that is, l_unknown is l-1, and the decoding performance is not affected; on the contrary, l_unknown may be l-2 or even other values. It can be regarded as the approximate value required in the theoretical formula, and the decoding performance will be affected within an acceptable range.

[0085] S2. Determine the logarithmic maximum likelihood ratio value transmitted by the target variable node to the connected target check node according to the posterior probability value of the target variable node and the sub-check matrix corresponding to the layer.

[0086] This step refers to the variable node update process mentioned in the above application, and the specific implementation process is described as follows:

[0087] In this step, the check node connected to the target variable node can be defined as the target check node. Since the target variable node may include multiple variable nodes, and each variable node is connected to at most one check node (the column weight of each column of the sub-check matrix corresponding to the l-th layer is at most 1, so the number of check nodes connected to each variable node is at most 1), therefore, the target check node may include multiple check nodes. In this step, the LLR of each variable node included in the target variable node in the l-th layer can be updated according to the posterior probability value of each variable node included in the target variable node, and the logarithmic maximum likelihood ratio value transmitted by each variable node to the connected check node is obtained.

[0088] Optionally, in the lth layer in the tth iterative decoding, the following formula may be used to calculate the logarithmic maximum likelihood ratio value transmitted by each variable node to the connected check node:

[0089]

[0090] In the formula, is the LLR passed from the nth variable node to the mth check node, When calculating the LLR of the lth layer for the t-1th iterative decoding, the mth check node passes to the nth variable node, m = (l-1) × Zc+1, (l-1) × Zc+2, ..., l × Zc, for a given m, n takes the non-zero column number in the mth row of the sub-check matrix corresponding to the lth layer, and for a given m, n takes the number of values ​​of the row weight ρ of the sub-check matrix corresponding to the lth layer l .

[0091] S3. Calculate the logarithmic maximum likelihood ratio value passed from the target variable node to the connected target check node under the current number of iterations based on the logarithmic maximum likelihood ratio value passed from the target check node to the connected target variable node and the sub-check matrix corresponding to the layer.

[0092] This step refers to the verification node update process mentioned in the above application, and the specific implementation process is described as follows:

[0093] Specifically, as introduced in S2, the target check node may include multiple check nodes. This step can determine the set of variable nodes connected to each check node in the lth layer according to the sub-check matrix corresponding to the lth layer, and then update the LLR of each check node included in the target check node in the lth layer according to the logarithmic maximum likelihood ratio value passed to the connected check node by each variable node included in the target variable node, and obtain the logarithmic maximum likelihood ratio value passed to the connected variable node by each check node corresponding to the lth layer under the current number of iterations.

[0094] Optionally, in the lth layer in the tth iterative decoding, the following formula may be used to calculate the logarithmic maximum likelihood ratio value transmitted to the connected variable nodes by each check node corresponding to the lth layer at the current number of iterations:

[0095]

[0096] In the formula, It refers to the LLR passed from the mth check node to the nth variable node. refers to the set of variable nodes connected to the mth check node, It refers to the set of variable nodes connected to the mth check node except variable node n, m = (l-1) × Zc+1, (l-1) × Zc+2, ..., l × Zc, for a given m, n takes the non-zero column number in the mth row of the sub-check matrix corresponding to the lth layer, and for a given m, n takes the number of values ​​of the row weight ρ of the sub-check matrix corresponding to the lth layer l .

[0097] S4. Determine the updated difference of the posterior probability of the target variable node according to the logarithmic maximum likelihood ratio value transmitted to the connected target variable node by the target check node corresponding to the layer at the current number of iterations.

[0098] This step refers to the posterior probability update difference calculation process mentioned in the above-mentioned present application. Optionally, the specific implementation process of this step may include: obtaining the logarithmic maximum likelihood ratio value passed by the target check node corresponding to this layer to the connected target variable node at the iteration number before the current iteration number, calculating the logarithmic maximum likelihood ratio value passed by the target check node corresponding to this layer to the connected target variable node at the current iteration number, and the difference between the logarithmic maximum likelihood ratio value passed by the target check node corresponding to this layer to the connected target variable node at the iteration number before the current iteration number as the posterior probability update difference of the target variable node.

[0099] Optionally, the following formula can be used to calculate the posterior probability update difference of each variable node included in the target variable node:

[0100]

[0101] In the formula, is the updated difference of the posterior probability of variable node n, where n is the column number of the sub-check matrix corresponding to the lth layer whose column weight is not 0, and the number of values ​​of n is ρ l ×Zc, that is, for the lth layer, this step can calculate ρ l ×Zc posterior probability update differences.

[0102] It should be noted that the number of check nodes connected to the variable node n in the lth layer is at most 1, so the difference of the LLR of each updated check node in the lth layer can be used to calculate the updated difference of the posterior probability of a variable node.

[0103] S5. Based on the posterior probability update difference of the target variable node, the posterior probability value of the corresponding variable node in the specified storage is updated to the posterior probability value after the updated calculation process, so as to obtain the posterior probability value after the updated calculation process corresponding to the layer under the current number of iterations.

[0104] This step refers to the update difference accumulation process mentioned in the above application. Optionally, this step has multiple implementations, and this application provides but is not limited to the following two implementations:

[0105] The implementation process of the first implementation method may include:

[0106] S51. Read the posterior probability value of the target variable node from the specified storage again.

[0107] It should be noted that this step is to read the posterior probability value of the target variable node from the specified storage again when the update difference accumulation process is performed on the lth layer. Compared with the reading process of S1, since it has gone through multiple processing steps, and the same Z n The sum is written back to the same storage location, so the posterior probability value read again in this step may be different from the posterior probability value read in S1.

[0108] Since this step is the last processing step of the lth layer, when this step reads the posterior probability value of the target variable node again, the previous layer has most likely been updated. That is, the posterior probability value read again in this step is the latest value updated by the l-1th layer of the tth iterative decoding.

[0109] S52, summing the updated difference of the posterior probability of the target variable node and the posterior probability value of the target variable node read again, to obtain the updated posterior probability value after calculation and processing corresponding to the layer at the current number of iterations.

[0110] Optionally, the target variable node may include multiple variable nodes. For each variable node included in the target variable node, the process of this step may include: summing the posterior probability update difference of the variable node with the posterior probability value of the variable node read again to obtain the posterior probability value of the layer corresponding to the variable node after the updated calculation processing at the current number of iterations; to obtain the posterior probability value of the layer corresponding to the target variable node after the updated calculation processing at the current number of iterations.

[0111] That is, in this step, the following formula can be used to calculate the posterior probability value after the update calculation corresponding to the variable node n:

[0112]

[0113] In the formula, is the posterior probability value after the update calculation corresponding to the variable node n, where n is the column number of the sub-check matrix corresponding to the lth layer whose column weight is not 0, and the number of values ​​of n is ρ l ×Zc, that is, for the lth layer, this step can calculate ρ l ×Zc updates are performed to calculate the posterior probability value after the processing.

[0114] S53, writing the updated posterior probability value corresponding to the layer at the current number of iterations back to the designated storage.

[0115] In this step, the updated posterior probability value corresponding to each variable node included in the target variable node can be written back to the storage location where the posterior probability value of the corresponding variable node is located, thereby completing the entire update process.

[0116] The second implementation manner (preferred implementation manner) is: accumulating the updated difference of the posterior probability of the target variable node and writing it back to the position of the posterior probability value of the corresponding variable node in the designated storage.

[0117] Those skilled in the art should understand that one of the functions of the chip computing unit is "accumulative write back". The "accumulative write back" means, for example, that the specified storage includes storage addresses 1 to 3, wherein the Z1 value is stored in storage address 1, the Z2 value is stored in storage address 2, and the Z3 value is stored in storage address 3. Then, after ZP1, ZP2, and ZP3 are accumulated and written back to the specified storage, what is stored in address 1 is the sum of ZP1 and Z1, what is stored in address 2 is the sum of ZP2 and Z2, and what is stored in address 3 is the sum of ZP3 and Z3.

[0118] Based on this, this step accumulates and writes back the updated difference of the posterior probability of the target variable node to the position of the posterior probability value of the corresponding variable node in the specified storage, that is, for each variable node contained in the target variable node, the updated difference of the posterior probability of the variable node is accumulated and written back to the position of the posterior probability value of the variable node in the specified storage. After the accumulated write-back is completed, the value stored at the position becomes the posterior probability value after the updated calculation processing corresponding to the variable node (that is, the sum of the posterior probability update difference of the variable node and the posterior probability value of the variable node). The accumulated write-back is performed for each variable node contained in the target variable node, and the posterior probability value after the updated calculation processing corresponding to the lth layer of the tth iterative decoding can be obtained.

[0119] It should be noted that the posterior probability value of the corresponding variable node is most likely the latest value updated by the l-1 layer of the t-th iterative decoding. The specific reason has been introduced in S51 and will not be repeated here. It should also be noted that the first implementation method corresponds to 3 beats, while the second implementation method only corresponds to one beat. Therefore, compared with the first implementation method, the second implementation method has fewer beats, that is, the processing time is shorter and the processing speed is faster. Therefore, the second implementation method is preferred in the embodiment of the present application.

[0120] Since the update difference accumulation process of the lth layer in this step uses the latest posterior probability information of the l-1th layer after the tth iterative decoding, the "using the posterior probability information of the previous layer that was not synchronously updated (i.e. ) leads to the performance degradation problem of "error in updating the next layer of verification nodes".

[0121] Referring to the formula for obtaining the posterior probability in the prior art, the prior art is used to obtain the posterior probability When , directly use the lth layer calculated when the variable node is updated like If the calculation is wrong, the decoding performance will become very poor; the process of S4 and S5 in the embodiment of the present application is equivalent to recalculating See the following derivation process for details:

[0122]

[0123] This recalculation The method makes it possible to read Zc at layer l even when Zc is not large enough and the processing time of each step is not short enough. n When the previous layer updates Z nBefore writing back to the designated storage, the accumulated error in calculating the posterior probability at each layer in the formula for calculating the posterior probability in the prior art can also be truncated. After algorithm performance simulation verification, the decoding performance of the LDPC layered decoding algorithm based on the inter-layer pipelining method provided in this application is better than the prior art.

[0124] The embodiment of the present application further provides an LDPC decoder. The LDPC decoder provided by the embodiment of the present application is described below. The LDPC decoder described below and the LDPC layered decoding method described above can be referenced to each other.

[0125] See also Figure 4 , shows a schematic diagram of the structure of the LDPC decoder provided in an embodiment of the present application, such as Figure 4 As shown, the LDPC decoder may include: a layered check matrix acquisition module 401, an update calculation processing module 402 and a decoding decision module 403.

[0126] The layered check matrix acquisition module 401 is used to acquire the layered check matrix, wherein the layered check matrix includes sub-check matrices corresponding to multiple layers, the number of rows and columns of the sub-check matrices corresponding to the multiple layers are the same, and the number of columns is the same as the number of columns of the layered check matrix, the row weight of each row of the sub-check matrix corresponding to any layer is the same, the column weight of each column is 0 or 1, and each row corresponds to a check node, and each column corresponds to a variable node;

[0127] The update calculation processing module 402 is used to perform update calculation processing based on the corresponding sub-check matrix on multiple layers in an inter-layer pipeline manner at the current number of iterations, wherein the update calculation processing corresponding to any layer includes a posterior probability update difference calculation processing and an update difference accumulation processing, the posterior probability update difference calculation processing is used to calculate the posterior probability update difference of the variable node connected to the check node of the layer, and the update difference accumulation processing is used to update the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation processing based on the posterior probability update difference;

[0128] The decoding decision module 403 is used to perform decoding decision on the posterior probability value after the update calculation processing corresponding to the last layer under the current iteration number. If the decoding decision fails, the current iteration number is increased by 1, and the execution is returned to perform update calculation processing based on the corresponding sub-check matrix on multiple layers in an inter-layer pipeline manner under the current iteration number until the decoding decision is successful, or the current iteration number reaches the set iteration number.

[0129] The LDPC decoder provided by the present application first obtains the layered check matrix, and then performs update calculation processing on multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner under the current number of iterations, and finally performs decoding judgment on the posterior probability value after the update calculation processing corresponding to the last layer under the current number of iterations. If the decoding judgment fails, the current number of iterations is increased by 1, and the execution is returned to perform update calculation processing on multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner under the current number of iterations until the decoding judgment is successful, or the current number of iterations reaches the set number of iterations. The LDPC decoder provided by the present application performs update calculation processing on multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner, eliminates inter-layer empty beats, reduces inter-layer processing delays, and improves the working speed of the decoder; and when performing update calculation processing on each layer, the posterior probability update difference of the variable node connected to the check node of the corresponding layer is calculated, and the posterior probability value of the corresponding variable node of the corresponding layer in the specified storage is updated to the posterior probability value after the update calculation processing based on the posterior probability update difference, thereby ensuring the decoding performance during inter-layer pipeline.

[0130] In one possible implementation, when the update calculation processing module performs update calculation processing on each layer in multiple layers based on the corresponding sub-check matrix, it can include: a first posterior probability value reading module, a variable node update module, a check node update module, a posterior probability update difference calculation module and an update difference accumulation module.

[0131] Among them, the first posterior probability value reading module is used to read the posterior probability value of the target variable node from the specified storage based on the sub-check matrix corresponding to the layer, wherein the target variable node is the variable node of the layer connected to the check node, and the posterior probability value of the target variable node is the posterior probability value after the update calculation corresponding to the target variable node in the previous layer or previous layers of the layer.

[0132] The variable node updating module is used to determine the logarithmic maximum likelihood ratio value transmitted by the target variable node to the connected target check node according to the posterior probability value of the target variable node and the sub-check matrix corresponding to the layer.

[0133] The check node update module is used to calculate the logarithmic maximum likelihood ratio value passed by the target check node corresponding to the layer to the connected target variable node under the current number of iterations based on the logarithmic maximum likelihood ratio value passed by the target variable node to the connected target check node and the sub-check matrix corresponding to the layer.

[0134] The posterior probability update difference calculation module is used to determine the posterior probability update difference of the target variable node according to the logarithmic maximum likelihood ratio value transmitted to the connected target variable node by the target check node corresponding to the layer under the current number of iterations.

[0135] The update difference accumulation module is used to update the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation based on the posterior probability update difference of the target variable node, so as to obtain the posterior probability value after the update calculation corresponding to the layer under the current number of iterations.

[0136] In a possible implementation, the above-mentioned posterior probability update difference calculation module may include: an acquisition module and a difference calculation module.

[0137] Among them, the acquisition module is used to obtain the logarithmic maximum likelihood ratio value transmitted to the connected target variable node by the target check node corresponding to this layer at the previous iteration number of the current iteration number.

[0138] The difference calculation module is used to calculate the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to this layer to the connected target variable node at the current iteration number, and the difference between the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to this layer to the connected target variable node at the previous iteration number of the current iteration number as the posterior probability update difference of the target variable node.

[0139] In a possible implementation, the update difference accumulation module may include: a second posterior probability value reading module, a summing module and a write-back module.

[0140] The second posterior probability value reading processing module is used to read the posterior probability value of the target variable node again from the specified storage.

[0141] The summation module is used to sum the updated difference of the posterior probability of the target variable node and the posterior probability value of the target variable node read again to obtain the updated posterior probability value of the layer after the current number of iterations.

[0142] The write-back module is used to write the updated posterior probability value of the layer corresponding to the current number of iterations back to the specified storage.

[0143] In a possible implementation, the update difference accumulation module may be specifically used to write the update difference accumulation of the posterior probability of the target variable node back to the position of the posterior probability value of the corresponding variable node in the specified storage.

[0144] In one possible implementation, when the updated difference accumulation module writes the updated difference accumulation of the posterior probability of the target variable node back to the position of the posterior probability value of the corresponding variable node in the specified storage, it can be specifically used for each variable node contained in the target variable node, and writes the updated difference accumulation of the posterior probability of the variable node back to the position of the posterior probability value of the variable node in the specified storage.

[0145] The embodiment of the present application also provides an LDPC layered decoding device. Optionally, Figure 5 The hardware structure diagram of the LDPC layered decoding device is shown in FIG. Figure 5 , the hardware structure of the LDPC layered decoding device may include: at least one processor 501, at least one communication interface 502, at least one memory 503 and at least one communication bus 504;

[0146] In the embodiment of the present application, the number of the processor 501, the communication interface 502, the memory 503, and the communication bus 504 is at least one, and the processor 501, the communication interface 502, and the memory 503 communicate with each other through the communication bus 504;

[0147] The processor 501 may be a central processing unit (CPU), or an application-specific integrated circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of the present invention;

[0148] The memory 503 may include a high-speed RAM memory, and may also include a non-volatile memory, such as at least one disk memory;

[0149] The memory 503 stores a program, and the processor 501 can call the program stored in the memory 503, and the program is used to:

[0150] Obtain a layered check matrix, wherein the layered check matrix includes sub-check matrices corresponding to multiple layers, the number of rows and the number of columns of the sub-check matrices corresponding to the multiple layers are the same, and the number of columns is the same as the number of columns of the layered check matrix, the row weight of each row of the sub-check matrix corresponding to any layer is the same, the column weight of each column is 0 or 1, and each row corresponds to a check node, and each column corresponds to a variable node;

[0151] At the current number of iterations, update calculation processing is performed on multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner, wherein the update calculation processing corresponding to any layer includes a posterior probability update difference calculation processing and an update difference accumulation processing, the posterior probability update difference calculation processing is used to calculate the posterior probability update difference of the variable node connected to the check node of the layer, and the update difference accumulation processing is used to update the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation processing based on the posterior probability update difference;

[0152] The decoding decision is made on the posterior probability value after the update calculation corresponding to the last layer under the current iteration number. If the decoding decision fails, the current iteration number is increased by 1, and the execution is returned to the current iteration number. The update calculation processing based on the corresponding sub-check matrix is ​​performed on multiple layers in an inter-layer pipeline manner until the decoding decision is successful, or the current iteration number reaches the set iteration number.

[0153] Optionally, the detailed functions and extended functions of the program may refer to the above description.

[0154] An embodiment of the present application further provides a readable storage medium having a computer program stored thereon. When the computer program is executed by a processor, the LDPC layered decoding method as described above is implemented.

[0155] Optionally, the detailed functions and extended functions of the program may refer to the above description.

[0156] Finally, it should be noted that, in this article, relational terms such as and second are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprises" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the statement "comprises a ..." do not exclude the presence of other identical elements in the process, method, article or device including the elements.

[0157] The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referenced to each other.

[0158] The above description of the disclosed embodiments enables those skilled in the art to implement or use the present application. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application will not be limited to the embodiments shown herein, but will conform to the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A LDPC layered decoding method, characterized in that: Applied to LDPC decoder, including: Obtaining a layered check matrix, wherein the layered check matrix includes sub-check matrices corresponding to multiple layers, the number of rows and the number of columns of the sub-check matrices corresponding to the multiple layers are the same, and the number of columns is the same as the number of columns of the layered check matrix, each row of the sub-check matrix corresponding to any layer has the same row weight, each column has a column weight of 0 or 1, and each row corresponds to a check node, and each column corresponds to a variable node; At the current number of iterations, the update calculation processing based on the corresponding sub-check matrix is ​​performed on the multiple layers in an inter-layer pipeline manner, wherein the update calculation processing corresponding to any layer includes a posterior probability update difference calculation processing and an update difference accumulation processing, the posterior probability update difference calculation processing is used to calculate the posterior probability update difference of the variable node connected to the check node of the layer, and the update difference accumulation processing is used to update the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation processing based on the posterior probability update difference; Performing a decoding decision on the posterior probability value after the update calculation processing corresponding to the last layer under the current iteration number, if the decoding decision fails, adding 1 to the current iteration number, and returning to execute the update calculation processing based on the corresponding sub-check matrix for the multiple layers in an inter-layer pipeline manner under the current iteration number, until the decoding decision is successful, or the current iteration number reaches the set iteration number; For each layer in the multiple layers, performing update calculation processing on the layer based on the corresponding sub-check matrix, including: Based on the sub-check matrix corresponding to the layer, read the posterior probability value of the target variable node from the specified storage, wherein the target variable node is the variable node of the layer connected to the check node, and the posterior probability value of the target variable node is the posterior probability value after the update calculation corresponding to the target variable node in the previous layer or previous layers of the layer; Determine the logarithmic maximum likelihood ratio value transmitted by the target variable node to the connected target check node according to the posterior probability value of the target variable node and the sub-check matrix corresponding to the layer; Calculate the maximum logarithmic likelihood ratio value of the target check node corresponding to the layer transmitted to the connected target variable node under the current number of iterations according to the maximum logarithmic likelihood ratio value of the target check node transmitted to the connected target variable node and the sub-check matrix corresponding to the layer; Determine the posterior probability update difference of the target variable node according to the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to the layer to the connected target variable node at the current iteration number; Based on the posterior probability update difference of the target variable node, the posterior probability value of the corresponding variable node in the specified storage is updated to the posterior probability value after the updated calculation processing, so as to obtain the posterior probability value after the updated calculation processing corresponding to the layer under the current number of iterations.

2. The LDPC layered decoding method according to claim 1, characterized in that: The step of determining the posterior probability update difference of the target variable node according to the logarithmic maximum likelihood ratio value transmitted to the connected target variable node by the target check node corresponding to the layer at the current iteration number includes: Obtaining a logarithmic maximum likelihood ratio value of the target check node corresponding to the layer transmitted to the connected target variable node at the previous iteration number of the current iteration number; Calculate the logarithmic maximum likelihood ratio value passed by the target check node corresponding to the layer to the connected target variable node at the current iteration number, and the difference between the logarithmic maximum likelihood ratio value passed by the target check node corresponding to the layer to the connected target variable node at the iteration number before the current iteration number, as the posterior probability update difference of the target variable node.

3. The LDPC layered decoding method according to claim 1, characterized in that: The updating of the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation process based on the posterior probability update difference of the target variable node includes: Accumulate and write the updated difference of the posterior probability of the target variable node back to the position of the posterior probability value of the corresponding variable node in the specified storage; or, Reading the posterior probability value of the target variable node again from the designated storage; The updated posterior probability difference of the target variable node and the posterior probability value of the target variable node read again are summed to obtain the updated posterior probability value of the layer corresponding to the current number of iterations after calculation; The posterior probability value after the update calculation corresponding to the layer at the current iteration number is written back to the designated storage.

4. The LDPC layered decoding method according to claim 3, characterized in that: The step of accumulating and writing the updated difference of the posterior probability of the target variable node back to the position of the posterior probability value of the corresponding variable node in the designated storage includes: For each variable node included in the target variable node, the updated difference of the posterior probability of the variable node is accumulated and written back to the position of the posterior probability value of the variable node in the designated storage.

5. An LDPC decoder, characterized in that: include: Layered check matrix acquisition module, update calculation processing module and decoding decision module; The layered check matrix acquisition module is used to acquire a layered check matrix, wherein the layered check matrix includes sub-check matrices corresponding to multiple layers, the number of rows and the number of columns of the sub-check matrices corresponding to the multiple layers are the same, and the number of columns is the same as the number of columns of the layered check matrix, the row weight of each row of the sub-check matrix corresponding to any layer is the same, the column weight of each column is 0 or 1, and each row corresponds to a check node, and each column corresponds to a variable node; The update calculation processing module is used to perform update calculation processing on the multiple layers based on the corresponding sub-check matrix in an inter-layer pipeline manner at the current number of iterations, wherein the update calculation processing corresponding to any layer includes a posterior probability update difference calculation processing and an update difference accumulation processing, the posterior probability update difference calculation processing is used to calculate the posterior probability update difference of the variable node connected to the check node of the layer, and the update difference accumulation processing is used to update the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation processing based on the posterior probability update difference; The decoding decision module is used to perform a decoding decision on the posterior probability value after the update calculation processing corresponding to the last layer under the current iteration number. If the decoding decision fails, the current iteration number is increased by 1, and the update calculation processing based on the corresponding sub-check matrix is ​​performed on the multiple layers in an inter-layer pipeline manner under the current iteration number until the decoding decision is successful, or the current iteration number reaches the set iteration number; When the update calculation processing module performs update calculation processing on each layer in the multiple layers based on the corresponding sub-check matrix, the update calculation processing module includes: a first posterior probability value reading module, a variable node update module, a check node update module, a posterior probability update difference calculation module and an update difference accumulation module; The first posterior probability value reading module is used to read the posterior probability value of the target variable node from the specified storage based on the sub-check matrix corresponding to the layer, wherein the target variable node is a variable node connected to the check node of the layer, and the posterior probability value of the target variable node is the posterior probability value after the update calculation corresponding to the target variable node in the previous layer or previous layers of the layer; The variable node updating module is used to determine the logarithmic maximum likelihood ratio value transmitted by the target variable node to the connected target check node according to the posterior probability value of the target variable node and the sub-check matrix corresponding to the layer; The check node updating module is used to calculate the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to the layer to the connected target variable node under the current number of iterations according to the logarithmic maximum likelihood ratio value transmitted by the target variable node to the connected target check node and the sub-check matrix corresponding to the layer; The posterior probability update difference calculation module is used to determine the posterior probability update difference of the target variable node according to the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to the layer to the connected target variable node under the current number of iterations; The update difference accumulation module is used to update the posterior probability value of the corresponding variable node in the specified storage to the posterior probability value after the update calculation processing based on the posterior probability update difference of the target variable node, so as to obtain the posterior probability value after the update calculation processing corresponding to the layer under the current number of iterations.

6. The LDPC decoder according to claim 5, characterized in that: The posterior probability update difference calculation module includes: an acquisition module and a difference calculation module; The acquisition module is used to obtain the logarithmic maximum likelihood ratio value transmitted by the target check node corresponding to the layer to the connected target variable node at the previous iteration number of the current iteration number; The difference calculation module is used to calculate the logarithmic maximum likelihood ratio value passed by the target check node corresponding to the layer to the connected target variable node at the current iteration number, and the difference between the logarithmic maximum likelihood ratio value passed by the target check node corresponding to the layer to the connected target variable node at the iteration number before the current iteration number, as the posterior probability update difference of the target variable node.

7. The LDPC decoder according to claim 5, characterized in that: The update difference accumulation module is specifically used to accumulate the updated difference of the posterior probability of the target variable node and write it back to the position of the posterior probability value of the corresponding variable node in the specified storage; or, read the posterior probability value of the target variable node from the specified storage again, sum the posterior probability update difference of the target variable node and the posterior probability value of the target variable node read again, obtain the posterior probability value after the updated calculation processing corresponding to the layer under the current number of iterations, and write the posterior probability value after the updated calculation processing corresponding to the layer under the current number of iterations back to the specified storage.

8. The LDPC decoder according to claim 7, characterized in that: When the updated difference accumulation module writes the updated difference accumulation of the posterior probability of the target variable node back to the position of the posterior probability value of the corresponding variable node in the specified storage, it is specifically used to, for each variable node included in the target variable node, write the updated difference accumulation of the posterior probability of the variable node back to the position of the posterior probability value of the variable node in the specified storage.

Citation Information

Patent Citations

  • Layered and block-based irregular low-density parity code decoder and decoding method

    CN102281125A

  • Multi-element LDPC code high-speed parallel decoder based on GPU, and decoding method thereof

    CN108462495A