Apparatus and method for channel encoding/decoding in communication or broadcasting system
11750322 · 2023-09-05
Assignee
Inventors
- Kyungjoong KIM (Suwon-si, KR)
- Seho Myung (Seoul, KR)
- Seokki Ahn (Suwon-si, KR)
- Hongsil Jeong (Suwon-si, KR)
- Min Jang (Seongnam-si, KR)
Cpc classification
H03M13/1111
ELECTRICITY
H03M13/1102
ELECTRICITY
H03M13/1137
ELECTRICITY
H03M13/116
ELECTRICITY
H03M13/616
ELECTRICITY
International classification
H04L1/00
ELECTRICITY
H03M13/00
ELECTRICITY
Abstract
A method for channel encoding in a communication or broadcasting system is provided. The method includes determining a block size Z, and performing encoding based on the block size and a first matrix corresponding to the block size, wherein the first matrix is determined based on information and a plurality of second matrices, and wherein a part of a column index indicating a position of a non-zero element in each row of the information includes an index according to mathematical expression 22 above.
Claims
1. A method of channel encoding in a communication system performed by an apparatus that includes a transceiver and at least one processor coupled with the transceiver, the method comprising: identifying, by the at least one processor, a block size based on input bits; performing, by the at least one processor, an encoding procedure for encoding the input bits based on a parity check matrix corresponding to the block size; and transmitting, by the transceiver, the encoded input bits, wherein the parity check matrix is identified based on a base matrix, wherein the base matrix includes a submatrix consisting of a plurality of rows and columns, wherein column indices, which correspond to non-zero elements included in two or more successive rows in the submatrix, include different values for the two or more successive rows, wherein the parity check matrix is identified based on a value of 1 in the base matrix being replaced by matrices that are not a 0-matrix, and wherein a number of rows in the submatrix is less than a number of rows in the base matrix, and a number of columns in the submatrix is less than a number of columns in the base matrix.
2. The method of claim 1, wherein the block size is selected based on block size groups, wherein the block size groups include a first block size group (Z1) including 24, 48, 96, 192, 384, wherein the block size groups include a second block size group (Z2) including 22, 44, 88, 176, 352, wherein the block size groups include a third block size group (Z3) including 20, 40, 80, 160, 320, wherein the block size groups include a fourth block size group (Z4) including 18, 36, 72, 144, 288, wherein the block size groups include a fifth block size group (Z5) including 16, 32, 64, 128, 256, wherein the block size groups include a sixth block size group (Z6) including 15, 30, 60, 120, 240, wherein the block size groups include a seventh block size group (Z7) including 14, 28, 56, 112, 224, and wherein the block size groups include an eighth block size group (Z8) including 26, 52, 104, 208.
3. The method of claim 1, wherein the submatrix does not include column indices 0 and 1 of the base matrix.
4. The method of claim 1, wherein the matrices are identified by circularly shifting an identity matrix based on a value identified by applying a modulo operation of the block size to an element of a predetermined matrix.
5. The method of claim 1, wherein a plurality of rows of the base matrix has values as column indices: 0, 1, 3, 12, 16, 21, 22, and 27 for a row of the plurality of rows, 0, 6, 10, 11, 13, 17, 18, 20, and 28 for a row of the plurality of rows, 0, 1, 4, 7, 8, 14, and 29 for a row of the plurality of rows, 0, 1, 3, 12, 16, 19, 21, 22, 24, and 30 for a row of the plurality of rows, 0, 1, 10, 11, 13, 17, 18, 20, and 31 for a row of the plurality of rows, 1, 2, 4, 7, 8, 14, and 32 for a row of the plurality of rows, 0, 1, 12, 16, 21, 22, 23, and 33 for a row of the plurality of rows, 0, 1, 10, 11, 13, 18, and 34 for a row of the plurality of rows, 0, 3, 7, 20, 23, and 35 for a row of the plurality of rows, 0, 12, 15, 16, 17, 21, and 36 for a row of the plurality of rows, 0, 1, 10, 13, 18, 25, and 37 for a row of the plurality of rows, 1, 3, 11, 20, 22, and 38 for a row of the plurality of rows, 0, 14, 16, 17, 21, and 39 for a row of the plurality of rows, 1, 12, 13, 18, 19, and 40 for a row of the plurality of rows, 0, 1, 7, 8, 10, and 41 for a row of the plurality of rows, 0, 3, 9, 11, 22, and 42 for a row of the plurality of rows, 1, 5, 16, 20, 21, and 43 for a row of the plurality of rows, 0, 12, 13, 17, and 44 for a row of the plurality of rows, 1, 2, 10, 18, and 45 for a row of the plurality of rows, and 0, 3, 4, 11, 22, and 46 for a row of the plurality of rows, and wherein a plurality of rows of the submatrix has values as column indices: 3, 12, 16, 21, 22, and 27 for a row of the plurality of rows, 6, 10, 11, 13, 17, 18, 20, and 28 for a row of the plurality of rows, 4, 7, 8, 14, and 29 for a row of the plurality of rows, 3, 12, 16, 19, 21, 22, 24, and 30 for a row of the plurality of rows, 10, 11, 13, 17, 18, 20, and 31 for a row of the plurality of rows, 2, 4, 7, 8, 14, and 32 for a row of the plurality of rows, 12, 16, 21, 22, 23, and 33 for a row of the plurality of rows, 10, 11, 13, 18, and 34 for a row of the plurality of rows, 3, 7, 20, 23, and 35 for a row of the plurality of rows, 12, 15, 16, 17, 21, and 36 for a row of the plurality of rows, 10, 13, 18, 25, and 37 for a row of the plurality of rows, 3, 11, 20, 22, and 38 for a row of the plurality of rows, 14, 16, 17, 21, and 39 for a row of the plurality of rows, 12, 13, 18, 19, and 40 for a row of the plurality of rows, 7, 8, 10, and 41 for a row of the plurality of rows, 3, 9, 11, 22, and 42 for a row of the plurality of rows, 5, 16, 20, 21, and 43 for a row of the plurality of rows, 12, 13, 17, and 44 for a row of the plurality of rows, 2, 10, 18, and 45 for a row of the plurality of rows, and 3, 4, 11, 22, and 46 for a row of the plurality of rows.
6. A method of channel decoding in a communication system performed by an apparatus that includes a transceiver and at least one processor coupled with the transceiver, the method comprising: receiving, by the transceiver, a signal corresponding to input bits; identifying, by the at least one processor, a block size based on the input bits; and performing, by the at least one processor, a decoding procedure for decoding the signal based on a parity check matrix corresponding to the block size, wherein the parity check matrix is identified based on a base matrix, wherein the base matrix includes a submatrix consisting of a plurality of rows and columns, wherein column indices, which correspond to non-zero elements included in two or more successive rows in the submatrix, include different values for the two or more successive rows, wherein the parity check matrix is identified based on a value of 1 in the base matrix being replaced by matrices that are not a 0-matrix, and wherein a number of rows in the submatrix is less than a number of rows in the base matrix, and a number of columns in the submatrix is less than a number of columns in the base matrix.
7. The method of claim 6, wherein the block size is selected based on block size groups, wherein the block size groups include a first block size group (Z1) including 24, 48, 96, 192, 384, wherein the block size groups include a second block size group (Z2) including 22, 44, 88, 176, 352, wherein the block size groups include a third block size group (Z3) including 20, 40, 80, 160, 320, wherein the block size groups include a fourth block size group (Z4) including 18, 36, 72, 144, 288, wherein the block size groups include a fifth block size group (Z5) including 16, 32, 64, 128, 256, wherein the block size groups include a sixth block size group (Z6) including 15, 30, 60, 120, 240, wherein the block size groups include a seventh block size group (Z7) including 14, 28, 56, 112, 224, and wherein the block size groups include an eighth block size group (Z8) including 26, 52, 104, 208.
8. The method of claim 6, wherein the submatrix does not include column indices 0 and 1 of the base matrix.
9. The method of claim 8, wherein the matrices are identified by circularly shifting an identity matrix based on a value identified by applying a modulo operation of the block size to an element of a predetermined matrix.
10. The method of claim 6, wherein a plurality of rows of the base matrix has values as column indices: 0, 1, 3, 12, 16, 21, 22, and 27 for a row of the plurality of rows, 0, 6, 10, 11, 13, 17, 18, 20, and 28 for a row of the plurality of rows, 0, 1, 4, 7, 8, 14, and 29 for a row of the plurality of rows, 0, 1, 3, 12, 16, 19, 21, 22, 24, and 30 for a row of the plurality of rows, 0, 1, 10, 11, 13, 17, 18, 20, and 31 for a row of the plurality of rows, 1, 2, 4, 7, 8, 14, and 32 for a row of the plurality of rows, 0, 1, 12, 16, 21, 22, 23, and 33 for a row of the plurality of rows, 0, 1, 10, 11, 13, 18, and 34 for a row of the plurality of rows, 0, 3, 7, 20, 23, and 35 for a row of the plurality of rows, 0, 12, 15, 16, 17, 21, and 36 for a row of the plurality of rows, 0, 1, 10, 13, 18, 25, and 37 for a row of the plurality of rows, 1, 3, 11, 20, 22, and 38 for a row of the plurality of rows, 0, 14, 16, 17, 21, and 39 for a row of the plurality of rows, 1, 12, 13, 18, 19, and 40 for a row of the plurality of rows, 0, 1, 7, 8, 10, and 41 for a row of the plurality of rows, 0, 3, 9, 11, 22, and 42 for a row of the plurality of rows, 1, 5, 16, 20, 21, and 43 for a row of the plurality of rows, 0, 12, 13, 17, and 44 for a row of the plurality of rows, 1, 2, 10, 18, and 45 for a row of the plurality of rows, and 0, 3, 4, 11, 22, and 46 for a row of the plurality of rows, and wherein a plurality of rows of the submatrix has values as column indices: 3, 12, 16, 21, 22, and 27 for a row of the plurality of rows, 6, 10, 11, 13, 17, 18, 20, and 28 for a row of the plurality of rows, 4, 7, 8, 14, and 29 for a row of the plurality of rows, 3, 12, 16, 19, 21, 22, 24, and 30 for a row of the plurality of rows, 10, 11, 13, 17, 18, 20, and 31 for a row of the plurality of rows, 2, 4, 7, 8, 14, and 32 for a row of the plurality of rows, 12, 16, 21, 22, 23, and 33 for a row of the plurality of rows, 10, 11, 13, 18, and 34 for a row of the plurality of rows, 3, 7, 20, 23, and 35 for a row of the plurality of rows, 12, 15, 16, 17, 21, and 36 for a row of the plurality of rows, 10, 13, 18, 25, and 37 for a row of the plurality of rows, 3, 11, 20, 22, and 38 for a row of the plurality of rows, 14, 16, 17, 21, and 39 for a row of the plurality of rows, 12, 13, 18, 19, and 40 for a row of the plurality of rows, 7, 8, 10, and 41 for a row of the plurality of rows, 3, 9, 11, 22, and 42 for a row of the plurality of rows, 5, 16, 20, 21, and 43 for a row of the plurality of rows, 12, 13, 17, and 44 for a row of the plurality of rows, 2, 10, 18, and 45 for a row of the plurality of rows, and 3, 4, 11, 22, and 46 for a row of the plurality of rows.
11. An apparatus for performing channel encoding in a communication system, the apparatus comprising: a transceiver; and at least one processor coupled with the transceiver and configured to: identify a block size based on input bits, perform an encoding procedure for encoding the input bits based on a parity check matrix corresponding to the block size, and control the transceiver to transmit the encoded input bits, wherein the first matrix is identified based on a base matrix, wherein the base matrix includes a submatrix consisting of a plurality of rows and columns, wherein column indices, which correspond to non-zero elements included in two or more successive rows in the submatrix, include different values for the two or more successive rows, wherein the parity check matrix is identified based on a value of 1 in the base matrix being replaced by matrices that are not a 0-matrix, and wherein a number of rows in the submatrix is less than a number of rows in the base matrix, and a number of columns in the submatrix is less than a number of columns in the base matrix.
12. The apparatus of claim 11, wherein the block size is selected based on block size groups, wherein the block size groups include a first block size group (Z1) including 24, 48, 96, 192, 384, wherein the block size groups include a second block size group (Z2) including 22, 44, 88, 176, 352, wherein the block size groups include a third block size group (Z3) including 20, 40, 80, 160, 320, wherein the block size groups include a fourth block size group (Z4) including 18, 36, 72, 144, 288, wherein the block size groups include a fifth block size group (Z5) including 16, 32, 64, 128, 256, wherein the block size groups include a sixth block size group (Z6) including 15, 30, 60, 120, 240, wherein the block size groups include a seventh block size group (Z7) including 14, 28, 56, 112, 224, and wherein the block size groups include an eighth block size group (Z8) including 26, 52, 104, 208.
13. The apparatus of claim 11, wherein the submatrix does not include column indices 0 and 1 of the base matrix.
14. The apparatus of claim 13, wherein the matrices are identified by circularly shifting an identity matrix based on a value identified by applying a modulo operation of the block size to an element of a predetermined matrix.
15. The apparatus of claim 11, wherein a plurality of rows of the base matrix has values as column indices: 0, 1, 3, 12, 16, 21, 22, and 27 for a row of the plurality of rows, 0, 6, 10, 11, 13, 17, 18, 20, and 28 for a row of the plurality of rows, 0, 1, 4, 7, 8, 14, and 29 for a row of the plurality of rows, 0, 1, 3, 12, 16, 19, 21, 22, 24, and 30 for a row of the plurality of rows, 0, 1, 10, 11, 13, 17, 18, 20, and 31 for a row of the plurality of rows, 1, 2, 4, 7, 8, 14, and 32 for a row of the plurality of rows, 0, 1, 12, 16, 21, 22, 23, and 33 for a row of the plurality of rows, 0, 1, 10, 11, 13, 18, and 34 for a row of the plurality of rows, 0, 3, 7, 20, 23, and 35 for a row of the plurality of rows, 0, 12, 15, 16, 17, 21, and 36 for a row of the plurality of rows, 0, 1, 10, 13, 18, 25, and 37 for a row of the plurality of rows, 1, 3, 11, 20, 22, and 38 for a row of the plurality of rows, 0, 14, 16, 17, 21, and 39 for a row of the plurality of rows, 1, 12, 13, 18, 19, and 40 for a row of the plurality of rows, 0, 1, 7, 8, 10, and 41 for a row of the plurality of rows, 0, 3, 9, 11, 22, and 42 for a row of the plurality of rows, 1, 5, 16, 20, 21, and 43 for a row of the plurality of rows, 0, 12, 13, 17, and 44 for a row of the plurality of rows, 1, 2, 10, 18, and 45 for a row of the plurality of rows, and 0, 3, 4, 11, 22, and 46 for a row of the plurality of rows, and wherein a plurality of rows of the submatrix has following values as column indices: 3, 12, 16, 21, 22, and 27 for a row of the plurality of rows, 6, 10, 11, 13, 17, 18, 20, and 28 for a row of the plurality of rows, 4, 7, 8, 14, and 29 for a row of the plurality of rows, 3, 12, 16, 19, 21, 22, 24, and 30 for a row of the plurality of rows, 10, 11, 13, 17, 18, 20, and 31 for a row of the plurality of rows, 2, 4, 7, 8, 14, and 32 for a row of the plurality of rows, 12, 16, 21, 22, 23, and 33 for a row of the plurality of rows, 10, 11, 13, 18, and 34 for a row of the plurality of rows, 3, 7, 20, 23, and 35 for a row of the plurality of rows, 12, 15, 16, 17, 21, and 36 for a row of the plurality of rows, 10, 13, 18, 25, and 37 for a row of the plurality of rows, 3, 11, 20, 22, and 38 for a row of the plurality of rows, 14, 16, 17, 21, and 39 for a row of the plurality of rows, 12, 13, 18, 19, and 40 for a row of the plurality of rows, 7, 8, 10, and 41 for a row of the plurality of rows, 3, 9, 11, 22, and 42 for a row of the plurality of rows, 5, 16, 20, 21, and 43 for a row of the plurality of rows, 12, 13, 17, and 44 for a row of the plurality of rows, 2, 10, 18, and 45 for a row of the plurality of rows, and 3, 4, 11, 22, and 46 for a row of the plurality of rows.
16. An apparatus for performing channel decoding in a communication system, the apparatus comprising: a transceiver; and at least one processor coupled with the transceiver and configured to: control the transceiver to receive a signal corresponding to input bits, identify a block size based on the input bits, and perform a decoding procedure for decoding the signal based on a parity check matrix corresponding to the block size, wherein the parity check matrix is identified based on a base matrix, wherein the base matrix includes a submatrix consisting of a plurality of rows and columns, wherein column indices, which correspond to non-zero elements included in two or more successive rows in the submatrix, include different values for the two or more successive rows, wherein the parity check matrix is identified based on a value of 1 in the base matrix being replaced by matrices that are not a 0-matrix, and wherein a number of rows in the submatrix is less than a number of rows in the base matrix, and a number of columns in the submatrix is less than a number of columns in the base matrix.
17. The apparatus of claim 16, wherein the block size is selected based on block size groups, wherein the block size groups include a first block size group (Z1) including 24, 48, 96, 192, 384, wherein the block size groups include a second block size group (Z2) including 22, 44, 88, 176, 352, wherein the block size groups include a third block size group (Z3) including 20, 40, 80, 160, 320, wherein the block size groups include a fourth block size group (Z4) including 18, 36, 72, 144, 288, wherein the block size groups include a fifth block size group (Z5) including 16, 32, 64, 128, 256, wherein the block size groups include a sixth block size group (Z6) including 15, 30, 60, 120, 240, wherein the block size groups include a seventh block size group (Z7) including 14, 28, 56, 112, 224, and wherein the block size groups include an eighth block size group (Z8) including 26, 52, 104, 208.
18. The apparatus of claim 16, wherein the submatrix does not include column indices 0 and 1 of the base matrix.
19. The apparatus of claim 18, wherein the matrices are identified by circularly shifting an identity matrix based on a value identified by applying a modulo operation of the block size to an element of a predetermined matrix.
20. The apparatus of claim 16, wherein a plurality of rows of the base matrix has values as column indices: 0, 1, 3, 12, 16, 21, 22, and 27 for a row of the plurality of rows, 0, 6, 10, 11, 13, 17, 18, 20, and 28 for a row of the plurality of rows, 0, 1, 4, 7, 8, 14, and 29 for a row of the plurality of rows, 0, 1, 3, 12, 16, 19, 21, 22, 24, and 30 for a row of the plurality of rows, 0, 1, 10, 11, 13, 17, 18, 20, and 31 for a row of the plurality of rows, 1, 2, 4, 7, 8, 14, and 32 for a row of the plurality of rows, 0, 1, 12, 16, 21, 22, 23, and 33 for a row of the plurality of rows, 0, 1, 10, 11, 13, 18, and 34 for a row of the plurality of rows, 0, 3, 7, 20, 23, and 35 for a row of the plurality of rows, 0, 12, 15, 16, 17, 21, and 36 for a row of the plurality of rows, 0, 1, 10, 13, 18, 25, and 37 for a row of the plurality of rows, 1, 3, 11, 20, 22, and 38 for a row of the plurality of rows, 0, 14, 16, 17, 21, and 39 for a row of the plurality of rows, 1, 12, 13, 18, 19, and 40 for a row of the plurality of rows, 0, 1, 7, 8, 10, and 41 for a row of the plurality of rows, 0, 3, 9, 11, 22, and 42 for a row of the plurality of rows, 1, 5, 16, 20, 21, and 43 for a row of the plurality of rows, 0, 12, 13, 17, and 44 for a row of the plurality of rows, 1, 2, 10, 18, and 45 for a row of the plurality of rows, and 0, 3, 4, 11, 22, and 46 for a row of the plurality of rows, and wherein a plurality of rows of the submatrix has values as column indices: 3, 12, 16, 21, 22, and 27 for a row of the plurality of rows, 6, 10, 11, 13, 17, 18, 20, and 28 for a row of the plurality of rows, 4, 7, 8, 14, and 29 for a row of the plurality of rows, 3, 12, 16, 19, 21, 22, 24, and 30 for a row of the plurality of rows, 10, 11, 13, 17, 18, 20, and 31 for a row of the plurality of rows, 2, 4, 7, 8, 14, and 32 for a row of the plurality of rows, 12, 16, 21, 22, 23, and 33 for a row of the plurality of rows, 10, 11, 13, 18, and 34 for a row of the plurality of rows, 3, 7, 20, 23, and 35 for a row of the plurality of rows, 12, 15, 16, 17, 21, and 36 for a row of the plurality of rows, 10, 13, 18, 25, and 37 for a row of the plurality of rows, 3, 11, 20, 22, and 38 for a row of the plurality of rows, 14, 16, 17, 21, and 39 for a row of the plurality of rows, 12, 13, 18, 19, and 40 for a row of the plurality of rows, 7, 8, 10, and 41 for a row of the plurality of rows, 3, 9, 11, 22, and 42 for a row of the plurality of rows, 5, 16, 20, 21, and 43 for a row of the plurality of rows, 12, 13, 17, and 44 for a row of the plurality of rows, 2, 10, 18, and 45 for a row of the plurality of rows, and 3, 4, 11, 22, and 46 for a row of the plurality of rows.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The above and other aspects, features, and advantages of certain embodiments of the disclosure will be more apparent from the following description taken in conjunction with the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27) Throughout the drawings, like reference numerals will be understood to refer to like parts, components, and structures.
DETAILED DESCRIPTION
(28) The following description with reference to the accompanying drawings is provided to assist in a comprehensive understanding of various embodiments of the disclosure as defined by the claims and their equivalents. It includes various specific details to assist in that understanding but these are to be regarded as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the various embodiments described herein can be made without departing from the scope and spirit of the disclosure. In addition, descriptions of well-known functions and constructions may be omitted for clarity and conciseness.
(29) The terms and words used in the following description and claims are not limited to the bibliographical meanings, but, are merely used by the inventor to enable a clear and consistent understanding of the disclosure. Accordingly, it should be apparent to those skilled in the art that the following description of various embodiments of the disclosure is provided for illustration purpose only and not for the purpose of limiting the disclosure as defined by the appended claims and their equivalents.
(30) It is to be understood that the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to “a component surface” includes reference to one or more of such surfaces.
(31) By the term “substantially” it is meant that the recited characteristic, parameter, or value need not be achieved exactly, but that deviations or variations, including for example, tolerances, measurement error, measurement accuracy limitations and other factors known to those of skill in the art, may occur in amounts that do not preclude the effect the characteristic was intended to provide.
(32) A low density parity check (LDPC) code first introduced by Gallager in the 1960's was forgotten for a long time due to its complexity that causes the implementation thereof to be difficult in view of the technical level at that time. However, in the year 1993, as a turbo code proposed by Berrou, Glavieux, and Thitimajshima showed the performance approaching the channel capacity of Shannon, many researches for channel encoding based on a graph and iterative decoding were made with a lot of analysis made for the performance and the characteristic of the turbo code. Taking this opportunity, the LDPC code was restudied in the latter half of the 1990s, and it became clear that the LDPC code also had the performance approaching the channel capacity of Shannon by performing decoding through application of the iterative decoding based on a sum-product algorithm on a Tanner graph corresponding to the LDPC code.
(33) In general, the LDPC code is defined as a parity check matrix, and may be expressed using a bipartite graph commonly called a Tanner graph.
(34)
(35) Hereinafter, referring to
(36) Referring to
(37) The LDPC code is a kind of linear block code, and includes a process of determining a codeword that satisfies a condition as expressed in mathematical expression 1 below.
(38)
(39) In the mathematical expression 1, H denotes a parity check matrix, C denotes a codeword, c.sub.i denotes the i-th bit, and N.sub.ldpc denotes a length of an LDPC codeword. Here, h.sub.i denotes the i-th column of the parity check matrix H.
(40) The parity check matrix H is composed of N.sub.ldpc columns the number of which is equal to the number of bits of the LDPC codeword. Since the mathematical expression 1 means that the sum of multiplication of the i-th column h.sub.i of the parity check matrix and the i-th codeword bit c.sub.i is 0, the i-th column h.sub.i is related to the i-th codeword bit c.sub.i.
(41)
(42) Referring to
(43)
(44) Referring to
(45) In the Tanner graph of the LDPC code, the degree of the variable node and the check node means the number of edges connected to the respective nodes, and this number is equal to the number of non-zero entries in the column or the row corresponding to the corresponding node in the parity check matrix of the LDPC code. For example, the degrees of the variable nodes x.sub.1(202), x.sub.2(204), x.sub.3(206), x.sub.4(208), x.sub.5(210), x.sub.6(212), x.sub.7(214), and x.sub.8(216) in
(46) The LDPC code can be decoded using an iterative decoding algorithm based on the sum-product algorithm on the bipartite graph enumerated in
(47) Here, the i-th encoding bit value can be determined based on the message of the i-th variable node. Both hard decision and soft decision are possible for the i-th encoding bit value. Accordingly, the performance of ci that is the i-th bit of the LDPC codeword corresponds to the performance of the i-th variable node of the Tanner graph, and this may be determined in accordance with the position and the number of 1 in the i-th column of the parity check matrix. In other words, the performance of N.sub.ldpc codeword bits of the codeword may be dominated by the position and the number of 1 of the parity check matrix, and this means that the performance of the LDPC code is greatly affected by the parity check matrix. Accordingly, in order to design the LDPC code having superior performance, there is a need for a method for designing a good parity check matrix.
(48) For implementation of the parity check matrix used in the communication or broadcasting system, a quasi-cycle LDPC (QC-LDPC) code generally using a quasi-cyclic type parity check matrix is widely used.
(49) The QC-LDPC code is featured to have a parity check matrix composed of zero matrices in the form of square matrices or circulant permutation matrices. In this case, the permutation matrix indicates a matrix in which all entries of the square matrix are 0 or 1 and each row or column includes only one 1. Further, the circulant permutation matrix means a matrix in which respective entries of an identity matrix are circularly shifted to the right.
(50) Hereinafter, the QC-LDPC code will be described below.
(51) First, a circulant permutation matrix P=(P.sub.i,j) with L×L size is defined as in mathematical expression 2. Here, P.sub.i,j means an entry in the i-th row and in the j-th column of the matrix P (here, 0≤i, and j<L).
(52) Mathematical Expression 2
(53)
(54) With respect to the permutation matrix P as defined above, P.sup.i (0≤i<L) is a circulant permutation matrix in the form in which respective entries of an identity matrix with L×L, size are circularly shifted in the right direction as many as i-times.
(55) The parity check matrix H of the simplest QC-LDPC code may be expressed in the form of mathematical expression 3 below.
(56)
(57) If P.sup.−1 is defined as a zero matrix with L×L size, each exponent a.sub.i,j of the circulant permutation matrix or the zero matrix in the mathematical expression 3 has one of {−1, 0, 1, 2, . . . , L−1} values. Further, since the parity check matrix H in the mathematical expression 3 has n column blocks and m row blocks, it has an mL×nL size.
(58) If the parity check matrix in the mathematical expression 3 has a full rank, it is apparent that the size of information word bits of the QC-LDPC code corresponding to the parity check matrix becomes (n−m)L. For convenience, (n−m) column blocks corresponding to the information word bits are called column blocks, and m column blocks corresponding to the remaining parity bits are called parity column blocks.
(59) In general, a binary matrix with m×n size obtained by respectively replacing each circulant permutation matrix and zero matrix by 1 and 0 in the parity check matrix of the mathematical expression 3 is called a mother matrix or a base matrix M(H), and an integer matrix with m×n size obtained by selecting exponents of each circulant permutation matrix and zero matrix as in mathematical expression 4 is called an exponential matrix E(H) of the parity check matrix.
(60)
(61) As a result, one integer included in the exponential matrix corresponds to the circulant permutation matrix in the parity check matrix, and thus for convenience, the exponential matrix may be expressed as sequences composed of integers (the above-described sequence may also be called an LDPC sequence or an LDPC code sequence in order to discriminate from other sequences). In general, the parity check matrix can be expressed as not only the exponential matrix but also a sequence having algebraically the same characteristics. In an embodiment of the disclosure, for convenience, the parity check matrix is expressed as the exponential matrix or the sequence indicating the position of 1 existing in the parity check matrix. However, there are various sequence notation methods capable of discriminating the position of 1 or 0 included in the parity check matrix, and thus the parity check matrix is not limited to methods expressed in the description, but may be expressed in various sequence forms representing algebraically the same effects.
(62) Further, a transceiver on a device may perform LDPC encoding and decoding by directly generating the parity check matrix, or may perform the LDPC encoding and decoding using the exponential matrix or the sequence having algebraically the same effect as that of the parity check matrix in accordance with the features on implementation. Accordingly, although in an embodiment of the disclosure, the encoding/decoding using the parity check matrix has been described for convenience, it should be considered that the encoding/decoding can be implemented using various methods capable of obtaining the same effect as that of the parity check matrix.
(63) For reference, algebraically the same effect means that it is possible to explain that two or more different expressions are completely equal to each other or are convertible with each other in logics or mathematics.
(64) In an embodiment of the disclosure, it is described that, for convenience, one circulant permutation matrix corresponds to one block, but the disclosure can be applied to even a case where several circulant permutation matrices are included in one block. For example, if a sum of two circulant permutation matrices P.sup.a.sup.
(65)
(66)
(67) As in the embodiment as described above, it is general that the QC-LDPC code is featured so that a plurality of circulant permutation matrices may correspond to one row block and one column block in the parity check matrix. In the disclosure, for convenience, only a case where one circulant permutation matrix corresponds to one block will be described, but the subject matter of the disclosure is not limited thereto. For reference, a matrix with L×L size in which a plurality of circulant permutation matrices are duplicate in one row block and one column block is referred to as a circulant matrix or circulant.
(68) On the other hand, a mother matrix or a base matrix for the parity check matrix and the exponential matrix in the mathematical expressions 5 and 6 means a binary matrix obtained by respectively replacing each circulant permutation matrix and zero matrix by 1 and 0 in a similar manner to that of the definition used in the mathematical expression 3, and the sum of the plurality of circulant permutation matrices (i.e., a circulant matrix) included in one block is simply replaced by 1.
(69) Since the performance of the LDPC code is determined in accordance with the parity check matrix, it is necessary to design the parity check matrix for the LDPC code having superior performance. Further, in order to various services in the system, an LDPC encoding or decoding method capable of supporting flexible input length and coding rate is necessary. In designing the LDPC code, not only the encoding performance and flexibility but also decoding efficiency becomes an important factor. In general, it is well known that the QC-LDPC code has structure advantageous to parallel decoding, and the parallel decoding is suitable to reduce latency due to the decoding by increasing decoding throughput. The parallel decoding of the QC-LDPC code can further maximize the decoding efficiency in accordance with the base matrix of the parity check matrix. In an embodiment of the disclosure, a base matrix structure capable of maximizing the decoding efficiency is proposed, and in addition, a method for designing the base matrix is proposed.
(70)
(71) Referring to
(72)
(73) Referring to
(74) A base matrix for the exponential matrix of
(75)
(76) Referring to
(77) In general, in case where the LDPC decoder performs decoding of the LDPC code using one block parallel processor, the decoding is successively performed in the unit of blocks corresponding to the above-described positions in the respective row blocks. In case of using two or more block parallel processors, each processor performs successive decoding in the unit of a block properly divided from the respective row blocks. In this case, the blocks divided from the respective row blocks should be divided in a rule determined with respect to all the row blocks in accordance with the hardware implementation characteristics. For example, it may be considered that the LDPC decoder processes scheduling through two block parallel processors, as shown in
(78)
(79)
(80) Referring to
(81) Even if the LDPC decoder designed in the above-described rule using two block parallel processors can properly arrange the blocks corresponding to the column block having the degree of 1, the idle time of a specific processor may become long like a case of row-10 in
(82) However, it is generally difficult to divide the blocks as many as the number of processors through the proper rule as described above after designing a base matrix for the parity check matrix of the LDPC code without considering the use of two or more block parallel processors. In particular, it is much more difficult to do so in a situation where it is not known whether the LDPC decoder is to use two, three, or four block parallel processors.
(83) The disclosure proposes a method for designing a base matrix capable of maximizing the decoding efficiency based on the use of two or more block parallel processors by limiting the position of the circulant permutation matrix in the exponential matrix, that is, by limiting the position of entry 1 in the base matrix, based on the use of a plurality of block parallel processors.
(84) First, if it is assumed that a base matrix to be designed is given as a matrix of
(85) The main subject of the disclosure is to propose a method for designing a base matrix so that position indexes for each entry 1 of each row in the base matrix is divided into sets in which the numbers of entries are similar to each other in accordance with a predetermined rule based on the use of a plurality of block parallel processors. For convenience, such division of the position indexes for each entry 1 of each row in the base matrix into sets in which the numbers of entries are similar to each other in accordance with the predetermined rule is called balancing. In other words, the balancing means maximally uniform allocation in allocating each entry 1 for each row to two or more sets in accordance with the predetermined rule.
(86) In this case, if a difference between the numbers of entries 1 of the row allocated to the two or more sets is equal to or smaller than 1, it is called perfect balancing, whereas if a difference between the numbers of entries 1 of the row allocated to the two or more sets is equal to or smaller than 2, it is called weakly balancing.
(87) In other words, the balancing means maximally uniform classification of entries 1 of the respective rows into two or more groups in accordance with the predetermined rule. In this case, if the difference between the numbers of entries 1 included in the two or more groups is equal to or smaller than 1, it is referred to as perfect balancing achieved, whereas if the difference between the numbers of entries 1 of the row allocated to the two or more sets is equal to or smaller than 2, it is referred to as weakly balancing achieved.
(88) Further, in other words, in expressing the balancing, the base matrix balancing may mean that entries 1 of the respective rows may be classified into two or more groups or sets in accordance with the predetermined rule, and a case where the difference between the numbers of entries 1 included in the respective groups or sets or the difference between the numbers of their indexes is equal to or smaller than 1 may be expressed as a base matrix satisfying the perfect balancing, whereas a case where the difference is equal to or smaller than 2 may be expressed as a base matrix satisfying the weakly balancing.
(89) On the other hand, in an embodiment of the disclosure, the balancing having different characteristics, such as perfect balancing, weakly balancing, and strongly balancing, may be expressed using terms of first balancing, second balancing, and third balancing. The base matrix designed as above serves to reduce the idle time when the LDPC decoding is performed based on the position indexes corresponding to the respect sets using the block parallel processors the number of which corresponds to the number of sets. Here, it is apparent that the position indexes can have the numbers 0 to (n−1).
(90) Prior to the design of the base matrix, it is assumed that the possible number of block parallel processors to be used when the LDPC decoding is performed using the parity check matrix of the LDPC code having the corresponding base matrix corresponds to q.sub.1, q.sub.2, . . . , q.sub.P. In other words, it is assumed that the base matrix is designed based on all cases where q.sub.1, q.sub.2, . . . , q.sub.P block parallel processors are used. If it is assumed that the LDPC decoding is performed using q.sub.i (i=1, 2, . . . , P) block processors, in order to minimize the idle time, position indexes j.sub.1, j.sub.2, . . . , j.sub.d of each 1 with respect to the row having the degree of d in the base matrix should be divided into q.sub.i partial matrices having maximally the same number of entries. This should be established in the same manner with respect to all rows.
(91) Embodiments satisfying such characteristics are as follows.
(92) First, as described in mathematical expression 7, q.sub.1 sets are defined with respect to l=1, 2, . . . , P.
S.sub.i={x|x≡i(mod q.sub.l),x=0,1, . . . n−1}, Mathematical expression 7 i=0, 1, 2, . . . , q.sub.l−1
(93) To help understanding, a simple example of the mathematical expression 7 is expressed in mathematical expression 8 below. i) when defined as q.sub.1=2
S.sub.0={x|x≡0(mod 2),x=0,1, . . . 45}={0,2,4,8, . . . ,42,44}
S.sub.1={x|x≡1(mod 2),x=0,1, . . . 45}={1,3,5,7, . . . ,43,45} ii) when defined as q.sub.2=3
S.sub.0={x|x≡0(mod 3),x=0,1, . . . 45}={0,3,6, . . . ,42,45}
S.sub.1={x|x≡1(mod 3),x=0,1, . . . 45}={1,4,7, . . . ,40,43}
S.sub.2={x|x≡2(mod 3),x=0,1, . . . 45}={2,5,8, . . . ,41,44} iii) when defined as q.sub.3=4
S.sub.0={x|x≡0(mod 4),x=0,1, . . . 45}={0,4,8, . . . ,40,44}
S.sub.1={x|x≡1(mod 4),x=0,1, . . . 45}={1,5,9, . . . ,41,45}
S.sub.2={x|x≡2(mod 4),x=0,1, . . . 45}={2,6,10, . . . ,38,42}
S.sub.3={x|x≡3(mod 4),x=0,1, . . . 45}={3,7,11, . . . ,39,43} Mathematical expression 8
(94) (q.sub.1=In case of definition as 2 sets, q.sub.2=In case of definition as 3 sets, q.sub.3=In case of definition as 4 sets)
(95) In the mathematical expressions 7 and 8, there may be various methods for defining q.sub.1 sets. In an embodiment of the disclosure, for convenience in explanation, examples expressed in the mathematical expressions 7 and 8 will be described. However, the scope of the disclosure is not limited thereto, and in case of generally defining q.sub.1 sets, it is not necessary for the respective sets to have the same number of entries, but may be properly defined as needed. However, the respective sets S.sub.i should always have different entries.
(96) In the base matrix, information on the position of 1 in each row may be expressed as an index set as expressed in mathematical expression 9.
Ind(i)={w(i,j)|j=0,1, . . . ,d.sub.i−1},i=0,1, . . . ,N−K−1. Mathematical expression 9
(97) Here, w(i, j) means a position of a column in which the j-th 1 of the i-th row exists, and d.sub.i means the degree of the i-th row.
(98) To help understanding, a simple example of the mathematical expression 9 is expressed in mathematical expression 10 below with reference to
Ind(6)={w(6,0)=0,w(6,1)=1,w(6,2)=13,w(6,3)=16,w(6,4)=23,w(6,5)=38}
Ind(10)={w(10,0)=0,w(10,1)=1,w(10,2)=3,w(10,3)=29,w(10,4)=33,w(10,5)=37,w(10,6)=42} Mathematical expression 10
(99) Index sets expressed in the mathematical expression 9 may be divided into q.sub.1 partial sets satisfying mathematical expression 11 below without having common entries (l=1, 2, . . . , P).
R(i,j)={x|x∈Ind(i)∩S.sub.j}, Mathematical expression 11 i=0, 1, . . . , N−K−1, j=0, 1, . . . , q.sub.l−1
(100) Here, S.sub.j and Ind(i) are sets respectively defined in the mathematical expressions 7 and 9.
(101) It is to be noted that in the mathematical expression 7, for convenience in explanation, respective sets S.sub.j have almost the same number of entries, and are simply divided based on a modulo operation. However, in general, it does not matter if the numbers of entries are greatly different from each other and if the entries are divided on more complicated conditions. However, the different sets S.sub.j should be disjoint without having common entries.
(102) In an embodiment of the disclosure, if the set R(i, j) defined in the mathematical expression 11 satisfies conditions of mathematical expression 12 below, it is called that the weight distribution of the base matrix as expressed in the mathematical expression 9 is perfectly balanced.
(103) Index sets defined in mathematical expression 9 always satisfy the followings with respect to j.sub.1≠j.sub.2,(0≤j.sub.1, j.sub.2,<q.sub.l)
∥R(i,j.sub.1)|−|R(i,j.sub.2)∥≤1,i=0,1, . . . ,N−K−1 Mathematical expression 12
(104) In the base matrix satisfying the conditions expressed in the mathematical expression 12, it can be known that the idle time is minimized in case where the j-th processors among q.sub.1 block parallel processors successively perform the LDPC decoding with respect to the circulant permutation matrix in a position included in R(i, j).
(105) However, it is difficult to design a base matrix satisfying the condition expressed in the mathematical expression 12. This is because in designing a good base matrix, distribution of the number of 1 in each row and column of the base matrix or the parity check matrix and the cyclic characteristics on the Tanner graph exert influences as important factors. For example, it is very difficult to design a base matrix satisfying god weight distribution, good cyclic characteristics, and conditions expressed in the mathematical expression 12 at the same time.
(106) Due to the above-described reason, with respect to the conditions on the index sets defined in the mathematical expression 12, it is called that the weight distribution of the base matrix satisfying somewhat eased conditions as expressed in mathematical expression 13 below is weakly balanced.
(107) Index sets defined in mathematical expression 9 always satisfy the followings with respect to j.sub.1≠j.sub.2, (0≤j.sub.1j.sub.2<q.sub.1)
∥R(i,j.sub.1)|−|R(i,j.sub.2)∥≤2,i=0,1, . . . ,N−K−1, Mathematical expression 13
(108) Even in case where the weight distribution of the base matrix satisfying the conditions in the mathematical expression 13 is weakly balanced, the idle time is greatly reduced when the LDPC decoding is performed using a plurality of processors. However, it is apparent that this case is inefficient as compared with the perfectly balanced case. In this case, however, due to the eased conditions, it becomes easy to design the base matrix for god parity check matrix based on the encoding performance of the LDPC code.
(109) A method is proposed, in which it is somewhat simple to design a good base matrix in simultaneous consideration of the perfectly balanced case and the weakly balanced case, and the idle time can be greatly reduced during the LDPC decoding using a plurality of processors.
(110) First, index sets defined in the mathematical expression 9 will be newly defined as in mathematical expression 13 below.
Ind(i)={w(i,j)|j=0,1, . . . ,d.sub.i−1},i=0,1, . . . ,N−K−1 Mathematical expression 14
(111) Here, w(i, j) means a position of a column, in which the j-th 1 of the i-th row exists, excluding a column having the degree of 1, and d.sub.i means the degree of the i-th row, excluding entries in the column having the degree of 1.
(112) In an embodiment of the disclosure, if the set R(i, j) defined in the mathematical expression 11 from the index sets defined in the mathematical expression 14 satisfies conditions of mathematical expression 15 below, it is called that the weight distribution of the base matrix as expressed in the mathematical expression 9 is strongly balanced.
(113) Index sets defined in mathematical expression 14 always satisfy the followings with respect to j.sub.1≠j.sub.2,(0≤j.sub.1, j.sub.2<q.sub.1).
∥R(i,j.sub.1)|−|R(i,j.sub.2)∥≤2,i=0,1, . . . ,N−K−1 Mathematical expression 15
(114) In the mathematical expression 15, it is considered that the columns having the degree of 1 are excluded from the mathematical expression 14. This is because it is easy to freely allocate the columns having the degree of 1 to block parallel processors as compared with other columns. The feature of the strongly balancing expressed in the mathematical expression 15 will now be described below.
(115) Basically, the strongly balancing expressed in the mathematical expression 15 has the similar characteristic to the weakly balancing that can be expressed as in the mathematical expression 13. However, the strongly balancing is greatly different from the weakly balancing on the point that entry 1 corresponding to a column having the degree of 1 is excluded in classifying entries 1 of respective rows of the base matrix into two or more sets or groups. In other words, the strongly balancing means maximally uniform allocation of remaining entries 1 excluding entry 1 corresponding to a column having the degree of 1 from each row to two or more sets in accordance with a predetermined rule. In this case, if the difference between the numbers of entries 1 to be allocated to the two or more sets is equal to or smaller than 2, it is referred to as strongly balancing achieved. Further, in other words, in expressing the strongly balancing, it means maximally uniform classification of remaining entries 1 excluding entry 1 corresponding to a column having the degree of 1 from each row into two or more groups in accordance with a predetermined rule. In this case, if the difference between the numbers of entries 1 to be included in the two or more groups is equal to or smaller than 2, it is referred to as strongly balancing achieved. In other words, the strongly balancing of the base matrix means that remaining entries 1 excluding entry 1 corresponding to a column having the degree of 1 from each row can be classified into two or more groups or sets in accordance with a predetermined rule. In this case, if the difference between the numbers of entries 1 to be included in the respective groups or sets or the difference between the numbers of their indexes is equal to or smaller than 2, it is referred to as the base matrix satisfying the strongly balancing condition as expressed in the mathematical expression 15. Accordingly, in case where the strongly balancing condition as expressed in the mathematical expression 15 is satisfied, the strongly balancing has the characteristic that is very close to the characteristic of the perfect balancing as defined in the mathematical expression 12 through proper allocation of circulant permutation matrices corresponding to columns having the degree of 1 to processors, and thus the idle time of the processors can be greatly reduced.
(116)
(117) Referring to
(118) The position (i.e., a position of a column block in which the circulant permutation matrix is positioned in an actual parity check matrix) in which 1 exists in each row of
(119) Based on a case where an LDPC decoding is performed with respect to a parity check matrix having the base matrix of
S.sub.0={x|x≡0(mod 2),x=0,1, . . . 45},
S.sub.1={x|x≡1(mod 2),x=0,1, . . . ,45},
. . .
Ind(6)={0,1,2,11,25},
Ind(7)={1,5,10,14,15,19,20,21,32},
Ind(8)={0,1,3,4,9,11,13,28,34},
Ind(9)={0,1,6,7,12,26,37},
Ind(10)={0,1,3,9,11,14,28},
Ind(11)={0,1,2,4,5,8,27,31,},
. . .
R(6,0)={0,2,38},R(6,1)={1,11,25}
R(7,0)={10,14,20,32},R(7,1)={1,5,15,19,21}
R(8,0)={0,4,28,34},R(8,1)={1,3,9,11,13}
R(9,0)={0,6,12,26},R(9,1)={1,7,37}
. . . Mathematical Expression 16
(120) Referring to
(121)
(122)
(123) Referring to
(124) In case of
S.sub.0={x|x≡0(mod 4),x=0,1, . . . 45},
S.sub.1={x|x≡1(mod 4),x=0,1, . . . 45},
S.sub.2={x|x≡2(mod 4),x=0,1, . . . 45},
S.sub.3={x|x≡3(mod 4),x=0,1, . . . 45},
. . .
R(6,0)={0},R(6,1)={1,25},R(6,2)={2},R(6,3)={11}
R(7,0)={20,32},R(7,1)={1,5,21},R(7,2)={10,14},R(7,3)={15,19}
R(8,0)={0,4,28},R(8,1)={1,9,13},R(8,2)={34},R(8,3)={3,11}
R(9,0)={0,12},R(9,1)={1,37},R(9,2)={6,26},R(9,3)={7}
. . .
(125) As described above, in designing the base matrix having the perfect balanced, weakly balanced, or strongly balanced weight distribution, it can be known that the design basis of the base matrix is changed in accordance with the number of block parallel processors being considered. In the embodiment of
(126) If q.sub.1 sets are defined in the mathematical expression 7, the base matrices satisfying the balancing condition presented in the mathematical expressions 12, 13, and 15 express, for convenience, to satisfy perfect q.sub.1-balancing, weakly q.sub.1-balancing, and strongly q.sub.1-balancing, respectively. For example, the base matrix of
(127) If the number of block parallel processors to be used in the LDPC decoder is unclear, and respective balancing conditions are satisfied in simultaneous consideration of cases where (q.sub.1, q.sub.2, . . . , q.sub.P) processors are used, they are expressed as, for convenience, perfect (q.sub.1, q.sub.2, . . . , q.sub.P)-balancing, weakly (q.sub.1, q.sub.2, . . . , q.sub.P)-balancing, and strongly (q.sub.1, q.sub.2, . . . , q.sub.P)-balancing.
(128) In an embodiment of the disclosure as described above, the sets Si are divided based on a specific rule, for convenience, using modulo, but are not limited thereto. The division of Si may be properly irregularly defined in accordance with the requirements of the system, and the number of entries of each set may differ. However, the respective sets Si should have different entries to maintain the disjoint characteristics.
(129) In an embodiment of the disclosure, as a method for designing a base matrix of another LDPC code to minimize an idle time in case of using two or more block parallel processors, partial windowing-orthogonal conditions will be described.
(130) First, the structure of a base matrix or an exponential matrix suitable to the existing well-known layered decoding will be briefly described based on
(131)
(132) Referring to
(133) The orthogonal structure as described above is a structure suitable to the layered decoding, that is, the decoding based on row parallel processors. The row parallel processor generally corresponds to a method for performing decoding with respect to the whole row block, and generally has a larger size and higher complexity than those of the block parallel processor, but can perform quick decoding as compared with the block parallel processor. In the decoding based on row parallel processors, decoding can be performed considering rows having the orthogonal structure as one row, and thus very quick decoding becomes possible. For example, the row parallel processors can perform decoding of the 6.sup.th, 7.sup.th, and 8.sup.th row blocks having the orthogonal structure as one row block. The row blocks having the orthogonal structure may be considered as one row block which is called an effective row block. The layered decoding is featured so that a plurality of row blocks included in such an effective row block are orthogonal to each other, but the row blocks between the effective row blocks are not orthogonal to each other. For example, the 12.sup.th and 13.sup.th row blocks are included in different effective row blocks, and thus are not orthogonal to each other.
(134) When the LDPC decoder based on the block parallel processors performs decoding using two or more processors, a structure that is somewhat different from the above-described orthogonal structure is suitable to increase the decoding efficiency.
(135) In an embodiment of the disclosure, a partial windowing-orthogonal structure is proposed. First, a windowing-orthogonal structure will be briefly described.
(136) If there is a base matrix satisfying p windowing-orthogonal structures, this means that if p row blocks are successively selected, they always satisfy the orthogonal structure. In other words, when selecting the i-th, (i+1)-th, . . . , (i+p−1)-th row blocks, the p row blocks are always orthogonal to each other. The base matrix having the p windowing-orthogonal structures as described above provides very high decoding efficiency during the LDPC decoding based on not only the block parallel processor but also the row parallel processor. However, this is a very strong limit condition with respect to the base matrix, and thus deterioration of the encoding performance of the LDPC code may be easily caused. Accordingly, in the LDPC encoding/decoding system using the parity check matrix structure as shown in
(137) However, the orthogonal structure corresponding to the partial matrix [D E] or the part thereof may also greatly restrict the degree distribution of the LDPC code to deteriorate the LDPC encoding performance. In order to address this issue, the orthogonal structure is not limited with respect to specific predetermined row blocks. For example, referring to the base matrix of
(138) Referring to
(139) In summary, if the remaining partial matrix excluding specific rows and columns with respect to a given base matrix satisfies the p windowing-orthogonal structures, it is called that the base matrix satisfies the p partial windowing-orthogonal structure.
(140) In designing the base matrix satisfying the p partial windowing-orthogonal structure, in many cases, as shown in
(141) As a result, the apparatus and the method for LDPC encoding and decoding using the parity check matrix having the base matrix satisfying the balancing characteristics and the partial windowing-orthogonal structure proposed in an embodiment of the disclosure are featured to improve the encoding performance and to maximize the decoding efficiency based on the LDPC decoding using two or more block parallel processors.
(142)
(143) Referring to
(144) As described above in the mathematical expression 1, the method for LDPC encoding includes determining a codeword so that a multiplication of the LDPC codeword and the parity check matrix becomes a zero vector.
(145) Referring to
(146) A normal QC LDPC code includes identifying a size of input bits to be encoded, determining a block size Z suitable to the corresponding input bits, and performing LDPC encoding based on the LDPC matrix and the determined block size. A decoding process includes a similar process corresponding to that as described above.
(147) On the other hand, the encoding device may further include a memory (not illustrated) for storing therein information on a coding rate of an LDPC code, codeword length, and a parity check matrix, and the LDPC encoder 1010 may perform the LDPC encoding using such information. The information on the parity check matrix may be stored as information on exponential values of a circulant matrix in case of using a parity matrix proposed in an embodiment of the disclosure.
(148) The decoding device 1000 may include an LDPC decoder 1020. The LDPC decoder 1020 performs LDPC decoding with respect to an LDPC codework based on the parity check matrix or the corresponding exponential matrix or sequence.
(149) For example, the LDPC decoder 1020 may generate information word bits by performing the LDPC decoding through passing of a log likelihood ratio (LLR) value corresponding to the LDPC codeword bits through an iterative decoding algorithm
(150) Here, the LLR value is a channel value corresponding to the LDPC codeword bits, and may be expressed in various ways.
(151) For example, the LLR value may represent a value obtained by taking logarithm of a ratio of probabilities that the bit transmitted from a transmitting side through a channel is 0 and 1. Further, the LLR value may be a bit value itself determined by hard decision, or may be a representative value determined in accordance with a section to which the probability that the bit transmitted from the transmitting side is 0 or 1.
(152) In this case, the transmitting side may generate the LDPC codeword using the LDPC encoder 1010.
(153) In this case, the LDPC decoder 1020 may perform LDPC decoding using parity check matrices differently defined in accordance with the coding rate (i.e., a coding rate of the LDPC code).
(154)
(155) On the other hand, as described above, the LDPC decoder 1020 may perform the LDPC decoding using the iterative decoding algorithm, and in this case, the LDPC decoder 1020 may be configured as the structure of
(156) Referring to
(157) The input processor 1101 stores input values therein. Specifically, the input processor 1101 may store an LLR value of a received signal received through a radio channel.
(158) The controller 1104 determines the number of values input to the variable node operator 1104, address values of the memory 1102, the number of values input to the check node operator 1108, and address values of the memory 1102 based on the block size (i.e., a codeword length) of the received signal received through the radio channel and the parity check matrix corresponding to the coding rate.
(159) The memory 1102 stores input data and output data of the variable node operator 1104 and the check node operator 1108.
(160) The variable node operator 1104 receives an input of data from the memory and perform variable node operation in accordance with address information of the input data input from the controller 1106 and information on the number of pieces of input data. Thereafter, the variable node operator 1104 stores the variable node operation results in the memory 1102 based on address information of the output data input from the controller 1106 and information on the number of pieces of output data. Further, the variable node operator 1104 inputs the variable node operation results to the output processor 1110 based on the data input from the input processor 1101 and the memory 1102.
(161) The check node operator 1108 receives an input of data from the memory 1102 and performs check node operation based on the address information of the input data input from the controller 1106 and the information on the number of pieces of input data. Thereafter, the check node operator 1108 stores the variable node operation results in the memory 1102 based on address information of the output data input from the controller 1106 and information on the number of pieces of output data.
(162) The output processor 1110 performs hard decision on whether the information word bits of the codeword on the transmitting side is 0 or 1 based on the data input from the variable node operator 1104, and then outputs the hard-decision result, so that the output value of the output processor 1110 becomes a finally decoded value.
(163) On the other hand, the decoding device 1100 may further include a memory (not illustrated) for pre-storing information on the coding rate of the LDPC code, codeword length, and parity check matrix, and the LDPC decoder 1020 may perform the LDPC decoding using such information. However, this is merely various, and the corresponding information may be provided from the transmitting side.
(164) On the other hand, parts of the configurations included in the decoding device 1100 may be omitted, or a partial configuration may be added thereto. Further, the configurations of the input processor, memory, variable node operator, check node operator, and output processor included in the decoding device 1100 may be controlled by the controller 1106.
(165)
(166) The LDPC encoder 1010 may be configured to have a structure as illustrated in
(167) Referring to
(168) The transceiver 1121 may transmit and receive signals. The controller 1122 may control the operation of the decoding device according to an embodiment of the disclosure. The memory 1122 may store at least one of information transmitted/received through the transceiver 1121 and information generated through the controller 1122.
(169)
(170) Referring to
(171) From the foregoing, in the communication and broadcasting system supporting the LDPC code having various lengths, the method for applying various block sizes based on a QC-LDPC code has been described.
(172)
(173) Referring to
(174) The base matrix illustrated in
(175) In the base matrix of
(176) As for the position of entry 1 in each row, excluding columns having the degree of 1 from the base matrix of
(177) A transmitter generates and transmits a codeword through the parity check matrix having the base matrix having the balancing and partial windowing-orthogonal characteristics as shown in
(178)
(179) The exponential matrix of
(180) Further,
(181) The exponential matrix illustrated in
(182) Since each entry of the exponential matrix of
(183) The exponential matrix of
(184) For example, if it is assumed that the exponential matrix of
(185)
(186) In the mathematical expression 17, f(x,L) may be defined in various forms, and for example, definitions as in mathematical expression 18 below may be used.
(187)
(188) In the mathematical expression 18, mod(a,b) means a modulo-b operation for a, and D means a constant that is a predefined positive integer.
(189) Depending on the system, the base matrix and the exponential matrix shown in
(190) Further, the LDPC encoding and decoding may be applied using a new base matrix that can be obtained by connecting the partial matrix composed of 6 upper rows of the base matrix of
(191) In general, the LDPC code may adjust the coding rate by applying puncturing of the codeword bits in accordance with the coding rate. In case of puncturing the parity bits corresponding to the column having the degree of 1, the LDPC code based on the base matrix or the exponential matrix as shown in
(192) For example, if information word bits corresponding to two front columns of the exponential matrix corresponding to
(193) As a detailed embodiment of the disclosure, if the LDPC encoding and decoding is applied based on the base matrix and the exponential matrix corresponding to
(194) Pattern 1: 2, 3, 4, . . . , 20, 21, 22, 23-A, 26, 24, 27, 23-B, 25, 28, 29, . . . , 67, 0, 1
(195) Pattern 2: 2, 3, 4, . . . , 20, 21, 22, 23-A, 26, 27, 24, 23-B, 25, 28, 29, . . . , 67, 0, 1
(196) The pattern 1 and pattern 2 mean that transmission is made in the order of codeword bits corresponding to the column corresponding to the pattern order. In other words, the pattern 1 and pattern 2 mean that puncturing is applied to the codeword bits in reverse order. In case of the pattern 1, for example, in case of applying the puncturing to the codeword for rate matching, the puncturing is applied for a necessary length in order, starting from the codeword bits having a size of Z corresponding to the first column (however, the order of 0 and 1 can be changed in the pattern 1 and pattern 2).
(197) In the pattern 1 and pattern 2, 23-A and 23-B mean that the codeword bits corresponding to the 23.sup.rd column block has been divided into two groups. For example, 23-A may mean the first ┌z/2┐ bit of the codeword bits corresponding to the 23.sup.rd column group, and 23-B may mean the last Z-┌Z/2┐ bit of the codeword bits corresponding to the 23.sup.rd column group. The division of the bits for 23-A and 23-B is merely various, and they can be divided using various methods (e.g., 23-A is the ┌Z/2┐ bit, and 23-B is the Z-┌Z/2┐ bit).
(198) As for the transmission order, it is not necessary to perform transmission in the order of codeword bit units corresponding to the column blocks, and for performance improvement, the transmission order may differ through division of the codeword bits corresponding to the column blocks into two or more groups. In other words, in order to obtain more superior encoding performance, the transmission order of the codeword bits corresponding to at least one column block may be differently configured.
(199) For reference, transmission in the unit of codeword bits corresponding to the column blocks may mean that codeword bits corresponding to another column block are not transmitted while codeword bits for one column block are successively transmitted.
(200) Such a rate matching method may be applied using the above-described patterns, and a method by the system for performing puncturing from a predetermined position may be applied after performing proper interleaving with respect to the codeword bits. For example, in an LTE system, a redundancy version (RV) technique may be used. An example of the RV technique will be briefly described as follows.
(201) First, pattern 1 and pattern 2 are respectively changed to pattern 3 and pattern 4.
(202) Pattern 3: 0, 1, 2, 3, 4, . . . , 20, 21, 22, 23-A, 26, 24, 27, 23-B, 25, 28, 29, . . . , 67
(203) Pattern 4: 0, 1, 2, 3, 4, . . . , 20, 21, 22, 23-A, 26, 27, 24, 23-B, 25, 28, 29, . . . , 67
(204) If the value of RV-0 indicating a transmission start position is configured to 2 with respect to the codeword, it is possible to configure the puncturing to be taken from the codeword bits for the zeroth and first column blocks in accordance with the coding rate. Here, various initial transmission orders can be determined in accordance with the RV-0 value, and by properly configuring an RV-I value, it can be applied to an application technology of the LDPC encoding and decoding, such as HARQ. For example, when transmitting additional parity bits after transmitting all codeword bits for the 2.sup.nd to 67.sup.th column blocks, the additional codeword bits may be iteratively transmitted, circularly starting from the zeroth and first column blocks, or the additional codeword bits may be transmitted in various methods in accordance with RV-I values.
(205) Further, the pattern or interleaving method may be differently applied in accordance with the modulation order to improve the performance. For example, if the coding rate is lower than a specific coding rate R_th, a rate matching method corresponding to the first pattern is applied, and if the coding rate becomes higher than R_th, the second pattern that is different from the first pattern may be used (if the coding rate is equal to R_th, the pattern can be selected in accordance with a predetermined method).
(206) The base matrix and the exponential matrix as shown in
(207) Mathematical Expression 19 0 2 3 4 5 6 7 9 12 15 19 20 22 23 0 1 4 6 10 11 13 16 17 18 19 20 21 23 24 0 1 4 7 8 10 11 12 13 14 15 16 19 21 22 24 25 1 2 3 5 6 8 9 10 12 13 14 15 17 18 20 21 25 26 0 1 2 3 5 7 8 9 11 14 16 17 18 22 26 0 1 22 27 0 1 4 11 21 22 28 1 7 13 14 16 18 19 29 0 1 2 3 5 9 10 30 0 1 4 11 12 15 22 31 0 1 7 8 16 20 21 32 0 1 2 5 17 19 33 0 4 6 9 11 22 34 1 7 14 16 21 35 0 1 2 3 19 24 36 0 4 5 9 11 37 0 1 7 14 16 22 23 38 1 2 18 19 39 0 4 5 11 25 40 0 1 8 9 21 41 0 1 7 14 26 42 13 16 19 43 0 1 2 5 15 44 0 4 9 11 13 45 1 7 10 14 46 0 12 19 22 47 01 16 20 48 0 6 11 17 49 0 2 7 9 50 0 1 14 19 24 51 0 1 10 13 52 1 4 25 53 0 5 16 17 54 0 1 7 23 55 0 1 8 18 56 0 1 11 19 26 57 0 1 9 15 58 0 5 16 23 59 1 7 12 60 0 1 6 25 61 03 14 19 62 0 11 24 63 0 1 20 21 64 0 9 16 26 65 1 10 13 66 0 5 8 67
(208) Mathematical Expression 20 194 25 92 160 98 244 9 248 178 107 40 245 1 0 0 192 118 229 142 157 164 29 235 83 11 129 240 0 0 39 140 178 22 76 33 124 230 73 179 57 126 161 45 0 0 0 185 186 118 171 240 203 251 148 205 162 233 187 255 10 146 104 0 0 149 222 1 69 177 16 117 222 147 247 214 115 134 1 0 106 29 13 0 195 219 101 126 122 181 0 61 185 146 248 148 40 235 0 233 133 220 174 15 126 173 0 82 208 57 148 211 149 82 0 42 19 216 75 79 47 41 0 5 74 4 54 76 64 0 42 203 53 28 103 20 0 8 3 137 35 78 0 235 251 120 121 119 112 0 86 199 4 89 183 0 50 254 126 250 188 59 177 0 232 123 74 172 0 70 187 249 145 130 0 185 20 200 172 28 0 60 125 236 255 109 0 154 95 29 15 0 135 198 228 156 199 0 14 162 171 76 13 0 96 54 44 112 0 84 98 164 19 0 24 80 249 74 0 57 245 163 90 0 68 77 209 203 0 55 43 205 141 13 0 153 127 230 250 0 236 82 74 0 140 129 25 168 0 87 29 123 139 0 67 170 77 161 0 228 233 123 217 226 0 95 155 233 158 0 80 233 121 138 0 198 240 227 0 175 104 233 2 0 28 19 113 218 0 75 124 134 0 69 72 53 125 0 18 61 92 145 0 183 218 231 0 9 59 196 0
(209) The mathematical expression 19 indicates a position of entry 1 for each row in a partial matrix having a size of 46×68 in the base matrix of
(210) The mathematical expression 20 indicates respective entry values for each row in a partial matrix having a size of 46×68 in the base matrix of
(211) If parts of the base matrix and the exponential matrix have a specific rule, the base matrix and the exponential matrix can be expressed more simply. For example, if the 27.sup.th to last column blocks have a diagonal structure, such as the base matrix and the exponential matrix of
(212) As an example, mathematical expression 21 below shows an example in which the positions of entries 1 are omitted in the 27.sup.th to last column blocks.
(213) Mathematical Expression 21 0 2 3 4 5 6 7 9 12 15 19 20 22 23 0 1 4 6 10 11 13 16 17 18 19 20 21 23 24 0 1 4 7 8 10 11 12 13 14 15 16 19 21 22 24 25 1 2 3 5 6 8 9 10 12 13 14 15 17 18 20 21 25 26 0 1 2 3 5 7 8 9 11 14 16 17 18 22 26 0 1 22 0 1 4 11 21 22 1 7 13 14 16 18 19 0 1 2 3 5 9 10 0 1 4 11 12 15 22 0 1 7 8 16 20 21 0 1 2 5 17 19 0 4 6 9 11 22 1 7 14 16 21 0 1 2 3 19 24 0 4 5 9 11 0 1 7 14 16 22 23 1 2 18 19 0 4 5 11 25 0 1 8 9 21 0 1 7 14 26 1 3 16 19 0 1 2 5 15 0 4 9 11 13 1 7 10 14 0 12 19 22 0 1 16 20 0 6 11 17 0 2 7 9 0 1 14 19 24 0 1 10 13 1 4 25 0 5 16 17 0 1 7 23 0 1 8 18 0 1 11 19 26 0 1 9 15 0 5 16 23 1 7 12 0 1 6 25 0 3 14 19 0 11 24 0 1 20 21 0 9 16 26 1 10 13 0 5 8
(214) As described above, the base matrix and the exponential matrix of
(215) Another embodiment of a base matrix satisfying balancing and partial windowing-orthogonal characteristics proposed in an embodiment of the disclosure is shown in
(216)
(217) Referring to 15A to 15C, in the base matrix of
(218) Further,
(219) It can be easily identified that the base matrix of
(220) Another embodiment of a base matrix for LDPC encoding and decoding supporting various coding rates and code lengths based on the base matrix satisfying balancing and partial windowing-orthogonal characteristics proposed in an embodiment of the disclosure is shown in
(221)
(222) Referring to 16A to 16E,
(223) The base matrix illustrated in
(224) Mathematical Expression 22 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24 0 1 2 4 5 6 7 8 9 10 13 14 15 17 18 19 20 24 25 0 1 3 4 6 7 8 10 11 12 13 14 16 17 18 20 21 22 25 0 1 26 0 1 3 12 16 21 22 27 0 6 10 11 13 17 18 20 28 0 1 4 7 8 14 29 0 1 3 12 16 19 21 22 24 30 0 1 10 11 13 17 18 20 31 1 2 4 7 8 14 32 0 1 12 16 21 22 23 33 0 1 10 11 13 18 34 0 3 7 20 23 35 0 12 15 16 17 21 36 0 1 10 13 18 25 37 1 3 11 20 22 38 0 14 16 17 21 39 1 12 13 18 19 40 0 1 7 8 10 41 0 3 9 11 22 42 1 5 16 20 21 43 0 12 13 17 44 1 2 10 18 45 0 3 4 11 22 46
(225) If a specific rule can be found with respect to parts of the base matrix, the base matrix can be expressed more simply. For example, if the 27.sup.th to last columns have a diagonal structure, such as the base matrix of
(226) Mathematical Expression 23 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24 0 1 2 4 5 6 7 8 9 10 13 14 15 17 18 19 20 24 25 0 1 3 4 6 7 8 10 11 12 13 14 16 17 18 20 21 22 25 0 1 0 1 3 12 16 21 22 0 6 10 11 13 17 18 20 0 1 4 7 8 14 0 1 3 12 16 19 21 22 24 0 1 10 11 13 17 18 20 1 2 4 7 8 14 0 1 12 16 21 22 23 0 1 10 11 13 18 0 3 7 20 23 0 12 15 16 17 21 0 1 10 13 18 25 1 3 11 20 22 0 14 16 17 21 1 12 13 18 19 0 1 7 8 10 0 3 9 11 22 1 5 16 20 21 0 12 13 17 1 2 10 18 0 3 4 11 22
(227) Mathematical Expression 24 indicates a position of entry 1 for each column in the base matrix of
(228) Mathematical Expression 24 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 17 19 20 22 24 0 2 3 4 5 7 8 9 10 11 12 15 16 18 19 21 23 0 1 2 10 23 0 1 3 5 8 13 16 20 24 1 2 3 7 10 24 0 1 2 21 0 2 3 6 1 2 3 7 10 13 19 1 2 3 7 10 19 0 1 2 20 0 2 3 6 9 12 15 19 23 0 1 3 6 9 12 16 20 24 0 1 3 5 8 11 14 18 22 0 2 3 6 9 12 15 18 22 1 2 3 7 10 17 0 1 2 14 0 1 3 5 8 11 14 17 21 1 2 3 6 9 14 17 22 0 2 3 6 9 12 15 18 23 0 1 2 8 18 0 2 3 6 9 13 16 21 0 1 3 5 8 11 14 17 21 0 1 3 5 8 11 16 20 24 0 1 11 13 1 2 8 2 3 15 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
(229) If a specific rule can be found with respect to parts of the base matrix, the base matrix can be expressed more simply. For example, if the 27.sup.th to last columns have a diagonal structure, such as the base matrix of
(230) Mathematical Expression 25 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 17 19 20 22 24 0 2 3 4 5 7 8 9 10 11 12 15 16 18 19 21 23 0 1 2 10 23 0 1 3 5 8 13 16 20 24 1 2 3 7 10 24 0 1 2 21 0 2 3 6 1 2 3 7 10 13 19 1 2 3 7 10 19 0 1 2 20 0 2 3 6 9 12 15 19 23 0 1 3 6 9 12 16 20 24 0 1 3 5 8 11 14 18 22 0 2 3 6 9 12 15 18 22 1 2 3 7 10 17 0 1 2 14 0 1 3 5 8 11 14 17 21 1 2 3 6 9 14 17 22 0 2 3 6 9 12 15 18 23 0 1 2 8 18 0 2 3 6 9 13 16 21 0 1 3 5 8 11 14 17 21 0 1 3 5 8 11 16 20 24 0 1 11 13 1 2 8 2 3 15
(231) As described above, the base matrix and the exponential matrix can be expressed in various methods. If permutation of columns or rows is applied with respect to the base matrix, it is possible to equally express the base matrix and the exponential matrix by properly changing positions of sequences or numerals in the sequences in the mathematical expressions 19 to 25.
(232) In the base matrix of
(233) For reference, by properly shortening and puncturing parts of information word bits with respect to an LDPC code that can be generated based on the base matrix of
(234) The LDPC code can adjust the coding rate by applying puncturing of the codeword bits in accordance with the coding rate. In case of puncturing the parity bits corresponding to the column having the degree of 1, the LDPC code based on the base matrix or the exponential matrix proposed in an embodiment of the disclosure can perform decoding without using the corresponding part in the parity check matrix, and thus decoding complexity can be reduced. However, in case of considering the coding performance, the performance of the LDPC code can be improved through adjustment of the puncturing order of the parity bits or the transmission order of the generated LDPC codewords.
(235) In general, the performance can be further improved by applying proper rate matching after generating the LDPC codeword using the base matrix or the exponential matrix proposed in an embodiment of the disclosure. Based on the rate matching, the order of columns in the base matrix or the exponential matrix may be properly realigned to be applied to the LDPC encoding and decoding.
(236) The LDPC encoding process may include determining a size of input bits (or code blocks) for applying the LDPC encoding, determining a block size Z for applying the LDPC encoding in accordance with the size, determining a proper LDPC exponential matrix or a sequence in accordance with the block size, and performing LDPC encoding based on the block size Z, the determined exponential matrix or LDPC sequence. In this case, the LDPC exponential matrix or sequence may be applied to the LDPC encoding without any conversion, and according to circumstances, the LDPC encoding may be performed by properly converting the LDPC exponential matrix or sequence in accordance with the block size Z.
(237) In the same manner, the LDPC decoding process may include determining a size of input bits (or code blocks) for the transmitted LDPC codeword, determining a block size Z for applying the LDPC decoding in accordance with the size, determining a proper LDPC exponential matrix or a sequence in accordance with the block size, and performing LDPC decoding based on the block size Z, the determined exponential matrix or LDPC sequence. In this case, the LDPC exponential matrix or sequence may be applied to the LDPC decoding without any conversion, and according to circumstances, the LDPC decoding may be performed by properly converting the LDPC exponential matrix or sequence in accordance with the block size Z.
(238) Here, the base matrix for the LDPC exponential matrix or sequence may be featured to be the base matrix of
(239) Another embodiment of a base matrix for LDPC encoding and decoding supporting various coding rates and code lengths based on the base matrix satisfying balancing and partial windowing-orthogonal characteristics proposed in an embodiment of the disclosure is shown in
(240)
(241) Referring to
(242) Further,
(243) In general, if parts in
(244) Further, if each row of
(245) As a result, the base matrix of
(246) Although
(247) In the same manner, by connecting the realigned base matrix to that of
(248) Although
(249) The mathematical expression 26 indicates a position of entry 1 for each row in the base matrix, and as shown in
(250) Mathematical Expression 26 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24 0 1 2 4 5 6 7 8 9 10 13 14 15 17 18 19 20 24 25 0 1 3 4 6 7 8 10 11 12 13 14 16 17 18 20 21 22 25 0 1 26 0 1 3 12 16 21 22 27 0 6 10 11 13 17 18 20 28 0 1 4 7 8 14 29 0 1 3 12 16 19 21 22 24 30 0 1 10 11 13 17 18 20 31 1 2 4 7 8 14 32 0 1 12 16 21 22 23 33 0 1 10 11 13 18 34 0 3 7 20 23 35 0 12 15 16 17 21 36 0 1 10 13 18 25 37 1 3 11 20 22 38 0 14 16 17 21 39 1 12 13 18 19 40 0 1 7 8 10 41 0 3 9 11 22 42 1 5 16 20 21 43 0 12 13 17 44 1 2 10 18 45 0 3 4 11 22 46 1 6 7 14 47 0 2 4 15 48 1 6 8 49 0 4 19 21 50 1 14 18 25 51 0 10 13 24 52 1 7 22 25 53 0 12 14 24 54 1 2 11 21 55 0 7 15 17 56 1 6 12 22 57 0 14 15 18 58 1 13 23 59 0 9 10 12 60 1 3 7 19 61 0 8 17 62 1 3 9 18 63 0 4 24 64 1 16 18 25 65 0 7 9 22 66 1 6 10 67
(251) In general, in case of supporting a variable information word length or variable code rate using shortening or zero padding of the LDPC code, the performance of the LDPC code can be improved in accordance with the shortening order. If the shortening order is predetermined, the encoding performance can be improved by properly realigning the order of a part or the whole of the given base matrix.
(252) An example of the realigned base matrix as described above is illustrated in
(253)
(254) Referring to
(255) The base matrix of
(256) The base matrix illustrated in
(257) Mathematical Expression 27 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24 0 1 2 4 5 6 7 8 9 10 13 14 15 17 18 19 20 24 25 0 1 3 4 6 7 8 10 11 12 13 14 16 17 18 20 21 22 25 0 1 26 0 1 3 12 16 21 22 27 0 6 10 11 13 17 18 20 28 0 1 4 7 8 14 29 0 1 3 12 16 19 21 22 24 30 0 1 6 10 11 13 17 18 31 1 2 4 7 8 14 32 0 1 12 16 21 22 23 33 0 1 10 11 13 18 34 0 3 6 7 23 35 0 12 15 16 17 21 36 0 1 10 13 18 25 37 1 3 6 11 22 38 0 14 16 17 21 39 1 12 13 18 19 40 0 1 7 8 10 41 0 3 9 11 22 42 1 5 6 16 21 43 0 12 13 17 44 1 2 10 18 45 0 3 4 11 22 46
(258) If a specific rule can be found with respect to parts of the base matrix, the base matrix can be expressed more simply. For example, if the 27.sup.th to last columns have a diagonal structure, such as the base matrix of
(259) Mathematical Expression 28 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24 0 1 2 4 5 6 7 8 9 10 13 14 15 17 18 19 20 24 25 0 1 3 4 6 7 8 10 11 12 13 14 16 17 18 20 21 22 25 0 1 0 1 3 12 16 21 22 0 6 10 11 13 17 18 20 0 1 4 7 8 14 0 1 3 12 16 19 21 22 24 0 1 6 10 11 13 17 18 1 2 4 7 8 14 0 1 12 16 21 22 23 0 1 10 11 13 18 0 3 6 7 23 0 12 15 16 17 21 0 1 10 13 18 25 1 3 6 11 22 0 14 16 17 21 1 12 13 18 19 0 1 7 8 10 0 3 9 11 22 1 5 6 16 21 0 12 13 17 1 2 10 18 0 3 4 11 22
(260) As described above, the base matrix and the exponential matrix can be expressed in various methods. If permutation of columns or rows of a partial matrix is applied to the base matrix or a part of the base matrix, a new base matrix can be defined by properly changing the sequence or positions of numerals in the sequence expressed in the mathematical expressions 19 to 28.
(261) As another embodiment of the disclosure, a method for applying a plurality of exponential matrices or LDPC sequences based on the base matrix of
(262) First, the block size Z to be supported is divided into a plurality of block size groups (or sets) as expressed in mathematical expression 20 below. It is to be noted that the block size Z is a value corresponding to the size Z×Z of the circulant permutation matrix or circulant matrix in the parity check matrix of the LDPC code.
(263) Mathematical Expression 29 Z1={3, 6, 12, 24, 48, 96, 192, 384} Z2={11, 22, 44, 88, 176, 352} Z3={5, 10, 20, 40, 80, 160, 320} Z4={9, 18, 36, 72, 144, 288} Z5={2, 4, 8, 16, 32, 64, 128, 256} Z6={15, 30, 60, 120, 240} Z7={7, 14, 28, 56, 112, 224} Z8={13, 26, 52, 104, 208}
(264) The mathematical expression 29 is merely various, and all block size Z values included in the block size group of the mathematical expression 29 may be used, or block size values included in a proper partial matrix as expressed in mathematical expression 30 below. Further, proper values may be added to the block size group (set) expressed in the mathematical expression 29 or 30 to be used.
(265) Mathematical Expression 30 Z1′={12, 24, 48, 96, 192, 384} Z2′={11, 22, 44, 88, 176, 352} Z3′={10, 20, 40, 80, 160, 320} Z4′={9, 18, 36, 72, 144, 288} Z5′={8, 16, 32, 64, 128, 256} Z6′={15, 30, 60, 120, 240} Z7′={14, 28, 56, 112, 224} Z8′={13, 26, 52, 104, 208}
(266) The block size groups expressed in the mathematical expression 29 or 30 are featured so that they have different particle sizes and the ratios of neighbor block sizes are all equal integers. In other words, the sizes of the blocks included in one group are in a divisor or multiple relationship with each other. If it is assumed that the exponential matrices corresponding to the p-th p (p=1, 2, . . . , 8) group are E.sub.P=(e.sub.i,j.sup.(p)), and the exponential matrices corresponding to Z values included in the p-th group is E.sub.P(Z)=(e.sub.i,j(Z)), a sequence conversion method expressed in the mathematical expression 17 is applied using f.sub.P(x,Z)=x(mod Z). For example, if the block size Z is determined as Z=28, respective entries e.sub.i,j(28) of the exponential matrix E.sub.7(28)=(e.sub.i,j(28)) for Z=28 can be obtained as in mathematical expression 31 below with respect to the exponential matrix E.sub.7=(e.sub.i,j.sup.(7)) corresponding to the 7.sup.th block size group in which z=28 is included.
(267)
(268) The conversion as expressed in the mathematical expression 31 may be simply expressed as in mathematical expression 32 below.
E.sub.p(Z)=E.sub.p(mod Z),Z∈Z.sub.p Mathematical expression 32
(269) The base matrix of the LDPC code and the exponential matrix (or LDPC sequence) designed based on the mathematical expressions 29 to 32 are shown in
(270) Embodiments of exponential matrices corresponding to the parity check matrix of the QC LDPC code designed based on the mathematical expressions 29 to 32 are successively illustrated in
(271)
(272)
(273) Referring to
(274)
(275) Referring to
(276) The exponential matrix illustrated in
(277) The exponential matrices illustrated in
(278) Further, depending on the system, the exponential matrices illustrated in
(279) Since the LDPC exponential matrices of
(280) In general, the LDPC encoding and decoding may be performed by applying the partial matrix configured by properly selecting rows and columns from the base matrices of
(281)
(282) Referring to
(283)
(284) Referring to
(285)
(286)
(287) Referring to
(288) The exponential matrices illustrated in
(289) For example, the exponential matrices illustrated in
(290) Further, depending on the system, the exponential matrices illustrated in
(291) In general, the LDPC encoding and decoding may be performed by applying the partial matrix configured by properly selecting rows and columns from the base matrix of
(292) For reference, the base matrix for the LDPC encoding and decoding expressed as a sequence in the mathematical expression 26 may be expressed as in the mathematical expression 33 or 34.
(293) The mathematical expression 33 means an LDPC sequence that can be used if it is assumed that the positions of entries or their index values are omitted but the corresponding rule is known in case where the 27.sup.th to last column blocks, such as the base matrix, have a diagonal structure. As an example, the mathematical expression 33 shows an example in which the location of entry 1 is omitted in the 27.sup.th to last column blocks.
(294) Mathematical Expression 33 0 1 2 3 5 6 9 10 11 12 13 15 16 18 19 20 21 22 23 0 2 3 4 5 7 8 9 11 12 14 15 16 17 19 21 22 23 24 0 1 2 4 5 6 7 8 9 10 13 14 15 17 18 19 20 24 25 0 1 3 4 6 7 8 10 11 12 13 14 16 17 18 20 21 22 25 0 1 0 1 3 12 16 21 22 0 6 10 11 13 17 18 20 0 1 4 7 8 14 0 1 3 12 16 19 21 22 24 0 1 10 11 13 17 18 20 1 2 4 7 8 14 0 1 12 16 21 22 23 0 1 10 11 13 18 0 3 7 20 23 0 12 15 16 17 21 0 1 10 13 18 25 1 3 11 20 22 0 14 16 17 21 1 12 13 18 19 0 1 7 8 10 0 3 9 11 22 1 5 16 20 21 0 12 13 17 1 2 10 18 0 3 4 11 22 1 6 7 14 0 2 4 15 1 6 8 0 4 19 21 1 14 18 25 0 10 13 24 1 7 22 25 0 12 14 24 1 2 11 21 0 7 15 17 1 6 12 22 0 14 15 18 1 13 23 0 9 10 12 1 3 7 19 0 8 17 1 3 9 18 0 4 24 1 16 18 25 0 7 9 22 1 6 10
(295) Mathematical Expression 34 indicates a position of entry 1 for the base matrix expressed in the mathematical expression 26. For convenience, the mathematical expression 34 is an example in which a position of entry 1 is omitted in the 27.sup.th to last column blocks, and from the 28.sup.th column, one sequence may be added and expressed in the order of 4, 5, 6, . . . .
(296) Mathematical Expression 34 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 17 19 20 22 24 26 28 30 32 34 36 38 40 42 44 0 2 3 4 5 7 8 9 10 11 12 15 16 18 19 21 23 25 27 29 31 33 35 37 39 41 43 45 0 1 2 10 23 26 33 0 1 3 5 8 13 16 20 24 39 41 1 2 3 7 10 24 26 28 42 0 1 2 21 0 2 3 6 25 27 35 45 1 2 3 7 10 13 19 25 31 34 39 44 1 2 3 7 10 19 27 40 0 1 2 20 38 41 44 0 2 3 6 9 12 15 19 23 30 38 45 0 13 69 12 16 20 24 33 0 1 3 5 8 11 14 18 22 32 35 38 0 2 3 6 9 12 15 18 22 30 37 1 2 3 7 10 17 25 29 32 36 0 1 2 14 26 34 36 0 1 3 5 8 11 14 17 21 43 1 2 3 69 14 17 22 34 40 0 2 3 6 9 12 15 18 23 29 36 41 43 0 1 2 8 18 28 39 0 2 3 6 9 13 16 21 0 1 3 5 8 11 14 17 21 28 33 0 1 3 5 8 11 16 20 24 31 35 44 0 1 11 13 37 1 2 8 30 32 42 2 3 15 29 31 43
(297)
(298) Referring to
(299) While the disclosure has been shown and described with reference to various embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the disclosure as defined by the appended claims and their equivalents.