The present invention relates to a method of generating check matrixes for Low-Density Parity-Check (hereinafter, “LDPC”) codes that are applied in an encoder as error correction codes.
At the sending side, the encoder 101 generates a check matrix H using a certain method. Then, a generator matrix G is derived from the following condition.
G: k×n matrix (where k is information-length and n is code-word length)
GHT=0 (where T is transposition)
The encoder 101 then receives a message (m1 m2 . . . mk) of an information-length k, and generates a code-word C using the generator matrix G as follows:
The modulator 102 subjects the generated code-word C to digital modulation such as BPSK, QPSK or multi-valued QAM and transmits the resultant modulated signal.
At the receiving side, the demodulator 104 receives the modulated signal via the channel 103, and subjects it to a digital demodulation such as BPSK, QPSK or multi-valued QAM. The decoder 105 then subjects the LDPC-coded, demodulated result to an iterative decoding by “Sum-Product Algorithm” and provides an estimated result (corresponding to the original m1 m2 . . . mk).
Conventionally, check matrixes for the LDPC codes are generated as explained below. The check matrix proposed by Gallager, the proposer of the LDPC, is shown in
This matrix is a binary matrix of “1” and “0”. Parts of “1” are hatched and parts of “0” are white. There are four “1”s in one row (hereinafter, “row weight”), and there are three “1”s in one column (hereinafter, “column weight”). All columns and rows have respective uniform weights. Thus, it is generally called “Regular-LDPC Code”. In the Gallager's codes, as shown in
Because the random permutation has no certain rule, it is required to execute a time-consuming search by computer to find codes with a better characteristic.
Euclid geometric codes are such LDPC codes that exhibit a relatively stable and nice characteristic and can definitely generate a matrix without the use of the computer search. Y. Kou et al. (Y. Kou, S. Lin, and M. P. C. Fossorier, “Low Density Parity Check Codes Based on Finite Geometries: A Rediscovery,” ISIT 2000, pp. 200, Sorrento, Italy, Jun. 25 to 30, 2000.) have proposed a method using such Euclid geometric codes. This method explains “Regular-LDPC Codes” consisting of regular ensembles.
A method of generating a check matrix for LDPC codes is herein proposed using Euclid geometric codes EG(2, 26) or a kind of finite geometric codes. This method achieves a characteristic that is located closely but 1.45 decibels away from the Shannon limit at an error rate of 10-4.
Euclid geometric codes EG(m, 2s) have a characteristic defined as follows:
As can be seen from
The check matrix generating method by Y. Kou et al. further includes changing row and column weights based on the Euclid geometric codes to extend rows and columns, if required. For example, when a column weight in EG(2, 22) is separated into halves, in the paper by Y. Kou et al., every other one of four weights located in one column is separated into two groups.
On the other hand, Ludy et al. (M. G. Luby, M. Mitzenmacher, M. A. Shokrollahi, and D. A. Spielman, “Improved Low-Density Parity-Check Codes Using Irregular Graphs and Belief Propagation,” Proceedings of 1998 IEEE International Symposium on Information Theory, pp. 171, Cambridge, Mass., Aug. 16 to 21, 1998.) have reported that “Irregular-LDPC Codes” have a better characteristic than that of “Regular-LDPC Codes”. The “Irregular-LDPC Codes” represent such LDPC codes that have non-uniformity in either or both of row and column weights.
Richardson et al. (T. J. Richardson and R. Urbanke, “The capacity of low-density parity-check codes under message-passing decoding,” IEEE Trans. Inform. Theory, vol. 47, No. 2, pp. 599 to 618, February 2001.) have analyzed it theoretically as well as Chung et al. (S.-Y. Chung, T. J. Richardson, and R. Urbanke, “Analysis of Sum-Product Decoding of Low-Density Parity-Check Codes Using a Gaussian Approximation,” IEEE Trans. Inform. Theory, vol. 47, No. 2, pp. 657 to 670, February 2001.)
In particular, Chung et al. analyze a “Sum-Product Algorithm” for LDPC codes, on the assumption that a Log Likelihood Ratio (hereinafter, “LLR”) between an input and an output at an iterative decoder can be approximated in a Gaussian distribution, to derive a nice ensemble of row and column weights.
In the conventional method of generating check matrixes for LDPC codes by Chung et al., however, the number of “1” points in a row (corresponding to a degree distribution of variable nodes later described) and the number of “1” points in a column (corresponding to a degree distribution of check nodes later described) are both employed as variables to derive the degree distribution of variable nodes and the degree distribution of check nodes that can maximize the following equation (1) (rate: coding rate). In a word, a linear programming is employed to search an ensemble that minimizes a Signal to Noise Ratio (hereinafter, “SNR”).
Therefore, a problem arises because a check matrix derived from the maximum of the “rate” has a flux and unstable characteristic. In addition, the conventional method of generating check matrixes for LDPC codes iteratively executes the derivation of the degree distribution of variable nodes and the derivation of the degree distribution of check nodes over certain times. Therefore, a problem arises because it takes time to some extent for searching.
It is an object of the present invention to solve at least the problems in the conventional technology.
The method according to the present invention is a method of generating check matrixes for LDPC codes to derive a threshold of SNR that makes an error 0 by analyzing a “Sum-Product Algorithm” for Low-Density Parity-Check codes, on the assumption that a Log Likelihood Ratio between input/output data at a decoder can be approximated in a Gaussian distribution. The method includes fixing a coding rate; obtaining an optimal ensemble, which is an ensemble that minimizes the threshold of SNR, of row and column weights in one linear programming to maximize a Gaussian noise; and generating a check matrix for LDPC codes in accordance with the ensemble obtained.
The other objects, features and advantages of the present invention are specifically set forth in or will become apparent from the following detailed descriptions of the invention when read in conjunction with the accompanying drawings.
Exemplary embodiments of methods of generating check matrixes for LDPC codes according to the present invention will be explained below with reference to the accompanying drawings. It should be noted that the embodiments are not intended to limit the invention.
Prior to explanation of the method of generating check matrixes for LDPC codes according to the present embodiment, the position of an encoder capable of achieving the method is explained first together with the conventional method of generating check matrixes for “Irregular-LDPC Codes”. The LDPC encoding/decoding system has the same configuration as that previously explained in
At the sending side, the encoder 101 generates a check matrix H using the method of generating check matrixes for LDPC codes according to the present embodiment later described. Then, a generator matrix G is derived from the following condition.
G: k×n matrix (where k is information-length and n is code-word length)
GHT=0 (where T is transposition)
The encoder 101 then receives a message (m1 m2 . . . mk) of an information-length k, and generates a code-word C using the generator matrix G.
The modulator 102 subjects the generated code-word C to digital modulation such as BPSK, QPSK or multi-valued QAM and transmits the resultant modulated signal.
At the receiving side, the demodulator 104 receives the modulated signal via the channel 103, and subjects it to a digital demodulation such as BPSK, QPSK or multi-valued QAM. The decoder 105 then subjects the LDPC-coded, demodulated result to an iterative decoding by “Sum-Product Algorithm” and provides an estimated result (corresponding to the original m1 m2 . . . mk).
Chung et al. (S. -Y. Chung, T. J. Richardson, and R. Urbanke, “Analysis of Sum-Product Decoding of Low-Density Parity-Check Codes Using a Gaussian Approximation,” IEEE Trans. Inform. Theory, vol. 47, No. 2, pp. 657 to 670, February 2001.) have theoretically analyzed the conventional method of generating check matrixes for “Irregular-LDPC Codes” . The method is explained here in detail. In this method, a “Sum-Product Algorithm” for LDPC codes is analyzed, on the assumption that a Log Likelihood Ratio (LLR) between an input and an output at an iterative decoder can be approximated in a Gaussian distribution, to derive a nice ensemble of row and column weights.
The method of generating check matrixes for LDPC Codes described in the paper, or Gaussian Approximation, has a premise that defines a point of “1” on a row as a variable node and a point of “1” on a column as a check node in the check matrix.
LLR message propagation from a check node to a variable node is analyzed first. The following equation (2) is defined on condition that 0<s<∞ and 0≦t<∞. In this case, s=mu0 denotes a mean of u0; u0 a Log Likelihood Ratio (LLR) associated with a signal received via a channel containing a Gaussian noise of distributed value σn2; and t an ensemble average of LLR output values at check nodes at the time of certain iteration.
λ(x) and ρ(x) respectively denote generator functions of degree distribution associated with variable nodes and check nodes, and can be represented by the equations (3) and (4). (A degree is expressed as the number of “1”s in each row and each column of variable nodes and check nodes). In addition, λi and ρi respectively denote ratios of edges belonging to variable nodes and check nodes at a degree of i. Finally, dl denotes a degree of maximum variable nodes, and dr a degree of maximum check nodes.
φ(x) is defined as the following equation (5):
The equation (2) can be represented equivalently by the following equation (6):
tl=f(s,tl−1) (6)
where tl denotes an ensemble average of LLR output values on check nodes at the time of the l-th iteration.
A condition required for deriving an SNR limit (threshold) that provides an error with a value of 0 includes t1(s)→∞ (expressed as R+) when 1→∞. In order to satisfy this condition, it is required to satisfy the following conditional expression (7):
t<f(s,t), all tεR+ (7)
LLR message propagation from a check node to a variable node is analyzed next. The following equation (8) is defined on condition that 0<s<∞ and 0<r≦1. In this case, r has an initial value r0 of φ(s).
The equation (8) can be represented equivalently by the following equation (9):
rl=h(s,rl−1) (9)
A condition required for deriving an SNR limit (threshold) that provides an error with a value of 0 includes rl(s)→0. In order to satisfy this condition, it is required to satisfy the following conditional expression (10):
r<h(s,r), all rε(0,φ(s)) (10)
In the paper by Chung et al., optimal degrees are searched for variable nodes and check nodes using the above equation in the following procedure:
A problem is found in the paper of Chung et al. because a check matrix derived from the maximum of the “rate (coding rate)” is flux. Such the check matrix is not suitable for practical design because the rate fixed in design as a spec varies. In addition, the Gaussian Approximation iteratively executes the derivation of the degree distribution associated with variable nodes and the derivation of the degree distribution associated with check nodes over certain times. Therefore, a problem arises because it takes a time to some extent for searching.
The present invention provides a method to search easily and in a short time a definite and characteristic-stabilized check matrix for “Irregular-LDPC Codes”.
In step S1, it is assumed that the “rate” is given. That is, a requisite “rate” is fixed because a target “rate” is often designated previously in practical design.
In step S2, a generator function λ(x) and a generator function ρ(x) are simultaneously used as variables, and a linear programming is employed to search optimal generator functions λ(x) and ρ(x) that maximize the Gaussian noise σn. A constraint condition associated with this search includes normalization to λ(1)=1, ρ(1)=1 and satisfaction of the equation (10).
Thus, the linear programming is employed once to find such generator functions λ(x) and ρ(x) that satisfy the equations (9) and (10). Therefore, it is possible to search a definite and characteristic-stabilized check matrix for LDPC codes more easily in a shorter time than the method described in the paper that iteratively executes derivation of the generator functions λ(x) and ρ(x) to derive both optimal values.
The method of generating check matrixes for LDPC codes according to a second embodiment of the present invention applies Euclid geometric codes in the first embodiment and divides arrangement of “1”s on one row or one column to generate a check matrix for “Irregular-LDPC Codes”.
The method of generating check matrixes for “Irregular-LDPC Codes” in the first embodiment is employed first to derive an ensemble of generator functions λ(x) and ρ(x).
It is assumed that reference Euclid geometric codes are expressed as EG(2, 25), and dl=32. A value of x in the weight distribution λx and a value of x in the weight distribution ρx are determined as those that can configure 32(dl) in combination.
Prior to such the dividing process, the weight distributions in the ensemble of generator functions λ(x) and ρ(x) shown in
A procedure of dividing one row or one column in Euclid geometric codes is explained next.
The paper of Y. Kou et al. proposes to perform the dividing based on certain rules.
Sm(n)=Bl(m+4*n) (12)
where m=1, 2, 3, 4; n=0, 1, 2, 3, 4, 5, 6, 7; and l denotes a column number in EG(2, 25). Bl(x) denotes a position of “1” on the l-th column in EG(2, 25), and Sm(n) a position of “1” on the m-th column in the divided matrix.
Specifically, a row number indicative of a position of “1” on a row in EG(2, 25) is represented by:
On the other hand, in the dividing procedure according to the present embodiment, Euclid geometric codes are not divided regularly as described above. Rather, a number indicative of “1” is extracted from Bl(x) at random. Any extracting process may be applied so long as it can retain randomness.
Accordingly, on the m-th column in the divided matrix, an exemplary position of “1”, Rm(n), is represented by:
The dividing procedure of the present embodiment can be expressed on a graph as follows.
Characteristics of the LDPC codes previously described are compared below.
“Simple regular extended EG(2,25) correspond to “Regular-LDPC Codes” with rate=0.5 when a regular column division in EG(2,25) proposed by Y. Kou et al. is performed. “Random regular extended EG(2,25) correspond to “Regular-LDPC Codes” with rate=0.5 when a random column division in EG(2,25) according to the present embodiment is performed.
“Irregular-LDPC Codes” with rate=0.5 when a regular column division in EG(2,25) proposed by Y. Kou et al. is performed to the ensemble specified in the method of the first embodiment. “Random irregular extended EG(2,25) correspond to “Irregular-LDPC Codes” with rate=0.5 when a random column division in EG(2,25) according to the present embodiment is performed to the ensemble specified in the method of the first embodiment.
As can be seen from
An example of the random division is detailed next. A random sequence is generated easily and definitely for the random division. This method has an advantage because the sending side and the receiving side can generate the same random sequence. This is extremely important in a practical system. There is another advantage because a condition associated with code characteristics can be defined correctly.
(1) Creation of basic random sequences:
An example of random sequence creation is described below using Euclid geometric codes EG(2,24) for convenience of explanation. In Euclid geometric codes EG(2,24), the number of “1”s present in a row is equal to 24.
When P is used for the minimum prime number that satisfies P≧2s, for example, P=17 in the case of 24. A basic random sequence C(i) with a sequence length, P−1=16, is created in accordance with the equation (13):
C(1)=1
C(i+1)=G0×C(i)mod P (13)
where i=1, . . . , P−1; and G0 denotes an original source of Galois Field GF(P). As a result, C(i) is represented by:
The random sequence C(i) is then cyclically shifted to generate a Latin square of random sequences.
(2) Using the Latin square of random sequences, from an arrangement B1(x) with a row number indicative of a position of “1” on the 1st column in Euclid geometric codes EG(2,24), a number indicative of “1” is extracted at random to divide the 1st column in Euclid geometric codes. The arrangement B1(x) is represented by:
For example, if the 1st column in Euclid geometric codes is divided into four (such that each column has a weight of 4), four random sequences L1(n) to L4(n) are extracted from the 1st row in the Latin square of random sequences.
Using the four random sequences L1(n) to L4(n), a number indicative of “1” is extracted from the arrangement B1(x) at random. As a result, R(L1(n)) to R(L4(n)) are given as:
For example, if the 2nd column in Euclid geometric codes is divided into four (such that each column has a weight of 4), four random sequences L1(n) to L4(n) are extracted from the 2nd row in the Latin square of random sequences.
Using the four random sequences L5(n) to L8(n), a number indicative of “1” is extracted from the arrangement B2(x) at random. As a result, R(L5(n)) to R(L8(n)) are given as:
Another method of creating a Latin square of random sequences is explained next using Euclid geometric codes EG(2,25) for convenience of explanation. In Euclid geometric codes EG(2,25), the number of “1”s present in a row is equal to 25.
In the previous example of EG(2,24), the created Latin square of 16 (rows)×16 (columns) may lack in random sequences. In the present example of EG(2,25), it is extended to 32 (rows)×960 (columns). This matrix has a size determined by 30 sets of Latin squares of 32 (rows)×32 (columns) arranged in the column direction.
In the previous example, P is used for the minimum prime number that satisfies P≧2s. In the present example, P is used for the maximum prime number that satisfies P≧2s. For example, P=31 in the case of 25.
A basic random sequence C(i) with a sequence length, P=31, is created in accordance with the equation (14):
C(1)=0
C(i+1)=G0×C(i)mod P (14)
where i=1, . . . , P−1; and G0 denotes an original source of Galois Field GF(P). As a result, C(i) is represented by:
The following operation is given next.
C(i)=C(i)+1,C(32)=32
As a result, C(i) is represented by:
The following explanation is given to a method of reading the random sequence of C(i) at a certain interval, S(j), where j=1, 2, . . . , P−1, with possible P−1 variations. In this case, P−1=30.
If a sequence LBj(i) is given for reading the random sequence at a certain interval, then
This example lacks integers of 1 and P through 2s for the sequence number of random sequences, 32. In this case, integers of 1 and 32 are lacked. Then,
Now, creation of a Latin square is started. Ljq(i) denotes a sequence on the q-th column in the j-th Latin square. If Ljq(i)=LBj(i), then
This random sequence L11 (i) is cyclically shifted to create a Latin square L1q(i) of 32 (rows)×32 (columns). In the similar procedure, Latin squares L2q(i), L3q(i), . . . , L30q(i) are created to produce a combination of Latin squares, 32 (rows)×(32×30) (columns).
A specific example is explained below. From an arrangement B1(x) with a row number indicative of a position of “1” on the 1st column in Euclid geometric codes EG(2, 25), a number indicative of “1” is extracted at random to decompose the 1st column in Euclid geometric codes. The arrangement B1(x) is represented by:
For example, if the 1st column in Euclid geometric codes is divided into four (such that each column has a weight of 8), four random sequences L1(n) to L4(n) are extracted from the 1st column in the 1st Latin square in the combination of Latin squares of random sequences, Ljq(i).
Using the four random sequences L1(n) to L4(n), a number indicative of “1” is extracted from the arrangement B1(x) at random. As a result, R(L1(n)) to R(L4(n)) are given as:
As explained above, according to one aspect of the present invention, the generator function λ(x) and the generator function ρ(x) are calculated in one linear programming. Therefore, it is possible to search definite and characteristic-stabilized check matrix for LDPC codes more easily and speedily than the method described in the paper that iteratively executes derivation of the generator functions λ(x) and ρ(x) to derive both optimal values.
Moreover, the better characteristics are obtained than “Regular-LDPC Codes” at the same rate. The regular division can not allow a larger improvement even with “Irregular-LDPC Codes”. In contrast, the random division can remarkably improve performance.
Furthermore, a weight distribution is adjusted such that the total weight number of weight units is equal to an integer, and a sum of the total weight numbers of weight units is equal to the total number of “1”s in Euclid geometric codes. This realizes more accurate dividing process.
Moreover, the sending side and the receiving side can generate the same random sequence. Also, a condition associated with code characteristics can be defined correctly through creation of a Latin square of random sequences.
Moreover, the sending side and the receiving side can generate the same random sequence. Also, a condition associated with code characteristics can be defined correctly through creation of a plurality of Latin squares of random sequences.
As obvious from the forgoing, the method of generating check matrixes for LDPC codes according to the present invention is effective as an error control technology for a LDPC encoding/decoding system that employs LDPC codes. In particular, it is suitable for an encoder for generating definite and characteristic-stabilized “Irregular-LDPC codes” and a communication device equipped with the encoder.
Number | Date | Country | Kind |
---|---|---|---|
2001-397922 | Dec 2001 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP02/13518 | 12/25/2002 | WO | 00 | 12/31/2003 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO03/056705 | 7/10/2003 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6307487 | Luby | Oct 2001 | B1 |
6567465 | Goldstein et al. | May 2003 | B2 |
6614366 | Luby | Sep 2003 | B2 |
6757122 | Kuznetsov et al. | Jun 2004 | B1 |
6789227 | De Souza et al. | Sep 2004 | B2 |
Number | Date | Country |
---|---|---|
1258999 | Nov 2002 | EP |
1 480 346 | Nov 2004 | EP |
1 526 647 | Apr 2005 | EP |
2001-168733 | Jun 2001 | JP |
Number | Date | Country | |
---|---|---|---|
20040186992 A1 | Sep 2004 | US |