KR20060032807A - 저밀도 패리티 체크 행렬 생성 방법 및 장치 - Google Patents

저밀도 패리티 체크 행렬 생성 방법 및 장치 Download PDF

Info

Publication number
KR20060032807A
KR20060032807A KR1020040081779A KR20040081779A KR20060032807A KR 20060032807 A KR20060032807 A KR 20060032807A KR 1020040081779 A KR1020040081779 A KR 1020040081779A KR 20040081779 A KR20040081779 A KR 20040081779A KR 20060032807 A KR20060032807 A KR 20060032807A
Authority
KR
South Korea
Prior art keywords
matrix
shift block
sub
parity check
arranging
Prior art date
Application number
KR1020040081779A
Other languages
English (en)
Inventor
김현정
이윤우
Original Assignee
삼성전자주식회사
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040081779A priority Critical patent/KR20060032807A/ko
Priority to US11/213,994 priority patent/US20060107180A1/en
Priority to TW094130490A priority patent/TWI258925B/zh
Priority to JP2007536606A priority patent/JP2008516546A/ja
Priority to PCT/KR2005/003355 priority patent/WO2006080735A1/en
Publication of KR20060032807A publication Critical patent/KR20060032807A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure

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)
  • Detection And Correction Of Errors (AREA)

Abstract

패리티 체크 행렬 생성 방법 및 장치가 개시된다. 본 발명은, 저밀도 패리티 체크 행렬 생성 방법에 있어서, a)단위 행렬의 모든 구성 요소를 오른쪽으로 p번 쉬프트시킴으로써 p번째 양-쉬프트 블록을 생성하는 단계; b)단위 행렬의 모든 구성 요소를 왼쪽으로 p번 쉬프트시킴으로써 p번째 음-쉬프트 블록을 생성하는 단계; c)p번째 양-쉬프트 블록 및 p번째 음-쉬프트 블록을 상하방향으로 대칭적으로 배열하는 단계를 포함한다. 본 발명에 의하면, 사이클 4 현상을 방지하면서 좀더 간단히 패리티 체크 행렬을 생성하는 방법이 제공된다.

Description

저밀도 패리티 체크 행렬 생성 방법 및 장치{Apparatus and Method for generating low density parity check metrix}
도 1a 는 저밀도 패리티 체크 코딩 및 디코딩 방법 의 개념을 나타내는 도면.
도 1b 는 사이클 4 현상을 발생시키는 패리티 체크 행렬을 나타낸 도면.
도 2 는 본 발명의 제 1 실시예에 의해 생성된 패리티 체크 행렬을 나타내는 도면.
도 3 는 도 2 과 같이 구성된 패리티 체크 행렬에서 사이클 4 현상이 방지되는 이유를 나타내는 도면.
도 4 는 도 2 의 실시예에 의한 패리티 체크 행렬 생성 방법을 나타내는 시간흐름도.
도 5 는 본 발명의 제 2 실시예에 의해 생성된 패리티 체크 행렬을 나타내는 도면.
도 6 는 본 발명의 제 3 실시예에 의해 생성된 패리티 체크 행렬을 나타내는 도면.
도 7 는 도 6 의 패리티 체크 행렬에서 사이클 4 현상이 방지되는 이유를 나타내는 도면.
도 8 는 도 6의 패리티 체크 행렬을 생성하는 방법을 나타내는 시간흐름도.
도 9 는 본 발명의 제 4 실시예에 의해 생성된 패리티 체크 행렬을 나타내는 도면.
도 10 는 도 9 의 패리티 체크 행렬을 생성하는 방법을 나타내는 시간흐름도.
도 11 은 본 발명에 따른 패리티 체크 행렬 생성 장치를 나타내는 도면이다.
본 발명은 패리티 체크 행렬의 생성 방법에 관한 것으로서, 보다 상세하게는 사이클 4 현상을 방지하고, 보다 간단하게 패리티 체크 행렬을 생성하는 방법에 관한 것이다.
도 1a 는 저밀도 패리티 체크 코딩 및 디코딩 방법 의 개념을 나타내는 도면이다.
에러 정정을 위한 부가 정보 생성 방법에 있어서, 저밀도 패리티 체크 (Low Density Parity Check Coding) 코딩 방법이 널리 사용되고 있다. 저밀도 패리티 체크 코딩이란 '0'과 '1'로 구성되고 '1'의 수가 '0'의 수보다 월등히 적은 저밀도 패리티 체크 행렬 H를 이용하여 패리티 정보를 생성하는 방법이다.
패리티 체크 행렬에서 각 행 또는 열에 포함된 1의 개수는 각각 행 차수(row degree) 및 열 차수(column degree)라 한다. 모든 행의 행 차수가 동일하고, 모든 열의 열 차수가 동일한 패리티 체크 행렬을 규칙적(regular) 패리티 체크 행렬이라하고, 그렇지 않은 경우를 불규칙적(irregular) 패리티 체크 행렬이라 한다. 규칙적 패리티 체크 행렬에서 행 차수는 행 웨이트(row weight, Wr) 라고하고, 열 차수는 열 웨이트(column weight, Wc)라고 한다.
LDPC 코딩을 이용한 패리티 정보 생성은 이하 수학식 1에 의해 수행된다.
[수학식 1]
HX=0
여기서 H는 m*n 의 패리티 체크 행렬이며, X 는 n*1 의 코드 워드 행렬이다. X 는 m 개의 메시지 정보와 p 개의 패리티 정보로 구성된다. 따라서 m+p=n 이다.
이와 같은 LDPC 코딩의 기본 개념은 D.J. MacKay, "Good error-correction codes based on very sparse matrices," IEEE Trans. on Information Theory, vol. 45, no. 2, pp. 399-431, 1999에 개시되어 있으며, 이 문헌에 따르면, 패리티 정보는 가우스 소거법등의 행렬 연산을 이용하여 수학식 1을 풂으로써 생성될 수 있다.
또한 저밀도 패리티 체크 디코딩은 위 수학식을 기초로하여 패리티 검산을 수행하는 과정을 포함한다.
기존의 LDPC 코드의 패리티 체크 행렬을 구성하는 방법은 크게 두가지로 볼 수 있다. 첫 번째 방법은, 패리티 체크 행렬 H의 각각의 열에 대하여 요소 1 행 인덱스(row index)를 사용자에 의해 정해진 임의의 규칙에 따라 선택하는 방법이다. 예를 들면 제 1열에는 1,3,5 의 행 인덱스를, 제 2열에는 2,4,6의 행 인덱스를, 제 3열에는 7,9,11 의 행 인덱스를 ,...., 요소 1 요소로 선택하는 방법이다. 이 방법 은 구현이 용이하나, BER 성능이 저하된다. 두 번째 방법은, 패리티 체크 행렬 H의 각각의 열에 대하여 요소 1 행 인덱스를 램덤하게 선택하는 방법이다. 이 방법은 1 의 위치가 램덤하므로 구현이 복잡하지만, BER 성능이 뛰어나다.
두번째 방법으로 패리티 체크 행렬을 생성하는 방법의 일 례는 다음과 같다. 먼저, 첫 번째 열에서 임의의 wc개의 요소 1 행 인덱스를 선택한다. 그 다음, 두번째 열에서, 이미 생성된 첫 번째 열의 요소 1 행 인덱스와 두 개이상은 중복되지 않도록 임의의 요소 1 행 인덱스를 선택한다. 그 다음, 세 번째 열에서, 이미 생성된 첫 번째 및 두 번째 열중 어느 하나의 요소 1 행 인덱스와 두 개이상은 중복되지 않도록 임의의 요소 1 행 인덱스를 선택한다. 마지막으로, 위 과정을 마지막 열까지 반복한다.
즉 종래의 패리티 체크 행렬 생성방법은 패리티 체크 행렬 H 내의 모든 임의의 두 열의 요소 1 행 인덱스 중에서 두 개 이상은 중복하지 않도록 임의의 요소 1 행 인덱스를 선택한다.
위의 어느 방법을 선택하던간에, 사이클 4 현상이 발생되는 것을 방지하도록 패리티 체크 행렬의 요소 1 의 위치가 선택되어져야 한다.
도 1b 는 사이클 4 현상을 발생시키는 패리티 체크 행렬을 나타낸 도면이다. 사이클 4 현상은 패리티 체크 행렬에 포함된 요소 1 이 특정 위치의 관계에 있을 때 나타나는 디코딩의 BER 성능의 저하 현상이다. 이 때 특정 위치란 요소 1 이 패리티 체크 행렬내에서 직사각형의 네 꼭지점에 대응하는 위치를 말한다. 예를 들면 (2,2), (2,8), (4,8), (4,2) 의 위치에 1 이 존재하는 경우이다.
그러나, 현재 사이클 4 현상을 방지하기 위한 어떠한 일반적인 알고리즘은 존재하지 아니하며, 전술한 방법으로 저밀도 패리티 체크 행렬을 구성할때도 이를 고려하여 1 의 위치를 선택하여야 하는 불편함이 존재한다.
또한 패리티 체크 행렬을 메모리에 저장할때는 요소 1 의 행 인덱스를 메모리에 저장하는데, 일반적으로 패리티 체크 행렬은 그 크기가 매우 크므로, 요소 1 행인덱스를 저장하기 위해선 매우 큰 메모리를 필요로 한다.
따라서 본 발명은 전술한 과제를 해결하기 위해 안출된 것으로서, 사이클 4 현상을 방지하면서 좀더 간단히 패리티 체크 행렬을 생성하는 방법을 제공하고자 한다.
또한 본 발명은, 패리티 체크 행렬이 차지하는 메모리의 용량을 감소시킨 패리티 체크 행렬 생성 방법을 제공하고자 한다.
전술한 바와 같이 본 발명에 의하면, 저밀도 패리티 체크 행렬 생성 방법에 있어서, a)단위 행렬의 모든 구성 요소를 오른쪽으로 p번 쉬프트시킴으로써 p번째 양-쉬프트 블록을 생성하는 단계; b)단위 행렬의 모든 구성 요소를 왼쪽으로 p번 쉬프트시킴으로써 p번째 음-쉬프트 블록을 생성하는 단계; c)상기 p번째 양-쉬프트 블록 및 상기 p번째 음-쉬프트 블록을 상하방향으로 대칭적으로 배열하는 단계를 포함한다.
여기서, 상기 c)단계는, 상기 p번째 양-쉬프트 블록의 직상부 또는 직하부에 상기 p번째 음-쉬프트 블록을 배열하는 단계를 포함하는 것을 특징으로 한다.
또한 여기서, 상기 양-쉬프트 블록 및 상기 음-쉬프트 블록을 가로 방향으로 쉬프트 번호의 일련순서대로 배열하는 단계를 포함하는 것을 특징으로 한다.
또한 본 발명은, d)상기 양-쉬프트 블록 및 상기 음-쉬프트 블록을 상하방향으로 대칭적으로 배열함으로써 생성된 상부 서브 행렬의 직상부 또는 직하부에, 단위 행렬 및 영행열을 교번하여 배열하는 단계를 더 포함하는 것을 특징으로 한다. 여기서, 상기 d)단계는, d1)상기 양-쉬프트 블록 및 상기 음-쉬프트 블록과 동일한 크기의 단위 행렬 및 영 행렬을 가로 방향 및 세로 방향으로 교번하여 배열함으로써 하부 서브 행렬을 생성하는 단계; 및 d2)상기 하부 서브 행렬을, 상기 양-쉬프트 블록 및 상기 음-쉬프트 블록을 상하방향으로 대칭적으로 배열함으로써 생성된 상부 서브 행렬의 직상부 또는 직하부에 배열하는 단계를 포함한다.
또한 본 발명은, 저밀도 패리티 체크 행렬 생성 장치에 있어서, a)단위 행렬의 모든 구성 요소를 오른쪽으로 p번 쉬프트시킴으로써 p번째 양-쉬프트 블록을 생성하는 양-쉬프트 블록 생성부; b)단위 행렬의 모든 구성 요소를 왼쪽으로 p번 쉬프트시킴으로써 p번째 음-쉬프트 블록을 생성하는 음-쉬프트 블록 생성부; c)상기 p번째 양-쉬프트 블록 및 상기 p번째 음-쉬프트 블록을 상하방향으로 대칭적으로 배열함으로써 상부 서브 행렬을 생성하는 상부 서브 행렬 생성부를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명한다.
도 2 는 본 발명의 제 1 실시예에 의해 생성된 패리티 체크 행렬을 나타내는 도면이다.
본 발명의 모든 실시예에서, 패리티 체크 행렬은 하나이상의 쉬프트 블록으로 구성된다. 쉬프트 블록은 양-쉬프트 블록 및 음-쉬프트 블록으로 나뉜다. p번째 양-쉬프트 블록은 단위 행렬의 모든 구성 요소를 오른쪽으로 p번 쉬프트시킴으로써 생성된 행렬을 의미하고, p번째 음-쉬프트 블록은 단위 행렬의 모든 구성 요소를 왼쪽으로 p번 쉬프트시킴으로써 생성된 행렬을 의미한다.
도 2 에 나타난 바와 같이, 본 발명의 제 1 실시예에서는, 패리티 체크 행렬의 상부 절반 및 하부 절반에 p번째 양-쉬프트 블록 및 음-쉬프트 블록이 상하방향으로 대칭적으로 존재한다. p번째 양-쉬프트 블록이 상부에 위치하는 경우에는 p번째 음-쉬프트 블록이 그 직하부에 위치하고, p번째 음-쉬프트 블록이 상부에 위치하는 경우에는 p번째 양-쉬프트 블록이 그 직하부에 위치한다. 또한 p번째 양-쉬프트 블록 또는 음-쉬프트 블록은 중복해서 나타나지 않는다.
사이클 4 현상을 방지하기 위한 본 발명에서의 패리티 체크 행렬을 구성하기 위한 두가지 규칙은 다음과 같다.
규칙 1) p번째 양-쉬프트 블록 및 그에 대응하는 p번째 음-쉬프트 블록이 상하 방향으로 대칭적으로 배열된다.
규칙 2)p번째 양-쉬프트 블록 또는 음-쉬프트 블록은 가로 방향으로 중복해서 나타나지 않는다.
m*n 의 패리티 체크 행렬을 구성하기 위한 서브 블록의 크기는 m/2 * m/2 이 다. 따라서 n = m/2 * N 의 관계를 가지고, m*n 패리티 체크 행렬하나를 구성하는데 필요한 블록의 개수는 2N (N개의 양-쉬프트 블록 및 N개의 음-쉬프트 블록)이다.
도 2 와 같이 구성된 패리티 체크 행렬은 적은 메모리를 필요로 한다. 왜냐하면, 종래의 방법처럼 각 열마다 요소 1 행 인덱스를 저장하는 대신, 양 또는 음 쉬프트 블록의 쉬프트 번호 즉 p 만을 저장하면 되기 때문이다. 예를 들면 도 2 의 실시예에서, 패리티 체크 행렬내의 쉬프트 번호 즉 a,b,... (왼쪽부터)만을 저장하면 패리티 체크 행렬을 구성할 수 있다. 양-쉬프트 또는 음-쉬프트 블록의 내부 구조는 쉬프트 번호에 의해 특정되고, 패리티 체크 행렬은 쉬프트 번호의 배열순서에 의해 특정가능하기 때문이다.
이하에서 p번째 양-쉬프트 블록은 S+p 로 표기하며, p번째 음-쉬프트 블록은 S-p 로 표기한다.
도 3 는 도 2 과 같이 구성된 패리티 체크 행렬에서 사이클 4 현상이 방지되는 이유를 나타내는 도면이다.
도 3에서, 패리티 체크 행렬은 S+1,S-1,S+3,S-3 의 4개의 쉬프트 블록을 포함한다.
먼저 상부에 존재하는 서브 블록 S+1,S+2,S+3,...내에서 꼭지점 2개를 선택하고, 하부에 존재하는 서브 블록S-1,S-2,S-3,...내에서 나머지 꼭지점 2개를 선택하는 경우를 살펴본다. 여기서 꼭지점은 사이클 4 현상을 발생시키는 직사각형의 4 개의 꼭지점을 말한다.
쉬프트 블록은 단위 행렬의 모든 구성요소들이 오른쪽 또는 왼쪽으로 쉬프트된 행렬이고, 단위 행렬은 가로 방향 또는 세로 방향 중 어느 방향으로 보아도 요소 1 은 하나밖에 존재하지 않으므로, 쉬프트 블록내의 모든 행에 포함된 요소 1 의 개수(row weight) 및 쉬프트 블록내의 모든 열에 포함된 요소 1 의 개수(column weight)는 모두 1 이다. 따라서 쉬프트 블록내에서 임의의 요소 1 이 선택되면 그 요소 1을 포함하는 열 또는 행에는 다른 요소 1 이 존재하지 않는다.
본 발명의 패리티 체크 행렬은, 세로 방향에 있어서, p번째 양-쉬프트 블록의 상부 또는 하부에는 그에 대응하는 p번째 음-쉬프트 블록이 존재하므로, 상하방향으로 대응하는 쉬프트 블록사이에는 요소 1 의 행 인덱스가 중첩되지 않는다. 예를 들면 도 3에서 쉬프트 블록 S+1 내의 요소 1 (301)과 동일한 열에 존재하는, 쉬프트 블록 S-1 내의 요소 1 (302)의 행 인덱스는 4 로서 쉬프트 블록 S+1 의 요소 1(301)의 행 인덱스인 2 와 서로 상이하다. 또한 마찬가지로 요소 1(303)과 요소 1(304)의 행 인덱스는 서로 상이하다.
또한 본 발명의 패리티 체크 행렬은, 가로 방향에 있어서, p번째 양-쉬프트 블록 또는 음-쉬프트 블록의 좌우 방향에는 그에 대응하는 p+N번째 (여기서 N은 정수) 양-쉬프트 블록 또는 음-쉬프트 블록이 존재하므로, 결국 좌우방향으로 대응하는 쉬프트 블록사이에는 요소 1 의 열 인덱스가 중첩되지 않는다. 예를 들면 도 3에서 쉬프트 블록 S+1 내의 요소 1 (301)과 동일한 행에 존재하는, 쉬프트 블록 S+3 내의 요소 1 (303)의 열 인덱스는 5 로서 쉬프트 블록 S+1 의 요소 1(301)의 열 인덱스인 3 과 서로 상이하다. 또한 마찬가지로 요소 1(305)과 요소 1(304)의 열 인덱스는 서로 상이하다.
위의 두가지 특성에 의해, 결국 본 발명에 따라 생성된 패리티 체크 행렬내의 임의의 직사각형의 꼭지점에 대응하는 4개의 위치에 요소 1 이 모두 존재하는 경우는 존재할 수 없다. 즉 4 개의 꼭지점중 어느하나는 반드시 요소 0 이 될 수 밖에 없다. 결국 본 발명에 의해 생성된 패리티 체크 행렬은 사이클 4 현상이 발생되지 않는다.
다음 경우로서, 서브 블록내에서 2 개의 요소 1을 꼭지점으로 선택하는 경우를 살펴보면, 하나의 쉬프트 블록에 포함된 요소 1 은 가로방향으로 열 인덱스가 중첩되지 않고 세로방향으로는 행 인덱스가 중첩되지 않기 때문에, 4개의 요소 1 이 각각의 꼭지점으로 되는 직사각형은 생성될 수 없다.
도 4 는 도 2 의 실시예에 의한 패리티 체크 행렬 생성 방법을 나타내는 시간흐름도이다.
단계 410에서, 단위 행렬의 모든 구성 요소를 오른쪽으로 p번 쉬프트시킴으로써 p번째 양-쉬프트 블록을 생성한다.
단계 420에서, 단위 행렬의 모든 구성 요소를 왼쪽으로 p번 쉬프트시킴으로써 p번째 음-쉬프트 블록을 생성한다.
단계 430에서, p번째 양-쉬프트 블록 및 p번째 음-쉬프트 블록을 상하방향으로 대칭적으로 배열함으로써 저밀도 패리티 체크 행렬을 생성한다. 이 때 양-쉬프 트 블록이 상부에 오는 경우에는 모든 양-쉬프트 블록이 상부에 위치해야하며, 음-쉬프트 블록이 상부에 오는 경우에는 모든 음-쉬프트 블록이 상부에 위치해야한다.
변형된 실시예에서, 쉬프트 블록은 쉬프트 번호 p 가 일련되도록 쉬프트 블록이 배열되는 것도 가능하다. 이경우에는 메모리 용량이 추가적으로 감소된다. 이 실시예는 도 5에서 설명된다.
도 5 는 본 발명의 제 2 실시예에 의해 생성된 패리티 체크 행렬을 나타내는 도면이다.
도 5 의 실시예의 패리티 체크 행렬은 쉬프트 번호가 규칙적인 특징을 가진다. 즉 왼쪽에서부터 오른쪽 방향으로 S+1,S+2,S+3,... 의 순서로 쉬프트 블록이 배열된다. 이에 의해, 패리티 체크 행렬을 저장하기 위한 메모리가 더욱더 줄어든다. 메모리는, 전체 쉬프트 블록의 개수 N 만 저장하면 되기 때문이다. 도 5 에는 양 쉬프트 블록이 상부에 존재하지만, 변형된 실시예에서 양-쉬프트 쉬프트 블록과 음-쉬프트 블록의 위치는 바뀔 수 있다.
이하의 모든 실시예에서, 쉬프트 번호는 일련되게 표기한다. 하지만 변형된 실시예에서, 쉬프트 블록은 가로 방향으로 쉬프트 번호가 중복되지 않는한 랜덤한 순서로 배열가능하다.
도 6 는 본 발명의 제 3 실시예에 의해 생성된 패리티 체크 행렬을 나타내는 도면이다.
도 6 에 나타난 바와 같이, 도 6 의 실시예에 따른 패리티 체크 행렬은 도 2 의 패리티 체크 행렬의 하부에 도 2 의 패리티 체크 행렬과 동일한 크기의 하부 서브 행렬(600)이 추가된다. 하부 서브 행렬(600)은 상부 서브 행렬(610)을 구성하는 쉬프트 블록 S+1,S+2,...S-1,S-2,...과 크기가 동일한 하나이상의 단위 행렬 I 및 영 행렬 O 로 구성되며, 단위 행렬 I 및 영 행렬 O 은 가로 방향으로 및 세로 방향으로 교번하여 배열된다.
도 6 의 패리티 체크 행렬은 행 웨이트가 3 이다. 하지만 열 웨이트는 일정하지 않다.
도 7 는 도 6 의 패리티 체크 행렬에서 사이클 4 현상이 방지되는 이유를 나타내는 도면이다.
먼저 상부 서브 행렬(610)에서 꼭지점 두 개를 선택하고, 하부 서브 행렬(600)에서 꼭지점 두 개를 선택하는 경우를 살펴본다. 여기서 꼭지점은 사이클 4 현상을 발생시키는 직사각형의 4 개의 꼭지점을 말한다.
도 2 의 경우와 마찬가지로 도 6 의 패리티 체크 행렬은, 먼저 상부에 존재하는 쉬프트 블록의 가로 방향에 있어서, p번째 양-쉬프트 블록 또는 음-쉬프트 블록의 좌우 방향에는 그에 대응하는 p+N번째 (여기서 N은 정수) 양-쉬프트 블록 또는 음-쉬프트 블록이 존재하므로, 결국 좌우방향으로 대응하는 쉬프트 블록사이에는 요소 1 의 열 인덱스가 중첩되지 않는다. 예를 들면 도 3에서 쉬프트 블록 S+1 내의 요소 1 (301)과 동일한 행에 존재하는, 쉬프트 블록 S+3 내의 요소 1 (702)의 열 인덱스는 5 로서 쉬프트 블록 S+1 의 요소 1(301)의 열 인덱스인 3 과 서로 상이하다.
또한 하부에 존재하는 쉬프트 블록의 가로 방향에 있어서, 하부의 쉬프트 블록이 단위 행렬이기 때문에 좌우 방향으로 대응하는 쉬프트 블록사이에는 요소 1 의 열 인덱스가 중첩될 수 있다. 그러나, 위에서 설명한 바와 같이, 상부 서브 블록(600)내의 요소 1 사이에는 열 인덱스가 동일할 수 없으므로, 단위 행렬 내에서 열 인덱스가 동일한 두 개의 요소 1 들에 대응하는 상부 서브 블록내의 위치에 요소 1 이 두 개 모두 존재할 수는 없다. 예를 들면 도 7에서, 단위 행렬내의 요소 1 (703) 및 요소 1(704)는 서로 열 인덱스가 3 으로서 동일하지만, 상부 서브 행렬(610)내에서 요소 1(704)의 열 인덱스에 대응되는 위치(705)에는 요소 1 이 존재하지 않기 때문에 결국 사이클 4 현상이 발생하지 않는다.
다음 경우로서, 상부 서브 행렬(610)내에서 또는 하부 서브 행렬(600)내에서 4 개의 요소 1 모두를 선택하는 경우에는, 단위 행렬 또는 쉬프트 블록에 포함된 요소 1 은 열 인덱스 및 행 인덱스가 중첩되지 않기 때문에, 4개의 요소 1 이 각각의 꼭지점으로 하는 직사각형은 생성될 수 없다.
도 8 는 도 6의 패리티 체크 행렬을 생성하는 방법을 나타내는 시간흐름도이다.
단계 810에서, 단위 행렬의 모든 구성 요소를 오른쪽으로 p번 쉬프트시킴으로써 p번째 양-쉬프트 블록을 생성한다.
단계 820에서, 단위 행렬의 모든 구성 요소를 왼쪽으로 p번 쉬프트시킴으로써 p번째 음-쉬프트 블록을 생성한다.
단계 830에서, p번째 양-쉬프트 블록 및 p번째 음-쉬프트 블록을 상하방향으로 대칭적으로 배열함으로써 상부 서브 행렬(610)을 생성한다.
단계 840에서, 상부 서브 행렬(610)을 구성하는 쉬프트 블록과 동일한 크기를 가지는 단위 행렬 I 및 영 행렬 O 을 가로 방향 및 새로 방향으로 교번하여 배열함으로써 하부 서브 행렬(600)을 생성한다.
단계 850에서, 상부 서브 행렬(610) 직하부 또는 직상부에 하부 서브 행렬(600)을 배열함으로서 패리티 체크 행렬을 생성한다.
도 9 는 본 발명의 제 4 실시예에 의해 생성된 패리티 체크 행렬을 나타내는 도면이다.
도 9의 패리티 체크 행렬은 제 1 서브 행렬(920)과 제 2 서브 행렬(930)을 포함한다. 제 1 서브 행렬(920)는 상부 서브 행렬(910)의 직하부에 하부 서브 행렬(900)이 위치하는 행렬이고, 제 2 서브 행렬(930)는 상부 서브 행렬(910)의 직상부에 하부 서브 행렬(900)이 위치하는 행렬이다.
도 9의 패리티 체크 행렬은 다음과 같은 두가지 특징을 가진다.
첫째 열 웨이트 및 행 웨이트가 일정한 규칙적(regular) 패리티 체크 행렬이다.
둘째, 열 웨이트는 3이며, 행 웨이트는 N/2 + (N/2*1/2) = 3N/4 이다. 여기서 N 는 가로방향의 쉬프트 블록의 개수 + 단위행렬의 개수 + 영행렬의 개수이다.
도 10 는 도 9 의 패리티 체크 행렬을 생성하는 방법을 나타내는 시간흐름도이다.
단계 1010에서, 단위 행렬의 모든 구성 요소를 오른쪽으로 p번 쉬프트시킴으로써 p번째 양-쉬프트 블록을 생성한다.
단계 1020에서, 단위 행렬의 모든 구성 요소를 왼쪽으로 p번 쉬프트시킴으로써 p번째 음-쉬프트 블록을 생성한다.
단계 1030에서, p번째 양-쉬프트 블록 및 p번째 음-쉬프트 블록을 상하방향으로 대칭적으로 배열함으로써 상부 서브 행렬(910)을 생성한다.
단계 1040에서, 상부 서브 행렬(910)을 구성하는 쉬프트 블록과 동일한 크기를 가지는 단위 행렬 I 및 영 행렬 O 을 가로 방향 및 새로 방향으로 교번하여 배열함으로써 하부 서브 행렬(900)을 생성한다.
단계 1050에서, 상부 서브 행렬(910) 직하부에 하부 서브 행렬(900)을 배열함으로서 제 1 서브 행렬(920)을 생성하고, 상부 서브 행렬(910) 직상부에 하부 서브 행렬(900)을 배열함으로서 제 2 서브 행렬(930)을 생성한다.
단계 1060에서, 제 1 서브 행렬(900)의 왼쪽 또는 오른쪽에 제 2 서브 행렬(910)을 배열함으로써 패리티 체크 행렬을 생성한다.
도 11 은 본 발명에 따른 패리티 체크 행렬 생성 장치를 나타내는 도면이다.
본 발명에 따른 패리티 체크 행렬 생성 장치는 양-쉬프트 블록 생성부(1110), 음-쉬프트 블록 생성부(1120), 상부 서브 행렬 생성부(1130), 하부 서브 행렬 생성부(1140), 제 1 서브 행렬 생성부(1150), 제 2 서브 행렬 생성부(1160) 및 패리치 체크 행렬 생성부(1170)을 포함한다.
양-쉬프트 블록 생성부(1110)는 단위 행렬(1102)의 모든 구성 요소를 오른쪽으로 p번 쉬프트시킴으로써 p번째 양-쉬프트 블록(1112)을 생성하고, 음-쉬프트 블록 생성부(1120)는 단위 행렬(1102)의 모든 구성 요소를 왼쪽으로 p번 쉬프트시킴으로써 p번째 음-쉬프트 블록(1122)을 생성한다.
상부 서브 행렬 생성부(1130)는, p번째 양-쉬프트 블록(1112) 및 p번째 음-쉬프트 블록(1122)을 상하방향으로 대칭적으로 배열함으로써 상부 서브 행렬(1132)을 생성한다. 특히 상부 서브 행렬 생성부(1130)는 p번째 양-쉬프트 블록(1112)의 직상부 또는 직하부에 p번째 음-쉬프트 블록을 배열함으로써 상부 서브 행렬(1132)을 생성한다.
상부 서브 행렬(1132)는 그 자체로 패리티 체크 행렬로 사용가능하다. 이 때 상부 서브 행렬 생성부(1130)는 양-쉬프트 블록(1112) 및 음-쉬프트 블록(1122)을 가로 방향으로 쉬프트 번호의 일련순서대로 배열함으로서 상부 서브 행렬(1132)를 생성할 수 있고, 이 경우에는 패리티 체크 행렬이 차지하는 메모리 용량이 더욱 감소된다.
하부 서브 행렬 생성부(1140)는 양-쉬프트 블록(1112) 및 음-쉬프트 블록(1122)과 동일한 크기의 단위 행렬(1102) 및 영행열을 가로 방향 및 새로 방향으로 교번하여 배열함으로써 상부 서브 행렬(132)과 동일한 크기의 하부 서브 행렬(1142)을 생성한다.
제 1 서브 행렬 생성부(1150)는 상부 서브 행렬(1132)의 직하부에 상기 하부 서브 행렬(1142)을 배열함으로서 제 1 서브 행렬(1152)을 생성하고, 제 2 서브 행렬 생성부(1160)는 상부 서브 행렬(1132)의 직상부에 하부 서브 행렬(1142)을 배열함으로서 제 2 서브 행렬(1162)을 생성한다. 제 1 서브 행렬(1152) 및 제 2 서브 행렬(1162)는 그 자체로서 패리티 체크 행렬로 사용가능하다.
패리치 체크 행렬 생성부(1170)는 제 1 서브 행렬(1152) 및 제 2 서브 행렬(1162)을 가로 방향으로 대칭적으로 배열함으로써 규칙적 패리티 체크 행렬(1172)을 생성한다.
한편, 본 발명에 따른 패리티 체크 행렬 생성 방법은 컴퓨터 프로그램으로 작성 가능하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 컴퓨터에 의하여 읽혀지고 실행됨으로써 패리티 체크 행렬 생성 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체, 및 캐리어 웨이브 매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
전술한 바와 같이 본 발명에 따르면, 사이클 4 현상을 방지하면서 좀더 간단히 패리티 체크 행렬을 생성하는 방법이 제공된다.
또한 본 발명에 따르면, 패리티 체크 행렬이 차지하는 메모리의 용량이 감소된다.

Claims (13)

  1. 저밀도 패리티 체크 행렬 생성 방법에 있어서,
    a)단위 행렬의 모든 구성 요소를 오른쪽으로 p번 쉬프트시킴으로써 p번째 양-쉬프트 블록을 생성하는 단계;
    b)단위 행렬의 모든 구성 요소를 왼쪽으로 p번 쉬프트시킴으로써 p번째 음-쉬프트 블록을 생성하는 단계;
    c)상기 p번째 양-쉬프트 블록 및 상기 p번째 음-쉬프트 블록을 상하방향으로 대칭적으로 배열하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 상기 c)단계는,
    상기 p번째 양-쉬프트 블록의 직상부 또는 직하부에 상기 p번째 음-쉬프트 블록을 배열하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 상기 c)단계는,
    상기 양-쉬프트 블록 및 상기 음-쉬프트 블록을 가로 방향으로 쉬프트 번호의 일련순서대로 배열하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    d)상기 양-쉬프트 블록 및 상기 음-쉬프트 블록을 상하방향으로 대칭적으로 배열함으로써 생성된 상부 서브 행렬의 직상부 또는 직하부에, 단위 행렬 및 영행열을 교번하여 배열하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서, 상기 d)단계는,
    d1)상기 양-쉬프트 블록 및 상기 음-쉬프트 블록과 동일한 크기의 단위 행렬 및 영 행렬을 가로 방향 및 세로 방향으로 교번하여 배열함으로써 하부 서브 행렬을 생성하는 단계;
    d2)상기 하부 서브 행렬을, 상기 양-쉬프트 블록 및 상기 음-쉬프트 블록을 상하방향으로 대칭적으로 배열함으로써 생성된 상부 서브 행렬의 직상부 또는 직하부에 배열하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서,
    e)상기 상부 서브 행렬 및 상기 하부 서브 행렬을 교번하여 배열함으로써 규칙적 패리티 체크 행렬을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서, 상기 e)단계는,
    e1)상기 상부 서브 행렬 직하부에 상기 하부 서브 행렬을 배열함으로서 제 1 서브 행렬을 생성하는 단계;
    e2)상기 상부 서브 행렬 직상부에 상기 하부 서브 행렬을 배열함으로서 제 2 서브 행렬을 생성하는 단계;
    e3)상기 제 1 서브 행렬의 왼쪽 또는 오른쪽에 상기 제 2 서브 행렬을 배열하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 저밀도 패리티 체크 행렬 생성 장치에 있어서,
    a)단위 행렬의 모든 구성 요소를 오른쪽으로 p번 쉬프트시킴으로써 p번째 양-쉬프트 블록을 생성하는 양-쉬프트 블록 생성부;
    b)단위 행렬의 모든 구성 요소를 왼쪽으로 p번 쉬프트시킴으로써 p번째 음-쉬프트 블록을 생성하는 음-쉬프트 블록 생성부;
    c)상기 p번째 양-쉬프트 블록 및 상기 p번째 음-쉬프트 블록을 상하방향으로 대칭적으로 배열함으로써 상부 서브 행렬을 생성하는 상부 서브 행렬 생성부를 포함하는 것을 특징으로 하는 장치.
  9. 제 8 항에 있어서, 상기 c)상부 서브 행렬 생성부는,
    상기 p번째 양-쉬프트 블록의 직상부 또는 직하부에 상기 p번째 음-쉬프트 블록을 배열함으로써 상기 상부 서브 행렬을 생성하는 것을 특징으로 하는 장치.
  10. 제 8 항에 있어서, 상기 c)상부 서브 행렬 생성부는,
    상기 양-쉬프트 블록 및 상기 음-쉬프트 블록을 가로 방향으로 쉬프트 번호의 일련순서대로 배열함으로서 상기 상부 서브 행렬을 생성하는 것을 특징으로 하는 장치.
  11. 제 8 항에 있어서,
    d)상기 양-쉬프트 블록 및 음-쉬프트 블록과 동일한 크기의 단위 행렬 및 영행열을 가로 방향 및 새로 방향으로 교번하여 배열함으로써 상기 상부 서브 행렬과 동일한 크기의 하부 서브 행렬을 생성하는 하부 서브 행렬 생성부; 및
    e)상기 상부 서브 행렬의 직하부에 상기 하부 서브 행렬을 배열함으로서 제 1 서브 행렬을 생성하는 제 1 서브 행렬 생성부
    를 더 포함하는 것을 특징으로 하는 장치.
  12. 제 11 항에 있어서,
    f)상기 상부 서브 행렬의 직상부에 상기 하부 서브 행렬을 배열함으로서 제 2 서브 행렬을 생성하는 제 2 서브 행렬 생성부; 및
    g)상기 제 1 서브 행렬 및 상기 제 2 서브 행렬을 가로 방향으로 대칭적으로 배열하여 규칙적 패리티 체크 행렬을 생성하는 패리치 체크 행렬 생성부
    를 더 포함하는 것을 특징으로 하는 장치.
  13. 제 1 항에 기재된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020040081779A 2004-10-13 2004-10-13 저밀도 패리티 체크 행렬 생성 방법 및 장치 KR20060032807A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020040081779A KR20060032807A (ko) 2004-10-13 2004-10-13 저밀도 패리티 체크 행렬 생성 방법 및 장치
US11/213,994 US20060107180A1 (en) 2004-10-13 2005-08-30 Apparatus and method for constructing low-density parity check matrix
TW094130490A TWI258925B (en) 2004-10-13 2005-09-06 Apparatus and method for constructing low-density parity check matrix
JP2007536606A JP2008516546A (ja) 2004-10-13 2005-10-10 低密度パリティチェック行列の生成方法及び装置
PCT/KR2005/003355 WO2006080735A1 (en) 2004-10-13 2005-10-10 Apparatus and method for constructing low-density parity check matrix

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040081779A KR20060032807A (ko) 2004-10-13 2004-10-13 저밀도 패리티 체크 행렬 생성 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20060032807A true KR20060032807A (ko) 2006-04-18

Family

ID=36387911

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040081779A KR20060032807A (ko) 2004-10-13 2004-10-13 저밀도 패리티 체크 행렬 생성 방법 및 장치

Country Status (5)

Country Link
US (1) US20060107180A1 (ko)
JP (1) JP2008516546A (ko)
KR (1) KR20060032807A (ko)
TW (1) TWI258925B (ko)
WO (1) WO2006080735A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114969A1 (en) * 2007-03-16 2008-09-25 Lg Electronics Inc. Method of generating a parity check matrix for ldpc encoding and decoding
WO2008117994A1 (en) * 2007-03-27 2008-10-02 Lg Electronics Inc. Method of encoding data using a low density parity check code
KR101227514B1 (ko) * 2007-03-15 2013-01-31 엘지전자 주식회사 Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법
US8689088B2 (en) 2007-03-27 2014-04-01 Lg Electronics Inc. Method of encoding data using a low density parity check code

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8201068B2 (en) * 2009-01-06 2012-06-12 Mediatek Inc. Method for generating parity-check matrix
CN102868483A (zh) * 2011-07-06 2013-01-09 北京新岸线无线技术有限公司 一种用于数据传输的方法及装置
JP6905856B2 (ja) * 2017-05-10 2021-07-21 パナソニック株式会社 冷蔵庫

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1290802A1 (en) * 2000-06-16 2003-03-12 Aware, Inc. Systems and methods for ldpc coded modulation
US6895547B2 (en) * 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
US7058873B2 (en) * 2002-11-07 2006-06-06 Carnegie Mellon University Encoding method using a low density parity check code with a column weight of two
JP2005340920A (ja) * 2004-05-24 2005-12-08 Samsung Yokohama Research Institute Co Ltd 信号処理装置、符号化方法および復号方法
US7506238B2 (en) * 2004-08-13 2009-03-17 Texas Instruments Incorporated Simplified LDPC encoding for digital communications

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101227514B1 (ko) * 2007-03-15 2013-01-31 엘지전자 주식회사 Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법
WO2008114969A1 (en) * 2007-03-16 2008-09-25 Lg Electronics Inc. Method of generating a parity check matrix for ldpc encoding and decoding
US8443254B2 (en) 2007-03-16 2013-05-14 Lg Electronics Inc. Method of generating a parity check matrix for LDPC encoding and decoding
WO2008117994A1 (en) * 2007-03-27 2008-10-02 Lg Electronics Inc. Method of encoding data using a low density parity check code
US8689088B2 (en) 2007-03-27 2014-04-01 Lg Electronics Inc. Method of encoding data using a low density parity check code

Also Published As

Publication number Publication date
TW200612672A (en) 2006-04-16
US20060107180A1 (en) 2006-05-18
JP2008516546A (ja) 2008-05-15
TWI258925B (en) 2006-07-21
WO2006080735A1 (en) 2006-08-03

Similar Documents

Publication Publication Date Title
CN104868925B (zh) 结构化ldpc码的编码方法、译码方法、编码装置和译码装置
US7480845B2 (en) Method and apparatus for generating block-based low-density parity check matrix and recording medium having recorded thereon code for implementing the method
JP5116735B2 (ja) 符号を構成する方法
CN103155421B (zh) Ldpc多解码器架构
US8499218B2 (en) System and method for determining quasi-cyclic low-density parity-check codes having high girth
CN102394659B (zh) Ldpc码校验矩阵构造方法及对应矩阵乘法运算装置
US20070011565A1 (en) Method and apparatus for low-density parity check encoding
CA2536259C (en) Methods and apparatus for encoding ldpc codes
US20060107180A1 (en) Apparatus and method for constructing low-density parity check matrix
WO2012163070A1 (zh) 带保护字的二维游程长度受限约束的编解码器及使用方法
EP1589664A1 (en) Method of converting parity check matrix for low density parity check coding
Esfahanizadeh et al. Multi-dimensional spatially-coupled code design: Enhancing the cycle properties
Schwartz et al. Two-dimensional cluster-correcting codes
US7447972B2 (en) Methods and apparatus for constructing low-density parity check (LDPC) matrix
CN105207681B (zh) 一种基于有限域乘群中循环子群生成元的ldpc码构造方法
US20060195761A1 (en) Method of generating low-density parity check matrix and method of generating parity information using the low-density parity check matrix
US20070277075A1 (en) Method of Generating Parity Information Using Low Density Parity Check
JP2006100941A (ja) 信号処理装置、低密度パリティ検査符号の符号化方法および復号方法
CN102723956A (zh) 一种ldpc码的生成方法
Soedarmadji et al. Iterative decoding for sudoku and latin square codes
CN100490332C (zh) 一种基于循环三维立方体网格图的低密度码的构造方法
TWI705667B (zh) 產生具有符合所需之錯誤基數的低密度奇偶校驗碼的方法及裝置
CN108400836A (zh) 一种多码率多码长qc-ldpc码的构造和编码方法
RU2365034C2 (ru) Способ и устройство для кодирования и декодирования данных
Xu et al. Design of Nonbinary LDPC Cycle Codes with Large Girth from Circulants and Finite Fields

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid