KR101405961B1 - Ldpc 코드를 이용한 부호화/복호화 방법 - Google Patents
Ldpc 코드를 이용한 부호화/복호화 방법 Download PDFInfo
- Publication number
- KR101405961B1 KR101405961B1 KR1020080012191A KR20080012191A KR101405961B1 KR 101405961 B1 KR101405961 B1 KR 101405961B1 KR 1020080012191 A KR1020080012191 A KR 1020080012191A KR 20080012191 A KR20080012191 A KR 20080012191A KR 101405961 B1 KR101405961 B1 KR 101405961B1
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- rows
- parity check
- sub
- row
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 LDPC 코드를 이용한 부호화/복호화 방법 및 그를 위한 패리터 검사 행렬에 관한 것이다. 본 발명의 일 양상에 따르는 패리티 검사 행렬은 모델 행렬 형식으로 표현되는 기본 모델 행렬의 적어도 하나 이상의 행의 각각을 분할함으로써 생성된 적어도 둘 이상의 행들과, 상기 적어도 둘 이상의 행들의 정보어 부분의 무게를 갖지 않는 적어도 하나 이상의 서브 행렬을 무게를 갖는 적어도 하나 이상의 서브 행렬로 대체함으로써 생성되는 무게 추가 부분 및 상기 적어도 둘 이상의 행들 각각의 패리티 부분에 적어도 하나 이상의 서브 행렬을 추가함으로써 생성되는 추가 패리티 부분 중 적어도 하나를 포함한다.
LDPC, 부호화, 복호화, 행 분할, 모델 행렬, 패리티 검사 행렬
Description
본 발명은 부호화 및 복호화 방법에 관한 것으로서, 보다 상세하게는, LDPC 코드를 이용한 부호화/복호화 방법 및 그를 위한 패리터 검사 행렬에 관한 것이다.
일반적으로 부호화(encoding)라 함은 송신측에서 송신된 데이터가 통신 채널을 통하여 전송되는 과정에서 발생되는 신호의 일그러짐, 손실 등에 의한 오류의 발생에도 불구하고 수신측에서 원래의 데이터를 복원할 수 있도록 하기 위하여 송신측에서 데이터 처리를 하는 과정을 의미한다. 복호화(decoding)은 부호화되어 송신된 신호를 수신측에서 원래의 데이터로 복원하는 과정이다.
최근에 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))
LDPC 코드의 패리티 검사 행렬은 1의 개수가 매우 적기 때문에 매우 큰 블록 크기에서도 반복 복호를 통하여 복호가 가능하여 블록 크기가 매우 커지면 터보 코드처럼 섀넌(Shannon)의 채널 용량 한계에 근접하는 성능을 보인다.
LDPC 코드는 (n-k)×n 패리티 검사 행렬 Η에 의해 설명될 수 있다. 상기 패리티 검사 행렬 Η에 대응하는 생성 행렬(generator matrix) G는 다음의 수학식1에 의해 구할 수 있다.
LDPC 코드를 이용한 부호화 및 복호화 방법에 있어서는 송신측에서 상기 패리티 검사 행렬 Η와 수학식1의 관계에 있는 상기 생성 행렬 G를 이용하여 다음의 수학식2에 의해 입력 데이터를 부호화한다.
상기한 바와 같이, LDPC 코드를 이용한 부호화 방법에서는 상기 패리티 검사 행렬 Η가 가장 중요한 요소라 할 수 있다. 상기 패리티 검사 행렬 Η는 대략 1000 ×2000 정도의 크기를 갖기 때문에 부호화 및 복호화 과정에서 많은 연산이 요구되고, 구현이 매우 복잡하며, 많은 저장 공간을 요구한다.
일반적으로 패리티 검사 행렬 H에 더 많은 무게(weight)를 부가하는 것은, 패리티 검사 방정식들(parity check equations)에 더 많은 변수를 부가하는 것이기 때문에 LDPC 코드에 의한 부호화 및 복호화 방법에서 더 좋은 성능을 발휘할 수 있다. 여기서, 무게란 패리티 검사 행렬에서 각 열(column) 또는 행(row)에 포함된 '1'의 개수를 의미한다. 그러나, 패리티 검사 행렬 H에 더 많은 무게를 부가하면 패리티 검사 행렬 전체에 4-싸이클(4-cycle)이나 6-싸이클(6-cycle)을 형성하는 경우가 많아져 이에 따라 LDPC 코드에 의한 부호화 및 복호화 과정의 복잡도를 증가시키고 성능을 저하시킬 수 있는 위험성도 따른다.
4-싸이클은 패리티 검사 행렬 Η의 두 행이 두 개의 지점에 동시에 1을 갖는 경우를 의미하고, 6-싸이클은 임의의 세 행 중에서 선택된 모든 조합 가능한 두 개의 행이 같은 지점에 1을 갖는 경우를 의미한다. 패리티 검사 행렬이 4-싸이클이나 6-싸이클을 많이 갖고 있다고 하는 것은 부호화 또는 복호화 성능이 저하될 가능성이 높음을 의미한다.
상기한 바와 같이, LDPC 코드를 이용한 부호화 및 복호화 방법에 있어서 패리티 검사 행렬 각 행 또는 열의 무게를 어떻게 배분할 것인지와 4-싸이클이나 6-싸이클과 등과 같은 싸이클을 어떻게 제어할 것인지는 부호화 및 복호화 성능에 지대한 영향을 미치게 된다.
본 발명은 상기한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서, 본 발명의 목적은 LDPC 코드를 이용한 부호화 및 복호화 방법에서 그 성능을 향상시킬 수 있는 방안을 제공하는 것이다.
본 발명의 다른 목적은 패리티 검사 행렬의 행 또는 열의 무게 및 싸이클 수를 용이하게 제어할 수 있는 방안을 제공하는 것이다.
본 발명의 일 양상에 따르는 패리티 검사 행렬은 모델 행렬 형식으로 표현되는 기본 모델 행렬의 적어도 하나 이상의 행의 각각을 분할함으로써 생성된 적어도 둘 이상의 행들과, 상기 적어도 둘 이상의 행들의 정보어 부분의 무게를 갖지 않는 적어도 하나 이상의 서브 행렬을 무게를 갖는 적어도 하나 이상의 서브 행렬로 대체함으로써 생성되는 무게 추가 부분 및 상기 적어도 둘 이상의 행들 각각의 패리티 부분에 적어도 하나 이상의 서브 행렬을 추가함으로써 생성되는 추가 패리티 부분 중 적어도 하나를 포함한다. 상기 무게 추가 부분 및 추가 패리티 부분을 생성하는 경우에 싸이클 4와 싸이클 6의 특성을 고려하는 것이 바람직하다. 즉, 모델 행렬을 확장함으로써 생성되는 전체 패리티 검사 행렬의 측면에서 싸이클 4와 싸이클 6의 개수가 최소화될 수 있도록 상기 무게 추가 부분 및 추가 패리티 부분을 생성하는 것이 바람직하다.
본 발명에 따르면 다음과 같은 효과가 있다.
첫째, 패리티 검사 행렬 생성 시에 무게의 분배 및 4-싸이클이나 6-싸이클 등과 같은 싸이클 수의 제어가 가능하다.
둘째, LDPC 코드를 이용한 부호화 및 복호화 효율을 증대시킬 수 있다.
이하에서 첨부된 도면을 참조하여 설명되는 본 발명의 실시예들에 의해 본 발명의 구성, 작용 및 다른 특징들이 용이하게 이해될 수 있을 것이다.
본 발명의 실시예들은 구조화된(structured) LDPC 부호화 및 복호화 방법을 전제로 하므로, 이하에서 구조화된 LDPC 부호화 및 복호화 방법에 대해 설명하도록 한다.
LDPC 코드를 사용하기 위해서는 패리티 검사 행렬을 사용한다. 전술한 바와 같이, 패리티 검사 행렬은 이진 행렬(binary matrix)로서 대부분의 원소(element)는 '0'이고, 일부는 '1'이다. 실제 부호화 또는 복호화에 사용되는 패리티 검사 행렬의 크기는 105 비트 이상이기 때문에 패리티 검사 행렬을 저장하기 위해 대용량의 메모리가 필요하다.
구조화된 LDPC 부호화 기법에서는 패리티 검사 행렬은 모델 행렬(model matrix)의 형식으로 저장된다. 모델 행렬은 각각 특정 서브 행렬(sub-matrix)을 지시하는 다수의 인덱스들(indexes)로 이루어진다. 즉, 각 서브 행렬은 일정 크기(z×z)의 행렬로서 특정 인덱스에 의해 표현된다. 부호화 또는 복호화 수행 시에 상기 모델 행렬의 각 인덱스를 그 인덱스가 지시하는 서브 행렬로 대체함으로써 패리티 검사 행렬로 확장되어 사용된다.
도 1은 모델 행렬의 일 예를 도시한 것이다. 도 1에서, 각 정수는 해당 서브 행렬의 인덱스를 의미한다. 예를 들어, 인덱스가 '-1'인 경우는 특정한 크기의 영 행렬(zero matrix)을 의미하며, 인덱스가 '0'인 경우는 특정한 크기의 단위 행렬(identity matrix)을 의미한다. '-1'과 '0'을 제외한 양의 정수인 인덱스는 해당 서브 행렬이 생성된 소정 규칙을 의미할 수 있다. 예를 들어, 양의 정수인 인덱스는 쉬프트 수(shift number)를 나타낸다. 즉, 각 서브 행렬이 단위 행렬의 각 행 또는 열을 일정 방향으로 쉬프트시켜 생성된 퍼뮤테이션 행렬이라고 할 경우, 상기 쉬프트 수를 해당 서브 행렬의 인덱스로 할 수 있다. 예를 들어, 서브 행렬을 '1'이라는 인덱스로 표현하는 경우, 해당 서브 행렬은 단위 행렬의 각 행 또는 열을 특정한 방향으로 한 칸(행 또는 열)씩 쉬프트함으로써 생성된 것이다. 모델 행렬 내에서 영 행렬인 서브 행렬을 표시하기 위해 아무런 인덱스를 사용하지 않을 수도 있다. 이하의 실시예들에 있어서는 영 행렬인 서브 행렬를 표시하기 위해서 인덱스를 사용하지 않는다.
도 2는 상술한 인덱스, 즉 쉬프트 수(shift number)에 따른 행렬의 표현 방 법을 설명하기 위한 도면이다. 특정한 패리티 검사 행렬을 4×4 크기의 행렬(즉, 서브 행렬)로 구조화하여 표현하는 경우, '3'이라는 인덱스를 갖는 서브 행렬은 4×4 크기의 단위 행렬의 각 열을 오른쪽으로 세 개의 열만큼 쉬프트시킴으로써 생성된 퍼뮤테이션 행렬이 된다.
부호화된 구조화된 LDPC 기법에 따라 각 서브 행렬을 하나의 인덱스로 표현한 모델 행렬을 저장하고 부호화 또는 복호화 시에 저장된 모델 행렬을 원래의 패리티 검사 행렬로 확장하여 사용함으로써 패리티 검사 행렬을 저장하기 위한 메모리 용량을 절약할 수 있다.
이하에서는 기본 모델 행렬의 적어도 하나 이상의 행을 분할(split)하여 새로운 모델 행렬을 생성하는 방법에 대해 설명하도록 한다.
도 3은 기본 모델 행렬의 일 예를 도시한 것으로서, 각 서브 블록에 표시된 인덱스는 쉬프트 수를 나타낸다. 또한, 도 3에서 쉬프트 수가 표시되지 않은 서브 블록은 '-1'의 인덱스를 갖는 서브 블록이다. 즉, 쉬프트 수가 표시되지 않은 서브 블록은 영 행렬(zero matrix)을 나타낸다.
도 3에 도시된 바와 같이, 도 3의 모델 행렬은 4개의 행(row)과 24개의 열(columnm)로 구성된다. 도 3의 모델 행렬은 5/6의 부호율을 지원한다. 도 3의 모델 행렬은 정보 비트에 상응하는 정보어 부분과 패리티 비트에 상응하는 패리티 부분으로 구분된다. 즉, 도 3에서, 인덱스 0에 의해 표시되는 열(이하, '0번 열'이라 칭한다)부터 인덱스 19에 의해 표시된 열(이하, '19번 열'이라 칭한다)까지는 정보어 부분이다. 또한, 인덱스 20에 의해 표시되는 열(이하, '20번 열'이라 칭한다)부 터 인덱스 23에 의해 표시된 열(이하, '23번 열'이라 칭한다)까지는 패리티 부분이다.
도 4는 도 3의 기본 모델 행렬의 하나의 행을 2개의 행으로 분할함으로써 새롭게 생성된 모델 행렬을 도시한 것이다. 즉, 도 3의 504 행은 도 4의 504A 및 504B의 행으로 분리된다. 이 경우, 0번 내지 23번 열의 무게를 갖는 성분은 배타적으로 분리된다. 여기서, 무게를 갖는 성분이 배타적으로 분리된다 함은 분리된 이후의 두 행들의 대응하는 열들은 동시에 무게를 갖지 않도록 분리되는 것을 의미한다. 또한, 24번 열에는 '127'의 쉬프트 수가 추가되는 것을 알 수 있다. 이 경우, 24번 열의 무게의 합은 짝수이므로, 모듈로 연산에 의해 그 영향이 무시된다. 따라서, 도 4의 모델 행렬은 도 3의 모델 행렬과 등가(equivalent)인 행렬인 것을 알 수 있다. 한편, 도 4의 행렬은 행과 열의 개수가 하나 증가했으므로 4/5의 부호율을 지원한다.
도 5는 도 4의 모델 행렬의 하나의 행을 두 개의 행으로 분할함으로써 새롭게 생성된 모델 행렬을 도시한 것다. 도 14의 503 행은 도 5의 503A 및 503B의 행으로 분리된다. 이 경우, 0번 내지 23번 열의 무게를 갖는 성분은 배타적으로 분리된다. 또한, 25번 열에는 '119'의 쉬프트 수가 추가되는 것을 알 수 있다. 이 경우, 25번 열의 무게의 합은 짝수이므로, 모듈로 연산에 의해 그 영향이 무시된다. 따라서, 도 5의 모델 행렬은 도 3 또는 도 4의 모델 행렬과 등가의 행렬이다. 한편, 도 5의 행렬은 행과 열의 개수가 하나 증가했으므로 20/26의 부호율을 지원한다.
도 6은 도 5의 모델 행렬의 하나의 행을 두 개의 행으로 분할함으로써 새롭게 생성된 모델 행렬을 도시한 것이다. 도 5의 501 행은 도 6의 501A 및 501B의 행으로 분리된다. 이 경우, 0번 내지 23번 열의 무게를 갖는 성분은 배타적으로 분리된다. 또한, 26번 열에는 '117'의 쉬프트 수가 추가되는 것을 알 수 있다. 이 경우, 26번 열의 무게의 합은 짝수이므로, 모듈로 연산에 의해 그 영향이 무시된다. 따라서, 도 6의 모델 행렬은 도 3 내지 도 5의 모델 행렬과 등가인 행렬이다. 한편, 도 6의 행렬은 행과 열의 개수가 하나 증가했으므로 3/4의 부호율을 지원한다.
도 7은 도 6의 모델 행렬의 하나의 행을 두 개의 행으로 분할함으로써 새롭게 생성된 모델 행렬을 도시한 것이다. 도 6의 502 행은 도 7의 502A 및 502B의 행으로 분리된다. 이 경우, 0번 내지 23번 열의 무게를 갖는 성분은 배타적으로 분리된다. 또한, 27번 열에는 '113'의 쉬프트 수가 추가되는 것을 알 수 있다. 이 경우, 27번 열의 무게의 합은 짝수이므로, 모듈로 연산에 의해 그 영향이 무시된다. 따라서, 도 7의 모델 행렬은 도 3 내지 도 6의 모델 행렬과 등가인 행렬이다. 도 7의 행렬은 행과 열의 개수가 하나 증가했으므로 20/28의 부호율을 지원한다.
도 4 내지 도 7의 모델 행렬에서 행이 분리되는 경우, 열의 합이 짝수가 되도록 영이 아닌 성분을 추가로 포함했다. 이 경우, 추가되는 영이 아닌 성분은 싸이클 4(cycle-4)와 싸이클 6(cycle-6)의 특성을 고려하는 것이 바람직하다. 즉, 추가되는 영이 아닌 성분은 싸이클 4와 싸이클 6의 개수가 최소화되도록 결정되는 것이 바람직하다.
도 4 내지 도 7의 모델 행렬이 패리티 검사 행렬로 확장되는 경우, 다음과 같은 싸이클 특성을 갖는다. 표 1 모델 행렬의 각 서브 행렬이 24×24 크기인 경우이다.
Cycle-4 | Cycle-6 | Average VAR degree | |
도 3 (r=5/6) | 0 | 9672 | 3.08 |
도 4 (r=4/5) | 0 | 5832 | 3.04 |
도 5 (r=10/13) | 0 | 3384 | 3.00 |
도 6 (r=3/4) | 0 | 1944 | 2.96 |
도 7 (r=5/7) | 0 | 1056 | 2.93 |
위와 같이 추가되는 영이 아닌 성분을 통해 낮은 부호율의 패리티 검사 행렬보다 더 적은 개수의 싸이클과 더 적은 개수의 무게를 갖는다.
도 8은 본 발명의 일 실시예에 따른 기본 모델 행렬의 일 예를 도시한 것이다. 도 8의 모델 행렬은 4×12 크기를 가지며 2/3의 코드 레이트를 지원한다. 또한, 도 8의 모델 행렬은 정보어 부분과 패리티 부분으로 구성된다.
도 9는 본 발명의 일 실시예에 따라 모델 행렬 형식의 패리티 검사 행렬을 생성하기 위해 도 8의 기본 모델 행렬의 하나의 행을 분할하는 방법을 설명하기 위한 도면이다. 즉, 도 9에서, 도 8의 첫 번째 행이 분할되어 두 개의 행들이 생성된다. 이때, 열의 무게를 갖는 성분은 배타적으로 분리된다. 즉, 분리된 이후의 두 행들의 대응하는 열들은 동시에 무게를 갖지 않도록 분리된다. 보다 구체적으로 설명하면, 도 8의 첫 번째 행에서 홀수 번째 무게를 갖는 성분들은 도 9의 분리된 두 행들 중 첫 번째 행의 대응하는 열에 위치하고, 짝수 번째 무게를 갖는 성분들은 도 9의 분리된 행들 중 두 번째 행의 대응하는 열에 위치하도록 분리된다. 도 8이 첫 번째 행에서 무게를 갖지 않는 성분들(인덱스 '-1')의 경우, 도 9의 분리된 두 행들의 대응하는 열들이 무게를 갖지 않도록 분리된다. 즉, 분리되기 전에 무게를 갖지 않는 성분에 대응하는 열은 분리된 후에도 무게를 갖지 않게 된다.
또한, 분리된 두 행들의 패리티 부분에는 새로운 패리티 부분이 추가된다. 이때, 하나 이상의 행을 분리하여 새로운 패리티 검사 행렬을 생성하는 경우 새로 생성된 패리티 검사 행렬의 패리티 부분의 행과 열의 개수가 동일하게 되도록 새로운 패리티 부분이 추가된다. 예를 들어, 행의 분리에 의해 새로운 패리티 검사 행렬에 두 개의 행들이 추가되는 경우 패리티 부분에는 두 개의 열들을 갖는 추가 패리티 부분을 추가한다. 도 9에서는 도 8의 첫 번째 행을 분리하여 새로운 패리티 검사 행렬에는 하나의 행이 추가되었으므로 쉬프트 수(인덱스)가 '0'인 성분을 포함하는 하나의 열이 추가 패리티 부분으로 추가된다.
도 10은 본 발명의 다른 실시예에 따라 모델 행렬 형식의 패리티 검사 행렬을 생성하기 위해 도 8의 기본 모델 행렬의 하나의 행을 분할하는 방법을 설명하기 위한 도면이다. 즉, 도 10에서, 도 8의 첫 번째 행이 분할되어 두 개의 행들이 생성된다. 이 경우에도, 열의 무게를 갖는 성분은 배타적으로 분리된다. 또한, 분리된 두 행들의 정보어 부분에는 무게를 갖지 않는 적어도 하나 이상의 서브 행렬이 무게를 갖는 서브 행렬로 대체된다. 도 10에서는 분리되어 생성된 두 행들의 첫 번째 열에 위치하는 서브 행렬의 쉬프트 수가 '-1'에서 '2'로 대체되었다.
도 11은 본 발명의 또 다른 실시예에 따라 모델 행렬 형식의 패리티 검사 행렬을 생성하기 위해 도 8의 기본 모델 행렬의 하나의 행을 분할하는 방법을 설명하기 위한 도면이다. 즉, 도 11에서, 도 8의 첫 번째 행이 분할되어 두 개의 행들이 생성된다. 이 경우에도, 열의 무게를 갖는 성분은 배타적으로 분리된다. 또한, 분리되어 생성된 각 행의 패리티 부분에는 둘 이상의 서브 행렬들이 추가된다. 도 11에서는 분리된 두 행들의 패리티 부분에 각각 쉬프트 수가 '0', '1', '2' 및 '3'인 서브 행렬들이 추가된 예들이다.
도 12는 본 발명의 또 다른 실시예에 따라 모델 행렬 형식의 패리티 검사 행렬을 생성하기 위해 도 8의 기본 모델 행렬의 하나의 행을 분할하는 방법을 설명하기 위한 도면이다. 도 12의 예는 도 10 및 도 11의 예를 결합한 형식이다. 즉, 도 12에서, 도 8의 첫 번째 행이 분할되어 두 개의 행들을 생성하는 경우, 분리된 두 행들의 정보어 부분에는 무게를 갖지 않는 적어도 하나 이상의 서브 행렬이 무게를 갖는 서브 행렬로 대체되고, 분리되어 생성된 각 행의 패리티 부분에는 둘 이상의 서브 행렬들이 추가된다. 도 12에서는 분리된 두 행들의 첫 번째 열에 대응하는 서브 행렬은 쉬프트 수가 '11'인 서브 블록으로 대체되었고, 패리티 부분에 각각 쉬프트 수가 '0', '1', '2' 및 '3'인 서브 행렬들이 추가되었다.
도 12의 실시예에 의해 생성된 모델 행렬은 기본 모델 행렬의 적어도 하나 이상의 행의 각각을 분할함으로써 생성된 적어도 둘 이상의 행들과, 상기 적어도 둘 이상의 행들의 정보어 부분의 무게를 갖지 않는 적어도 하나 이상의 서브 행렬을 무게를 갖는 적어도 하나 이상의 서브 행렬로 대체함으로써 생성되는 무게 추가 부분과, 상기 적어도 둘 이상의 행들 각각의 패리티 부분에 적어도 하나 이상의 서브 행렬을 추가함으로써 생성되는 추가 패리티 부분을 포함한다. 상기 무게 추가 부분 및 추가 패리티 부분을 생성하는 경우에 싸이클 4와 싸이클 6의 특성을 고려하는 것이 바람직하다. 즉, 모델 행렬을 확장함으로써 생성되는 전체 패리티 검사 행렬의 측면에서 싸이클 4와 싸이클 6의 개수가 최소화될 수 있도록 상기 무게 추가 부분 및 추가 패리티 부분을 생성하는 것이 바람직하다.
본 발명의 실시예들에 의해 생성된 패리티 검사 행렬을 이용하여 부호화를 수행하는 경우 생성 행렬(generator matrix)을 이용하여 입력 소스 데이터를 부호화할 수 있다. 즉, k 비트의 입력 소스 데이터 s1 ×k는 생성 행렬에 부호화되어 n 비트의 코드워드 x1×k이 된다. 코드워드 x는 x=[s p]=[s0, s1, ..., sk -1, p0, p1, ... , pm -1] 의 구성을 갖는다(여기서, (p0, p1, ... , pm -1)은 패리티 검사 비트(parity check bits)이고, (s0, s1, ... , sk -1)은 시스템 비트(systematic bits)이다.).
그러나, 상기 생성 행렬을 이용한 부호화 방법은 매우 복잡하다. 따라서, 이러한 복잡도를 줄이기 위해 상기 생성 행렬에 의하지 않고, 패리티 검사 행렬 H를 이용해 직접 입력 소스 데이터를 부호화하는 것이 바람직하다. 즉, x=[s p]이므로, H·x = 0인 특성을 이용하면 H·x = H·[s p] = 0이 되고, 이 식으로부터 패리티 검사 비트 p를 얻을 수 있어, 결과적으로 코드워드 x=[s p]를 구할 수 있다.
본 발명의 실시예들에 의해 생성된 패리티 검사 행렬을 이용하여 복호화(decoding)를 수행하는 방법에 대하여 설명하도록 한다. 디코더는 부호화 결과인 코드워드(c)에서 정보 비트(x)를 구해야 하는데, cHT=0인 성질을 이용하여 찾아낸다. 즉, 예를 들어, 수신측에서 수신된 코드워드를 c'이라 할 때, c'HT의 값을 계산하여 결과가 0 이면, c'의 앞의 k개의 비트들을 디코딩된 정보 비트로 결정한다. c'HT의 값이 0이 아닌 경우, 종래기술에 따른 그래프를 통한 합 곱(sum-product) 알고리즘, 신뢰도 전파(belief propagation) 알고리즘 등을 사용하여, c'HT의 값이 0을 만족하는 c'를 찾아 x를 복구한다.
본 문서에서 사용된 용어는 동일한 의미를 갖는 다른 용어들로 대체될 수 있다. 예를 들어, 모델 행렬은 '기본 행렬(base matrix)'이라는 용어에 의해 대체 가능하고, 서브 행렬은 '서브 블록' 또는 '퍼뮤테이션 행렬' 등의 용어로 대체될 수 있다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
도 1은 모델 행렬의 일 예를 도시한 것이다.
도 2는 쉬프트 수(shift number)에 따른 행렬의 표현 방법을 설명하기 위한 도면이다.
도 3은 기본 모델 행렬의 일 예를 도시한 것이다.
도 4는 도 3의 기본 모델 행렬의 하나의 행을 2개의 행으로 분할함으로써 새롭게 생성된 모델 행렬을 도시한 것이다.
도 5는 도 4의 모델 행렬의 하나의 행을 두 개의 행으로 분할함으로써 새롭게 생성된 모델 행렬을 도시한 것다.
도 6은 도 5의 모델 행렬의 하나의 행을 두 개의 행으로 분할함으로써 새롭게 생성된 모델 행렬을 도시한 것이다.
도 7은 도 6의 모델 행렬의 하나의 행을 두 개의 행으로 분할함으로써 새롭게 생성된 모델 행렬을 도시한 것이다.
도 8은 본 발명의 일 실시예에 따른 기본 모델 행렬의 일 예를 도시한 것이다.
도 9는 본 발명의 일 실시예에 따라 모델 행렬 형식의 패리티 검사 행렬을 생성하기 위해 도 8의 기본 모델 행렬의 하나의 행을 분할하는 방법을 설명하기 위한 도면이다.
도 10은 본 발명의 다른 실시예에 따라 모델 행렬 형식의 패리티 검사 행렬을 생성하기 위해 도 8의 기본 모델 행렬의 하나의 행을 분할하는 방법을 설명하기 위한 도면이다.
도 11은 본 발명의 또 다른 실시예에 따라 모델 행렬 형식의 패리티 검사 행렬을 생성하기 위해 도 8의 기본 모델 행렬의 하나의 행을 분할하는 방법을 설명하기 위한 도면이다.
도 12는 본 발명의 또 다른 실시예에 따라 모델 행렬 형식의 패리티 검사 행렬을 생성하기 위해 도 8의 기본 모델 행렬의 하나의 행을 분할하는 방법을 설명하기 위한 도면이다.
Claims (7)
- 삭제
- 삭제
- 삭제
- 입력 데이터열을 LDPC 코딩 기법에 의해 부호화는 방법에 있어서,입력 데이터열을 제공하는 단계; 및상기 입력 데이터열을 패리티 검사 행렬을 이용하여 부호화하는 단계를 포함하되,상기 패리티 검사 행렬은 모델 행렬의 형식으로 표현되는 기본 패리티 검사 행렬의 적어도 하나 이상의 행의 각각을 분할함으로써 생성된 적어도 둘 이상의 행들과, 상기 적어도 둘 이상의 행들 각각의 정보어 부분의 무게를 갖지 않는 적어도 하나 이상의 서브 행렬을 무게를 갖는 적어도 하나 이상의 서브 행렬로 대체함으로써 생성되는 무게 추가 부분을 포함하는 것을 특징으로 하는, 부호화 방법.
- 제4항에 있어서,상기 패리티 검사 행렬은 상기 적어도 둘 이상의 행들 각각의 패리티 부분에 적어도 하나 이상의 서브 행렬을 추가함으로써 생성되는 추가 패리티 부분을 더 포함하는 것을 특징으로 하는, 부호화 방법.
- 부호화된 코드워드를 LDPC 코딩 기법에 의해 복호화는 방법에 있어서,상기 코드워드를 제공하는 단계; 및상기 코드워드를 패리티 검사 행렬을 이용하여 복호화하는 단계를 포함하되,상기 패리티 검사 행렬은 모델 행렬의 형식으로 표현되는 기본 패리티 검사 행렬의 적어도 하나 이상의 행의 각각을 분할함으로써 생성된 적어도 둘 이상의 행들과, 상기 적어도 둘 이상의 행들 각각의 정보어 부분의 무게를 갖지 않는 적어도 하나 이상의 서브 행렬을 무게를 갖는 적어도 하나 이상의 서브 행렬로 대체함으로써 생성되는 무게 추가 부분을 포함하는 것을 특징으로 하는, 복호화 방법.
- 제6항에 있어서,상기 패리티 검사 행렬은 상기 적어도 둘 이상의 행들 각각의 패리티 부분에 적어도 하나 이상의 서브 행렬을 추가함으로써 생성되는 추가 패리티 부분을 더 포함하는 것을 특징으로 하는, 복호화 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080012191A KR101405961B1 (ko) | 2008-02-11 | 2008-02-11 | Ldpc 코드를 이용한 부호화/복호화 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080012191A KR101405961B1 (ko) | 2008-02-11 | 2008-02-11 | Ldpc 코드를 이용한 부호화/복호화 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090086744A KR20090086744A (ko) | 2009-08-14 |
KR101405961B1 true KR101405961B1 (ko) | 2014-06-12 |
Family
ID=41205979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080012191A KR101405961B1 (ko) | 2008-02-11 | 2008-02-11 | Ldpc 코드를 이용한 부호화/복호화 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101405961B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107959500B (zh) * | 2016-10-17 | 2021-10-22 | 上海数字电视国家工程研究中心有限公司 | Ldpc编码器的构造方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060025977A (ko) * | 2004-09-17 | 2006-03-22 | 엘지전자 주식회사 | Ldpc 코드를 이용한 부호화, 복호화 방법 및 부호화또는 복호화를 위한 ldpc 코드 생성 방법 |
KR20070117222A (ko) * | 2006-06-07 | 2007-12-12 | 엘지전자 주식회사 | 참조 행렬을 이용한 lpdc 부호화 및 복호화 방법 |
-
2008
- 2008-02-11 KR KR1020080012191A patent/KR101405961B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060025977A (ko) * | 2004-09-17 | 2006-03-22 | 엘지전자 주식회사 | Ldpc 코드를 이용한 부호화, 복호화 방법 및 부호화또는 복호화를 위한 ldpc 코드 생성 방법 |
KR20070117222A (ko) * | 2006-06-07 | 2007-12-12 | 엘지전자 주식회사 | 참조 행렬을 이용한 lpdc 부호화 및 복호화 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20090086744A (ko) | 2009-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102347823B1 (ko) | 구조화된 ldpc의 부호화 및 복호화 방법 및 장치 | |
KR101208546B1 (ko) | 저밀도 패리티 체크 행렬을 이용한 부호화 및 복호화 방법 | |
KR101405962B1 (ko) | Ldpc 코드를 이용한 복호화 방법 | |
US10326478B2 (en) | Apparatus and method for encoding and decoding data in twisted polar code | |
JP4820368B2 (ja) | Ldpcコードを用いた符号化及び復号化方法 | |
KR100641052B1 (ko) | Ldpc 부호기 및 복호기, 및 ldpc 부호화 방법 및복호화 방법 | |
JP5312484B2 (ja) | 符号化方法、符号化器及び復号器 | |
EP1798861B1 (en) | LDPC encoding through decoding algorithm | |
KR20080102902A (ko) | 가변 부호화율을 가지는 ldpc 부호 설계 방법, 장치 및그 정보 저장 매체 | |
JP4832447B2 (ja) | チャネルコードを用いた復号化装置及び方法 | |
KR101147768B1 (ko) | 채널 코드를 이용한 복호화 방법 및 장치 | |
US20080270877A1 (en) | Method of Encoding and Decoding Using Low Density Parity Check Code | |
KR101370903B1 (ko) | Ldpc 코드를 이용한 부호화 및 복호화 방법 | |
JP4645645B2 (ja) | 復号装置及び検査行列生成方法 | |
KR101405961B1 (ko) | Ldpc 코드를 이용한 부호화/복호화 방법 | |
Yoon et al. | Arbitrary bit generation and correction technique for encoding QC-LDPC codes with dual-diagonal parity structure | |
KR101435831B1 (ko) | 패리티 검사 행렬 생성 방법 | |
JP4985843B2 (ja) | 復号装置 | |
JP4618293B2 (ja) | 復号装置及び検査行列生成方法 | |
KR101354731B1 (ko) | 통신 시스템에서 연접 저밀도 생성 행렬 부호 부호화/복호장치 및 방법 | |
JP2010041628A (ja) | 符号化装置、符号化方法および符号化プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |