CN108809324B - LDPC decoding method - Google Patents

LDPC decoding method Download PDF

Info

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
Application number
CN201710311420.5A
Other languages
Chinese (zh)
Other versions
CN108809324A (en
Inventor
张文军
文凛
寇亚军
戴永清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai National Engineering Research Center of Digital Television Co Ltd
Original Assignee
Shanghai National Engineering Research Center of Digital Television Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai National Engineering Research Center of Digital Television Co Ltd filed Critical Shanghai National Engineering Research Center of Digital Television Co Ltd
Priority to CN201710311420.5A priority Critical patent/CN108809324B/en
Publication of CN108809324A publication Critical patent/CN108809324A/en
Application granted granted Critical
Publication of CN108809324B publication Critical patent/CN108809324B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1168Quasi-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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1185Parity 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

LDPC decoding method
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:
1. initialization: the initial soft value information is used to determine,
Figure BDA0001287233330000041
2. and (3) updating the check node:
Figure BDA0001287233330000042
3. and (3) variable node updating:
Figure BDA0001287233330000043
Figure BDA0001287233330000044
4. and (3) hard decision:
Figure BDA0001287233330000045
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,
Figure BDA0001287233330000046
representing the information passed by the variable node i to the check node j in the kth iteration,
Figure BDA0001287233330000047
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.
Figure BDA0001287233330000048
In order to be the initial soft value information,
Figure BDA0001287233330000049
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 iteration
Figure BDA00012872333300000410
And variable node
Figure BDA00012872333300000411
Corresponding 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)。
Figure BDA0001287233330000051
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≠τ10 β 10 or 1. (1)
Further, the multi-diagonal structure sub-matrix may be represented as:
Figure BDA0001287233330000052
the existing layer decoding algorithm is optimized on the normalization and product algorithm, and the processing steps are as follows:
1. initialization:
Figure BDA0001287233330000053
where Lch is the initial soft value information (3)
2. And (3) variable node updating:
Figure BDA0001287233330000054
3. and (3) updating the check node:
Figure BDA0001287233330000055
4. updating posterior information:
Figure BDA0001287233330000056
5. repeating the steps 2-4 until all layer updates are completed
6. And (3) hard decision:
Figure BDA0001287233330000057
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
Inputting the formula (4)
Figure BDA0001287233330000062
Storing into a multi-diagonal information storage RAM.
Figure BDA0001287233330000063
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:
Figure BDA0001287233330000064
after update
Figure BDA0001287233330000065
And 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:
Figure BDA0001287233330000071
will be provided with
Figure BDA0001287233330000072
Storing to a multi-diagonal information storage RAM
Figure BDA0001287233330000073
The 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:
Figure BDA0001287233330000074
reading from a posteriori information RAM
Figure BDA0001287233330000075
Posterior information updated according to equation (11)
Figure BDA0001287233330000076
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:
Figure BDA0001287233330000077
reading from multi-diagonal information storage RAM
Figure BDA0001287233330000078
Updated posterior information according to equation (12)
Figure BDA0001287233330000079
Storing into a multi-diagonal information storage RAM. Current posterior information
Figure BDA00012872333300000710
When the bit width of the variable information exceeds the bit width of the variable information,
Figure BDA00012872333300000711
saturation processing is carried out according to the bit width of the variable information, namely when
Figure BDA00012872333300000712
When the maximum integer which can be represented by variable information bit width is exceeded, the variable information bit width is increased
Figure BDA00012872333300000713
Assigning the value as the maximum integer which can be represented by the variable information bit width; when in use
Figure BDA00012872333300000714
Less than the smallest integer that the variable information bit width can represent
Figure BDA00012872333300000715
And assigning the value as the smallest integer which can be represented by the bit width of the variable information.
Updating posterior information RAM:
Figure BDA00012872333300000716
reading from a posteriori information RAM
Figure BDA00012872333300000717
Multi-diagonal information storage RAM reading
Figure BDA00012872333300000718
And LuUpdated posterior information according to equation (13)
Figure BDA00012872333300000719
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:
Figure BDA0001287233330000081
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:
Figure BDA0001287233330000091
wherein m isi≠mjThe number of diagonal lines is K.
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.
CN201710311420.5A 2017-05-05 2017-05-05 LDPC decoding method Active CN108809324B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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