The present invention relates to an encoding technology in digital communications, in particular to a check-matrix generating method of generating an LDPC (parity check matrix for low-density parity check) code, an encoding method of encoding predetermined data bits using the parity check matrix, and a communication apparatus.
Hereinafter, a conventional communication system that employs an LDPC code as an encoding system will be explained. Here, a case in which quasi-cyclic (QC) codes (see Non-patent Document 1) are employed as an example of the LDPC codes will be explained.
First, a flow of encoding/decoding processing in the conventional communication system that employs the LDPC codes as the encoding system will be explained briefly.
An LDPC encoder in a communication apparatus on a transmission-side (it is called a transmission apparatus) generates a parity check matrix H by a conventional method that will be explained below. Further, the LDPC encoder generates, for example, a generator matrix G with K-row×N-column (K: data length, N: code length). Note that when the parity check matrix for LDPC is defined as H (M-row×N-column), the generator matrix G will be a matrix that satisfies GHT=0 (T is a transposed matrix).
Thereafter, the LDPC encoder receives messages (m1, m2, . . . , mK) with the data length K to generate a code C as represented by following Equation (1) using these messages and the generator matrix G, where H (c1, c2, cN)T=0.
A modulator in the transmission apparatus then performs digital modulation to the code C generated by the LDPC encoder according to a predetermined modulation system, such as BPSK (binary phase shift keying), QPSK (quadrature phase shift keying), multi-value QAM (quadrature amplitude modulation), and transmits a modulated signal x=(x1, x2, . . . xN) to a reception apparatus.
Meanwhile, in a communication apparatus on a reception-side (which is called a reception apparatus), a demodulator performs digital demodulation to a received modulated signal y=(y1, y2, . . . yN) according to the modulation system such as BPSK, QPSK, multi-value QAM, or the like, and an LDPC decoder in the reception apparatus further performs repetition decoding to demodulated results based on a “sum-product algorithm” to thereby output the decoded results (corresponding to the original messages m1, m2, . . . , mK).
The conventional parity check-matrix generating method for the LDPC codes will now be explained concretely. As the parity check matrix for the LDPC codes, a following parity check matrix of QC codes is proposed, for example, in following Non-patent Document 1 (see
Generally, a parity check matrix HQC of the (J, L) QC codes with M (=pJ) rows×N (=pL) columns can be defined as following Equation (2). Incidentally, p is an odd prime number (other than 2), L is the number of cyclic permutation matrices in the parity check matrix HQ, in a transverse direction (column direction), and J is the number of cyclic permutation matrices in the parity check matrix HQC in a longitudinal direction (row direction). [Numerical Expression 1]
Where, in 0≦j≦J−1 and 0≦l≦L−1, I(pj,l) are cyclic permutation matrices in which positions of a row index: r (0≦r≦P−1), and a column index: “(r+pj,l)mod p” are “1”, and other positions are “0”.
In addition, when the LDPC codes are designed, performance degradation generally occurs when there are many loops with a short length, and thus it is necessary to increase an internal diameter and to reduce the number of loops with the short length (loop 4, loop 6, or the like).
Incidentally,
Meanwhile, in following Non-patent Document 1, a range of an internal diameter g in the parity check matrix HQC of (J,L) QC-LDPC codes is given by “4≦g≦12 (where g is an even number)”. However, it is easy to avoid g=4 and, and it results in g≧6 in many cases.
Non-patent Document 1: M. Fossorier, “Quasi-Cyclic Low Density Parity Check Code”, ISIT2003, p. 150, Japan, Jun. 29-Jul. 4, 2003.
According to the conventional technology, however, a plurality of totally different check matrices is required to change encoding rates, so that there are problems that a memory amount is increased and a circuit becomes complicated.
The present invention has been made to solve the above-mentioned problems, and it is an object of the present invention to obtain a communication apparatus capable of generating an irregular (weights of a row and a column are nonuniform) parity check matrix for LDPC codes that can deal with a wide range of encoding rates, and also capable of reducing the circuit scale as compared with the conventional technology.
To solve the above problems and to achieve the object, a check-matrix generating method according to the present invention is for generating a parity check matrix for an LDPC (low-density parity check) code. The check-matrix generating method includes a quasi-cyclic matrix generating step of generating a regular (weights of a row and a column are uniform) quasi-cyclic matrix in which cyclic permutation matrices are arranged in a row direction and a column direction and specific regularity is given to the cyclic permutation matrices; a mask-matrix generating step of generating a mask matrix capable of supporting a plurality of encoding rates, for making the regular quasi-cyclic matrix into irregular (weights of a row and a column are nonuniform); a masking step of converting a specific cyclic permutation matrix in the regular quasi-cyclic matrix into a zero-matrix using a mask matrix corresponding to a specific encoding rate to generate an irregular masking quasi-cyclic matrix; and a check-matrix generating step of generating an irregular parity check matrix with an LDGM (low-density generation matrix) structure in which the masking quasi-cyclic matrix and a matrix in which the cyclic permutation matrices are arranged in a staircase manner are arranged in a predetermined location. In the regular quasi-cyclic matrix, a specific regularity of “pj,l=(((pA−p0,1) (j+1))mod pA) mod p” is provided to pj,l of cyclic permutation matrices I(pj,l) with p-row×p-column arranged at a row index j (0≦j≦J−1) and a column index 1 (0≦l≦L−1) (I(pj,l) are cyclic permutation matrices in which positions of a row index: r (0≦r≦p−1) and a column index: “(r+pj,l)mod p” are “1” and other positions are “0”).
According to the present invention, there is an effect that it is possible to generate an irregular check matrix for the LDPC codes capable of dealing with a wide range of encoding rates.
Hereinafter, embodiments of a check-matrix generating method according to the present invention will be explained in detail based on the drawings. Incidentally, the present invention is not limited by these embodiments.
Here, a flow of encoding processing and decoding processing in the communication system that employs LDPC codes will be explained briefly.
The LDPC encoder 1 in the transmission apparatus generates a parity check matrix generated by a check-matrix generating method according to the present embodiment, namely, a parity check matrix HM with M-row×N-column to which masking processing is performed based on a predetermined masking rule described below.
Thereafter, the LDPC encoder 1 receives a message (u1, u2, . . . , uK) with data length K to generate a code v with a length N using this message and the parity check matrix HM as represented by following Equation (3). It should be noted that in the present embodiment, the encoding processing of data bits is performed without using the generator matrix G (K: data length, N: code length) calculated in the conventional technology.
v={(v1,v2, . . . , vN)εGF(2)(v1,v2, . . . , vN)HMT=0} (3)
The modulator 2 in the transmission apparatus then digital-modulates the code v generated by the LDPC encoder 1 according to a predetermined modulation system, such as BPSK, QPSK, and multi-value QAM, and transmits the modulated signal x=(x1, x2, . . . , xN) to the reception apparatus to a communication channel 3.
Meanwhile, in the reception apparatus, the demodulator 4 digital-demodulates a modulated signal y=(y1, y2, . . . , yN) received via the communication channel 3 according to a modulation system, such as the BPSK, QPSK, and multi-value QAM, and the LDPC decoder 5 in the reception apparatus further performs repetition decoding with a well-known decoding algorithm to thereby output the decoded result (corresponding to the original message u1, u2, . . . , uK)
Subsequently, the check-matrix generating method according to the present embodiment will be explained in detail. Incidentally, in the present embodiment, it is supposed that an irregular (weight distribution is nonuniform) parity check matrix is generated, and it is premised that an LDGM (low-density generation matrix) structure is employed as the structure. Moreover, check matrix generation processing of each embodiment explained hereinafter may be performed by the LDPC encoder 1 in the communication apparatus, or may be performed in advance outside the communication apparatus. When it is performed outside the communication apparatus, the generated check matrix is stored in an internal memory.
First, a parity check matrix HQCL of QC-LDPC codes with the LDGM structure, which is a premise for the irregular parity check matrix HM after the masking processing and is generated by the check matrix generation processing of the present embodiment, will be defined.
For example, the parity check matrix HQCL (=[hm,n]) of the QC-LDPC codes with the LDGM structure of M (=pJ) rows×N (=pL+pJ) columns can be defined as following Equation (4-1).
Here, hm,n represents an element at a row index m and a column index n in the parity check matrix HQCL. Additionally, in 0≦j≦J−1 and 0≦l≦L−1, I(pj,l) are cyclic permutation matrices in which positions of a row index: r (0≦r≦p−1), and a column index: “(r+pj,l)mod p” are “1”, and other positions are “0”. For example, I (1) can be represented as following Equation (4-2).
In the parity check matrix HQCL, a left-hand side matrix (a portion corresponding to data bits) is a quasi-cyclic matrix HQC that is the same as the parity check matrix of QC codes shown by Equation (2), and a right-hand side matrix (a portion corresponding to parity bits) is a matrix HT or HD in which I (0) are arranged in a staircase manner as shown in following Equation (5-1) or Equation (5-2).
However, the cyclic permutation matrices used in the staircase structure are not necessarily limited to I (0), but may be a combination of arbitrary I (s|sε[0, p−1]).
Note that, the LDGM structure means a structure in which a part of the parity check matrix is formed into a lower triangular matrix as the matrix shown in Equation (4-1). Encoding can be achieved easily by using this structure without using the generator matrix G. For example, when the systematic code v is represented as following Equation (6), and the information message u=(u1, u2, . . . , uK) is given, parity elements pm=(p1, p2, . . . , pM) are generated so that “HQCL·vT=0” may be satisfied, namely as following Equation (7).
where N=K+M.
Further, in the present embodiment, a specific regularity is provided in the parity check matrix HQCL Of the QC-LDPC codes with the LDGM structure defined as Equation (4-1). Specifically, in the quasi-cyclic matrix HQC portion on the left-hand side of the parity check matrix HQCL, if p0,1 is set to an arbitrary integer, a specific regularity is provided to pj,l of the cyclic permutation matrices I(pj,l) with p-row×p-column arranged at a row index j (=0, 1, 2, . . . J−1) and a column index l (=0, 1, 2, . . . L−1) so as to satisfy following Equation (8-1), following Equation (8-2), following Equation (8-3), or following Equation (8-4).
p
j,l
=p
0,1(j+1)mod p (8-1)
p
j,l=(p0,1(j+1)mod pA)mod p (8-2)
p
j,l=((p−p0,1)(j+1))mod p (8-3)
p
j,l=((pA−p0,1) (j+1))mod pA)mod p pA=157 p: prime number (8-4)
Incidentally, since the Equation (8-1) and Equation (8-2) are functions of p0,1, j, and p, there is a feature that if only positions of columns of “1” at a first row of the cyclic permutation matrices are determined, positions of “1” at other rows can also be determined through calculation. However, the data length is determined by k=p×L, and thus p needs to be changed when the data length is changed. Values of pj,l at the second row and thereafter of the cyclic permutation matrices vary by the value of p, and the number of small loops thereby increases in a loop distribution, which may cause the performance to be degraded. For example, if the value of p is small, the number of small loops increases. Meanwhile, the Equation (8-3) and Equation (8-4) are functions of p0,1, j, p, and pA. The pA may be an arbitrary value, however, determination is desirably made to obtain the most satisfactory performance upon MAX data length that is required by the system. The maximum value determined by dividing the MAX data length by a fixed value L is set to pA, and the most excellent performance is thereby obtained. The Equation (8-3) and Equation (8-4) use p0,1 which is searched for so that the small loops are reduced to an amount as small as possible in P=pA in the Equation (8-1) and Equation (8-2), and as a result of this, values of pj,l at rows other than the first row are important to form small loops. Consequently, the Equation (8-3) and Equation (8-4) are equations in which the value of pj,l in p=pA is maintained as much as possible and pj,l is changed only when pj,l is p or more which is decided by the data length. In this case, pj,l is only partially changed, and this has an effect of decreasing the probability of degradation. Further, “pA=157” is a value when the data length K=p×L (L=36) is assumed to be around 5000 to 6000.
For example, if pA=157 and L=36 using the Equation (8-4), an example of p0,1 can be represented as following Equation (9).
{p0,1,p0,2,p0,3,p0,4,p0,5,p0,6,p0,7,p0,8,p0,9,p0,10,p0,11,p0,12,p0,13,p0,14,p0,15,p0,16,p0,17,p0,18,p0,19,p0,20,p0,21,p0,22,p0,23,p0,24,p0,25,p0,26,p0,27,p0,28,p0,29,p0,30,p0,31,p0,32,p0,33,p0,34,p0,35,p0,36}={11,8,73,16,143,48,143,150,31,38,22,115, 135,116,55,55,84,13,12,116,131,33,3,7,115,43, 11,2,11,17,1,31,15,7,2,54} (9)
Next, the mask processing for the parity check matrix HQCL which is specific processing in the check-matrix generating method according to the present embodiment will be explained.
For example, when the left-hand side matrix shown in Equation (4-1) is represented by the quasi-cyclic matrix HQC of J×L as shown in following Equation (10-1), and a mask matrix Z (=[zj,l]) is defined as a matrix with J-row×L-column on GF (2), the matrix HMQC after the mask processing can be represented as following Equation (10-2) if a predetermined rule described below is applied.
Here, zj,l I(pj,l) in Equation (10-2) is defined as following Equation (11).
The zero-matrix is a zero-matrix with p-row×p-column. Additionally, the matrix HMQC is a matrix in which the quasi-cyclic matrix HQC is masked with 0-elements of the mask matrix Z, and the weight distribution is nonuniform (irregular), while a distribution of the cyclic permutation matrices of the matrix HMQC is the same as a degree distribution of the mask matrix Z.
Note that a weight distribution of the mask matrix Z when the weight distribution is nonuniform shall be determined by a predetermined density evolution method as known. For example, the mask matrix with 72-row×36-column can be represented as following Equation (12) based on a column degree distribution by the density evolution method.
Further, the mask matrix ZA is a matrix as shown in following Equation (13).
In addition, ZA(1:36, 2:13) is submatrices of ZA which indicates submatrices formed of the 1st row to 36th row and the 2nd row to 13th column.
Hence, the irregular parity check matrix HM to be finally determined in the present embodiment can be represented as following Equation (14) using, for example, the mask matrix Z with 72-row×36-column, the quasi-cyclic matrix HQC with 72 (row index j is 0 to 71)×36 (column index l is 0 to 35), and HT of 72 (row index j is 0 to 71)×36 (column index l is 0 to 35).
Namely, the parity check matrix HMQC for generating the LDPC codes C is given by a design of the mask matrix Z and a value of the cyclic permutation matrix at the row index j=0 of the quasi-cyclic matrix HQC.
Subsequently, an implementation example when the encoding is achieved using the regular parity check matrix HM without using the generator matrix G will be shown hereinafter, and an operation thereof will be explained. Note herein that, the parity check matrix HQCL of the QC-LDPC codes with the LDGM structure is considered as a matrix shown in following Equation (15-1).
Meanwhile, the irregular parity check matrix HM in which the matrix shown in Equation (15-1) is masked is defined as a matrix shown in following Equation (15-2).
Additionally, the information message is defined as u=(up,1 up,2)=(01100 11001). Note that up,1 is provided by dividing u for every p bits to then give numbers in an ascending order to 1.
Here, as processing in generating codes without using the generator matrix G, a product-sum operation of the matrix HMQC after the mask processing for p rows and the information message u will be explained.
In
Meanwhile, as for the information message u, it is divided for every p-length to be then inputted into registers 68 and 69 in order via the delay element 62 per p clock cycles. EXOR between the information message u with length p in the register 69, and a bit string in the register 67 is then calculated by the adder 70, and a summation of each bit of EXOR operation results is calculated by an adder 72. A sum-product calculation between the first row of I((((pA−p0,1) (j+1))mod pA)mod p) and up,1 of the information message can be achieved by this processing. Next, the second row of I((((pA−P0,1) (j+1))mod pA)mod p) can be generated by shifting the register 67 using the delay element 61, thus a sum-product calculation between the second row of I((((pA−p0,1) (j+1))mod pA)mod p) and up,l of the information message can be achieved in a similar manner to the above. Thereafter, sum-product calculation results pp,j′ for p rows of I((((pA−p0,1) (j+1))mod pA)mod p) can be obtained by repeatedly executing this processing p times. Incidentally, pp,j′ means p bits of the sum-product calculation results of all the cyclic permutation matrices at the j-th row.
Next, to calculate the product-sum between I(((pA−p0,1) (j+1))mod pA) mod p) and up,1 from l=0 to l=L−1, the EXOR operation is repeatedly performed L times by the delay element 62 and the adder 72. This operation is repeatedly executed from j=0 to j=J−1, so that a sum-product calculation result pp,j′ between the matrix HMQC after the mask processing and u is obtained. Incidentally, in the selector 73, 0 is selectively outputted when zj,l=0, and an output of an adder 71 is selectively outputted when zj,l=1.
Meanwhile,
Note that the rule described in the previously applied “Japanese Patent Application 2005-367077” is applied to the masking rule when the quasi-cyclic matrix HQC is masked with the 0-elements of the mask matrix Z.
Next, in the present embodiment, the code configuration method up to the encoding rate ⅕ will further be explained. The system configuration is the same as that of
Specifically, the masking rule when the quasi-cyclic matrix HQC with 144 (row index j is 0 to 143)×36 (column index l is 0 to 35) corresponding to the encoding rate ⅕ is masked with the 0-elements of the mask matrix Z is explained below. Here, the communication apparatus according to the present embodiment generates the mask matrix Z for making the quasi-cyclic matrix HQC with 144×36 nonuniform (irregular) based on the regular masking rule.
Incidentally, the irregular parity check matrix HM to be finally determined after the mask matrix Z is generated can be represented as following Equation (16) using, for example, the mask matrix Z with 144-row×36-column, the quasi-cyclic matrix HQC with 144×36, and HT of 144 (row index j is 0 to 143)×144 (column index l is 0 to 143).
Further, HT is defined as shown in following Equation (17), and TD in HT is defined as shown in following Equation (18).
Meanwhile, it is assumed that the irregular parity check matrix corresponding to the codes of the encoding rate ½ is “HM(1/2)=[ZA×HQC(1/2)|HT(1/2)]”. Note that ZA (=ZA(1/2)) is the mask matrix with 36-row×36-column, HQC(1/2) represents the quasi-cyclic matrix of 36 (row index j is 0 to 35)×36 (column index l is 0 to 35) of ¼ from the top in the quasi-cyclic matrix HQC, and HT(1/2) is the TD. Additionally, corresponding to the encoding rates ⅓, ¼, ⅕, the irregular parity check matrices are represented as HM(1/3), HM(1/4), HM(1/5) (=HM), the mask matrices are represented as ZA(1/3), ZA(1/4), ZA(1/5) (=Z), the quasi-cyclic matrices are represented as HQC(1/3), HQC(1/4), HQC(1/5) (=HQC), and are represented as HT(1/3), HT(1/4), HT(1/5) (=HT), respectively.
For example, the mask matrix Z generated by the processing can be represented as following Equation (19).
As described above, since the mask matrix Z is composed only using the submatrices of the mask matrix ZA corresponding to the encoding rate ½ in the present embodiment, the memory capacity for storing the mask matrix can be reduced even when the mask matrix becomes large according to the encoding rate.
Additionally, each mask matrix according to the encoding rate is used while shifting the submatrices of the mask matrix ZA so that the same pattern may not be formed in a column direction. Specifically, the submatrices of the mask matrix ZA are separated into submatrices with a heavy column degree (weight 14) and submatrices with light column degrees (weight is four or less), and are used while each of them is shifted. For example, ZA(1:36,2:13) are the submatrices of ZA in the mask matrix ZA, whereas in the mask matrix ZA(1/3), they are shifted to the left per column, and ZA(1:36,3:14) after the shift are coupled under ZA(1:36,2:13) of the mask matrix ZA. As for the mask matrices ZA(1/4), ZA(1/5), submatrices of the mask matrix ZA are also used while being shifted so that the same pattern may not be formed in the column direction. Accordingly, small loops that are easy to be generated when HT is used can be avoided.
Next, the case in which the LDPC codes corresponding to the encoding rates are configured using the irregular parity check matrix HM will be explained below.
The lower limit of the encoding rate of the code generated by, for example, the code configuration method and defined by M and N is desirably set to any value from ⅓ to ⅙. To achieve any encoding rate equal to or less than the value, using repeated transmission which is explained later is better than using the code configuration method the same as the code configuration method when the encoding rate is ⅕ because an excellent performance is obtained.
A configuration method of the LDPC codes corresponding to the encoding rates will be specifically explained here. For example, it is supposed that the lowest encoding rate prepared by the system is R0=⅓ or less.
For example, when the codes corresponding to the encoding rate R0=⅕ are stored in the memory to form codes of an encoding rate R1, and if the encoding rate R1 is less than ½, namely, if the encoding rate R1 is any value between ½ to ⅕, the parity bits are punctured from the end of the code in order.
Meanwhile, for example, if an encoding rate of ⅕ or less is required, code bits B (length b: information for bits corresponding to each column is the same as A) selected in order of decreasing the column weight are added to a code (A+parity bits in
If the same code is repeatedly transmitted twice as b=N and an encoding rate lower than the rate is required, code bits with the number of bits corresponding to the low encoding rate selected in order of decreasing the column weight are transmitted again. Accordingly, it is also possible to achieve a lower encoding rate.
The code encoded by the method is then received by the reception apparatus through the communication channel, and if parts of or all of the code overlap when the decoder corrects an error, received values of the overlapped bits are added by the number of the overlapped portions and are averaged, to then transfer the result to the decoder. Moreover, it is known that the decoding performance becomes better when the code bits correspond to a column with a high weight. Thus, in the present embodiment, the variance of noise component can be reduced by the processing, and the reliability thereby increases (the error rate of the corresponding bits decreases), and thus improving the decoding performance.
Incidentally, it is described in the present embodiment that p of the cyclic permutation matrices is an odd prime number (other than 2), however, p is not limited thereto, and thus any odd number may be selected. In this case, although the performance may be degraded upon puncture of the high encoding rate, the degradation is only a slight amount. Meanwhile, if a prime number is used, it is necessary to obtain a table of prime numbers and previously store them therein to avoid an increase in the amount of calculations, however, if an odd number is used, the value does not need to be stored.
Next, a code configuration method according to a second embodiment will be explained below. Here, processing different from that of the first embodiment will be explained.
When p (an odd number or a prime number other than 2) of the cyclic permutation matrices in the parity check matrix for the LDPC codes is set to be variable, data length K=p×r (r is the number of unit matrices: r=36 in the first embodiment) can be set to be variable. Meanwhile, if the data length K cannot be represented by p×r, the code is formed as shown in
For example, the LDPC encoder 1 selects an integer value obtained by rounding up K/r for p, sequentially inserts the known value “0” or “1” in bits corresponding to portions with the heavy column degree in the parity check matrix by the number of “(integer p obtained by rounding up K/r)×r−K”, and encodes them. The decoding side determines the known value “0” or “1” for the values corresponding to the same bits in the parity check matrix and decodes them.
This allows assignment of the most reliable known values (100% no error) to the bits corresponding to the heavy column degree, and thus the decoding performance can be improved.
When the irregular parity check matrix for the LDPC codes generated in the first embodiment is used to encode bits and a code with a code length N is generated, the code is also formed as shown in
For example, similarly to the above, the known value “0” or “1” is inserted in bits in order of decreasing the column degree in the parity check matrix corresponding to the data bits, to be encoded. Accordingly, the code of the low encoding rate can be easily generated. The decoding side determines the known value “0” or “1” for the values corresponding to the same bits in the parity check matrix and decodes them.
This enables the codes of the low encoding rate to be purposely formed and the most reliable known values (100% no error) to be assigned to the bits corresponding to the heavy column degree, and thus excellent decoding performance can be obtained when the decoding performance of the bits corresponding to the heavy column degree greatly affects the overall decoding performance.
Next, a code configuration method according to a third embodiment will be explained below. Here, processing different from the processing of the first and the second embodiments will be explained.
When p (an odd number or a prime number other than 2) of the cyclic permutation matrices in the parity check matrix for the LDPC codes generated in the first embodiment is set to be variable, data length K=p×r (r is the number of unit matrices: r=36 in the first embodiment) can be set to be variable. Meanwhile, if the data length K cannot be represented by p×r, the code is formed as shown in
For example, the LDPC encoder 1 selects an integer value obtained by rounding up K/r for p, sequentially inserts the known value “0” or “1” in bits corresponding to portions with light column degrees of data bit portion (bit portion corresponding to columns in the matrix HMQC after masking processing) in the check matrix by the number of “(integer p obtained by rounding up K/r)×r−K”, and encodes them. The decoding side determines the known value “0” or “1” for the values corresponding to the same bits in the parity check matrix and decodes them.
If the bits corresponding to the portions with light column degrees greatly affect an error distribution, or if a factor of degradation is caused by the portions with the light column degrees, the known value “0” or “1” is sequentially inserted in the bits corresponding to the portions with the light column degrees and the values are encoded, and this allows more improvement of the performance.
Additionally, when the irregular parity check matrix for the LDPC codes generated in the first embodiment is used to encode bits and a code with a code length N is generated, the code is also formed as shown in
For example, similarly to the above, the known value “0” or “1” is inserted in bits in order of increasing the column degree in the parity check matrix corresponding to the data bits, to be encoded. Accordingly, the code of the low encoding rate can be easily generated. The decoding side determines the known value “0” or “1” for the values corresponding to the same bits in the parity check matrix and decodes them.
This enables the code of the low encoding rate to be purposely formed, and further, if the decoding performance of the bits corresponding to the light column degrees greatly affects the overall decoding performance, or even if the factor of degradation is caused by the portions with the light column degrees, the bits corresponding to the light column degrees can be determined by known data, and thus excellent decoding performance can be obtained.
Next, a code configuration method according to a fourth embodiment will be explained below. Here, processing different from the processing of the first, the second, or the third embodiment will be explained.
When p (an odd number or a prime number other than 2) of the cyclic permutation matrices in the parity check matrix for the LDPC codes generated in the first embodiment is set to be variable, the data length K=p×r (r is the number of unit matrices: r=36 in the first embodiment) can be set to be variable. Meanwhile, if the data length K cannot be represented by p×r, the code is formed as shown in
For example, the LDPC encoder 1 selects an integer value obtained by rounding up K/r for p, inserts the known value “0” or “1” in data bit portion (bit portion corresponding to columns in the matrix HMQC after masking processing) in the check matrix at approximately uniform intervals by the number of “(integer p obtained by rounding up K/r)×r−K”, and encodes them. The decoding side determines the known value “0” or “1” for the values corresponding to the same bits in the parity check matrix and decodes them.
If the factor of degradation is not caused by the heavy or the light column degree in the error distribution, better performance may be obtained in the way to insert the known value “0” or “1” in data bit portion (bit portion corresponding to columns in the matrix HMQC after masking processing) in the check matrix at approximately uniform intervals, to be encoded.
Additionally, in the second embodiment, to prepare an encoding rate equal to or less than the encoding rate (N−M)/N which is decided by the number of rows M and the number of columns N of the parity check matrix, the known value is assigned to the bits corresponding to columns with the heavy column degree. However, if there are too many known values, this may cause performance degradation. Thus, the low encoding rate is achieved by the following method in the present embodiment.
For example, when the irregular parity check matrix for the LDPC codes is used to encode bits and a code with a code length N is generated, the code is also formed as shown in
Specifically, similarly to the above, the known value “0” or “1” is inserted in data bit portion (bit portion corresponding to columns in the matrix HMQC after masking processing) in the check matrix at approximately uniform intervals, to be encoded. Accordingly, the code of the low encoding rate can be easily generated. The decoding side determines the known value “0” or “1” for the values corresponding to the same bits in the parity check matrix and decodes them.
As an example, if the number of data bits is ½ of the number of columns corresponding to the data bits of a check matrix, an information sequence u′ inserted with the known value “0”, based on data bit sequence set to u={u1, u2, . . . , uk}, becomes u′={u1, 0, u2, 0, u3, 0, . . . , uk, 0}. As described above, in the code of the encoding rate ⅕, the encoding rate becomes 1/10 by this operation. Additionally, if the number of data bits is ⅓ of the number of columns corresponding to the data bits in a check matrix, degradation may not sometimes occur even if the known number is large. In this manner, the present embodiment enables the code of the low encoding rate to be easily prepared and degradation to be minimized when the known number is large.
In a fifth embodiment, decoding processing corresponding to the encoding processing using the irregular parity check matrix HM generated in the first embodiment will be explained below.
The LDPC decoding according to the present embodiment is applicable to a case where calculation and updating of likelihood information (LLR) by the row processing and the column processing are performed per bit or per predetermined plural bits, and, for example, the repetition number of times is reduced by parallelizing operation processing. In the present embodiment, the “cyclic approximation min algorithm” using so-called “Overlapped” BmnC and Sm, is executed, in which Bmn(i) and Sm in the intermediate-result storing unit are determined as a set regardless of the number of parallelization and all the parallelized processing units update the same BmnC and Sm. Hereinafter, the decoding algorithm according to the present embodiment is called “Overlapped cyclic approximation min algorithm”.
Here, the “Overlapped cyclic approximation min algorithm” executed in the reception apparatus according to the present embodiment is shown below.
(Initialization Step)
First, the repetition number of times l=1 and the maximum repetition number of times lmax are set. Moreover, initial LLR of the minimum k value at m-th row is set as βmn(i)(0), received LLR: λn is inputted, and Bmn(i)C is calculated as shown in following Equation (43). In addition, sgn(λn) is inputted as a code of initial LLR: βmn(0) at the m-th row and Sm is calculated as shown in following Equation (20).
Where, Bmn(i)C is the absolute value of LLR: βmn(i) of the minimum k value at the m-th row, which is commonly used in parallelizing processing. In addition, n(i) is the column index of minimum i-th LLR in Bmn(i)C.
(Row Processing Step)
Next, as the row processing step, LLR: αmn(1) of l-th repetition of a bit n to be transmitted from a check node m to a bit node n is updated by following Equation (21) for 0≦g≦G−1, g·NG+1≦n≦(g+1)·NG, and each m. Here, G is the number of parallelization and NG is the number of columns to be processed by each of parallelized decoding circuits. In addition, G·Ng=N. In the present embodiment, a starting column of each row processing is arbitrary, and the decoding processing is cyclically performed again from the starting column after the processing is completed through the last column.
Specifically, columns are divided into G column groups for each number of columns: NG, and G row processing units respectively assigned to the column groups perform the row processing in parallel.
(Column Processing Step)
Next, as the column processing, LLR: βmn(1) of l-th repetition of the bit n to be transmitted from the bit node n to the check node m is updated by following Equation (22) for 0≦g≦G−1, g·NG+1≦n≦(g+1)·NG, and each m. Namely, in the present embodiment, the column processing shown in following Equation (22) is performed in parallel for each column after the row processing has been performed in parallel thereto as explained above.
For each n, a posterior value βn(l) of the l-th repetition of the bit n is updated by following Equation (23) for the hard decision.
(Stopping Rule)
Thereafter, for example, the decoded result is set as “xn′=1” (x′ corresponds to an original transmission signal x) when the posterior value βn(l) of the l-th repetition of the bit n is “βn(l)>0”, whereas the decoded result is set as “xn′=0” when “βn(l)≦0”, so that the decoded result x′=(x1′, x2′, . . . , xN′) is obtained.
When the result of the parity check is “Hx′=0” or the repetition number of times is “l=lmax” (when either of the conditions is satisfied), the decoded result x′ at that time is outputted. Here, if both of the conditions are not satisfied, then “l=l+1”, and the processing returns to the row processing to sequentially perform the operation.
Subsequently, a configuration and operation of the LDPC decoder 5 according to the fifth embodiment that achieves the “Overlapped cyclic approximation min algorithm” will be explained.
In
Subsequently, an effect of using the “Overlapped cyclic approximation min algorithm”, for example, as the decoding processing for the codes configured in the processing of the first to fourth embodiments will be explained.
For example, in a case where a problem occurs that the operation of the same row at the same clock occurs and the same buffer is referenced in the parallel processing as explained above, an approach with an additional circuit is conventionally required. It is applicable not only to the “Overlapped cyclic approximation min algorithm” but also to any other decoding methods.
To solve this problem, in the present embodiment, characteristics of the parity check matrix generated by masking the quasi-cyclic matrix composed of p-row×p-column cyclic permutation matrix are utilized to divide the column group for the parallel processing into G1=[0*p+1, 1*p+1, 2*p+1, . . . ], G2=[0*p+2, 1*p+2, 2*p+2, . . . ], G3=[0*p+3, 1*p+3, 2*p+3, . . . ], . . . , when performing the parallel processing in the decoding to avoid the occurrence of overlapping of the rows and the columns, and to perform the processing of all or part of the groups in parallel from the minimum value of elements in each group.
In the decoding processing of a specific column group, the rows related to the column are processed in parallel. For example, in a case of the quasi-cyclic code shown in
When an irregular masking quasi-cyclic matrix is used, a difference between processing times may occur in a high weight portion and a low weight portion of the column processing. Generally, if there is a mixture of the heavy column degree and the light column degree in the irregular LDPC codes, a problem arises that the column processing in the heavy column degree becomes dominant and this interferes with speeding up of the processing.
For example, as shown in
The parallelizing processing of the “Overlapped cyclic approximation min algorithm” is described in the present embodiment, however, it is not limited thereby, and thus, if the system is any one in which encoding is performed using a parity check matrix generated by masking the quasi-cyclic matrix formed of the cyclic permutation matrices, the present embodiment is also applicable to a case where any other LDPC decoding method is processed in parallel.
The first embodiment shows the example of forming the cyclic permutation matrices I(pj,l) based on the fixed rule, however, the first embodiment may be applied to other matrices, and thus, in the present embodiment, the encoding rate ⅕ may be formed as is the first embodiment using the matrix of the encoding rate ⅓ as shown in
Specifically, supposing the matrix shown in FIG. 14 is a M×N matrix HCH of the encoding rate ⅓, a matrix HCH′ of 2M×( 5/3)N is formed as shown in
It is noted that the matrix A may be configured with matrices based on an arbitrary combination of the cyclic permutation matrices as shown in the present embodiment, or may be configured based on the regular rule as shown in the first embodiment. The processing of forming the LDPC codes corresponding to the encoding rates is not limited to the parity check matrix as shown in
Next, the system to which the encoding processing/decoding processing according to the first to the sixth embodiments is applied will be explained. For example, the LDPC encoding processing and decoding processing according to the present invention are applicable to communications equipment in general, such as mobile communications (terminal, base station), wireless LAN, optical communications, satellite communications, and a quantum encryption device, and specifically, the LDPC encoder 1 and the LDPC decoder 5 as shown in
Moreover, in the mobile terminal 100 and the base station 200 shown in
Incidentally, one of the configurations of the LPDC encoders explained in the first to the sixth embodiments is applied to the physical-layer LDPC encoders for the mobile terminal 100 and the base station 200. Meanwhile, one of the configurations of the LDPC decoders described in the first to the sixth embodiments is applied to the physical-layer LDPC decoders for the mobile terminal 100 and the base station 200.
When data is transmitted from the mobile terminal 100 in the mobile communications system composed as described above, first, in the physical layer, the physical-layer LDPC encoder 102 for fading communication channel encodes the data for each packet data. This encoded data is sent out to a radio communication channel via the modulator 103 and the antenna 107.
Meanwhile, in the base station 200, received signals including errors generated in the radio communication channel are received via the antenna 207 and the demodulator 203, and received data after demodulation is corrected by the physical-layer LDPC decoder 202 for the physical layer. Subsequently, this information packet is transmitted to a communication destination via the network. Note that also when the mobile terminal 100 receives various data from the network, the base station 200 transmits the encoded data to the mobile terminal 100, and the mobile terminal 100 reproduces the various data, by the processing similar to that described above. When the base station 200 transmits encoded data to the mobile terminal 100, first, in the physical layer, the physical-layer LDPC encoder 205 for fading communication channel encodes data for each packet data. This encoded data is sent out to the radio communication channel via the modulator 204 and the antenna 207. Meanwhile, in the mobile terminal 100, received signals including errors generated in the radio communication channel are received via the antenna 107 and the demodulator 104, the received data after demodulation is corrected by the physical layer LDPC decoder 105. In the physical layer, whether the error correction is successfully performed per packet is then notified to the upper layer.
As described above, the check-matrix generating method and encoding method according to the present invention are useful as the encoding technology in digital communications, and are particularly suitable for the communication apparatuses that employ the LDPC codes as the encoding system.
Number | Date | Country | Kind |
---|---|---|---|
2006-026310 | Feb 2006 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP07/51551 | 1/31/2007 | WO | 00 | 8/4/2008 |