CN108809324B - LDPC decoding method - Google Patents
LDPC decoding method Download PDFInfo
- Publication number
- CN108809324B CN108809324B CN201710311420.5A CN201710311420A CN108809324B CN 108809324 B CN108809324 B CN 108809324B CN 201710311420 A CN201710311420 A CN 201710311420A CN 108809324 B CN108809324 B CN 108809324B
- Authority
- CN
- China
- Prior art keywords
- diagonal
- information
- matrix
- updating
- check matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1168—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
Abstract
The invention provides an LDPC decoding method, which utilizes a check matrix to carry out check updating and updates variable information to obtain an intermediate variable result, and is characterized in that: when the check matrix needs to be compatible with a quasi-cyclic matrix and/or a multi-diagonal matrix, a multi-diagonal information storage unit for storing the intermediate variable result is designed based on the parallelism of the check matrix, the number of lines of multiple diagonals and the maximum number of the multiple diagonals, the check matrix is judged by adopting a quasi-cyclic matrix structure or a multi-diagonal matrix structure, and the multi-diagonal information storage unit is used for storing when the multi-diagonal matrix structure is judged, wherein the maximum number of the multiple diagonals represents the maximum number of the multi-diagonal structures of the submatrix when the check matrix is subjected to layer processing with a certain parallelism.
Description
Technical Field
The invention belongs to the field of communication, and particularly relates to an LDPC decoding method.
Background
Low Density Parity Check Code (LDPC) codes were proposed by Robert g. gallager in 1962, and have not attracted widespread attention from experts and scholars in the field of coding until MacKay and Wilberg have re-discovered the excellent performance of LDPC codes in 1999. The LDPC code is a linear block code, the check matrix of the LDPC code is a sparse matrix, and the LDPC code can approach the performance of Shannon limit by adopting an iterative decoding algorithm. Because the LDPC decoder with the quasi-cyclic structure is easy to implement in parallel and can provide high throughput, and is used by multiple standards, the technology of the LDPC code is currently applied to communication systems of the standards such as CMMB, DTMB, DVB-S2, DVB-T2, ATSC3.0, and 4G.
The existing LDPC decoder realizes a check matrix mainly based on a quasi-cyclic structure. As technology evolves, check matrices of dual-diagonal or even multi-diagonal configurations also evolve. When an LDPC decoder or decoding method is designed, when a check matrix to be processed needs to be compatible with a quasi-cyclic and/or multi-diagonal structure, an original LDPC decoder designed based on a quasi-cyclic structure often needs to be redesigned to meet the parallel implementation requirement when being used to process a check matrix of a multi-diagonal structure, and the design is complex, time-consuming, and inflexible.
In the prior art, there is also a consideration that the design of LDPC decoding needs to be compatible with a quasi-cyclic structure and a multi-diagonal structure, and when a submatrix is in the quasi-cyclic structure, update posterior information is not significantly different, but when the submatrix is in the multi-diagonal structure, because the column weight of the submatrix is greater than or equal to 2, updating posterior information causes that posterior information in the same RAM address is updated correspondingly many times according to the column weight, and a last update covers a previous update value, which causes performance loss.
Disclosure of Invention
In order to solve the above problems, the present invention provides an efficient and general LDPC decoding method, which is particularly suitable for a check matrix with a quasi-cyclic structure and/or a check matrix with a multi-diagonal structure that need to be processed compatibly.
The invention provides an LDPC decoding method, which utilizes a check matrix to carry out check updating and updates variable information to obtain an intermediate variable result, and is characterized in that: when the check matrix needs to be compatible with a quasi-cyclic matrix and/or a multi-diagonal matrix, a multi-diagonal information storage unit for storing the intermediate variable result is designed based on the parallelism of the check matrix, the number of lines of multiple diagonals and the maximum number of the multiple diagonals, the check matrix is judged by adopting a quasi-cyclic matrix structure or a multi-diagonal matrix structure, and the multi-diagonal information storage unit is used for storing when the multi-diagonal matrix structure is judged, wherein the maximum number of the multiple diagonals represents the maximum number of the multi-diagonal structures of the submatrix when the check matrix is subjected to layer processing with a certain parallelism.
Further optionally, in the LDPC decoding method provided by the present invention, wherein the size of the multi-diagonal information storage unit is determined by:
parallelism x (a posteriori information bit width + variable information bit width x (K-1)) × Ndiag,
Wherein the parallelism degree represents the size of a sub-matrix for processing the check matrix; the posterior information bit width is expressed as the preset width required by the posterior information storage unit; the bit width of the variable information is expressed as the preset width required by the variable information storage unit; n is a radical ofdiagRepresenting the maximum number of the multi-diagonal structures of the sub-matrices when layer processing is performed with a certain degree of parallelism; k represents the number of diagonal lines.
Further alternatively, in the LDPC decoding method provided by the present invention, when it is determined that the submatrix for processing the check matrix is of a multi-diagonal structure, the submatrix is rewritten according to the number of diagonals of the determined multi-diagonal structure; and updating and storing the posterior information obtained by the last iteration of variable node updating as an input value into the multi-diagonal information storage unit.
Further optionally, in the LDPC decoding method provided by the present invention, when at least one multi-diagonal structure exists in a plurality of sub-matrices in the check matrix, the check matrix is decomposed into a plurality of sub-matrices for performing corresponding decoding update operations.
Further optionally, in the LDPC decoding method provided by the present invention, the decoding update operation includes the following variable node updating steps: updating variable nodes by using a first unit matrix in the plurality of sub-matrixes, and storing the obtained variable node result in a posterior information storage unit; and in each subsequent updating, respectively updating the variable nodes by using the rest unit matrixes in the plurality of sub-matrixes correspondingly, and storing the variable node results obtained correspondingly to the multi-diagonal information storage unit.
Further optionally, in the LDPC decoding method provided by the present invention, the decoding update operation includes the following a posteriori information update steps: reading a variable node updating result obtained corresponding to the first unit array from a posterior information storage unit, updating posterior information, and storing the updated posterior information into the posterior information storage unit; and in each subsequent updating, respectively reading variable node updating results obtained by corresponding to the rest unit arrays from the multi-diagonal information storage unit, updating posterior information, and storing the updated posterior information into the multi-diagonal information storage unit.
Further optionally, in the LDPC decoding method provided by the present invention, the posterior information obtained by decoding and updating the plurality of sub-matrices respectively is operated to obtain a final posterior information result for subsequent processing.
Further optionally, in the LDPC decoding method provided by the present invention, the subsequent processing includes: for hard decision and subsequent iterations.
Further optionally, in the LDPC decoding method provided by the present invention, the quasi-cyclic matrix is a square matrix whose row weight and column weight are both 1; the multi-diagonal matrix is a superposition of at least two different quasi-cyclic matrices.
Further optionally, in the LDPC decoding method provided by the present invention, the LDPC decoding method further includes using a check matrix storage unit: the method is used for storing all check matrix information under different code rates supported by a decoder, and can be configured to support different protocol standards.
Further optionally, in the LDPC decoding method provided by the present invention, wherein an ATSC3.0 standard protocol is supported, the check matrix storage module needs to store two code lengths and information of corresponding code rates, the code lengths are 16200 and 64800, and the corresponding code rate may be any one of 2/15 to 13/15.
Further optionally, in the LDPC decoding method provided by the present invention, in an implementation of an LDPC decoder of ATSC3.0, the parallelism is 360, the a posteriori node information and the variable node information are both set to 11 bits for storage, and the size of the multi-diagonal information storage RAM is 71280 bits.
Technical effects of the invention
According to the decoding method of the LDPC code provided by the invention, the check matrix with the quasi-cyclic structure and/or the check matrix with the multi-diagonal structure are considered to be compatible, not in the prior art, all check nodes and variable nodes need to be updated when one iteration is completed, so that a decoding algorithm which is updated row by row and column by column cannot meet the requirement of high speed rate and occupies unnecessary large storage space, and the previous updated value can be covered by the next update to cause performance loss. The memory space required by the decoder is reduced as a whole and no performance loss is caused.
Drawings
FIG. 1 is a schematic diagram of a sub-matrix of a quasi-cyclic matrix structure in an LDPC check matrix according to an embodiment of the present invention;
FIG. 2 is a schematic diagram of a sub-matrix of a first multi-diagonal matrix structure in an LDPC check matrix according to an embodiment of the present invention;
FIG. 3 is a block diagram of an LDPC decoder according to an embodiment of the present invention; and
FIG. 4 is a schematic diagram of a sub-matrix of a second multi-diagonal matrix structure in the LDPC check matrix according to an embodiment of the present invention.
Detailed Description
The invention provides an efficient and general LDPC decoding method, which is particularly suitable for a check matrix with a quasi-cyclic structure and/or a check matrix with a multi-diagonal structure which needs to be processed in a compatible mode.
Before explaining the scheme of the invention, the LDPC decoding method in the prior art is introduced as follows, and the LDPC decoding method adopts a common normalized minimum sum product algorithm.
The LDPC decoding method of the common normalized least sum product algorithm comprises the following steps:
3. and (3) variable node updating:
5. if the check equation DH is satisfiedTIf the current iteration times reach 0 or the maximum iteration times, the iteration is ended;
otherwise k is increased by 1 and steps 2-5 are repeated.
Wherein the content of the first and second substances,representing the information passed by the variable node i to the check node j in the kth iteration,representing the information passed to variable node i by check node j in k iterations.
NjRepresenting all variable node sets connected to check node j, Nj\iRepresenting a variable node set connected with a check node j except for the node i; miRepresenting the set of all check nodes connected to variable node i.
In order to be the initial soft value information,is the k-th iteration posterior information. Alpha is a normalization factor.
As can be seen from the above decoding steps, all check nodes need to be updated to complete one iterationAnd variable nodeCorresponding to the row and column traversals of the check matrix, respectively. However, the throughput rate of the system is higher and higher in the existing application, so that the decoding algorithm adopting serial row-by-row and column-by-column updating cannot meet the requirement of high rate, and therefore, the requirement of high rate can be metThe use of parallel layer decoding algorithms may provide higher throughput rates.
However, in the process of using the parallel layer decoding algorithm, when the premise that the check matrix needs to be compatible with the quasi-cyclic and/or multi-diagonal structure is further considered, the posterior information can be directly updated when the decision sub-matrix is the quasi-cyclic structure as shown in fig. 1; however, it should be noted that when the sub-matrix is determined to have a multi-diagonal structure as in fig. 2, since the column weight of the sub-matrix is greater than or equal to 2, the posterior information is updated many times corresponding to the column weight of the posterior information in the same RAM address, for example, since the sub-matrix is updated 2 times in the same column in the dual-diagonal structure in fig. 2, the next update in the multiple update processes may overwrite the previous update value, thereby causing performance loss.
For more specific representation, the present embodiment is illustrated by using a dual diagonal structure, but not limited thereto, and the technical solution proposed by the present invention includes a solution for a multi-diagonal structure, and also includes a solution for a matrix structure such as that shown in fig. 4, that is, the maximum number of multi-diagonals is used to design the size of the storage space, so that unreasonable waste of the storage space can be avoided, the maximum number of multi-diagonals indicates the maximum number of sub-matrices in a multi-diagonal configuration when the check matrix is layer-processed with a certain degree of parallelism, that is, as can be seen in fig. 4, where the column weight of several columns is 1, the column weight of some columns is 2, when the check matrix is decomposed into a plurality of sub-matrices for parallel update operation, instead of the same column weight per column, there are cases where some sub-matrices are in a diagonal configuration and some sub-matrices are in a non-diagonal configuration.
In this embodiment, the quasi-cyclic structure submatrix is a square matrix in which the row weight and the column weight are both 1; the dual diagonal structure is a superposition of two different quasi-cyclic structure sub-matrices.
Fig. 1 shows a schematic diagram of a quasi-cyclic neutron matrix in the present embodiment. Fig. 2 shows a submatrix diagram of a dual diagonal structure in the present embodiment.
Defining I as a unit matrix of qxq, then quasi-cyclic submatrix AijCan be obtained by the cycle right shift of I.Definition I (τ m) denotes right-shifting I by τ m bits, then A is shown belowij=I(2)。
For the submatrix of the check matrix containing a quasi-cyclic structure and a dual diagonal structure, the submatrix can be uniformly defined as
Hij=β0I(τ0)+β1I(τ1) In which τ is0≠τ1,β0, β 10 or 1. (1)
Further, the multi-diagonal structure sub-matrix may be represented as:
the existing layer decoding algorithm is optimized on the normalization and product algorithm, and the processing steps are as follows:
5. repeating the steps 2-4 until all layer updates are completed
7. if the check equation DH is satisfiedTIf the current iteration times reach 0 or the maximum iteration times, the iteration is ended; otherwise k plus 1 is closed, and the step 2-6 is repeated.
The foregoing describes an LDPC decoding scheme, and an LDPC decoding scheme in an embodiment of the present invention is provided below. The LDPC decoder or the LDPC decoding method in the embodiment of the invention can reduce the storage space of the decoder, avoid unnecessary storage space waste, no matter whether the submatrix HijThe quasi-cyclic or dual diagonal structure can be realized by a set of universal decoder structures without redesigning the decoder, and how to realize the quasi-cyclic or dual diagonal decoder structure is explained by combining with the prior art.
With reference to fig. 3, the LDPC decoder and LDPC decoding method of the present invention are embodied as follows:
in the embodiment, the posterior information RAM is adopted to store posterior information, and the multi-diagonal information storage RAM is adopted to store information required by multi-diagonal processing, so that the method can reduce the total storage space. Specifically, the information necessary for the multi-diagonal processing is designed based on the degree of alignment of the check matrix, the number of lines of the multi-diagonal, and the maximum number of the multi-diagonal lines when designing the size of the multi-diagonal information storage unit.
Because the condition that the check matrix needs to be compatible with the quasi-cyclic matrix and/or the multi-diagonal matrix needs to be considered, the check matrix is judged by adopting a quasi-cyclic matrix structure or a multi-diagonal matrix structure:
when the submatrix is judged to be in the quasi-cyclic structure, the posterior information is directly updated according to a formula (6);
when the submatrix is judged to be in a dual diagonal structure, since the column weight of the submatrix is 2, directly updating posterior information according to the formula (6) can cause that the posterior information in the same RAM address is updated twice, and the last update can cover the previous update value, thereby causing performance loss. The problem can be solved by adding a multi-diagonal information storage RAM, and the specific process is as follows:
when the submatrix is a dual diagonal structure, the submatrix is rewritten according to equation (1) as follows:
Hij=I(τ0)+I(τ1) In which τ is0≠τ1
Store LuThe number of the sub-matrixes is related to the number of the double diagonals when the required space and the layer are decoded.
Because of the submatrix HijIs a dual diagonal structure and can be decomposed into I (tau)0) And I (τ)1) And carrying out corresponding updating operation on the two sub-matrixes. Equation (4) can be decomposed into:
for the sub-matrix I (τ)0) And the variable node is updated for the first time:
after updateAnd storing the data into the posterior information RAM, and storing the updated data of the variable nodes into the posterior information RAM through a selector as shown in FIG. 3.
For the sub-matrix I (τ)1) And updating the variable nodes for the second time:
will be provided withStoring to a multi-diagonal information storage RAMThe number of the sub-matrixes is related to the number of the double diagonals when the required space and the layer are decoded.
Equation (5) check node updates are unchanged.
The posterior information update of equation (6) can be decomposed into:
for the sub-matrix I (τ)0) And when the posterior information is updated for the first time:
reading from a posteriori information RAMPosterior information updated according to equation (11)And storing the data into a posterior information RAM.
For the sub-matrix I (τ)1) And when the posterior information is updated for the second time:
reading from multi-diagonal information storage RAMUpdated posterior information according to equation (12)Storing into a multi-diagonal information storage RAM. Current posterior informationWhen the bit width of the variable information exceeds the bit width of the variable information,saturation processing is carried out according to the bit width of the variable information, namely whenWhen the maximum integer which can be represented by variable information bit width is exceeded, the variable information bit width is increasedAssigning the value as the maximum integer which can be represented by the variable information bit width; when in useLess than the smallest integer that the variable information bit width can representAnd assigning the value as the smallest integer which can be represented by the bit width of the variable information.
Updating posterior information RAM:
reading from a posteriori information RAMMulti-diagonal information storage RAM readingAnd LuUpdated posterior information according to equation (13)And storing the data into a posterior information RAM for hard judgment and subsequent iteration use.
Regarding the size of the storage space of the posterior information RAM, when the sub-matrix is in a multi-diagonal structure, the number of diagonals is set to be K, and the variable node is updated to be correspondingly expanded as shown in the above example; the a posteriori information updates are extended accordingly as shown in the above example. Equation (13) for updating the a posteriori information RAM is extended to:
in the embodiment of the present invention, the LDPC decoding method further includes using a check matrix storage unit: the method is used for storing all check matrix information under different code rates supported by a decoder, and can be configured to support different protocol standards.
For example, in the ATSC3.0 protocol standard, the short code is 16200, the size of the submatrix is 360 × 360, and the maximum number of the dual diagonal structures when processing is performed with the parallelism of 360 is 9. If the a posteriori information and the variable node information are both stored with 11 bits, in order to solve the problem of the dual diagonal collision, the prior art method is to store the a posteriori information and the variable node information separately, and the required storage space size is 16200 × 11 × 2 ═ 356400 bits. By adopting the scheme provided by the invention, the posterior information RAM and the multi-diagonal information storage RAM are adopted, and only 16200 multiplied by 11+360 multiplied by (11+11) multiplied by 9 which is 249480 bits are needed, so that the occupied storage space of the scheme is obviously reduced.
In addition, the RAM storage mode of the updated information R about the check nodes is consistent with the traditional processing method, namely only storing sign bits, maximum values, maximum value indexes and second-largest values.
In addition to the LDPC decoding method, the present invention further provides an LDPC decoder, which can be used in the case where a universal check matrix needs to be compatible with a quasi-cyclic matrix and/or a multi-diagonal matrix, and the following description is specifically made.
The structure of the general LDPC decoder provided by the invention is shown schematically, as shown in 3, the decoder comprises the following modules:
1. the main control module: generating control logic for the decoder: reading check matrix information from a check matrix storage unit and updating the check matrix information to a sub-matrix control word; controlling an address generator to generate a corresponding address, and outputting the corresponding address to a check information RAM and a posterior information RAM; controlling the variable node updating module, the check node updating module and the posterior information updating module to work; and judging whether the currently processed sub-matrix is in a dual-diagonal structure or not according to the sub-matrix control word, if so, updating the multi-diagonal information storage RAM. And judging whether the decoder reaches the preset maximum iteration times, controlling the judgment module to output a hard judgment result and the like.
2. A check matrix storage unit: the method is used for storing all check matrix information under different code rates supported by a decoder. According to the characteristic that the LDPC check matrix belongs to a sparse matrix, only information containing a non-0 matrix needs to be stored during implementation. In ATSC3.0, the code length is divided into 16200 and 64800, corresponding to code rates from 2/15 to 13/15. Therefore, the check matrix storage module supporting ATSC3.0 needs to store information of two code lengths and corresponding code rates. To support different protocol standards, the module may be configurable.
3. Posterior information RAM: the RAM for storing the posterior information is implemented by using one RAM in this embodiment.
4. Multi-diagonal information storage RAM: for storing information required for processing multiple diagonals, the results of the foregoing equations (8), (10) and (12) are calculated. In an implementation of the LDPC decoder of ATSC3.0, with a parallelism of 360, if the a posteriori information and the variable node information are both stored with 11 bits, the size of the storage unit is 71280 bits.
5. Checking the information RAM: the RAM for storing the verification information is implemented by using one RAM in this embodiment. The calculation result of the aforementioned formula (5).
6. Sub-matrix control word: for indicating whether the currently processed sub-matrix is of a quasi-cyclic structure or a dual diagonal structure.
7. A variable node updating module: the operation of the formula (4) is completed.
8. A check node updating module: the operation of the formula (5) is completed.
9. Posterior information update module: when the submatrix is of a quasi-cyclic structure, the operation of the formula (6) is completed; when the submatrix has a dual diagonal structure, the operations of the above equations (11), (12) and (13) are completed.
10. An address generation module: under the control of the main control module, the addresses of an access posterior information RAM, a multi-diagonal information storage RAM and a check information RAM are generated.
11. A judgment module: and (4) finishing the operation of the formula (7), judging whether the hard judgment result meets the check equation or not and outputting the hard judgment result.
The LDPC decoder structure and the realization method can be compatible with the problem of conflict in parallel processing of the quasi-cyclic matrix and the dual-diagonal matrix, and reduce the storage space required by the decoder.
The size of a multi-diagonal information storage RAM used by the method provided by the invention is as follows:
parallelism x (posterior information bit width + variable information bit width) xndiag (14)
Wherein N isdiagThe maximum number of submatrices in a dual diagonal structure when layer processing is performed with a certain degree of parallelism is shown. Is apparent NdiagThe row weight of the check matrix is not exceeded. Compared with the existing decoder, the universal decoder structure realizes the efficient decoding of the LDPC code by using smaller storage space.
When the multi-diagonal structure exists in the submatrix in the check matrix, the structure can still be multiplexed.
Submatrix HijThe following were used:
The size of the multi-diagonal information storage RAM used by the method provided by the invention is as follows:
parallelism x (a posteriori information bit width + variable information bit width x (K-1)) × Ndiag (15)
The method provided by the present invention is also applicable to the submatrix structure shown in fig. 4, that is, as can be seen from fig. 4, the column weight of several columns is 1, the column weight of some columns is 2, and the column weight of each column is not the same, and when the check matrix is decomposed into a plurality of submatrices and parallel update operation is performed, there are cases where some submatrices are in a diagonal structure and some submatrices are in a non-diagonal structure.
Those of ordinary skill in the art will realize that the foregoing description is illustrative of one or more embodiments of the present invention and is not intended to limit the invention thereto. Any equivalent changes, modifications and equivalents of the above-described embodiments are within the scope of the invention as defined by the appended claims, and all such equivalents are intended to fall within the true spirit and scope of the invention.
Claims (11)
1. An LDPC decoding method, which utilizes a check matrix to carry out check updating and updates variable information to obtain an intermediate variable result, is characterized in that:
when the check matrix needs to be compatible with a quasi-cyclic matrix and/or a multi-diagonal matrix, designing a multi-diagonal information storage unit for storing the intermediate variable result based on the parallelism of the check matrix, the number of lines of multi-diagonals and the maximum number of the multi-diagonals,
judging whether the check matrix adopts a quasi-cyclic matrix structure or a multi-diagonal matrix structure, and storing by using the multi-diagonal information storage unit when the check matrix is judged to be in the multi-diagonal matrix structure, wherein the size of the multi-diagonal information storage unit is determined by the following method:
parallelism x (a posteriori information bit width + variable information bit width x (K-1)) × Ndiag,
Wherein the parallelism degree represents the size of a sub-matrix for processing the check matrix; the posterior information bit width is expressed as the preset width required by the posterior information storage unit; the bit width of the variable information is expressed as the preset width required by the variable information storage unit; n is a radical ofdiagRepresenting the maximum number of the multi-diagonal structures of the sub-matrices when layer processing is performed with a certain degree of parallelism; k represents the number of diagonal lines;
the maximum number of the multiple diagonals represents the maximum number of the multi-diagonal structure of the submatrix when layer processing is performed on the check matrix with a certain parallelism.
2. The LDPC decoding method of claim 1,
when the submatrix used for processing the check matrix is judged to be in a multi-diagonal structure, rewriting the submatrix according to the judged number of diagonals of the multi-diagonal structure; and updating and storing the posterior information obtained by the last iteration of variable node updating as an input value into the multi-diagonal information storage unit.
3. The LDPC decoding method of claim 1,
when at least one multi-diagonal structure exists in a plurality of sub-matrixes in the check matrix, the check matrix is correspondingly decomposed into a plurality of sub-matrixes for carrying out corresponding decoding updating operation.
4. The LDPC decoding method of claim 3,
wherein the decoding update operation comprises the following variable node update steps:
updating variable nodes by using a first unit matrix in the plurality of sub-matrixes, and storing the obtained variable node result in a posterior information storage unit;
and in each subsequent updating, respectively updating the variable nodes by using the rest unit matrixes in the plurality of sub-matrixes correspondingly, and storing the variable node results obtained correspondingly to the multi-diagonal information storage unit.
5. The LDPC decoding method of claim 4,
wherein the decoding update operation comprises the following posterior information update steps:
reading a variable node updating result obtained corresponding to the first unit array from a posterior information storage unit, updating posterior information, and storing the updated posterior information into the posterior information storage unit;
and in each subsequent updating, respectively reading variable node updating results obtained by corresponding to the rest unit arrays from the multi-diagonal information storage unit, updating posterior information, and storing the updated posterior information into the multi-diagonal information storage unit.
6. The LDPC decoding method of claim 3,
and respectively decoding and updating the plurality of sub-matrixes to obtain posterior information, and calculating the posterior information obtained by operation to obtain a final posterior information result for subsequent processing.
7. The LDPC decoding method of claim 6,
wherein the subsequent processing comprises: for hard decision and subsequent iterations.
8. The LDPC decoding method of claim 1,
the quasi-cyclic matrix is a square matrix with the row weight and the column weight both being 1; the multi-diagonal matrix is a superposition of at least two different quasi-cyclic matrices.
9. The LDPC decoding method of claim 1,
the LDPC decoding method further comprises the following steps of utilizing a check matrix storage unit: the method is used for storing all check matrix information under different code rates supported by a decoder, and can be configured to support different protocol standards.
10. The LDPC decoding method of claim 9,
the check matrix storage module needs to store two code lengths and information of corresponding code rates, wherein the code lengths are 16200 and 64800, and the corresponding code rate can be any one of 2/15 to 13/15.
11. The LDPC decoding method of claim 1,
in the implementation of the LDPC decoder of ATSC3.0, the parallelism is 360, the posterior node information and the variable node information are both set to be 11 bits for storage, and the size of the multi-diagonal information storage RAM is 71280 bits.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710311420.5A CN108809324B (en) | 2017-05-05 | 2017-05-05 | LDPC decoding method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710311420.5A CN108809324B (en) | 2017-05-05 | 2017-05-05 | LDPC decoding method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108809324A CN108809324A (en) | 2018-11-13 |
CN108809324B true CN108809324B (en) | 2022-01-28 |
Family
ID=64054759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710311420.5A Active CN108809324B (en) | 2017-05-05 | 2017-05-05 | LDPC decoding method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108809324B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111371463B (en) * | 2018-12-26 | 2022-01-28 | 上海交通大学 | Code word encoding method, system and medium for LDPC code word structure |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052500A (en) * | 2014-06-24 | 2014-09-17 | 清华大学 | LDPC code translator and implementation method |
US9369151B2 (en) * | 2014-09-25 | 2016-06-14 | Ali Misfer ALKATHAMI | Apparatus and method for resource allocation |
-
2017
- 2017-05-05 CN CN201710311420.5A patent/CN108809324B/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104052500A (en) * | 2014-06-24 | 2014-09-17 | 清华大学 | LDPC code translator and implementation method |
US9369151B2 (en) * | 2014-09-25 | 2016-06-14 | Ali Misfer ALKATHAMI | Apparatus and method for resource allocation |
Non-Patent Citations (1)
Title |
---|
"多模LDPC译码器的设计与原型验证";段倩妮;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170315;正文第6-49页,图3.2、3.7 * |
Also Published As
Publication number | Publication date |
---|---|
CN108809324A (en) | 2018-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101789959B1 (en) | Encoding Method, Decoding Method, Encoding device and Decoding Device for Structured LDPC | |
US7373581B2 (en) | Device, program, and method for decoding LDPC codes | |
US6961888B2 (en) | Methods and apparatus for encoding LDPC codes | |
CA2798963C (en) | Apparatus and method for layered decoding in a communication system using low-density partiy-check codes | |
US8869003B2 (en) | Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix | |
US20110161770A1 (en) | Low density parity check codec and method of the same | |
WO2010073922A1 (en) | Error correction encoding apparatus, decoding apparatus, encoding method, decoding method, and programs thereof | |
JP2011205578A (en) | Error detection/correction circuit, memory controller and semiconductor memory device | |
CN101079639A (en) | Ldpc decoding apparatus and method based on node memory | |
WO2004019268A1 (en) | Methods and apparatus for encoding ldpc codes | |
JP2007089064A (en) | Decoding apparatus and receiving apparatus | |
JP2006339799A (en) | Irregular low density parity check code decoder and decoding method | |
US20110179337A1 (en) | Memory utilization method for low density parity check code, low density parity check code decoding method and decoding apparatus thereof | |
CN108809327B (en) | LDPC decoding method | |
US20080126917A1 (en) | Data processing systems and methods for processing digital data with low density parity check matrix | |
JP4819470B2 (en) | Decoding device and decoding method | |
CN108809324B (en) | LDPC decoding method | |
CN108809325B (en) | LDPC decoder | |
CN108809326B (en) | LDPC decoder | |
US10727869B1 (en) | Efficient method for packing low-density parity-check (LDPC) decode operations | |
CN112583420B (en) | Data processing method and decoder | |
US11075650B1 (en) | Sub-matrix reduction for quasi-cyclic LDPC codes | |
Kakde et al. | FPGA implementation of decoder architectures for high throughput irregular LDPC codes | |
EP2951926B1 (en) | Ldpc code design and encoding apparatus for their application | |
EP3496277A1 (en) | Parallel encoding method and system for protograph-based ldpc codes with hierarchical lifting stages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |