KR20060135451A - 저밀도 패리티 검사 행렬 부호화 방법 및 장치 - Google Patents

저밀도 패리티 검사 행렬 부호화 방법 및 장치 Download PDF

Info

Publication number
KR20060135451A
KR20060135451A KR1020050055418A KR20050055418A KR20060135451A KR 20060135451 A KR20060135451 A KR 20060135451A KR 1020050055418 A KR1020050055418 A KR 1020050055418A KR 20050055418 A KR20050055418 A KR 20050055418A KR 20060135451 A KR20060135451 A KR 20060135451A
Authority
KR
South Korea
Prior art keywords
matrix
parity check
density parity
low density
interleaving
Prior art date
Application number
KR1020050055418A
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 KR1020050055418A priority Critical patent/KR20060135451A/ko
Priority to US11/371,932 priority patent/US20070011565A1/en
Priority to TW095122426A priority patent/TW200701658A/zh
Priority to PCT/KR2006/002430 priority patent/WO2007001135A1/en
Priority to CNA2006800211557A priority patent/CN101199123A/zh
Priority to JP2008518039A priority patent/JP2008544686A/ja
Priority to EP06769011A priority patent/EP1897222A4/en
Publication of KR20060135451A publication Critical patent/KR20060135451A/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/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • 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/13Linear codes
    • H03M13/17Burst error correction, e.g. error trapping, Fire codes

Abstract

본 발명은 저밀도 패리티 검사 부호화를 이용하여 에러 정정 능력을 향상시키기 위한 방법에 관한 것이다. 본 발명의 저밀도 패리티 검사 부호화 방법은, 연속된 블록와이즈-컬럼에서 값이 있는 서브 행렬을 오버랩되지 않도록 배치하여 저밀도 패리티 검사 행렬을 생성하는 단계; 저밀도 패리티 검사 행렬에 기초하여 패리티 정보를 생성함으로써 하나 이상의 저밀도 패리티 검사 코드워드 블록을 생성하는 단계; 저밀도 패리티 검사 코드워드 블록을 누적하여 에러 정정 블록을 생성하는 단계; 및 에러 정정 블록을 인터리빙하는 단계를 포함한다. 본 발명에 따르면 통신 시스템 및 고밀도 기록 매체 시스템에서 버스트 에러에 대한 에러 정정 능력을 향상시킬 수 있다.
저밀도 패리티 체크, 에러 정정, 인터리빙, 기록 매체, 버스트 에러

Description

저밀도 패리티 검사 행렬 부호화 방법 및 장치 {Method and apparatus of low density parity check encoding}
도 1는 LDPC 행렬 구조를 나타내는 도면.
도 2은 도 1의 LDPC 행렬의 팩터 그래프를 도시한 도면.
도 3은 통신 및 기록 매체 시스템에서 부호화 및 복호화의 개요도.
도 4은 본 발명의 일 실시예에 따른 LDPC 행렬을 나타내는 도면.
도 5는 본 발명의 다른 실시예에 따른 LDPC 행렬을 나타내는 도면.
도 6는 본 발명의 일 실시예에 따른 LDPC 코드워드의 블록을 나타내는 도면.
도 7는 본 발명의 일 실시예에 따른 LDPC 코드워드의 인터리빙을 나타내는 도면.
도 8은 본 발명의 일 실시예에 따른 에러 정정 개선 효과를 나타내는 그래프.
도 9는 본 발명의 일 실시예에 따른 LDPC 행렬 부호화 방법을 나타내는 흐름도.
<도면의 주요부분에 대한 부호의 설명>
310: LDPC 인코더 320: 인터리버
330: 디인터리버 340: LDPC 디코더
본 발명은 저밀도 패리티 검사 부호화 방법에 관한 것으로, 더욱 상세하게는 저밀도 패리티 검사 부호화를 이용하여 에러 정정 능력을 향상시키기 위한 저밀도 패리티 검사 부호화 방법에 관한 것이다.
무선통신분야 또는 광 기록재생 분야 등에서 사용되는 에러 정정 부호화 및 복호화 기술의 한 가지로서 저밀도 패리티 검사(Low Density Parity Check, 이하 LDPC 라 한다) 부호화 및 복호화 방법이 있다. LDPC 부호화는 패리티 검사 행렬을 이용하여 패리티 정보를 생성하는 과정을 포함한다. 이 때 패리티 검사 행렬의 구성 성분 대부분은 0 이고 극히 일부 구성 성분만이 1 이다. 이러한 LDPC 부호화는 합곱 알고리즘을 사용하여 반복 부호를 수행함으로써 우수한 오류 성능을 가진다.
LDPC 부호화는 규칙적 LDPC 부호화(regular LDPC)와 불규칙적 LDPC 부호화(irregular LDPC)로 나뉜다. 규칙적 LDPC 는 부호화 및 복호화에 사용되는 패리티 검사 행렬이 포함하는 구성 성분 1 의 개수가 행(row) 및 열(column)마다 동일한 개수인 경우이고, 불규칙적 LDPC는 그렇지 않은 경우이다. 규칙적 LDPC 부호화에서 각 행 및 열에 존재하는 "1" 의 개수를 행 웨이트 및 열 웨이트라고 한다.
LDPC 부호화는 이하 수학식 1로 표현될 수 있다.
H ·C e = 0
H는 패리티 검사 행렬이고 0는 영행렬, ·는 XOR 연산 및 모듈러 2 연산을 의미한다. C e 는 코드 워드 벡터로서, 부호화 대상이 되는 코드 워드를 나타내는 열행렬(column matrix)이다. 코드 워드는 x비트의 메시지 워드 x1,x2,...,xx 과 p비트의 패리티 정보 p1,p2,...,pp로 이루어진다.
패리티 정보 p1,p2,...,pp 는 각 메시지 워드 x1,x2,...,xx 가 수학식 1 을 만족하도록 생성된다. 즉 패리티 검사 행렬 H와 행렬 C e 의 구성 성분중 부호화 대상인 메시지 워드의 이진값은 결정되어 있으므로 상기 수학식 1에 의해 패리티 정보 pi(i=1,2...p)를 결정할 수 있다.
LDPC 부호화에 대한 보다 상세한 설명은 "Good error-correction codes based on very sparse matrices"(D.J.MacKay, IEEE Trans. on Information Theory, vol. 45, no.2, pp.399-431, 1999)" 에 기술되어 있다.
한편, 인터리빙은 버스트 에러에 대처하기 위한 기술이다. 통신 또는 기록 매체 시스템에서, 신호가 채널을 통과할 때는 전송되는 신호의 특정 부분에만 편중되어 발생하는 버스트 에러가 발생할 수 있다. 이러한 버스트 에러는 통신 시스템에서는 전달 매체의 외부적인 원인에 의해, 기록 매체 시스템에서는 기록 매체의 스크래치등에 의해 발생한다. 이러한 버스트 에러는 전송되는 비트열의 특정 위치에 발생하기 때문에, 이러한 특정 위치에 존재하는 정보를 다른 위치에 분산시켜 놓았다가 수신단에서 복호화시 원래의 위치로 재위치시킨다면 에러가 발생한 위치의 에러 크기를 감소시킬 수 있다. 감소된 크기의 에러는 에러가 발생하지 않는 영역의 정보 예를 들면 패리티 정보 등을 이용하여 복원가능하다.
도 1는 LDPC 행렬 구조를 나타내는 도면이다. 도 1에는 각 열의 웨이트는 3으로 균일하며, 각 행의 웨이트는 6개로 균일한 규칙적 LDPC 행렬이 도시되어 있다.
도 2은 도 1의 LDPC 행렬의 팩터(factor) 그래프를 도시한 도면이다.
상기 도 1의 팩터 그래프는 12 개의 변수 노드들(varible nodes)과 6 개의 검사 노드들(check nodes)로 구성된다. 비트 1은 패리티 1, 패리티 2 그리고 패리티 4와 연결되어 있다. 그러므로 비트 1에서 에러가 발생했을 때, 우선, 패리티 1, 패리티 2, 그리고 패리티 4를 통해 에러를 정정할 수 있다. LDPC를 이용하면 반복 정정을 하므로 더욱 복잡한 연결 구조를 통해 계속해서 에러 정정된다. 즉, 비트 1에 연결된 패리티 1, 패리티 2 그리고 패리티 4는 또다른 비트들에 연결되어 있고, 이 비트들은 또 다른 패리티들에 연결되어 있고, 이 과정이 계속 반복된다.
버스트 에러의 경우를 살펴보면, 예를 들어, 비트 1과 비트 2가 연속으로 에러가 발생했다면, 비트 1은 패리티 1, 패리티 2, 그리고 패리티 4에 의해 에러 정정되고, 비트 2는 패리티 1, 패리티 2, 패리티 5에 의해 에러 정정된다. 각각의 패리티들은 또 다른 비트들에 연결되어 있고, 이 비트들은 또 다른 패리티들에 연결되어 있고, 이 과정이 계속 반복된다. 그러므로, LDPC 행렬을 이용하면 인터리빙을 하지 않아도, 비트들이 멀리 떨어져 있는 다른 비트들 값의 영향으로 에러 정정되기 때문에, 연속된 비트의 에러 정정을 쉽게 할 수 있다. 그래서, 일반적인 통신 시스템에서 짧은 버스트 에러가 발생한 경우에는, 인터리버를 사용하지 않고, LDPC 코드만을 사용하여 버스트 에러를 정정하기도 한다.
그러나 차세대 광기록 디스크는 고밀도 기록을 하게 되므로, 먼지나 지문, 스크래치 등에 의한 영향이 커져 많은 오류를 발생시킨다. 그러므로, 하나의 LDPC 코드워드로는 긴 버스트 에러를 정정하기가 어려운 문제점이 있다.
따라서, 본 발명이 이루고자 하는 기술적 과제는, 상기와 같은 문제점을 해결하기 위한 것으로 LDPC 부호화에 있어서 에러 정정 능력을 향상시키기 위한 방법에 관한 것이다.
본 발명은 상술한 목적을 달성하기 위하여, 본 발명의 일 실시태양에 의한 저밀도 패리티 검사 부호화 방법에 있어서, 연속된 블록와이즈-컬럼에서 값이 있는 서브 행렬을 오버랩되지 않도록 배치하여 저밀도 패리티 검사 행렬을 생성하는 단계; 저밀도 패리티 검사 행렬에 기초하여 패리티 정보를 생성함으로써 하나 이상의 저밀도 패리티 검사 코드워드 블록을 생성하는 단계; 저밀도 패리티 검사 코드워드 블록을 누적하여 에러 정정 블록을 생성하는 단계; 및 에러 정정 블록을 인터리빙하는 단계를 포함하는 방법이 제공된다.
바람직하게는, 저밀도 패리티 검사 행렬을 생성하는 단계는, 사이클 4 현상이 방지되도록 저밀도 패리티 검사 행렬의 서브 행렬을 배치하여 생성한다. 바람직하게는, 저밀도 패리티 검사 행렬의 서브 행렬은 단위 행렬 및 단위 행렬을 행방향 또는 열방향으로 쉬프트한 행렬이다.
바람직하게는, 인터리빙 단계는, 에러 정정 블록을 저밀도 패리티 검사 행렬의 서브 행렬의 크기에 기초한 인터리빙 블록으로 분할하는 단계; 및 인터리빙 블록 단위로 에러 정정 블록을 인터리빙하는 단계를 포함한다.
바람직하게는, 인터리빙 블록은, 에러 정정 블록이 저밀도 패리티 검사 행렬의 서브 행렬 크기의 배수 단위로 분할되어 생성된다. 또한, 바람직하게는, 인터리빙 블록은, 저밀도 패리티 검사 행렬에서 연속되는 블록와이즈-컬럼에서 값이 있는 서브 행렬이 오버랩되지 않도록 배열될 수 있는 컬럼의 개수에 서브 행렬 크기를 곱한 값으로 분할되어 생성된다.
바람직하게는, 인터리빙 단계는, 에러 정정 블록을 바이트 단위로 인터리빙한다. 또한, 바람직하게는, 인터리빙 단계는, 에러 정정 블록을 비트 단위로 인터리빙한다. 또한, 바람직하게는, 인터리빙 단계는, 인터리빙 블록을 수직 방향으로 기입하고 수평 방향으로 독출하여 이루어진다.
본 발명의 다른 실시태양에 따른 저밀도 패리티 검사 부호화 장치에 있어서, 연속된 블록와이즈-컬럼에서 값이 있는 서브 행렬을 오버랩되지 않도록 배치하여 저밀도 패리티 검사 행렬을 생성하고, 저밀도 패리티 검사 행렬에 기초하여 패리티 정보를 생성함으로써 하나 이상의 저밀도 패리티 검사 코드워드 블록을 생성하는 저밀도 패리티 검사 인코더; 및 저밀도 패리티 검사 코드워드 블록을 누적하여 에러 정정 블록을 생성하고, 에러 정정 블록을 인터리빙하는 인터리버를 포함하는 장치가 제공된다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 3은 통신 및 기록 매체 시스템에서 부호화 및 복호화의 개요도이다.
통상적으로 LDPC 인코더(310)는 전송되어질 원래의 메시지 워드(311)를 수신하여 LDPC 인코딩함으로써 수 개의 코드워드 벡터(321)를 생성한다. 본 발명의 일 실시예에 따른 LDPC 행렬은 단위 행렬 및 단위 행렬을 쉬프트시킨 행렬을 서브 행렬로 한다.
각 코드워드 벡터(321)는 메시지 워드(311)와 전술한 수학식 1을 만족하도록 생성된 패리티 정보를 포함한다. 통상적인 비트 단위로 인터리빙을 하는 인터리버(320)는 수 개의 코드워드 벡터(321)를 수신하여 에러 정정 블록을 형성하고 이를 적절한 크기로 분할하고 적절한 위치에 분산시킴으로써 인터리빙된 비트열(331)을 생성한다. 본 발명의 일 실시예에 따른 인터리버(320)는 에러 정정 블록을 LDPC 행렬의 서브 행렬의 배수 단위 또는 LDPC 행렬의 값이 있는 서브 행렬이 오버랩되지 않는 연속된 블럭와이즈-컬럼의 개수와 서브 행렬의 크기의 곱의 단위로 인터리빙한다.
통신 시스템에서, 이러한 인터리빙된 비트열(331)은 공기 등의 전송 매체를 통해 전송될 것이고, 기록 매체 시스템에서 이러한 인터리빙된 비트열(331)은 기록 매체에 기록된 형태로 재생기로 전달될 것이다.
수신단에서 또는 재생기에서, 디인터리버(330)는 인터리빙된 비트열(331)을 수신하여 이를 디인터리빙함으로서 원래의 코드 워드 벡터(341)를 생성한다. LDPC 디코더(340)는 코드 워드 벡터(341)을 수신하여 LDPC 복호화 알고리즘을 이용하여 원래의 메시지 워드(351)를 생성한다.
도 4은 본 발명의 일 실시예에 따른 LDPC 행렬을 나타내는 도면이다.
본 발명의 일 실시예에 따른 LDPC 행렬은 규칙적 LDPC 행렬로서, 서브 행렬 단위로 구성된다. LDPC 행렬의 서브 행렬은 LDPC 행렬에 대한 연산을 수행할 하드웨어의 성능에 기초하여 그 크기가 정해진다. 서브 행렬은 단위 행렬 및 단위 행렬을 열 단위로 또는 행 단위로 쉬프트함으로써 열 단위 또는 행 단위로 순서가 변경된 단위 행렬이다.
도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 LDPC 행렬(410)은 연속되는 블록와이즈-컬럼으로 구성된다. 연속되는 블록와이즈-컬럼은 예를 들어 블록와이즈-컬럼(405, 406)에서 값이 있는 즉, 영행렬이 아닌 서브 행렬이 오버랩되지 않도록 배치되어 있다. 본 명세서에서 오버랩은 연속되는 블록와이즈-컬럼에서 값이 있는 서브 행렬이 동일한 행에 인접하여 배치되는 것을 의미한다.
또한, 본 발명의 일 실시예에 따른 LDPC 행렬(410)은 LDPC 행렬(410) 전체에서 사이클 4 현상이 방지되도록 배열된다. 사이클 4 현상이란, 패리티 체크 행렬에 포함된 구성 요소 1이 특정 위치의 관계에 있을 때 나타나는 디코딩 과정의 BER 성능의 저하 현상이다. 이 때, 특정 위치란 구성 요소 1이 패리티 체크 행렬내에서 직사각형의 네 꼭지점에 대응하는 위치를 말한다. 예를 들면, (2,2), (2,8), (4,8), (4,2)의 위치에 1이 존재하는 경우이다. 따라서 LDPC 행렬(410)도 값이 있는 서브 행렬의 위치들을 연결했을 때 직사각형의 루프를 형성하지 않도록 배치한 다. 따라서, 이전에 생성된 모든 값이 있는 서브 행렬과 사이클 4를 형성하지 않도록 값이 있는 서브 행렬을 배치하여 LDPC 행렬(410)을 생성한다.
LDPC 행렬(410)은 서브 행렬(401, 402, 403, 404)들로 구성된다. 도면 부호 401은 3×3의 단위 행렬을 나타내고, 도면 부호 402은 3×3의 영행렬을 나타낸다. 도면 부호 403은 3×3의 단위 행렬(401)의 값을 우측으로 1만큼 쉬프트시킨 행렬을 나타낸다. 도면 부호 404는 3×3의 단위 행렬(401)의 값을 좌측으로 1만큼 쉬프트시킨 행렬을 나타낸다.
도 4의 우측에 있는 LDPC 행렬(420)은 좌측에 있는 서브 행렬들을 단위 행렬에 대한 쉬프트 값으로 표현하여 좌측의 LDPC 행렬(410)을 간략하게 표시한 것이다. 0은 단위 행렬(401)을 나타내고, inf는 영행렬(402)를 나타내고, 1은 단위 행렬에 대해 1만큼 우측으로 쉬프트시킨 행렬(403)을 나타내고, -1은 단위 행렬에 대해 1만큼 좌측으로 쉬프트시킨 행렬(404)을 나타낸다.
도 5는 본 발명의 다른 실시예에 따른 LDPC 행렬을 나타내는 도면이다.
LDPC 행렬(500)은 128×128의 서브 행렬들로 구성되며, 블록와이즈-컬럼(510)은 8개의 서브 행렬로 구성되며, 값이 있는 서브 행렬은 3개이다. 도 4의 LDPC 행렬(420)과 같이, inf는 128×128의 영행렬을 나타내고, 숫자 0는 128×128크기의 단위 행렬을 나타내며, 0이외의 숫자는 128×128크기의 단위 행렬을 해당 숫자만큼 쉬프트시킨 행렬을 나타낸다. 본 발명의 일 실시예에 따른 LDPC 행렬(500)은 인접한 블록와이즈-컬럼들에서 값을 가지는 서브 행렬들의 위치가 오버랩되지 않으면서, LDPC 행렬(500) 전체에서 사이클 4 현상이 발생되지 않도록 서브 행렬들을 배치하여 생성된다. 이하에서 설명하는 바와 같이, 블록와이즈-컬럼의 값이 있는 서브 행렬이 오버랩되지 않도록 배치될 수 있는 열의 크기는 한정된다.
연속하는 블럭와이즈-컬럼에서 값이 있는 서브 행렬이 오버랩되지 않게 배치하면, 우선, 첫 번째 블록와이즈-컬럼(510)에 3개의 값이 있는 서브 행렬(501, 502, 503)을 2 내지 4행에 배치할 수 있다. 두 번째 블록와이즈-컬럼(520)에서 3개의 값이 있는 서브 행렬을 첫 번째 블록와이즈-컬럼(510)과 오버랩되지 않도록 배치하기 위해서는 1행, 5행 내지 8행 중에서 배치되어야 한다. 도 5를 참조하면, 두 번째 블록와이즈-컬럼(520)에서 5행, 6행 및 8행에 값이 있는 서브 행렬이 배치되어 있다. 그러나 세번째 블록와이즈-컬럼(530)에서도 값이 있는 서브 행렬을 오버랩되지 않게 배치하기 위해서는 1행과 7행에 배치하고 나머지 하나의 값이 있는 서브 행렬은 첫번째 블록와이즈-컬럼(510)과 두 번째 블록와이즈-컬럼(520)의 값이 있는 서브 행렬과 오버랩될 수 밖에 없게 된다.
따라서, 서브 행렬이 겹치지 않도록 배치할 수 있는 블록와이즈-컬럼의 개수(L)는 2가 됨을 확인할 수 있다. 이 블록와이즈-컬럼의 개수(L)는 후술하는 바와 같이, 본 발명의 바람직한 실시예에 따른 인터리빙 단위와 관련된다.
이와 같이 연속하는 블럭와이즈-컬럼에서 값이 있는 서브 블럭이 오버랩되지 않게 배치하여 생성된 LDPC 행렬은, 연속된 에러가 발생한 경우에 각 에러를 다른 패리티 체크 노드로 분산시켜 계산하는 효과가 있다. 따라서, 각 패리티 체크 노드에서 발생된 에러를 쉽게 인식하고 정정할 수 있게 되어, 전체적인 에러 정정 능력의 향상을 가져온다.
생성된 블록단위의 LDPC 코드 행렬과 데이터 코드를 수학식 1에 대입하면 패리티 코드를 구할 수 있고, 이로써 데이터 코드 및 패리티 코드로 이루어진 LDPC 코드워드가 형성된다.
도 6은 본 발명의 일 실시예에 따른 LDPC 코드워드의 블록을 나타내는 도면이다.
통상, 긴 버스트 에러를 정정하기 위해서는 큰 사이즈의 인터리버가 이용된다. 따라서 인터리빙을 하기 위해서는 여러 개의 LDPC 코드워드 블록들을 누적하여 이용한다. 도 6에서는, 전체 비트가 17408비트인 LDPC 코드워드 블록(600)이 도시되어 있다. LDPC 코드워드 블록(600)은 128개의 16384비트로 구성된 데이터 코드 블록(610) 및 128개의 1024비트로 구성된 패리티 코드 블록(620)으로 구성된다. 데이터(d)와 패리트 코드(p)에서 아래첨자에서 첫번째 숫자는 비트를 나타내고, 두번째 숫자는 코드워드를 나타낸다.
1행의 1열에 있는 코드워드 블록(630)과 같이, 데이터 코드 블록(610)은 256비트의 데이터의 블록으로 나누어져 있다. 이는 본 발명의 바람직한 실시예에서 인터리빙되는 단위 블록이 된다.
도 7는 본 발명의 일 실시예에 따른 LDPC 코드워드의 인터리빙을 나타내는 도면이다.
도 7의 인터리버(700)에는 도 6의 LDPC 코드워드들을 256비트 단위로 분할된 블록이 b로 간략하게 표시되어 있다. b0.0(710)는 도 6에서 설명한 LPDC 코드워드 블록(630)을 간략하게 표시한 것이다. LDPC 코드워드들을 256비트 단위로 분할하였는데, 여기에서 256 비트는 서브 행렬의 크기(128 비트)에 도 5의 LDPC 행렬(400)에서 서브 행렬이 오버랩되지 않도록 배치될 수 있는 블록와이즈-컬럼의 개수(L=2)를 곱한 값(128×2)이다.
이와 같이, LDPC 행렬에서의 서브 행렬의 크기에 값이 있는 서브 행렬이 오버랩되지 않게 되는 인접한 블럭와이즈-컬럼의 개수를 곱한 크기를 인터리빙 단위로 이용하면, LDPC 행렬에서 블록와이즈-컬럼의 값이 있는 서브 행렬을 오버랩되지 않게 배치함으로써 얻을 수 있는 에러 정정 능력이 향상되는 효과가 인터리빙을 할 때에도 유지된다. 도 7에는 코드워드 블록을 수직 방향으로 인터리버에 기입하고, 인터리버에서 출력시에는 수평 방향으로 독출하는 기본적인 인터리빙 방법이 도시되어 있다. 본 발명에 따르면 도 7에도 도시된 바와 같이 기본적인 인터리빙 방법을 이용하여 긴 버스트 에러를 정정할 수 있다.
그러나 본 발명에서 이용될 수 있는 인터리빙 방법은 제한되지 않고 여러 형태의 인터리빙 방법이 이용될 수 있음은 물론이다. 예를 들어, 인터리빙 블록을 LDPC 서브 행렬의 배수 단위로 할 수 있다. 또는 오류 정정 블럭을 비트 단위의 인터리빙을 하거나 바이트 단위의 인터리빙을 하여 인터리빙할 수 있다.
도 8은 본 발명의 일 실시예에 따른 에러 정정 개선 효과를 나타내는 그래프이다.
도 8은 코드율(r=m/n=데이터 길이/코드워드 길이)가 8/9(=8192/9216 비트)이고, 열 웨이트가 3인 규칙적 LDPC 코드워드에서 256비트의 버스트 에러가 발생했을 경우의 BLER(Block Error Rate)의 성능을 나타낸 것이다. 그래프의 세로축은 BLER을 나타내고 가로축은 디지털 신호의 품질을 나타내는 수치인 Eb/No(bit energy-to-noise density)를 나타낸다. 도 8에서, 이용한 종래의 LDPC 코드는 연속되는 블럭와이즈-컬럼에서 값이 있는 서브 블럭이 오버랩되도록 배치된 LDPC 행렬을 이용하였다는 점을 제외하고는 본 발명의 바람직한 실시예에 따른 LDPC 코드와 동일하다. 따라서, 도 8의 그래프에서 BLER 그래프 선이 아래로 내려갈수록 오류 정정 성능이 우수한 것으로 해석된다.
도 8을 참조하면, 256비트의 버스트 에러가 발생한 경우, 종래의 LDPC 코드를 적용(○으로 표시)하는 것에 비해 본 발명에 따른 LDPC 코드(LDPC-CCE로 표시함)를 적용(△으로 표시)했을 때 오류 정정 성능이 개선되었음을 확인할 수 있다.
도 9는 본 발명의 일 실시예에 따른 LDPC 부호화를 나타내는 흐름도이다.
연속된 블록와이즈-컬럼에서 값이 있는 서브행렬을 오버랩되지 않게 배치하여 LDPC 행렬을 생성한다(S 910). 생성된 LDPC 행렬에 기초하여 패리티 정보를 생성함으로써 하나 이상의 LDPC 코드워드 블록을 생성한다(S 920). LDPC 코드워드 블록을 누적하여 에러 정정 블록을 생성하여(S 930), 생성된 에러 정정 블록을 인터리빙한다(S 940).
이상에서, 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특징의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변 경은 청구범위 기재의 범위 내에 있게 된다.
본 발명에 따른 저밀도 패리티 검사 부호화 방법에 의하면, 통신 시스템 및 고밀도 기록 매체 시스템에서 블럭와이즈-컬럼에서 값이 있는 서브 행렬이 오버랩되지 않도록 배치하여 생성한 LDPC 행렬을 이용하고 인터리빙을 함으로써 버스트 에러에 대한 에러 정정 능력을 향상시킬 수 있다.
또한 본 발명에 따른 저밀도 패리티 검사 부호화 방법에 의하면, 간단한 구조의 인터리버를 사용하므로 인터리빙에 필요한 메모리 어드레스 컨드롤러 등의 구성을 간단하게 할 수 있다.

Claims (18)

  1. 저밀도 패리티 검사 부호화 방법에 있어서,
    연속된 블록와이즈-컬럼에서 값이 있는 서브 행렬을 오버랩되지 않도록 배치하여 저밀도 패리티 검사 행렬을 생성하는 단계;
    상기 저밀도 패리티 검사 행렬에 기초하여 패리티 정보를 생성함으로써 하나 이상의 저밀도 패리티 검사 코드워드 블록을 생성하는 단계;
    상기 저밀도 패리티 검사 코드워드 블록을 누적하여 에러 정정 블록을 생성하는 단계; 및
    상기 에러 정정 블록을 인터리빙하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 저밀도 패리티 검사 행렬은,
    사이클 4 현상이 방지되도록 상기 저밀도 패리티 검사 행렬의 서브 행렬이 배치되는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 저밀도 패리티 검사 행렬의 서브 행렬은 단위 행렬 및 단위 행렬을 행방향 또는 열방향으로 쉬프트한 행렬인 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 인터리빙 단계는,
    상기 에러 정정 블록을 상기 저밀도 패리티 검사 행렬의 서브 행렬의 크기에 기초한 인터리빙 블록으로 분할하는 단계; 및
    상기 인터리빙 블록 단위로 상기 에러 정정 블록을 인터리빙하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 인터리빙 블록은,
    상기 에러 정정 블록이 저밀도 패리티 검사 행렬의 서브 행렬 크기의 배수 단위로 분할되어 생성되는 것을 특징으로 하는 방법.
  6. 제4항에 있어서, 상기 인터리빙 블록은,
    상기 저밀도 패리티 검사 행렬에서 연속되는 블록와이즈-컬럼에서 값이 있는 서브 행렬이 오버랩되지 않도록 배열될 수 있는 컬럼의 개수에 상기 서브 행렬 크기를 곱한 값으로 분할되어 생성되는 것을 특징으로 하는 방법.
  7. 제1항에 있어서, 상기 인터리빙 단계는,
    상기 에러 정정 블록을 바이트 단위로 인터리빙하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서, 상기 인터리빙 단계는,
    상기 에러 정정 블록을 비트 단위로 인터리빙하는 것을 특징으로 하는 방법.
  9. 제4항에 있어서, 상기 인터리빙 단계는,
    상기 인터리빙 블록을 수직 방향으로 기입하고 수평 방향으로 독출하여 이루어지는 것을 특징으로 하는 방법.
  10. 저밀도 패리티 검사 부호화 장치에 있어서,
    연속된 블록와이즈-컬럼에서 값이 있는 서브 행렬을 오버랩되지 않도록 배치하여 저밀도 패리티 검사 행렬을 생성하고, 상기 저밀도 패리티 검사 행렬에 기초하여 패리티 정보를 생성함으로써 하나 이상의 저밀도 패리티 검사 코드워드 블록을 생성하는 저밀도 패리티 검사 인코더; 및
    상기 저밀도 패리티 검사 코드워드 블록을 누적하여 에러 정정 블록을 생성하고, 상기 에러 정정 블록을 인터리빙하는 인터리버를 포함하는 것을 특징으로 하는 장치.
  11. 제10항에 있어서, 상기 저밀도 패리티 검사 행렬은,
    사이클 4 현상이 방지되도록 상기 저밀도 패리티 검사 행렬의 서브 행렬이 배치되는 것을 특징으로 하는 장치.
  12. 제10항에 있어서,
    상기 저밀도 패리티 검사 행렬의 서브 행렬은 단위 행렬 및 단위 행렬을 행방향 또는 열방향으로 쉬프트한 행렬인 것을 특징으로 하는 장치.
  13. 제10항에 있어서, 상기 인터리버는,
    상기 에러 정정 블록을 상기 저밀도 패리티 검사 행렬의 서브 행렬의 크기에 기초한 인터리빙 블록으로 분할하고, 상기 인터리빙 블록 단위로 상기 에러 정정 블록을 인터리빙하는 것을 특징으로 하는 장치.
  14. 제13항에 있어서, 상기 인터리빙 블록은,
    상기 에러 정정 블록이 저밀도 패리티 검사 행렬의 서브 행렬 크기의 배수 단위로 분할되어 생성되는 것을 특징으로 하는 장치.
  15. 제13항에 있어서, 상기 인터리빙 블록은,
    상기 저밀도 패리티 검사 행렬에서 연속되는 블록와이즈-컬럼에서 값이 있는 서브 행렬이 오버랩되지 않도록 배열될 수 있는 컬럼의 개수에 상기 서브 행렬 크기를 곱한 값으로 분할되어 생성되는 것을 특징으로 하는 장치.
  16. 제10항에 있어서, 상기 인터리버는,
    상기 에러 정정 블록을 바이트 단위로 인터리빙하는 것을 특징으로 하는 장치.
  17. 제10항에 있어서, 상기 인터리버는,
    상기 에러 정정 블록을 비트 단위로 인터리빙하는 것을 특징으로 하는 장치.
  18. 제13항에 있어서, 상기 인터리버는,
    상기 인터리빙 블록을 수직 방향으로 기입하고 수평 방향으로 독출하여 인터리빙하는 것을 특징으로 하는 장치.
KR1020050055418A 2005-06-25 2005-06-25 저밀도 패리티 검사 행렬 부호화 방법 및 장치 KR20060135451A (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020050055418A KR20060135451A (ko) 2005-06-25 2005-06-25 저밀도 패리티 검사 행렬 부호화 방법 및 장치
US11/371,932 US20070011565A1 (en) 2005-06-25 2006-03-10 Method and apparatus for low-density parity check encoding
TW095122426A TW200701658A (en) 2005-06-25 2006-06-22 Method and apparatus for low-density parity check encoding
PCT/KR2006/002430 WO2007001135A1 (en) 2005-06-25 2006-06-23 Method and apparatus for low-density parity check encoding
CNA2006800211557A CN101199123A (zh) 2005-06-25 2006-06-23 用于低密度奇偶校验编码的方法和装置
JP2008518039A JP2008544686A (ja) 2005-06-25 2006-06-23 低密度パリティ検査符号化の方法及び装置
EP06769011A EP1897222A4 (en) 2005-06-25 2006-06-23 LOW DENSITY PARITY CHECK METHOD AND DEVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050055418A KR20060135451A (ko) 2005-06-25 2005-06-25 저밀도 패리티 검사 행렬 부호화 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20060135451A true KR20060135451A (ko) 2006-12-29

Family

ID=37595351

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050055418A KR20060135451A (ko) 2005-06-25 2005-06-25 저밀도 패리티 검사 행렬 부호화 방법 및 장치

Country Status (7)

Country Link
US (1) US20070011565A1 (ko)
EP (1) EP1897222A4 (ko)
JP (1) JP2008544686A (ko)
KR (1) KR20060135451A (ko)
CN (1) CN101199123A (ko)
TW (1) TW200701658A (ko)
WO (1) WO2007001135A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101481854B1 (ko) * 2007-11-26 2015-01-12 소니 주식회사 데이터 처리 장치, 및 데이터 처리 방법, 및 부호화 장치, 및 부호화 방법
KR20170070933A (ko) * 2015-12-14 2017-06-23 삼성전자주식회사 저밀도 패리티 검사 코드 생성 방법 및 저밀도 패리티 검사 코드를 생성하는 코드 생성 회로
KR20190137751A (ko) * 2014-03-19 2019-12-11 삼성전자주식회사 송신 장치 및 그의 인터리빙 방법
US10749548B2 (en) 2014-03-19 2020-08-18 Samsung Electronics Co., Ltd. Transmitting apparatus and interleaving method thereof

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080059869A1 (en) * 2006-09-01 2008-03-06 The Regents Of The University Of California Low cost, high performance error detection and correction
WO2009017814A2 (en) * 2007-08-01 2009-02-05 Sirius Xm Radio Inc. Method and apparatus for interleaving low density parity check (ldpc) codes over mobile satellite channels
JP2010541375A (ja) * 2007-09-28 2010-12-24 アギア システムズ インコーポレーテッド 複雑度を低減したデータ処理のためのシステムおよび方法
TWI410055B (zh) * 2007-11-26 2013-09-21 Sony Corp Data processing device, data processing method and program product for performing data processing method on computer
US8099644B2 (en) * 2008-06-13 2012-01-17 Mediatek Inc. Encoders and methods for encoding digital data with low-density parity check matrix
CN101621299B (zh) * 2008-07-04 2013-01-30 华为技术有限公司 一种突发纠错的方法、设备和装置
EP2178215A1 (en) * 2008-10-16 2010-04-21 Thomson Licensing Method for error correction and error detection of modified array codes
US8347167B2 (en) 2008-12-19 2013-01-01 Lsi Corporation Circuits for implementing parity computation in a parallel architecture LDPC decoder
WO2010102435A1 (en) * 2009-03-09 2010-09-16 Huawei Technologies Co., Ltd. Method and apparatus of a multiple-access communication system
CN103368717B (zh) * 2009-03-09 2016-11-23 华为技术有限公司 多址接入通信系统的方法和装置
EP2282470A1 (en) * 2009-08-07 2011-02-09 Thomson Licensing Data reception using low density parity check coding and constellation mapping
US8566666B2 (en) * 2011-07-11 2013-10-22 Lsi Corporation Min-sum based non-binary LDPC decoder
KR102019893B1 (ko) * 2013-07-22 2019-09-09 삼성전자주식회사 저밀도 패리티 검사 부호를 지원하는 통신 시스템에서 신호 수신 장치 및 방법
WO2015020766A2 (en) * 2013-08-06 2015-02-12 Jim Burns Face illumination means
WO2018011455A1 (en) * 2016-07-13 2018-01-18 Nokia Technologies Oy Retransmission scheme for low-density parity check coding
US10318389B2 (en) * 2016-07-15 2019-06-11 Quantum Corporation Joint de-duplication-erasure coded distributed storage
US20190319638A1 (en) * 2018-04-12 2019-10-17 National Chiao Tung University Method for generating encoded data that is encoded based on low-density parity-check codes, and method for decoding the encoded data
KR102523059B1 (ko) * 2018-04-18 2023-04-19 에스케이하이닉스 주식회사 에러 정정 회로 및 그것을 포함하는 메모리 시스템
US20210126659A1 (en) * 2019-10-24 2021-04-29 Cloud Network Technology Singapore Pte. Ltd. Apparatus and method for processing multi-user transmissions to discard signals or data carrying interference
CN114095125A (zh) * 2021-11-09 2022-02-25 湖南省时空基准科技有限公司 一种窄带数据广播的信道编码方法及设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6567465B2 (en) * 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
US7120856B2 (en) * 2002-09-25 2006-10-10 Leanics Corporation LDPC code and encoder/decoder regarding same
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
KR100975061B1 (ko) * 2003-11-28 2010-08-11 삼성전자주식회사 저밀도 패리티 검사를 이용한 패리티 정보 생성 방법
KR20050052184A (ko) * 2003-11-29 2005-06-02 삼성전자주식회사 저밀도 패리티 검사 부호화를 위한 인터리빙 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101481854B1 (ko) * 2007-11-26 2015-01-12 소니 주식회사 데이터 처리 장치, 및 데이터 처리 방법, 및 부호화 장치, 및 부호화 방법
KR20190137751A (ko) * 2014-03-19 2019-12-11 삼성전자주식회사 송신 장치 및 그의 인터리빙 방법
US10749548B2 (en) 2014-03-19 2020-08-18 Samsung Electronics Co., Ltd. Transmitting apparatus and interleaving method thereof
US11336299B2 (en) 2014-03-19 2022-05-17 Samsung Electronics Co., Ltd. Transmitting apparatus and interleaving method thereof
US11700018B2 (en) 2014-03-19 2023-07-11 Samsung Electronics Co., Ltd. Method and apparatus for signal receiving and deinterleaving
KR20170070933A (ko) * 2015-12-14 2017-06-23 삼성전자주식회사 저밀도 패리티 검사 코드 생성 방법 및 저밀도 패리티 검사 코드를 생성하는 코드 생성 회로

Also Published As

Publication number Publication date
US20070011565A1 (en) 2007-01-11
EP1897222A1 (en) 2008-03-12
TW200701658A (en) 2007-01-01
CN101199123A (zh) 2008-06-11
WO2007001135A1 (en) 2007-01-04
JP2008544686A (ja) 2008-12-04
EP1897222A4 (en) 2009-01-21

Similar Documents

Publication Publication Date Title
KR20060135451A (ko) 저밀도 패리티 검사 행렬 부호화 방법 및 장치
US7882418B2 (en) LDPC encoder and decoder and LDPC encoding and decoding methods
KR102347823B1 (ko) 구조화된 ldpc의 부호화 및 복호화 방법 및 장치
US6948109B2 (en) Low-density parity check forward error correction
US7000177B1 (en) Parity check matrix and method of forming thereof
US8880976B2 (en) Method and apparatus for encoding LBA information into the parity of a LDPC system
US7644336B2 (en) Techniques for providing greater error protection to error-prone bits in codewords generated from irregular codes
EP1798861B1 (en) LDPC encoding through decoding algorithm
US20090235142A1 (en) Systems Using Low Density Parity Check Codes For Correcting Errors
US7934142B2 (en) Encoding method to QC code
CN101764620B (zh) 用于使用信道代码解码的装置和方法
US8276038B2 (en) Data storage systems
KR20050052184A (ko) 저밀도 패리티 검사 부호화를 위한 인터리빙 방법
US7395482B2 (en) Data storage systems
EP1820275A1 (en) Ldpc encoder and decoder and ldpc encoding and decoding methods
JP5009418B2 (ja) 検査行列の生成方法及び検査行列、並びに復号装置及び復号方法
US7181677B1 (en) System and method for producing data and ECC code words using a high rate restricted-symbol code
EP2178213A1 (en) Methods and apparatuses for error correction coding
JP2004520765A (ja) 情報信号への補助データの埋め込み
KR101405961B1 (ko) Ldpc 코드를 이용한 부호화/복호화 방법
JP2000187948A (ja) 誤り訂正符号化/復号化方式及び誤り訂正符号化/復号化装置
Johnson et al. Practical Interleavers for Repeat--Accumulate Codes
Vallés et al. Hamming codes are rate-efficient array codes
JP2010041628A (ja) 符号化装置、符号化方法および符号化プログラム
KR20090095288A (ko) 패리터 검사 행렬 생성 방법

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