KR20060013197A - Encoding method using LDPC code and computer readable recording medium for encoding - Google Patents
Encoding method using LDPC code and computer readable recording medium for encoding Download PDFInfo
- Publication number
- KR20060013197A KR20060013197A KR1020040062068A KR20040062068A KR20060013197A KR 20060013197 A KR20060013197 A KR 20060013197A KR 1020040062068 A KR1020040062068 A KR 1020040062068A KR 20040062068 A KR20040062068 A KR 20040062068A KR 20060013197 A KR20060013197 A KR 20060013197A
- Authority
- KR
- South Korea
- Prior art keywords
- parity check
- check matrix
- rows
- matrix
- weight
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 239000011159 matrix material Substances 0.000 claims abstract description 156
- 230000009977 dual effect Effects 0.000 claims description 5
- 230000002159 abnormal effect Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 LDPC 코드를 이용한 부호화 방법 및 부호화를 위한 컴퓨터로 읽을 수 있는 기록 매체에 관한 것이다. 본 발명에 의한 LDPC(Low Density Parity Check) 코드를 이용한 부호화 방법은, LDPC 코드를 이용한 부호화 방법에 있어서, 소스 입력 데이터를 패리티 검사 행렬(parity check matrix) H(H는 (n-k)×n 차원임)를 이용하여 부호화하되, 상기 패리티 검사 행렬 H가 (n-k)/m×(n-k)/m 차원을 갖는 다수의 서브행렬로 구성될 경우에, 상기 패리티 검사 행렬 H를 구성하는 임의의 서브행렬의 행 무게 및 열 무게는 1이고, 상기 패리티 검사 행렬 Η의 임의의 세 행 중에서 선택된 모든 조합 가능한 두 개의 행이 같은 지점에 1을 갖는 경우가 기 설정된 임계값(Cmax) 이하인 것을 특징으로 한다.The present invention relates to an encoding method using an LDPC code and a computer readable recording medium for encoding. In the encoding method using a low density parity check (LDPC) code according to the present invention, in the encoding method using an LDPC code, parity check matrix H (H is (nk) × n dimension) of the source input data. ), And when the parity check matrix H is composed of a plurality of submatrices having (nk) / m × (nk) / m dimensions, any of the submatrices constituting the parity check matrix H The row weight and the column weight are 1, and the case where all two combineable rows selected from any of the three rows of the parity check matrix ƒ has 1 at the same point is less than or equal to a preset threshold value C max .
LDPC 코드, 부호화, 복호화, 패리티 체크, 행렬LDPC code, encoding, decoding, parity check, matrix
Description
도1은 본 발명의 바람직한 일 실시예를 설명하기 위한 통신 시스템 구성도임.1 is a configuration of a communication system for explaining an embodiment of the present invention.
도2는 m=4인 경우에 H(i) d의 일례를 도시한 것임.Fig. 2 shows an example of H (i) d when m = 4.
도3은 패리티 검사 행렬 Η의 임의의 세 행 중에서 선택된 모든 조합 가능한 두 개의 행이 같은 지점에 1을 갖는 경우의 예를 도시한 것임.Fig. 3 shows an example in which all two combinable rows selected from any of the three rows of the parity check matrix Η have 1 at the same point.
도4는 패리티 검사 행렬 Η의 다른 표현 방법인 바이퍼타이트 그래프(bipartite graph)임.4 is a bipartite graph, which is another representation of the parity check matrix ƒ.
도5는 패리티 검사 행렬 Η의 두 행이 두 개의 지점에 동시에 1을 갖는 경우를 예시한 도면임.5 is a diagram illustrating a case where two rows of the parity check matrix Η have 1 at two points at the same time.
도6은 패리티 검사 행렬 H를 생성하는 일 과정을 설명하기 위한 절차 흐름도임.6 is a procedure flowchart for explaining a process of generating a parity check matrix H.
본 발명은 부호화(encoding) 방법에 관한 것이다. 보다 구체적으로는, 저밀도 패리티 검사(LDPC: Low Density Parity Check) 코드를 이용하여 부호화하는 방법의 성능(performance)을 향상시킬 수 있는 부호화 방법 및 부호화를 위한 컴퓨터로 읽을 수 있는 기록 매채에 관한 것이다.The present invention relates to an encoding method. More specifically, the present invention relates to an encoding method capable of improving the performance of a method of encoding using a low density parity check (LDPC) code, and a computer-readable recording medium for encoding.
일반적으로 부호화(encoding)라 함은 송신측에서 송신된 데이터가 통신 채널을 통하여 전송되는 과정에서 발생되는 신호의 일그러짐, 손실 등에 의한 오류의 발생에도 불구하고 수신측에서 원래의 데이터를 복원할 수 있도록 하기 위하여 송신측에서 데이터 처리를 하는 과정을 의미한다. 복호화(decoding)은 부호화되어 송신된 신호를 수신측에서 원래의 데이터로 복원하는 과정이다.In general, encoding means that the receiver can restore the original data in spite of an error caused by distortion or loss of the signal generated in the process of transmitting the data transmitted from the transmitter through the communication channel. In order to do so, it means a process of data processing at the transmitting side. Decoding is a process of restoring the encoded and transmitted signal to the original data at the receiving side.
최근에 LDPC 코드를 이용한 부호화 방법이 부각되고 있다. LDPC 코드는 패리티 검사 행렬(parity check matrix) Η의 원소(element)들의 대부분이 0이어서 저밀도(low density)인 선형 블록 부호(linear block code)로서 1962년 갤러거(Gallager)에 의해 제안되었다. LDPC 부호는 매우 복잡하여 제안 당시의 하드웨어 기술로는 구현이 불가능하였기 때문에 잊혀져 있다가 1995년에 재발견되어 성능이 매우 우수함이 입증된 이래로 최근에 그에 관한 연구가 활발히 진행되고 있는 상황이다. (참고문헌: [1] Robert G. Gallager, "Low-Density Parity-Check Codes", The MIT Press, September 15, 1963. [2] D.J.C.Mackay, Good error-correcting codes based on very sparse matrices, IEEE Trans. Inform. Theory, IT-45, pp.399-431(1999)) Recently, a coding method using an LDPC code has emerged. The LDPC code was proposed by Gallagher in 1962 as a linear block code of low density, where most of the elements of the parity check matrix Η are zero. Since the LDPC code is so complex that it could not be implemented by the hardware technology at the time of the proposal, it was forgotten and rediscovered in 1995, and the performance of the LDPC code has been actively studied. (Reference: [1] Robert G. Gallager, "Low-Density Parity-Check Codes", The MIT Press, September 15, 1963. [2] DJC Mackay, Good error-correcting codes based on very sparse matrices, IEEE Trans Inform.Theory, IT-45, pp. 399-431 (1999)).
LDPC 코드의 패리티 검사 행렬은 1의 개수가 매우 적기 때문에 매우 큰 블록 크기에서도 반복 복호를 통하여 복호가 가능하여 블록 크기가 매우 커지면 터보 코드처럼 섀넌(Shannon)의 채널 용량 한계에 근접하는 성능을 보인다.Since the parity check matrix of the LDPC code is very small, it can be decoded through iterative decoding even in a very large block size. When the block size becomes very large, the performance is close to Shannon's channel capacity limit like a turbo code.
LDPC 코드는 (n-k)×n 패리티 검사 행렬 Η에 의해 설명될 수 있다. 상기 패리티 검사 행렬 Η에 대응하는 생성 행렬(generator matrix) G는 다음의 수학식1에 의해 구할 수 있다.The LDPC code can be described by the (n-k) × n parity check matrix Η. The generator matrix 하는 corresponding to the parity check matrix ƒ can be obtained from
LDPC 코드를 이용한 부호화 및 복호화 방법에 있어서는 송신측에서 상기 패리티 검사 행렬 Η와 수학식1의 관계에 있는 상기 생성 행렬 G를 이용하여 다음의 수학식2에 의해 입력 데이터를 부호화한다.In the encoding and decoding method using the LDPC code, the transmitting side encodes the input data by the following equation (2) by using the generation matrix 에 in the relation between the parity check matrix ƒ and equation (1).
상기한 바와 같이, LDPC 코드를 이용한 부호화 방법에서는 상기 패리티 검사 행렬 Η가 가장 중요한 요소라 할 수 있다. 상기 패리티 검사 행렬 Η는 대략 1000×2000 정도의 크기를 갖기 때문에 부호화 및 복호화 과정에서 많은 연산이 요구되고, 구현이 매우 복잡하며, 많은 저장 공간을 요구한다.As described above, in the coding method using the LDPC code, the parity check matrix ƒ is the most important factor. Since the parity check matrix ƒ has a size of about 1000 × 2000, many operations are required in the encoding and decoding process, implementation is very complicated, and requires a lot of storage space.
일반적으로 패리티 검사 행렬 H에 더 많은 웨이트를 부가하는 것은, 패리티 검사 방정식(parity check equations)들에 더 많은 변수를 부가하는 것이기 때문에 LDPC 코드에 의한 부호화 및 복호화 방법에서 더 좋은 성능을 발휘할 수 있다. 그 러나, 패리티 검사 행렬 H에 더 많은 웨이트를 부가하면 패리티 검사 행렬 전체에 4-싸이클이나 6-싸이클을 형성하는 경우가 많아져 이에 따라 LDPC 코드에 의한 부호화 및 복호화 방법의 성능을 저하시킬 수 있는 위험성도 따른다.In general, adding more weight to the parity check matrix H may add more variables to the parity check equations, and thus may perform better in the encoding and decoding method using the LDPC code. However, if more weight is added to the parity check matrix H, 4-cycles or 6-cycles are often formed in the parity check matrix as a whole, thereby degrading the performance of the encoding and decoding method using the LDPC code. There is also a risk.
결과적으로 패리티 검사 행렬 H에 더 많은 웨이트를 부가함에 있어서 4-싸이클이나 6-싸이클을 어느 정도까지 허용할 것인지에 따라 LDPC 코드에 의한 부호화 및 복호화 방법의 성능에 중요한 영향을 미치므로 이에 대한 합리적 기준이 필요하다. As a result, a reasonable criterion for this is that the addition of more weight to the parity check matrix H has a significant effect on the performance of the encoding and decoding method by the LDPC code depending on how much to allow 4-cycles or 6-cycles. need.
본 발명은 상기한 바와 같은 종래기술의 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 LDPC 코드를 이용하여 부호화하는 방법에 있어서 LDPC 코드에 의한 부호화 및 복호화 방법의 성능을 향상 시킬 수 있는 부호화 방법을 제공하는 것이다.The present invention has been made to solve the problems of the prior art as described above, an object of the present invention is to encode the encoding and decoding method using the LDPC code in the method of encoding using the LDPC code To provide a way.
본 발명의 다른 목적은 상기 부호화 방법을 제공하는데 필요한 데이터 구조가 기록된 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.Another object of the present invention is to provide a computer readable recording medium having recorded thereon a data structure necessary for providing the encoding method.
본 발명의 또 다른 목적은 LDPC 코드를 이용한 부호화 및 복호화 방법에 이용되는 상기 패리티 검사 행렬 를 생성하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.It is still another object of the present invention to provide a computer readable recording medium having recorded thereon a program for generating the parity check matrix used in an encoding and decoding method using an LDPC code.
발명의 개요Summary of the Invention
본 발명의 일 양상으로서, 본 발명에 의한 LDPC(Low Density Parity Check) 코드를 이용한 부호화 방법은, LDPC 코드를 이용한 부호화 방법에 있어서, 소스 입력 데이터를 H=[Hd|Hp](Hd는 (n-k)×k, Hp는 (n-k)×(n-k) 차원임)의 관계임.)의 구조를 갖는 패리티 검사 행렬(parity check matrix) H를 이용하여 부호화하되, 상기 Hd는 (n-k)×(n-k) 차원을 갖는 r/(1-r)(여기서 r=k/n)개의 행렬 H(i) d (여기서, i=1, 2,...., r/(1-r))로 구성되고, 임의의 H(i) d는 (n-k)/m×(n-k)/m 차원을 갖는 m×m개의 서브행렬로 구성될 경우에, 상기 Hd를 구성하는 임의의 서브행렬의 행 무게(row weight) 및 열 무게(column weight)는 1이고, 상기 패리티 검사 행렬 Η의 임의의 세 행 중에서 선택된 모든 조합 가능한 두 개의 행이 같은 지점에 1을 갖는 경우가 기 설정된 임계값(Cmax) 이하인 것을 특징으로 한다. 상기 패리티 검사 행렬 Η의 임의의 어느 두 행(rows)도 둘 이상의 지점에 동시에 1을 갖지 않는 것이 바람직하다.As an aspect of the present invention, the encoding method using a low density parity check (LDPC) code according to the present invention, in the encoding method using an LDPC code, source input data H = [H d | H p ] (H d (Nk) × k, H p is a relationship of (nk) × (nk) dimension.) And a parity check matrix H having a structure of (nk) × k, where H d is (nk R / (1-r) (where r = k / n) matrices H (i) d (where i = 1, 2, ..., r / (1-r) ), And any H (i) d consists of m × m submatrices having dimensions (nk) / m × (nk) / m, where any submatrices constituting H d are The row weight and column weight of are 1, and all of the two selectable rows selected from any of the three rows of the parity check matrix Η have 1 at the same point. C max ) or less. It is preferable that any two rows of the parity check matrix ƒ not have 1 at more than one point at the same time.
본 발명의 다른 양상으로서, 본 발명에 의한 LDPC(Low Density Parity Check) 코드를 이용한 부호화 방법은, LDPC 코드를 이용한 부호화 방법에 있어서, 소스 입력 데이터를 패리티 검사 행렬(parity check matrix) H(H는 (n-k)×n 차원임)를 이용하여 부호화하되, 상기 패리티 검사 행렬 H가 (n-k)/m×(n-k)/m 차원을 갖는 다수의 서브행렬로 구성될 경우에, 상기 패리티 검사 행렬 H를 구성하는 임의의 서브행렬의 행 무게 및 열 무게는 1이고, 상기 패리티 검사 행렬 Η의 임의의 세 행 중에서 선택된 모든 조합 가능한 두 개의 행이 같은 지점에 1을 갖는 경 우가 기 설정된 임계값(Cmax) 이하인 것을 특징으로 한다.As another aspect of the present invention, the encoding method using a low density parity check (LDPC) code according to the present invention, in the encoding method using an LDPC code, parity check matrix H (H (nk) × n dimension, and when the parity check matrix H is composed of a plurality of submatrices having (nk) / m × (nk) / m dimensions, the parity check matrix H The row weight and column weight of any sub-matrix constituting are 1, and if all two combinable rows selected from any of the three rows of the parity check matrix Η have 1 at the same point, the preset threshold value (C max) It is characterized by the following.
본 발명의 또 다른 양상으로서, 본 발명에 따른 패리티 검사 행렬 H의 일부인 Hd의 데이터 구조가 기록된 컴퓨터로 읽을 수 있는 기록 매체는, 상기 패리티 검사 행렬 H=[Hd|Hp](Hd는 (n-k)×k, Hp는 (n-k)×(n-k) 차원임)의 관계임.)의 구조를 갖고, 상기 Hd는 (n-k)×(n-k) 차원을 갖는 r/(1-r)(여기서 r=k/n)개의 행렬 H(i) d (여기서, i=1, 2,...., r/(1-r))로 구성되며, 임의의 H(i) d가 (n-k)/m×(n-k)/m 차원을 갖는 m×m개의 서브행렬로 구성될 경우에, 상기 Hd를 구성하는 임의의 서브행렬의 행 무게(row weight) 및 열 무게(column weight)는 1이고, 상기 패리티 검사 행렬 Η의 임의의 세 행 중에서 선택된 모든 조합 가능한 두 개의 행이 같은 지점에 1을 갖는 경우가 기 설정된 임계값(Cmax) 이하인 것을 특징으로 하는 상기 Ηd와 동일한 데이터 구조가 기록된 것을 특징으로 한다.As another aspect, a recording medium which is part of data structure of the H d of the parity check matrix H according to the invention can be read by a recording computer of the present invention, the parity check matrix H = [H d | H p] (H d is a relationship of (nk) × k, H p is a dimension of (nk) × (nk).), and H d has a dimension of (nk) × (nk). r) (where r = k / n) matrices H (i) d (where i = 1, 2, ..., r / (1-r)), and any H (i) d Is the row weight and column weight of any sub-matrix constituting H d , when is composed of m × m submatrices with dimensions (nk) / m × (nk) / m ) is 1, the same as the Η d, characterized in that the parity check matrix, if having a 1 in any and all combinations both the same point row possible selected from the three rows of the Η a preset threshold value (C max) less than or equal to Characterized in that the data structure is recorded The.
본 발명의 또 다른 양상으로서, 본 발명에 따른 패리티 검사 행렬 H의 데이터 구조가 기록된 컴퓨터로 읽을 수 있는 기록 매체는, 상기 패리티 검사 행렬 H가 (n-k)/m×(n-k)/m 차원을 갖는 다수의 서브행렬로 구성될 경우에, 상기 패리티 검사 행렬 H를 구성하는 임의의 서브행렬의 행 무게 및 열 무게는 1이고, 상기 패리티 검사 행렬 Η의 임의의 세 행 중에서 선택된 모든 조합 가능한 두 개의 행이 같은 지점에 1을 갖는 경우가 기 설정된 임계값(Cmax) 이하인 것을 특징으로 하는 상기 패리티 검사 행렬 Η와 동일한 데이터 구조가 기록된 것을 특징으로 한다.As another aspect of the present invention, in a computer-readable recording medium having a data structure of the parity check matrix H according to the present invention, the parity check matrix H has a dimension of (nk) / m × (nk) / m. In the case of a plurality of sub-matrices having a plurality of sub-matrices, the row weight and column weight of any sub-matrix constituting the parity check matrix H is 1, and all of the two possible combinations selected from any three rows of the parity check matrix Η The same data structure as the parity check matrix Η is recorded, wherein the case in which the rows have 1 at the same point is equal to or less than the preset threshold value C max .
본 발명의 또 다른 양상으로서, 본 발명에 따른 LDPC 코드를 이용한 부호화 및 복호화 방법에 이용되는 패리티 검사 행렬 H 를 생성하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체는, 상기 패리티 검사 행렬 H의 j번째 열의 i번째 행에 잠정적으로 웨이트를 부가하는 제1절차; 상기 패리티 검사 행렬 H가 (n-k)/m×(n-k)/m 차원을 갖는 다수의 서브행렬로 구성될 경우에, 상기 j번째 열의 i번째 행이 속한 서브행렬의 행들과 열들 중에서 무게가 2이상인 행 또는 열이 존재하는지 검사하는 제2절차; 상기 j번째 열의 i번째 행이 속한 서브행렬의 행들과 열들 중에서 무게가 2이상인 행 또는 열이 존재하지 않으면 상기 패리티 검사 행렬 H 전체에 대하여 4-싸이클이 존재하는지를 판단하는 제3절차; 상기 패리티 검사 행렬 H 전체에 대하여 4-싸이클이 존재하지 않으면 상기 패리티 검사 행렬 H 전체에 대하여 6-싸이클이 기 설정된 임계값(Cmax) 이하인지를 판단하는 제4절차; 상기 패리티 검사 행렬 H 전체에 대하여 6-싸이클이 기 설정된 임계값(Cmax) 이하이면 상기 i번째 행에 최종적으로 웨이트를 부가하는 제5절차; 및 상기 제1절차 내지 제5절차를 상기 패리티 검사 행렬 H의 모든 열 및 모든 행에 대하여 수행하여 상기 패리티 검사 행렬 H를 생성하는 제6절차를 수행하는 프로그램을 기록한 것을 특징으로 한다.As another aspect of the present invention, a computer-readable recording medium having recorded thereon a program for generating a parity check matrix H used in the encoding and decoding method using the LDPC code according to the present invention is the jth of the parity check matrix H. A first procedure of temporarily adding weight to the i th row of the column; When the parity check matrix H is composed of a plurality of submatrices having dimensions (nk) / m × (nk) / m, weights of two or more of the rows and columns of the submatrix to which the i th row of the j th column belongs A second procedure for checking whether a row or column exists; A third procedure of determining whether four cycles exist for the entire parity check matrix H when there are no rows or columns having a weight of two or more among the rows and columns of the sub-matrix to which the i th row of the j th column belongs; A fourth procedure of determining whether a six-cycle is less than or equal to a predetermined threshold value C max for the entire parity check matrix H if there are no four cycles for the parity check matrix H; A fifth procedure of finally adding weight to the i-th row if a six-cycle is less than or equal to a predetermined threshold value C max for the entire parity check matrix H; And a program for performing the sixth procedure for generating the parity check matrix H by performing the first to fifth procedures on all columns and all rows of the parity check matrix H.
본 발명의 또 다른 양상으로서, 본 발명에 따른 LDPC(Low Density Parity Check) 코드를 이용한 부호화 및 복호화 방법에 이용되며 [Hd|Hp] 의 구성을 갖 는 패리티 검사 행렬 H에 있어 상기 Hd를 생성하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체는, 상기 Hd의 j번째 열의 i번째 행에 잠정적으로 웨이트를 부가하는 제1절차; 상기 패리티 검사 행렬 Hd가 (n-k)/m×(n-k)/m 차원을 갖는 다수의 서브행렬로 구성될 경우에, 상기 j번째 열의 i번째 행이 속한 서브행렬의 행들과 열들 중에서 무게가 2이상인 행 또는 열이 존재하는지 검사하는 제2절차; 상기 j번째 열의 i번째 행이 속한 서브행렬의 행들과 열들 중에서 무게가 2이상인 행 또는 열이 존재하지 않으면 상기 패리티 검사 행렬 H 전체에 대하여 4-싸이클이 존재하는지를 판단하는 제3절차; 상기 패리티 검사 행렬 H 전체에 대하여 4-싸이클이 존재하지 않으면 상기 패리티 검사 행렬 H 전체에 대하여 6-싸이클이 기 설정된 임계값(Cmax) 이하인지를 판단하는 제4절차; 상기 패리티 검사 행렬 H 전체에 대하여 6-싸이클이 기 설정된 임계값(Cmax) 이하이면 상기 i번째 행에 최종적으로 웨이트를 부가하는 제5절차; 및 상기 제1절차 내지 제5절차를 상기 Hd의 모든 열 및 모든 행에 대하여 수행하여 상기 Hd를 생성하는 제5절차를 수행하는 프로그램을 기록한 것을 특징으로 한다.As another aspect of the present invention, in the parity check matrix H having a configuration of [H d | H p ] and used for the encoding and decoding method using a Low Density Parity Check (LDPC) code according to the present invention, the H d A computer-readable recording medium having recorded thereon a program for generating a computer includes: a first procedure of temporarily adding a weight to an i th row of a j th column of the H d ; When the parity check matrix H d is composed of a plurality of submatrices having (nk) / m × (nk) / m dimensions, the weight is 2 out of the rows and columns of the submatrix to which the i th row of the j th column belongs. A second procedure for checking whether there are any abnormal rows or columns; A third procedure of determining whether four cycles exist for the entire parity check matrix H when there are no rows or columns having a weight of two or more among the rows and columns of the sub-matrix to which the i th row of the j th column belongs; A fourth procedure of determining whether a six-cycle is less than or equal to a predetermined threshold value C max for the entire parity check matrix H if there are no four cycles for the parity check matrix H; A fifth procedure of finally adding weight to the i-th row if a six-cycle is less than or equal to a predetermined threshold value C max for the entire parity check matrix H; And it characterized by storing a program for performing for every column and every row of the H d of the first process to a fifth process for performing a fifth process of generating the H d.
실시예Example
이하에서는 본 발명에 따른 LDPC(Low Density Parity Check) 코드를 이용한 부호화 방법의 바람직한 실시예들을 첨부된 도면을 참조하여 설명하도록 한다. 도1은 본 발명의 바람직한 일 실시예를 설명하기 위한 도면으로서, 본 발명의 기술적 특징이 무선 통신 시스템에 적용된 일례이다. 이하에서 설명되는 실시예는 본 발명의 특징을 설명하기 위한 예시에 불과한 것으로서 본 발명의 기술적 특징은 부호화가 필요한 모든 분야에 적용 가능함은 당업자에게 자명하다.Hereinafter, preferred embodiments of a coding method using a Low Density Parity Check (LDPC) code according to the present invention will be described with reference to the accompanying drawings. 1 is a view for explaining a preferred embodiment of the present invention, an example of the technical features of the present invention applied to a wireless communication system. Embodiments described below are merely examples for explaining the features of the present invention, and it is apparent to those skilled in the art that the technical features of the present invention may be applied to all fields requiring encoding.
도1에서, 송신기(10)와 수신기(30)가 무선 채널(20)을 매개로 통신을 수행한다. 상기 송신기(10)에서는 데이터 소스(11)로부터 출력된 k 비트의 소스 데이터(u)가 LDPC 부호화 모듈(13)에서의 LDPC 부호화(encoding)에 의해 n 비트의 코드워드(c)가 된다. 코드워드(c)는 변조 모듈(15)에 의해 무선 변조되어 안테나(17)를 통하여 송신되어 무선채널(20)을 통해 상기 수신기(30)의 안테나(31)로 수신된다. 상기 수신기(30)에서는 상기 송신기(10)에서 일어났던 과정의 역과정을 거치는데, 복조 모듈(33)에 의해 복조되고, LDPC 복호화 모듈(35)에 의해 복호되어 최종적으로 소스 데이터(u)를 얻을 수 있다. In FIG. 1, the
상술된 데이터 송수신 과정은 본 발명의 특징을 설명하기 위해 필요한 최소한의 범위 내에서 설명된 것으로 이외에도 데이터 전송을 위해 필요한 다른 많은 과정이 있음은 당업자에게 용이하게 이해될 수 있을 것이다.It will be readily understood by those skilled in the art that the above-described data transmission / reception processes are described within the minimum range necessary to describe the features of the present invention, and there are many other processes necessary for data transmission.
상기 수학식1에서, 상기 패리티 검사 행렬(parity check matrix) Η는 Η=[Hd|Hp](Hd는 (n-k)×k, Hp는 (n-k)×(n-k) 차원임)로 표현될 수 있다. 상기 k는 상기 LDPC 부호화 모듈(13)로 입력되는 소스 데이터의 길이(비트 단위)이고, 상기 n은 부호화된 코드워드(c)의 길이(비트 단위)를 의미한다.In the
상기 수학식1 및 Η=[Hd|Hp]의 관계에 의해서 G=[I|(Hp
-1H
d)t]t 임을 알 수 있다. 따라서, 상기 LDPC 부호화 모듈(13)은 상기 수학식2에 의해 입력 데이터(u)에 상기 G=[I|(Hp
-1Hd)t]t를 곱해 줌으로써 부호화한다. 결국 수학식2는 다음의 수학식3과 같이 표현될 수 있다.It can be seen from the relationship between
본 발명의 특징은 [Hd|Hp]의 구조를 갖는 상기 패리티 검사 행렬 H 또는 상기 패리티 검사 행렬 H를 구성하는 Hd의 데이터 구조 및 상기 H 또는 Hd의 생성 방법에 있다. A feature of the present invention lies in the data structure of H d constituting the parity check matrix H or the parity check matrix H having the structure of [H d | H p ], and the method of generating H or H d .
즉, 상기 Hd는 (n-k)×(n-k) 차원을 갖는 r/(1-r)(여기서 r=k/n)개의 행렬 H(i) d (여기서, i=1, 2,...., r/(1-r))로 구성되고, 임의의 H(i) d는 (n-k)/m×(n-k)/m 차원을 갖는 m×m개의 서브행렬로 구성될 경우에, 상기 Hd를 구성하는 임의의 서브행렬의 행 무게(row weight) 및 열 무게(column weight)는 1이고, 상기 패리티 검사 행렬 Η의 임의의 세 행 중에서 선택된 모든 조합 가능한 두 개의 행이 같은 지점에 1을 갖는 경우가 기 설정된 임계값(Cmax) 이하인 것을 특징으로 한다. 상기 패리티 검사 행렬 Η의 임의의 어느 두 행(rows)도 둘 이상의 지점에 동시에 1을 갖지 않는 것이 바람직하다. That is, the H d is r / (1-r) (where r = k / n) matrices H (i) d having a dimension of (nk) × (nk), where i = 1, 2, ... , r / (1-r)), and any H (i) d is composed of m × m submatrices having dimensions of (nk) / m × (nk) / m. The row weight and column weight of any sub-matrix constituting d is 1, and all two combinable rows selected from any of the three rows of the parity check matrix Η have 1 at the same point. It is characterized in that the case having a preset threshold value (C max ) or less. It is preferable that any two rows of the parity check matrix ƒ not have 1 at more than one point at the same time.
상기 Hd는 코드 레이트(r=k/n)에 따라 하나 이상의 H(i) d(여기서, i=1, 2,...., r/(1-r))로 구성될 수 있다. 상기 코드 레이트(r)는 소스 데이터의 길이(k)와 상기 부호화된 데이터의 길이(n)의 비로서 일반적으로 r=1/2, 2/3, 3/4, 4/5 등이 쓰인다. 상기 H(i) d는 (n-k)×(n-k) 차원을 갖는 행렬로서, Hd=[H (1) d|H(2) d|ㆍㆍㆍ|H(r/(1-r)) d]의 관계를 갖는다.The H d may consist of one or more H (i) d (where i = 1, 2, ..., r / (1-r)) depending on the code rate (r = k / n). The code rate r is a ratio of the length k of the source data to the length n of the encoded data, and r = 1/2, 2/3, 3/4, 4/5, and the like are generally used. The H (i) d is a matrix having a dimension of (nk) × (nk), where H d = [H (1) d | H (2) d | ··· H (r / (1-r)) d ].
각 H(i) d는 (n-k)/m×(n-k)/m 차원을 갖는 m×m개의 서브행렬로 나누었을 때, 상기 Hd를 구성하는 임의의 m×m 서브행렬의 행 무게(row weight) 및 열 무게(column weight)는 1인 특징을 갖는다. 상기 m은 양의 정수로서 상기 Hd의 레졸루션 팩터(resolution factor)이다.When each H (i) d is divided into m × m submatrices having (nk) / m × (nk) / m dimensions, the row weight of any m × m submatrices constituting H d weight and column weight are characterized by one. M is a positive integer and is the resolution factor of H d .
도2는 m=4인 경우에 H(i) d의 일례를 도시한 것으로서 (1, 1), (1, 2),......,(4, 4) 16개의 서브행렬로 구성됨을 알 수 있다. 각 서브행렬의 행 무게 및 열 무게가 1이라는 것은 각 서브행렬의 임의의 행 및 열에는 1이 하나만 있고 나머지는 모두 0이라는 의미이다. 상기 m은 4 내지 12 중에서 가장 좋은 성능을 발휘하는 것을 선택하여 사용하는 것이 바람직하다. FIG. 2 shows an example of H (i) d when m = 4, and is composed of 16 submatrices (1, 1), (1, 2), ..., (4, 4) It can be seen. A row weight and a column weight of 1 for each sub-matrix means that there is only one 1 for any row and column of each sub-matrix and all others are zero. It is preferable to select and use the said m which shows the best performance among 4-12.
상기 Hp로는 (n-k)×(n-k) 차원의 이중 대각 행렬(dual diagonal matrix)을 사용하는 것이 바람직하다. 이중 대각 행렬은 주 대각(main diagonal)과 상기 주 대각 바로 밑의 대각이 1이고 나머지가 모두 0인 행렬을 의미한다.As H p, it is preferable to use a dual diagonal matrix of (nk) × (nk) dimension. The double diagonal matrix refers to a matrix in which the main diagonal and the diagonal immediately below the main diagonal are 1 and all the others are zero.
이상에서는 상기 Hd를 구성하는 행 및 열 무게가 1이라는 특징을 설명하였으나, 상기 패리티 검사 행렬 H 전체가 (n-k)/m×(n-k)/m 차원을 갖는 다수의 서브행렬로 구성될 경우에, 상기 H를 구성하는 임의의 서브행렬의 행 무게 및 열 무게를 1로 하는 것도 가능할 것이다. 즉, 상기 패리티 검사 행렬 H의 일부 구성인 Hd에 대해서만 상기 Hd를 구성하는 서브행렬의 행 및 열 무게가 1이라는 제한을 둘 수도 있고, 상기 패리티 검사 행렬 H 전체에 대하여 상기 패리티 검사 행렬 H 전체를 구성하는 서브행렬의 행 및 열 무게가 1이라는 제한을 둘 수도 있는 것이다.In the above, the row and column weights constituting the H d have been described as 1. However, when the parity check matrix H is composed of a plurality of sub matrices having (nk) / m × (nk) / m dimensions. It is also possible to set the row weight and column weight of any sub-matrix constituting the H to be one. That is, the parity check matrix H Some configurations of H d in only the H d to configure both the restriction of the row and column weights of the
또한, 상기 패리티 검사 행렬 Η의 임의의 세 행 중에서 선택된 모든 조합 가능한 두 개의 행이 같은 지점에 1을 갖는 경우가 기 설정된 임계값(Cmax) 이하인 것을 특징으로 한다. 상기 패리티 검사 행렬 Η의 임의의 어느 두 행(rows)도 둘 이상의 지점에 동시에 1을 갖지 않는 것이 바람직하다. 상기 임계값(Cmax)은 상기 패리티 검사 행렬 H에 6-싸이클이 존재하더라도 상기 패리티 검사 행렬 H를 이용한 부호화 및 복호화의 성능 저하가 일어나지 않는 범위에서 결정되는 것이 바람직하다. 더욱 구체적으로는, 상기 패리티 검사 행렬 H에 존재하는 6-싸이클의 감소로 인한 성능 개선 효과와 6-싸이클을 줄이기 위해서 필요한 계산량을 비교 형량하여 합리적 범위 내에서 결정되는 것이 바람직하다. 시뮬레이션 결과 상기 임계값 (Cmax)이 대략 10~500 개 정도의 범위에서 만족스러운 성능이 도출되었고, 10~100 개의 범위에서 더 좋은 성능을 발휘하였다. 다만, 임계값은 상기 범위에 제한되는 것은 아니다.In addition, the case where all two combinable rows selected from any of the three rows of the parity check matrix ƒ have 1 at the same point is less than or equal to a preset threshold value C max . It is preferable that any two rows of the parity check matrix ƒ not have 1 at more than one point at the same time. The threshold value C max is preferably determined in a range where performance degradation of encoding and decoding using the parity check matrix H does not occur even if 6-cycles exist in the parity check matrix H. More specifically, it is desirable to determine within a reasonable range by comparatively weighing the performance improvement effect due to the reduction of 6-cycles present in the parity check matrix H and the amount of calculation necessary to reduce 6-cycles. Simulation resulted in satisfactory performance in the range of about 10 to 500 of the threshold value (C max ), and better performance in the range of 10 to 100. However, the threshold is not limited to the above range.
도3은 상기 패리티 검사 행렬 Η의 임의의 세 행 중에서 선택된 모든 조합 가능한 두 개의 행이 같은 지점에 1을 갖는 경우의 예를 도시한 것이다. 다시 말해서, i, j 및 k행의 세 행들 중에서 선택된 모든 조합 가능한 두 개의 행들 즉, i번째 행과 j번째 행, j번째 행과 k번째 행 및 k번째 행과 i번째 행이 같은 지점에 1을 갖는 경우로서, 도3에서 원을 그린 6개의 지점을 연결하면 싸이클을 형성하는데 이를 6-싸이클이라 한다. 도4는 상기 패리티 검사 행렬 Η의 다른 표현 방법인 바이퍼타이트 그래프(bipartite graph)로서, 6행 9열의 패리티 검사 행렬을 의미한다. 도4에서 굵은 선으로 표시된 부분이 6-싸이클을 형성하는 부분이다. 상기 패리티 검사 행렬 Η의 임의의 세 행 중에서 선택된 모든 조합 가능한 두 개의 행이 같은 지점에 1을 갖는 경우가 기 설정된 임계값(Cmax) 이하라는 의미는 상기 패리티 검사 행렬 Η 전체에 대하여 6-싸이클을 형성하는 부분이 상기 임계값(Cmax)보다 작거나 같다라는 의미이다.Fig. 3 shows an example in which all two combinable rows selected from any of the three rows of the parity check matrix ƒ have 1 at the same point. In other words, all two combinable rows selected from the three rows i, j, and k, that is, the i-th row and the j-th row, the j-th row and the k-th row, and the k-th row and the i-th row are at the same point. As shown in FIG. 3, when the six points drawn in the circle are connected to each other, a cycle is formed, which is called a six-cycle. 4 is a bipartite graph, which is another method of expressing the parity check matrix ƒ, and means a parity check matrix of 6 rows and 9 columns. In Fig. 4, the part indicated by the thick line is the part forming the 6-cycle. The case in which all two combinable rows selected from any one of the three parity check matrices have 1 at the same point is less than or equal to a preset threshold value C max means that 6-cycles are performed for the entire parity check matrix Η. Means that the portion forming is smaller than or equal to the threshold value C max .
도5는 상기 패리티 검사 행렬 Η의 두 행이 두 개의 지점에 동시에 1을 갖는 경우를 예시한 도면이다. 즉, 도5에서 i번째 행의 원을 그린 두 지점과 j번째 행의 원을 그린 두 지점이 모두 1인 경우로서, 도5와 같은 경우가 패리티 검사 행렬 Η에 없어야 LDPC 코드에 의한 부호화 및 복호화 방법이 좋은 성능을 발휘한다. 도5 에 도시된 바와 같이, 패리티 검사 행렬 Η의 두 행이 두 개의 지점에 동시에 1을 갖는 경우를 4-싸이클(4-cycle)이라 한다. 상기 패리티 검사 행렬 Η의 임의의 어느 두 행(rows)도 둘 이상의 지점에 동시에 1을 갖지 않는다라는 의미는 상기 패리티 검사 행렬 Η 전체에 대하여 4-싸이클을 형성하는 경우가 없다는 의미이다.5 is a diagram illustrating a case where two rows of the parity check matrix ƒ have 1 at two points at the same time. That is, in FIG. 5, both the points of the circle of the i-th row and the points of the circle of the j-th row are both 1, and the case of FIG. 5 should not be present in the parity check matrix Η. The method is good performance. As shown in Fig. 5, the case where two rows of the parity check matrix ƒ has 1 at two points at the same time is called a 4-cycle. The fact that any two rows of the parity check matrix ƒ does not have 1 at two or more points at the same time means that no 4-cycle is formed for the entire parity check matrix ƒ.
LDPC 코드에 의한 부호화 방법에 있어서는 상기 패리티 검사 행렬 Η를 구성하는 행들 간에 채널 상황에 의해 판단되는 확률적 정보의 반복적 교환에 의하여 이루어지는데, 상기 두 가지 조건이 만족되지 않는 패리티 검사 행렬 Η에서는 각 행의 확률적 정보가 다른 행들로 전달되었다가 충분한 반복을 거치지 않고 되돌아오기 때문에 좋은 성능을 발휘하지 못하는 것이다. In the encoding method using the LDPC code, it is achieved by repetitive exchange of probabilistic information determined by the channel situation between rows constituting the parity check matrix Η. Each par row in the parity check matrix Η where the two conditions are not satisfied. Probabilistic information of is passed on to other rows and does not perform well because it does not go through enough iterations.
도6은 상기한 바와 같은 특징으로 갖는 패리티 검사 행렬 H를 생성하는 일 과정을 설명하기 위한 절차 흐름도이다. 이하에서 설명되는 방법은 일예에 불과한 것으로서, 상기한 바와 같은 특징을 갖는 패리티 검사 행렬 H는 다양한 방법에 의해 구할 수 있을 것이다.6 is a flowchart illustrating a process of generating a parity check matrix H having the characteristics described above. The method described below is just an example, and the parity check matrix H having the above-described characteristics may be obtained by various methods.
도6에서, i는 상기 패리티 검사 행렬 H의 임의의 행(row)의 인덱스이고, j는 임의의 열(column)의 인덱스이며, Cw는 임의의 열 j의 현재 웨이트(weight) 수를 의미한다. 우선 웨이트가 없는(Cw=0) 첫 번째 열(j=1)에 대하여 웨이트를 부가하기 시작한다[S20]. 여기서 웨이트를 부가한다는 의미는 임의의 열의 임의의 행에 해당하는 원소를 1로 한다는 것이다.In Fig. 6, i is the index of any row of the parity check matrix H, j is the index of any column, and Cw means the current weight number of any column j. . First, weights are added to the first column (j = 1) without weights (Cw = 0) [S20]. In this case, adding weight means that the element corresponding to any row of any column is 1.
첫 번째 열의 임의의 i번째 후보 행(candidate row)에 잠정적으로 웨이트를 부가한다[S21]. 잠정적으로 웨이트를 부가한다는 것은 그 행에 대한 웨이트 부가가 최종적인 것이 아니라 후 절차에 의해 변경될 수 있다는 의미이다. 그 다음으로 상기 패리티 검사 행렬 H를 (n-k)/m×(n-k)/m 차원을 갖는 다수의 서브행렬로 구성될 경우에, 상기 j번째 열의 i번째 행이 속한 서브행렬의 행들과 열들 중에서 무게가 2 이상인 행 또는 열이 존재하는지를 검사한다[S22]. 상기 j번째 열의 i번째 행이 속한 서브행렬의 행들과 열들 중에서 무게가 2 이상인 행 또는 열이 존재하면, 상기 i 번째 행에 대하여 웨이트를 부가하지 않고 다른 행에 웨이트를 부가하여[S21] 그 다음 절차를 다시 진행하고, 상기 j번째 열의 i번째 행이 속한 서브행렬의 행들과 열들 중에서 무게가 2 이상인 행 또는 열이 존재하지 않으면 상기 패리티 검사 행렬 H 전체에 대하여 4-싸이클이 존재하는지를 판단한다[S23].A weight is tentatively added to any i-th candidate row of the first column [S21]. Provisionally adding a weight means that the weight addition for that row is not final but can be changed by a later procedure. Next, when the parity check matrix H is composed of a plurality of submatrices having (nk) / m × (nk) / m dimensions, the weight among the rows and columns of the submatrix to which the i th row of the j th column belongs. Checks whether there are two or more rows or columns [S22]. If there is a row or column having a weight of 2 or more among the rows and columns of the sub-matrix to which the i-th row of the j-th column belongs, the weight is added to another row without adding a weight to the i-th row [S21]. The procedure is repeated, and if there is no row or column of weight 2 or more among the rows and columns of the sub-matrix to which the i-th row of the j-th column belongs, it is determined whether a 4-cycle exists for the entire parity check matrix H [ S23].
상기 패리티 검사 행렬 H 전체에 대하여 4-싸이클이 존재하는지를 판단하여[S23], 4-싸이클이 존재하면 상기 i 번째 행에 대하여 웨이트를 부가하지 않고 다른 행에 웨이트를 부가하여[S22] 그 다음 절차를 다시 진행하고, 4-싸이클이 존재하지 않으면 상기 패리티 검사 행렬 H 전체에 대하여 6-싸이클이 존재하는지를 판단한다[S24].It is determined whether a 4-cycle exists for the entire parity check matrix H [S23]. If a 4-cycle exists, a weight is added to another row without adding a weight to the i-th row [S22]. The process proceeds again, and if there is no 4-cycle, it is determined whether 6-cycles exist for the entire parity check matrix H [S24].
상기 패리티 검사 행렬 H 전체에 대하여 6-싸이클이 존재하는지에 대한 판단 결과 6-싸이클이 존재하지 않으면 상기 i번째 행에 최종적으로 웨이트를 부가한다. 6-싸이클이 존재하면 상기 패리티 검사 행렬 H 전체의 6-싸이클 수가 기 설정된 임계값(Cmax) 이하인지를 판단하여[S25], 그 이하이면 마찬가지로 상기 i번째 행에 최종적으로 웨이트를 부가하고, 그 이하가 아니면 상기 i번째 행에 웨이트를 부 가하지 않고 다른 행에 웨이트를 부가하여[S22] 그 다음 절차를 다시 진행한다.As a result of determining whether 6-cycles exist for the entire parity check matrix H, a weight is finally added to the i-th row if no 6-cycles exist. If there are 6-cycles, it is determined whether the number of 6-cycles of the entire parity check matrix H is equal to or less than a predetermined threshold value C max [S25], and if it is less than or equals, weights are finally added to the i-th row. If not, the weight is added to the other row without adding the weight to the i-th row [S22], and then the procedure is repeated again.
상기 i번째 행에 웨이트를 최종적으로 부가하면[S26] 상기 j번째 열의 현재 웨이트 수(Cw)를 1 증가시키고[S27], 상기 j번째 열의 현재 웨이트 수가 상기 j번째 열에 허용 가능한 최대 웨이트 수(Cjmax)와 동일한지를 판단한다[S28]. 상기 j번째 열의 현재 웨이트 수가 상기 j번째 열에 허용 가능한 최대 웨이트 수(Cjmax)와 동일하면 상기 j번째 열에 대한 웨이트 부가는 종료하고, 상기 j가 코드워드 길이와 동일한지를 판단한다[S29]. 상기 j번째 열의 현재 웨이트 수가 상기 j번째 열에 허용 가능한 최대 웨이트 수(Cjmax)와 동일하지 않으면 단계 S22로 돌아가 상기 j번째 열의 다른 행에 잠정적으로 웨이트를 부가하고 그 후속 절차를 계속해서 수행한다.When the weight is finally added to the i-th row [S26], the current weight number Cw of the j-th column is increased by 1 [S27], and the current weight number of the j-th column is allowable for the j-th column (Cjmax). It is determined whether or not equal to [S28]. If the current weight of the j-th column is equal to the maximum allowable number of weights (Cjmax) in the j-th column, the weight addition to the j-th column is terminated, and it is determined whether j is equal to the codeword length [S29]. If the current weight of the j-th column is not equal to the maximum allowable number of weights (Cjmax) of the j-th column, the flow returns to step S22 to provisionally add weights to other rows of the j-th column and continue the subsequent procedure.
상기 j가 코드워드 길이와 동일하면 상기 패리티 검사 행렬 H 전체에 대하여 웨이트 부가가 종료된 것이므로 그 때까지의 웨이트 부가 결과에 따라 최종적으로 상기 패리티 검사 행렬 H를 생성할 수 있다[S31]. 상기 j가 코드워드 길이와 동일하지 않으면 아직 웨이트를 부가하지 않은 열이 존재한다는 의미이므로 j에 1을 추가하여[S30] 다음 열에 대하여 S22 단계부터 상기한 바와 같은 방법으로 웨이트를 부가한다.If j is equal to the codeword length, since the weight addition is completed for the entire parity check matrix H, the parity check matrix H can be finally generated according to the weight addition result up to that point [S31]. If j is not equal to the codeword length, it means that there is a column that has not been added yet. Therefore, 1 is added to j [S30] and the weight is added to the next column in the same manner as described above from step S22.
상기한 바와 같이, 상기 패리티 검사 행렬 H 전체를 상기한 바와 같은 절차에 의해 생성할 수도 있으나, [Hd|Hp]의 구조를 갖는 패리티 검사 행렬 H에서 상기 Hd를 상기한 바와 같은 절차에 의해 생성하고, 상기 Hp를 정형화된 형태를 사용하는 것도 가능하다. 상기 Hp로는 (n-k)×(n-k) 차원의 이중 대각 행렬(dual diagonal matrix)을 사용하는 것이 바람직하다. As described above, the entire parity check matrix H may be generated by the same procedure as described above, but in the parity check matrix H having the structure of [H d | H p ], H d is added to the procedure as described above. generated, and it is also possible to use a standardized form of the H p. As H p, it is preferable to use a dual diagonal matrix of (nk) × (nk) dimension.
도1에서, 상기 수신기(30)가 상기한 바와 같은 방법으로 부호화된 데이터를 수신하여 복호함에 있어서는 다음의 수학식4를 이용한다.In FIG. 1, the following equation (4) is used for the
즉, 부호화된 데이터 c와 상기 패리티 검사 행렬(parity check matrix) Η를 곱하여 0가 되면 전송 에러가 없다는 것을 의미하고, 0가 되지 않으면 전송 에러가 존재한다는 것을 의미하므로 이에 따라 소스 데이터를 분리해 낼 수 있다.That is, if the coded data c is multiplied by the parity check matrix Η and becomes 0, it means that there is no transmission error. If not, it means that there is a transmission error. Can be.
본 발명이 갖는 기술적 사상은 상기 특징들을 갖는 H 또는 Hd와 같은 데이터 구조 및 상기 특징들을 갖는 H 또는 Hd를 생성하기 위한 프로그램이 기록된, CD-ROM, 플로피 디스크, 컴퓨터 메모리 또는 이동통신용 단말기의 메모리 등과 같은 CPU(Control Process Unit)에 의해 판독 가능한 기록 매체에도 미칠 수 있음이 이해되어야 한다. Technical concept is H or the data structures, and program for generating the H or H d having the characteristics as H d recorded, CD-ROM, a floppy disk, computer memory, or a mobile communication terminal having the features of the present invention having It should be understood that the recording medium may also be read by a CPU (Control Process Unit), such as a memory of the same.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.It is apparent to those skilled in the art that the present invention can be embodied in other specific forms without departing from the spirit and essential features of the present invention. Accordingly, the above detailed description should not be construed as limiting in all aspects and should be considered as illustrative. The scope of the invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the invention are included in the scope of the invention.
본 발명에 의한 LDPC 코드를 이용한 부호화 방법 및 부호화를 위한 컴퓨터로 읽을 수 있는 기록 매체에 따르면, LDPC 코드에 의한 부호화 및 복호화 방법의 성능을 향상시킬 수 있는 효과가 있다.According to the encoding method using the LDPC code and the computer-readable recording medium for encoding according to the present invention, the performance of the encoding and decoding method using the LDPC code can be improved.
Claims (18)
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020040062068A KR20060013197A (en) | 2004-08-06 | 2004-08-06 | Encoding method using LDPC code and computer readable recording medium for encoding |
| EP05771124.4A EP1782540B1 (en) | 2004-07-27 | 2005-07-26 | Method of encoding and decoding using low density parity check code |
| US11/572,705 US7814403B2 (en) | 2004-07-27 | 2005-07-26 | Method of encoding and decoding using low density parity check code |
| PCT/KR2005/002421 WO2006011744A2 (en) | 2004-07-27 | 2005-07-26 | Method of encoding and decoding using low density parity check code |
| JP2007523474A JP4672015B2 (en) | 2004-07-27 | 2005-07-26 | Encoding and decoding method using low density parity check code |
| CN2005800255866A CN101305521B (en) | 2004-07-27 | 2005-07-26 | Method of encoding and decoding using low density parity check code |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020040062068A KR20060013197A (en) | 2004-08-06 | 2004-08-06 | Encoding method using LDPC code and computer readable recording medium for encoding |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR20060013197A true KR20060013197A (en) | 2006-02-09 |
Family
ID=37122657
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020040062068A Ceased KR20060013197A (en) | 2004-07-27 | 2004-08-06 | Encoding method using LDPC code and computer readable recording medium for encoding |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR20060013197A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100709545B1 (en) * | 2005-12-15 | 2007-04-20 | 후지쯔 가부시끼가이샤 | Encoder and decoder |
-
2004
- 2004-08-06 KR KR1020040062068A patent/KR20060013197A/en not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100709545B1 (en) * | 2005-12-15 | 2007-04-20 | 후지쯔 가부시끼가이샤 | Encoder and decoder |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101208546B1 (en) | Method of encoding and decoding using low density parity check matrix | |
| US7930622B2 (en) | Method of encoding and decoding adaptive to variable code rate using LDPC code | |
| KR101208547B1 (en) | Method of encoding and decoding using ldpc code | |
| US8966336B2 (en) | Selective merge and partial reuse LDPC (low density parity check) code construction for limited number of layers belief propagation (BP) decoding | |
| US20080294963A1 (en) | Method and apparatus for designing low density parity check code with multiple code rates, and information storage medium thereof | |
| US8386906B2 (en) | Multi-CSI (cyclic shifted identity) sub-matrix based LDPC (low density parity check) codes | |
| KR101065693B1 (en) | An encoding, decoding method using an LDPC code, and an LDPC code generation method for encoding or decoding | |
| US7814403B2 (en) | Method of encoding and decoding using low density parity check code | |
| CN101305521B (en) | Method of encoding and decoding using low density parity check code | |
| KR20060013197A (en) | Encoding method using LDPC code and computer readable recording medium for encoding | |
| KR101079087B1 (en) | Encoding method by using LDPC code and computer-readable medium for the same | |
| KR101405961B1 (en) | Coding / decoding method using LDPC code | |
| KR100999272B1 (en) | Low Density Parity Check Code Encoding Device and Its Method | |
| KR20090095288A (en) | Method of generating parity check matrix |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20040806 |
|
| PG1501 | Laying open of application | ||
| A201 | Request for examination | ||
| AMND | Amendment | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20090706 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20040806 Comment text: Patent Application |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20110221 Patent event code: PE09021S01D |
|
| AMND | Amendment | ||
| E601 | Decision to refuse application | ||
| PE0601 | Decision on rejection of patent |
Patent event date: 20111024 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20110221 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |
|
| J201 | Request for trial against refusal decision | ||
| PJ0201 | Trial against decision of rejection |
Patent event date: 20111124 Comment text: Request for Trial against Decision on Refusal Patent event code: PJ02012R01D Patent event date: 20111024 Comment text: Decision to Refuse Application Patent event code: PJ02011S01I Appeal kind category: Appeal against decision to decline refusal Decision date: 20130321 Appeal identifier: 2011101009019 Request date: 20111124 |
|
| AMND | Amendment | ||
| PB0901 | Examination by re-examination before a trial |
Comment text: Amendment to Specification, etc. Patent event date: 20111130 Patent event code: PB09011R02I Comment text: Request for Trial against Decision on Refusal Patent event date: 20111124 Patent event code: PB09011R01I Comment text: Amendment to Specification, etc. Patent event date: 20110405 Patent event code: PB09011R02I Comment text: Amendment to Specification, etc. Patent event date: 20090706 Patent event code: PB09011R02I |
|
| B601 | Maintenance of original decision after re-examination before a trial | ||
| PB0601 | Maintenance of original decision after re-examination before a trial | ||
| J301 | Trial decision |
Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20111124 Effective date: 20130321 |
|
| PJ1301 | Trial decision |
Patent event code: PJ13011S01D Patent event date: 20130322 Comment text: Trial Decision on Objection to Decision on Refusal Appeal kind category: Appeal against decision to decline refusal Request date: 20111124 Decision date: 20130321 Appeal identifier: 2011101009019 |