Check matrix generating device, check matrix generating method, encoder, transmitter, decoder, and receiver

Information

  • Patent Grant
  • 8196014
  • Patent Number
    8,196,014
  • Date Filed
    Thursday, June 26, 2008
    16 years ago
  • Date Issued
    Tuesday, June 5, 2012
    12 years ago
Abstract
When arranging J cyclic permutation matrices I(pj,l) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(pj,l) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a quasi-cyclic matrix generating unit 31 configures the regular quasi-cyclic matrix by combining cyclic permutation matrices I(pj,l) in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices I(pj,l) arranged at, e.g., the 1st row differ from one another.
Description
FIELD OF THE INVENTION

The present invention relates to an encoding technology for use in digital communications. More particularly, it relates to a check matrix generating device for and a check matrix generating method of generating a parity check matrix used for LDPC (Low-Density Parity Check) codes, an encoder for and a transmitter for encoding predetermined information bits by using a parity check matrix, and a decoder for and a receiver for decoding predetermined information bits by using a parity check matrix.


BACKGROUND OF THE INVENTION

Hereafter, a conventional communications system which employs an LDPC code will be explained as an encoding system.


Hereafter, it is assumed that the conventional communications system uses a quasi-cyclic (QC: Quasi-Cyclic) code as an example of an LDPC code (refer to the following nonpatent reference 1).


First, a flow of an encoding process and a decoding process which are carried out by the conventional communications system will be explained briefly.


An LDPC encoder mounted in a communication device on a transmit side (referred to as a “transmitter” from here on) generates a parity check matrix H (which will be mentioned below in detail).


The LDPC encoder also generates, for example, a generator matrix G with K rows and N columns (K: an information length, N: a codeword length).


In this case, when the parity check matrix for LDPC is expressed as H (with M rows and N columns), the generator matrix G satisfies GHT=0 (T denotes the transposed matrix).


When receiving a message (m1, m2, . . . , mK) having the information length K, the LDPC encoder generates a codeword C from the message (m1, m2, . . . mK) by using the generator matrix G generated previously, as shown in the following equation (1). In this case, H(c1, c2, . . . , cN)T=0 is assumed.












C
=


(


m
1

,

m
2

,





,

m
K


)


G







=

(


c
1

,

c
2

,





,

c
N


)








(
1
)







After the LDPC encoder generates the codeword C, a modulator of the transmitter carries out digital modulation of the codeword C by using a predetermined modulation method (e.g., BPSK (Binary Phase Shift Keying), QPSK (Quadrature Phase Shift Keying), or multiple value QAM (Quadrature Amplitude Modulation)), and transmits the modulated signal x=(x1, x2, . . . , xN) to a communication device on a receive side (referred to as a “receiver” from here on).


It is assumed that in an error occurs in the modulated signal x=(x1, x2, . . . , xN) transmitted from the transmitter during transmission through the radio channel, and the signal including the error is received by the receiver.


When receiving the modulated signal y=(y1, y2, . . . , yN) including the error, the demodulator of the receiver performs digital demodulation according to the modulation method, such as BPSK, QPSK, or multiple value QAM, on the modulated signal y=(y1, y2, . . . , yN).


When receiving the demodulated result of the demodulator, the LDPC decoder of the receiver performs iterative decoding according to the “sum-product algorithm” on the demodulated result so as to decode the demodulated result into the message (m1, m2, . . . , mK) having the information length K, and then outputs the message (m1, m2, . . . , mK).


Hereafter, the parity check matrix for LDPC code will be explained concretely.


For example, in the following nonpatent reference 1, a parity check matrix HQC for QC codes as shown in FIG. 6 is proposed as a parity check matrix for LDPC code.


The parity check matrix HQC for QC code as shown in FIG. 6 is the one in which cyclic permutation matrices (p=5) each with five rows and five columns are arranged in a vertical direction (J=3) and in a horizontal direction (L=5).


Generally, a parity check matrix HQC for a (J,L)-QC code with M (=pJ) rows and N (=pL) columns can be defined as shown in the following equation (2).






[

Equation





1

]











H

QC
i


=

[




I


(

p

0
,
0


)





I


(

p

0
,
1


)








I


(

p

0
,

L
-
1



)







I


(

p

1
,
0


)





I


(

p

1
,
1


)








I


(

p

0
,

L
-
1



)





















I


(

p


J
-
1

,
0


)





I


(

p


J
-
1

,
1


)








I


(

p

0
,

L
-
1



)





]











Example:


p

=
5

,


I


(
0
)


=


[



1


0


0


0


0




0


1


0


0


0




0


0


1


0


0




0


0


0


1


0




0


0


0


0


1



]

·







(
2
)








where p is an odd prime number, L is the number of cyclic permutation matrices arranged in the horizontal direction (column direction) in the parity check matrix HQC, and J is the number of cyclic permutation matrices arranged in the vertical direction (row direction) in the parity check matrix HQC.


In each cyclic permutation matrix I(pj,l), at 0≦j≦J−1 and 0≦l≦L−1, matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and other matrix elements are “0”s.


“A mod B” is a mathematical symbol for calculating the remainder of the division of A by B.


Because a degradation of the performance is typically caused in case in which there exist many loops having a short length when designing an LDPC code, it is necessary to increase the girth and lessen the number of loops (loop 4, loop 6, and so on) having a short length.



FIG. 7 is an explanatory drawing showing an example of the check matrix expressed in a form of a Tanner graph.


In the parity check matrix H with M rows and N columns having two elements {0, 1}, a node corresponding to each column is referred to as a bit node bn (1≦n≦N) (corresponding to ∘ in FIG. 7) and a node corresponding to each row is referred to as a check node cm (1≦m≦M) (corresponding to □ in FIG. 7).


Furthermore, when “1” is located at an intersection of a row and a column of the check matrix, a bipartite graph connecting between the bit node and the check node with a branch is referred to as a Tanner graph.


Each above-mentioned “loop” shows a closed loop starting from a specific node (corresponding to ∘ or □ of FIG. 7) and ending at the node, as shown in FIG. 7.


The above-mentioned “girth” means a minimum loop.


The length of each loop is expressed by the number of branches configuring the closed loop, and each loop is simply expressed as loop 4, loop 6, loop 8, or . . . according to the length of each loop.


The following nonpatent reference 1 shows that the girth g in the parity check matrix HQC for (J,L)-QC LDPC codes falls within a range of “4≦g≦12 (g is an even number)”.


It is easy to prevent the parity check matrix from having a girth g=4, and, in many cases, the parity check matrix has a girth satisfying g≧6.

  • [Nonpatent reference 1] M. Fossorier “Quasi-Cyclic Low Density Parity Check Code” ISIT2003, pp. 150, Japan, Jun. 29-Jul. 4, 2003.


Because the conventional encoder is configured as mentioned above, a parity check matrix HQC having a girth g falling within a range of “4≦g≦12 (g is a even number)” is generated, while no design method of designing a parity check matrix under the conditions that it satisfies g≧6, g≧8, g≧10, g≧12, or . . . has not been disclosed. A problem is therefore that when designing an LDPC code, it is necessary to make a search using a computer, or the like to generate a parity check matrix HQC, and it takes much time to acquire an LDPC code.


A further problem is that because the conventional encoder lacks in extensibility, and also lacks in the regularity among cyclic permutation matrices, the complexity increases at a time when the conventional encoder is implemented, and any evidence that the results of a search using a computer are optimal cannot be established.


The present invention is made in order to solve the above-mentioned problems, and it is therefore an object of the present invention to provide a check matrix generating device, a check matrix generating method, an encoder, a transmitter, a decoder, and a receiver which can easily generate a parity check matrix having good performance and regularity.


DISCLOSURE OF THE INVENTION

In accordance with the present invention, there is provided a check matrix generating device in which a quasi-cyclic matrix generating means configures a regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices arranged at a specific row differ from one another.


According to the present invention, when generating the regular quasi-cyclic matrix, the quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices arranged at a specific row differ from one another. Therefore, the present invention offers an advantage of being able to easily generate a parity check matrix having good performance and regularity.





BRIEF DESCRIPTION OF THE FIGURES


FIG. 1 is a block diagram showing a transmitter and a receiver in accordance with Embodiment 1 of the present invention;



FIG. 2 is a block diagram showing an LDPC encoder 11 in accordance with Embodiment 1 of the present invention;



FIG. 3 is a block diagram showing the LDPC decoder 22 in accordance with Embodiment 1 of the present invention;



FIG. 4 is a flow chart showing a check matrix generating method in accordance with Embodiment 1 of the present invention;



FIG. 5 is an explanatory drawing showing an example in which a mobile terminal 100 is connected to a base station 200 via a wireless channel;



FIG. 6 is an explanatory drawing showing a parity check matrix for QC code; and



FIG. 7 is an explanatory drawing showing an example of the check matrix expressed in a form of a Tanner graph.





PREFERRED EMBODIMENTS OF THE INVENTION

Hereafter, in order to explain this invention in greater detail, the preferred embodiments of the present invention will be described with reference to the accompanying drawings.


Embodiment 1



FIG. 1 is a block diagram showing a transmitter and a receiver in accordance with Embodiment 1 of the present invention. In the figure, the transmitter 1 is comprised of an LDPC encoder 11 (encoder) and a modulator 12, and is a communication device disposed on a transmit side, for encoding a message (u1, u2, . . . , uK) having an information length K and transmitting this message via a channel 3.


The receiver 2 is comprised of a demodulator 21 and an LDPC decoder 22 (decoder), and is a communication device disposed on a receive side, for receiving the modulated signal transmitted from the transmitter 1, and for demodulating the modulated signal to decode the signal into the message (u1, u2, . . . , uK) having the information length K.


The LDPC encoder 11 of the transmitter 1 carries out a process of generating a codeword (v1, v2, . . . , vN) from the message (u1, u2, . . . , uK) having the information length K.


The modulator 12 of the transmitter 1 carries out a process of modulating the codeword (v1, v2, . . . , vN) generated by the LDPC encoder 11, and then transmitting the modulated signal (x1, x2, . . . , xN) to the receiver 2 via the channel 3. The modulator 12 configures a modulation means.


When receiving the modulated signal (x1, x2, . . . , xN) transmitted from the transmitter 1 as a modulated signal (y1, y2, . . . , yN) the demodulator 21 of the receiver 2 performs digital demodulation on the modulated signal (y1, y2, . . . , vN) and outputs a codeword (v1, v2, . . . , vN) which is the demodulated result. The demodulator 21 configures a demodulating means.


The LDPC decoder 22 of the receiver 2 carries out a process of decoding the codeword (v1, v2, . . . , vN) outputted from the demodulator 21 into the message (u1, u2, . . . , uK) having the information length K.



FIG. 2 is a block diagram showing the LDPC encoder 11 in accordance with Embodiment 1 of the present invention. In the figure, a check matrix generating device 30 generates a parity check matrix HM.


A quasi-cyclic matrix generating unit 31 of the check matrix generating device 30 carries out a process of arranging J cyclic permutation matrices I(pj,l) with p rows and p columns (0≦j≦J−1 and 0≦l≦L−1) in each row direction and also arranging L cyclic permutation matrices I(pj,l) in each column direction so as to generate a regular quasi-cyclic matrix HQC with uniform row and column weights.


In this case, when generating the regular quasi-cyclic matrix HQC, the quasi-cyclic matrix generating unit 31 configures the regular quasi-cyclic matrix by combining cyclic permutation matrices I(pj,l) in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and the other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices I(pj,l) arranged in a specific row (e.g. the 1st row) differ from one another. The quasi-cyclic matrix generating unit 31 configures a quasi-cyclic matrix generating means.


A mask matrix generating unit 32 of the check matrix generating device 30 carries out a process of generating a mask matrix Z which can adapt to a plurality of coding rates. The mask matrix generating unit 32 configures a mask matrix generating means.


A masking processing unit 33 of the check matrix generating device 30 carries out a process of converting a specific cyclic permutation matrix I(pj,l) within the regular quasi-cyclic matrix HQC generated by the quasi-cyclic matrix generating unit 31 into a zero matrix by using the mask matrix Z generated by the mask matrix generating unit 32 so as to generate an irregular masked quasi-cyclic matrix M. The masking processing unit 33 configures a masking means.


A parity check matrix generating unit 34 of the check matrix generating device 30 carries out a process of placing the masked quasi-cyclic matrix M generated by the masking processing unit 33 and a matrix in which the cyclic permutation matrices I(pj,l) are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix HM for LDPC code. The parity check matrix generating unit 34 configures a parity check matrix generating means.


A codeword generating unit 35 carries out a process of generating a codeword (v1, v2, . . . , vN) from the message (u1, u2, . . . , uK) having the information length K by using the parity check matrix HM generated by the parity check matrix generating unit 34. The codeword generating unit 35 configures a codeword generating means.



FIG. 3 is a block diagram showing the LDPC decoder 22 in accordance with Embodiment 1 of the present invention. In the figure, because the same reference numerals as those shown in FIG. 2 denote the same components or like components, the explanation about the components will be omitted hereafter.


A message decoding unit 41 carries out a process of decoding the codeword (v1, v2, . . . , vN) outputted from the demodulator 21 into the message (u1, u2, . . . , uK) having the information length K by using the parity check matrix HM generated by the parity check matrix generating unit 34. The message decoding unit 41 configures a decoding means.



FIG. 4 is a flow chart showing a check matrix generating method in accordance with Embodiment 1 of the present invention.


Next, the operations of the transmitter and the receiver will be explained.


The check matrix generating device 30 of the LDPC encoder 11 in the transmitter 1 generates a parity check matrix HM with M rows and N columns.


Similarly, the check matrix generating device 30 of the LDPC decoder 22 in the receiver 2 also generates a parity check matrix HM with M rows and N columns.


A generating method of generating the parity check matrix HM in each of the check matrix generating devices 30 will be mentioned below.


When receiving a message u=(u1, u2, . . . , uK) having an information length K, the codeword generating unit 35 of the LDPC encoder 11 generates a codeword v=(v1, v2, . . . , vN) having a length N by using the parity check matrix HM generated by the check matrix generating device 30, as shown in the following equation (3).


The codeword generating unit 35 carries out a process of encoding information bits without using a generator matrix G (K: information length, N: code word length) which is generated previously, unlike in a case of a conventional example.

v={(v1, v2, . . . , vN)∈GF (2)|(v1, v2, . . . , vN)HMT=0}  (3)


When the LDPC encoder 11 generates the codeword v=(v1, v2, . . . , vN), the modulator 12 of the transmitter 1 carries out digital modulation of the codeword v by using a predetermined modulation method (e.g. BPSK, QPSK, or multiple value QAM), and transmits the modulated signal x=(x1, x2, . . . , xN) to the receiver 2 via the channel 3.


It is assumed that in an error occurs in the modulated signal x=(x1, x2, . . . , xN) transmitted from the transmitter 1 during transmission through the channel 3, and the signal including the error is received by the receiver 2.


When receiving the modulated signal y=(y1, y2, . . . , yN) including the error, the demodulator 21 of the receiver 2 performs digital demodulation according to the modulation method, such as BPSK, QPSK, or multiple value QAM, on the modulated signal y=(y1, y2, . . . , yN).


When receiving the demodulated result of the demodulator 21, the LDPC decoder 22 of the receiver 2 performs iterative decoding according to the “sum-product algorithm” on the demodulated result so as to decode the demodulated result to generate the message (u1, u2, . . . , UK) having the information length K, and then outputs the message (u1, u2, . . . , uK).


More specifically, the message decoding unit 41 of the LDPC decoder 22 decodes the codeword (v1, v2, . . . , vN) outputted from the demodulator 21 into the message (u1, u2, . . . , uK) having the information length K by using the parity check matrix HM generated by the check matrix generating device 30.


Hereafter, a generating method of generating the parity check matrix HM by the check matrix generating device 30 will be explained.


This Embodiment 1 is based on that an irregular (the weight distribution is ununiform) parity check matrix is generated, and an LDGM (Low Density Generation Matrix) structure is adopted as the structure of the irregular parity check matrix.


In FIGS. 2 and 3, the example in which the check matrix generating device 30 is built in each of the LDPC encoder 11 and the LDPC decoder 22 is shown, though the check matrix generating device 30 can be alternatively disposed outside the LDPC encoder 11 and the LDPC decoder 22 and the LDPC encoder 11 and the LDPC decoder 22 can store the parity check matrix HM generated by the check matrix generating device 30.


The quasi-cyclic matrix generating unit 31 arranges J cyclic permutation matrices I(pj,l) with p rows and p columns in each row direction and also arranges L cyclic permutation matrices I(pj,l) with p rows and p columns in each column direction so as to generate a regular quasi-cyclic matrix HQC as shown in the above-mentioned equation (2) (step ST1). In this case, the following relationships hold: 0≦j≦J−1 and 0≦l≦L−1.


In this case, when generating the regular quasi-cyclic matrix HQC, the quasi-cyclic matrix generating unit 31 configures the regular quasi-cyclic matrix by combining cyclic permutation matrices I(pj,l) in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and the other matrix elements are “0”s. For example, the quasi-cyclic matrix generating unit 31 configures the regular quasi-cyclic matrix in such a way that a plurality of cyclic permutation matrices I(pj,l) arranged in the 1st row differ from one another (the details of this process will be mentioned below).


The quasi-cyclic matrix generating unit 31 also defines a matrix HD with M (=pJ) rows and M (=pJ) columns which is a matrix in which matrices I(0) are arranged in a stair-step shape as follows (step ST2).










H
D

=


[




I


(
0
)




0








0





I


(
0
)





I


(
0
)




0










0























I


(
0
)





I


(
0
)




0




0





0



I


(
0
)





I


(
0
)





]

·





[

Equation





2

]









    • where I(0) is a unit matrix and 0 is a zero matrix.





The mask matrix generating unit 32 generates a J×L matrix having two elements as a mask matrix Z=[zj,l] which can adapt to a plurality of coding rates (step ST3).


After the quasi-cyclic matrix generating unit 31 generates the regular quasi-cyclic matrix HQC and the mask matrix generating unit 32 generates the mask matrix Z, the masking processing unit 33 carries out a masking arithmetic operation as will be shown below so as to convert a specific cyclic permutation matrix I(pj,l) within the regular quasi-cyclic matrix HQC into a zero matrix, and to generate an irregular masked quasi-cyclic matrix M (step ST4).











M
=


Z


H
QC






=

[





z

0
,
0




I


(

p

0
,
0


)










z

0
,
I
,

-
1





I


(

p

0
,
I
,

-
1



)




















z


J
-
1

,
0




I


(

p


J
-
1

,
0


)










z


J
-
1

,
I
,

-
1





I


(

p


J
-
1

,
I
,

-
1



)






]









Z

j
,
1




I


(

p

j
,
1


)



=

{




I


(

p

j
,
1


)





for










z

j
,
1


=
1

,





0



for









z

j
,
1


=

0
·










[

Equation





3

]







After the masking processing unit 33 generates the masked quasi-cyclic matrix M, the parity check matrix generating unit 34 generates a parity check matrix HM1 which is not masked from both the regular quasi-cyclic matrix HQC and the matrix HD which are generated by the quasi-cyclic matrix generating unit 31, and also generates a masked parity check matrix HM2 from both the masked quasi-cyclic matrix M and the matrix HD (step ST5).

HM1:=[HQC|HD], HM2:=[M|HD].   [Equation 4]


As a result, the parity check matrices HM1 and HM2 are generated. In order to provide a code having a low coding rate, an extension of the parity check matrices HM1 and HM2 will be considered hereafter.


First, an M×M matrix Hl is defined with codes defined by the parity check matrices HM1 and HM2 being expressed respectively as CM1 and CM2.










H
I

:=

[




I


(
0
)




0








0




0



I


(
0
)






















I


(
0
)






















I


(
0
)




0




0








0



I


(
0
)





]





[

Equation





5

]







Furthermore, for nonnegative integers i and t, and an M×(N−M) matrix Ai which will be defined below, a J×L mask matrix ZA is defined.










Z

A
i


=

[




z


(
Ji
)

,
0





z


(
Ji
)

,
1








z


(
Ji
)

,
I
,

·
1








z


(

Ji
+
1

)

,
0





z


(

Ji
+
1

)

,
1








z


(

Ji
+
1

)

,
I
,

-
1






















z


(

Ji
+
J
-
1

)

,
0





z


(

Ji
+
J
-
1

)

,
1








z


(

Ji
+
J
-
1

)

,
I
,

-
1






]





[

Equation





6

]







In addition, an M×N matrix HA is defined.










H

A
i


=


[




I


(

p


(
Ji
)

,
0


)








I


(

p


(
Ji
)

,
I
,

-
1



)


















I


(

p


(

Ji
+
J
-
1

)

,
0


)








I


(

p


(

Ji
+
J
-
1

)

,
I
,

-
1



)





]

·





[

Equation





7

]







In addition, by defining (tM)×(N+(t−1)M) matrices HE1 and HE2 for the nonnegative integer t as follows, the parity check matrices HE1 and HE2 are generated.











H

E





1


:=

[




H
QC




H
D



0








0





H

A
1





H
I




H
I















H

A
2




0































0





H

A

i
-
1





0





0



H
I




H
I




]


,






H

E





2


:=

[



M



H
D



0








0





A
1




H
I




H
I















A
2



0































0





A

i
-
1




0





0



H
I




H
I




]


,






A
i

=



Z

A
i




H

A
i



·






[

Equation





8

]







LDPC codes defined by the matrices HE1 and HE2 are expressed as CE1 and CE2 respectively.


Up to now, it is assumed that the cyclic permutation matrix used for the stair-step structure is I(0), though it is not necessary to limit the cyclic permutation matrix to I(0) and a combination of arbitrary matrices I(s|s∈[0, p−1]) can be provided.


The LDGM structure is the one in which a part of a parity check matrix is a lower triangular matrix, such as the structure of the matrices HE1 and HE2. By using this LDGM structure, the encoding can be implemented easily without having to use any generator matrix G.


For example, when a systematic codeword v is as shown in the following equation and an information message u=(u1, u2, . . . , uK) is provided, because a parity element pm=(p1, p2, . . . , pM) satisfies “H·vT=0”, the parity element pm is generated as shown in the following equation (4).









v
=

(


v
1

,

v
2

,





,

v
K

,

v

K
+
1


,

v

K
+
2


,





,

v
N


)







=

(


u
1

,

u
2

,





,

u
K

,

p
1

,

p
2

,





,

p
M


)









where N=K+M.









[

Equation











9

]













P
m

=




n
=
1


K
+
m
-
1





v
n



h

m
,
n





,

1

m

M

,

1

n

N





(
4
)








where hm,n denotes an element whose row number is m and whose column number is n in the parity check matrix H.


Hereafter, a condition under which the girth g is six or more (g≧6) will be examined.


More specifically, theorem 1, theorem 2, theorem 3, and corollary 4 which establish the following relationship g≧6 will be explained.


Theorem 1 (Refer to the Following Reference 1)


In the Tanner graph expression of a quasi-cyclic matrix HQC, the necessary and sufficient conditions which make the quasi-cyclic matrix satisfy g≧6 is that the following equation (5) is established.


[Equation 10]

pj0,l0−pj1,l0+pj1,l1−pj0,l1≠0 (mod p)
For j0≠j1, l0≠l1.   (5)


REFERENCE 1

M. Fossorier, “Quaff-Cyclic Low-Density Parity-Check Codes From Circulant Permutation Matrices ”, IEEE Trans. Inform. Theory, Vol. 50, No. 8 (2004) pp. 1788-1793.


Theorem 2


In a case of J<L, when L is a prime number, there exists a (J,L)-regular QC LDPC code having a girth satisfying and based on HQChat at p=L.


In this case, HQChat is a matrix HQC having the following regularity.

pj,l=j·p1,l (mod p), 0≦p1,li≦p−1, p1,l0≠p1,l1, l0≠l1.   [Equation 11]


Furthermore, a regular LDPC with column weight J and row weight L is referred to as a (J,L)-regular LDPC code, and an LDPC code using a quasi-cyclic check matrix is referred to as a (J,L)-regular QC LDPC code.


Hereafter, it will be proved that the theorem 2 is correct.


Verification of the existence of a (J,L)-regular QC LDPC code based on HQChat at p=L and having a girth satisfying g≧6 means that the theorem 2 is proved to be correct.


More specifically, when the existence of a (J,L)-regular QC LDPC code having a girth satisfying g≧6 can be verified within the limits defined by the following equation (6), the theorem 2 is proved to be correct.


[Equation 12]

pj,l=j·p1,l1 (mod L), 0≦p1,l1<L, 0≦j<J   (6)


When the following equation (7) can be verified from the theorem 1, the existence of a (J,L)-regular QC LDPC code based on HQChat at p=L and having a girth satisfying g≧6 is verified.









[

Equation





13

]
















p


j
0

,

l
0



-

p


j
1

,

l
0



+

p


j
1

,

l
1



-

p


j
0

,

l
1




=





j
0

·


p

1
,
l


0


-


j
1

·

p

1
,

l
0




+


j
1

·












p

1
,

l
1



-


j
0

·

p

1
,

l
1











=



(


j
0

-

j
1


)











(


p

1
,

l
0



-

p

1
,

l
1




)



0






(

mod





L

)










(
7
)







For example, assuming the following equation (8), in a case of j0>j1, the following relationship holds: 1≦j0−j1<J.


[Equation 14]

(j0−j1)(p1,lo−p1,l1)=0 (mod L)   (8)


Because L is a prime number, the following equation (9) holds and there exist integers a and b which satisfy the following equation (10).


[Equation 15]

gcd(j0−j1,L)=1   (9)

where gcd is a mathematical symbol for calculating the least common multiple.

α(j0−j1)+bL=1   (10)


Therefore, the following equation holds: a(j0−j1)=1 (mod L), and there exists an inverse element (j0−j1)−1 (mod L).


Therefore, the following equation (11) is established.


[Equation 16]

p1,lo−p1,l1=(j0−j1)−1(j0−j1)(p1,l0−p1,l1)=0 (mod L)   (11)


Because this is contradictory to the following equation (12), the equation (7) is established.


[Equation 17]

p1,l0≠p1,l1   (12)


Furthermore, also in a case of j0<j1, the following relationship holds: 1≦j0−j1<J.


Also in the case of j0<j1, when verification is performed in the same way as that in the case of j0>j1, the equation (7) is established.


Therefore, it is verified from the theorem 1 that there exists HQChat which satisfies g≧6 and p=L, and this means that the theorem 2 is proved to be correct.


Next, conditions imposed on HQChat to guarantee that HQChat has a girth satisfying g≧6 will be specified.


Theorem 3


HQChat in which p is a prime number and the following relationships hold: and has a girth satisfying g≧6.


Hereafter, it will be proved that the theorem 3 is correct.


When it is verified that HQChat satisfying J≧L and g≧6 always satisfies the equation (14), the theorem 3 is proved to be correct.


More specifically, when it is verified that HQChat having a girth satisfying g≧6 always satisfies the equation (14) within the limits defined by the following equation (13), the theorem 3 is proved to be correct.









[

Equation





18

]













p

j
,
l


=

j
·


p

1
,

l
1



(

mod





p

)



,

0


p

1
,

l
1



<
L

p

,

0

j
<
J
<
p





(
13
)











p


j
0

,

l
0



-

p


j
1

,

l
0



+

p


j
1

,

l
1



-

p


j
0

,

l
1




=





j
0

·


p

1
,
l


0


-


j
1

·

p

1
,

l
0




+


j
1

·












p

1
,

l
1



-


j
0

·

p

1
,

l
1











=



(


j
0

-

j
1


)











(


p

1
,

l
0



-

p

1
,

l
1




)



0






(

mod





p

)










(
14
)







Under the conditions defined by the following equation (15), the following inequality (16) is established.


[Equation 19]

j0>j1, p1,l0>p1,l1   (15)
1≦j0−j1<J≦p, 1≦p1,J0−p1,J1<L≦p   (16)


At this time, because p is a prime number, the following equations (17) and (18) are established and the following equation (19) is drawn directly from these equations (refer to pp. 8 and 9 of the following reference 2).


[Equation 20]

gcd((j0−j1), p)=1   (17)
gcd((p1,l0−p1,l1), p)=1   (18)
gcd((j0−j1)(p1,l0−p1,l1), p)=1   (19)


Therefore, the equation (14) is established.


Similarly, under the conditions defined by the following equation (20), the following inequality (21) is established.


[Equation 21]

j0<j1, p1,l0>p1,l1   (20)
1≦−(j0j1)<J<p, 1≦p1,l0p1,l1<L≦p   (21)


At this time, because p is a prime number, the following equations (22) and (23) are established and the following equation (24) is drawn directly from these equations (refer to pp. 8 and 9 of the following reference 2).


[Equation 22]

gcd(−(j0−j1), p)=1   (22)
gcd((p1,l0−p1,l1), p)=1   (23)
gcd(−(j0−j1)(p1,l0−p1,l1), p)=1   (24)


Therefore, the following equation (25) is established.


[Equation 23]

−(j0−j1)(p1,l0−p1,l1)≠0 (mod p)   (25)


Therefore, the equation (14) is established.


When even under the conditions defined by the following equation (26), and under the conditions defined by the equation (27), verification is carried out according to the same procedure as that according to which verification is carried out under the conditions defined by the following equation (15), and under the conditions defined by the equation (20), it is proved that the equation (14) is established.


Therefore, it is verified that the theorem 3 is correct.


[Equation 24]

j0>j1, p1,l0<p1,l1   (26)
j0<j1, p1,l0<p1,l1   (27)


REFERENCE 2

“Exercises for Introduction to Group, Ring and Field” written by Hiroshi Niitsuma and Tetsuzo Kimura, and published by KYORITSU SHUPPAN Co., Ltd.


Corollary 4 (Theorem)


When p is a prime number, and the following relationships hold: J≧L and p≧J, if HQChat includes p1,l=0, a QC LDPC code which is defined by the matrix HE1 consisting of both a matrix H′QChat from which a column of p1,l=0 is removed, and the matrix HD has a girth satisfying g≧6.


Hereafter, it will be proved that the corollary 4 is correct.


Because it is clear from the theorem 3 that HQChat including p1,l=0 also has a girth satisfying g≧6, the corollary 4 is proved to be correct when the theorem 1 is satisfied between the matrix H′QChat and the matrix HD.


The relationship associated with the loop 4 between the matrix H′QChat and the matrix HD verifies the equation (5) in a matrix given by the following equation (28).









[

Equation





25

]













for





0


j


J
-
2


,


and





0


l


L
-


1




[




I


(

p

j
,
l


)





I


(
0
)







I


(

p


j
+
1

,
l


)





I


(
0
)





]

.







(
28
)







Because HQChat including p1,l=0 also has a girth satisfying g≧6, the following equation (29) is established for the matrix of the equation (28).


[Equation 26]

pj,l−pj+1,l+0−0≠0 (mod p)   (29)


Therefore, it is verified that the corollary 4 is correct.


Because the column of p1,l=0 is removed from the matrix H′QChat, the condition under which the HQChat has a girth satisfying g≧6 are p≧L+1.


Next, a design method for will be explained.


It is clear from the above-mentioned theorem 3 that by designing the matrix HQC in such a way that this matrix satisfies the following conditions (i) and (ii), an LDPC code having a girth satisfying can be configured.


[Equation 27]

pj,l=j·p1,li (mod p), 0≦p1,li≦p−1, p1,l0≠p1,l1, l0≠l1.   (i)
p is a prime number, and J≧L, and p≧J.


Furthermore, in order to provide an LDPC code having an LDGM structure, it is clear from the theorem 3 and the corollary 4 that by designing the matrix HE1 in such a way that this matrix consists of both the matrix HQC which satisfies the following conditions (iii) and (iv), and the matrix HD, an LDPC code having an LDGM structure satisfying g≧6 can be configured.


[Equation 28]

pj,l=j·p1,li (mod p), 0<p1,li≦p−1, p1,l0≠p1,l1, l0≠l1.   (iii)
p is a prime number, and J≧L+1 and p≧J.   (ii)


In the corollary 4, because the column of p1,l=0 is removed from the matrix H′QChat, the condition under which the HQChat has a girth satisfying g≧6 are p≧L+1, as shown in the condition (iv).


By using the matrix HE1 as a base and then generating the matrix HE2 on which masking is performed according to an appropriate degree distribution, an irregular-QC LDPC code having a girth satisfying g≧6 can also be configured.


Hereafter, a concrete numerical example will be specified.


It is clear from the theorem 2 that the following matrix HQC has a girth satisfying g≧6 at p=3.









[

Equation





29

]












H
QC

=

[




I


(
0
)





I


(
0
)





I


(
0
)







I


(
0
)





I


(
1
)





I


(
2
)







I


(
0
)





I


(
2
)





I


(
1
)





]













The parity check matrix HM1 can be generated from this matrix HQC.










[

Equation





30

]








H

M





1


=

[




I


(
0
)





I


(
0
)





I


(
0
)




0


0





I


(
1
)





I


(
2
)





I


(
0
)





I


(
0
)




0





I


(
2
)





I


(
1
)




0



I


(
0
)





I


(
0
)





]














By masking this parity check matrix HM1, the parity check matrix HM2 can be generated.






[

Equation





31

]







H

M





2


=

[




I


(
0
)





I


(
0
)





I


(
0
)




0


0





I


(
1
)




0



I


(
0
)





I


(
0
)




0





I


(
2
)





I


(
1
)




0



I


(
0
)





I


(
0
)





]





It is guaranteed that all of these matrices HQC, HM1, and HM2 have a girth satisfying g≧6.


Furthermore, a matrix HQC and a matrix HA having a structure including p1,l=0 and having a girth satisfying g≧8 are prepared according to the same procedure, and an LDPC code having an LDGM structure satisfying g≧6 can be configured when a column of p1,l=0 is removed from each of these matrix HQC and matrix HA and the matrix HE1 is designed by using the matrix HD and the matrix HI.


By using the matrix HE1 as a base and then generating the matrix HE2 on which masking is performed according to an appropriate degree distribution, an irregular-QC LDPC code having a girth satisfying g≧6 can also be configured.


Hereafter, a concrete numerical example will be specified.


It is clear from the theorem 2 that the following matrix HQC has a girth satisfying g≧6 at p=7.











[

Equation





32

]





[




H
QC






H

A
1





]

=

[




I


(
0
)





I


(
0
)





I


(
0
)







I


(
0
)





I


(
1
)





I


(
2
)







I


(
0
)





I


(
2
)





I


(
4
)







I


(
0
)





I


(
3
)





I


(
6
)







I


(
0
)





I


(
4
)





I


(
1
)







I


(
0
)





I


(
5
)





I


(
3
)





]













The parity check matrix HE1 can be generated from the above-mentioned matrix.










[

Equation





33

]








H

E





1


=

[




I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)




0


0


0


0


0





I


(
1
)





I


(
2
)




0



I


(
0
)





I


(
0
)




0


0


0


0





I


(
2
)





I


(
4
)




0


0



I


(
0
)





I


(
0
)




0


0


0





I


(
3
)





I


(
6
)





I


(
0
)




0


0


0



I


(
0
)




0


0





I


(
4
)





I


(
1
)




0



I


(
0
)




0


0


0



I


(
0
)




0





I


(
5
)





I


(
3
)




0


0



I


(
0
)




0


0


0



I


(
0
)





]














By masking this parity check matrix HE1, the parity check matrix HE2 can be generated.










[

Equation





34

]








H

E





2


=

[




I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)




0


0


0


0


0





I


(
1
)




0


0



I


(
0
)





I


(
0
)




0


0


0


0





I


(
2
)





I


(
4
)




0


0



I


(
0
)





I


(
0
)




0


0


0




0



I


(
6
)





I


(
0
)




0


0


0



I


(
0
)




0


0





I


(
4
)




0


0



I


(
0
)




0


0


0



I


(
0
)




0





I


(
5
)





I


(
3
)




0


0



I


(
0
)




0


0


0



I


(
0
)





]














It is guaranteed that all of these matrices HE1 and HE2, and so on have a girth satisfying g≧6.


As can be seen from the above description, in accordance with this Embodiment 1, when generating a regular quasi-cyclic matrix HQC, the quasi-cyclic matrix generating unit 31 configures the regular quasi-cyclic matrix by combining cyclic permutation matrices I(pj,l) in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and the other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices I(pj,l) arranged in the 1st row differ from one another. Therefore, the present embodiment offers an advantage of being able to easily generate a parity check matrix HM having good performance and regularity, and so on.


Embodiment 2


In above-mentioned Embodiment 1, the example in which a parity check matrix HM having a girth satisfying g≧6, and so on are generated is shown. In contrast, in this Embodiment 2, generation of a parity check matrix HM having a girth satisfying g=8, and so on will be explained.


Hereafter, conditions under which such a matrix has a girth satisfying g≧8 will be considered.


More specifically, theorem 5, theorem 6 and corollary 7 which make such a matrix have a girth satisfying g≧8 will be explained.


Theorem 5 (Refer to the Above-Mentioned Reference 1)


In the Tanner graph expression of a quasi-cyclic matrix HQC, the necessary and sufficient conditions which make the quasi-cyclic matrix satisfy g≧8 is that the equation (5) is established and the following equation (30) is established.


[Equation 35]

pj0,j0−pj1,j0+pj1,l1−pj2,l1+pj2,l2−pj0,l2≠0 (mod p) for j0≠j1, j1≠j2, l0≠l1, l1≠l2.   (3 0)

Theorem 6


In a case of i=1, 2, or . . . , when all of piJ×piLi check matrices have a girth satisfying g≧8, there exists a (p1p2 . . . ) J×(p1p2 . . . ) (L1L2 . . . ) check matrix have a girth satisfying g≦8.


Hereafter, it will be proved that the theorem 6 is correct.


First, a check matrix HQC(i), where i=1 or 2, is defined as follows.

HQC(i)=(I(pj,l(i)))0≦j≦J−1,0≦l≦Li−1
0<pj,l(i)≦Li−1   [Equation 36]

where (I(pj,l(i)))0≦j≦J−1,0≦l≦Li−1 is a quasi-cyclic matrix which is configured by combining cyclic permutation matrices I(pj,l(i)), where 0≦j≦J−1 and 0≦l≦Li−1.


For example, in a case of I(pj,l(l)))0≦j≦1,0≦l≦2, the check matrix HQC(i) is given as follows.










[

Equation





37

]





[




I


(

p

0
,
0


(
1
)


)





I


(

p

0
,
1


(
1
)


)





I


(

p

0
,
2


(
1
)


)







I


(

p

1
,
0


(
1
)


)





I


(

p

1
,
1


(
1
)


)





I


(

p

1
,
2


(
1
)


)





]












Furthermore, the check matrix HQC(i) has a girth satisfying g≧8, pi≧Li, and pi is a prime number.


Moreover, a new check matrix HQC(1,2) is defined as follows.

HQC(1,2)=(I(pj,l(1,2))0≦j≦J−1,0≦l≦L1L2−1   [Equation 38]


Furthermore, in a case of 0≦j≦J−1, 0≦q≦L1−1, and 0≦r≦L2−1, the following equation (31) is defined.


[Equation 39]

pj,qL2+r(1,2)=pj,q(1)p2+pj,r(2)   (31)


In this case, when the following equation is defined: li=qiL2+ri, and it is verified that the following equations (32) and (33) are established from the conditional expressions for g≧8, the theorem 6 is proved to be correct.


[Equation 40]

d1ap2+d2a≠0 (mod p=p1p2)   (32)
d1bp2+d2b≠0 (mod p=p1p2)   (33)


First, the following equation is established.



d
1
a
=p
j

0

,q

0

(1)
−p
j

1

,q

0

(1)
+p
j

1

,q

1

(1)
−p
j

0

,q

1

(1)



d
2
a
=p
j

0

,r

0

(2)
−p
j

1

,r

0

(2)
+p
j

1

,r

1

(2)
−p
j

0

,r

1

(2)




d
1
b
=p
j

0

g

0

(1)
−p
j

1

,g

0

(1)
+p
j

1

,g

1

(1)
−p
j

2

,g

1

(1)
+p
j

2

,g

2

(1)
−p
j

0

,g

2

(1)




d
2
b
=p
j

0

,r

0

(2)
p
j

1

,r

0

(2)
+p
j

1

,r

1

(2)
−p
j

2

,r

1

(2)
+p
j

2

,r

2

(2)
−P
j

0

,r

2

(2)   [Equation 41]


At this time, because the following relationships hold: j0≠j1 and l0≠l1, a condition of q0≠q1 or r0≠r1 holds.


Assuming that the following relationships hold: r0≠r1 and q0=q1, because the following relationships hold: d1a=0 (mod p1) and d1b=0 (mod p1), and the check matrix HQC(2) satisfies the equations (5) and (30), the following relationships hold: d2a≠0 (mod p2) and d2b≠0 (mod p2).


Therefore, the above-mentioned equations (32) and (33) are established.


Furthermore, assuming that the following relationships hold: r0=r1 and q0≠q1, because the following relationships hold: d2a=0 (mod p2) and d2b=0 (mod p2), and the check matrix HQC(1) satisfies the equations (5) and (30), the following relationships hold: d1a≠0 (mod p1) and d1b≠0 (mod p1).


Therefore, the above-mentioned equations (32) and (33) are established.


In contrast, assuming that the following relationships hold: r0≠r1 and q0=q1, because the check matrices HQC(1) and HQC(2) satisfy the equations (5) and (30), the following relationships hold: d2a≠0 (mod p2) and d2b≠0 (mod p2) and the following relationships hold: d1a≠0 (mod p1) and d1b≠0 (mod p1).


Therefore, the above-mentioned equations (32) and (33) are established.


Because it can be verified in the above-mentioned way that the equations (32) and (33) are established, the theorem 6 is proved to be correct.


Therefore, the necessary and sufficient conditions for g≧8 are satisfied.


By repeating this process recursively for the plural numbers i, a (p1p2 . . . ) J×(p1p2 . . . ) (L1L2 . . . ) check matrix having a girth satisfying g≧8 can be configured.


Corollary 7 (Theorem)


In a case of i=1, 2, or . . . , when all the piJ×piLi check matrices have a girth satisfying g≧6, there exists a (p1p2 . . . ) J×(p1p2 . . . ) (L1L2 . . . ) check matrix having a girth satisfying g≧6.


Because the proof of the theorem 6 is verified by also using the conditional expression (5) for satisfying g≧6, the corollary 7 can be proved promptly to be correct.


Next, a design method for g≧8 will be explained.


It is clear from the above-mentioned theorem 6 that by designing a matrix HQC which satisfies the following conditions (i) and (vi), an LDPC code having a girth satisfying g≧8 can be configured.


The operation is ended at a time when the operation reaches a desired check matrix. Furthermore, the matrices HQC(i) can be identical to one another because the theorem 6 is satisfied even in this case.


[Equation 42]

Prepare a p1J×p1L1 check matrix HQC(1)=(I(pj,q(1)))0≦j≦J−1,0≦q≦L1−1 having a girth satisfying g≧8 .   (i)
Prepare a p2J×p2L2 check matrix HQC(2)=(I(pj,q(2)))0≦j≦J−1,0≦q≦L2−1 having a girth satisfying g≧8.   (ii)
Configure HQC(1,2)=(I(pj,l=qL2+r(1,2)=pj,q(1)p2+pj,r(2)))0≦j≦J−1,0≦l≦L1L2−1.   (iii)
Prepare a p3J×p3L3 check matrix HQC(3)=(I(pj,s(3)))0≦j≦J−1,0≦s≦L3−1 having a girth satisfying g≧8 .   (iv)
Configure HQC(1,2,3)≦(I(pj,k=lL3+s(1,2,3)=pj,l(1,2)p3+pj,s(3)))0≦j≦J−1,0≦k≦L1L2L3−1.   (v)
Extend the check matrix according to the same procedure.   (vi)


According to the above-mentioned procedure, by designing a parity check matrix HM1 by using a matrix HD in which a row of p1,l=0 is removed from the check matrix HQC including p1,l=0 and having a girth satisfying g≧8, an LDPC code having an LDGM structure satisfying g≧8 can be configured.


By using the matrix HM1 as a base and then generating a matrix HM2 on which masking is performed according to an appropriate degree distribution, an irregular-QC LDPC code having a girth satisfying g≧8 can also be configured.


Hereafter, a concrete numerical example will be specified.


The following matrix HQC(1) has been verified to have a girth satisfying g≧8 at p1=p2=3.











[

Equation





43

]







H
QC

(
1
)


=


H
QC

(
2
)


=

[




I


(
0
)





I


(
0
)







I


(
0
)





I


(
1
)







I


(
0
)





I


(
2
)





]









Furthermore
,

p
=



p
1



p
2


=
9










H
QC

=


H
QC

(

1
,
2

)


=

[




I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)







I


(
0
)





I


(
1
)





I


(
3
)





I


(
4
)







I


(
0
)





I


(
2
)





I


(
6
)





I


(
8
)





]















The parity check matrix HM1 can be generated from this matrix HQC.










[

Equation





44

]








H

M





1


=

[




I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)




0


0





I


(
1
)





I


(
3
)





I


(
4
)





I


(
0
)





I


(
0
)




0





I


(
2
)





I


(
6
)





I


(
8
)




0



I


(
0
)





I


(
0
)





]



















By masking this parity check matrix HM1, the parity check matrix HM2 can be generated.






[

Equation





45

]







H

M





2


=

[




I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)




0


0





I


(
1
)





I


(
3
)




0



I


(
0
)





I


(
0
)




0





I


(
2
)




0



I


(
8
)




0



I


(
0
)





I


(
0
)





]





It is guaranteed that all of these matrices HQC, HM1, and HM2 have a girth satisfying g≧8.


Furthermore, a matrix HQC and a matrix HA each having a structure including a submatrix in which all the elements in a column are pj,l=0, and having a girth satisfying g≧8 can be prepared according to the same procedure, and an LDPC code having an LDGM structure satisfying g≧8 can be configured when the submatrix in which all the elements in a column are pj,l=0 is removed from each of these matrices HQC and HA and a matrix HE1 is designed by using the matrix HD and a matrix HI.


By using the matrix HE1 as a base and then generating a matrix HE2 on which masking is performed according to an appropriate degree distribution, an irregular-QC LDPC code having a girth satisfying g≧8 can also be configured.


Hereafter, a concrete numerical example will be specified.


The following matrix has been verified to have a girth satisfying g≧8 at p1=p2=3.











[




H
QC

(
1
)







H

A
1


(
1
)





]

=


[




H
QC

(
2
)







H

A
1


(
2
)





]

=

[




I


(
0
)





I


(
0
)







I


(
0
)





I


(
1
)







I


(
0
)





I


(
2
)







I


(
0
)





I


(
3
)







I


(
0
)





I


(
4
)







I


(
0
)





I


(
5
)





]









Furthermore
,

p
=



p
1



p
2


=


49




[




H
QC






H

A
1





]

=


[




H
QC

(

1
,
2

)







H

A
1


(

1
,
2

)





]

=

[




I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)







I


(
0
)





I


(
1
)





I


(
7
)





I


(
8
)







I


(
0
)





I


(
2
)





I


(
14
)





I


(
16
)







I


(
0
)





I


(
3
)





I


(
21
)





I


(
24
)







I


(
0
)





I


(
4
)





I


(
28
)





I


(
32
)







I


(
0
)





I


(
5
)





I


(
35
)





I


(
40
)





]










[

Equation





46

]







The parity check matrix HE1 can be generated from the above-mentioned matrix.










H

E





1


=



[








I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)




0


0


0


0


0





I


(
1
)





I


(
7
)





I


(
8
)





I


(
0
)





I


(
0
)




0


0


0


0





I


(
2
)





I


(
14
)





I


(
16
)




0



I


(
0
)





I


(
0
)




0


0


0





I


(
3
)





I


(
21
)





I


(
24
)





I


(
0
)




0


0



I


(
0
)




0


0





I


(
4
)





I


(
28
)





I


(
32
)




0



I


(
0
)




0


0



I


(
0
)




0





I


(
5
)





I


(
35
)





I


(
40
)




0


0



I


(
0
)




0


0



I


(
0
)









]






[

Equation





47

]







By masking this parity check matrix HE1, the parity check matrix HE2 can be generated.










H

E





2


=



[




I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)




0


0


0


0


0





I


(
1
)




0



I


(
8
)





I


(
0
)





I


(
0
)




0


0


0


0





I


(
2
)





I


(
14
)




0


0



I


(
0
)





I


(
0
)




0


0


0




0



I


(
21
)





I


(
24
)





I


(
0
)




0


0



I


(
0
)




0


0





I


(
4
)




0



I


(
32
)




0



I


(
0
)




0


0



I


(
0
)




0





I


(
5
)





I


(
35
)




0


0


0



I


(
0
)




0


0



I


(
0
)





]






[

Equation











48

]







It is guaranteed that all of these matrices HE1 and HE2, and so on have a girth satisfying g≧6.


It is clear from the corollary 7 that according the same procedure, the matrices HQC, HM1, HM2, HE1, HE2, and so on which are guaranteed to have a girth satisfying g≧6 can also be designed.


Embodiment 3


In above-mentioned Embodiment 2, the example in which a parity check matrix HM having a girth satisfying g≧8, and so on are generated is shown. In contrast, in this Embodiment 3, generation of a parity check matrix HM having a girth satisfying g≧10, and so on will be explained.


Hereafter, conditions under which such a matrix has a girth satisfying g≧10 will be examined.


More specifically, theorem 8 and theorem 9 which make such a matrix have a girth satisfying g≧10 will be explained.


Theorem 8 (Refer to the Above-Mentioned Reference 1)


In the Tanner graph expression of a quasi-cyclic matrix HQC, the necessary and sufficient conditions which make the quasi-cyclic matrix satisfy g≧10 is that the equations (5) and (30) are established and the following equation (34) is established.


[Equation 49]

pj0,l0−pj1,l0+pj1,l1−pj2,l1+pj2,l2−pj3l2+pj3l3−pj0,l3≠0 (mod p) for j0≠j1, j1≠j2, j2≠j3, l016 l1, l1≠l2, l2≠l3.   (34)


A check matrix HQC(i) is defined as follows.

HQC(i)=(I(pj,l(i)))0≦j≦J−1,0≦l≦Li−1
0≦p(i)≦Li−1   [Equation 50]


The check matrix HQC(i) has a girth satisfying g10, the following relationship holds: pi≧Li, and pi is a natural number.


Moreover, a new check matrix HQC(1,2) is defined as follows.
HQC(1,2)=(I(pj,l(1,2)))0≦j≦J−1,0≦l≦L1L2−1   [Equation 51]


The following equation (35) is defined for the following relationships: 0≦j≦J−1, 0≦q≦L1−1, and 0≦r≦L2−1.


[Equation 52]

pj,qL2+r(1,2)=pj,q(1)p2pj,r(2)   (35)

Theorem 9


In a case of i=1, 2, or . . . , when all the piJ×piLi check matrices have a girth satisfying g≧10, there exists a (p1p2 . . . ) J×(p1p2 . . . ) (L1L2 . . . ) check matrix having a girth satisfying g≧8, there exists no (p1p2 . . . ) J×(p1p2 . . . ) (L1L2 . . . ) check matrix having a girth satisfying g≧10.


Hereafter, it will be proved that the theorem 9 is correct.


It can be drawn promptly from the theorem 6 that there exists a (p1p2 . . . ) J×(p1p2 . . . ) (L1L2 . . . ) check matrix having a girth g=8.


Whether or not this check matrix has a girth satisfying g≧10 is examined.


In this case, when the following equation is defined: li=qiL2+ri, and it can be verified that the following equations (36), (37) and (38) are established from the conditional expressions for g≧10, the (p1p2 . . . ) J×(p1p2 . . . ) (L1L2 . . . ) check matrix also has a girth satisfying g≧10.


[Equation 53]

d1ap2+d2a≠0 (mod p=p1p2)   (36)
d1bp2+d2b≠0 (mod p=p1p2)   (37)
d1cp2+p2c≠0 (mod p=p1p2)   (38)


First, the following equation holds.

d1a=pj0,q0(1)−pj1q0(1)+pj1q1(1)−pj0,q1(1)
d2a=pj0,r0(2)−pj1,r0(2)+pj1,r1(2)−pj0,r1(2)
d1b=pj0,q0(1)−pj1,q0(1)+pj1,q1(1)−pj2,q1(1)+pj2,q2(1)−pj0,q2(1)
d2b=pj0,r0(2)−pj1,r0(2)+pj1,r1(2)−pj2,r1(2)+pj2,r2(2)−pj0,r2(2)
d1c=pj0,q0(1)−pj1,q0(1)+pj1,q1(1)−pj2,q1(1)+pj2,q2(2)−pj3,q2(1)+pj3,q3(1)−pj0,q3(1)
d2c=pj0,r0(2)−pj1,r0(2)+pj1,r1(2)−pj2,r1(2)+pj2,r2(2)−pj3,r2(2)+pj3,r3(2)−pj0,r3(2)   [Equation 54]


Furthermore, it can be verified from the proof of the theorem 6 that the equations (36) and (37) hold.


At this time, because the following relationships hold: j0≠j1 and l0≠l1, the following condition holds: q0≠q1 or r0≠r1.


Furthermore, it is clear from the theorem 8 that the conditions: j0≠j1, j1≠j2, and j2≠j3 include the combination of j0≠=j2 and j1=j3.


In this case, when the following relationships are defined: l0=q0L2+r0, l1=q0L2+r1, l2=q1L2+r1, and l3=q1L2+r0, the equation (34) is as shown below and the theorem 8 is not satisfied.


Therefore, it is verified that there exists no (p1p2 . . . ) J×(p1p2 . . . ) (L1L2 . . . ) check matrix having a girth satisfying g≧10, it is proved that the theorem 9 is correct.











p


j
0

,

l
0



-

p


j
1

,

l
0



+

p


j
1

,

l
1



-

p


j
2

.

l
1



+

p


j
2

,

l
2



-

p


j
3

,

l
2



+

p


j
3

,

l
3



-

p


j
0

,

l
3




=



p


j
0

,

l
0



-

p


j
1

,

l
0



+

p


j
1

,

l
1



-

p


j
0

.

l
1



+

p


j
0

,

l
2



-

p


j
1

,

l
2



+

p


j
1

,

l
3



-

p


j
0

,

l
3




=



(



p


j
0

,

q
0



(
1
)


·

p
2


+

p


j
0

,

r
0



(
2
)



)

-

(



p


j
1

,

q
0



(
1
)


·

p
2


+

p


j
1

,

r
0



(
2
)



)

+

(



p


j
1

,

q
0



(
1
)


·

p
2


+

p


j
1

,

r
1



(
2
)



)

-

(



p


j
1

,

q
0



(
1
)


·

p
2


+

p


j
0

,

r
1



(
2
)



)

+

(



p


j
0

,

q
1



(
1
)


·

p
2


+

p


j
0

,

r
1



(
2
)



)

-

(



p


j
1

,

q
1



(
1
)


·

p
2


+

p


j
1

,

r
1



(
2
)



)

+

(



p


j
1

,

q
1



(
1
)


·

p
2


+

p


j
1

,

r
0



(
2
)



)

-

(



p


j
1

,

q
1



(
1
)


·

p
2


+

p


j
0

,

r
0



(
2
)



)


=




(


p


j
0

,

q
0



(
1
)


-

p


j
1

,

qg
0



(
1
)



)

·

p
2


+

(


p


j
0

,

r
0



(
2
)


-

p


j
1

,

r
0



(
2
)



)

+


(


p


j
1

,

q
0



(
1
)


-

p


j
0

,

q
0



(
1
)



)

·

p
2


+

(


p


j
1

,

r
1



(
2
)


-

p


j
0

,

r
1



(
2
)



)

+


(


p


j
0

,

q
1



(
1
)


-

p


j
1

,

q
1



(
1
)



)

·

p
2


+

(


p


j
0

,

r
1



(
2
)


-

p


j
1

,

r
1



(
2
)



)

+


(


p


j
1

,

q
1



(
1
)


-

p


j
0

,

q
1



(
1
)



)

·

p
2


+

(


p


j
1

,

r
0



(
2
)


-

p


j
0

,

r
0



(
2
)



)


=
0







[

Equation





55

]







Next, a design method for g≧10 will be explained.


An example showing a conditional expression which does not satisfy the equation (34) used for the proof of the theorem 9 will be specified.


The following matrix has been verified to have a girth satisfying g≧10 at p1=p2.










H
QC

(
1
)


=


H
QC

(
2
)


=

[




I


(
0
)





I


(
0
)







I


(
0
)





I


(
1
)







I


(
0
)





I


(
3
)





]






[

Equation











56

]







Therefore, the quasi-cyclic matrix HQC is given at p=p1p2=49 as follows.










H
QC

=


H
QC

(

1
,
2

)


=

[




I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)







I


(
0
)





I


(
1
)





I


(
7
)





I


(
8
)







I


(
0
)





I


(
3
)





I


(
21
)





I


(
24
)





]






[

Equation





57

]







The conditional expression which does not satisfy the equation (34) used for the proof of the theorem 9 is defined as a matrix consisting of a combination as shown below when the conditional expression is expressed in figure form.




embedded image


Concretely, the conditional expression is defined as follows.











p


j
0

,

l
0



-

p


j
1

,

l
0



+

p


j
1

,

l
1



-

p


j
2

.

l
3



+

p


j
2

,

l
2



-

p


j
3

,

l
2



+

p


j
3

,

l
3



-

p


j
0

,

l
3




=



p


j
0

,

l
0



-

p


j
1

,

l
0



+

p


j
1

,

l
1



-

p


j
0

.

l
1



+

p


j
0

,

l
2



-

p


j
1

,

l
2



+

p


j
1

,

l
3



-

p


j
0

,

l
3




=



(



p


j
0

,

q
0



(
1
)


·

p
2


+

p


j
0

,

r
0



(
2
)



)

-

(



p


j
1

,

q
0



(
1
)


·

p
2


+

p


j
1

,

r
0



(
2
)



)

+

(



p


j
1

,

q
0



(
1
)


·

p
2


+

p


j
1

,

r
1



(
2
)



)

-

(



p


j
0

,

q
0



(
1
)


·

p
2


+

p


j
0

,

r
1



(
2
)



)

+

(



p


j
0

,

q
1



(
1
)


·

p
2


+

p


j
0

,

r
1



(
2
)



)

-

(



p


j
1

,

q
1



(
1
)


·

p
2


+

p


j
1

,

r
1



(
2
)



)

+

(



p


j
1

,

q
1



(
1
)


·

p
2


+

p


j
1

,

r
0



(
2
)



)

-

(



p


j
1

,

q
1



(
1
)


·

p
2


+

p


j
0

,

r
0



(
2
)



)


=




(


p


j
0

,

q
0



(
1
)


-

p


j
1

,

q
0



(
1
)



)

·

p
2


+

(


p


j
0

,

r
0



(
2
)


-

p


j
1

,

r
0



(
2
)



)

+


(


p


j
1

,

q
0



(
1
)


-

p


j
0

,

q
0



(
1
)



)

·

p
2


+

(


p


j
1

,

r
1



(
2
)


-

p


j
0

,

r
1



(
2
)



)

+


(


p


j
0

,

q
1



(
1
)


-

p


j
1

,

q
0



(
1
)



)

·

p
2


+

(


p


j
0

,

r
1



(
2
)


-

p


j
1

,

r
1



(
2
)



)

+


(


p


j
1

,

q
1



(
1
)


-

p


j
0

,

q
1



(
1
)



)

·

p
2


+

(


p


j
1

,

r
0



(
2
)


-

p


j
0

,

r
0



(
2
)



)


=

0
=




(

0
-
0

)

·
7

+

(

0
-
0

)

+


(

0
-
0

)

·
7

+

(

1
-
0

)

+


(

0
-
1

)

·
7

+

(

0
-
1

)

+


(

1
-
0

)

·
7

+

(

0
-
0

)


=
0









[

Equation











59

]







Furthermore, when a pattern of g=8 is expressed by a combination of pj,q(1) and pj,r(2) in such a way as to be easy to understand, the pattern is given as follows and the following relationships hold: d1c=0 and d2c=0.




embedded image


For two arbitrary rows, this pattern configures loop 8 between two columns within a submatrix on a left side having the same size as the check matrix HQC(2), and two columns in another submatrix.


Therefore, what is necessary is just to perform the design in such a way that this type of loop 8 does not occur.


Concretely, when the check matrix HQC(1,2) is generated from the check matrix HQC(1) and the check matrix HQC(2), a portion of the matrix other than the submatrix on the left-hand side having the same size as the check matrix HQC(2) is masked, and a matrix which avoids loop 4 within this “portion of the matrix other than the submatrix on the left-hand side” is generated. For example, the following check matrix HQC(1,2) is generated.











H
QC

(

1
,
2

)


=

[




I


(
0
)





I


(
0
)





I


(
0
)




0





I


(
0
)





I


(
1
)




0



I


(
8
)







I


(
0
)





I


(
3
)





I


(
21
)





I


(
24
)





]


,





p
=



p
1



p
2


=


7
*
7

=
49







[

Equation





61

]







As a result, the above-mentioned type of loop 8 does not occur. Therefore, the following relationship holds: g≧10. This HQC(1,2) can be used as the check matrix just as it is. Furthermore, by repeating this process recursively for the plural numbers i, a (p1p2 . . . ) J×(p1p2 . . . ) (L1L2 . . . ) check matrix having a girth satisfying g≧10 can be configured.


In addition, at a position of a zero matrix within the check matrix HQC(1,2), a cyclic permutation matrix I(pj,l) which satisfies the condition g≧10 is found through a search.


For example, the following check matrix HQC(1,2) has a girth satisfying g≧10.











H
QC

(

1
,
2

)


=

[




I


(
0
)





I


(
0
)





I


(
0
)





I


(
44
)







I


(
0
)





I


(
1
)





I


(
43
)





I


(
8
)







I


(
0
)





I


(
3
)





I


(
21
)





I


(
24
)





]


,





P
=



P
1



P
2


=


7
*
7

=
49







[

Equation





62

]







Hereinafter, the same processes as those in the design methods for g≧6 and g≧8 will be carried out.


The following check matrix HQC(1,2) also has a girth satisfying g≧10.











H
QC

(

1
,
2

)


=

[




I


(
0
)





I


(
0
)





I


(
44
)





I


(
0
)




0


0





I


(
1
)





I


(
43
)





I


(
8
)





I


(
0
)





I


(
0
)




0





I


(
3
)





I


(
21
)





I


(
24
)




0



I


(
0
)





I


(
0
)





]


,





P
=



P
1



P
2


=


7
*
7

=
49







[

Equation





63

]








Embodiment 4


In this Embodiment 4, another method of forming a check matrix satisfying g≧10 will be shown.


First, a check matrix HQC(1) is defined as follows.


[Equation 64]

HQC(1)=(I(pj,l(1)))o≦j≦J=1,0≦j≦L1=1
0≦p1≦L1−1   (39)


Furthermore, the check matrix HQC(1) has a girth satisfying g≧10, the following relationship holds: p1≧L1, and p1 is a natural number.


Similarly, a check matrix HQC(a) is defined as follows.


[Equation 65]

HQC(a)=(I(pj,l(a)))0≦j≦J−1,0≦j≦L2−1
0≦pa≦La−1   (40)


Furthermore, the check matrix HQC(a) has a girth satisfying g≧10, the following relationship holds: pa≧La, and pa is a natural number.


Next, generate a plurality of matrices HQC(i)=(I(pj,r(i)(i))), i=2, 3, . . . which do not include two or more identical columns from the check matrix HQC(a) given by the equation (40).


Moreover, a new check matrix HQC(1,2,3, . . . ) is defined as follows.

HQC(1,2, . . . )=(I(pj,l(1,2, . . . )))0≦j≦J=1,0≦l≦L−1, p=p1p1   [Equation 66]


Furthermore, the following equation (41) is defined for

0≦j≦J−1, 0≦q≦L1−1, 0≦r(2)≦L2−1, 0≦r(3)≦L3−1, and . . .









[

Equtaion





67

]












p

j
,

l
^



=

{







p

j
,
q


(
1
)




p
a


+

p

j
,

r

(
2
)




(
2
)








if





q

=
0

,








p

j
,
q


(
1
)




p
a


+

p

j
,

r

(
3
)




(
3
)








if





q

=
1

,








p

j
,
q


(
1
)




p
a


+

p

j
,

r

(
4
)




(
4
)








if





q

=
2

,














.









where






(
41
)







l
^

=

{





qL
2

+

r

(
2
)








if





q

=
0

,







qL
3

+

r

(
3
)








if





q

=
1

,







qL
4

+

r

(
4
)








if





q

=
2

,














.









(
42
)







Also in the combination shown by [Equation 58 ], this HQC(1,2,3, . . . ) can satisfy the equation (34) and has a girth satisfying g≧10.


Next, an example will be shown.











H
QC

(
1
)


=


H
QC

(
a
)


=

[




I


(
0
)





I


(
0
)





I


(
0
)







I


(
0
)





I


(
2
)





I


(
3
)







I


(
0
)





I


(
6
)





I


(
14
)





]



,






p
1

=


p
a

=
23


,


L
1

=


L
a

=
3.






[

Equation





68

]







Furthermore, the following matrices are formed, as the plurality of matrices which do not include two or more identical columns, by using HQC(a)








H
QC

(
2
)


=

[




I


(
0
)





I


(
0
)







I


(
0
)





I


(
2
)







I


(
0
)





I


(
6
)





]


,


H
QC

(
3
)


=

[




I


(
0
)





I


(
0
)







I


(
0
)





I


(
3
)







I


(
0
)





I


(
14
)





]


,


H
QC

(
4
)


=

[




I


(
0
)





I


(
0
)







I


(
2
)





I


(
3
)







I


(
6
)





I


(
14
)





]


,






L
2

=


L
3

=


L
4

=
2.







The following check matrix is farmed by using these matrices.








H
QC

(

1
,
2
,
3
,
4

)


=

[




I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)







I


(
0
)





I


(
2
)





I


(
46
)





I


(
49
)





I


(
71
)





I


(
72
)







I


(
0
)





I


(
6
)





I


(
138
)





I


(
152
)





I


(
328
)





I


(
336
)





]


,





p
=



p
1



p
a


=


23
*
23

=
529.







This check matrix HQC(1,2,3,4) has a girth satisfying g≧10.


Hereinafter, the processes which are the same as those in the designing methods for g≧6 and g≧8.


The following check matrix HQC(1,2,3,4) also has a girth satisfying g≧10.








H
_

QC

(

1
,
2
,
3
,
4

)


=


[




I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)





I


(
0
)




0


0





I


(
2
)





I


(
46
)





I


(
49
)





I


(
71
)





I


(
72
)





I


(
0
)





I


(
0
)




0





I


(
6
)





I


(
138
)





I


(
152
)





I


(
328
)





I


(
336
)




0



I


(
0
)





I


(
0
)





]

.






Embodiment 5


In above-mentioned Embodiments 1 to 3, the example in which the transmitter 1 and the receiver 2 are connected to each other via the channel 3 is shown. As an alternative, the transmitter 1 and the receiver 2 can be connected to each other via a radio channel.



FIG. 5 shows an example in which a mobile terminal 100 a base station 200 are connected to each other via a radio channel. Each of the mobile terminal 100 and the base station 200 is provided with a transmitter 1 (an LDPC encoder 11 and a modulator 12) and a receiver 2 (a demodulator 21 and an LDPC decoder 22).


Reference numeral 101 denotes an antenna of the mobile terminal 100, and reference numeral 201 denotes an antenna of the base station 200.


For example, when the mobile terminal 100 transmits data to the base station 200, the LDPC encoder 11 of the mobile terminal 100 generates a codeword from the data which is the target for transmission (encodes the data in units of a packet), and the modulator 12 of the mobile terminal 100 modulates the codeword and sends out the modulated signal onto a radio channel via the antenna 101, in the same way that those in accordance with each of above-mentioned Embodiments 1 and 2 do.


When the antenna 201 receives the modulated signal (the signal including an error occurring during transmission via the radio channel) transmitted from the mobile terminal 100, the demodulator 21 of the base station 200 demodulates the modulated signal to output the codeword to the LDPC decoder 22.


When receiving the codeword from the demodulator 21, the LDPC decoder 22 of the base station 200 carries out the same decoding processing as that in each of above-mentioned Embodiments 1 and 2 so as to decode the codeword into the data which is the target for transmission and then transfer this data to a communication destination not shown via a network.


When decoding the codeword into the data which is the target for transmission, the LDPC decoder 22 performs an error correction on the data in units of a packet and notifies whether it has succeeded in performing the error correction to an upper layer.


In contrast, in a case in which the base station 200 transmits data to the mobile terminal 100, when receiving the data which is the target for transmission from a sender not shown, the LDPC encoder 11 of the base station 200 generates a codeword from the data which is the target for transmission (encodes the data in units of a packet), the modulator 12 of the base station 200 modulates the codeword and sends out the modulated signal onto the radio channel via the antenna 201, in the same way that that according to each of above-mentioned Embodiments 1 and 2 does.


When the antenna 101 receiving the modulated signal (the signal including an error occurring during transmission via the radio channel) transmitted from the base station 200, the demodulator 21 of the mobile terminal 100 demodulates to the modulated signal and outputs the codeword to the LDPC decoder 22.


When receiving the codeword from the demodulator 21, the LDPC decoder 22 of the mobile terminal 100 carries out the same decoding processing as that in each of above-mentioned Embodiments 1 and 2 so as to decode the codeword into the data which is the target for transmission.


When decoding the codeword into the data which is the target for transmission, the LDPC decoder 22 performs an error correction on the data in units of a packet and notifies whether it has succeeded in performing the error correction to an upper layer.


INDUSTRIAL APPLICABILITY

As mentioned above, in the check matrix generating device, the check matrix generating method, the encoder, the transmitter, the decoder, and the receiver in accordance with the present invention, when generating a regular quasi-cyclic matrix, the quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and the other matrix elements are “0”s in such a way that a plurality of cyclic permutation matrices arranged in a specific row differ from one another. Therefore, the present invention is suitable, as an encoding system, for use in a check matrix generating device, a check matrix generating method, an encoder, a transmitter, a decoder, a receiver, and so on in a communications system which uses LDPC codes.

Claims
  • 1. A check matrix generating device provided with a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(pj,l) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(pj,l) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates, a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, and a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, wherein said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
  • 2. The check matrix generating device according to claim 1, wherein in a case in which the number of cyclic permutation matrices arranged in the row direction is J and the number of cyclic permutation matrices arranged in the column direction is L, when J is equal to or larger than L, p which is a size of each cyclic permutation matrix is equal to or larger than J, a cyclic permutation matrix with j rows and l columns is pj,l=j·(p1,l(mod p)) for each cyclic permutation matrix, the quasi-cyclic matrix generating means generates the quasi-cyclic matrix in which all cyclic permutation matrices p1,l differ from one another in each column at 0≦p1,l≦p−1.
  • 3. The check matrix generating device according to claim 1, wherein in a case in which the quasi-cyclic matrix generating means places a zero matrix at a 0th row, the number of cyclic permutation matrices arranged in the row direction is J and the number of cyclic permutation matrices arranged in the column direction is L+1, when J is equal to or larger than L+1, p which is a size of each cyclic permutation matrix is equal to or larger than J, a cyclic permutation matrix with j rows and 1 columns is pj,l=j·(p1,l(mod p)) for each cyclic permutation matrix, the quasi-cyclic matrix generating means generates the quasi-cyclic matrix in which all cyclic permutation matrices p1,ldiffer from one another in each column at 0≦p1,l≦p−1.
  • 4. The check matrix generating device according to claim 1, wherein the quasi-cyclic matrix generating means configures a check matrix HQC(1,2), as the regular quasi-cyclic matrix, from a p1J×p1L1 check matrix HQC(1) whose girth is six or more and a p2J×p2L2 check matrix HQC(2) whose girth is six or more.
  • 5. The check matrix generating device according to claim 4, wherein the quasi-cyclic matrix generating means configures a check matrix HQC(1,2,3), as the regular quasi-cyclic matrix, from a p3J×p3L3 check matrix HQC(3) whose girth is six or more and the check matrix HQC(1,2).
  • 6. The check matrix generating device according to claim 5, wherein the quasi-cyclic matrix generating means configures a check matrix HQC(1,2,3,4,5,6, . . . ), as the regular quasi-cyclic matrix, from a pkJ×pkLk check matrix HQC(k) (k=4,5, 6, . . .) whose girth is six or more and the check matrix HQC(1,2,3).
  • 7. The check matrix generating device according to claim 1, wherein the quasi-cyclic matrix generating means configures a check matrix HQC(1,2), as the regular quasi-cyclic matrix, from a p1J×p1L1 check matrix HQC(1) whose girth is eight or more and a p2J×p2L2 check matrix HQC(2) whose girth is eight or more.
  • 8. The check matrix generating device according to claim 7, wherein the quasi-cyclic matrix generating means configures a check matrix HQC(1,2,3), as the regular quasi-cyclic matrix, from a p3J×p3L3 check matrix HQC(3) whose girth is eight or more and the check matrix HQC(1,2).
  • 9. The check matrix generating device according to claim 8, wherein the quasi-cyclic matrix generating means configures a check matrix HQC(1,2,3,4,5,6, . . . ), as the regular quasi-cyclic matrix, from a pkJ×pkLk check matrix HQC(k) (k=4, 5, 6, . . . ) whose girth is eight or more and the check matrix HQC(1,2,3).
  • 10. The check matrix generating device according to claim 1, wherein the quasi-cyclic matrix generating means configures a check matrix HQC(1,2), as the regular quasi-cyclic matrix, from a p1J×p1L1 check matrix HQC(1) whose girth is ten or more and a p2J×p2L2 check matrix HQC(2) whose girth is ten or more, and, when configuring said check matrix HQC(1,2), masks matrices other than a submatrix on a left side having a same size as said check matrix HQC(2).
  • 11. The check matrix generating device according to claim 10, wherein the quasi-cyclic matrix generating means searches for a cyclic permutation matrix I(pj,l) which satisfies a condition that a girth is ten or more in a zero matrix within the check matrix HQC(1,2).
  • 12. A check matrix generating method including a quasi-cyclic matrix generating step of a quasi-cyclic matrix generating means arranging J cyclic permutation matrices I(pj,l) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(pj,l) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating step of a mask matrix generating means generating a mask matrix which can adapt to a plurality of coding rates, a masking step of a masking means converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, and a parity check matrix generating step of a parity check matrix generating means placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, wherein said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
  • 13. An encoder provided with a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(pj,l) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(pj,l) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates, a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, and a codeword generating means for generating a codeword from a message which is a transmission object by using the parity check matrix generated by said parity check matrix generating means, wherein said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
  • 14. A transmitter provided with a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(pj,l) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(pj,l) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates, a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, a codeword generating means for generating a codeword from a message which is a transmission object by using the parity check matrix generated by said parity check matrix generating means, and a modulating means for modulating the codeword generated by said codeword generating means to transmit a modulated signal, wherein said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
  • 15. A decoder provided with a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(pj,l) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(pj,l) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates, a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, and a decoding means for decoding a codeword generated by an encoder into a message by using the parity check matrix generated by said parity check matrix generating means, wherein said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
  • 16. A receiver provided with a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(pj,l) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(pj,l) in a column direction to generate a regular quasi-cyclic matrix having uniform row and column weights, a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates, a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix, a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code, a demodulating means for receiving a modulated signal transmitted from a transmitter, and for demodulating said modulated signal to output a codeword, and a decoding means for decoding the codeword outputted from said demodulating means into a message by using the parity check matrix generated by said parity check matrix generating means, wherein said quasi-cyclic matrix generating means configures the regular quasi-cyclic matrix by combining cyclic permutation matrices in each of which matrix elements whose row number is r (0≦r≦p−1) and whose column number is (r+pj,l) mod p are “1”s, and other matrix elements are “0”s, and a plurality of cyclic permutation matrices arranged at a specific row differ from one another.
  • 17. A check matrix generating device characterized in comprising: a quasi-cyclic matrix generating means for arranging J cyclic permutation matrices I(pj,l) with p rows and q columns (0≦j≦J−1, 0≦l≦L−1) in a row direction and also arranging L cyclic permutation matrices I(pj,l) in a column direction so as to generate a regular quasi-cyclic matrix having uniform row and column weights; a mask matrix generating means for generating a mask matrix which can adapt to a plurality of coding rates; a masking means for converting a specific cyclic permutation matrix within the regular quasi-cyclic matrix generated by said quasi-cyclic matrix generating means by using the mask matrix generated by said mask matrix generating means into a zero matrix so as to generate an irregular masked quasi-cyclic matrix; and a parity check matrix generating means for placing both the masked quasi-cyclic matrix generated by said masking means, and a matrix in which said cyclic permutation matrices are arranged in a stair-step shape at predetermined positions respectively so as to generate an irregular parity check matrix for LDPC code.
Priority Claims (1)
Number Date Country Kind
2007-172542 Jun 2007 JP national
PCT Information
Filing Document Filing Date Country Kind 371c Date
PCT/JP2008/001673 6/26/2008 WO 00 2/19/2010
Publishing Document Publishing Date Country Kind
WO2009/004773 1/8/2009 WO A
US Referenced Citations (2)
Number Name Date Kind
7600173 Matsumoto Oct 2009 B2
20070277082 Matsumoto Nov 2007 A1
Foreign Referenced Citations (4)
Number Date Country
1 715 588 Oct 2006 EP
WO 2006057879 Jun 2006 WO
WO 2006106841 Oct 2006 WO
WO-2007072721 Jun 2007 WO
Related Publications (1)
Number Date Country
20100211846 A1 Aug 2010 US