Method for encoding data message K' for transmission from sending station to receiving station as well as method for decoding, sending station, receiving station and software
View Patent ↗Irregular LDPC codes have a construction which allows one to obtain a number of codes with different length from a single prototype code with a parity check matrix given by H=[Hz Hi], where Hz specifies the well-known zigzag pattern in the corresponding Tanner graph. The parity check matrices for longer codes are obtained as [Hz′Πdiag(Hi, . . . , Hi)], where Hz′ specifies a longer zigzag pattern depending on the number of matrices Hi used, and Π represents some permutation. This allows one to construct the decoder for a longer code by reusing hardware components developed for decoding the prototype code.
1. A method for encoding a data message K′ for transmission from a sending station to a receiving station, comprising:
obtaining a matrix H i ′, where H i ′ is a w*m 0 ×w*(n 0 −m 0 ) matrix, by interleaving rows of a block-diagonal matrix H i ′ (w) having w matrices H i of dimension m 0 ×(n 0 −m 0 ) in the diagonal and 0 in all other positions, where w and n 0 are integer numbers, H=[H z H i ] is a parity check matrix of a code with length n 0 , and H z is a m 0 ×m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions; and
generating a codeword c′ of length n=w*n 0 by and/or mathematically writable as multiplication of the data message K′ with a generator matrix G′, c′=K′G′, where the generator matrix G′ is a solution of a matrix equation H′G′ T =0, with H′=[H z ′ H i ′], and H z ′ is a w*m 0 ×w*m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions.
2. The method according to claim 1 , further comprising encoding a data message K using a generator matrix G to generate a codeword c of length n 0 , c=KG, where the generator matrix G is a solution of a matrix equation HG T =0, with H=[H z H i ] and H z is a m 0 ×m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions.
3. The method according to claim 2 , further comprising obtaining H i by interleaving rows of a first matrix H u , which is a block matrix consisting of permutation matrices and zero matrices.
4. The method according to claim 3 , wherein the generator matrix G′ is given by G′=[((H z ′) −1 H i ′) T I].
5. The method according to claim 4 , wherein a rectangular interleaver is used for interleaving rows of the block-diagonal matrix H i ′ (w) , that is by using the permutation Π(i)=(i mod m 0 )w+└i/m 0 ┘,i=0 . . . wm 0 −1.
6. The method according to claim 5 , further comprising generating the first matrix H u by expansion of a template matrix P of dimension s×t, the expansion made by replacing all elements p ij of the template matrix P which satisfy the condition 0≦p ij <∞ with cyclic permutation matrices of dimension p×p, having a value 1 at positions (r,(p ij +r) mod p), with r=0 . . . p−1, i=0 . . . s−1 and j=0 . . . t−1, and replacing all other elements p ij which satisfy the condition p ij =∞ or p ij <0 with p×p zero matrices, where p ij are some integers.
7. The method according to claim 6 , wherein a rectangular interleaver is used for interleaving rows of the first matrix H u , that is by using the permutation
∏
(
i
)
=
(
i
mod
p
)
s
+
⌊
i
p
⌋
,
i
=
0
...
sp
-
1.
8. A sending station, comprising;
an encoding unit encoding a data message K′ into a codeword c′ of length n=w*n 0 , where w and n 0 are integer numbers, and generating the codeword c′ is achieved by and/or mathematically writable as multiplication of the data message K′ with a generator matrix G′, c′=K′G′, and the generator matrix G′ is a solution of a matrix equation H′G′ T =0, with H′=[H z ′ H i ′], where H z ′ is a w*m 0 ×w*m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions and H i ′ is a w*m 0 ×w*(n 0 −m 0 ) matrix, where H i ′ is a matrix obtained by interleaving rows of a block-diagonal matrix H i ′ (w) having w matrices H i of dimension m 0 ×(n 0 −m 0 ) in the diagonal and 0 in all other positions, and H i is further chosen such that H=[H z H i ] is a parity check matrix of a code with length n 0 , where H z is a m 0 ×m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions.
9. A method for decoding a data message K′ from a codeword c′ received from a sending station, comprising:
using a parity check matrix H′ to decode the codeword c′, where H′=[H z ′ H i ′], H z ′ is a w*m 0 ×w*m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions, the codeword c′ is of length n=w*n 0 , where w and n 0 are integer numbers, and the codeword c′ is generated by and/or mathematically writable as multiplication of the data message K′ with a generator matrix G′, c′=K′G′, where the generator matrix G′ is a solution of a matrix equation H′G′ T =0, and H i ′ is a w*m 0 ×w*(n 0 −m 0 ) matrix obtained by interleaving rows of a block-diagonal matrix H i ′ (w) having w matrices H i of dimension m 0 ×(n 0 −m 0 ) in the diagonal and 0 in all other positions, where H=[H z H i ] is a parity check matrix of a code with length n 0 , and H z is a m 0 ×m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions.
10. A receiving station, comprising
at least one unit decoding a codeword c′ received from a sending station, using a parity check matrix H′ to decode the codeword c′, where H′=[H z ′ H i ′], H z ′ is a w*m 0 ×w*m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions, the codeword c′ is of length n=w* n 0 , where w and n 0 are integer numbers, and the codeword c′ is generated by and/or mathematically writable as multiplication of the data message K′ with a generator matrix G′, c′=K′G′, where the generator matrix G′ is a solution of a matrix equation H′G′ T =0, and H i ′ is a w*m 0 ×w*(n 0 −m 0 ) matrix obtained by interleaving rows of a block-diagonal matrix H i ′ (w) having w matrices H i of dimension m 0 ×(n 0 −m 0 ) in the diagonal and 0 in all other positions, where H=[H z H i ] is a parity check matrix of a code with length n 0 , and H z is a m 0 ×m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions.
11. At least one computer-readable medium encoded with a computer program for encoding a data message K′ that when executed by a computer causes the computer to output a codeword c′ from an input data message K′, by a method comprising:
obtaining a matrix H i ′, where H i ′ is a w*m 0 ×w*(n 0 −m 0 ) matrix, by interleaving rows of a block-diagonal matrix H i ′ (w) having w matrices H i of dimension m 0 ×(n 0 −m 0 ) in the diagonal and 0 in all other positions, where w and n 0 are integer numbers, H=[H z H i ] is a parity check matrix of a code with length n 0 , and H z is a m 0 ×m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions; and
generating a codeword c′ of length n=w*n 0 by and/or mathematically writable as multiplication of the data message K′ with a generator matrix G′, c′=K′G′, where the generator matrix G′ is a solution of a matrix equation H′G′ T =0, with H′=[H z ′ H i ′], and H z ′ is a w*m 0 ×w*m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions.
12. At least one computer-readable medium encoded with a computer program for decoding a codeword c′, that when executed by a computer causes the computer to output a data message K′ from an input codeword c′, by a method comprising:
using a parity check matrix H′ to decode the codeword c′, where H′=[H z ′ H i ′], is a w*m 0 ×w*m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions, the codeword c′ is of length n=w*n 0 , where w and n 0 are integer numbers, and the codeword c′ is generated by and/or mathematically writable as multiplication of the data message K′ with a generator matrix G′, c′=K′G′, where the generator matrix G′ is a solution of a matrix equation H′G′ T =0, and H i ′ is a w*m 0 ×w*(n 0 −m 0 ) matrix obtained by interleaving rows of a block-diagonal matrix H i ′ (w) having w matrices H i of dimension m 0 ×(n 0 −m 0 ) in the diagonal and 0 in all other positions, where H=[H z H i ] is a parity check matrix of a code with length n 0 , and H z is a m 0 ×m 0 matrix with two adjacent diagonals of 1's having 0 in all other positions.