The present disclosure relates to Generalized Low-Density Parity-Check (GLDPC) codes for channel coding in digital communication systems. In particular, the present disclosure relates to GLDPC codes which allow for easy encoding.
The modulator 16 may transform the bit sequence IS2 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 10b, the channel output vector CH_OUT may be processed by a demodulator 20 which produces reliability values (e.g., likelihoods, likelihood ratios, or log likelihood ratios) regarding the bit values of the received bit sequence IS3. The generic decoder 14 may use the redundancy in the received bit sequence IS3 in a decoding operation to correct errors and produce a decoded information sequence IS4 which is an estimate of the information sequence IS1.
The encoding operation and the decoding operation may be governed by an LDPC code that defines the redundancy sequence to be added to an information sequence IS1. In other words, an LDPC code provides a rule set to establish a codebook that contains all possible code words to be transmitted through the channel 18. This allows identifying and possibly correcting transmission errors which reveal themselves in received bit sequence IS3 that does not correspond to a code word contained in the codebook established by the LDPC code on which the transmission is based.
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 IS1 of size lxk, a code word IS2 of size lxn and a redundancy (parity) sequence of r=(n−k) bits, the generator matrix G has size k·n, and the parity-check matrix H has size r·n=(n−k)·n. 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:
Gkxn·HnxrT=0
The encoding operation can be performed by means of a multiplication between the information sequence IS1 and the generator matrix Gkxn, wherein the result of the multiplication provides the encoded output sequence IS2 as follows:
IS2=IS1·Gkxn
At the receiving side, due to the orthogonality property between the generator matrix Gkxn and the parity-check matrix Hrxn, the following equation should be satisfied:
Hrxn·IS3T=0
where IS3 is the received information sequence of size lxn. If the above equation is verified, the information signal estimate IS4 is likely to be 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.
For employing an 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 data/parameters defining the generator matrix Gkxn and parity-check matrix Hrxn, respectively. The provided data/parameters may be processed by one or more processors at the encoder 12 or the decoder 14, or the provided data/parameters may be “mapped” to customized hardware such as, for example, one or more application specific integrated circuits (ASICs) and/or one or more field programmable gate arrays (FPGAs), that perform the involved calculations. Moreover, an apparatus configured to determine the data/parameters may be integrated in (or connected to) the generic encoder 12 and/or the generic decoder 14.
Moreover, a parity-check matrix Hrxn 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 parity-check matrix Hrxn of r rows and n columns can be represented by an 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 parity-check matrix Hrxn (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 between the code words (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).
While the above approaches to channel coding such as generalized 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 disclosure to provide for a more efficient forward error correction channel coding technique applicable to the generic digital communications system 10. In this regard, it is noted that some or all of the above-described features may form part of implementation forms of the present disclosure as described in the following
According to a first aspect of the present disclosure, there is provided a system for determining a GLDPC code for forward error correction channel coding, the system being configured to determine 2k parity check matrix columns of size k, label components of a first parity check matrix with n columns and k rows, wherein the first parity check matrix includes the 2k parity check matrix columns of size k, and select Cordaro-Wagner component code check matrices, wherein each of the selected Cordaro-Wagner component code check matrices has two rows which replace one row of the first parity check matrix to derive a second parity check matrix defining the generalized LDPC code, wherein the determining of the 2k parity check matrix columns of size k and the selecting of the Cordaro-Wagner component code check matrices are constrained to 2k parity check matrix columns of size k and Cordaro-Wagner component code check matrices which allow that rows and columns of a parity part consisting of 2k columns of the second parity check matrix which correspond to the 2k parity check matrix columns of size k, can be brought in an order in which the ordered rows and columns form a parity part which has a repeat-accumulate code structure.
In this regard, it is noted that the term “matrix” as used throughout the description and claims in particular refers to a set of (integer) values stored in a (logical) memory array or having assigned row and column indices. 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.
Thus, the structure of the parity part of the first parity check matrix (i.e., the columns of the first parity check matrix corresponding to the redundancy sequence) may be constrained such that the additional freedom in replacing rows of the first parity check matrix with rows of a Cordaro-Wagner component code check matrices can be exploited to achieve (optionally after a column permutation) a repeat-accumulate code structure (triangular form of the parity part of the second parity check matrix).
In a first possible implementation form of the system according to the first aspect, the system is configured to split/duplicate each entry of the 2k parity check matrix columns of size k into a vector of size two, wherein each vector of size two having a non-zero weight requires a corresponding non-zero entry, to determine the 2k columns of the second parity check matrix which correspond to the 2k parity check matrix columns of size k, and can be brought in an order in which the ordered rows and columns form a parity part which has a repeat-accumulate code structure.
Hence, the columns of size k may be expanded by replacing each column entry with a vector of size two such that the parity part formed by the 2k columns of the second parity check matrix has a size of 2k×2k and a triangular form.
In a second possible implementation form of the system according to the first aspect, the system is configured to iteratively label components of n−k unlabeled columns of the first parity check matrix based on a performance measure.
For example, columns of the information part may be iteratively labelled, wherein different labelling options may be compared and an option may be chosen if it leads to a higher girth of the code and/or a higher extrinsic message degree, EMD, or a higher approximated cycle EMD, ACE, of a smallest cycle generated by the option (as compared to other options). Thus, while the parity part may be labelled first and then kept substantially static to allow for easy encoding, the information part (i.e., the columns corresponding to the parity bits) may be labelled for best performance.
In a third possible implementation form of the system according to the first aspect, the system is configured to compare multiple alternatives for labelling different components of the n−k columns with non-zero entries and select one alternative achieving a highest performance score.
Hence, labelling may correspond to iteratively adding edges in the Tanner graph representation, wherein, for example, a progressive edge growth algorithm may be used to label the information part of the first parity check matrix.
In a fourth possible implementation form of the system according to the first aspect, a column of the Cordaro-Wagner component code check matrix is to have zero weight if a corresponding component of the row of the first parity check matrix is zero.
In this regard, it is noted that the vectors of size two may correspond to the columns of the Cordaro-Wagner component code check matrices such that the first parity check matrix may define an interleaver structure for Cordaro-Wagner component code en-/decoding units that correspond to super-check nodes, wherein each super-check node represents two check nodes of the Tanner graph representation of the second parity check matrix.
In a fifth possible implementation form of the system according to the first aspect, each of the 2k parity check matrix columns of size k has weight one or two.
In a sixth possible implementation form of the system according to the first aspect, k−1 parity check matrix columns of size k of the 2k parity check matrix columns of size k have a weight of one and the remaining parity check matrix columns of size k of the 2k parity check matrix columns of size k have weight two.
In a seventh possible implementation form of the system according to the first aspect, the 2k parity check matrix columns of size k are linearly independent.
In an eighth possible implementation form of the system according to the first aspect, selecting the Cordaro-Wagner component code check matrices includes replacing each non-zero entry in a row of the first parity check matrix with a non-zero column of a Cordaro-Wagner component code check matrix, wherein:
The fifth to the eighth possible implementation forms facilitate achieving a repeat-accumulate code structure.
According to a second aspect of the present disclosure, there is provided a method of determining a GLDPC code for forward error correction channel coding, the method comprising determining 2k parity check matrix columns of size k, labeling components of a first parity check matrix with n columns and k rows, wherein the first parity check matrix includes the 2k parity check matrix columns of size k, and selecting Cordaro-Wagner component code check matrices, wherein each of the selected Cordaro-Wagner component code check matrices has two rows which replace a row of the first parity check matrix to derive a second parity check matrix defining the generalized LDPC code, wherein the determining of the 2k parity check matrix columns of size k and the selecting of the Cordaro-Wagner component code check matrices are constrained to 2k parity check matrix columns of size k and Cordaro-Wagner component code check matrices which allow that rows and columns of a parity part consisting of 2k columns of the second parity check matrix which correspond to the 2k parity check matrix columns of size k can be brought in an order in which the ordered rows and columns form a parity part which has a repeat-accumulate code structure.
As indicated above, this constrains the structure of the parity part of the first parity check matrix (i.e., the columns of the first parity check matrix corresponding to the redundancy sequence) such that the additional freedom in replacing rows of the first parity check matrix with rows of a Cordaro-Wagner component code check matrices can be exploited to achieve (optionally after a column permutation) a repeat-accumulate code structure (triangular form of the parity part of the second parity check matrix).
In a first possible implementation form of the method according to the second aspect, the method comprises splitting/duplicating each entry of the 2k parity check matrix columns of size k into a vector of size two, wherein each vector of size two having a non-zero weight requires a corresponding non-zero entry, to determine the 2k columns of the second parity check matrix which correspond to the 2k parity check matrix columns of size k, and can be brought in an order in which the ordered rows and columns form a parity part which has a repeat-accumulate code structure
Hence, as indicated above, the columns of size k may be expanded by replacing each column entry with a vector of size two such that the parity part formed by the 2k columns of the second parity check matrix has a size of 2k×2k and a triangular form.
In a second possible implementation form of the method according to the second aspect, the method comprises iteratively labeling components of n−k unlabeled columns of the first parity check matrix based on a performance measure.
For example, as indicated above, columns of the information part may be iteratively labelled, wherein different labelling options may be compared and an option may be chosen if it leads to a higher girth of the code and/or a higher extrinsic message degree, EMD, or a higher approximated cycle EMD, ACE, of a smallest cycle generated by the option (as compared to other options). Thus, while the parity part may be labelled first and then kept substantially static to allow for easy encoding, the information part (i.e., the columns corresponding to the parity bits) may be labelled for best performance.
In a third possible implementation form of the method according to the second aspect, the method comprises comparing multiple alternatives for labelling different components of the n−k columns with non-zero entries and selecting one alternative achieving a highest performance score.
Hence, as indicated above, labelling may correspond to iteratively adding edges in the Tanner graph representation, wherein, for example, a progressive edge growth algorithm may be used to label the information part of the first parity check matrix.
In a fourth possible implementation form of the method according to the second aspect, a column of the Cordaro-Wagner component code check matrix has zero weight if a corresponding component of the row of the first parity check matrix is zero.
As indicated above, the vectors of size two may correspond to the columns of the Cordaro-Wagner component code check matrices such that the first parity check matrix may define an interleaver structure for Cordaro-Wagner component code en-/decoding units that correspond to super-check nodes, wherein each super-check node represents two check nodes of the Tanner graph representation of the second parity check matrix.
In a fifth possible implementation form of the method according to the second aspect, each of the 2k parity check matrix columns of size k has weight one or two.
In a sixth possible implementation form of the method according to the second aspect, k−1 parity check matrix columns of size k of the 2k parity check matrix columns of size k have a weight of one and the remaining parity check matrix columns of size k of the 2k parity check matrix columns of size k have weight two.
In a seventh possible implementation form of the method according to the second aspect, the 2k parity check matrix columns of size k are linearly independent.
In an eighth possible implementation form of the method according to the second aspect, selecting the Cordaro-Wagner component code check matrices includes replacing each non-zero entry in a row of the first parity check matrix with a non-zero column of a Cordaro-Wagner component code check matrix, wherein:
The fifth to the eighth possible implementation forms facilitate achieving a repeat-accumulate code structure.
As noted above, the determined GLDPC code may be used for forward error correction in the system 10 of
The following provides a non-limiting example of a procedure for determining a GLDPC code for forward error correction. The procedure as well as procedures involving the usage of the determined GLDPC code may be implemented by hardware, software, or a combination of hardware and software. For example, the procedure of determining the GLDPC code may be automatically carried-out by a computer comprising a processor which carries out machine-readable instructions persistently stored on a machine-readable medium. Moreover, procedures involving the usage of the determined GLDP code, such as encoding/decoding an information sequence IS1 may be automatically carried-out by the system 10 which may have been designed or configured in accordance with the determined GLDPC code.
As shown in
At step 24, the procedure may be continued with labelling components of the first parity check matrix 30 with n columns and k rows, wherein the first parity check matrix 30 includes the 2k parity check matrix columns of size k. As shown in
At step 26, Cordaro-Wagner component code check matrices may be selected, wherein each of the selected Cordaro-Wagner component code check matrices has two rows which replace a row of the first parity check matrix to derive a second parity check matrix defining the generalized LDPC code. For example, as indicated in step 36 of
As shown in in
may be chosen such that, after replacing the rows of the first parity check matrix with rows of a Cordaro-Wagner component code, an extended irregular repeat-accumulate (EIRA) code can be obtained.
Replacing may start at the first row of H2EIRA which has the following entries:
By replacing the entries with vectors of size two using
two rows of a generalized EIRA (GEIRA) code may be maintained, wherein the rows have the entries
The second row of the parity part H2EIRA which has
with another two rows of the GEIRA code having
as entries. The third row of the parity part H2EIRA which has
with another two rows of the GEIRA code having
as entries. The fourth row of the parity part H2EIRA which has
with another two rows of the GEIRA code having
as entries. The fifth row of the parity part H2EIRA which has
with another two rows of the GEIRA code having
as entries. The parity part of the second parity check matrix may thus be
After reordering the columns in accordance with
and reordering the rows in accordance with
an EIRA structure may be obtained:
In this regard, it is noted that although the procedure is described in relation to a specific example of size 5×10, codes of other sizes may be generated analogously:
Heretofore:
respectively.
respectively.
Once, the EIRA structure has been obtained, encoding may be performed as described in U.S. Pat. No. 7,627,801 B2 or in EP 1,816,750 A1.
Moreover, decoding may be performed as described in EP 1,816,750 A1.
This application is a continuation of International Application No. PCT/RU2017/000522, filed on Jul. 13, 2017, the disclosure of which is hereby incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
7116710 | Jin et al. | Oct 2006 | B1 |
7421032 | Jin et al. | Sep 2008 | B2 |
7627801 | Jin et al. | Dec 2009 | B2 |
7916781 | Jin et al. | Mar 2011 | B2 |
8284833 | Jin et al. | Oct 2012 | B2 |
20110219286 | Kamiya | Sep 2011 | A1 |
20120210189 | Sugihara et al. | Aug 2012 | A1 |
Number | Date | Country |
---|---|---|
1499731 | May 2004 | CN |
102891686 | Jan 2013 | CN |
104868926 | Aug 2015 | CN |
1816750 | Aug 2007 | EP |
Entry |
---|
Guneri et al., Structure and Performance of Generalized Quasi-Cyclic Codes. Feb. 1, 2017, OS.IT pp. 1-19 (Year: 2017). |
Kumar et al., A detailed study on LDPC encoding techniques. 2018, WHIOCE publishing, pp. 1-5 (Year: 2018). |
Zhang et al., “A Class of Efficient-Encoding Generalized Low-Density Parity-Check Codes,” 2001 IEEE International Conference on Acoustics, Speech, and Signal Processing, Proceedings (Cat. No. 01CH37221), pp. 2477-2480, Institute of Electrical and Electronics Engineers, New York, New York (May 2001). |
Tanner “A Recursive Approach to Low Complexity Codes,” IEEE Transactions on Information Theory, vol. IT-27, No. 5, pp. 533-547, Institute of Electrical and Electronics Engineers, New York, New York (Sep. 1981). |
Richardson et al., “Efficient Encoding of Low-Density Parity-Check Codes,” IEEE Transactions on Information Theory, vol. 47, No. 2, pp. 638-656, Institute of Electrical and Electronics Engineers, New York, New York (Feb. 2001). |
Liu et al., “On LDPC Code Ensembles with Generalized Constraints,” 2017 IEEE International Symposium on Information Theory (ISIT), pp. 371-375, Institute of Electrical and Electronics Engineers, New York, New York (Jun. 2017). |
Lentmaier et al., “On Generalized Low-Density Parity-Check Codes Based on Hamming Component Codes,” IEEE communications Letters, vol. 3, No. 8, pp. 248-250, Institute of Electrical and Electronics Engineers, New York, New York (Aug. 1999). |
Yang et al., “Design of Efficiently Encodable Moderate-Length High-Rate Irregular LDPC Codes,” IEEE Transactions on Communications, vol. 52, No. 4, pp. 564-571, Institute of Electrical and Electronics Engineers, New York, New York (Apr. 2004). |
Xie et al., “Design of Efficiently-Encodable Generalized LDPC Codes,” 2010 IEEE International Conference on Communications, Total 5 pages, Institute of Electrical and Electronics Engineers, New York, New York (May 2010). |
Poulliat et al., “Design of Regular (2, dc)-LDPC Codes over GF(q) Using Their Binary Images,” IEEE Transactions on Communications, vol. 56, No. 10, pp. 1626-1635, Institute of Electrical and Electronics Engineers, New York, New York (Oct. 2008). |
Cordaro et al., “Optimum (n, 2) Codes for Small Values of Channel Error Probability (Correspondence),” IEEE Transactions on Information Theory, vol. 13, No. 2, pp. 349-350, Institute of Electrical and Electronics Engineers, New York, New York (Apr. 1967). |
Number | Date | Country | |
---|---|---|---|
20200153457 A1 | May 2020 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/RU2017/000522 | Jul 2017 | US |
Child | 16741199 | US |