KR100849044B1 - 패리티 체크 행렬 생성 방법, 데이터 전송 시스템, 부호화장치, 복호 장치 및 패리티 체크 행렬 생성 프로그램을 저장하는 컴퓨터로 판독가능한 기록 매체 - Google Patents

패리티 체크 행렬 생성 방법, 데이터 전송 시스템, 부호화장치, 복호 장치 및 패리티 체크 행렬 생성 프로그램을 저장하는 컴퓨터로 판독가능한 기록 매체 Download PDF

Info

Publication number
KR100849044B1
KR100849044B1 KR1020067016673A KR20067016673A KR100849044B1 KR 100849044 B1 KR100849044 B1 KR 100849044B1 KR 1020067016673 A KR1020067016673 A KR 1020067016673A KR 20067016673 A KR20067016673 A KR 20067016673A KR 100849044 B1 KR100849044 B1 KR 100849044B1
Authority
KR
South Korea
Prior art keywords
parity check
check matrix
matrix
rows
generating
Prior art date
Application number
KR1020067016673A
Other languages
English (en)
Other versions
KR20060116022A (ko
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 닛본 덴끼 가부시끼가이샤
Publication of KR20060116022A publication Critical patent/KR20060116022A/ko
Application granted granted Critical
Publication of KR100849044B1 publication Critical patent/KR100849044B1/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
    • 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
    • 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/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • 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

우수한 에러 정정 특성을 실현할 수 있는 저밀도 패리티 체크 부호의 생성을 용이하게 하는 방법을 개시한다. 전송 라인 인코더의 프로세서 (50) 는 좌측에서 m행 k열의 부분 행렬 H1 및 우측에서 m행 m열의 부분 행렬 H2로부터 패리티 체크 행렬 H를 구성한다. 프로세서 (50) 는 단위 행렬로서 부분 행렬 H2를 생성한다. 프로세서 (50) 는 부분 행렬 H1에 포함되는 임의의 2개의 행을 선택할 경우 2개의 행이 서로소인 주기를 가지거나, 또는 주기가 동일한 경우에는 2개의 행이 서로 상이한 위상을 갖는다는 조건을 충족시키도록 부분 행렬 H1을 생성한다. 프로세서 (50) 는 그 후 부분 행렬 H1과 부분 행렬 H2를 결합해서 패리티 체크 행렬 H를 생성한다.
패리티 체크 행렬, 데이터 전송 시스템, 부호화 장치, 복호 장치, 패리티 체크 행렬 생성 프로그램

Description

패리티 체크 행렬 생성 방법, 데이터 전송 시스템, 부호화 장치, 복호 장치 및 패리티 체크 행렬 생성 프로그램{INSPECTION MATRIX GENERATION METHOD, DATA TRANSMISSION SYSTEM, ENCODING DEVICE, DECODING DEVICE, AND INSPECTION MATRIX GENERATION PROGRAM}
기술분야
본 발명은 에러 정정 부호로서 LDPC (저밀도 패리티 체크) 부호를 사용하는 인코더 (부호화 장치) 및 디코더 (복호 장치) 에 의해, 패리티 체크 행렬을 생성하는 패리티 체크 행렬 생성 방법 및 패리티 체크 행렬 생성 프로그램에 관한 것이며, 패리티 체크 행렬 생성 방법이나 패리티 체크 행렬 생성 프로그램을 적용한 데이터 전송 시스템, 부호화 장치 및 복호 장치에 관한 것이다.
배경기술
전송 에러가 생길 수 있는 전송 라인에 의해 데이터의 전송을 행할 경우, 일반적으로 에러 정정 부호를 이용한다. 도 1은 전송 라인에 의해 데이터를 전송하는 데이터 전송 시스템의 구성의 하나의 예를 도시하는 블록도이다. 예를 들면, 도 1에 도시한 데이터 전송 시스템은 전송 라인 (12) 에 의해 송신측의 전송 라인 인코더 (11) 및 수신측의 전송 라인 디코더 (13) 를 구비하고 있다. 전송 라인 인코더 (11) 및 전송 라인 디코더 (13) 를 이용해서 에러 정정을 행하는 것은, 데이터 발생기 (10) 로부터 데이터 소비기 (14) 에 전송되는 데이터에 대한 전 송 에러의 영향을 제거한다.
Reed Solomon 부호 및 Turbo 부호 등이 에러 정정 부호로 알려져 있다. 또한, 최근, 이론한계 (Shannon 한계) 에 가까운 성능을 나타낼 수 있는 LDPC 부호가 에러 정정 부호로서 주목받고 있다.
LDPC 부호화되는 메시지 (데이터) 의 메시지 길이를 k라고 하고, 부호화 후의 부호어의 길이를 n이라고 하면, LDPC 부호의 패리티 체크 행렬 H는 (n-k) 행 및 n 열의 행렬로서 나타낼 수 있다. 메시지를 S=(s1,s2,…,sk) 라고 하고, 부호어를 C=(c1,c2,…,cn) 이라고 하면, 부호어 C는 k행 및 n열의 생성 행렬 G를 메시지 S로 승산하는 것에 의해 얻을 수 있다. 즉, 부호어 C는 C=SG임을 발견함으로써 얻을 수 있다. 모든 부호어 C가 HCt=O의 조건을 충족시키므로, GHt=O이다. 또한, Ct는 부호어 C의 전치 벡터를 나타내고, Ht는 패리티 체크 행렬 H의 전치 행렬을 나타낸다.
LDPC 부호의 응용예로서, 비특허문헌 1에는 패킷 열에 대하여 LDPC 부호화를 행한 패킷 교환 네트워크에서 발생하는 패킷 손실 대책으로 LDPC 부호를 응용하는 예가 기재되어 있다.
LDPC 부호의 에러 정정 특성은 패리티 체크 행렬에 의해 결정된다. 비특허문헌 2에서는 LDPC 부호의 에러 정정 특성의 이론 해석을 개시하고 있다. 비특허문헌 2에 따르면, LDPC 부호의 에러 정정 특성은 주로 패리티 체크 행렬의 무게 분포에 의해 결정된다. 패리티 체크 행렬은 대부분 요소 "O"으로 구성되지만, 드문드문하게 요소 "1"을 포함한다. 무게는 패리티 체크 행렬에서 각 행이 나 각 열에 포함된 요소 "1"의 개수를 나타낸다.
LDPC 부호의 발명자인 Robert G. Gallager이 제안한 패리티 체크 행렬은, 행과 열의 무게가 균일한 행렬이다. Robert G. Gallager 가 제안한 패리티 체크 행렬에 따른 LDPC 부호는, "규칙" LDPC 부호라고 지칭된다. 도 2는 규칙 LDPC 부호의 패리티 체크 행렬의 하나의 예를 도시하는 설명도이다. 도 2에 도시한 패리티 체크 행렬에서, 각 행의 무게는, 즉, 요소 "1"의 개수는, WR 개로 고정 (균일) 이며, 각 열의 무게는, 즉, 요소 "1"의 개수는, WC 개로 고정 (균일) 이다.
한편, 비특허문헌 2는 무게가 불균일해서 특정한 분포도를 갖는 패리티 체크 행렬에 따른 LDPC 부호가 규칙 LDPC 부호보다 양호한 에러 정정 특성을 가진다는 것을 나타낸다. 무게가 불균일해서 특정한 분포도를 갖는 패리티 체크 행렬에 의해 실현되는 LDPC 부호는 불규칙 LDPC 부호라고 지칭된다.
최적 무게 분포도를 갖는 패리티 체크 행렬을 생성하는 방법으로서, 특허문헌 1에는 부호화율에 근거해서 패리티 체크 행렬을 생성하는 LDPC 부호용 패리티 체크 행렬 생성 방법이 기재되어 있다. 특허문헌 1에 기재된 LDPC 부호 패리티 체크 행렬 생성 방법에서, 무게 분포의 결정에 선형 계획법을 이용한다. 그 후, 행 및 열 당의 요소 "1"의 개수를 결정한 후, 의사 난수를 사용해서 요소 "1"의 위치를 넣음으로써 패리티 체크 행렬을 생성한다.
패리티 체크 행렬의 에러 정정 특성은 행 및 열의 무게 분포만으로 결정되는 것은 아니다. 패리티 체크 행렬의 행 및 열의 최적의 무게 분포가 제공되더라도, 패리티 체크 행렬을 2부분으로된 그래프 (태너 그래프; Tanner Graph) 를 이용 해서 나타냈을 경우, 2부분으로된 그래프 상의 길이 4의 짧은 루프의 발생은 에러 정정 특성을 대폭 열화시킨다는 것이 알려져 있다.
도 3a 및 3b는 패리티 체크 행렬에 대응하는 2부분으로된 그래프의 예를 도시하는 설명도이다. 도 3a는 패리티 체크 행렬의 하나의 예를 도시하며, 도 3b는 도 3a에서 나타내는 패리티 체크 행렬을 나타내는 2부분으로된 그래프를 도시한다. 도 3b에서, 변수 노드는 부호어의 각 비트에 대응하고, 체크 노드는 패리티 체크 행렬의 각 행에 대응한다. 또한, 노드들을 잇는 에지는 패리티 체크 행렬중의 요소 "1"을 의미한다. 도 3a 및 3b에 도시한 바와 같이, 패리티 체크 행렬에서 임의의 2개의 행 사이에서 공통되는 요소 "1" 을 갖는 2개 이상의 열 (공통 열) 이 있을 경우 2부분으로된 그래프에서 길이 4의 루프가 발생한다.
LDPC 부호의 복호는 일반적으로 합곱 복호법 (sum-product decoding method) 을 사용해서 에러가 중첩 된 부호어에 기초하여 원래의 메시지를 추정함으로써 실행된다. 패리티 체크 행렬에 루프가 발생하지 않으면, 합곱 복호법은 최대 사후 확률 (MAP) 추정이다. 패리티 체크 행렬에 루프가 존재하면, 합곱 복호법은 최대 사후 확률 추정보다 열화되어 최대 사후 확률 추정에 근사할 뿐이다. 그 결과, 패리티 체크 행렬 내에 루프가 발생하는 것을 방지하기 위해 다수의 패리티 체크 행렬 생성법이 제안되었다.
또한, 패리티 체크 행렬은 에러 정정 특성을 결정할 뿐만 아니라, 부호화에서의 연산 비용 (연산 회수) 및 생성 행렬 (generator matrix) 산출을 위한 연산 비용도 결정한다. 일반적으로, 부호화를 행하기 위해서 O (n2) 회의 연산이 필 요하지만, 생성 행렬을 산출하기 위해서는 O (n3) 회의 연산이 필요하다.
생성 행렬 산출의 연산 비용 및 부호화의 연산 비용을 저감하기 위해서, 패리티 체크 행렬의 일부를 단위 행렬이나 삼각 행렬로 구성해서, 생성 행렬 산출이나 부호화 동안의 연산 회수를 O (n) 회로 제한하는 방법이 제안되었다.
예를 들면, 특허문헌 2는 사이클릭 시프트를 나타내는 정방 행렬들의 급수를 부분 행렬들로서 사용하고, 이들의 부분 행렬을 조합시켜서 패리티 체크 행렬을 구성함으로써, 짧은 루프의 발생을 방지하는 저밀도 패리티 체크 부호화 방법이 기재되어 있다. 특허문헌 2에 기재된 저밀도 패리티 체크 부호화 방법에서는, 루프의 발생을 방지함과 동시에 패리티 체크 행렬이 삼각화된다. 그리고, 생성 행렬과 패리티 체크 행렬을 등가가 되도록 함으로써, 부호화의 경우의 연산 회수를 O (n) 회로 제한할 수 있다. 또한, 특허문헌 2에 기재된 저밀도 패리티 체크 부호화 방법에서는, 패리티 체크 행렬을 규칙적인 시프트를 사용하는 것만으로 생성할 수 있으므로, 패리티 체크 행렬의 생성 비용이 낮다.
비특허문헌 1: Michael G. Luby,Michael Mitzenmacher,M. Amin Shokrollahi,Daniel A. Spielman, Efficient Erasure Correcting Codes, "IEEE Transactions on Information Theory",2001년 2월,Vol. 47,No.2,569-584 페이지.
비특허문헌 2: Thomas J. Richardson,M. Amin Shokrollahi,Design of Capacity-Approaching Irregular Low-Density Parity-Check Codes, "IEEE Transactions on Information Theory",2001년 2월,Vol. 47,No.2,619-637 페이 지.
특허문헌 1: JP-A-2003-198383 (4-10 페이지, 도 1-도 18)
특허문헌 2: JP-A-2003-115768 (6-10 페이지, 도 1-도 9)
발명의 개시
특허문헌 1에 기재된 LDPC 부호 패리티 체크 행렬 생성 방법은 패리티 체크 행렬의 생성 비용을 저감할 수 있다. 그러나, 이 방법은 패리티 체크 행렬로부터 생성 행렬을 산출하는 연산 비용 및 산출한 생성 행렬을 사용해서 부호화를 실행할 때의 연산 비용을 저감할 수 없다. 또한, 이 방법은 패리티 체크 행렬을 생성하기 위해서 선형계획법과 의사 난수를 사용한 복잡한 연산이 필수적이다.
또한, 특허문헌 2에 기재된 저밀도 패리티 체크 부호화 방법 (low-density parity-check encoding method) 에서는, 삼각화를 행하기 전의 행렬의 행 무게와 열 무게가 균일해서, 생성된 패리티 체크 행렬이 규칙 LDPC 부호의 패리티 체크 행렬에 접근한다. 따라서, 반드시 에러 정정 특성이 좋아지도록 패리티 체크 행렬이 생성될 수는 없다.
따라서, 본 발명의 목적은 저밀도 패리티 체크 부호에 있어서, 뛰어난 에러 정정 특성을 실현할 수 있고 간단한 방법으로 패리티 체크 행렬을 생성할 수 있는 패리티 체크 행렬 생성 방법, 데이터 전송 시스템, 부호화 장치, 복호 장치 및 패리티 체크 행렬 생성 프로그램을 제공하는 것이다.
본 발명의 다른 목적은 패리티 체크 행렬의 생성 동안 및 부호화 동안 연산 비용을 제한할 수 있는 패리티 체크 행렬 생성 방법, 데이터 전송 시스템, 부호화 장치, 복호 장치 및 패리티 체크 행렬 생성 프로그램을 제공하는 것이다.
본 발명에 따른 패리티 체크 행렬 생성 방법은 저밀도 패리티 체크 부호에서의 m 행 n 열의 패리티 체크 행렬 H를 생성하기 위한 패리티 체크 행렬 생성 방법이며; 패리티 체크 행렬 H는 m행 k열 (여기서, k=n-m) 의 부분 행렬 H1과 m행 m열의 부분 행렬 H2로 구성되고; 부분 행렬 H1의 각 행의 행렬 요소 "1"의 위치는, 부분 행렬 H1에 포함된 임의의 2개의 행을 선택할 때 2개의 행의 주기가 서로소가 되거나, 또는 2개의 행의 주기가 동일할 때 위상이 상이한 조건을 충족시키도록 결정된다.
또한, 패리티 체크 행렬 생성 방법은 주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소) 가 결정되고; 주기 리스트 P의 요소 p(j)의 각각에 대해 주기가 p(j) 이며 위상이 상이한 최대 p(j) 개의 부분 행렬 H1의 행을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P를 입력만 하면 부분 행렬 H1을 용이하게 생성할 수 있다.
패리티 체크 행렬 생성 방법은 선두 요소 p(1) 에 근거해서 요소 p(2)로부터 요소 p(pL) 까지의 요소가 생성되도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P의 선두 요소를 입력만 하면 주기 리스트 P가 자동으로 결정되어 부분 행렬 H1을 용이하게 생성할 수 있다.
패리티 체크 행렬 생성 방법은 요소 p(j)가 선두 요소 p(1)로부터 요소 p(j-1)까지의 모든 요소와 서로소가 되는 조건을 충족시키는 값들 중에서 최소값이 되도록 주기 리스트 P의 요소 p(j) 를 생성하도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P의 선두 요소를 입력만 하면 주기 리스트 P가 자동으로 결정되어 패리티 체크 행렬을 용이하게 생성할 수 있다.
패리티 체크 행렬 생성 방법은 요소 p(j)가 1개 앞의 요소 p(j-1) 보다 큰 소수가 되는 조건을 각각 충족시키는 값들 중 최소값이 되도록 주기 리스트 P의 요소 p(j)를 생성하도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P의 선두 요소를 입력만 하면 주기 리스트 P가 자동으로 결정되어 패리티 체크 행렬을 용이하게 생성할 수 있다.
패리티 체크 행렬 생성 방법은 부분 행렬 H2로서 단위 행렬을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 패리티 체크 행렬이 단위 행렬을 포함하지 않을 경우와 비교해서 생성 행렬의 생성 비용 및 부호화 비용을 저감할 수 있다.
패리티 체크 행렬 생성 방법은 부분 행렬 H2로서 부분 행렬 H2에 포함되는 임의의 2개의 행을 선택한 경우, 2개의 행의 주기가 서로소이거나, 또는 2개의 행의 주기가 동일할 때 위상이 상이한 조건을 충족시키도록 하삼각 내의 행렬 요소 "1"의 위치를 결정함으로써, 하삼각 행렬을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 패리티 체크 행렬이 하삼각 행렬을 포함하지 않을 경우와 비교해서 생성 행렬의 생성 비용 및 부호화 비용을 저감할 수 있다.
또한, 패리티 체크 행렬 생성 방법은 주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소)가 결정되고, 주기 리스트 P의 요소 p(j)의 각각에 대해 주기가 p(j) 이고 위상이 상이한 최대 p(j)개의 부분 행렬 H2의 행이 생성되도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P를 입 력만 하면 부분 행렬 H2를 용이하게 생성할 수 있다.
또한, 패리티 체크 행렬 생성 방법은 선두 요소 p(1)에 근거하여 요소 p(2)로부터 요소 p(PL)까지의 요소를 생성하도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P의 선두 요소를 입력만 하면 주기 리스트 P가 자동으로 결정되어 부분 행렬 H2를 용이하게 생성할 수 있다.
또한, 패리티 체크 행렬 생성 방법은 선두 요소 p(1)으로부터 요소 p(j-1)까지의 모든 요소와 서로소라는 조건을 충족시키는 값들 중 최소값이 되도록 주기 리스트 P의 요소 p(j)을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P의 선두를 입력만 하면 주기 리스트 P가 자동으로 결정되어 부분 행렬 H2를 용이하게 생성할 수 있다.
또한, 패리티 체크 행렬 생성 방법은 요소 p(j)가 1개 앞의 요소 p(j-1)보다 큰 소수라는 조건을 각각 충족시키는 값들 중 최소의 값이 되도록 주기 리스트 P의 요소 p(j) 를 생성하도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P의 선두요소를 입력만 하면 주기 리스트 P가 자동으로 결정되어 용이하게 부분 행렬 H2를 생성할 수 있다.
또한, 패리티 체크 행렬 생성 방법은 저밀도 패리티 체크 부호에서의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 방법일 수도 있고; 주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소)를 사용해서, N(j)는 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계로서 정의하고, 또한 N(O)은 "0"이라고 정의했을 경우, N(j-1)+l≤r≤N(j)라고 하면, 정 수 i 및 소정값 F(j)를 사용해서 l≤c≤n-m 및 c=p(j)ㆍi+r+F(j)의 조건을 충족시키는 열 c 에 대응하는 행렬 요소를 "1"로 설정하고; c=n-m+r의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; 어느 쪽의 조건도 충족시키지 않는 행렬 요소를 "0"으로 설정함으로써, 패리티 체크 행렬의 행 r을 생성하도록 구성될 수도 있다.
이 구성에 따르면, 부분 행렬 각각에 대해 생성하는 대신, 임의의 2행을 선택했을 경우 2개의 행이 서로소가 되는 주기를 가지며, 또는 주기가 동일할 경우 서로 다른 위상을 갖는 조건을 충족시키도록, 각각의 행렬에 대해 m행 n열의 패리티 체크 행렬을 일괄해서 생성할 수 있다. 또한, 부분 행렬 각각에 대해 생성하는 대신 단위 행렬을 포함하도록 패리티 체크 행렬을 일괄해서 생성할 수도 있다.
그 결과, 저밀도 패리티 체크 부호에서, 뛰어난 에러 정정 특성을 실현할 수 있고, 간단한 방법으로 패리티 체크 행렬을 생성할 수 있다. 또한, 패리티 체크 행렬 H가 단위 행렬을 포함하지 않을 경우와 비교해서 생성 행렬의 생성 비용 및 부호화 비용을 저감할 수 있다.
또한, 패리티 체크 행렬 생성 방법은 F(j)=-N(j-1)이 되도록 구성될 수도 있다.
또한, 패리티 체크 행렬 생성 방법은 F(j)=n-m이 되도록 구성될 수도 있다.
또한, 패리티 체크 행렬 생성 방법은 저밀도 패리티 체크 부호에서의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 방법일 수도 있고; 주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소) 를 사용하고, N(j)을 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계로 정의하고, 또한, N(O)을 0이라고 정의했을 경우, N(j-1)+1≤r≤N(j)이면, 정수 i를 사용해서 1≤c≤n-m+r 및 c=p(j)ㆍi+n-m+r의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; 이들 조건을 충족시키지 않는 행렬 요소를 "0"으로 설정함으로써 패리티 체크 행렬의 행 r을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 부분 행렬 각각에 대해 생성하지 않고, 임의의 2행을 선택했을 경우 2개의 행이 서로소가 되는 주기를 갖거나, 또는 주기가 동일할 경우에는 상이한 위상을 갖는 조건을 충족시키도록, m행 n열의 패리티 체크 행렬을 일괄해서 생성할 수 있다. 또한, 부분 행렬 각각에 대해 생성하지 않고, 하삼각 행렬을 포함하도록 패리티 체크 행렬을 일괄해서 생성할 수 있다. 따라서, 저밀도 패리티 체크 부호에서, 뛰어난 에러 정정 특성을 실현할 수 있고, 간단한 방법으로 패리티 체크 행렬을 생성할 수 있다. 또한, 패리티 체크 행렬이 하삼각 행렬을 포함하지 않을 경우와 비교해서 생성 행렬의 생성 비용 및 부호화 비용을 저감할 수 있다.
또한, 패리티 체크 행렬 생성 방법은 저밀도 패리티 체크 부호에 있어서의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 방법일 수도 있으며; 주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소) 및 주기 리스트 Q={q(1),q(2),…,q(QL)}(여기서, q(1) 내지 q(QL)은 서로소)를 사용하고; N(j)을 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계라고 정의하고, 또한, N(O)을 "0"이라고 정의하는 경우, N(j-1)+1≤r≤N(j)라면, 정수 i 및 소정값 F(j) 를 사용해서 1≤c≤n-m 및 c=p(j)ㆍi+r+F(j)의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; M(j)을 주기 리스트 Q의 요소 q(1)로부터 요소q(j)까지의 값의 합계라고 정의하고, 또한, M(O)을 "0"이라고 정의하는 경우, M(j-1)+1≤r≤M(j)라면, 정수 i를 사용해서 n-m+1≤c≤n-m+r 및 c=q(j)ㆍi+n-m+r의 조건을 충족하는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; 이들 조건 중 어느 것도 충족하지 않는 행렬 요소를 "0"이라고 설정함으로써 패리티 체크 행렬의 행 r을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 2 종류의 주기 리스트에 근거하여, 임의의 2행을 선택했을 경우, 2개의 행이 서로소가 되는 주기를 가지거나, 또는 주기가 동일할 경우에는 서로 다른 위상을 갖도록 하는 조건을 충족시키도록, m행 n열의 패리티 체크 행렬을 일괄해서 생성할 수 있다. 또한, 하삼각 행렬을 포함하도록 패리티 체크 행렬을 일괄해서 생성할 수 있다.
또한, 패리티 체크 행렬 생성 방법은 F(j)=-N(j-1)이 되도록 구성될 수 있다.
또한, 패리티 체크 행렬 생성 방법은 F(j)=n-m이 되도록 구성될 수도 있다.
또한, 패리티 체크 행렬 생성 방법은 선두 요소 p(1)에 근거하여 요소 p(2)로부터 요소 p(PL) 까지를 생성함으로써, 주기 리스트 P를 결정하도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P의 선두요소를 입력만 하면, 주기 리스트 P가 자동으로 결정되어 용이하게 패리티 체크 행렬을 생성할 수 있다.
또한, 패리티 체크 행렬 생성 방법은 요소 p(j)가 선두 요소 p(1)로부터 요 소 p(j-1)까지의 모든 요소와 서로소라는 조건을 충족시키는 값들 중 최소값이 되도록 주기 리스트 P의 요소 p(j)를 생성하도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P의 선두요소를 입력만 하면, 주기 리스트 P가 자동으로 결정되어 용이하게 패리티 체크 행렬을 생성할 수 있다.
또한, 패리티 체크 행렬 생성 방법은 요소 p(j)가 1개 앞의 요소 p(j-1)보다 큰 소수라는 조건을 충족시키는 값들 중 최소의 값이 되도록 주기 리스트 P의 요소 p(j)를 생성하도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P의 선두요소를 입력만하면, 주기 리스트 P가 자동으로 결정되어 용이하게 패리티 체크 행렬을 생성할 수 있다.
본 발명에 따른 데이터 전송 시스템은 데이터를 부호화하는 부호화 장치, 부호화된 데이터를 복호하는 복호 장치를 포함하는 데이터 전송 시스템으로서; 부호화 장치는 소정의 파라미터에 근거하여, 패리티 체크 행렬 생성 방법을 이용해서 패리티 체크 행렬을 생성하고, 생성한 패리티 체크 행렬을 이용해서 데이터를 저밀도 패리티 부호화해서 부호어로 변환하고, 변환한 부호어를 전송 라인에 의해 복호 장치에 송신하며; 복호 장치는 부호화 장치가 사용하는 파라미터와 동일한 파라미터에 근거하여, 패리티 체크 행렬 생성 방법을 이용해서 패리티 체크 행렬을 생성하고, 생성한 패리티 체크 행렬을 사용해서 부호화 장치로부터 수신한 부호어를 복호하여 부호화 이전의 데이터로 변환한다.
또한, 부호화 장치는 파라미터로서의 소정의 주기 리스트 P에 근거하여 패리티 체크 행렬을 생성하도록 구성될 수도 있으며, 복호 장치는 부호화 장치가 사용 하는 주기 리스트 P와 동일한 주기 리스트 P에 근거해서 패리티 체크 행렬을 생성하도록 구성될 수 있다. 이 구성에 따르면, 주기 리스트 P만 결정하면, 용이하게 패리티 체크 행렬을 생성할 수 있다.
또한, 부호화 장치는 파라미터로서의 주기 리스트 P의 선두 요소 p(1)에 근거해서 요소 p(2)로부터 요소 p(PL)까지의 요소를 생성함으로써, 주기 리스트 P를 결정하고, 결정한 주기 리스트에 근거해서 패리티 체크 행렬을 생성하도록 구성될 수도 있으며, 복호 장치는 부호화 장치가 사용하는 요소 p(1)과 동일한 요소 p(1)에 근거해서 요소 p(2)로부터 요소 p(PL)까지의 요소를 생성함으로써, 주기 리스트 P를 결정하고, 결정한 주기 리스트에 근거해서 패리티 체크 행렬을 생성하도록 구성될 수 있다. 이 구성에 따르면, 주기 리스트 P의 선두요소만 결정하면, 주기 리스트 P가 자동으로 결정되어 용이하게 패리티 체크 행렬을 생성할 수 있다.
또한, 부호화 장치는 요소 p(j)가 선두 요소 p(1)로부터 요소 p(j-1)까지의 모든 요소와 서로소라는 조건을 충족시키는 값들 중 최소값이 되도록 주기 리스트 P의 요소 p(j)를 생성하도록 구성될 수도 있고; 복호 장치는 요소 p(j)가 선두 요소 p(1)로부터 요소 p(j-1) 까지의 모든 요소와 서로소라는 조건을 충족시키는 값들 중 최소값이 되도록 주기 리스트 P의 요소 p(j)를 생성하도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P의 선두요소만 결정하면, 주기 리스트 P가 자동으로 결정되어 용이하게 패리티 체크 행렬을 생성할 수 있다.
또한, 부호화 장치는 요소 p(j)가 1개 앞의 요소 p(j-1)보다 큰 소수라는 조건을 충족시키는 값들 중 최소의 값이 되도록 주기 리스트 P의 요소 p(j)를 생성하 도록 구성될 수도 있고; 복호 장치는 요소 p(j)가 1개 앞의 요소 p(j-1) 보다 큰 소수라는 조건을 충족시키는 값들 중 최소의 값이 되도록 주기 리스트 P의 요소 p(j)를 생성하도록 구성될 수도 있다. 이 구성에 따르면, 주기 리스트 P의 선두요소만 결정하면, 주기 리스트 P가 자동으로 결정되어 용이하게 패리티 체크 행렬을 생성할 수 있다.
또한, 부호화 장치는 전송 라인에 의해 파라미터를 복호 장치에 송신하고, 복호 장치는 부호화 장치로부터 수신한 파라미터를 사용함으로써 부호화 장치가 사용하는 파라미터와 동일한 파라미터에 근거해서 패리티 체크 행렬을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 부호화 장치가 사용하는 주기 리스트와 복호 장치가 사용하는 주기 리스트의 동일성을 용이하게 유지할 수 있다.
또한, 복호 장치는 전송 라인에 의해 파라미터를 부호화 장치에 송신하도록 구성될 수도 있고, 부호화 장치는 복호 장치로부터 수신한 파라미터를 사용해서 복호 장치가 사용하는 파라미터와 동일한 파라미터에 근거해서 패리티 체크 행렬을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 부호화 장치가 사용하는 주기 리스트와 복호 장치가 사용하는 주기 리스트의 동일성을 용이하게 유지할 수 있다.
또한, 부호화 장치는 소정 시간 간격 각각에 대해 전송 라인에 의해 파라미터를 복호 장치에 송신하고, 복호 장치는 부호화 장치로부터 수신한 파라미터를 사용해서, 부호화 장치가 사용하는 파라미터와 동일한 파라미터에 근거해서 패리티 체크 행렬을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 부호화 장치가 사용하는 주기 리스트와 복호 장치가 사용하는 주기 리스트의 동일성을 용이하게 유지할 수 있다.
또한, 복호 장치는 소정 시간 간격 각각에 대해 전송 라인에 의해 파라미터를 부호화 장치에 송신하고, 부호화 장치는 복호 장치로부터 수신한 파라미터를 사용해서, 복호 장치가 사용하는 파라미터와 동일한 파라미터에 근거해서 패리티 체크 행렬을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 부호화 장치가 사용하는 주기 리스트와 복호 장치가 사용하는 주기 리스트의 동일성을 용이하게 유지할 수 있다.
또한, 부호화 장치는 파라미터의 내용이 업데이트되었을 경우, 파라미터를 전송 라인에 의해 복호 장치에 송신하고, 복호 장치는 부호화 장치로부터 수신한 파라미터를 사용해서 부호화 장치가 사용하는 파라미터와 동일한 파라미터에 근거해서 패리티 체크 행렬을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 부호화 장치가 사용하는 주기 리스트와 복호 장치가 사용하는 주기 리스트의 동일성을 실시간으로 유지할 수 있다.
또한, 복호 장치는 파라미터의 내용이 업데이트되었을 경우, 파라미터를 전송 라인에 의해 부호화 장치에 송신하고, 부호화 장치는 복호 장치로부터 수신한 파라미터를 사용해서 복호 장치가 사용하는 파라미터와 동일한 파라미터에 근거해서 패리티 체크 행렬을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 부호화 장치가 사용하는 주기 리스트와 복호 장치가 사용하는 주기 리스트의 동일성을 실시간으로 유지할 수 있다.
본 발명에 의한 부호화 장치는 소정의 파라미터에 근거하여, 패리티 체크 행렬 생성 방법을 이용해서 패리티 체크 행렬을 생성하고, 생성한 패리티 체크 행렬을 사용해서 데이터를 저밀도 패리티 부호화해서 부호어로 변환하고, 변환한 부호어를 전송 라인에 의해 복호 장치에 송신한다.
본 발명에 의한 복호 장치는 부호화 장치로부터 전송 라인에 의해 부호어를 수신하고, 소정의 파라미터에 근거하여, 패리티 체크 행렬 생성 방법을 이용해서 패리티 체크 행렬을 생성하고, 수신한 부호어를 생성한 패리티 체크 행렬을 사용하여 복호해서 부호화 이전의 데이터로 변환한다.
본 발명에 의한 패리티 체크 행렬 생성 프로그램은, 저밀도 패리티 체크 부호의 m행 n열의 패리티 체크 행렬 H를 생성하기 위한 패리티 체크 행렬 생성프로그램이며; 패리티 체크 행렬 H를 m행 k열의 부분 행렬 H1과 m행 m열의 부분 행렬 H2로 구성하고 (여기서, m=n-k); 부분 행렬 H1에 포함되는 임의의 2개의 행을 선택한 경우 2개의 행의 주기가 서로소가 되거나, 또는 2개의 행의 주기가 동일하고 위상이 상이하다는 조건을 충족시키도록, 부분 행렬 H1의 각 행의 행렬 요소 "1"의 위치를 결정하는 프로세스를 실행하도록 한다.
또한, 패리티 체크 행렬 생성 프로그램은 저밀도 패리티 체크 부호에서의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 프로그램일 수도 있고; 주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소)를 사용해서, N(j)는 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계라고 정의하고, 또한 N(O)은 "0"이라고 정의했을 경우, N(j-1)+l≤r≤N(j)라고 하면, 정수 i 및 소정값 F(j)를 사용해서 l≤c≤n-m 및 c=p(j)ㆍi+r+F(j)의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; 어느 쪽의 조건도 충족시키지 않는 행렬 요소를 "0"이라고 정의함으로써, 패리티 체크 행렬의 행 r을 생성하도록 하는 프로세스를 컴퓨터가 실행하도록 구성될 수도 있다. 이 구성에 따르면, 부분 행렬 각각에 대해 생성하지 않고, 임의의 2행을 선택한 경우, 2개의 행이 서로소가 되는 주기를 가지거나, 또는 주기가 동일할 경우에는 서로 다른 위상을 가지도록 하는 조건을 충족시키도록, m행 n열의 패리티 체크 행렬을 일괄해서 생성할 수 있다. 또한, 부분 행렬 각각에 대해 생성하지 않고, 단위 행렬을 포함하도록 패리티 체크 행렬을 일괄해서 생성할 수 있다. 따라서, 저밀도 패리티 체크 부호에 있어서, 뛰어난 에러 정정 특성을 실현할 수 있고, 간단한 방법으로 패리티 체크 행렬을 생성할 수 있다. 또한, 패리티 체크 행렬 H가 단위 행렬을 포함하지 않을 경우와 비교해서 생성 행렬의 생성 비용 및 부호화 비용을 저감할 수 있다.
또한, 패리티 체크 행렬 생성 프로그램은 저밀도 패리티 체크 부호에서의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 프로그램일 수도 있고; 주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소) 를 사용하고, N(j)을 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계로 정의하고, 또한, N(O)을 0이라고 정의했을 경우, N(j-1)+1≤r≤N(j)이면, 정수 i를 사용해서 1≤c≤n-m+r 및 c=p(j)ㆍi+n-m+r의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; 이들 조건을 충족시키지 않는 행렬 요소를 "0"이라고 함으로써 패리티 체크 행렬의 행 r을 생성하도록 구성될 수도 있다.
이 구성에 따르면, 부분 행렬 각각에 대해 생성하지 않고, 임의의 2행을 선택했을 경우 2개의 행이 서로소가 되는 주기를 갖거나, 또는 주기가 동일할 경우에는 상이한 위상을 갖는 조건을 충족시키도록, m행 n열의 패리티 체크 행렬을 일괄해서 생성할 수 있다. 또한, 부분 행렬 각각에 대해 생성하지 않고, 하삼각 행렬을 포함하도록 패리티 체크 행렬을 일괄해서 생성할 수 있다. 따라서, 저밀도 패리티 체크 부호에서, 뛰어난 에러 정정 특성을 실현할 수 있고, 간단한 방법으로 패리티 체크 행렬을 생성할 수 있다.
또한, 패리티 체크 행렬이 하삼각 행렬을 포함하지 않을 경우와 비교해서 생성 행렬의 생성 비용 및 부호화 비용을 저감할 수 있다.
또한, 패리티 체크 행렬 생성 프로그램은 저밀도 패리티 체크 부호에 있어서의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 프로그램일 수도 있으며; 주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소) 및 주기 리스트 Q={q(l),q(2),…,q(QL)}(여기서, q(1) 내지 q(QL)은 서로소)를 사용하고; N(j)을 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계라고 정의하고, 또한, N(O)을 "0"이라고 정의하는 경우, N(j-1)+1≤r≤N(j)라면, 정수 i 및 소정값 F(j)를 사용해서 1≤c≤n-m 및 c=p(j)ㆍi+r+F(j)의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; M(j)을 주기 리스트 Q의 요소 q(1)로부터 요소 q(j)까지의 값의 합계라고 정의하고, 또한, M(O)을 "0"이라고 정의하는 경우, M(j-1)+1≤r≤M(j)라면, 정수 i를 사용해서 n-m+1≤c≤n-m+r 및 c=q(j)ㆍi+n-m+r의 조건을 충족하는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; 이들 조건 중 어느 것도 충족하지 않는 행렬 요소를 "0"이라고 설정함으로써 패리티 체크 행렬의 행 r을 생성하도록 구성될 수도 있다. 이 구성에 따르면, 2 종류의 주기 리스트에 근거하여, 임의의 2행을 선택했을 경우, 2개의 행이 서로소가 되는 주기를 가지거나, 또는 주기가 동일할 경우에는 서로 다른 위상을 갖도록 하는 조건을 충족시키도록, m행 n열의 패리티 체크 행렬을 일괄해서 생성할 수 있다. 또한, 하삼각 행렬을 포함하도록 패리티 체크 행렬을 일괄해서 생성할 수 있다.
본 발명에 따르면, 패리티 체크 행렬 H의 부분 행렬 H1은, 임의의 2행을 선택했을 경우 2개의 행이 서로소가 되는 주기를 갖거나, 또는 주기가 동일할 경우에는 서로 상이한 위상을 갖는 조건을 충족시키도록 생성된다. 2개의 행이 서로소가 되는 주기를 가지도록 했을 경우, 2개의 행에 공통 열이 존재하는 것을 방지할 수 있다. 또한, 주기가 동일하지만 서로 다른 위상을 가지도록 했을 경우에는, 2개의 행에 공통 열이 최대 1개밖에 존재하지 않도록 제한할 수 있다. 따라서, 2부분으로된 그래프 상에서의 짧은 루프에 의해 유발되는 에러 정정의 성능 열화를 방지할 수 있다. 또한, 서로소인 복수의 주기를 사용해서 행을 생성하므로, 행무게의 균일성에 의한 에러 정정의 성능 열화를 방지할 수 있다. 마지막으로, 주기와 위상이 결정되면, 부분 행렬 H1의 생성은 간소화될 수 있다. 따라서, 저밀도 패리티 체크 부호에서, 뛰어난 에러 정정 특성을 실현할 수 있고, 간단한 방법으로 패리티 체크 행렬을 생성할 수 있다.
도면의 간단한 설명
도 1은 데이터 전송 시스템의 구성의 예를 도시하는 블록도이다.
도 2는 규칙 LDPC부호의 패리티 체크 행렬의 예를 도시하는 설명도이다.
도 3a는 패리티 체크 행렬의 예를 도시하는 도면이다.
도 3b는 패리티 체크 행렬에 대응하는 2부분으로된 그래프의 예를 도시하는 설명도이다.
도 4는 본 발명에 의한 패리티 체크 행렬 작성 방법을 적용한 전송 라인 인코더의 구성의 예를 도시하는 블록도이다.
도 5는 프로세서 (50) 가 부분 행렬 H1을 생성하는 프로세스 진행의 예를 도시하는 플로차트이다.
도 6은 프로세서 (50) 가 생성하는 패리티 체크 행렬 H의 예를 도시하는 설명도이다.
도 7은 프로세서 (50) 가 부분 행렬 H2를 생성하는 프로세스 진행의 예를 도시하는 플로차트이다.
도 8은 프로세서 (50) 가 생성하는 패리티 체크 행렬 H의 다른 예를 도시하는 설명도이다.
도 9는 프로세서 (50) 가 패리티 체크 행렬 H를 생성하는 프로세스 진행의 예를 도시하는 플로차트이다.
도 10은 프로세서 (50) 가 생성하는 패리티 체크 행렬 H의 또 다른 예를 도시하는 설명도이다.
참조 부호의 설명
50 프로세서
51 메모리
52 입출력부
발명을 실시하기 위한 최선의 형태
제 1 실시형태
이하, 본 발명의 제 1 실시형태를 첨부한 도면을 참조해서 설명한다. 도 4는 본 발명에 의한 패리티 체크 행렬 생성 방법을 적용한 전송 라인 인코더의 구성의 예를 도시하는 블록도이다. 도 4에 도시한 바와 같이, 전송 라인 인코더는 프로세서 (50), 메모리 (51) 및 입출력부 (52) 를 포함한다.
도 4에서, 프로세서 (50) 는 LDPC부호의 패리티 체크 행렬을 생성하고, 생성한 패리티 체크 행렬을 메모리 (51) 에 기록한다. 또한, 프로세서 (50) 는 메모리 (51) 로부터 데이터 스트링 (메시지) 을 읽어내고, 읽어낸 데이터 스트링을 LDPC 부호화해서 부호어를 생성한다. 그 후, 프로세서 (50) 는 생성한 부호어를 입출력부 (52) 에 출력한다.
메모리 (51) 는, 예를 들면, 패리티 체크 행렬 및 데이터 스트링을 기억한다. 입출력부 (52) 는 프로세서 (50) 로부터의 부호어를 외부에 출력한다. 예를 들면, 입출력부 (52) 는 전송 라인에 의해 부호어를 전송 라인 디코더에 송신한다. 입출력부 (52) 는 데이터 스트링이 외부에서 입력되었을 경우에는, 입력된 데이터 스트링을 메모리 (51) 에 기록한다.
또한, 전송 라인 인코더는 프로세서 (50) 에 패리티 체크 행렬의 생성 프로 세스나 데이터 스트링의 부호화 프로세스를 실행시키기 위한 각종 프로그램을 기억하는 메모리 유닛 (미도시) 을 구비한다. 예를 들면, 전송 라인 인코더의 메모리 유닛은 m행 k열의 부분 행렬 H1과 m행 m열의 부분 행렬 H2로부터 패리티 체크 행렬 H를 구성하는 프로세스와 (m=n-k), 부분 행렬 H1에 포함되는 임의의 2개의 행을 선택한 경우, 2개의 행의 주기가 서로소가 되거나, 또는 2개의 행의 주기가 동일하고 위상이 다른 조건을 충족시키도록, 부분 행렬 H1의 각 행의 행렬 요소 "1"의 위치를 결정하는 프로세스를 컴퓨터가 실행시키기 위한 패리티 체크 행렬 생성 프로그램을 저장한다.
본 실시형태에서는, 메시지 길이가 k이며 부호어 길이가 n일 경우에, 프로세서 (50) 가 LDPC 부호의 부호화에서 사용하는 m행 n열의 패리티 체크 행렬 H를 생성할 경우를 설명한다. 여기에서, m=n-k이다. 본 실시형태에 있어서, 프로세서 (50) 는 패리티 체크 행렬 H를 좌측의 m행 k열의 부분 행렬 H1과 오른쪽의 m행 m열의 부분 행렬 H2로 구성한다.
본 실시형태에서는, 프로세서 (50) 는 부분 행렬 H2를 단위 행렬로서 생성한다. 또한, 프로세서 (50) 는 부분 행렬 H1을 소정의 조건을 따라서 행렬 요소 "1" 또는 "0"을 갖는 행렬로서 생성한다. 그 후, 프로세서 (50) 는 부분 행렬 H1과 부분 행렬 H2를 결합함으로써 패리티 체크 행렬 H를 생성한다. 이하, 부분 행렬 H1을 생성하는 프로세스를 설명한다.
프로세서 (50) 는 각 행에서, 소정의 주기와 소정의 위상에 의해 결정되는 위치의 행렬 요소가 "1"이 되도록 하고, 다른 행렬 요소가 "0"이 되도록 부분 행렬 H1을 생성한다. 여기에서, "주기"는 행 내에 포함된 요소 "1"과 다른 요소 "1" 사이의 거리를 나타낸다. 본 실시형태에서는, 행 내에 요소 "1"이 주기마다 배치된다. 또한, "위상"은 행 내에 있는 요소 "1" 중 가장 좌측에 있는 요소의 열의 위치다. 위상은 1로부터 주기까지의 값을 가정한다. 주기와 위상이 결정되면, 행 내의 요소 "1"의 위치 및 요소 "1"의 개수가 결정된다.
본 실시형태에서, 프로세서 (50) 는 부분 행렬 H1에 포함되는 임의의 2행을 선택한 경우에 2개의 행이 서로소가 되는 주기를 갖거나, 또는 주기가 동일할 경우에는 서로 다른 위상을 갖는 조건을 충족시키도록 부분 행렬 H1을 생성한다. 부분 행렬 H1의 각 행을 순서대로 생성할 때에, 프로세서 (50) 는 그때까지 생성한 모든 행의 주기 및 위상에 대하여, 2개의 조건 중 하나를 충족시키도록 다음 행의 생성으로 사용하는 주기 및 위상을 선택한다.
도 5는 프로세서 (50) 가 부분 행렬 H1을 생성하는 프로세스 진행의 예를 도시하는 플로차트이다. 프로세서 (50) 는 주기 리스트 P={p1,p2,…,pj}를 설정한다 (스텝 S110). 예를 들면, 사용자에 의해 주기 리스트 P의 각 요소가 입력되면, 프로세서 (50) 는 입력된 각 요소를 포함하는 주기 리스트 P를 설정한다. 또는, 예를 들면, 상위의 애플리케이션을 따라서 각 요소가 입력되면, 프로세서 (50) 는 입력된 각 요소를 포함하는 주기 리스트 P를 설정한다. 스텝 S110에서, 주기 리스트 P의 각 요소는 서로소가 되고, 주기 리스트 P의 요소의 값의 합계가 m이상이 되도록 설정된다.
프로세서 (50) 는 부분 행렬 H1의 각 행의 생성 시 사용하는 각 변수를 초기 화한다 (스텝 S120). 본 실시형태에서는, 주기를 나타내는 주기변수 a, 변수 b, 및 부분 행렬 H1의 각 행 중 생성 대상인 행을 나타내는 생성대상 행 번호 r이 변수로서 이용될 수 있다. 한편, 본 실시형태에서는 변수 b의 값이 각 행의 요소 "1" 중 가장 좌측에 있는 요소의 위치와 일치한다.
따라서, 본 실시형태에서는, 변수 b가 위상을 나타내는 위상변수로서의 역할을 한다.
스텝 S120 에서, 프로세서 (50) 는 주기 리스트 P의 선두요소 p1을 주기변수 a의 초기값으로 설정하고, 변수 b의 초기값을 "1"로 설정한다. 또한, 프로세서 (50) 는 생성대상 행 번호 r의 초기값을 "1"로 설정한다.
프로세서 (50) 는 생성대상 행 번호 r에 대응하는 행을 생성한다 (스텝 S121). 스텝 S121에서, 프로세서 (50) 는 생성식 c=aㆍi+b를 이용해서 부분 행렬 H1의 행 r을 생성한다. 프로세서 (50) 는 생성식 c=aㆍi+b에 의해 나타내는 열 c에 위치하는 행렬 요소를 "1"로 설정하고, 그 이외의 행렬 요소를 "0"으로 설정해서 행 r을 생성한다. 여기서, "i"는 정수이다.
프로세서 (50) 는 생성한 행 r이 부분 행렬 H1의 최종행인지 아닌지를 판단한다 (스텝 S122). 생성한 행 r이 최종행이라고 판단했을 경우, 프로세서 (50) 는 부분 행렬 H1의 생성 프로세스를 종료한다. 생성한 행 r이 최종행이 아니라고 판단했을 경우, 프로세서 (50) 는 변수 b 및 생성대상 행 번호 r을 업데이트한다 (스텝 S123). 스텝 S123에서, 프로세서 (50) 는 생성대상 행 번호 r에 1을 가산한다. 또한, 프로세서 (50) 는 변수 b에 1을 가산한다.
변수 b를 업데이트하면, 프로세서 (50) 는 변수 b가 주기변수 a의 값 이하일 것인지 아닌지를 판단한다 (스텝 S124). "b"가 "a" 이하라고 판단했을 경우, 프로세서 (50) 는 스텝 S121의 프로세스로 되돌아오고, 스텝 S121로부터 프로세스를 반복해서 실행한다.
b가 a이하가 아니라고 판단했을 경우, 프로세서 (50) 는 주기변수 a를 업데이트한다 (스텝 S125). 스텝 S125에서, 프로세서 (50) 는 주기 리스트 P로부터 다음 요소의 값을 읽어서, 이값을 주기변수 a의 값으로 설정한다. 또한, 프로세서 (50) 는 변수 b의 값을 1로 설정한다. 그 후, 프로세서 (50) 는 스텝 S121의 프로세스로 돌아가고, 스텝 S121로부터 프로세스를 반복해서 실행한다.
도 6은 프로세서 (50) 가 생성하는 패리티 체크 행렬 H의 예를 도시하는 설명도이다. 도 6에 나타낸 패리티 체크 행렬 H는 메시지 길이가 k=12로 설정되고, 부호어 길이가 n=20으로 설정되어 생성된 행렬이다. 따라서, 도 6에 나타낸 바와 같이, 패리티 체크 행렬 H의 행수는, m=n-k=8이다. 또한, 도 6에 나타낸 바와 같이, 프로세서 (50) 는 패리티 체크 행렬 H 중 부분 행렬 H2를 단위 행렬로서 생성한다. 패리티 체크 행렬 H 내의 부분 행렬 H1은, 스텝 l10에서 주기 리스트 P={3, 4, 5}로 설정되고, 도 2에 나타낸 프로세스에 따라서 생성된다.
예를 들면, 스텝 S120에서, 프로세서 (50) 는 주기 리스트 P의 선두요소 3을 주기변수 a의 초기값으로 설정하고, 변수 b 및 생성대상 행 번호 r의 초기값을 각각 "1"로 설정한다. 스텝 S121에서, 프로세서 (50) 는 이것들의 변수 a 및 b를 사용해서, i=0, 1, 2, 3의 경우에 각각 c=l, 4, 7, 10이 되도록 한다. 그리고, 도 6에 나타낸 바와 같이, 프로세서 (50) 는 부분 행렬 H1의 제 1행의 요소 중, 1, 4, 7, 10번째 열의 요소를 "1"로 설정하고, 그 이외의 요소를 "0"으로 설정해서 행을 생성한다.
다음에, 스텝 S123에서, 변수 b 및 생성 프로세스 대상 행 번호 r을 각각 "2"로 업데이트 하면, 프로세서 (50) 는 주기변수 a=3 및 변수 b=2를 사용해서, i=O, 1, 2, 3의 경우에 각각 c=2, 5, 8, 11이 되도록 한다. 그리고, 도 6에 도시한 바와 같이, 프로세서 (50) 는 부분 행렬 H1의 2째 행의 요소 중, 2, 5, 8, 11째 열의 요소를 "1"로 설정하고, 그 이외의 요소를 "0"으로 설정해서 행을 생성한다.
부분 행렬 H1의 제 3행을 생성해 변수 b를 "4"로 업데이트할 경우, 프로세서 (50) 는 변수 b=4가 주기변수 a=3 이하인지 아닌지를 판단하고, 스텝 S124에서 주기변수 a를 "4"로 업데이트한다. 그 후, 프로세서 (50) 는 도 6에 나타낸 바와 같이, 주기변수 a=4을 사용해서 부분 행렬 H1의 4째 행으로부터 7째 행까지 생성한다.
부분 행렬 H1의 8째 행을 생성하면, 프로세서 (50) 는 생성한 행 r=8이 최종행인지 아닌지를 판단하고 프로세스를 종료한다. 상술한 순서에 의해, 부분 행렬 H1이 생성된다. 그 후, 프로세서 (50) 는 부분 행렬 H1과 부분 행렬 H2를 결합하고, 도 6에 나타낸 패리티 체크 행렬 H을 생성한다.
도 6에 나타낸 바와 같이, 본 실시예에서는 부분 행렬 H1에서 주기 3 및 주기 4에 대해서는 모든 위상 (1로부터 주기의 값까지의 위상) 에 대응하는 행이 존 재하지만, 주기 5에 대해서는 위상 1에 대응하는 행만이 존재한다.
도 6에 나타낸 바와 같이, 부분 행렬 H1의 1째 행부터 3째 행까지의 임의의 행과, 4째 행으로부터 7째 행까지의 임의의 행과, 8째 행과의 주기는 서로소이며, 공통 열이 최대 1개밖에 존재하지 않는다. 또한, 1째 행로부터 3째 행까지의 임의의 2개의 행을 선택한 경우, 주기는 "3"에서 동일하지만, 2개의 행의 위상이 서로 다르고 공통 열이 존재하지 않는다. 유사하게, 4째 행으로부터 7째 행까지의 임의의 2개의 행을 선택한 경우, 주기는 "4"에서 동일하지만 위상이 서로 다르고 공통 열은 존재하지 않는다.
스텝 S121에서, 생성식으로서 c=aㆍi+b라는 조건을 사용하는 대신, 생성식으로서 c=aㆍi+k+r을 사용할 수도 있다. 그렇게 하면, 패리티 체크 행렬 H전체를 보았을 경우의 부분 행렬 H1 및 H2의 위상을 합칠 수 있다.
또한, 주기 리스트 P는 복수의 요소를 포함하는 것이지만, 이 복수의 요소는 1개의 파라미터로부터 생성될 수 있다. 예를 들면, 주기 리스트 P의 요소는 서로소라는 조건뿐만 아니라, 오름차순이라는 조건을 충족시킨다. 주기 리스트 P의 요소를 2개의 조건을 충족시키는 값들 중 최소값으로 정의하면, 파라미터로서 선두요소 p1 만을 결정하면 주기 리스트 P 전체의 각 요소를 결정할 수 있다.
또, 선두요소 p1 이외의 요소 pi가 1개 앞의 요소 p(i-1) 보다 큰 소수 중 최소의 소수라고 정의하면, 선두요소 p1 만을 결정하면 주기 리스트 P 전체를 결정할 수 있다.
본 실시형태에서는 스텝 Sl10에서 주기 리스트 P 전체를 설정할 경우를 설명 했지만, 주기 리스트 P의 각 요소를 1개의 파라미터로부터 생성하기 위한 정의를 사용해서 각 요소를 결정적으로 도출할 수도 있다. 이 경우, 스텝 S125에서, 프로세서 (50) 는 주기변수 a를 각각 업데이트하는 주기 리스트 P의 요소를 생성할 수도 있다. 예를 들면, 프로세서 (50) 는 스텝 Sl10에서 요소 p1만을 설정하고, 정의된 조건을 충족시키는 다음 값을 스텝 S125에서 찾도록 할 수도 있다. 이 접근법을 사용함으로써, 스텝 Sl10에서 주기 리스트 P 전체를 설정하는 것과 실질적으로 등가의 동작을 실현할 수 있다.
또한, 본 실시형태에서는 전송 라인 인코더가 LDPC 부호화에 사용하기 위해서 패리티 체크 행렬 H를 생성할 경우를 설명했지만, 패리티 체크 행렬 생성 방법은 전송 라인 디코더가 부호어의 복호에 사용하기 위해서 패리티 체크 행렬 H를 생성할 경우에도 적용할 수 있다.
상술한 바와 같이, 본 실시형태에 따르면, 저밀도 패리티 체크 부호로 사용하는 m행 n열의 패리티 체크 행렬 H는, 좌측의 m행 k열의 부분 행렬 H1과 오른쪽의 m행 m열의 부분 행렬 H2로부터 구성된다. 또한, 프로세서 (50) 는 부분 행렬 H1에 포함되는 임의의 2행을 선택한 경우, 2개의 행이 서로소가 되는 주기를 가지며 (조건 a), 또는 주기가 동일할 경우에는 서로 다른 위상을 가지는 (조건 b) 조건을 충족시키도록 부분 행렬 H1을 생성한다.
본 실시형태에 따르면, 프로세서 (50) 는 부분 행렬 H2를 단위 행렬로서 생성한다.
조건 b를 따라서 생성된 부분 행렬 H1의 행을 포함하는 패리티 체크 행렬 H 의 행의 임의의 2개의 행에서, 공통 열은 존재하지 않는다. 따라서, 길이 4의 짧은 루프의 발생을 방지할 수 있고, 2부분으로된 그래프에서의 짧은 루프에 의한 에러 정정 성능의 열화를 방지할 수 있다.
또한, 조건 a에 따라서 생성된 부분 행렬 H1의 행을 포함하는 패리티 체크 행렬 H의 행의 임의의 2개의 행에서, 주기의 각각의 최소 공배수에 공통 열이 존재한다. 이 경우, 2개의 행의 주기는 서로소이고, 따라서, 최소 공배수는 주기의 곱이다. 주기의 곱이 k 이상이 되도록 주기를 선택하면, 2개의 행에서 공통 열의 개수는 단 1개밖에 존재하지 않을 수 있다. 따라서, 길이 4의 짧은 루프의 발생을 방지할 수 있고, 2부분으로된 그래프 상에서 짧은 루프에 의한 에러 정정 성능 열화를 방지할 수 있다.
또한, 서로소인 복수의 주기를 사용해서 행을 생성하면, 행 무게를 불균일하게 할 수 있고, 그에 의해 행 무게의 균일화에 의한 에러 정정 성능 열화를 방지할 수 있다.
또한, 주기와 위상이 결정되면, 간단한 생성식을 이용해서 용이하게 부분 행렬 H1을 생성할 수 있다. 따라서, 저밀도 패리티 체크 부호에서, 뛰어난 에러 정정 특성을 실현할 수 있고, 간단한 방법으로 패리티 체크 행렬 H를 생성할 수 있다. 또한, 간단한 방법으로 부분 행렬 H1을 생성할 수 있으므로, 패리티 체크 행렬의 생성 비용을 저감할 수 있다.
본 실시형태에 따르면, 부분 행렬 H2를 단위 행렬로서 생성하므로, 입력 메시지가 부호어의 일부가 된다. 따라서, 프로세서 (50) 는 LDPC 부호화를 행할 때, 입력 메시지에 추가되는 리던던시 부분만을 산출하면 되고, 패리티 체크 행렬 H가 단위 행렬을 포함하지 않을 경우와 비교해서 생성 행렬의 생성 비용 및 부호화 비용을 저감할 수 있다.
제 2 실시형태
다음은 본 발명의 제 2 실시형태를 첨부한 도면을 참조해서 설명한다. 본 실시형태에서, 전송 라인 인코더의 구성은 제 1 실시형태에 도시한 것과 같다. 본 실시형태에서, 전송 라인 인코더의 프로세서 (50) 는 제 1 실시형태와 같은 프로세스에 따라서 부분 행렬 H1을 생성한다. 또한, 본 실시형태에서는, 프로세서 (50) 는 부분 행렬 H2를 하삼각 행렬로서 생성한다.
도 7은 프로세서 (50) 가 부분 행렬 H2를 생성하는 프로세스 진행의 예를 도시하는 플로차트이다. 본 실시형태에서, 도 7에 도시한 스텝 S221에서, 프로세서 (50) 는 제 1 실시형태의 스텝 S121과는 다른 생성식을 이용해서 각 행을 생성한다. 한편, 스텝 S221 이외의 프로세스는 제 1 실시형태에 도시한 프로세스와 같다.
스텝 S221에서, 프로세서 (50) 는 생성식 c=aㆍi+r을 사용해서 부분 행렬 H2의 행 r을 생성한다. 프로세서 (50) 는 생성식 c=aㆍi+r로 나타내는 열 c에 위치하는 행렬 요소를 "1"로 설정하고, 그 이외의 행렬 요소를 "0"으로 설정함으로써 행 r을 생성한다. 여기에서, "i"는 "0" 또는 음수이다. 주기 리스트 P는 부분 행렬 H1을 생성할 경우와 부분 행렬 H2를 생성할 경우에 동일할 수도 있고, 다를 수도 있다.
도 8은 프로세서 (50) 에 의해 생성되는 패리티 체크 행렬 H의 다른 예를 도시하는 설명도이다. 도 8에 나타낸 패리티 체크 행렬 H는 도 6에 나타낸 패리티 체크 행렬 H와 같이, 메시지 길이를 k=12로 설정하고, 부호어 길이를 n=20으로 설정하고, 패리티 체크 행렬 H의 행수를 m=8로 설정해서 생성된 것이다. 또한, 도 8에 나타낸 부분 행렬 H1 및 H2는 둘 다 주기 리스트 P={4, 5}로 생성된 것이다. 도 8에 나타낸 바와 같이, 프로세서 (50) 는 도 7에 도시한 순서에 따라, 부분 행렬 H2를 하삼각 행렬로서 생성한다.
도 8에 도시한 바와 같이, 부분 행렬 H1을 생성할 경우와 같이, 부분 행렬 H2에 포함되는 임의의 2행을 선택한 경우, 2개의 행이 서로소가 되는 주기를 가지거나, 또는 주기가 동일할 경우에는 서로 다른 위상을 가지는 조건을 충족시키도록 각 행을 생성함으로써, 용이하게 부분 행렬 H2를 하삼각 행렬로서 생성할 수 있다.
본 실시형태에서는, 부분 행렬 H2가 하삼각 행렬 H인 경우를 설명했지만, 패리티 체크 행렬 H의 행이나 열을 임의로 치환할 때 동일한 에러 정정 특성이 실현된다. 예를 들면, 패리티 체크 행렬 H에 포함되는 요소를 수직으로 반전해서 부분 행렬 H2가 상삼각 행렬이 되도록 할 수도 있으며, LDPC 부호화의 의미는 바뀌지 않는다. 또한, 패리티 체크 행렬 H에 포함되는 요소를 수평으로 반전하고, 패리티 체크 행렬 H의 좌측의 m행 m열의 부분을 삼각행렬이 되도록 할 수도 있으며, LDPC 부호화의 의미는 바뀌지 않는다.
또는, 주기 리스트 P의 복수의 요소는 1개의 파라미터로부터 생성될 수도 있다. 예를 들면, 주기 리스트 P의 요소는 서로소라는 조건뿐만 아니라, 오름차 순이라는 조건을 충족시키는 최소값으로 정의할 수도 있다. 이 접근법을 사용함으로써, 파라미터로서 선두요소 p1만을 결정하면 주기 리스트 P 전체의 각 요소를 결정할 수 있다. 또는, 선두요소 p1 이외의 요소 pi를 1개 앞의 요소 p(i-1) 보다 큰 소수 중 최소의 소수로 정의하면, 선두요소 p1만을 결정하면 주기 리스트 P 전체를 결정할 수 있게 한다.
부분 행렬 H2를 생성할 때, 주기 리스트 P가 1개의 요소만을 포함하도록 P={p}로 설정하고, 요소 p가 m 이상의 값이 되도록 설정하면, 프로세서 (50) 는 부분 행렬 H2를 단위 행렬로서 생성한다. 따라서, 주기 리스트 P={p}이고, 또한, p를 m 이상으로 설정하면, 제 1 실시형태와 유사한 패리티 체크 행렬 H를 생성할 수 있다.
본 실시형태에서는, 전송 라인 인코더가 LDPC 부호화에 사용하기 위해서 패리티 체크 행렬 H를 생성할 경우를 설명했지만, 패리티 체크 행렬 생성 방법은 전송 라인 디코더가 부호어의 복호에 사용하기 위해서 패리티 체크 행렬 H를 생성할 경우에도 적용할 수 있다.
상술한 바와 같이, 본 실시형태에 따르면, 프로세서 (50) 에 의해 부분 행렬 H2를 하삼각 행렬 또는 단위 행렬로서 생성한다. 부분 행렬 H2를 하삼각 행렬로서 생성했을 경우, 조건 b에 따라서 생성된 패리티 체크 행렬 H의 임의의 2개의 행에서, 공통 열은 존재하지 않는다. 따라서, 길이 4의 짧은 루프의 발생을 억제할 수 있고, 2부분으로된 그래프에서의 짧은 루프에 의한 에러 정정 성능 열화를 방지할 수 있다.
부분 행렬 H2를 하삼각 행렬로서 생성했을 경우, 조건 a에 따라서 생성된 패리티 체크 행렬 H의 임의의 2개의 행에는, 주기의 최소 공배수마다 공통 열이 존재한다. 이 경우, 2개의 행의 주기는 서로소이고, 따라서, 최소 공배수는 주기의 곱이다. 주기의 곱이 n 이상이 되도록 주기를 선택하면, 부분 행렬 H1의 2개의 행에 존재하는 공통 열의 개수를 단 1개로 제한할 수 있으며, 부분 행렬 H2의 2개의 행에 존재하는 공통 열의 개수를 단 1개로 제한할 수 있다. 따라서, 길이 4의 짧은 루프의 발생을 방지할 수 있고, 2부분으로된 그래프에서 짧은 루프에 의한 에러 정정 성능 열화를 방지할 수 있다.
부분 행렬 H2를 단위 행렬로서 생성했을 경우, 조건 b에 따라서 생성된 패리티 체크 행렬 H의 임의의 2개의 행에서, 공통 열은 존재하지 않는다. 따라서, 길이 4의 짧은 루프의 발생을 방지할 수 있고, 2부분으로된 그래프에서의 짧은 루프에 의한 에러 정정 성능 열화를 방지할 수 있다.
부분 행렬 H2를 단위 행렬로서 생성했을 경우, 조건 a에 따라 생성된 패리티 체크 행렬 H의 임의의 2개의 행에는, 주기의 최소 공배수마다 공통 열이 존재한다. 이 경우, 2개의 행의 주기는 서로소이므로, 최소 공배수는 주기의 곱이다. 주기의 곱이 k 이상이 되도록 주기를 선택하면, 패리티 체크 행렬 H의 2개의 행에 존재하는 공통 열을 단 1개로 제한할 수 있다. 따라서, 길이 4의 짧은 루프의 발생을 방지할 수 있고, 2부분으로된 그래프에서의 짧은 루프에 의한 에러 정정 성능 열화를 방지할 수 있다.
본 실시형태에 따르면, 부분 행렬 H2를 하삼각 행렬 또는 단위 행렬로서 생 성하므로, 입력 메시지가 그대로 부호어의 일부가 된다. 따라서, 프로세서 (50) 는 LDPC 부호화를 행할 때에, 입력 메시지에 추가되는 리던던시 부분만 산출해도 되며, 그에 의해 패리티 체크 행렬 H가 단위 행렬 또는 하삼각 행렬을 포함하지 않을 경우와 비교해서 생성 행렬의 생성 비용 및 부호화 비용을 저감할 수 있다.
제 3 실시형태
그 다음, 본 발명의 제 3 실시형태를 첨부한 도면을 참조해서 설명한다. 본 실시형태에서, 전송 라인 인코더의 구성은 제 1 실시형태 및 제 2 실시형태로 나타낸 것과 같다. 본 실시형태에서는, 전송 라인 인코더의 프로세서 (50) 는 부분 행렬 H1 및 부분 행렬 H2를 개별적으로 생성하지 않고, 부분 행렬 H1 및 부분 행렬 H2를 동시에 생성한다.
도 9는 프로세서 (50) 가 패리티 체크 행렬 H를 생성하는 프로세스 진행의 예를 도시하는 플로차트이다. 본 실시형태에서, 도 9에 나타낸 스텝 S321에서, 프로세서 (50) 는 제 1 실시형태 및 제 2 실시형태와는 다른 생성식을 이용해서 각 행을 생성한다. 또한, 스텝 S321 이외의 프로세스는 제 1 실시형태 및 제 2 실시형태와 같다.
스텝 S321에서, 프로세서 (50) 는 생성식 c=aㆍi+k+r을 사용해서 패리티 체크 행렬 H를 생성한다. 프로세서 (50) 는 생성식 c=aㆍi+k+r에서 나타낸 열 c에 위치하는 행렬 요소를 "1"로 설정하고, 그 이외의 행렬 요소를 "0"으로 설정해서 행 r을 생성한다. 여기에서, "i"는 0 또는 음수이다.
도 10은 프로세서 (50) 가 생성하는 패리티 체크 행렬 H의 또 다른 예를 도시하는 설명도이다. 도 10에 나타낸 패리티 체크 행렬 H는 도 6 및 도 8에 나타낸 패리티 체크 행렬 H와 같이, 메시지 길이를 k=12로 설정하고, 부호어 길이를 n=20으로 설정하고 패리티 체크 행렬 H의 행수를 m=8로 설정해서 생성된 것이다. 또한, 도 10에 나타낸 패리티 체크 행렬 H는 스텝 S110에서 주기 리스트 P={4, 5}로 설정함으로써 생성된 행렬이다.
도 10에 나타낸 바와 같이, 프로세서 (50) 는 도 9에 나타낸 순서를 따라, 패리티 체크 행렬 H에 포함되는 임의의 2행을 선택한 경우, 2개의 행이 서로소가 되는 주기를 갖거나, 또는 주기가 동일할 경우에는 서로 다른 위상을 갖는 조건을 충족시키도록 각 행을 생성한다.
따라서, 임의의 2행에 공통 열이 존재하는 것을 방지할 수 있고, 또는 공통열의 발생을 단 1개로 제한할 수 있다. 또한, 도 10에 도시한 바와 같이, 도 9에 도시한 순서를 따라, 패리티 체크 행렬 H 내의 부분 행렬 H2를 하삼각 행렬로서 생성한다.
본 실시형태에서는, 패리티 체크 행렬 H 내의 부분 행렬 H2가 하삼각 행렬인 경우를 설명했지만, 패리티 체크 행렬 H의 임의의 행이나 열을 치환할 경우라도 에러 정정 특성은 동일하다. 예를 들면, 패리티 체크 행렬 H에 포함되는 요소를 수직으로 반전해서 부분 행렬 H2가 상삼각 행렬이 되도록 할 수도 있고, LDPC 부호화의 의미는 바뀌지 않는다. 또는, 패리티 체크 행렬 H에 포함되는 요소를 수평으로 반전해서 패리티 체크 행렬 H의 좌측의 m행 m열의 부분이 삼각 행렬이 되도 록 할 수도 있으며, LDPC 부호화의 의미는 바뀌지 않는다.
본 실시형태에서는, 도 9에 나타낸 순서를 따라서 프로세스를 실행하는 것에 의해, 프로세서 (50) 는 이하의 조건을 따라서 패리티 체크 행렬 H를 생성한다. 스텝 S110에서 설정되는 주기 리스트 P를 P={p(1),p(2),…, p(PL)}로 정의하고, N(j)를 주기 리스트 P의 1번째로부터 j번째까지의 요소의 값의 합계라고 정의한다. 또한, N(O)은 N(O)=0이라고 정의한다. 생성대상 행 번호 r이 관계식 N(j-l)+1≤r≤N(j)를 충족시킬 경우, 프로세서 (50) 는 주기변수 a=p(j)를 사용해서, 관계식 1≤c≤n-m+r 및 관계식 c=p(j)ㆍi+n-m+r을 충족시키는 열 c의 행렬 요소는 "1"이고, 그 이외의 행렬 요소는 "0"인 행 r을 생성한다. 여기에서, "i"는 정수다.
본 실시형태에서는 스텝 S321에서 관계식 1≤c≤n-m+r 및 관계식 c=p(j)ㆍi+n-m+r을 충족시키는 열 c의 요소를 "1"로 설정할 경우를 설명했지만, 요소를 "1"로 설정하는 조건은 본 실시형태로 나타낸 것에 한정되지 않는다. 예를 들면, 생성 대상 행 번호 r이 관계식 N(j-1)+1≤r≤N(j)를 충족시킬 경우, 프로세서 (50) 는 주기 리스트 P의 요소 번호 j를 이용해서 결정되는 소정의 값 F(j)를 사용해서 "1"로 설정되는 요소를 결정할 수도 있다. 이 경우, 프로세서 (50) 는 스텝 S321에서, 관계식 1≤c≤n-m 및 관계식 c=p(j)ㆍi+r+F(j)를 충족시키는 열 c 및 c=n-m+r을 충족시키는 열 c에 위치하는 행렬 요소를 "1"로 설정하고, 그 이외의 행렬 요소를 "0"으로 설정해서 행 r을 생성한다. 이렇게 하면, 패리티 체크 행렬 H 내의 H2에 상당하는 부분을 단위 행렬로서 생성할 수 있다.
요소 번호 j를 이용해서 결정되는 값 F(j)로서, 예를 들면, F(j)=-N(j-1)을 사용할 수도 있다. 또는, F(j)=n-m을 사용할 수도 있다. 본 실시형태에서는, 스텝 S110에서 주기 리스트가 1개만 설정되는 예를 설명했지만, 설정되는 주기 리스트의 개수는 1개에 제한되지 않는다. 예를 들면, 주기 리스트 P에 추가로, 스텝 S110에서 주기 리스트 Q={q(1),q(2),…, q(QL)}를 설정할 수도 있다. 이 경우, M(j)를 리스트 Q의 1번째부터 j번째까지의 요소의 값의 합계로 정의하고, M(0)=0 이라고 정의한다. 그 후, 프로세서 (50) 는 이들 2개의 조건을 사용해서 "1"로 설정하는 요소를 결정할 수도 있다.
예를 들면, 생성대상 행 번호 r이 관계식 N(j-1)+1≤r≤N(j)를 충족시킬 경우, 프로세서 (50) 는 스텝 S321에서 관계식 1≤c≤n-m 및 관계식 c=p(j)ㆍi+r+F(j)를 충족시키는 열 c에 위치하는 행렬 요소를 "1"로 설정한다. 또한, 생성대상 행 번호 r이 관계식 M(j-1)+1≤r≤M(j)를 충족시킬 경우, 프로세서 (50) 는 관계식 n-m+1≤c≤n-m+r 및 관계식 c=q(j)ㆍi+n-m +r을 충족시키는 열 c에 위치하는 행렬 요소를 "1"로 설정하고, 그 이외의 행렬 요소를 "0"으로 설정해서 행 r을 생성한다. F(j)로서, F(j)=-N(j-1)을 사용할 수도 있으며, F(j)=n-m 을 사용할 수도 있다.
주기 리스트 P의 복수의 요소를 1개의 파라미터로부터 생성할 수도 있다. 예를 들면, 주기 리스트 P의 요소는 서로소라는 조건뿐만 아니라, 오름차순이라는 조건을 충족시키는 값들 중 최소값이라고 정의할 수도 있다. 이렇게 하면, 파라미터로서 선두요소 p1만을 결정하면 주기 리스트 P 전체의 각 요소를 결정할 수 있다. 또는, 선두요소 p1 이외의 요소 p(j)는 1개 앞의 요소 p(j-1) 보다 큰 소수 중 최소의 소수라고 정의함으로써, 선두 요소 p1만을 결정하면 주기 리스트 P 전체를 결정할 수 있게 된다.
본 실시형태에서는, 전송 라인 인코더가 LDPC 부호화에서 사용하기 위한 패리티 체크 행렬 H를 생성하는 예를 설명했지만, 패리티 체크 행렬 생성 방법은 전송 라인 디코더가 부호어의 복호에 사용하기 위한 패리티 체크 행렬 H를 생성할 경우에도 적용할 수 있다.
상술한 바와 같이, 본 실시형태에 따르면, 각각의 부분 행렬에 대해 생성하는 대신, 임의의 2행을 선택한 경우 2개의 행이 서로소가 되는 주기를 갖거나,또는 주기가 동일한 경우에는 서로 다른 위상을 갖는 조건을 충족시키도록, 패리티 체크 행렬을 일괄해서 생성할 수 있다. 또한, 각각의 부분 행렬에 대해 생성하는 대신, 하삼각 행렬 또는 단위 행렬을 포함하도록 패리티 체크 행렬을 일괄해서 생성할 수 있다. 따라서, 저밀도 패리티 체크 부호에서, 뛰어난 에러 정정 특성을 실현할 수 있고, 간단한 방법으로 패리티 체크 행렬을 생성할 수 있다. 또한, 패리티 체크 행렬이 하삼각 행렬이나 단위 행렬을 포함하지 않을 경우와 비교해서 생성 행렬의 생성 비용 및 부호화 비용을 저감하는 것이 가능하다.
제 4 실시형태
본 발명의 제 4 실시형태를 첨부한 도면을 참조해서 설명한다. 본 실시형태에서는, 제 1 실시형태로부터 제 3 실시형태까지 나타낸 전송 라인 인코더 및 전송 라인 디코더 중 어느 하나를 적용한 데이터 전송 시스템을 설명한다. 본 발명에 따른 데이터 전송 시스템의 구성은, 도 1에 나타낸 구성과 같다. 데이터 발생기 (10) 는 전송해야 할 데이터 스트링을 생성하면, 생성한 데이터 스트링을 전송 라인 인코더 (11) 에 출력한다. 다시 말해, 데이터 발생기 (10) 는 발생한 데이터 스트링을 전송 라인 인코더 (11) 에 공급한다.
전송 라인 인코더 (11) 는 제 1 실시형태로부터 제 3 실시형태까지 나타낸 패리티 체크 행렬 생성 방법을 실현하는 임의의 구성으로 설치된다. 예를 들면, 전송 라인 인코더 (11) 에는 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 프로그램이 인스톨 되어 있다. 전송 라인 인코더 (11) 는 주기 리스트 P에 근거해서 패리티 체크 행렬 H를 생성한다. 또한, 전송 라인 인코더 (11) 는 생성한 패리티 체크 행렬 H를 사용해서 데이터 발생기 (10) 로 공급된 데이터 스트링을 부호어로 변환한다. 그리고, 전송 라인 인코더 (11) 는 전송 라인 (12) 에 의해 부호어를 전송 라인 디코더 (13) 에 송신한다.
전송 라인 디코더 (13) 에는 패리티 체크 행렬 생성 방법을 실현하는 구성이 설치된다. 예를 들면, 전송 라인 디코더 (13) 에는 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 프로그램이 인스톨되어 있다. 전송 라인 디코더 (13) 는 주기 리스트 P에 근거해서 패리티 체크 행렬 H를 생성한다. 또한, 전송 라인 디코더 (13) 는 생성한 패리티 체크 행렬 H를 사용해서, 수신한 부호어로부터 원래의 데이터 스트링을 합곱 복호법에 따라서 복원한다. 그리고, 전송 라인 디코더 (13) 는 복원한 데이터 스트링을 데이터 소비기 (14) 에 공급한다. 다시 말해, 전송 라인 디코더 (13) 는 복원한 데이터 스트링을 데이터 소비기 (14) 에 공급한다.
데이터 소비기 (14) 는 전송 라인 디코더 (13) 로부터 공급된 데이터 스트링을 소비한다. 즉, 데이터 소비기 (14) 는 공급된 데이터 스트링을 프로세스해서 표시나 출력을 행한다.
예를 들면, 데이터 전송 시스템이 비디오 데이터 전송용 시스템일 경우, 데이터 발생기 (10) 는 비디오 인코더이며, 데이터 발생기(10) 에 의해 발생된 데이터 스트링은 비트 스트림이다. 데이터 소비기 (14) 는 비디오 디코더이다.
전송 라인 인코더 (11) 및 전송 라인 디코더 (13) 는 각각 동일한 주기 리스트 P를 이용한다. 주기 리스트 P의 동일성을 유지하는 방법으로서, 전송 라인 인코더 (11) 및 전송 라인 디코더 (13) 각각에 대한 같은 주기 리스트 P를 초기값으로서 주는 방법을 이용할 수도 있다. 또는, 외부입력에 의해 주기 리스트 P가 주어질 경우, 외부로부터 입력된 주기 리스트 P를 전송 라인 인코더 (11) 및 전송 라인 디코더 (13) 각각에 통지하도록 할 수도 있고, 전송 라인 인코더 (11) 및 전송 라인 디코더 (13) 각각은 통지된 주기 리스트 P를 이용할 수도 있다.
또는, 전송 라인 인코더 (11) 가 주기 리스트 P를 설정하고, 전송 라인 인코더 (11) 가 설정한 주기 리스트 P를 전송 라인 (12) 에 의해 전송 라인 디코더 (13) 에 송신(통지) 하는 방법을 이용할 수도 있다. 이 경우, 주기 리스트 P의 최적값은 전송 라인 (12) 의 에러 발생 모델에 따라 상이하다. 전송 라인 인코더 (11) 는 부호어를 송신할 때마다 주기 리스트 P를 송신(통지) 할 수도 있고, 주기 리스트 P를 업데이트 했을 때만 송신(통지) 할 수도 있다. 주기 리스트 P의 업데이트를 미리 정한 소정의 시간 간격마다 행할 경우에는, 전송 라인 인코더 (11) 는 소정의 시간 간격마다 업데이트 후의 주기 리스트 P를 전송 라인 디코더 (13) 에 송신(통지) 할 수도 있다.
전송 라인 디코더 (13) 는 전송 라인 (12) 의 에러 발생 상황을 최초로 검출하며, 따라서, 전송 라인 디코더 (13) 가 주기 리스트 P의 설정을 행할 수도 있다. 이 경우, 전송 라인 인코더 (11) 가 주기 리스트 P를 전송 라인 디코더 (13) 에 송신하지 않고, 전송 라인 디코더 (13) 가 전송 라인 (12) 에 의해 주기 리스트 P를 전송 라인 인코더 (11) 에 송신(통지) 한다.
주기 리스트 P의 각 요소를 1개의 파라미터로부터 생성하기 위한 정의를 사용하고, 주기 리스트 P의 선두요소에 근거해서 선두요소 이후의 각 요소를 결정할 수 있을 경우에는, 전송 라인 인코더 (11) 또는 전송 라인 디코더 (13) 는 선두요소만을 송신(통지) 할 수도 있다. 예를 들면, 주기 리스트 P의 요소는 서로소라는 조건뿐만 아니라, 요소가 오름차순이라는 2개의 조건을 충족시키는 값들 중 최소값으로 정의한 것에 의해, 선두요소 p1만을 결정하면 주기 리스트 P 전체의 각 요소를 결정할 수 있는 구성이 가능하다. 또는, 선두요소 p1 이외의 요소 p(j)를 1개 앞의 요소 p(j-1)보다 큰 소수 중 최소의 소수로 정의함으로써, 선두요소 p1만을 결정하면 주기 리스트 P 전체를 결정할 수 있다.
패리티 체크 행렬의 사이즈를 변경하고 싶을 경우에는, 전송 라인 인코더 (11) 는 변경후의 패리티 체크 행렬의 행수나 열수를 전송 라인 (12) 에 의해 전송 라인 디코더 (13) 에 송신(통지) 할 수도 있다. 또는, 패리티 체크 행렬의 사 이즈를 변경하고 싶을 경우에는, 전송 라인 디코더 (13) 는 변경 후의 패리티 체크 행렬의 행수나 열수를 전송 라인 (12) 에 의해 전송 라인 인코더 (11) 에 송신(통지) 할 수도 있다.
상술한 바와 같이, 본 실시형태에 따르면, 데이터 전송 시스템에서 전송 라인 인코더 (11) 및 전송 라인 디코더 (13) 는 제 1 실시형태로부터 제 3 실시형태까지 나타낸 패리티 체크 행렬 생성 방법 중 어느 하나를 사용해서 패리티 체크 행렬을 생성한다. 따라서, 저밀도 패리티 체크 부호에서 뛰어난 에러 정정 특성을 실현할 수 있고, 간단한 방법으로 패리티 체크 행렬을 생성할 수 있다. 또한, 패리티 체크 행렬이 하삼각 행렬이나 단위 행렬을 포함하지 않을 경우와 비교해서 생성 행렬의 생성 비용 및 부호화 비용을 저감할 수 있다.
본 실시형태에 따르면, 주기 리스트 P 또는 주기 리스트 P의 선두요소를 알면 패리티 체크 행렬을 결정할 수 있다. 따라서, 전송 라인 인코더 (11) 또는 전송 라인 디코더 (13) 중 어느 한쪽이 주기 리스트 P 또는 선두요소를 다른 쪽에 통지하면, 전송 라인 인코더 (11) 및 전송 라인 디코더 (13) 는 동일한 패리티 체크 행렬이 공통될 수 있다.
또한, 패리티 체크 행렬의 사이즈를 변경할 경우에는, 전송 라인 인코더 (11) 또는 전송 라인 디코더 (13) 중 어느 한쪽이 행렬 사이즈를 다른 쪽에 통지하면, 패리티 체크 행렬의 사이즈를 용이하게 변경할 수 있다. 따라서, 전송 라인 (12) 의 특성이나 패킷 교환 네트워크의 혼잡 상황이 변화될 경우에도, 데이터 전송의 시점으로 전송에 최적인 패리티 체크 행렬을 용이하게 이용할 수 있다.
산업상의 이용 가능성
본 발명에 따른 패리티 체크 행렬 생성 방법은 데이터 전송 시스템에 포함되는 전송 라인 인코더가 데이터 스트링을 LDPC 부호화하기 위해서 사용하는 패리티 체크 행렬을 생성할 경우에 적용할 수 있다. 또한, 패리티 체크 행렬 생성 방법은 데이터 전송 시스템에 포함되는 전송 라인 디코더가 수신한 부호어를 복호하기 위해서 사용하는 패리티 체크 행렬을 생성할 경우에 적용할 수 있다.

Claims (38)

  1. 저밀도 패리티 체크 부호의 m행 n열의 패리티 체크 행렬 H를 생성하기 위한 패리티 체크 행렬 생성 방법으로서,
    상기 패리티 체크 행렬 H를 m행 k열 (여기서,k=n-m) 의 부분 행렬 H1과 m행 m열의 부분 행렬 H2로 구성하고,
    상기 부분 행렬 H1에 포함되는 임의의 2개의 행을 선택한 경우 2개의 행의 주기가 서로소가 되거나, 또는 2개의 행의 주기가 동일한 경우 위상이 상이하다는 조건을 충족시키도록, 상기 부분 행렬 H1의 각 행의 행렬 요소 "1"의 위치를 결정하는, 패리티 체크 행렬 생성 방법.
  2. 제 1 항에 있어서,
    주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소) 을 결정하고;
    상기 주기 리스트 P의 요소 p(j) 각각에 대해, 주기가 p(j)이며 위상이 상이한 부분 행렬 H1의 최대 p(j)개의 행을 생성하는, 패리티 체크 행렬 생성 방법.
  3. 제 2 항에 있어서,
    선두 요소 p(1)에 근거해서 요소 p(2)로부터 요소 p(PL) 까지의 요소를 생성하는, 패리티 체크 행렬 생성 방법.
  4. 제 3 항에 있어서,
    요소 p(1)로부터 요소 p(j-1)까지의 모든 선행하는 요소와 서로소라는 조건을 충족시키는 값들 중 최소의 값이 되도록 주기 리스트 P의 요소 p(j)를 생성하는, 패리티 체크 행렬 생성 방법.
  5. 제 3 항에 있어서,
    요소 p(j)를 1개 앞의 요소 p(j-1)보다 큰 소수라는 조건을 각각 충족시키는 값들 중 최소의 값이 되도록 주기 리스트 P의 요소 p(j)를 생성하는, 패리티 체크 행렬 생성 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    부분 행렬 H2로서 단위 행렬을 생성하는, 패리티 체크 행렬 생성 방법.
  7. 제 1 항에 있어서,
    부분 행렬 H2에 포함되는 임의의 2개의 행을 선택한 경우, 2개의 행의 주기가 서로소가 되거나, 또는 2개의 행의 주기가 동일할 경우 이들의 위상이 상이하다는 조건을 충족시키도록 하삼각 행렬 (lower triangle matrix) 내의 행렬 요소 "1"의 위치를 결정함으로써, 하삼각 행렬을 부분 행렬 H2로서 생성하는, 패리티 체크 행렬 생성 방법.
  8. 제 7 항에 있어서,
    주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소) 를 결정하고,
    상기 주기 리스트 P의 요소 p(j) 각각에 대해, 주기가 p(j)이고, 위상이 상이한 부분 행렬 H2의 최대 p(j) 개의 행을 생성하는, 패리티 체크 행렬 생성 방법.
  9. 제 8 항에 있어서,
    선두 요소 p(1)에 근거해서 요소 p(2)로부터 요소 p(PL)까지의 요소를 생성하는, 패리티 체크 행렬 생성 방법.
  10. 제 9 항에 있어서,
    요소 p(j)가 요소 p(1)로부터 요소 p(j-1)까지의 모든 선행 요소와 서로소라는 조건을 충족시키는 값들 중 최소값이 되도록 주기 리스트 P의 요소 p(j)를 생성하는, 패리티 체크 행렬 생성 방법.
  11. 제 9 항에 있어서,
    요소 p(j)가 1개 앞의 요소 p(j-1)보다 큰 소수라는 조건을 각각 충족시키는 값들 중 최소의 값이 되도록 주기 리스트 P의 요소 p(j) 를 생성하는, 패리티 체크 행렬 생성 방법.
  12. 저밀도 패리티 체크 부호의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 방법으로서,
    주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소)를 사용해서, N(j)을 상기 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계로 정의하고, 또한, N(O)을 "0"이라고 정의하는 경우, N(j-1)+1≤r≤N(j)이면, 정수 i, 및 j 로부터 정해지는 값 F(j)를 사용해서 1≤c≤n-m 및 c=p(j)ㆍi+r+F(j)의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; c=n-m+r의 조건을 충족시키는 열 c에 대응하는 행렬요소를 "1"로 설정하고; 상기 조건을 충족시키지 않는 행렬 요소를 "0"으로 설정함으로써 패리티 체크 행렬의 행 r을 생성하는, 패리티 체크 행렬 생성 방법.
  13. 제 12 항에 있어서,
    F(j)=-N(j-1)인, 패리티 체크 행렬 생성 방법.
  14. 제 12 항에 있어서,
    F(j)=n-m인, 패리티 체크 행렬 생성 방법.
  15. 저밀도 패리티 체크 부호에서의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 방법으로서,
    주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소)를 사용하고, N(j)을 상기 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계로 정의하고, 또한, N(O)을 0이라고 정의했을 경우, N(j-1)+1≤r≤N(j)이면, 정수 i를 사용해서 1≤c≤n-m+r 및 c=p(j)ㆍi+n-m+r의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; 상기 조건을 충족시키지 않는 행렬 요소를 "0"으로 설정함으로써 패리티 체크 행렬의 행 r을 생성하는, 패리티 체크 행렬 생성 방법.
  16. 저밀도 패리티 체크 부호에 있어서의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 방법으로서,
    주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소) 및 주기 리스트 Q={q(1),q(2),…,q(QL)}(여기서, q(1) 내지 q(QL)은 서로소)를 사용하고; N(j)을 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계로서 정의하고, 또한, N(O)을 "0"이라고 정의하는 경우, N(j-1)+1≤r≤N(j)라면, 정수 i, 및 j 로부터 정해지는 값 F(j) 를 사용해서 1≤c≤n-m 및 c=p(j)ㆍi+r+F(j)의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; M(j)을 주기 리스트 Q의 요소 q(1)로부터 요소 q(j)까지의 값의 합계라고 정의하고, 또한, M(O)을 "0"이라고 정의하는 경우, M(j-1)+1≤r≤M(j)라면, 정수 i를 사용해서 n-m+1≤c≤n-m+r 및 c=q(j)ㆍi+n-m+r의 조건을 충족하는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; 상기 조건 중 어느 것도 충족하지 않는 행렬 요소를 "0"이라고 설정함으로써 패리티 체크 행렬의 행 r을 생성하는, 패리티 체크 행렬 생성 방법.
  17. 제 16 항에 있어서,
    F(j)=-N(j-l)인, 패리티 체크 행렬 생성 방법.
  18. 제 16 항에 있어서,
    F(j)=n-m인, 패리티 체크 행렬 생성 방법.
  19. 제 12 항, 제 15 항 또는 제 16 항 중 어느 한 항에 있어서,
    선두 요소 p(1)에 근거해서 요소 p(2)로부터 요소 p(PL) 까지의 요소를 생성함으로써 주기 리스트 P를 결정하는, 패리티 체크 행렬 생성 방법.
  20. 제 19 항에 있어서,
    요소 p(j)가 요소 p(1) 로부터 요소 p(j-1) 까지의 모든 선행 요소와 서로소가 되는 조건을 충족시키는 값들 중 최소값이 되도록 주기 리스트 P의 요소 p(j)를 생성하는, 패리티 체크 행렬 생성 방법.
  21. 제 19 항에 있어서,
    요소 p(j)가 1개 앞의 요소 p(j-1)보다 큰 소수인 조건을 각각 충족시키는 값들 중 최소값이 되도록 주기 리스트 P의 요소 p(j)를 생성하는, 패리티 체크 행 렬 생성 방법.
  22. 삭제
  23. 데이터를 부호화하는 부호화 장치 및 부호화된 데이터를 복호하는 복호 장치를 포함하는 데이터 전송 시스템으로서,
    상기 부호화 장치는,
    패리티 체크 행렬의 사이즈와 제 2 항에 기재된 주기 리스트 P 로 구성되는 파라미터로부터, 제 2 항에 기재된 패리티 체크 행렬 생성 방법을 사용하여 패리티 체크 행렬을 생성하고,
    생성된 상기 패리티 체크 행렬을 사용하여 데이터를 저밀도 패리티 부호화하여 부호어로 변환시키고,
    상기 변환된 부호어와 상기 패리티 체크 행렬 생성 방법에서 사용한 상기 파라미터를, 전송 라인을 통해 상기 복호 장치에 전송하고,
    상기 복호 장치는,
    상기 부호화 장치와 동일한 패리티 체크 행렬 생성 방법을 사용하여, 상기 부호화 장치로부터 수신된 파라미터로부터 패리티 체크 행렬을 생성하고,
    상기 부호화 장치로부터 수신된 부호어를, 상기 생성된 패리티 체크 행렬을 사용하여 복호하여, 부호화 전의 데이터로 변환하는, 데이터 전송 시스템.
  24. 데이터를 부호화하는 부호화 장치 및 부호화된 데이터를 복호하는 복호 장치를 포함하는 데이터 전송 시스템으로서,
    상기 부호화 장치는,
    패리티 체크 행렬의 사이즈와 제 3 항에 기재된 선두 요소 P(1) 로 구성되는 파라미터로부터, 제 3 항에 기재된 패리티 체크 행렬 생성 방법을 사용하여 패리티 체크 행렬을 생성하고,
    생성된 상기 패리티 체크 행렬을 사용하여 데이터를 저밀도 패리티 부호화하여 부호어로 변환시키고,
    상기 변환된 부호어와 상기 패리티 체크 행렬 생성 방법에서 사용한 상기 파라미터를, 전송 라인을 통해 상기 복호 장치에 전송하고,
    상기 복호 장치는,
    상기 부호화 장치와 동일한 패리티 체크 행렬 생성 방법을 사용하여, 상기 부호화 장치로부터 수신된 파라미터로부터 패리티 체크 행렬을 생성하고,
    상기 부호화 장치로부터 수신된 부호어를, 상기 생성된 패리티 체크 행렬을 사용하여 복호하여, 부호화 전의 데이터로 변환하는, 데이터 전송 시스템.
  25. 삭제
  26. 삭제
  27. 삭제
  28. 데이터를 부호화하는 부호화 장치 및 부호화된 데이터를 복호하는 복호 장치를 포함하는 데이터 전송 시스템으로서,
    상기 복호 장치는,
    패리티 체크 행렬의 사이즈와 제 2 항에 기재된 주기 리스트 P 로 구성되는 파라미터를, 전송 라인을 통해 상기 부호화 장치로 송신하고,
    상기 부호화 장치는,
    상기 복호 장치로부터 수신된 파라미터로부터, 제 2 항에 기재된 패리티 체크 행렬 생성 방법을 사용하여 패리티 체크 행렬을 생성하고,
    생성된 상기 패리티 체크 행렬을 사용하여 데이터를 저밀도 패리티 부호화하여 부호어로 변환시키고,
    상기 변환된 부호어와 상기 패리티 체크 행렬 생성 방법에서 사용한 상기 파라미터를, 전송 라인을 통해 상기 복호 장치에 전송하고,
    상기 복호 장치는,
    상기 부호화 장치와 동일한 패리티 체크 행렬 생성 방법을 사용하여, 상기 파라미터로부터 패리티 체크 행렬을 생성하고,
    상기 부호화 장치로부터 수신된 부호어를, 생성된 상기 패리티 체크 행렬을 사용하여 복호하여, 부호화 전의 데이터로 변환하는, 데이터 전송 시스템.
  29. 삭제
  30. 삭제
  31. 제 23 항에 있어서,
    상기 부호화 장치는 상기 파라미터의 내용이 업데이트되었을 경우, 상기 파라미터를 전송 라인을 통해 상기 복호 장치로 송신하는, 데이터 전송 시스템.
  32. 제 28 항에 있어서,
    상기 복호 장치는 상기 파라미터의 내용이 업데이트되었을 경우, 상기 파라미터를 전송 라인을 통해 상기 부호화 장치에 송신하는, 데이터 전송 시스템.
  33. 삭제
  34. 삭제
  35. 저밀도 패리티 체크 부호의 m행 n열의 패리티 체크 행렬 H를 생성하기 위한 패리티 체크 행렬 생성 프로그램으로서,
    상기 패리티 체크 행렬 생성 프로그램은,
    상기 패리티 체크 행렬 H를 m행 k열의 부분 행렬 H1과 m행 m열의 부분 행렬 H2 (여기서, m=n-k) 로 구성하는 프로세스; 및
    상기 부분 행렬 H1에 포함되는 임의의 2개의 행을 선택한 경우 상기 2개의 행의 주기가 서로소가 되거나, 또는 상기 2개의 행의 주기가 동일한 경우 위상이 상이하다는 조건을 충족시키도록, 상기 부분 행렬 H1의 각 행의 행렬 요소 "1"의 위치를 결정하는 프로세스를 컴퓨터가 실행하도록 하는, 패리티 체크 행렬 생성 프로그램을 저장하는 컴퓨터로 판독가능한 기록 매체.
  36. 저밀도 패리티 체크 부호에서의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 프로그램으로서,
    상기 패리티 체크 행렬 생성 프로그램은,
    주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소)를 사용해서, N(j)는 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계로서 정의하고, 또한 N(O)은 "0"이라고 정의했을 경우, N(j-1)+l≤r≤N(j)이면, 정수 i, 및 j 로부터 정해지는 값 F(j)를 사용해서 l≤c≤n-m 및 c=p(j)ㆍi+r+F(j)의 조건을 충족시키는 열 c 에 대응하는 행렬 요소를 "1"로 설정하고; c=n-m+r의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; 상기 조건들 중 어느 조건도 충족시키지 않는 행렬 요소를 "0"으로 설정함으로써, 패리티 체크 행렬의 행 r을 생성하도록 하는 프로세스를 컴퓨터가 실행하도록 하는, 패리티 체크 행렬 생성 프로그램을 저장하는 컴퓨터로 판독가능한 기록 매체.
  37. 저밀도 패리티 체크 부호에서의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 프로그램으로서,
    주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소)를 사용해서, N(j)을 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계로서 정의하고, 또한, N(O)을 0이라고 정의하는 경우, N(j-1)+1≤r≤N(j)이면, 정수 i를 사용해서 1≤c≤n-m+r 및 c=p(j)ㆍi+n-m+r의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; 상기 조건들 중 어느 조건도 충족시키지 않는 행렬 요소를 "0"으로 설정함으로써 패리티 체크 행렬의 행 r을 생성하는 프로세스를 컴퓨터가 실행하도록 하는, 패리티 체크 행렬 생성 프로그램을 저장하는 컴퓨터로 판독가능한 기록 매체.
  38. 저밀도 패리티 체크 부호에서의 m행 n열의 패리티 체크 행렬을 생성하기 위한 패리티 체크 행렬 생성 프로그램으로서,
    주기 리스트 P={p(1),p(2),…,p(PL)}(여기서, p(1) 내지 p(PL)은 서로소) 및 주기 리스트 Q={q(l),q(2),…,q(QL)}(여기서, q(1) 내지 q(QL)은 서로소)를 사용해서; N(j)을 상기 주기 리스트 P의 요소 p(1)로부터 요소 p(j)까지의 값의 합계로서 정의하고, 또한, N(O)을 "0"이라고 정의하는 경우, N(j-1)+1≤r≤N(j)이면, 정수 i, 및 j 로부터 정해지는 값 F(j) 를 사용해서 1≤c≤n-m 및 c=p(j)ㆍi+r+F(j)의 조건을 충족시키는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; M(j)을 상기 주기 리스트 Q의 요소 q(1)로부터 요소 q(j)까지의 값의 합계로서 정의하고, 또한, M(O)을 "0"이라고 정의하는 경우, M(j-1)+1≤r≤M(j)이면, 정수 i를 사용해서 n-m+1≤c≤n-m+r 및 c=q(j)ㆍi+n-m+r의 조건을 충족하는 열 c에 대응하는 행렬 요소를 "1"로 설정하고; 상기 조건 중 어느 것도 충족시키지 않는 행렬 요소를 "0"으로 설정함으로써 패리티 체크 행렬의 행 r을 생성하는 프로세스를 컴퓨터가 실행하도록 하는, 패리티 체크 행렬 생성 프로그램을 저장하는 컴퓨터로 판독가능한 기록 매체.
KR1020067016673A 2004-01-20 2005-01-17 패리티 체크 행렬 생성 방법, 데이터 전송 시스템, 부호화장치, 복호 장치 및 패리티 체크 행렬 생성 프로그램을 저장하는 컴퓨터로 판독가능한 기록 매체 KR100849044B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004011923 2004-01-20
JPJP-P-2004-00011923 2004-01-20

Publications (2)

Publication Number Publication Date
KR20060116022A KR20060116022A (ko) 2006-11-13
KR100849044B1 true KR100849044B1 (ko) 2008-07-30

Family

ID=34792354

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067016673A KR100849044B1 (ko) 2004-01-20 2005-01-17 패리티 체크 행렬 생성 방법, 데이터 전송 시스템, 부호화장치, 복호 장치 및 패리티 체크 행렬 생성 프로그램을 저장하는 컴퓨터로 판독가능한 기록 매체

Country Status (7)

Country Link
US (3) US7802162B2 (ko)
EP (1) EP1708367A4 (ko)
JP (1) JP4386198B2 (ko)
KR (1) KR100849044B1 (ko)
CN (2) CN1910822B (ko)
DE (1) DE202005021953U1 (ko)
WO (1) WO2005069492A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4601675B2 (ja) * 2006-02-09 2010-12-22 富士通株式会社 Ldpc検査行列生成方法及び検査行列生成器並びに符号再送方法
JP4702632B2 (ja) * 2007-04-06 2011-06-15 ソニー株式会社 符号化方法および符号化装置、並びにプログラム
JP4618293B2 (ja) * 2007-12-12 2011-01-26 住友電気工業株式会社 復号装置及び検査行列生成方法
JP4645645B2 (ja) * 2007-12-28 2011-03-09 住友電気工業株式会社 復号装置及び検査行列生成方法
KR20090131230A (ko) * 2008-06-17 2009-12-28 삼성전자주식회사 적어도 두 개의 주파수 대역들을 이용하는 저 밀도 패리티코드 인코딩 장치 및 디코딩 장치
US8612823B2 (en) * 2008-10-17 2013-12-17 Intel Corporation Encoding of LDPC codes using sub-matrices of a low density parity check matrix
US8245107B2 (en) * 2009-02-05 2012-08-14 Wilocity, Ltd. Techniques for enabling simplified LDPC encoding and decoding
WO2012164929A1 (ja) * 2011-05-31 2012-12-06 三菱電機株式会社 誤り訂正符号化装置、誤り訂正復号装置、およびその方法
JP5665725B2 (ja) * 2011-12-13 2015-02-04 株式会社東芝 符号化装置及びこれを用いた半導体メモリシステム
US9424307B2 (en) * 2012-10-11 2016-08-23 Scott E. Lilienthal Multivariate data analysis method
US9553608B2 (en) * 2013-12-20 2017-01-24 Sandisk Technologies Llc Data storage device decoder and method of operation
JP6396849B2 (ja) * 2015-05-29 2018-09-26 日本電信電話株式会社 生成行列構成装置及び生成行列構成方法
KR102412695B1 (ko) * 2015-07-28 2022-06-24 삼성전자주식회사 데이터 수신을 제어하기 위한 장치 및 방법
US10635909B2 (en) * 2015-12-30 2020-04-28 Texas Instruments Incorporated Vehicle control with efficient iterative triangulation
CN114244374B (zh) * 2021-11-22 2022-08-05 成都博尔微晶科技有限公司 一种校验矩阵生成方法、装置、电子设备及存储介质
CN114756012B (zh) * 2022-06-15 2022-09-06 杭州康吉森自动化科技有限公司 一种控制系统组态信息校验方法及控制系统
CN116436474B (zh) * 2023-06-13 2023-11-17 武汉能钠智能装备技术股份有限公司四川省成都市分公司 一种信道编解码方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014718A1 (en) * 2001-07-05 2003-01-16 International Business Machines Corporation System and method for generating low density parity check codes using bit-filling
US20030037298A1 (en) * 2001-07-11 2003-02-20 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
EP1379001A2 (en) 2002-07-03 2004-01-07 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2306866B (en) * 1995-10-26 1998-08-05 Bosch Gmbh Robert Method of obtaining information about the residual errors in a transmitted channel-decoded digital signal
US6145110A (en) * 1998-06-22 2000-11-07 Ericsson Inc. Digital data decoder that derives codeword estimates from soft data
FR2799592B1 (fr) 1999-10-12 2003-09-26 Thomson Csf Procede de construction et de codage simple et systematique de codes ldpc
US6728927B2 (en) * 2000-05-26 2004-04-27 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Method and system for high-spread high-distance interleaving for turbo-codes
KR20030036227A (ko) * 2000-06-16 2003-05-09 어웨어, 인크. Ldpc 코드형 변조를 위한 시스템 및 방법
US7000177B1 (en) * 2000-06-28 2006-02-14 Marvell International Ltd. Parity check matrix and method of forming thereof
JP3557162B2 (ja) * 2000-09-07 2004-08-25 株式会社東芝 データ抽出方法、データ抽出装置および記録媒体
US7298785B2 (en) * 2001-07-04 2007-11-20 Kabushiki Kaisha Toyota Chuo Kenkyusho Multicarrier demodulation method and apparatus, and multicarrier modulation method and apparatus
JP3808769B2 (ja) 2001-12-27 2006-08-16 三菱電機株式会社 Ldpc符号用検査行列生成方法
JP3833545B2 (ja) * 2002-02-13 2006-10-11 三菱電機株式会社 通信システム、受信機、送信機および通信方法
JP4042841B2 (ja) 2002-03-29 2008-02-06 富士通株式会社 行列演算処理装置
CN100448170C (zh) * 2002-07-02 2008-12-31 三菱电机株式会社 检查矩阵生成方法及检查矩阵生成装置
US7702986B2 (en) * 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014718A1 (en) * 2001-07-05 2003-01-16 International Business Machines Corporation System and method for generating low density parity check codes using bit-filling
US20030037298A1 (en) * 2001-07-11 2003-02-20 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
EP1379001A2 (en) 2002-07-03 2004-01-07 Hughes Electronics Corporation Method and system for decoding low density parity check (LDPC) codes

Also Published As

Publication number Publication date
DE202005021953U1 (de) 2012-06-28
US20090235144A1 (en) 2009-09-17
CN1910822B (zh) 2012-12-19
US8296618B2 (en) 2012-10-23
CN1910822A (zh) 2007-02-07
US7802162B2 (en) 2010-09-21
KR20060116022A (ko) 2006-11-13
JPWO2005069492A1 (ja) 2007-12-27
CN101527572A (zh) 2009-09-09
US7908539B2 (en) 2011-03-15
WO2005069492A1 (ja) 2005-07-28
US20090217132A1 (en) 2009-08-27
EP1708367A1 (en) 2006-10-04
US20070186140A1 (en) 2007-08-09
EP1708367A4 (en) 2009-02-11
CN101527572B (zh) 2013-12-18
JP4386198B2 (ja) 2009-12-16

Similar Documents

Publication Publication Date Title
KR100849044B1 (ko) 패리티 체크 행렬 생성 방법, 데이터 전송 시스템, 부호화장치, 복호 장치 및 패리티 체크 행렬 생성 프로그램을 저장하는 컴퓨터로 판독가능한 기록 매체
US7373581B2 (en) Device, program, and method for decoding LDPC codes
KR101405962B1 (ko) Ldpc 코드를 이용한 복호화 방법
KR102347823B1 (ko) 구조화된 ldpc의 부호화 및 복호화 방법 및 장치
JP4602406B2 (ja) データをエンコード及びデコードするための方法並びに装置
JP2010532129A (ja) パリティ検査行列の生成
JP4005084B2 (ja) 検査行列生成方法および検査行列生成装置
WO2010073922A1 (ja) 誤り訂正符号化装置、復号装置、符号化方法、復号方法、及びそのプログラム
US20070162821A1 (en) Parity check matrix, method of generating parity check matrix, encoding method and error correction apparatus
JP4917023B2 (ja) 誤り訂正符号化装置
CN101124729A (zh) 用于编码和解码数据的方法和设备
CN101373976A (zh) 生成ldpc校验矩阵的方法和设备
KR20090041224A (ko) 연접 디코더 및 연접 디코딩 방법
KR101147768B1 (ko) 채널 코드를 이용한 복호화 방법 및 장치
CN112204888A (zh) 具有高效编码和良好误码平层特性的一类qc-ldpc码
KR20060071856A (ko) 채널 코드를 이용한 복호화 및 복호화 장치
KR20110126097A (ko) Ldpc 의사-주기적인 코드들을 이용한 코딩 및 디코딩
JP5510447B2 (ja) 復号装置および復号方法
KR100632268B1 (ko) Ldpc 부호 부호화 및 복호화 방법, 및 ldpc패러티 검사 행렬 형성 방법.
JP2012119736A (ja) 最短経路演算装置、最短経路演算方法及び検査行列生成方法
CN107317587B (zh) 低密度奇偶检查码的编解码方法
RU2365034C2 (ru) Способ и устройство для кодирования и декодирования данных
JP2010028408A (ja) 情報処理装置、情報処理方法、およびプログラム
JP2009005204A (ja) 行列生成方法、行列生成装置及び符号化復号化装置
JP2012235276A (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