WO2017105291A1 - Generalized quasi-cyclic ldpc convolutional codes for digital communication systems - Google Patents
Generalized quasi-cyclic ldpc convolutional codes for digital communication systems Download PDFInfo
- Publication number
- WO2017105291A1 WO2017105291A1 PCT/RU2016/050027 RU2016050027W WO2017105291A1 WO 2017105291 A1 WO2017105291 A1 WO 2017105291A1 RU 2016050027 W RU2016050027 W RU 2016050027W WO 2017105291 A1 WO2017105291 A1 WO 2017105291A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- ldpc
- convolutional
- matrix
- matrices
- encoder
- Prior art date
Links
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/033—Theoretical methods to calculate these checking codes
- H03M13/036—Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
-
- 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/1154—Low-density parity-check convolutional codes [LDPC-CC]
-
- 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
-
- 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/1174—Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes
-
- 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/1105—Decoding
- H03M13/1142—Decoding using trapping sets
-
- 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/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
Definitions
- the present disclosure relates to forward error correction.
- the present disclosure relates to Low-Density Parity-Check (LDPC) codes for channel coding in digital communication systems.
- LDPC Low-Density Parity-Check
- Fig. 1 shows a block diagram illustrating a generic digital communications system 10 in which the present disclosure may be practiced.
- the system includes a transmitting side comprising a generic encoder 12 and a receiving side comprising a generic decoder 14.
- the modulator 16 may transform the encoded sequence IS 2 into a modulated signal vector CH_IN which is in turn transmitted through a channel 18 such as, for example, a radio channel or an optical channel. Since the channel 18 is usually subject to noisy disturbances, the channel output CH_OUT may differ from the channel input CH_IN.
- a channel 18 such as, for example, a radio channel or an optical channel. Since the channel 18 is usually subject to noisy disturbances, the channel output CH_OUT may differ from the channel input CH_IN.
- the channel output vector CH_OUT may be processed by a demodulator 20, which produces some likelihood ratio.
- the generic decoder 14 may use the redundancy in the received information sequence IS3 in a decoding operation to correct errors in the received information sequence IS3 and produce a decoded information sequence IS4 which is an estimate of the information sequence IS2 from which the information sequence ISi can be extracted.
- an LDPC code may employ a generator matrix G for the encoding operation in the generic encoder 12 and a parity- check matrix H for the decoding operation in the generic decoder 14.
- the generator matrix G has size kxn
- any row of the generator matrix G kxn is orthogonal to the rows of the parity-check matrix H rxn such that the following equation is satisfied:
- the encoding operation can be performed by means of a multiplication between the information sequence ISi and the generator matrix G kxn , wherein the result of the multiplication provides the encoded output sequence /3 ⁇ 4 as follows:
- IS 4 is the decoded received information sequence of size Ixn. If the above equation is verified, the information signal estimate IS 4 is correct.
- any process of determining a parity-check matrix H rxn may be mapped to an equivalent process of obtaining a generator matrix G kxn , so that any process disclosed throughout the description and claims in relation to determining a parity-check matrix H rxn shall be understood as encompassing the equivalent process of obtaining a generator matrix G kxn and vice versa.
- parity-check matrix H rxn is a regular QC-LDPC matrix reg which can be divided into quadratic submatrices / p . J , i.e. circulant matrices
- a regular QC- LDPC matrix reg ma be defined by a base matrix B which satisfies:
- an irregular QC-LDPC matrix IMG H ⁇ XN may be obtained by ⁇ reg ⁇ m ° M mask where " °" denotes the Hadamard product and
- the generic encoder 12 and the generic decoder 14 may be provided with a circulant, shift values, i.e., values corresponding to the entries of the base matrix B, and (optionally) a mask matrix M mask .
- shift values i.e., values corresponding to the entries of the base matrix B
- M mask a mask matrix M mask .
- an apparatus configured to choose shift values for determining a QC-LDPC matrix H may be integrated in (or connected to) the generic encoder 12 and/or the generic decoder 14.
- the generic encoder 12 and the generic decoder 14 may also be provided with a mask matrix M mask to generate an irregular QC-LDPC matrix *"* H .
- QC-LDPC convolutional code may be derived from a QC-LDPC block code by forming a semi-infinite parity-check matrix H m of the form
- a QC-LDPC matrix H Qc can be described by its equivalent bipartite graph ("Tanner graph"), wherein each edge of the Tanner graph connects one variable node of a plurality of variable nodes (which from the first set of the bipartite graph) to one check node of a plurality of check nodes (which form the second set of the bipartite graph).
- Tanner graph equivalent bipartite graph
- a QC-LDPC matrix of r rows and n columns can be represented by its equivalent bipartite graph with r check nodes and n variable nodes which has edges between the check nodes and the variable nodes if there are corresponding "Is" in the QC-LDPC matrix (cf. R. Tanner, "A Recursive
- variable nodes represent code-word bits and the check nodes represent parity-check equations.
- any degree-s check node may be interpreted as a length-s single parity-check code, i.e., as an (s, s-1) linear block code.
- check nodes of the LDPC code may be replaced with a linear block code to enhance the overall minimum distance (cf. M. Lentmaier et al., "On Generalized Low-Density Parity-Check Codes based on Hamming Component Codes", IEEE COMMUNICATIONS LETTERS, Volume 3, Issue 8, Pages 248-250, August 1999).
- the "length" of the cycle is the number of edges of the set.
- the "girth” of the Tanner graph (or “girth” in short) is the length of the shortest cycle(s) in the graph.
- short cycles in a Tanner graph of an LDPC code may prevent decoding algorithms from converging.
- short cycles may degrade the performance of the generic decoder 14, because they affect the independence of the extrinsic information exchanged in the iterative decoding. Accordingly, shift values are to be chosen that achieve a high girth of the Tanner graph representation of the respective LDPC matrix.
- a LDPC code may contain Trapping Sets (TSs). More particularly, a (a,b) TS contains b check nodes which have an odd number of connections to a variable nodes. Accordingly, when the a variable nodes are wrong, only the b check nodes will be unsatisfied which may lead to a high error floor, as a belief propagation algorithm employed in the decoder 14 may be "trapped" in a false minimum.
- TSs Trapping Sets
- an encoder for forward error correction channel encoding configured to determine a circulant matrix and shift values of a plurality of base matrices which define a plurality of quasi-cyclic low-density parity-check, QC-LDPC, matrices, construct a plurality of convolutional QC-LDPC matrices from the shift values and the circulant matrix, select a multitude of convolutional QC-LDPC matrices from the plurality of convolutional QC-LDPC matrices based on a measure of girth of the convolutional QC-LDPC matrices, generate a multitude of generalized convolutional QC-LDPC matrices from the multitude of convolutional QC-LDPC matrices using a linear block code as component code, choose a generalized convolutional QC-LDPC matrix of the multitude of generalized convolutional QC-LDPC matrices based on an indication of minimal code
- the term "circulant matrix” as used throughout the description and claims particularly refers to a matrix, e.g., the identity matrix, where each row vector is shifted one element to the right relative to the preceding row vector.
- the term "base matrix” as used throughout the description and claims in particular refers to an array of shift values defining a QC-LDPC matrix.
- the QC- LDPC matrix is divided into circulant submatrices with each circulant submatrix being generated by cyclically shifting the rows of a common circulant matrix by a number of places given by a corresponding shift value.
- each shift value of a base matrix gives the number of times by which the rows of a common circulant matrix, e.g., the identity matrix, are to be cyclically (right-) shifted to generate a corresponding submatrix, wherein the array of submatrices forms the QC-LDPC matrix.
- values forming a matrix do not necessarily have to be physically stored, presented in matrix- (or array-) form, or used in matrix algebra throughout a process involving the matrix. Rather the term "matrix” as used throughout the description and claims in particular refers to a set of (integer) values with assigned row and column indices or which are stored in a (logical) memory array. Moreover, if not involving matrix algebra or if respective matrix algebra routines are suitably redefined, the notion of rows and columns may even be changed or freely chosen. However, throughout the description and claims it is adhered to the mathematical concepts and notations regularly used in the art and they shall be understood as encompassing equivalent mathematical concepts and notations.
- the term "convolutional QC-LDPC matrix” as used throughout the description and claims in particular refers to a matrix having rows which contain vectors derived from the rows of a corresponding QC-LDPC matrix and zeros. The vectors in consecutive rows may only partially overlap in the vertical (column) direction while vectors fully overlapping in the vertical (column) direction form submatrices of the corresponding QC-LDPC matrix.
- a base matrix of a convolutional QC-LDPC matrix can be derived from the base matrix of a QC-LDPC matrix by inserting the rows of the base matrix of the QC-LDPC matrix as vectors into the rows of the base matrix of the convolutional QC-LDPC matrix and repeating the rows of the base matrix of the convolutional QC-LDPC matrix (a predefined number of times or ad infinitum) with each repeated vector being shifted to the right.
- BER bit error rate
- FER frame error rate
- the encoder is further configured to expand each convolutional QC-LDPC matrix, wherein to expand a convolutional QC-LDPC matrix comprises to copy each row of the convolutional QC- LDPC matrix a predetermined number of times and to adjust a submatrix formed by the copied rows to the linear block code.
- the convolutional QC-LDPC matrix may be expanded by copying each row a given number of times and replacing "1 -column- vectors" (i.e. vectors in a column filled with "Is") of the copied rows with columns of a (linear) block code control matrix, thereby effectively replacing some of the ones in the vectors with zeros.
- "1 -column- vectors" i.e. vectors in a column filled with "Is”
- the linear block code is a Hamming code.
- the shift values are equally divided onto a first row and a second row of the plurality of base matrices and wherein to construct the plurality of convolutional QC- LDPC matrices from the shift values, the encoder is further configured to construct convolutional base matrices of the plurality of convolutional QC-LDPC matrices having a third row inheriting the shift values of the first row and a fourth row inheriting the shift values of the second row, wherein the shift values of the fourth row are vertically displaced relative to the shift values of the third row.
- the encoder is further configured to group the binary data stream into multiple groups, wherein the size of each group corresponds to the size of the circulant, and to cyclically shift each group based on the circulant and a shift value of the shift values and to calculate parity data based on an output of a plurality of Hamming encoders fed with the cyclically shifted groups.
- the encoder is further configured to cyclically shift the output of the plurality of Hamming encoders based on the circulant and shift values not applied to the multiple groups.
- the encoder is configured to choose the shift values in a row-by-row order of a respective base matrix of a plurality of base matrices, and wherein shift values corresponding to entries in a row of the base matrix are chosen in an order that is at least in part based on a measure of a number of cycles in which check nodes and variable nodes of node groups corresponding to the entries, participate.
- the measure defines a cycle density and wherein the encoder is configured to choose values corresponding to entries in a row of the base matrix in order of decreasing cycle density of the corresponding node groups, given the already chosen values.
- the encoder is configured to transmit the encoded binary data stream via an optical channel.
- a decoder for forward error correction channel decoding of a generalized quasi-cyclic low-density parity-check convolutional code, QC-LDPC-CC, the decoder including an interleaver and a plurality of Hamming decoders, wherein the interleaver is based on a circulant matrix and shift values of a first row of a base matrix of a quasi-cyclic low- density parity-check, QC-LDPC, matrix and is configured to pass groups of reordered bits of a bitstream to the Hamming decoders.
- the term "generalized quasi-cyclic low-density parity-check convolutional code” as used throughout the description and claims in particular refers to a code defined by a generalized convolutional QC-LDPC matrix.
- the term “interleaver” as used throughout the description and claims in particular refers to an entity which reorders bits of a binary data stream received at the decoder into groups which are passed to the Hamming decoders.
- the Hamming decoders although having favorable properties, may be replaced by other linear block code decoders.
- BER bit error rate
- the decoder further includes a de-interleaver and a second layer interleaver, the de-interleaver configured to receive an output of the Hamming decoders, de-interleave the output and pass the de-interleaved output to the second layer interleaver, wherein the second layer interleaver is based on the circulant matrix and shift values of a second row of the base matrix of the QC-LDPC matrix.
- the Hamming decoders are max-log-map decoders and the decoder applies an a-posteriori probability, APP, based algorithm.
- a system for forward error correction channel encoding comprising an encoder according to the first aspect as such or according to any of the preceding implementation forms of the first aspect and a decoder according to the second aspect as such or according to any of the preceding implementation forms of the second aspect.
- a method of forward error correction channel encoding comprising determining a circulant and shift values of a plurality of quasi-cyclic low-density parity-check, QC- LDPC, matrices, constructing a plurality of convolutional QC-LDPC matrices from the circulant and the shift values, selecting a multitude of convolutional QC-LDPC matrices of the plurality of convolutional QC-LDPC matrices based on an indication of girth of the convolutional QC-LDPC matrices, generating a multitude of generalized convolutional QC-LDPC matrices from the selected convolutional QC-LDPC matrices, and encoding a binary data stream using a generalized low-density parity- check convolutional code, GLDPC-CC, based on a generalized convolutional QC- LDPC matrix chosen from the multitude of generalized convolutional QC-
- a method of forward error correction channel decoding comprising passing messages between Hamming decoders, wherein the passing is governed by a convolutional quasi-cyclic low-density parity-check, QC-LDPC, matrix.
- Fig. 1 is a schematic illustration of a digital communication system
- Fig. 2 is a flow chart of a process of determining a QC-LDPC code
- Fig. 3 is a flow chart of a process of determining a generalized QC-LDPC convolutional code from a plurality of QC-LDPC codes
- Fig. 4 is a schematic illustration of an encoder
- Fig. 5 is a schematic illustration of a decoder
- Fig. 6 is a schematic illustration of a first layer interleaver and a plurality of Hamming decoders.
- a process 22 of determining a QC-LDPC code may start at step 24 with choosing shift values in a row-by-row order of a base matrix.
- choosing shift values in a row-by-row order corresponds to defining edges between all variable nodes and a first subset of the check nodes before defining edges between all variable nodes and a second subset of the check nodes.
- shift values may be chosen in a column-by-column order or in a random order, i.e. a row and column agnostic order.
- the entries within one row of the base matrix are consecutively chosen in an order that is at least in part based on a measure of a number of cycles in which variable nodes and check nodes of node groups corresponding to the row entries, participate.
- the shift values of the first row of the base matrix may be chosen in any order.
- the second layer can be labelled starting at any entry.
- the 9 th entry in the second row may be labelled with shift value so that the base matrix looks like:
- entries in the second row of the base matrix are labelled in order of decreasing cycle-density of the corresponding node groups, taking into account the already chosen shift values, i.e., all entries of the first row and the one or more shift values in the second row that have already been chosen, e.g., the 9 th entry. Accordingly, the selection of shift values in the second row may continue with labeling an entry that defines edges between a set of variable nodes and a set of check nodes that are involved in a larger number of cycles than variable nodes and check nodes corresponding to other entries.
- the selection of shift values in the second row may continue with labeling an entry that, by being labelled, defines edges of a set of variable nodes that are involved in more cycles than any other set of variable nodes.
- Each entry that is labelled in order of decreasing cycle-density may be labelled with a shift value which is selected from a plurality of possible shift values that all produce code that meets one or more quality criteria.
- the shift values that are available for labelling an entry may all produce code that satisfies a pre-defined girth condition regarding the girth of the corresponding Tanner graph, which may, for example, be calculated using the equation in M. P. C. Fossorier, "Quasi-Cyclic Low- Density Parity-Check Codes from Circulant Permutation Matrices", IEEE TRANSACTIONS ON INFORMATION THEORY, Volume 50, Issue 8, Pages 1788- 1793, August 2004.
- a shift value may be selected from the available shift values based on a measure of connectivity of cycles in the corresponding Tanner graph representation that would result from the selection. For example, a shift value may be selected from the available shift values based on enumerating the TSs involved in the selection.
- the ACE spectrum is equal to the extrinsic message degree (EMD) as described in Deka et al., "On the Equivalence of the ACE and the EMD of a Cycle for the ACE Spectrum Constrained LDPC Codes", 8 th INTERNATIONAL SYMPOSIUM ON TURBO CODES AND ITERATIVE INFORMATION PROCESSING (ISTC), Pages 55-59, August 2014.
- EMD extrinsic message degree
- the cycle can be treated as TS ( ⁇ 2, ⁇ ) .
- the reliability of messages coming from check nodes singly connected to a cycle can be increased relative to messages coming from check nodes involved in the cycle in order to enhance the benefit of the messages coming from the rest of the Tanner graph.
- the process 22 may then be continued until all shift values of the base matrix are chosen or, if only shift values exist for an entry that would produce code which violates a requirement such as a required minimal girth of the QC-LDPC code, the process 22 may be aborted.
- the base matrix in the example looks like: The process 22 may then be repeated a defined number of times to generate a plurality of base matrices. Furthermore, heuristics may be used to filter the generated base matrices in view of favorable properties of the corresponding QC-LDPC codes.
- the generated base matrices may be filtered based on parameters which measure how fast messages in a corresponding QC-LDPC code disperse to all nodes. More particularly, there exist
- QC-LDPC codes may be filtered which achieve a QC- LDPC code having a ratio of the second eigenvalue to the first eigenvalue— which is below a predetermined threshold.
- the base matrices may be filtered based on parameters which point at the quality of the corresponding QC-LDPC codes.
- the base matrices may be filtered based on a weight spectrum enumerator or a TS spectrum enumerator.
- the base matrices may be filtered based on Tanner spectral graph properties. After filtering some (or all) base matrices whose parameters are below or above pre-determined thresholds, the remaining base matrices may be further filtered based on code distance.
- the performance of the QC-LDPC codes defined by the (sieved) base matrices may be simulated and the base matrices corresponding to the QC-LDPC codes that perform best may be determined.
- QC-LDPC codes with favorable ACE spectrum, Tanner spectral graph properties and large code distance may be simulated at one or more working points. For example, an En/No of 2 dB may be used and QC-LDPC codes exhibiting the probability of error (BER, FER, etc.) below threshold may be determined.
- the determined base matrices may be used in a process 28 of determining a generalized QC-LDPC convolutional code from a plurality of QC-LDPC codes as shown in Fig. 3 which starts at step 30 with determining a circulant matrix and shift values of a plurality of base matrices which define a plurality of QC-LDPC matrices.
- the plurality of base matrices may be determined following the process 22 described above.
- the determined plurality of base matrices may be used to construct a plurality of convolutional QC-LDPC matrices.
- a convolutional QC-LDPC matrix H nv may be constructed from a two-layer
- QC-LDPC block codes with QC-LDPC matrices of size JNxLN, a plurality of corresponding QC-LDPC convolutional codes may be constructed, wherein the QC- LDPC convolutional codes are defined by convolutional QC-LDPC matrices H nv of size JNM XLNM-KN.
- the process 28 is continued with generating a multitude of generalized convolutional QC-LDPC matrices from the multitude of convolutional QC-LDPC matrices using a linear block code as component code.
- the linear block code may be a Hamming code of size 4x15 such as:
- linear block codes such as Hadamard codes, Reed-Muller codes or Reed-Salomon codes are also contemplated.
- the process 28 is continued at step 38 with choosing a generalized convolutional QC-LDPC matrix of the multitude of generalized convolutional QC- LDPC matrices based on an indication of minimal code distance of the generalized convolutional QC-LDPC matrices.
- choosing a generalized convolutional QC-LDPC matrix of the multitude of generalized convolutional QC-LDPC matrices may be based on enumerating a TS spectrum of the generalized convolutional QC- LDPC matrices or one or more other code quality criteria of the code quality criteria discussed above.
- a GLDPC-CC based on the chosen generalized convolutional QC-LDPC matrix H ⁇ ner conv may then be used to encode a binary data stream IS 1 .
- a codeword £ of a binary data stream ISj encoded with the GLDPC-CC has length LNM-KN with a repeat structure of (L-K)N-PN information bits, PN check bits, KN-PN information bits and PN check bits.
- L-K the first N rows connect (L-K)N variable nodes to PN check nodes.
- the next N rows connect LN variable nodes to PN check nodes.
- the first PN check bits can be directly calculated by multiplying the first (L-K)N-PN information bits with the corresponding submatrix of size PNx(L-K)N-PN of the first layer of H ⁇ ner conv .
- the vector of the first (L-K)N-PN information bits and the appended calculated PN check bits and KN-PN information bits is then multiplied with the corresponding submatrix of size PNxLN-PN of the second layer of H ⁇ ner conv to calculate the next PN check bits.
- the codeword E may also be determined by shifting the information bits in accordance with the shift values Si, 3 ⁇ 4, S3, S 5 , 3 ⁇ 4, S 7 , S$, 3 ⁇ 4, Sw, and Su for even layers or in accordance with the shift values S1 ⁇ 2, Sn, S22, S23, S24, S25, S26, S27, 3 ⁇ 4s, and S29 for odd layers of the base matrix ⁇ 2 ⁇ 15 ⁇ - ⁇ and feeding N identical Hamming encoders (or equivalently N times the same Hamming encoder) with the shifted information bits and shifting the check bits by Sn, 3 ⁇ 4, Su, and S] 5 for even layers or by Sis, S19, S20, and S21 for odd layers.
- Fig. 4 shows an encoder 40 which can be used instead of the generic encoder 12 in the generic system 10 of Fig. 1.
- the encoder 40 is configured to receive the binary data stream Bl, carry out some or all steps of the above processes 22 and 28 and to transmit the codeword E.
- the encoder 40 comprises a processor 42 and a memory 44 coupled to the processor 42.
- the memory 44 may be a computer-readable medium such as an optic or a magnetic storage, which comprises persistently stored computer- readable instructions that when carried out by the processor 42 implement some or all steps of the above processes 22 and 28.
- the encoder 40 may cooperate with one or more devices connected to the encoder 40 via a wireless or wired link to carry out some or all steps of the above processes 22 and 28 cooperatively. Furthermore, the encoder 40 may be connected to the modulator 16. The modulator 16 may transform the codeword E into a modulated signal vector CH_IN which is in turn transmitted through the channel 18.
- the channel output vector CH_OUT may be processed by the demodulator 20 which produces some likelihood ratio.
- the demodulator 20 may be connected to a decoder 46 as shown in Fig. 5.
- the decoder 46 comprises a processor 48 and a memory 50 coupled to the processor 48 and is configured to use the redundancy in the received information sequence IS3 in a decoding operation, e.g., a BCJR, Chase Pyndiah, or Fast MAP decoding algorithm, to correct errors in the information sequence of the received information sequence IS3 and to produce a decoded signal IS4 which is an information sequence estimate.
- a decoding operation e.g., a BCJR, Chase Pyndiah, or Fast MAP decoding algorithm
- the memory 50 may be a computer-readable medium such as an optic or a magnetic storage, which comprises persistently stored computer-readable instructions that when carried out by the processor 48 implement a first-layer interleaver 52 and a plurality of (identical) Hamming decoders 54 as shown in Fig. 6.
- the first-layer interleaver 52 may be based on the circulant of size NxN and the shift values of the first row of the base matrix BDJ defining the QC-LDPC matrix H ⁇ xJN corresponding to the GLDPC-CC used for encoding the binary data stream ISj.
- the interleaver 52 After interleaving the bits of the received information sequence IS 3 , the interleaver 52 passes groups of the reordered bits of the bitstream ISi to N identical Hamming decoders 54 (or equivalently consecutively N times to the same Hamming decoder 54).
- the Hamming decoders 54 may be implemented as soft- input soft-output
- SISO SISO
- de-interleaver which de-interleaves the values.
- the de- interleaved a posteriori probability values and extrinsic values and the extrinsic values may then be passed by the de-interleaver to a second layer interleaver which is based on the circulant matrix and shift values of a second row of the base matrix B LXJ defining the QC-LDPC matrix H ⁇ xJN corresponding to the GLDPC-CC used for encoding the binary data stream ISi.
- a hard decision may be calculated based on the determined log-likelihood ratios and a corresponding estimate for the binary data stream ISi may be determined.
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Provided is an encoder, a decoder and corresponding methods of forward error correction channel encoding based on a generalized low-density parity-check convolutional code.
Description
GENERALIZED QUASI-CYCLIC LDPC CONVOLUTIONAL CODES FOR DIGITAL COM MUNICATION SYSTEMS
FIELD
The present disclosure relates to forward error correction. In particular, the present disclosure relates to Low-Density Parity-Check (LDPC) codes for channel coding in digital communication systems.
BACKGROUND
Fig. 1 shows a block diagram illustrating a generic digital communications system 10 in which the present disclosure may be practiced. The system includes a transmitting side comprising a generic encoder 12 and a receiving side comprising a generic decoder 14. The input of the generic encoder 12 at the transmitting side may be an information sequence ISj of k bits to which a redundancy sequence of r bits is added in an encoding operation performed by the generic encoder 12, thereby producing an encoded information sequence /¾ of k+r=n bits which may be forwarded to a modulator 16.
The modulator 16 may transform the encoded sequence IS 2 into a modulated signal vector CH_IN which is in turn transmitted through a channel 18 such as, for example, a radio channel or an optical channel. Since the channel 18 is usually subject to noisy disturbances, the channel output CH_OUT may differ from the channel input CH_IN.
At the receiving side, the channel output vector CH_OUT may be processed by a demodulator 20, which produces some likelihood ratio. The generic decoder 14 may use the redundancy in the received information sequence IS3 in a decoding operation to correct errors in the received information sequence IS3 and produce a decoded information sequence IS4 which is an estimate of the information sequence IS2 from which the information sequence ISi can be extracted.
The encoding operation and the decoding operation may be governed by an LDPC code. In the general formulation of channel coding, an LDPC code may employ a generator matrix G for the encoding operation in the generic encoder 12 and a parity- check matrix H for the decoding operation in the generic decoder 14.
For a LDPC code with an information sequence IS of size Ixk, a code word IS2 of size lxn and a redundancy (parity) sequence of r=(n-k) bits, the generator matrix G
has size kxn, and the parity-check matrix H has size rxn=(n-k)xn. The parity-check matrix Hrxn and the generator matrix Gkxn enjoy the orthogonality property, which states that for any generator matrix Gkxn with k linearly independent rows there exists a parity-check matrix Hrxn with r=(n-k) linearly independent rows. Thus, any row of the generator matrix Gkxn is orthogonal to the rows of the parity-check matrix Hrxn such that the following equation is satisfied:
Gbn ■ Hn T xr = 0 (1)
The encoding operation can be performed by means of a multiplication between the information sequence ISi and the generator matrix Gkxn, wherein the result of the multiplication provides the encoded output sequence /¾ as follows:
IS^ IS. G^ (2)
At the receiving side, due to the orthogonality property between the generator matrix Gkxn and the parity-check matrix H«„, the following equation should be satisfied:
Hrxn - IS4 T = 0 (3)
where IS 4 is the decoded received information sequence of size Ixn. If the above equation is verified, the information signal estimate IS4 is correct.
Once the parity-check matrix Hrxn is generated, it is possible to obtain the generator matrix Gkxn and vice versa. Accordingly, any process of determining a parity-check matrix Hrxn may be mapped to an equivalent process of obtaining a generator matrix Gkxn, so that any process disclosed throughout the description and claims in relation to determining a parity-check matrix Hrxn shall be understood as encompassing the equivalent process of obtaining a generator matrix Gkxn and vice versa.
A particular form of the parity-check matrix Hrxn is a regular QC-LDPC matrix reg which can be divided into quadratic submatrices / p . J , i.e. circulant matrices
(or "circulants" for short), which may, for example, be obtained from cyclically right- shifting an NxN identity matrix ΐ(θ) by pj t positions:
with N=n/L (cf. M. P. C. Fossorier, "Quasi-Cyclic Low-Density Parity-Check Codes from Circulant Permutation Matrices", IEEE TRANSACTIONS ON INFORMATION THEORY, Volume 50, Issue 8, Pages 1788-1793, August 2004). Thus, a regular QC- LDPC matrix reg ma be defined by a base matrix B which satisfies:
Moreover, an irregular QC-LDPC matrix IMG H^XN may be obtained by ~reg^^m ° Mmask where " °" denotes the Hadamard product and
M mask
(6)
m 7-1,0 m, m,
denotes a mask matrix with £ {0,1}·
Thus, for employing a QC-LDPC code in the generic encoder 12 and the generic decoder 14, the generic encoder 12 and the generic decoder 14 may be provided with a circulant, shift values, i.e., values corresponding to the entries of the base matrix B, and (optionally) a mask matrix Mmask . For instance, an apparatus configured to choose shift values for determining a QC-LDPC matrix H (or the corresponding generator matrix) may be integrated in (or connected to) the generic encoder 12 and/or the generic decoder 14. Moreover, the generic encoder 12 and the generic decoder 14 may also be provided with a mask matrix Mmask to generate an irregular QC-LDPC matrix *"* H .
While the above indicated QC-LDPC code is referred to as QC-LDPC block code, a QC-LDPC convolutional code may be derived from a QC-LDPC block code by forming a semi-infinite parity-check matrix H m of the form
such as, for instance,
(cf. A. E. Pusane et al., "Deriving Good LDPC Convolutional Codes from LDPC Block Codes", IEEE TRANSACTIONS IN INFORMATION THEORY, Volume 57, Issue 2, Pages 835-857, February 2011).
Moreover, a QC-LDPC matrix H Qc can be described by its equivalent bipartite graph ("Tanner graph"), wherein each edge of the Tanner graph connects one variable node of a plurality of variable nodes (which from the first set of the bipartite graph) to one check node of a plurality of check nodes (which form the second set of the bipartite graph). For example, a QC-LDPC matrix of r rows and n columns can be represented by its equivalent bipartite graph with r check nodes and n variable nodes which has edges between the check nodes and the variable nodes if there are corresponding "Is" in the QC-LDPC matrix (cf. R. Tanner, "A Recursive
Approach to Low Complexity Codes", IEEE TRANSACTIONS IN INFORMATION THEORY, Volume 27, Issue 5, Pages 533-547, September 1981). Thus, the variable nodes represent code-word bits and the check nodes represent parity-check equations.
In the Tanner graph of an LDPC code, any degree-s check node may be interpreted as a length-s single parity-check code, i.e., as an (s, s-1) linear block code. Thus, for generalizing an LDPC code, check nodes of the LDPC code may be replaced with a linear block code to enhance the overall minimum distance (cf. M. Lentmaier et al., "On Generalized Low-Density Parity-Check Codes based on Hamming Component
Codes", IEEE COMMUNICATIONS LETTERS, Volume 3, Issue 8, Pages 248-250, August 1999).
A finite set of connected edges in the Tanner graph, wherein the set starts and ends at the same node and satisfies the condition that no node (except the initial and final node) appears more than once forms a "cycle". The "length" of the cycle is the number of edges of the set. The "girth" of the Tanner graph (or "girth" in short) is the length of the shortest cycle(s) in the graph. In this regard, it is noted that short cycles in a Tanner graph of an LDPC code may prevent decoding algorithms from converging. Furthermore, short cycles may degrade the performance of the generic decoder 14, because they affect the independence of the extrinsic information exchanged in the iterative decoding. Accordingly, shift values are to be chosen that achieve a high girth of the Tanner graph representation of the respective LDPC matrix.
Moreover, a LDPC code may contain Trapping Sets (TSs). More particularly, a (a,b) TS contains b check nodes which have an odd number of connections to a variable nodes. Accordingly, when the a variable nodes are wrong, only the b check nodes will be unsatisfied which may lead to a high error floor, as a belief propagation algorithm employed in the decoder 14 may be "trapped" in a false minimum.
While the above approaches to channel coding such as regular or irregular QC- LDPC block or convolutional codes or generalized QC-LDPC block codes have proven to perform well for a wide variety of scenarios, the urge for higher data throughput requires even more sophisticated solutions that achieve high data throughput with decent encoding/decoding resources. It is thus the object of the present invention to provide for a more efficient forward error correction channel coding technique applicable to the generic digital communications system 10.
SUMMARY
According to a first aspect of the present invention, there is provided an encoder for forward error correction channel encoding, the encoder configured to determine a circulant matrix and shift values of a plurality of base matrices which define a plurality of quasi-cyclic low-density parity-check, QC-LDPC, matrices, construct a plurality of convolutional QC-LDPC matrices from the shift values and the circulant matrix, select a multitude of convolutional QC-LDPC matrices from the plurality of convolutional QC-LDPC matrices based on a measure of girth of the
convolutional QC-LDPC matrices, generate a multitude of generalized convolutional QC-LDPC matrices from the multitude of convolutional QC-LDPC matrices using a linear block code as component code, choose a generalized convolutional QC-LDPC matrix of the multitude of generalized convolutional QC-LDPC matrices based on an indication of minimal code distance of the generalized convolutional QC-LDPC matrices, and encode a binary data stream using a generalized low-density parity-check convolutional code, GLDPC-CC, based on the chosen generalized convolutional QC- LDPC matrix.
In this regard, the term "circulant matrix" as used throughout the description and claims particularly refers to a matrix, e.g., the identity matrix, where each row vector is shifted one element to the right relative to the preceding row vector. Furthermore, the term "base matrix" as used throughout the description and claims in particular refers to an array of shift values defining a QC-LDPC matrix. The QC- LDPC matrix is divided into circulant submatrices with each circulant submatrix being generated by cyclically shifting the rows of a common circulant matrix by a number of places given by a corresponding shift value. In other words, each shift value of a base matrix gives the number of times by which the rows of a common circulant matrix, e.g., the identity matrix, are to be cyclically (right-) shifted to generate a corresponding submatrix, wherein the array of submatrices forms the QC-LDPC matrix.
It is to be noted that values forming a matrix do not necessarily have to be physically stored, presented in matrix- (or array-) form, or used in matrix algebra throughout a process involving the matrix. Rather the term "matrix" as used throughout the description and claims in particular refers to a set of (integer) values with assigned row and column indices or which are stored in a (logical) memory array. Moreover, if not involving matrix algebra or if respective matrix algebra routines are suitably redefined, the notion of rows and columns may even be changed or freely chosen. However, throughout the description and claims it is adhered to the mathematical concepts and notations regularly used in the art and they shall be understood as encompassing equivalent mathematical concepts and notations.
Moreover, the term "convolutional QC-LDPC matrix" as used throughout the description and claims in particular refers to a matrix having rows which contain vectors derived from the rows of a corresponding QC-LDPC matrix and zeros. The
vectors in consecutive rows may only partially overlap in the vertical (column) direction while vectors fully overlapping in the vertical (column) direction form submatrices of the corresponding QC-LDPC matrix. A base matrix of a convolutional QC-LDPC matrix can be derived from the base matrix of a QC-LDPC matrix by inserting the rows of the base matrix of the QC-LDPC matrix as vectors into the rows of the base matrix of the convolutional QC-LDPC matrix and repeating the rows of the base matrix of the convolutional QC-LDPC matrix (a predefined number of times or ad infinitum) with each repeated vector being shifted to the right. Further, the term "generalized convolutional QC-LDPC matrix" as used throughout the description and claims in particular refers to a matrix having column vectors that correspond to columns of a (linear) block code control matrix.
By evolving the QC-LDP matrices to generalized convolutional QC-LDPC matrices, a low bit error rate (BER) and frame error rate (FER) can be achieved.
In a first possible implementation form of the encoder according to the first aspect, to generate the multitude of generalized convolutional QC-LDPC matrices from the multitude of convolutional QC-LDPC matrices, the encoder is further configured to expand each convolutional QC-LDPC matrix, wherein to expand a convolutional QC-LDPC matrix comprises to copy each row of the convolutional QC- LDPC matrix a predetermined number of times and to adjust a submatrix formed by the copied rows to the linear block code.
For example, the convolutional QC-LDPC matrix may be expanded by copying each row a given number of times and replacing "1 -column- vectors" (i.e. vectors in a column filled with "Is") of the copied rows with columns of a (linear) block code control matrix, thereby effectively replacing some of the ones in the vectors with zeros. By expanding the convolutional QC-LDPC matrices with linear block codes, the code distance can be increased.
In a second possible implementation form of the encoder according to the first aspect as such or according to the first implementation form of the first aspect, the linear block code is a Hamming code.
Using a Hamming code as the linear block code simplifies encoding of the convolutional code as it does, for instance, not require a zero information word for initialization.
In a third possible implementation form of the encoder according to the first aspect as such or according to the first or second implementation form of the first aspect, the shift values are equally divided onto a first row and a second row of the plurality of base matrices and wherein to construct the plurality of convolutional QC- LDPC matrices from the shift values, the encoder is further configured to construct convolutional base matrices of the plurality of convolutional QC-LDPC matrices having a third row inheriting the shift values of the first row and a fourth row inheriting the shift values of the second row, wherein the shift values of the fourth row are vertically displaced relative to the shift values of the third row.
Using base matrices with only two rows allows for a small number of cycles in the corresponding Tanner graph and thus simplifies achieving a high girth of the QC- LDPC code.
In a fourth possible implementation form of the encoder according to the first aspect as such or according to any of the preceding implementation forms of the first aspect, to encode the binary data stream using the GLDPC-CC, the encoder is further configured to group the binary data stream into multiple groups, wherein the size of each group corresponds to the size of the circulant, and to cyclically shift each group based on the circulant and a shift value of the shift values and to calculate parity data based on an output of a plurality of Hamming encoders fed with the cyclically shifted groups.
Using a serial encoding process based on cyclically shifting groups of bits of the binary data stream (i.e., applying the correspondingly shifted circulant) and feeding the cyclically shifted groups to the Hamming encoders allows for a reduction in processing complexity and thus an increase in processing speed.
In a fifth possible implementation form of the encoder according to the fourth implementation form of the first aspect, to calculate parity data based on an output of a plurality of Hamming encoders fed with the cyclically shifted groups, the encoder is further configured to cyclically shift the output of the plurality of Hamming encoders based on the circulant and shift values not applied to the multiple groups.
Applying matrices derived from inversely (left-) shifting the circulant by the remaining shift values to the output of the Hamming encoders allows to calculate the parity check bits with low computational effort.
In a sixth possible implementation form of the encoder according to the first aspect as such or according to any of the preceding implementation forms of the first aspect, to determine shift values of the plurality of QC-LDPC matrices, the encoder is configured to choose the shift values in a row-by-row order of a respective base matrix of a plurality of base matrices, and wherein shift values corresponding to entries in a row of the base matrix are chosen in an order that is at least in part based on a measure of a number of cycles in which check nodes and variable nodes of node groups corresponding to the entries, participate.
By choosing the shift-values in a row-by-row order, it is possible to create stronger connected row-code which is advantageous for layered belief-propagation decoding.
In a seventh possible implementation form of the encoder according to the sixth implementation form of the first aspect, the measure defines a cycle density and wherein the encoder is configured to choose values corresponding to entries in a row of the base matrix in order of decreasing cycle density of the corresponding node groups, given the already chosen values.
Filling the entries of the shift matrix in an order of decreasing cycle density of the corresponding Tanner graph representation gives greater freedom of choosing shift values for those node groups which do already participate in many cycles and for which the generation of further cycles is hence more probable. By this, cycle density of all parts of the Tanner graph becomes more balanced.
In an eighth possible implementation form of the encoder according to the first aspect as such or according to any of the preceding implementation forms of the first aspect, the encoder is configured to transmit the encoded binary data stream via an optical channel.
According to a second aspect of the present invention, there is provided a decoder for forward error correction channel decoding of a generalized quasi-cyclic low-density parity-check convolutional code, QC-LDPC-CC, the decoder including an interleaver and a plurality of Hamming decoders, wherein the interleaver is based on a circulant matrix and shift values of a first row of a base matrix of a quasi-cyclic low- density parity-check, QC-LDPC, matrix and is configured to pass groups of reordered bits of a bitstream to the Hamming decoders.
In this regard, the term "generalized quasi-cyclic low-density parity-check convolutional code" as used throughout the description and claims in particular refers to a code defined by a generalized convolutional QC-LDPC matrix. Moreover, the term "interleaver" as used throughout the description and claims in particular refers to an entity which reorders bits of a binary data stream received at the decoder into groups which are passed to the Hamming decoders. Notably, the Hamming decoders, although having favorable properties, may be replaced by other linear block code decoders.
By evolving the QC-LDP code to a generalized QC-LDPC convolutional code, a low bit error rate (BER) can be achieved.
In a first possible implementation form of the decoder according to the second aspect, the decoder further includes a de-interleaver and a second layer interleaver, the de-interleaver configured to receive an output of the Hamming decoders, de-interleave the output and pass the de-interleaved output to the second layer interleaver, wherein the second layer interleaver is based on the circulant matrix and shift values of a second row of the base matrix of the QC-LDPC matrix.
In a second possible implementation form of the decoder according to the second aspect as such or according to the first implementation form of the second aspect, the Hamming decoders are max-log-map decoders and the decoder applies an a-posteriori probability, APP, based algorithm.
According to a third aspect of the present invention, there is provided a system for forward error correction channel encoding comprising an encoder according to the first aspect as such or according to any of the preceding implementation forms of the first aspect and a decoder according to the second aspect as such or according to any of the preceding implementation forms of the second aspect.
According to a fourth aspect of the present invention, there is provided a method of forward error correction channel encoding, comprising determining a circulant and shift values of a plurality of quasi-cyclic low-density parity-check, QC- LDPC, matrices, constructing a plurality of convolutional QC-LDPC matrices from the circulant and the shift values, selecting a multitude of convolutional QC-LDPC matrices of the plurality of convolutional QC-LDPC matrices based on an indication of girth of the convolutional QC-LDPC matrices, generating a multitude of generalized
convolutional QC-LDPC matrices from the selected convolutional QC-LDPC matrices, and encoding a binary data stream using a generalized low-density parity- check convolutional code, GLDPC-CC, based on a generalized convolutional QC- LDPC matrix chosen from the multitude of generalized convolutional QC-LDPC matrices.
According to a fifth aspect of the present invention, there is provided a method of forward error correction channel decoding, comprising passing messages between Hamming decoders, wherein the passing is governed by a convolutional quasi-cyclic low-density parity-check, QC-LDPC, matrix.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a schematic illustration of a digital communication system;
Fig. 2 is a flow chart of a process of determining a QC-LDPC code;
Fig. 3 is a flow chart of a process of determining a generalized QC-LDPC convolutional code from a plurality of QC-LDPC codes;
Fig. 4 is a schematic illustration of an encoder;
Fig. 5 is a schematic illustration of a decoder; and
Fig. 6 is a schematic illustration of a first layer interleaver and a plurality of Hamming decoders.
DETAILED DESCRIPTION
As shown in Fig. 2, a process 22 of determining a QC-LDPC code may start at step 24 with choosing shift values in a row-by-row order of a base matrix. In an example, a base matrix
may consist of L=2 rows and J=15 columns, wherein each entry of the base matrix, i.e., each shift value, is to define a corresponding shift of a circulant which, in the example, may be an identity matrix of size NxN. If seen from a Tanner graph perspective, choosing shift values in a row-by-row order corresponds to defining edges between all variable nodes and a first subset of the check nodes before defining edges between all variable nodes and a second subset of the check nodes. However, instead of choosing shift values in a row-by-row order, it is also contemplated that shift values may be chosen in a column-by-column order or in a random order, i.e. a row and column agnostic order.
As indicated at step 26, the entries within one row of the base matrix are consecutively chosen in an order that is at least in part based on a measure of a number
of cycles in which variable nodes and check nodes of node groups corresponding to the row entries, participate. In the example, each row entry involves N=500 variable nodes and N=500 check nodes due to the circulant being an identity matrix of size 500x500. However, because a single-layer QC-LDPC code derived from a circulant of weight one is represented by a tree-like graph structure in which no cycles exist, no cycle- density-based order can be established for the row that is labeled first. Thus, the shift values of the first row of the base matrix may be chosen in any order.
After labeling the first row of the base matrix with shift values "¾" to the base matrix may look like:
S0 Sj S2 S3 S4 S5 S6 S7 S8 S9 S10 Sjj S12 S,
B^
Due to the absence of cycles in a single-layer QC-LDPC code derived from a circulant of weight one, the second layer can be labelled starting at any entry. For example, the 9th entry in the second row may be labelled with shift value so that the base matrix looks like:
S0 Sj S2 S3 S4 S5 S6 S7 S8 S9 S10 Sjj Sj2 Sj3 S14
B 2x15
^23
From this point onwards, entries in the second row of the base matrix are labelled in order of decreasing cycle-density of the corresponding node groups, taking into account the already chosen shift values, i.e., all entries of the first row and the one or more shift values in the second row that have already been chosen, e.g., the 9th entry. Accordingly, the selection of shift values in the second row may continue with labeling an entry that defines edges between a set of variable nodes and a set of check nodes that are involved in a larger number of cycles than variable nodes and check nodes corresponding to other entries. As each entry in a row corresponds to the same check nodes, the selection of shift values in the second row may continue with labeling an entry that, by being labelled, defines edges of a set of variable nodes that are involved in more cycles than any other set of variable nodes.
Each entry that is labelled in order of decreasing cycle-density may be labelled with a shift value which is selected from a plurality of possible shift values that all produce code that meets one or more quality criteria. For example, the shift values that are available for labelling an entry may all produce code that satisfies a pre-defined
girth condition regarding the girth of the corresponding Tanner graph, which may, for example, be calculated using the equation in M. P. C. Fossorier, "Quasi-Cyclic Low- Density Parity-Check Codes from Circulant Permutation Matrices", IEEE TRANSACTIONS ON INFORMATION THEORY, Volume 50, Issue 8, Pages 1788- 1793, August 2004.
Furthermore, a shift value may be selected from the available shift values based on a measure of connectivity of cycles in the corresponding Tanner graph representation that would result from the selection. For example, a shift value may be selected from the available shift values based on enumerating the TSs involved in the selection. In this regard, it may be made use of the fact that under certain conditions, e.g., that check nodes connected to the variable nodes in the cycle but not involved in the cycle are singly connected to the cycle, the ACE spectrum is equal to the extrinsic message degree (EMD) as described in Deka et al., "On the Equivalence of the ACE and the EMD of a Cycle for the ACE Spectrum Constrained LDPC Codes", 8th INTERNATIONAL SYMPOSIUM ON TURBO CODES AND ITERATIVE INFORMATION PROCESSING (ISTC), Pages 55-59, August 2014. Thus, a TS enumerator can be obtained by the ACE spectrum, because the cycle of length / contains 111 variable nodes. For the ACE value η, the subgraph induced by the 1/2 variable nodes constrains exactly η number of odd-degree check nodes. Hence, the cycle can be treated as TS (ΙΙ 2,η) . Moreover, the reliability of messages coming from check nodes singly connected to a cycle can be increased relative to messages coming from check nodes involved in the cycle in order to enhance the benefit of the messages coming from the rest of the Tanner graph.
In this way, better connectivity can be ensured for isolated small cycles and the performance of iterative decoders may be improved which may result in a gain in the waterfall region. The process 22 may then be continued until all shift values of the base matrix are chosen or, if only shift values exist for an entry that would produce code which violates a requirement such as a required minimal girth of the QC-LDPC code, the process 22 may be aborted. After choosing all shift values of the second row, the base matrix in the example looks like:
The process 22 may then be repeated a defined number of times to generate a plurality of base matrices. Furthermore, heuristics may be used to filter the generated base matrices in view of favorable properties of the corresponding QC-LDPC codes.
For example, the generated base matrices may be filtered based on parameters which measure how fast messages in a corresponding QC-LDPC code disperse to all nodes. More particularly, there exist |_(g - l)/4j independent iterations, with g denoting the girth of the corresponding Tanner graph. Thus, after diameter/ 2 iterations, information from any variable nodes shall have reached any other variable node. In this case, if diameter≥ \_g -1_|/ 2 , all vertexes shall have statistically independent information. These considerations motivate a heuristic which is directed at selecting a graph design with large girth and smallest diameter for the degrees of the vertexes as described in Tanner et al., "A Class of Group-Structured LDPC Codes", PROCEEDINGS OF THE INTERNATIONAL SYMPOSIUM ON COMMUNICATION THEORY AND APPLICATIONS, 2001, Ambleside, England, 2001. Thus, one goal of filtering the base matrices may be to obtain QC-LDPC codes with maximal girth and minimum graph diameter.
Another possible filtering parameter is described in Wang et al., "Hierarchical and High-Girth QC LDPC Codes", IEEE TRANSACTIONS ON INFORMATION THEORY, Volume 59, Issue 7, pages 4553-4583, July 2013. Therein, a bipartite graph defined by a QC-LDPC code is taken and the spectral graph (connective) property of the corresponding graph is considered by the real-value adjacency (connectivity) matrix:
because a change of column (VN) positions does not change code and eigenvalues monotonically. Thus, a similar order for spectral graph filtering of base matrices with a simplification of the calculation may be obtained. After diagonalizing and taking real eigenvalues μι > μ2 >■■■> μχ , QC-LDPC codes may be filtered which achieve a QC-
LDPC code having a ratio of the second eigenvalue to the first eigenvalue— which is below a predetermined threshold.
Thus, the base matrices may be filtered based on parameters which point at the quality of the corresponding QC-LDPC codes. In particular, the base matrices may be filtered based on a weight spectrum enumerator or a TS spectrum enumerator. Furthermore, the base matrices may be filtered based on Tanner spectral graph properties. After filtering some (or all) base matrices whose parameters are below or above pre-determined thresholds, the remaining base matrices may be further filtered based on code distance.
After filtering the base matrices, the performance of the QC-LDPC codes defined by the (sieved) base matrices may be simulated and the base matrices corresponding to the QC-LDPC codes that perform best may be determined. Hence, QC-LDPC codes with favorable ACE spectrum, Tanner spectral graph properties and large code distance may be simulated at one or more working points. For example, an En/No of 2 dB may be used and QC-LDPC codes exhibiting the probability of error (BER, FER, etc.) below threshold may be determined.
The determined base matrices may be used in a process 28 of determining a generalized QC-LDPC convolutional code from a plurality of QC-LDPC codes as shown in Fig. 3 which starts at step 30 with determining a circulant matrix and shift values of a plurality of base matrices which define a plurality of QC-LDPC matrices. For instance, the plurality of base matrices may be determined following the process 22 described above.
At step 32 of the process 28, the determined plurality of base matrices may be used to construct a plurality of convolutional QC-LDPC matrices. I.e., continuing with the above example, the determined base matrices may define a plurality of QC-LDPC block codes with QC-LDPC matrices of size JNxLN with J=2, L=15, and N=500.
A convolutional QC-LDPC matrix H nv may be constructed from a two-layer
QC-LDPC matrix ^xJN by copying M times each circulant l{pj i ) of the QC-LDPC matrix H^xJN (with 0 < j < J and 0 < ^T < L— 1 , K defining the overlap) while adhering to the following set of rules:
• HiZ{N{2m + a),N{l + Lm)+b)
for ; = 0, 0≤m<M , 0<1<L and 0≤a,b<N .
• H^v{N{l + 2m + a),N{l + Lm) + b) = l(p Xa,b) for j = l, 0≤m<M , K≤l<L and 0≤a,b<N .
• All remaining entries of H nv are filled with zeros.
For K=7, the first three rows of a base matrix B2MX15M of the resulting H nv will look like:
After cutting the first KN columns of H^ONV, the base matrix B2MX15M-K resultin cu'H^nv of size JNM XLNM-KN will look like:
Repeating the above procedure for some or all of the plurality of determined
QC-LDPC block codes with QC-LDPC matrices of size JNxLN, a plurality of corresponding QC-LDPC convolutional codes may be constructed, wherein the QC- LDPC convolutional codes are defined by convolutional QC-LDPC matrices H nv of size JNM XLNM-KN.
After selecting a multitude of convolutional QC-LDPC matrices from the plurality of convolutional QC-LDPC matrices based on a measure of girth of the convolutional QC-LDPC matrices as indicated by step 34, the process 28 is continued with generating a multitude of generalized convolutional QC-LDPC matrices from the multitude of convolutional QC-LDPC matrices using a linear block code as component code.
Continuing with the above example, the linear block code may be a Hamming code of size 4x15 such as:
1 1 0 1 1 0 1 0 1 0 1 1 0 0 0
1 0 1 1 0 1 1 0 0 1 1 0 1 0 0
H^ =
0 1 1 1 0 0 0 1 1 1 1 0 0 1 0
0 0 0 0 1 1 1 1 1 1 1 0 0 0 1
However, other linear block codes such as Hadamard codes, Reed-Muller codes or Reed-Salomon codes are also contemplated.
To generate generalized convolutional QC-LDPC matrices H from the convolutional QC-LDPC matrices c°'¾n , each row of the convolutional QC-LDPC matrices
may be copied P=4 times (i.e., the number of rows of the linear block code) and the "Is" in each row may be changed to conform to entries of the corresponding row of the linear block code.
For example, let ba denote the column in which the 1th "1" of the a* row (from left to right) of a convolutional QC-LDPC matrix cu H^onv is placed (with 0≤i<L and 0 < a < JNM ). Then, ba,i may be determined according to the following set of rules: • K,i ={i-K)N + mod(mod(a, N) + p0 i ,N) for K≤i<L and a < N . a
N
b . = i + L\ N + mod mod(a,N)+ p. , ,N for0< i<L-K, a≥N
,i+K a
and odd.
N
a
a≥N and odd.
a
and even.
N
Based on ba, i which represents another sparse representation of a convolutional
QC-LDPC matrix cu H^onv , a generalized convolutional QC-LDPC matrix H can be generated by adhering to the following rule:
+ c,ba, ) = HHam (c, / ) for 0 < a < JNM , 0 < c < P and 0 < i < L .
By applying this procedure to some or all of the convolutional QC-LDPC matrices H c nv selected in step 34, a multitude of generalized convolutional QC-LDPC matrices H gQeCner,conv can be g oenerated.
After generating a multitude of generalized convolutional QC-LDPC matrices gener ,conv ' the process 28 is continued at step 38 with choosing a generalized convolutional QC-LDPC matrix of the multitude of generalized convolutional QC- LDPC matrices based on an indication of minimal code distance of the generalized convolutional QC-LDPC matrices. In addition, choosing a generalized convolutional QC-LDPC matrix of the multitude of generalized convolutional QC-LDPC matrices may be based on enumerating a TS spectrum of the generalized convolutional QC- LDPC matrices or one or more other code quality criteria of the code quality criteria discussed above.
A GLDPC-CC based on the chosen generalized convolutional QC-LDPC matrix H^ner conv may then be used to encode a binary data stream IS 1. Continuing with the above example, a codeword £ of a binary data stream ISj encoded with the GLDPC-CC has length LNM-KN with a repeat structure of (L-K)N-PN information bits, PN check bits, KN-PN information bits and PN check bits. For example, the first N rows connect (L-K)N variable nodes to PN check nodes. The next N rows connect LN variable nodes to PN check nodes. However, the first (L-K)N variable nodes are already given, leaving KN free variable nodes
Due to the structure of the Hamming code Hnam, the first PN check bits can be directly calculated by multiplying the first (L-K)N-PN information bits with the corresponding submatrix of size PNx(L-K)N-PN of the first layer of H^ner conv . The vector of the first (L-K)N-PN information bits and the appended calculated PN check bits and KN-PN information bits is then multiplied with the corresponding submatrix of size PNxLN-PN of the second layer of H^ner conv to calculate the next PN check bits.
The codeword E may also be determined by shifting the information bits in accordance with the shift values Si, ¾, S3, S5, ¾, S7, S$, ¾, Sw, and Su for even layers or in accordance with the shift values S½, Sn, S22, S23, S24, S25, S26, S27, ¾s, and S29 for odd layers of the base matrix Β2ΜΧ15Μ-Κ and feeding N identical Hamming encoders (or equivalently N times the same Hamming encoder) with the shifted information bits and shifting the check bits by Sn, ¾, Su, and S]5 for even layers or by Sis, S19, S20, and S21 for odd layers.
Fig. 4 shows an encoder 40 which can be used instead of the generic encoder 12 in the generic system 10 of Fig. 1. The encoder 40 is configured to receive the binary data stream Bl, carry out some or all steps of the above processes 22 and 28 and to transmit the codeword E. The encoder 40 comprises a processor 42 and a memory 44 coupled to the processor 42. The memory 44 may be a computer-readable medium such as an optic or a magnetic storage, which comprises persistently stored computer- readable instructions that when carried out by the processor 42 implement some or all steps of the above processes 22 and 28. Moreover, although the encoder 40 of Fig. 4 is shown as a single entity, the encoder 40 may cooperate with one or more devices connected to the encoder 40 via a wireless or wired link to carry out some or all steps of the above processes 22 and 28 cooperatively. Furthermore, the encoder 40 may be connected to the modulator 16. The modulator 16 may transform the codeword E into a modulated signal vector CH_IN which is in turn transmitted through the channel 18.
At the receiving end, the channel output vector CH_OUT may be processed by the demodulator 20 which produces some likelihood ratio. However, instead of being connected to the generic decoder 14, the demodulator 20 may be connected to a decoder 46 as shown in Fig. 5. The decoder 46 comprises a processor 48 and a memory 50 coupled to the processor 48 and is configured to use the redundancy in the received information sequence IS3 in a decoding operation, e.g., a BCJR, Chase
Pyndiah, or Fast MAP decoding algorithm, to correct errors in the information sequence of the received information sequence IS3 and to produce a decoded signal IS4 which is an information sequence estimate.
For example, the memory 50 may be a computer-readable medium such as an optic or a magnetic storage, which comprises persistently stored computer-readable instructions that when carried out by the processor 48 implement a first-layer interleaver 52 and a plurality of (identical) Hamming decoders 54 as shown in Fig. 6. Continuing with the above example, the first-layer interleaver 52 may be based on the circulant of size NxN and the shift values of the first row of the base matrix BDJ defining the QC-LDPC matrix H^xJN corresponding to the GLDPC-CC used for encoding the binary data stream ISj. After interleaving the bits of the received information sequence IS3, the interleaver 52 passes groups of the reordered bits of the bitstream ISi to N identical Hamming decoders 54 (or equivalently consecutively N times to the same Hamming decoder 54).
The Hamming decoders 54 may be implemented as soft- input soft-output
(SISO) decoders, e.g., max-log-map decoders, and pass a posteriori probability values and extrinsic values to a de-interleaver which de-interleaves the values. The de- interleaved a posteriori probability values and extrinsic values and the extrinsic values may then be passed by the de-interleaver to a second layer interleaver which is based on the circulant matrix and shift values of a second row of the base matrix BLXJ defining the QC-LDPC matrix H^xJN corresponding to the GLDPC-CC used for encoding the binary data stream ISi.
After a predetermined number of iterations, a hard decision may be calculated based on the determined log-likelihood ratios and a corresponding estimate for the binary data stream ISi may be determined.
Claims
1. An encoder for forward error correction channel encoding, the encoder configured to:
determine a circulant matrix and shift values of a plurality of base matrices which define a plurality of quasi-cyclic low-density parity-check, QC-LDPC, matrices; construct a plurality of convolutional QC-LDPC matrices from the shift values and the circulant matrix;
select a multitude of convolutional QC-LDPC matrices from the plurality of convolutional QC-LDPC matrices based on a measure of girth of the convolutional QC-LDPC matrices;
generate a multitude of generalized convolutional QC-LDPC matrices from the multitude of convolutional QC-LDPC matrices using a linear block code as component code;
choose a generalized convolutional QC-LDPC matrix of the multitude of generalized convolutional QC-LDPC matrices based on an indication of minimal code distance of the generalized convolutional QC-LDPC matrices; and
encode a binary data stream using a generalized low-density parity-check convolutional code, GLDPC-CC, based on the chosen generalized convolutional QC- LDPC matrix.
2. The encoder of claim 1, wherein to generate the multitude of generalized convolutional QC-LDPC matrices from the multitude of convolutional QC-LDPC matrices, the encoder is further configured to expand each convolutional QC-LDPC matrix, wherein to expand a convolutional QC-LDPC matrix comprises to copy each row of the convolutional QC-LDPC matrix a predetermined number of times and to adjust a submatrix formed by the copied rows to the linear block code.
3. The encoder of claim 1 or 2, wherein the linear block code is a Hamming code.
4. The encoder of any one of claims 1 to 3, wherein the shift values are equally divided onto a first row and a second row of the plurality of base matrices and wherein to construct the plurality of convolutional QC-LDPC matrices from the shift values, the encoder is further configured to construct convolutional base matrices of the plurality of convolutional QC-LDPC matrices having a third row inheriting the shift
values of the first row and a fourth row inheriting the shift values of the second row, wherein the shift values of the fourth row are vertically displaced relative to the shift values of the third row.
5. The encoder of any one of claims 1 to 4, wherein to encode the binary data stream using the GLDPC-CC, the encoder is further configured to group the binary data stream into multiple groups, wherein the size of each group corresponds to the size of the circulant, and to cyclically shift each group based on the circulant and a shift value of the shift values and to calculate parity data based on an output of a plurality of Hamming encoders fed with the cyclically shifted groups.
6. The encoder of claim 5, wherein to calculate parity data based on an output of a plurality of hamming encoders fed with the cyclically shifted groups, the encoder is further configured to cyclically shift the output of the plurality of Hamming encoders based on the circulant and shift values not applied to the multiple groups.
7. The encoder of any one of claims 1 to 6, wherein to determine shift values of the plurality of QC-LDPC matrices, the encoder is configured to choose the shift values in a row-by-row order of a respective base matrix of a plurality of base matrices, and wherein shift values corresponding to entries in a row of the base matrix are chosen in an order that is at least in part based on a measure of a number of cycles in which check nodes and variable nodes of node groups corresponding to the entries, participate.
8. The encoder of claim 7, wherein the measure defines a cycle density and wherein the encoder is configured to choose values corresponding to entries in a row of the base matrix in order of decreasing cycle density of the corresponding node groups, given the already chosen values.
9. The encoder of any one of claims 1 to 8, wherein the encoder is configured to transmit the encoded binary data stream via an optical channel.
10. A decoder for forward error correction channel decoding of a generalized quasi-cyclic low-density parity-check convolutional code, QC-LDPC-CC, the decoder including an interleaver and a plurality of Hamming decoders, wherein the interleaver is based on a circulant matrix and shift values of a first row of a base matrix of a quasi- cyclic low-density parity-check, QC-LDPC, matrix and is configured to pass groups of reordered bits of a bitstream to the Hamming decoders.
11. The decoder of claim 10, wherein the decoder further includes a de- interleaver and a second layer interleaver, the de-interleaver configured to receive an output of the Hamming decoders, de-interleave the output and pass the de-interleaved output to the second layer interleaver, wherein the second layer interleaver is based on the circulant matrix and shift values of a second row of the base matrix of the QC- LDPC matrix.
12. The decoder of claim 10 or 11, wherein the Hamming decoders are max- log-map decoders and the decoder applies an a-posteriori probability, APP, based algorithm.
13. A system for forward error correction channel encoding comprising an encoder according to any one of claims 1 to 9 and a decoder according to any one of claims 10 to 12.
14. A method of forward error correction channel encoding, comprising: determining a circulant and shift values of a plurality of quasi-cyclic low- density parity-check, QC-LDPC, matrices;
constructing a plurality of convolutional QC-LDPC matrices from the circulant and the shift values;
selecting a multitude of convolutional QC-LDPC matrices of the plurality of convolutional QC-LDPC matrices based on an indication of girth of the convolutional QC-LDPC matrices;
generating a multitude of generalized convolutional QC-LDPC matrices from the selected convolutional QC-LDPC matrices; and
encoding a binary data stream using a generalized low-density parity-check convolutional code, GLDPC-CC, based on a generalized convolutional QC-LDPC matrix chosen from the multitude of generalized convolutional QC-LDPC matrices.
15. A method of forward error correction channel decoding, comprising:
passing messages between Hamming decoders, wherein the passing is governed by a convolutional quasi-cyclic low-density parity-check, QC-LDPC, matrix.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2015/000886 WO2017105270A1 (en) | 2015-12-15 | 2015-12-15 | Determination of a quasi-cyclic low-density parity-check, qc-ldpc, code for channel coding in digital communication systems |
RUPCT/RU2015/000886 | 2015-12-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017105291A1 true WO2017105291A1 (en) | 2017-06-22 |
Family
ID=56411861
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/RU2015/000886 WO2017105270A1 (en) | 2015-12-15 | 2015-12-15 | Determination of a quasi-cyclic low-density parity-check, qc-ldpc, code for channel coding in digital communication systems |
PCT/RU2016/050027 WO2017105291A1 (en) | 2015-12-15 | 2016-08-16 | Generalized quasi-cyclic ldpc convolutional codes for digital communication systems |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/RU2015/000886 WO2017105270A1 (en) | 2015-12-15 | 2015-12-15 | Determination of a quasi-cyclic low-density parity-check, qc-ldpc, code for channel coding in digital communication systems |
Country Status (1)
Country | Link |
---|---|
WO (2) | WO2017105270A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639288A (en) * | 2018-10-24 | 2019-04-16 | 上海无线电设备研究所 | Generalization interpretation method and decoding module suitable for QC-LDPC code |
KR20190127395A (en) * | 2018-05-04 | 2019-11-13 | 에스케이하이닉스 주식회사 | Circuit for transform parity check matrix of QC-LDPC code, error correcting circuit having the same and operating method thereof |
CN113595563A (en) * | 2021-08-02 | 2021-11-02 | 上海金卓科技有限公司 | LDPC decoding method, device, equipment and storage medium |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107623525B (en) * | 2017-07-28 | 2020-09-22 | 华南理工大学 | Efficient variable node selection sequence method |
CN112398482A (en) * | 2019-08-13 | 2021-02-23 | 中兴通讯股份有限公司 | Method for constructing regular QC-LDPC code and electronic equipment |
CN110719108B (en) * | 2019-08-26 | 2021-08-20 | 北京大学 | QC-LDPC codeword extension method and system based on ring connectivity |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100257425A1 (en) * | 2009-04-06 | 2010-10-07 | Nec Laboratories America, Inc. | Systems and methods for constructing the base matrix of quasi-cyclic low-density parity-check codes |
-
2015
- 2015-12-15 WO PCT/RU2015/000886 patent/WO2017105270A1/en active Application Filing
-
2016
- 2016-08-16 WO PCT/RU2016/050027 patent/WO2017105291A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100257425A1 (en) * | 2009-04-06 | 2010-10-07 | Nec Laboratories America, Inc. | Systems and methods for constructing the base matrix of quasi-cyclic low-density parity-check codes |
Non-Patent Citations (15)
Title |
---|
A. E. PUSANE ET AL.: "Deriving Good LDPC Convolutional Codes from LDPC Block Codes", IEEE TRANSACTIONS IN INFORMATION THEORY, vol. 57, no. 2, February 2011 (2011-02-01), pages 835 - 857, XP011348929, DOI: doi:10.1109/TIT.2010.2095211 |
DEKA ET AL.: "On the Equivalence of the ACE and the EMD of a Cycle for the ACE Spectrum Constrained LDPC Codes", 8TH INTERNATIONAL SYMPOSIUM ON TURBO CODES AND ITERATIVE INFORMATION PROCESSING (ISTC, August 2014 (2014-08-01), pages 55 - 59 |
IVAN B. DJORDJEVIC ET AL: "Multiple component codes based generalized LDPC codes for high-speed optical transport", OPTICS EXPRESS, vol. 22, no. 14, 30 June 2014 (2014-06-30), pages 16694, XP055173086, DOI: 10.1364/OE.22.016694 * |
LENTMAIER M ET AL: "On generalized low-density parity-check codes based on Hamming component codes", IEEE COMMUNICATIONS LETTERS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 3, no. 8, 1 August 1999 (1999-08-01), pages 248 - 250, XP011423422, ISSN: 1089-7798, DOI: 10.1109/4234.781010 * |
LIVA G ET AL: "Quasi-cyclic generalized LDPC codes with low error floors", IEEE TRANSACTIONS ON COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, NJ. USA, vol. 56, no. 1, 1 January 2008 (2008-01-01), pages 49 - 57, XP011224721, ISSN: 0090-6778, DOI: 10.1109/TCOMM.2008.050600 * |
M. LENTMAIER ET AL.: "On Generalized Low-Density Parity-Check Codes based on Hamming Component Codes", IEEE COMMUNICATIONS LETTERS, vol. 3, no. 8, August 1999 (1999-08-01), pages 248 - 250, XP000848179, DOI: doi:10.1109/4234.781010 |
M. P. C. FOSSORIER: "Quasi-Cyclic Low-Density Parity-Check Codes from Circulant Permutation Matrices", IEEE TRANSACTIONS ON INFORMATION THEORY, vol. 50, no. 8, August 2004 (2004-08-01), pages 1788 - 1793, XP011115246, DOI: doi:10.1109/TIT.2004.831841 |
MICHAEL LENTMAIER ET AL: "Density evolution analysis of Protograph-based braided block codes on the erasure channel", PROC., INTERNATIONAL ITG CONFERENCE ON SOURCE AND CHANNEL CODING (SCC), IEEE, PISCATAWAY, NJ, USA, 18 January 2010 (2010-01-18), pages 1 - 6, XP031657414, ISBN: 978-1-4244-6872-0 * |
MITCHELL DAVID G M ET AL: "On the minimum distance of generalized spatially coupled LDPC codes", PROC., IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY, IEEE, 7 July 2013 (2013-07-07), pages 1874 - 1878, XP032496913, ISSN: 2157-8095, [retrieved on 20131003], DOI: 10.1109/ISIT.2013.6620551 * |
R. TANNER: "A Recursive Approach to Low Complexity Codes", IEEE TRANSACTIONS IN INFORMATION THEORY, vol. 27, no. 5, September 1981 (1981-09-01), pages 533 - 547, XP001002287, DOI: doi:10.1109/TIT.1981.1056404 |
TANNER ET AL.: "A Class of Group-Structured LDPC Codes", PROCEEDINGS OF THE INTERNATIONAL SYMPOSIUM ON COMMUNICATION THEORY AND APPLICATIONS, 2001 |
TAO TIAN ET AL: "Construction of irregular LDPC codes with low error floors", NEW FRONTIERS IN TELECOMMUNICATIONS : 2003 IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS ; ICC 2003 ; 11 - 15 MAY 2003, ANCHORAGE, ALASKA, USA; [IEEE INTERNATIONAL CONFERENCE ON COMMUNICATIONS], IEEE OPERATIONS CENTER, PISCATAWAY, NJ, vol. 5, 11 May 2003 (2003-05-11), pages 3125 - 3129, XP010643022, ISBN: 978-0-7803-7802-5, DOI: 10.1109/ICC.2003.1203996 * |
VASILY USATYUK: "Some problems of Graph Based Codes for Belief Propagation decoding Quasi-cyclic Low Density Parity-check code (QC-LDPC)", 24 November 2015 (2015-11-24), XP055302971, Retrieved from the Internet <URL:https://arxiv.org/ftp/arxiv/papers/1511/1511.00133.pdf> [retrieved on 20160915] * |
VUKOBRATOVIC D ET AL: "Generalized ACE Constrained Progressive Edge-Growth LDPC Code Design", IEEE COMMUNICATIONS LETTERS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 10, no. 1, 1 January 2008 (2008-01-01), pages 32 - 34, XP011224659, ISSN: 1089-7798 * |
WANG ET AL.: "Hierarchical and High-Girth QC LDPC Codes", IEEE TRANSACTIONS ON , INFORMATION THEORY, vol. 59, no. 7, July 2013 (2013-07-01), pages 4553 - 4583, XP011514460, DOI: doi:10.1109/TIT.2013.2253512 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190127395A (en) * | 2018-05-04 | 2019-11-13 | 에스케이하이닉스 주식회사 | Circuit for transform parity check matrix of QC-LDPC code, error correcting circuit having the same and operating method thereof |
KR102449782B1 (en) | 2018-05-04 | 2022-10-04 | 에스케이하이닉스 주식회사 | Circuit for transform parity check matrix of QC-LDPC code, error correcting circuit having the same and operating method thereof |
CN109639288A (en) * | 2018-10-24 | 2019-04-16 | 上海无线电设备研究所 | Generalization interpretation method and decoding module suitable for QC-LDPC code |
CN109639288B (en) * | 2018-10-24 | 2023-07-04 | 上海无线电设备研究所 | Generalized decoding method and decoding module suitable for QC-LDPC code |
CN113595563A (en) * | 2021-08-02 | 2021-11-02 | 上海金卓科技有限公司 | LDPC decoding method, device, equipment and storage medium |
CN113595563B (en) * | 2021-08-02 | 2024-03-29 | 上海金卓科技有限公司 | LDPC decoding method, device, equipment and storage medium |
Also Published As
Publication number | Publication date |
---|---|
WO2017105270A1 (en) | 2017-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110572163B (en) | Method and apparatus for encoding and decoding LDPC code | |
WO2017105291A1 (en) | Generalized quasi-cyclic ldpc convolutional codes for digital communication systems | |
US11057049B2 (en) | Generalized low-density parity check codes in digital communication system | |
JP3893383B2 (en) | LDPC code parity check matrix generation method and parity check matrix generation apparatus | |
EP3533145B1 (en) | Generation of spatially-coupled quasi-cyclic ldpc codes | |
WO2018128560A1 (en) | Efficiently decodable qc-ldpc code | |
Zhang et al. | Toward low LDPC-code floors: a case study | |
CN112583419A (en) | Decoding method and device | |
Ullah et al. | Comprehensive algorithmic review and analysis of LDPC codes | |
JP2009177228A (en) | Encoding method, encoder, and decoder | |
Andreadou et al. | Quasi-Cyclic Low-Density Parity-Check (QC-LDPC) codes for deep space and high data rate applications | |
WO2018084732A1 (en) | Ldpc codes for incremental redundancy harq (ir-harq) schemes | |
EP3526899B1 (en) | Decoding of low-density parity-check convolutional turbo codes | |
JP2011109228A (en) | Decoding device and method | |
Shanth et al. | Low Complexity Implementation of LDPC Decoder using MIN-Sum Algorithm | |
EP3529900A1 (en) | Construction of ldpc convolutional turbo codes | |
WO2022099708A1 (en) | Efficient decoding of gldpc codes | |
WO2018067027A1 (en) | Rate-adaptive family of qc-ldpc codes | |
Wang et al. | A class of generalized LDPC codes with fast parallel decoding algorithms | |
Shibata et al. | Fixed-symbols-based synchronization for insertion/deletion/substitution channels | |
Baloch et al. | Performance Analysis of LDPC Convolutional Codes | |
Balasubramanian | ITERATIVE DECODING OF SPATIALLY-COUPLED PRODUCT CODES USING GUESSING RANDOM ADDITIVE NOISE DECODING ALGORITHMS | |
Narang et al. | imAGE PRoCEssiNG | |
Ivaniš et al. | Low Density Parity Check Codes | |
Deergha Rao et al. | Low density parity check codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16787578 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16787578 Country of ref document: EP Kind code of ref document: A1 |