KR20050035729A - 저밀도 패리티 검사 코드의 부호화 방법 - Google Patents

저밀도 패리티 검사 코드의 부호화 방법 Download PDF

Info

Publication number
KR20050035729A
KR20050035729A KR1020030071456A KR20030071456A KR20050035729A KR 20050035729 A KR20050035729 A KR 20050035729A KR 1020030071456 A KR1020030071456 A KR 1020030071456A KR 20030071456 A KR20030071456 A KR 20030071456A KR 20050035729 A KR20050035729 A KR 20050035729A
Authority
KR
South Korea
Prior art keywords
matrix
parity
sub
column
submatrix
Prior art date
Application number
KR1020030071456A
Other languages
English (en)
Other versions
KR100922956B1 (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
Priority to KR1020030071456A priority Critical patent/KR100922956B1/ko
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to CN2004800217855A priority patent/CN1830149B/zh
Priority to PCT/KR2004/002630 priority patent/WO2005036758A1/en
Priority to JP2006535266A priority patent/JP4199279B2/ja
Priority to RU2006102662/09A priority patent/RU2308803C2/ru
Priority to DE602004016194T priority patent/DE602004016194D1/de
Priority to US10/563,216 priority patent/US7458009B2/en
Priority to EP04793492A priority patent/EP1673870B1/en
Priority to AU2004306640A priority patent/AU2004306640B9/en
Publication of KR20050035729A publication Critical patent/KR20050035729A/ko
Application granted granted Critical
Publication of KR100922956B1 publication Critical patent/KR100922956B1/ko

Links

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/1191Codes on graphs other than LDPC codes
    • H03M13/1194Repeat-accumulate [RA] codes
    • H03M13/1197Irregular repeat-accumulate [IRA] 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
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1114Merged schedule message passing algorithm with storage of sums of check-to-bit node messages or sums of bit-to-check node messages, e.g. in order to increase the memory efficiency
    • 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
    • H03M13/1162Array based LDPC codes, e.g. array 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
    • 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
    • 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
    • H03M13/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • 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/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel

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

본 발명은 데이터의 부호화 장치 및 방법에 관한 것으로, 특히 저밀도 패리티 코드(Low-Density Parity Check(LDPC) code)의 부호화 장치 및 방법에 관한 것이다.
본 발명의 방법은, 본 발명의 방법은, 정보 부분 매트릭스와 패리티 부분 매트릭스로 구성되는 저밀도 패리티 검사 코드를 생성 방법으로서, 상기 정보 부분 매트릭스를 배열 코드 구조로 변경하고, 각각의 서브 매트릭스 열에 차수 시퀀스(degree sequence)를 할당하는 과정과, 상기 패리티 부분 매트릭스인 일반화된 이중 사선 매트릭스에 있어서, 사선간의 옵셋값이 임의의 값을 갖도록 확장하는 과정과, 상기 일반화된 이중 사선 매트릭스를 리프팅 하는 과정과. 상기 리프팅된 일반화된 이중 사선 매트릭스의 서브 매트릭스마다 순환 행 이동(cyclic column shift)을 위한 옵셋 값(offset value)을 결정하는 과정과, 상기 패리티 부분 매트릭스의 열에 대응되는 패리티 심볼을 결정하는 부호화 과정을 포함한다.

Description

저밀도 패리티 검사 코드의 부호화 방법{METHOD FOR ENCODING OF LOW DENSITY PARITY CHECK CODE}
본 발명은 데이터의 부호화 방법에 관한 것으로, 특히 저밀도 패리티 코드(Low-Density Parity Check(LDPC) code)의 부호화 방법에 관한 것이다.
통상적으로 통신 시스템에서는 데이터의 전송 시, 전송되는 데이터를 부호화하여 전송함으로써, 전송의 안정성은 높이며, 많은 재전송이 이루어지지 않도록 함으로써 전송 효율을 높이도록 하고 있다. 이러한 부호화 방법 중 이동통신 시스템에서는 컨벌루셔널 부호화 방법, 터보 부호화 방법 및 준 보완 터보 부호(Quasi Complemental Turbo Coding : QCTC) 등의 방법 등이 사용되고 있다. 상기한 방법들을 사용하는 경우 데이터 전송의 안정성 및 전송 효율을 증대시킬 수 있다는 장점 때문이다.
그런데, 현재 무선 통신 시스템들은 급속도로 발전하고 있으며, 이에 따라 매우 고속의 데이터들을 전송할 수 있는 시스템들이 등장하고 있다. 이러한 무선 통신 시스템에서 보다 더 고속의 데이터들을 전송할 수 있기를 원하고 있다. 따라서 현재 제공되고 있는 상기한 방법들의 부호화 방법보다 높은 효율을 얻을 수 있는 부호화 방법이 요구되고 있다.
이러한 요구에 발맞춰 새로운 대안으로 떠오르고 있는 부호화 방법으로 저밀도 패리티 검사 코드가 있다. 그러면 저밀도 패리티 코드에 대하여 보다 상세히 살피기로 한다. 상기 저밀도 패리티 검사 코드는 1960년대 초 Gallager에 의해 최초로 제안되었으며, 1990년대 이후 MacKay 등에 의해 재조명되었다. 상기 맥케이 등에 의해 재조명된 상기 저밀도 패리티 검사 코드는 sum-product algorithm에 기반하고 있다. 또한 저밀도 패리티 검사 코드는 belief propagation decoding을 사용함으로서 Shannon의 제한 용량(capacity limit)에 근접하는 우수한 성능을 보일 수 부호로 관심을 모으기 시작하였다.
이후 Richardson과 Chung 등은 저밀도 패리티 코드를 구성하는 펙터 그래프(factor graph) 상에서 복호(decoding)과정에서 생성, 갱신(update)되는 메시지(message)들의 확률 분배(probability distribution)가 반복(iteration)에 따라 변화하는 것을 추적하는 density evolution 기법을 제안하였다. 상기 density evolution 기법을 이용하고, cycle free의 펙터 그래프 상에서 무한대의 반복을 가정하였을 때, 오류 확률(probability of error)이 "0"으로 수렴하게 할 수 있는 채널 파라미터(channel parameter : threshold)를 발명하였다. 즉, 펙터 그래프 상에서 가변 노드(variable node)들과 검사 노드(check node)들의 채널 파라미터를 최대화 할 수 있는 분포도(degree distribution)를 제안하였다. 그리고, 이러한 경우가 사이클(cycle)이 존재하는 유한한 길이의 LDPC 코드에 대해서도 적용 가능함을 이론적으로 보였다.
또한 density evolution 기법을 이용하여 비정규(irregular) LDPC 코드의 이론적인 채널 용량(channel capacity)이 Shannon limit에 불과 0.0045 dB까지 근접할 수 있음을 보였다. 특히, Flarion사는 LDPC 코드의 디자인(design) 및 하드웨어(H/W) 구현 등을 주도하면서 비교적 짧은 길이의 LDPC 코드에 대해서도 터보 코드보다 우수한 프레임 오류율(frame error rate)을 갖고, 병렬 복호기(parallel decoder)의 구현이 가능한 multi-edge type vector LDPC 코드를 제안한 바 있다.
이러한 LDPC 코드는 차세대 이동 통신 시스템에서 터보 코드(turbo code)를 대체할 수 있는 강력한 대안으로 거론되고 있다. 즉, 이는 LDPC 코드가 갖고 있는 복호기 구현상의 병렬 구조(parallel structure)와 낮은 복잡도(low complexity), 그리고 성능상의 낮은 오류 마루(low error floor), 양호한 프레임 오류율(good frame error rate) 등의 요인 때문이다. 따라서 앞으로도 많은 연구가 진행되면 보다 우수한 특성들을 갖는 LDPC 코드들이 등장할 것으로 생각된다.
그러나, 현재 LDPC 코드를 구현하는데 문제점은 터보 코드(turbo code)에 비해 부호화(encoding) 과정이 다소 복잡하고, 짧은 프레임 크기(frame size)에서 터보 코드보다 우수한 성능을 낼 수 있는 최적화된 코드의 구조가 필요하다는 점이다. 이를 해결하기 위해 많은 연구가 활발히 진행되어 왔으나, 아직까지 최적화된 LDPC 코드의 부호화를 수행할 수 있는 방안이 제시되고 있지는 않다.
따라서 본 발명의 목적은 부호화 과정이 단순한 저밀도 패리티 검사 코드의 부호화 방법을 제공함에 있다.
본 발명의 다른 목적은 짧은 프레임 크기에서 보다 향상된 저밀도 패리티 검사 코드의 부호화 방법을 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명의 방법은, 정보 부분 매트릭스와 패리티 부분 매트릭스로 구성되는 저밀도 패리티 검사 코드를 생성 방법으로서, 상기 정보 부분 매트릭스를 배열 코드 구조로 변경하고, 각각의 서브 매트릭스 열에 차수 시퀀스(degree sequence)를 할당하는 과정과, 상기 패리티 부분 매트릭스인 일반화된 이중 사선 매트릭스에 있어서, 사선간의 옵셋값이 임의의 값을 갖도록 확장하는 과정과, 상기 일반화된 이중 사선 매트릭스를 리프팅 하는 과정과. 상기 리프팅된 일반화된 이중 사선 매트릭스의 서브 매트릭스마다 순환 행 이동(cyclic column shift)을 위한 옵셋 값(offset value)을 결정하는 과정과, 상기 패리티 부분 매트릭스의 열에 대응되는 패리티 심볼을 결정하는 부호화 과정을 포함한다.
보다 바람직한 본 발명은 상기 차수 시퀀스(degree sequence)를 와 같이 구성할 수 있고,
상기 사선간의 옵셋 값은, 일반화된 이중 사선 매트릭스의 열의 수와 서로소로 구성하는 것이 바람직하다.
또한 바람직하게는 상기 패리티 부분 매트릭스인 일반화된 이중 사선 매트릭스에서 사선상의 서브 매트릭스의 상기 순환 행 이동을 위한 옵셋 값들의 합과 옵셋 사선상의 서브 메트릭스의 순환 행 이동을 위한 옵셋 값들의 합의 차가 0이 아니어야 한다.
그리고, 상기 부호화 과정은,
상기 패리티 부분 매트릭스의 사선상의 서브 매트릭스 열 인덱스 0인 서브 매트릭스내의 첫 번째 행의 패리티 심볼을 결정하는 제1과정과, 상기 설정된 패리티 심볼의 서브 매트릭스 열 인덱스와 같은 서브 매트릭스 열 인덱스를 가지는 옵셋 사선 상의 서브 매트릭스에서 상기 결정된 패리티 심볼과 서브 매트릭스 내의 열 인덱스가 같은 패리티 심볼의 서브 매트릭스 내의 행 인덱스를 설정하는 제2과정과, 상기 옵셋 사선 상의 서브 매트릭스의 서브 매트릭스 행 인덱스와 같은 서브 매트릭스 행 인덱스를 가지는 사선 상의 서브 메트릭스에서 상기 설정된 서브 매트릭스 내의 행 인덱스가 같은 패리티 심볼을 결정하는 제3과정과, 상기 제2과정부터 제3과정까지의 연산을 상기 패리티 매트릭스의 생성이 완료될 때까지 반복 수행하는 반복 과정을 포함하는 것이 바람직하다.
그리고, 상기 제1과정의 상기 패리티 심볼은, 상기 패리티 심볼이 결정될 서브 매트릭스 내의 행 인덱스와 같은 행에 존재하는 정보 부분 매트릭스의 정보 심볼들의 합으로 결정할 수 있다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다.
그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하에서 설명되는 본 발명에서는 간단한 부호화와 우수한 성능을 보일 수 있는 새로운 LDPC 코드를 제안한다. 이를 위해 새로운 패리티 검사 매트릭스(parity check matrix)를 정의한다. 즉, 새로운 패리티 검사 매트릭스를 이용한 새로운 LDPC 코드를 제안한다. 또한 본 발명에 따른 새로운 LDPC 코드가 선형 연산에 의해 간단히 부호화가 가능함을 보이고, 이를 위한 부호화 방법을 제시한다. 그리고 마지막으로 본 발명에서 제안하는 LDPC 코드가 belief propagation decoding에 의해 CDMA2000 1xEV-DV 표준(standard)에서 사용되고 있는 터보 부호(turbo code)보다 우수한 복호 성능을 가짐을 보인다.
이하에서 설명되는 본 발명에서는 논의의 편의를 위해 부호화 율(code rate)이 1/2인 LDPC 코드에 대한 성능 및 구현을 설명한다. 그러나, 부호화 율은 본 발명의 요지 내에서 리프팅이 가능함을 미리 밝혀둔다.
1. 패리티 검사 매트릭스 디자인(Parity check matrix design)
본 절에서는 어레이 코드(array code)와 비정규 반복 축적 코드(irregular repeat accumulate code)를 정의하는 패리티 검사 매트릭스 구조를 접목, 응용하여 생성한 새로운 패리티 검사 매트릭스를 정의한다. 그리고, 이러한 방식으로 생성된 기초 매트릭스(basic matrix)의 성질을 유지하면서 보다 큰 크기를 갖는 매트릭스를 생성하는 방법에 대해서도 살펴보기로 한다.
A. 배열 코드 구조(Array code structure)
일반적으로 (p, r) 어레이 코드에 대한 패리티 검사 매트릭스는 도 1과 같이 정의된다. 도 1은 일반적인 (p, r) 어레이 코드에 대한 패리티 검사 매트릭스를 도시한 도면이다. 그러면 도 1을 참조하여 일반적인 (p, r) 어레이 코드에 대한 패리티 검사 매트릭스에 대하여 설명하기로 한다.
상기 도 1에서 p는 prime number이다. 그리고, p의 크기를 가지는 정방행렬인 pxp 항등 매트릭스(identity matrix)인 I의 각 행들을 j만큼 순환 이동(cyclic shift)하여 얻은 pxp 순환 순열 매트릭스(cyclic permutation matrix)를 σj로 표기하였다. 이러한, σj의 집합으로 이루어진 행(row)과, 열(column)을 각각 서브-매트릭스 행(sub-matrix row)과, 서브-매트릭스 열(sub-matrix column)이라 부르도록 한다. 배열 코드(Array code)를 정의하는 패리티 검사 매트릭스(parity check matrix)의 열과 행은 각각 p개와 r개의 1을 균일하게 가진다. 그리고, p가 적당히 클 경우 매트릭스에서 1이 차지하는 비율은 줄어들어 저밀도 패리티 검사 코드의 구조를 갖게 된다. 또한, 이러한 배열 코드(array code)는 길이가 4인 사이클(cycle) 구조를 갖지 않는다. 즉, 패리티 검사 매트릭스에서 사각형 - 싸이클(cylce) 4 - 을 이루는 4개의 부분 행렬 σia, σib, σja, σ jb (i≠j)에 속해 있는 원소들이 싸이클 4의 구조를 갖는다면 하기 <수학식 1>과 같은 식이 성립되어야 한다.
즉, 상기 <수학식 1>에서 a = b 이어야 한다. 그러나, 임의의 서로 다른 행(row) 부분에 존재하는 a, b는 항상 다른 값을 갖기 때문에 상기 <수학식 1>은 성립할 수 없다. 따라서, 상술한 바와 같은 패리티 검사 매트릭스를 갖는 배열 코드는 싸이클 4의 구조를 갖지 않는다.
본 발명에서는 이상에서 상술한 바와 같은 배열 코드의 패리티 검사 매트릭스 구조를 변형하여 새로운 매트릭스 구조를 생성하여 사용한다. 그러면 본 발명에서 사용할 새로운 매트릭스 구조를 생성하는 과정을 살펴보도록 한다. 또한 이와 같은 변형을 수행하는 목적은 싸이클 4의 구조를 갖지 않는 배열 코드 구조를 기반으로 하되, 생성하고자 하는 매트릭스의 각 열에 존재하는 1의 분포가 다양하게 존재하는 비정규 구조(irregular structure)를 얻기 위함이다. 또, 이러한 과정에서 각 행(row)에 존재하는 1의 분포는 비교적 균일하게 하도록, 즉 최대 2가지 종류만 존재하도록 한다. 그러면 본 발명에서 사용하는 새로운 매트릭스 구조의 생성 방법을 살피기로 한다.
(1) 배열 코드를 구성하는 패리티 검사 매트릭스의 임의의 j번째 서브 매트릭스 열(sub-matrix column)은 하기 <수학식 2>와 같은 서브 매트릭스(sub matrix)들로 이루어져 있다.
(2) 미리 정의된 분포도(degree distribution)에 따라 각 서브 매트릭스 열(sub-matrix column)에 대한 degree sequence를 하기 <수학식 3>과 같이 정의한다.
상기 <수학식 3>에서 djj번째 서브 매트릭스 열에 해당되는 column degree를 의미하며, s는 총 서브 매트릭스 열의 수이다. 또한 상기 s는 임의의 열에 존재하는 최대 1의 개수 d v 와 같도록 한다.
(3) 상기 (2)에서 정의된 degree sequence D에 따라 임의의 j번째 서브 매트릭스 열을 하기 <수학식 4>와 같이 변형하여 정의한다.
즉, 상기 <수학식 4>에서 tjj번째 서브 매트릭스 열 에서 0이 아닌 서브 매트릭스가 존재하기 시작하는 서브 매트릭스 열 번호(sub-matrix row number)이다.
(4) 생성하고자 하는 매트릭스 H d 는 각 서브 매트릭스 열(sub-matrix column)들을 열 벡터(column vector)로 갖는 하기 <수학식 5>와 같은 행렬이다.
이상에서 상술한 과정에 따라 매트릭스의 임의의 한 서브 매트릭스 열(sub-matrix column)을 정의하면, 각 서브 매트릭스 열 내에 존재하는 임의의 한 열에는 해당 서브 매트릭스 열에 할당된 degree만큼의 1의 개수만이 항상 존재하게 된다. 또한, 위와 같은 서브 매트릭스 열들로 이루어지는 매트릭스는 각 매트릭스들간의 서브 매트릭스 중첩(sub-matrix overlap)이 최소화될 것이다. 그러므로 전체 매트릭스의 임의의 한 행에 존재하는 1의 개수도 최소화될 것이다. 즉, 전체 매트릭스에서 한 행에서 1의 숫자는 항상 2개 또는 1개만을 가질 것임을 쉽게 알 수 있다. 그리고, 위와 같이 생성된 행렬 H d 는 배열 코드(array code)구조에서 일부 서브 매트릭스를 제거한 형태이므로, 배열 코드와 마찬가지로 싸이클 4의 구조가 항상 존재하지 않음을 쉽게 알 수 있다.
도 2는 임의의 한 열에 존재하는 1의 최대 개수가 d v 이고, 그러한 서브 매트릭스 열의 수가 n v 이며, 나머지 서브 매트릭스 열들에 존재하는 1의 수는 항상 3인 경우의 매트릭스 H d 를 예로서 도시한 도면이다.
본 발명에서는 상기 도 2에 도시한 바와 같은 배열 코드 구조를 기반으로 정의된 패리티 검사 매트릭스 H의 정보(information) 부분 매트릭스 H d (220)은 본 발명에서 정의하고자 하는 저밀도 패리티 코드의 패리티 검사 매트릭스의 H의 서브 매트릭스로 사용할 것이다. 그러면 이하에서 상기 패리티 검사 매트릭스 H의 패리티 부분을 구성하는 서브 매트릭스의 생성을 위해 비정규 반복 축적 코드(irregular repeat accumulate code) 구조에 대하여 살피도록 한다.
B. 일반화된 이중 대각선 매트릭스(Generalized dual-diagonal matrix)
비정규 반복 축적 코드(Irregular repeat accumulate(IRA) code)는 간단한 부호기(encoder) 구조를 가지면서 메시지 패싱 복호기(message passing decoder)에 의해 비교적 우수한 성능을 얻을 수 있다고 알려져 있다. 이러한 비정규 반복 축적 코드는 저밀도 패리티 검사 코드의 한 형태로 볼 수 있다.
도 3은 비정규 반복 축적 코드의 펙터 그래프(factor graph) 구조를 도시한 도면이다. 그러면 도 3을 참조하여 반복 축적 코드의 펙터 그래프 구조에 대하여 살펴보기로 한다. 상기 도 3의 비정규 반복 축적 코드의 펙터 그래프는 시스테메틱(systematic) 버전(version)으로서, 코드워드(codeword)의 패리티(parity) 심볼에 해당하는 패리티 노드(parity node)들은 하나의 패리티 노드만을 제외하고는 모두 degree 2를 갖는다. 즉, 각 패리티 노드들(301, 302, 303, …, 304, 305, 306, 307)과 연결되는 가지(edge)들은 2개씩으로 구성된다. 패리티 노드의 이러한 구조는 주어진 정보 심볼(information symbol)에 의한 패리티 심볼(parity symbol)의 생성을 선형 연산만으로 쉽게 이루어지도록 할 수 있는 장점을 갖는다. 또한 상기 도 3에 도시한 바에서 알 수 있듯이 비정규 반복 축적 코드의 정보 노드는 다양한 degree 분포를 가질 수 있다. 이러한 정보 노드의 값들은 무작위 순열(random permutation)(320)을 통해 검사 노드와 연결된다.
상기 도 3과 같은 펙터 그래프를 가지는 비정규 반복 축적 코드를 매트릭스 형태로 도시하면 도 4와 같이 도시할 수 있다. 도 4는 비정규 반복 축적 코드를 가지는 저밀도 패리티 코드의 매트릭스를 도시한 도면이다.
상기 도 4의 저밀도 패리티 코드의 매트릭스 중에서 패리티 부분의 사선은 '1'을 뜻하며, 각 사선들간의 offset f(401)는 일반적인 비정규 반복 축적 코드에서 1의 값을 갖는다. 따라서, 비정규 반복 축적 코드를 정의하는 패리티 검사 매트릭스의 패리티 부분에 해당하는 서브 매트릭스는 이중 사선 매트릭스(dual-diagonal matrix) 형태를 갖게 된다. 그리고, 패리티 검사 매트릭스의 정보 부분의 각 열에 존재하는 1의 개수는 비정규 분포(irregular distribution)를 가진다. 이들의 분포는 도 4의 무작위 순열부(random permutation unit)에 의해 정의된다.
본 발명에서는 비정규 반복 축적 코드 구조의 패리티 부분만을 고려한다. 따라서 패리티 부분만을 일반화하고, 새로운 형태의 매트릭스를 제안한다.
상기 도 4에서 일반적인 비정규 반복 축적 코드에서는 각 사선들간의 옵셋인 f = 1인 값을 갖는 경우를 도시하였다. 본 발명에서는 상기 옵셋 값(offset value) f를 임의의 값을 갖도록 리프팅하면 패리티 부분의 이중 사선 매트릭스는 도 5와 같이 일반화되어 도시할 수 있다. 상기 도 5의 제1사선(501)은 상기 매트릭스의 최상위 열과 최상위 행의 위치부터 최종 열의 최종 행으로 사선을 이룬다. 그리고, 제2사선의 제1부분 사선(502a)은 상기 옵셋 값만큼 열 이동한 위치의 첫 번째 위치에서 '0'의 값을 가지고, 나머지는 동일한 옵셋 값으로 제2사선의 제1부분 사선(502a)의 마지막 부분까지 1을 가지며, 제2사선의 제2부분 사선(502b)은 그 다음 행의 첫 번째 열부터 1의 값을 가지고 사선을 이루어 구성된다.
이와 같은 상기 도 5는 본 발명에 따라 이중 사선 매트릭스의 옵셋 값을 임의의 값으로 리프팅한 경우의 패리티 매트릭스를 도시한 도면이다. 상기 도 5에 도시한 바와 같이 옵셋 값이 변경되어도 특정한 열에 "1"이 하나만 존재하는 열은 반드시 존재하게 된다. 즉, 주의해야 할 점은 모든 열에 존재하는 "1"의 개수가 2이면, 이중 사선 매트릭스의 계수(rank)가 매트릭스의 행보다 작아지게 된다. 따라서 상기 도 5에 도시한 바와 같이 두 번째 사선의 첫 번째 행에는 "1"이 존재하지 않도록 즉, "0"이 되도록 한다는 점이다. 상기 도 5와 같은 매트릭스의 크기가 r인 정방 행렬 즉, r x r 매트릭스인 경우, 이중 사선 매트릭스의 옵셋 값 f와 상기 매트릭스의 크기 r이 공통 인수를 갖지 않으면 임의의 주어진 정보 심볼들의 셋(set)에 대해 r번의 덧셈 연산만으로 r개의 모든 패리티 심볼을 생성할 수 있다. 이의 증명을 위해 우선 다음과 같은 정리를 생각한다.
정리 1(Theorem 1) : 임의의 아벨리안 그룹(Abelian group) AGr = {0, 1, 2, …, r-1}의 임의의 한 원소(element) 가운데, r과 서로 소이며 0이 아닌 임의의 원소 f는 항상 자기 자신에 대한 r번 또는 그 이하의 덧셈으로 AGr의 모든 원소를 생성한다. 이를 증명하기 위해 만일 r과 서로 소이며 0이 아닌 임의의 원소 fr번 또는 그 이하의 덧셈에 의해 AGr의 모든 원소를 생성할 수 없다면, r보다 작은 어떠한 k에 대해 하기 <수학식 6>의 조건을 만족시키는 k가 존재하게 된다.
그러나, 상기 <수학식 6>은 fr이 서로 소라는 가정에 위배된다. 즉, 상기 <수학식 6>을 만족시키는 k의 최소 값은 항상 r이어야 한다. 따라서, 원소 fr번의 덧셈 연산에 의해 AGr의 모든 원소를 생성할 수 있게 된다.
또한 상기 도 5에 도시한 이중 사선 매트릭스(dual diagonal matrix)이 임의의 패리티 검사 매트릭스의 패리티 부분에 해당하는 행렬이다. 따라서, 상기 도 5의 행렬에서 임의의 i번째 열은 패리티 검사 매트릭스의 나머지 정보(information) 부분에 해당하는 행렬의 i번째 열로부터 항상 하기 <수학식 7>과 같은 정보를 얻을 수 있다.
상기 <수학식 7>에서 d i i번째 정보(information) 심볼이며, a i 는 패리티 검사 매트릭스의 정보 부분에 해당하는 행렬의 i번째 열에 존재하는 1의 수이다. 그리고, 덧셈은 GF(2) 상에서의 덧셈 연산을 뜻한다. 상기 GF(2)란 Galois Field over 2의 뜻으로, modulo 2상에서 정의되는 유한체 집합(Finite Field)을 뜻한다. 상기 유한체 집합(Finite Field)이란 원소의 개수가 유한하고, 덧셈과 곱셈(over modulo 2)에 대해 닫혀 있으며, 덧셈에 대한 항등원 및 역원이 각각 존재하고, 곱셈에 대한 항등원과 0이 아닌 원소에 대한 역원이 존재하며, 덧셈 및 곱셈에 대하여 교환, 결합 및 분배 법칙이 성립하는 집합을 뜻한다. 따라서, GF(2)란 이러한 성질을 만족하는 {0, 1}의 집합을 뜻한다. 그러므로, 상기 도 5에 도시한 행렬에서 첫 번째 열에 해당하는 패리티 검사 방정식(parity check equation)에 의해 얻을 수 있는 첫 번째 패리티 심볼은 하기 <수학식 8>과 같다.
그리고, 상기 도 5의 행렬 구조에서 사선(diagonal line)과 옵셋 사선(offset diagonal line)에 존재하는 임의의 1에 대한 열 인덱스(column index)와 행 인덱스(row index)는 각각 하기 <수학식 9>와 같은 관계를 갖는다.
상기 <수학식 9>에 도시된 2개의 식을 이용하면, p r-f 를 구할 시, p 0 를 이용하여 하기 <수학식 10>과 같이 계산됨을 알 수 있다.
또한 상기 도 5에 도시한 바와 같이 패리티 검사 행렬이 이중 사선 매트릭스 구조를 가지므로, 이를 이용하면, 상기 <수학식 10>은 하기 <수학식 11>과 같이 변경이 가능하다.
이와 같이 상기 <수학식 11>에 의해 임의의 패리티 심볼 p r-if 를 얻을 수 있고, 상기 '(정리 1)'에 의해 rf가 서로 소이면, i가 증가함에 따라 (r-if ) (mod r)의 값은 1부터 r-1까지의 모든 값을 반드시, 오직 한 번만 갖게 된다. 이에 따라 rf가 서로 소이면 위의 과정을 통해 모든 패리티 심볼의 값을 구할 수 있게 된다. 그러므로, 이상에서 상술한 방법을 통해 상기 도 5와 같은 패리티 부분을 가지는 패리티 검사 매트릭스는 항상 선형 연산에 의해 간단한 부호화가 가능하게 된다. 도 6은 상기 도 5와 같은 부호화 과정에서 p 0 , p r-f , p r-2f , … 의 값들을 순차적으로 구하는 과정을 도시한 도면이다.
상기 도 6을 참조하여 간략히 살펴보면, 참조부호 601과 같이 제0열 제0행의 값으로부터 제0열의 제r-f행의 위치 값이 연결되어 있다. 그리고, 상기 제0열의 제r-f행의 위치 값은 참조부호 602와 같이 제r-f열의 제r-f행의 위치 값과 연결되어 있음을 알 수 있다. 이와 같이 상기 제1사선(610)과 제2사선의 제1부분 사선(620a)과 제2사선의 제2부분 사선(620b)의 영역에만 1이 위치한다. 그리고, 상기 사선들 중에서 첫 번째 열에는 1의 값이 하나만 존재하기 때문에 상기한 바와 같이 계속적으로 1의 값을 찾아 2차 함수를 풀어보면, 결과적으로 모든 값들을 찾을 수 있게 된다.
지금까지 설명한 일반화된 이중 사선 매트릭스 구조는 본 발명에서 정의하고자 하는 저밀도 패리티 검사 코드의 패리티 검사 매트릭스(parity check matrix) H의 패리티 부분의 서브 매트릭스(sub-matrix) H p 로 사용될 것이다. 이제 본 발명에서 정의하고자 하는 저밀도 패리티 검사 코드의 패리티 검사 매트릭스를 생성하는 방법에 관해 살펴보도록 한다.
C. 패리티 검사 매트릭스 구조(Parity check matrix construction)
그러면 이하에서는 A절에서 살핀 배열 코드 구조와, B절에서 살핀 일반화된 이중 사선 매트릭스 구조를 이용하여 본 발명에 따른 새로운 패리티 검사 매트릭스(parity check matrix) H를 생성하는 방법과, 그 구조에 대하여 설명하도록 한다. 이하에서 설명되는 패리티 검사 매트릭스는 A절에서 살핀, 배열 코드(array code) 구조를 기반으로 정의된 매트릭스 H d 를 패리티 검사 매트릭스 H의 정보(information) 부분으로 정의한다. 그리고, B절에서 살핀 일반화된 이중 사선 매트릭스 H p 를 상기 정보 부분 매트릭스 H의 패리티 부분으로 정의한다. 따라서 본 발명에서 설계하고자 하는 저밀도 패리티 검사 코드를 정의하는 패리티 검사 매트릭스 H는 하기 <수학식 12>와 같은 구조를 가진다.
상기 <수학식 12>에서 패리티 검사 매트릭스의 정보 부분 행렬 H d 의 각 서브 매트릭스 열(column)들은 미리 정의된 분포도(degree distribution)에 따른 degree sequence D에 의해 정의되고, 각 서브 매트릭스 열(sub-matrix column)을 이루는 단위 서브 매트릭스 σij는 크기가 p pxp의 항등 매트릭스(identity matrix)를 서브 매트릭스 열 인덱스 i와 서브 매트릭스 행 인덱스 j의 곱인 ij만큼 열을 이동시킨(column shift) 주기적 순열 매트릭스(cyclic permutation matrix)이다. 이때 p는 항상 소수(prime number)이다. 그리고, H p H d 의 구조와 일치시키기 위해 매트릭스 내에 존재하는 1과 0을 각각 pxp 매트릭스와 0 행렬로 'lifting'시킨다.
그러면 이하에서 상기한 바와 같이 본 발명에 따른 저밀도 패리티 검사 코드를 생성하기 위한 과정들을 차례로 살피기로 한다.
(가) 분포도와 패리티 검사 서브 매트릭스 H d 구조(Degree distribution and H d construction)
리차드슨(Richardson) 등은 저밀도 패리티 코드를 정의하는 펙터 그래프(factor graph) 상에서 메시지 패싱 디코딩(message passing decoding)이 이루어질 때, sum-product algorithm에 의한 가변 노드와 검사 노드의 메시지 갱신(variable & check node message update) 과정과 이들의 반복 처리(iterative processing) 과정에 의한 메시지들의 변화를 그들의 확률적 분포(probabilistic distribution)의 변화를 통해 추적할 수 있음을 보였다. 그리고, 이러한 density evolution 방법을 통해 주어진 분포도(degree distribution)를 갖는 펙터 그래프(factor graph)로 정의되는 저밀도 패리티 코드의 평균 에러 확률(probability of error)이 0으로 수렴하는지의 여부를 결정할 수 있는 채널 파라미터 임계 값(channel parameter threshold)이 존재함을 보였다. 또한, 상기 채널 파라미터 임계 값보다 작은 채널 파라미터(channel parameter)에 대해서는 복호 과정에서 무한대의 반복(iteration)을 가정하였을 때 비트 에러 확률(probability of bit error)이 항상 0으로 수렴할 수 있음을 보였다. 따라서, 이러한 density evolution technique은 특정한 채널 환경에 대한 임계(threshold) 값을 개선시킬 수 있는 저밀도 패리티 코드의 분포도(degree distribution)를 최적화(optimize)할 수 있는 디자인 방법(design tool)으로 사용될 수 있다. 따라서, 저밀도 패리티 코드에 대한 최적화된 분포도(degree distribution)와 그때의 임계(threshold)값을 구하기 위해 많은 연구들이 수행되어 왔다.
본 발명에서는 이미 정의된 최적화된 가변 노드 분포도(variable node degree distribution)를 본 발명에서 정의하고자 하는 패리티 검사 매트릭스(parity check matrix) H의 가변 노드 분포도(variable node degree distribution)로 근사화 시켜 사용하도록 한다. 이 때, degree 2인 가변 노드는 모두 H의 패리티(parity) 부분, 즉 H p 의 각 열(column)로 할당하고, 그 이상의 degree를 갖는 가변 노드는 H의 정보(information) 부분, 즉 H d 의 각 열(column)로 할당하도록 한다. 그리고, A 절에서 살핀 '배열 코드 구조'와 B 절에서 살핀 '일반화된 이중 대각선 매트릭스'의 서브 매트릭스 구조(sub-matrix construction)로부터 패리티 검사 매트릭스 H의 check node degree는 주어진 모든 1의 개수에 있어서 항상 최소화된 두 가지 또는 한 가지의 종류만을 갖게 된다.
이제 본 발명에서 정의하고자 하는 패리티 검사 매트릭스의 정보 부분 H d 를 정의하기 위한 degree sequence를 정하도록 한다. 저밀도 패리티 검사 코드를 정의하는 펙터 그래프(factor graph) 상의 maximum variable node degree를 d v 라 하면, 가변 노드 상에 존재하는 각 에지(edge)의 분포는 하기 <수학식 13>과 같은 다항식으로 도시할 수 있다.
상기 <수학식 13>에서 λi는 degree가 i인 가변 노드에 존재하는 에지(edge)의 비율을 나타낸다. 그리고, 주어진 λ(x)에 대해 펙터 그래프 상에서 degree가 j인 가변 노드의 비율 c j 은 하기 <수학식 14>와 같이 표현될 수 있다.
상기와 같이 주어지는 <수학식 14>에서 구현을 고려하여 maximum variable node degree의 값이 15인 경우에 대하여 패리티 검사 매트릭스의 구성을 살펴보도록 한다. 저밀도 패리티 코드를 정의하는 펙터 그래프 상의 maximum variable node degree의 값이 15인 경우에 2진 입력 백색 가우시안 잡음을 가지는 채널(binary input additive white Gaussian noise(BI-AWGN) channel) 환경에서의 부호율(code rate) 1/2에 대한 최적의 분포도(degree distribution)는 density evolution에 의해 하기 <수학식 15>와 같음이 알려져 있다.
이때, 각 가변 노드(variable node)들의 에러 확률(probability of error)을 0으로 수렴하도록 하는 백색 가우시안 잡음 채널에서 최대 채널 파라미터 잡음 변화(channel parameter noise variance in AWGN channel) σ*는 0.9622이며, 이를 Eb/No으로 환산하면 0.3348 dB가 된다. 즉, 위와 같은 degree distribution을 갖는 펙터 그래프에 의해 정의되는 저밀도 패리티 코드는 무한 블록 크기(infinite block size), 무한 반복(infinite iteration)을 가정한 belief propagation decoding에 의해 Shannon의 제한 용량(capacity limit)에 0.3348 dB만큼의 근접한 성능을 보이게 된다. 이상의 설명에서와 같은 degree distribution을 갖는 펠터 그래프 상에서 각 degree를 갖는 가변 노드의 비율은 하기 <수학식 16>과 같다.
본 발명에서 정의하고자 하는 패리티 검사 매트릭스에서 degree 2인 가변 노드는 항상 패리티 부분 H p 에 할당되어야 하고, 정보 부분 H d 에는 항상 degree 2 이외의 가변 노드만이 할당되어야 한다. 그리고, 정보 부분 H d 의 각 서브 매트릭스 열(sub-matrix column) 내의 모든 열들은 동일한 열 가중치(column weight)를 갖도록 되어 있다. 그러므로, 패리티 검사 매트릭스 H의 펙터 그래프 상에서 각 degree를 갖는 가변 노드의 비율은 하기 <수학식 17>과 같이 근사화 된다.
상기 <수학식 17>과 같은 가변 노드 비율을 이용하여 다시 degree distribution 다항식 λ(x)를 구하고, 이에 따른 degree distribution에 의해 정의되는 저밀도 패리티 코드의 AWGN에서 임계 값(threshold) σ*를 구하면 하기 <수학식 18>과 같다.
상기 <수학식 18>에 도시한 바와 같은 값은 부호화 율 1/2인 저밀도 패리티 코드에 해당하는 값이다. 상기한 값을 도출할 때, 해석 기술(analysis technique)로는 가우시안 근사 값(Gaussian approximation)에 의한 density evolution 방법을 사용하였고, 예측된 비트 오류 확률(estimated probability of bit error)이 10-6보다 작으면 error free인 경우로 간주하여 계산된 값이다. 이를 이용하여 정보 부분 H d 의 각 서브 매트릭스 열에 할당되는 degree sequence는 하기 <수학식 19>와 같이 정의될 수 있다.
본 발명에서는 배열 코드 구조를 설명한 A 절의 설명에서와 같이 패리티 검사 매트릭스 H의 정보 부분 H d 는 상기 <수학식 18>에서와 같이 정의된 degree sequence에 따른 배열 코드 구조를 기반으로 하여 정의될 수 있다.
도 7은 maximum variable node degree가 15인 경우, 전술한 A 절의 설명에서와 같은 방식으로 생성한 패리티 검사 매트릭스의 정보 부분 H d 의 일례를 도시한 도면이다. 상기 도 7에 도시한 바와 같은 매트릭스 구조에서 각 열 및 각 행은 서브 매트릭스 열 및 행을 의미한다. 또한 각 열 및 각 행에 해당하여 도시한 숫자들은 각 서브 매트릭스 열 및 행의 서브 매트릭스들의 순환 이동(cyclic shift)을 나타낸다. 그리고, 상기 각 숫자들은 pxp 서브 매트릭스로 구성되며, 상기 서브 매트릭스에서 p는 89인 경우이다. 따라서 상기한 바와 같이 생성된 정보 부분 Hd의 매트릭스는 (d v · p)x(d v · p) 매트릭스가 된다.
(나) 매트릭스 리프팅과 패리티 매트릭스 구조(Lifting and H p construction)
일반적으로 매트릭스의 리프팅(lifging)은 임의의 위치에 0과 1을 가지는 매트릭스에서 대하여 서브 매트릭스 교체(sub-matrix replacement)에 의해 기본 매트릭스의 크기를 리프팅 하는 방법을 말한다. 그러면 이를 도 8을 참조하여 설명하기로 한다. 도 8은 임의의 4x4 매트릭스의 각 원소를 3x3 항등 매트릭스(identity matrix) 또는 3x3 0 매트릭스(matrix)로 대치하는 방식에 의해 기본 4x4 매트릭스를 12x12 매트릭스로 매트릭스 리프팅(lifting)시킨 행렬을 도시한 도면이다.
상기 도 8에 도시한 바와 같이 매트릭스의 리프팅은 0의 원소에 대하여는 리프팅하고자 하는 크기의 배수만큼 0의 원소만을 가진 정방행렬로 구성한다. 즉, 첫 번째 행에 대하여만 살펴보기로 한다. 첫 번째 행에 위치한 각 열들의 원소들은 {0, 0, 1, 0}이 되며, 그에 대하여는 각각 801, 802, 803, 804의 참조부호를 부여하였다. 상기 각 원소들 중 0의 값을 가지는 3개의 원소들(801, 802, 804)은 각각 3x3 매트릭스로 리프팅시켜 참조부호 801a, 802a, 804a로 리프팅 시켰다. 그리고, 1의 원소를 가지는 첫 번째 행의 원소(803)는 3x3의 크기를 가지는 항등 행렬로 리프팅 하였다. 이는 다른 열의 원소에 대하여도 동일하게 적용하여 구성한 것이다.
위에서 설명한 바와 같이 매트릭스 리프팅(lifting)이란, 일반적으로 0과 1로 이루어진 기본 매트릭스(base matrix)의 각 원소들의 위치에 kxk 서브 매트릭스를 삽입하여 매트릭스의 크기를 확장하는 방법을 말한다. 이때, 삽입되는 kxk 매트릭스는 일반적으로 항등 매트릭스(identity matrix)의 각 열을 순환 이동(cyclic shift)한 순환 순열 매트릭스(cyclic permutation matrix)를 사용한다.
본 발명에서 정의하고자 하는 패리티 검사 매트릭스 H의 패리티 부분 H p 는 B 절에서 설명한 바와 같이 일반화된 이중 사선 매트릭스(generalized dual-diagonal matrix)이다. 또한 상기 C 절의 (가)에서 설명한 바와 같이 생성한 H d pxp 서브 매트릭스들로 이루어져 있음을 고려하여, H p 또한 rx r의 일반화된 이중 사선 매트릭스(generalized dual-diagonal matrix)를 pxp 서브 매트릭스를 이용하여 리프팅(lifting)하여 구성하도록 한다.
도 9는 pxp 순환 치환 서브 매트릭스에 의한 매트릭스 리프팅(lifting)을 통해 구성한 패리티 매트릭스 H p 을 도시한 도면이다. 그러면 도 9를 참조하여 패리티 매트릭스 리프팅에 대하여 설명하도록 한다. 상기 순환 치환 서브 매트릭스에 의한 리프팅된 매트릭스는 저밀도 패리티 코드의 선형 시간 부호화(linear time encoding) 및 각 행들간의 선형 독립(linear independency)을 위해 의 첫 번째 행에 존재하는 1은 제거한다. 도 9와 같이 구성된 패리티 부분 H p 는 (rp )x(rp) 매트릭스가 되며, 각 서브 매트릭스 에서 j i 는 각 서브 매트릭스마다 할당된 순환 열 이동(cyclic column shift)을 위한 옵셋 값(offset value)이다. 그러면 이제 선형 연산에 의한 부호화가 가능하도록 하는 방법에 대해 살펴보도록 한다.
전술한 B 절(일반화된 이중 사선 매트릭스)에서 살핀 바를 도 9와 같이 리프팅(lifting)된 패리티 부분 H p 에 적용하면, rf가 서로 소일 때 r번의 연산에 의해 패리티 부분 H p 의 각 서브 매트릭스 열(sub-matrix column)은 반드시, 오직 한 번씩만 선택됨을 알 수 있다. 그리고, 이 한 번의 선택 과정에서는 서브 매트릭스 열 내의 임의의 한 열에 해당하는 패리티 심볼을 구하는 연산을 수행할 수 있다. 따라서, 임의의 한 pxp 서브 매트릭스 의 모든 열에 해당하는 패리티 심볼들을 구하기 위해서는 rp 만큼의 연산 동안 p개의 열에 해당하는 패리티 심볼에 대한 연산이 반드시, 오직 한 번씩만 이루어져야 한다. 이제 이러한 조건이 만족되기 위한 서브 매트릭스의 옵셋 값(offset value)에 대한 조건을 살펴보도록 한다.
상기 도 9와 같은 패리티 부분 H p 의 매트릭스 구조에서 서선(diagonal line)에서 서브 매트릭스 행 인덱스(sub-matrix row index) i인 서브 매트릭스 내의 행 인덱스(row index) 와 열 인덱스(column index) 의 관계는 하기 <수학식 20>과 같이 정의된다.
또한 옵셋 사선(offset diagonal line)의 서브 매트릭스 행 인덱스(sub-matrix row index) i인 서브 매트릭스 내의 행 인덱스(row index) 와 열 인덱스(column index) 의 관계는 하기 <수학식 21>과 같이 정의된다.
그러면, 상기한 <수학식 20>과 <수학식 21>로부터 서브 매트릭스 행 인덱스 0인 서브 매트릭스(sub-matrix) 의 첫 번째 행으로부터 하기 <수학식 22>와 같이 패리티 심볼 의 값을 얻을 수 있다.
이때, 상기 <수학식 22>에서 v0는 패리티 검사 매트릭스의 정보 부분 H d 의 첫 번째 행으로부터 얻게 되는 partial check-sum value이다. 그리고, 열 인덱스가 j0일 때, 이와 동일한 열을 공유하는 옵셋 사선의 서브 매트릭스 내의 행 인덱스는 하기 <수학식 23>과 같이 도시할 수 있다.
그리고, 이와 동일한 행 인덱스를 공유하는 사선의 서브 매트릭스 내의 열 인덱스는 하기 <수학식 24>와 같이 도시할 수 있다.
상기 <수학식 23>과 <수학식 24>의 rf가 서로 소이면 이와 같은 과정의 r번 반복 동안 패리티 부분 H p 내의 모든 서브 매트릭스들을 반드시, 오직 한 번만 선택할 수 있다. 그러므로, 상기와 같은 과정을 r번 반복하여 다시 얻게 되는 서브 매트릭스 내의 행 인덱스는 하기 <수학식 25>와 같이 도시할 수 있다.
상기 <수학식 25>에서 다른 모든 서브 매트릭스의 열 인덱스로 리프팅하면, 임의의 r번의 연산을 통해 사선에 존재하는 서브 매트릭스 에 대해 업데이트 되는 열 인덱스의 변화량 x는 항상 하기 <수학식 26>과 같음을 알 수 있다.
정리 2(Theorem 2) : 임의의 소수(prime number) p에 의해 정의되는 유한 필드(Finite field) Fp = {0, 1, 2, …, p-1}의 0이 아닌 임의의 모든 원소는 항상 자기 자신에 대한 p번 또는 그 이하의 덧셈에 의해 Fp의 모든 원소를 반드시, 오직 한 번 생성할 수 있다. 이를 증명하기 위해 상기 유한 필드 Fp의 0이 아닌 임의의 원소 a에 대해 하기 <수학식 27>을 만족시키는 p보다 작은 k가 존재한다면 p 가 소수(prime number)라는 가정에 위배된다. 그러므로, 하기 <수학식 27>을 만족하는 k의 최소 값은 항상 p이다.
따라서, 유한 필드 Fp의 0이 아닌 임의의 원소 a는 p번 또는 그 이하의 덧셈 연산에 의해 Fp의 모든 원소를 생성할 수 있게 된다. 정리 2로부터 r번의 선형 연산에 의해 업데이트 되는 임의의 서브 매트릭스 의 열 인덱스 변화량이 0이 아니면, 이러한 r번의 선형 연산을 모두 p번 반복하면 각 서브 매트릭스들의 p개의 열 인덱스에 대한 패리티 심볼을 생성할 수 있다. 따라서 rp개의 모든 패리티 심볼을 생성할 수 있게 된다. 즉, 하기 <수학식 28>과 같은 조건을 만족하게 된다.
상기 <수학식 28>과 같은 r번의 연산을 p번 반복하여 서브 매트릭스 내의 모든 열에 해당하는 패리티 심볼을 생성할 수 있게 된다. 아울러, 사선상에 존재하는 나머지 (r-1)개의 각 서브 매트릭스 내의 임의의 한 열에 해당하는 패리티 심볼은 위 r번의 연산 동안 하나씩 생성될 수 있게 된다. 따라서, 다음과 같은 rp번의 선형 연산에 의해 rp개의 서로 다른 열 인덱스를 갖는 패리티 심볼을 반드시, 오직 한 번 생성할 수 있게 됨을 알 수 있다.
이상에서 설명한 방법에 의거하여 패리티 부분 H p 의 매트릭스를 생성하는 과정을 도 10을 참조하여 설명하도록 한다. 도 10은 본 발명의 바람직한 실시 예에 따라 패리티 부분의 매트릭스를 생성하기 위한 흐름도이다.
패리티 부분의 매트릭스를 생성하기 위해 1000단계에서 패리티 심볼 계산 인덱스(parity symbol calculation index) n을 0으로 한다. 그런 후 1002단계로 진행하여 서브 매트릭스 열 인덱스가 0인 서브 매트릭스 상의 첫 번째 열에 대하여 정보 부분 H d 의 매트릭스 구성에 따라 정보 심볼의 합(information symbol sum) v 0를 구하고, 해당 서브 매트릭스 상의 첫 번째 행에 대한 패리티 심볼 을 v0로 한다. 그리고, 1004단계로 진행하여 패리티 부분 H p 의 사선상에서 서브 매트릭스 열 인덱스 0인 서브 매트릭스 상에 존재하는 패리티 심볼에 대한 열 인덱스 를 j0로 초기화 한다.
이와 같이 행의 첫 번째 행에 대하여 정보 부분 H d 의 매트릭스 구성에 따라 정보 심볼의 합 v0을 계산하여 첫 번째 행에 대한 패리티 심볼 를 결정하고, 열 인덱스를 초기화 한 후에 1006단계로 진행한다. 1006단계로 진행하면, 임의의 열 인덱스 에 대하여, 이와 동일한 열을 공유하는 옵셋 사선(offset diagonal line)에 존재하는 서브 매트릭스 내의 행 인덱스 을 하기 <수학식 29>와 같이 구한다.
그런 후, 옵셋 사선상의 행 인덱스 와 동일한 행 인덱스를 갖는 사선상에 존재하는 서브 매트릭스 내의 열 인덱스 를 하기 <수학식 30>과 같은 식으로 계산한다.
그리고, 1010단계로 진행하여 서브 매트릭스 행 인덱스 i+(r-f)인 서브 매트릭스 내의 행 인덱스 인 행에 존재하는 정보 심볼의 합(sum) 를 구한다.
그리고, 행 인덱스 에 해당하는 패리티 심볼 을 하기 <수학식 31>과 같은 식을 이용하여 계산한다.
그런 후 1014단계로 진행하여 상기 n을 1만큼 증가시킨다. 그리고, 1016단계로 진행하여 서브 매트릭스 행 인덱스 i를 하기 <수학식 32>와 같이 갱신(update)한다.
그리고, 1018단계로 진행하여, 상기 n rp인가를 검사한다. 상기 1018단계의 검사는 부호화가 완료되었는가를 검사하는 것이다. 상기 1018단계의 검사결과 n rp인 경우 부호화가 완료되었으므로 상기 루틴을 중지한다. 그러나, 1018단계의 검사결과 n rp가 아닌 경우 1006단계로 진행하여 그 이하 과정을 반복함으로써 부호화를 계속 수행한다.
이상의 과정에서 주의할 사항은 모든 인덱스 연산 - 서브 매트릭스 행 인덱스(sub-matrix row index), 행 인덱스(row index) - 은 모듈러(modulo) p 연산을 의미하며, 인덱스 연산 과정의 첨자에 대한 연산 또한 모듈러 p 연산이라는 점이다. 그리고, 패리티 심볼 또는 정보 심볼을 구하는 과정의 덧셈은 모듈러 2 연산이다. 이와 같은 조건을 만족하도록 하면서 생성한 H p 의 한 예를 도시하면, 도 11과 같이 도시할 수 있다. 상기 도 11에 도시한 각 숫자들의 값들은 서브 매트릭스들의 옵셋 값(offset value)을 뜻한다.
(다) 저밀도 패리티 코드의 전제적 구조(Overall construction of H )
본 발명에서 정의하고자 하는 저밀도 패리티 코드에 대한 패리티 검사 매트릭스 H는 시스테메틱 부호화(systematic encoding)를 위해 매트릭스를 정보 부분 H d 와, 패리티 부분 H p 으로 나누고 이들을 결합(concatenation)시켜 정의한다. 정보 부분 H d 와 패리티 부분 H p 의 생성은 각각 (가) 절과 (나) 절에서 설명한 방식에 의해 이루어지고, 생성된 정보 부분 H d 와 패리티 부분 H p 는 각각 (dv·p)x(dv·p), (rp)x(rp) 매트릭스가 된다. 이 때, d v 는 비정규 저밀도 패리티 코드 상에서 존재하는 maximum variable node degree이며, p는 서브 매트릭스의 차원(dimension), r은 패리티 부분 Hp를 리프팅(lifting)시키기 전의 기본 매트릭스의 차원(dimension)이다. 따라서, 결합(concatenation)을 위해서는 r = d v 이어야 한다.
각각의 매트릭스 정보 부분 H d , 패리티 부분 H p 내부에는 길이가 4인 싸이클(cycle)이 존재하지 않음을 쉽게 알 수 있다. 또한, 패리티 부분 H p 의 사선 옵셋 fr/2에 가까운 값으로 정하면, 열 가중치(column weight)가 r/2보다 작은 정보 부분 H d 의 서브 매트릭스 열과 패리티 부분 H p 의 임의의 열 사이에도 길이가 4인 싸이클이 존재하지 않음을 쉽게 알 수 있다. 다만, 정보 부분 H d 에서 maximum variable node degree를 가중치로 갖는 열들의 경우에는 패리티 부분 H p 의 열들과 길이가 4인 싸이클이 존재할 가능성이 있다. 이는 패리티 부분 H p 의 서브 매트릭스 옵셋(sub-matrix offset) 값을 적절히 선택하면 쉽게 제거하여 전체 패리티 검사 매트릭스 H에 길이가 4인 싸이클이 존재하지 않도록 할 수 있다.
2. 저밀도 패리티 코드의 성능(Performance of LDPC code)
지금까지 선형 연산에 의해 시스테메틱 부호화(systematic encoding)가 쉽게 이루어 질 수 있는 부호율(rate) 1/2 비정규 저밀도 패리티 코드를 정의하기 위한 패리티 검사 매트릭스의 구조에 관하여 살펴보았다. 1장에서 정의한 패리티 검사 매트릭스는 주어진 정보 심볼에 따라 코드워드(codeword)의 패리티 심볼을 생성하기 위해 매트릭스를 정보 부분과 패리티 부분으로 나누어 생각하였다. 그리고, 정보 부분의 행렬은 배열 코드(array code) 구조를 기반으로 한 매트릭스 구조에 각 열의 가중치가 가변 노드의 optimum irregular degree distribution에 근사한 degree를 갖도록 구성하였으며, 패리티 부분의 행렬은 일반화된 이중 사선 매트릭스(generalized dual-diagonal matrix) 구조를 임의의 옵셋(random offset)을 갖는 서브 매트릭스를 이용하여 리프팅시켜 구성하였다. 이때, degree가 2인 가변 노드는 항상 패리티 부분의 열로 할당되도록 하였다.
이제 이와 같이 정의한 패리티 검사 매트릭스에 의해 구성되는 저밀도 패리티 검사 코드의 성능을 살펴보도록 한다. 이를 위해 저밀도 패리티 검사 코드의 성능을 평가하기 위한 복호화 알고리즘(decoding algorithm) 및 실험 환경을 먼저 설명하도록 한다.
A. 반복적 신뢰 증식 복호(Iterative belief propagation decoding)
MxN 패리티 검사 매트릭스(parity check matrix)에 의해 정의되는 저밀도 패리티 검사 코드는 M개의 검사 노드와 N개의 가변 노드에 의해 구성되는 펙터 그래프(factor graph)에 의해 표현될 수 있다. 그리고, degree가 d c 인 검사 노드와, degree가 d v 인 가변 노드에서의 메시지 갱신(message update) 과정을 로그 도메인(log-domain)에서 요약하면 검사 노드의 메시지 갱신은 하기 <수학식 33>과 같이 도시할 수 있으며, 가변 노드의 메시지 갱신은 하기 <수학식 34>와 같이 도시할 수 있고, 로그 우도율(LLR : Log Likelihood Ratio)의 갱신을 하기 <수학식 35>와 같이 도시할 수 있다.
상기 <수학식 33>의 은 준 반복 복호 과정에서 j 번째 반복 복호 과정에서 얻게 되는 값으로 검사 노드 m에서 변수 노드 n으로 전달하는 메시지이다. 그리고, 는 j 번째 반복 복호 과정에서 변수 노드 I로부터 검사 노드 m으로 전달되는 메시지이다. 이때, i 는 검사 노드 m에 연결된 변수 노드들을 0부터 까지 재 정렬한 값이다. 따라서 i 가 0인 경우에는 변수 노드 n을 의미한다.
상기 <수학식 34>에서 은 j 번째 반복 복호 과정에서 얻게 되는 값으로 변수 노드 n에서 검사 노드 m으로 전달하는 메시지이다. 이때 은 j 번째 반복 과정에서 검사 노드 i로부터 변수 노드 n으로 전달되는 메시지이며, i는 변수 노드 n에 연결된 검사 노드들을 0부터 까지 재 정렬한 값이다. 따라서 i가 0인 경우에는 검사 노드 m을 의미한다.
상기 <수학식 35>에서 은 j번째 반복 복호 과정에서 변수 노드 n에 정의되는 LLR 값이다.
그러면 상기 <수학식 33> 내지 상기 <수학식 35>의 과정을 이용하여 반복적 신뢰 증식 복호 과정(iterative belief propagation decoding)을 설명하기로 한다. 도 12는 상기 <수학식 33> 내지 <수학식 35>를 이용한 반복적 신뢰 증식 복호 과정의 흐름도이다.
도 12는 수신기의 입장에서 수신된 메시지를 복호하는 과정이다. 따라서 수신된 메시지에 대한 변수 노드 n의 초기 메시지는 수신 부호어의 n번째 심볼의 채널 신뢰도(channel reliability)로 정의하며, 이를 수학식으로 도시하면 하기 <수학식 36>과 같이 도시할 수 있다.
=
상기 <수학식 36>에서 은 최초 정의되는 변수 노드 메시지의 초기 값이고, 은 최초 정의되는 변수 노드에 대한 초기 LLR 값이다. 이와 같이 메시지 갱신 시에 1200단계에서 상기 <수학식 36>과 같이 수신된 부호어의 n번째 심볼의 채널 신뢰도로 정의한다. 또한 반복 횟수 카운터를 리셋한다. 그런 후 1202단계로 진행하여 검사 노드의 메시지를 갱신한다. 이러한 갱신은 상술한 <수학식 33>과 같은 방법으로 갱신을 수행할 수 있다. 그리고, 1204단계로 진행하여 가변 노드와 로그 우도율을 갱신한다. 상기 가변 노드의 메시지 갱신은 상기 <수학식 34>와 같은 방법으로 갱신을 수행하며, 로그 우도율의 갱신은 <수학식 35>와 같은 방법을 통해 갱신한다.
상기 과정을 통해 검사 노드, 가변 노드 및 로그 우도율이 모두 갱신된 이후에 1206단계로 진행하여 상기 갱신된 로그 우도율의 값을 경판정(Hard decision)한다. 그리고 1208단계로 진행하여 경판정된 값을 바탕으로 수신된 메시지에 대하여 패리티 검사를 수행한다. 상기 패리티 검사 결과가 0의 값을 가지는 경우 복호가 성공적으로 수행된 것이므로, 1216단계로 복호를 중단한다. 그러나, 패리티 검사 결과 0의 값을 가지지 않는 경우 1210단계로 진행하여 미리 결정된 횟수만큼 반복이 이루어졌는가를 검사한다. 상기 1210단계의 검사결과 미리 결정된 횟수만큼 반복이 이루어진 경우 더 이상 복호를 수행하여도 성공할 확률이 적은 경우이므로, 1214단계로 진행하여 복호 실패 처리를 수행한다. 그러나 1210단계의 검사결과 미리 결정된 횟수만큼 반복이 이루어지지 않은 경우 1212단계로 진행하여 상기 반복 카운터를 1 증가시키고, 1202단계로 진행한다.
B. 시뮬레이션 환경(Simulation environment)
본 발명에서 정의한 패리티 검사 매트릭스에 의해 구성되는 저밀도 패리티 검사 코드의 성능을 평가하기 위한 실험 환경은 하기 <표 1>과 같은 환경에서 수행하였다.
- Code rate = 1/2, maximum variable node degree = 15- Offset (f) inH p = 7- Frame size = 435(p=29), 795 (p=53), 1545(p=103), 3855(p=257)- Binary antipodal signaling over AWGN channel- Iterative belief propagation decoding- Floating point simulation- Maximum number of iterations = 160- Stop by parity check at each iteration- Frame error rate (FER) & information bit error rate (BER) evaluation
또한 본 발명에서는 논의의 편의를 위해 저밀도 패리티 코드의 부호율을 1/2로 한정하였다. 하지만, 보다 다양한 부호율을 지원하기 위한 저밀도 패리티 코드의 패리티 검사 매트릭스 디자인(parity check matrix design)은 본 발명에 정의된 방식을 부호율에 맞추어 리프팅 하는 방식으로 논의될 수 있을 것이다. 그리고, 본 발명에서 정의한 패리티 검사 매트릭스에 의한 저밀도 패리티 코드의 펙터 그래프상에서 maximum variable node degree는 15로 정하였는데, 이는 우수한 성능을 얻을 수 있는 동시에 구현상에서 하드웨어의 크기(H/W size)가 커지지 않도록 하기 위함이다. 패리티 부분 H p 매트릭스에서 옵셋(offset) f는 7로 정하였다. 이와 같은 옵셋을 정한 이유는, 본 발명의 C절의 (다)에서 설명한 바와 같이 길이가 4인 싸이클을 패리티 검사 매트릭스 내에서 쉽게 없애기 위함이다. 본 발명에서 실험한 저밀도 패리티 검사 코드의 프레임 크기(frame size)는 cdma2000 1xEV-DV 표준(standard)에 명시된 부호화 패킷(encoder packet : EP) 크기와 유사하게 설정하여 cdma2000 1xEV-DV 표준에서 현재 사용되고 있는 터보 복호기의 성능과 비교하도록 하였다. 이때, 성능 비교를 위한 터보 코드의 복호 과정에서는 로그-맵 알고리즘(Log-MAP algorithm)을 사용하였고, 최대 반복 복호 회수는 8회로 제한하였다.
한편, 저밀도 패리티 검사 코드의 반복적 신뢰 증식 복호(iterative belief propagation decoder)의 최대 반복 횟수는 160회로 정하였는데, 이는 일반적으로 density evolution 기법 상에서 비정규 저밀도 패리티 검사 코드의 수렴 속도가 비교적 늦은 사실을 감안한 것이다. 그리고, 복호기(decoder)에 관한 실험은 extrinsic & 로그 우도율 정보(LLR information)를 실제 값(real value)으로 표현하는 부동 소수점 시뮬레이션(floating point simulation)을 수행하였다. 검사 노드의 갱신 과정에서 함수의 오버 플로우(overflow)를 방지하기 위해 |x|<10-8인 x에 대해 의 값을 20으로 제한하였다. 저밀도 패리티 검사 코드의 복호기 상에서는 매 반복(iteration)마다 패리티 검사를 수행하여 stopping criterion으로 삼고 패리티 검사에서 오류가 검출되지 않았으나, 실제로 오류가 발생한 경우에는 비검출 오류(undetected error)가 발생한 프레임(frame)으로 분류하였다. 마지막으로 본 발명에서 설계한 저밀도 패리티 검사 코드의 성능을 평가하는 measure로는 프레임 오류율(frame error rate)과 비트 오류율(bit error rate)을 사용하였다. 이때 프레임/비트 오류(frame/bit error)란 정보 심볼에 오류가 발생한 경우만을 고려하였다. 이제 위에서 제시한 실험 환경에서 실험한 저밀도 패리티 검사 코드의 성능을 보이도록 한다.
C. 시뮬레이션 결과들(Simulation results)
도 13a는 n = 870, p = 29인 경우 정보 부분 Hd의 매트릭스를 예로서 도시한 도면이며, 도 13b는 n = 870, p = 29인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면이고, 도 13c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프이다.
상기 도 13a와 도 13b에 도시한 정보 부분의 매트릭스와 패리티 부분의 매트릭스는 이상에서 설명한 본 발명에 따라 구성한 것으로 실제로는 두 매트릭스가 결합되어 부호화를 수행하게 된다. 그러면 상기 도 13c에 도시한 바와 같은 성능을 나타낸 경우의 조건들에 대하여 살펴본다. 두 부호화 방법의 성능의 비교를 위해 cdma2000 1xEV-DV 표준의 부호화 패킷(EP) 크기가 408이고, 부호화율(code rate)이 1/2인 경우의 성능을 함께 나타내었다. 도 13c에서 보는 바와 같이 블록 크기(block size)가 작은 경우 cdma2000 1xEV-DV 표준에서 사용되는 터보 부호(turbo code)의 성능이 본 발명에서 제안한 저밀도 패리티 검사 코드의 성능보다 프레임 에러율(FER) 및 비트 에러율(BER) 모두 약간 우수함을 알 수 있다. 이는 본 발명에서 제안한 저밀도 패리티 검사 코드를 정의하는 패리티 검사 매트릭스 구조가 블록 크기가 작은 코드워드(codeword)의 복호 성능 면에서는 최적화된 구조가 아님을 나타내고 있는 것이다. 즉, 저밀도 패리티 검사 코드의 부호화 블록 크기가 작은 경우, 기존에 알려진 터보 부호의 성능과 비교하여 저밀도 패리티 검사 코드가 우수한 성능을 나타내기 위해서는 패리티 검사 매트릭스에 대한 최적화 작업이 보다 더 수행되어야 함을 나타낸다고 할 수 있다. 그러나, 블록 크기가 큰 코드워드의 복호 성능면에서는 터보 부호보다 성능 개선 효과가 있음을 확인할 수 있다.
하기 <표 2>는 n=870인 경우, 각 Eb/No에 따른 평균 반복 복호 회수를 나타낸 것이다. 주어진 저밀도 패리티 검사 코드에 대해 최대 160회의 반복 복호를 수행하지만, 실제 복호 결과는 20회 이내에서 높은 SNR을 고려하면 10회 이내의 반복 복호만으로 충분한 성능을 얻을 수 있음을 나타낸다.
Eb/No (dB) Average number of iterations
1.6 15.085
1.8 11.353
2.0 9.317
2.2 8.01
2.4 7.087
도 14a는 n = 1590, p = 53인 경우 정보 부분 Hd의 매트릭스를 예로서 도시한 도면이며, 도 14b는 n = 1590, p = 53인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면이고, 도 14c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프이다.
상기 도 14a와 도 14b에 도시한 정보 부분의 매트릭스와 패리티 부분의 매트릭스는 이상에서 설명한 본 발명에 따라 구성한 것으로 실제로는 두 매트릭스가 결합되어 부호화를 수행하게 된다.
그러면 상기 도 14c에 도시한 바와 같은 성능을 나타낸 경우의 조건들에 대하여 살펴본다. 두 부호화 방법의 성능의 비교를 위해 cdma2000 1xEV-DV 표준의 부호화 패킷의 크기가 792이고, 부호율이 1/2인 경우의 성능을 함께 나타내었다. 상기 도 14c를 살펴보면, 저밀도 패리티 검사 코드의 블록 크기가 증가함에 따라 프레임 오류율은 기존에 사용되는 터보 코드의 그것과 거의 비슷한 성능을 보인다. 하지만, 비트 오류율은 터보 코드에 비해 여전히 좋지 않은 성능을 보이고 있다. 이는 터보 코드의 오류가 발생한 프레임에 존재하는 비트 오류의 비율이 저밀도 패리티 검사 코드에 비해 낮기 때문이다. 즉, 터보 코드는 동일한 Eb/No에서 BER/FER의 비율이 저밀도 패리티 코드보다 낮은 값을 갖게 되며, 이와 같이 BER/FER의 비율이 낮은 경우에는 오류가 발생한 프레임에 존재하는 평균 비트 오류의 개수가 저밀도 패리티 검사 코드에 비해 적음을 뜻한다. 하지만, 복합 자동 재전송(Hybrid ARQ)을 적용하는 실제 무선 통신 시스템에서는 비트 오류율보다 프레임 오류율의 성능이 우수한 것이 보다 유리하기 때문에 도 14c에 따라 n = 1590인 경우에 본 발명의 저밀도 패리티 검사 코드는 cdma2000 1xEV-DV 표준의 터보 부호에 필적하는 성능을 갖는다고 볼 수 있다.
하기 <표 3>은 n = 1590인 경우, 각 Eb/No에 따른 평균 반복 복호 회수를 나타낸 것이다. 블록 크기가 증가함에 따라 평균 반복 복호 회수는 상기 <표 2>의 경우에 비해 다소 증가했음을 알 수 있다. 하지만, 충분히 높은 SNR에서는 20회 안팎의 반복 복호만으로도 충분한 성능을 얻을 수 있음을 알 수 있다.
Eb/No (dB) Average number of iterations
1.1 40.308
1.3 21.504
1.5 14.858
1.7 12.018
1.8 11.020
도 15a는 n = 3090, p = 103인 경우 정보 부분 Hd의 매트릭스를 예로서 도시한 도면이며, 도 15b는 n = 3090, p = 103인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면이고, 도 15c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프이다.
상기 도 15a와 도 15b에 도시한 정보 부분의 매트릭스와 패리티 부분의 매트릭스는 이상에서 설명한 본 발명에 따라 구성한 것으로 실제로는 두 매트릭스가 결합되어 부호화를 수행하게 된다.
그러면 상기 도 15c에 도시한 바와 같은 성능을 나타낸 경우의 조건들에 대하여 살펴본다. 두 부호화의 성능의 비교를 위해 cdma2000 1xEV-DV 표준의 부호화 패킷 크기가 1560이고, 부호화 율이 1/2인 경우의 성능을 함께 나타내었다. 상기 도 15c는 저밀도 패리티 검사 코드의 블록 크기가 증가함에 따라 프레임 에러율이 비슷한 프레임 크기의 터보 부호에 비해 더 나은 성능을 보이고 있음을 나타내고 있다. 비트 에러율은 도 14c와 마찬가지로 터보 부호에 비해 여전히 좋지 않은 성능을 보이고 있으나, 그 차이는 많이 줄어들어 터보 부호의 성능에 매우 근접하고 있음을 보이고 있다.
하기 <표 4>는 n = 3090인 경우, 각 Eb/No에 따른 평균 반복 복호 회수를 나타낸 것이다. 블록의 크기가 증가함에 따라 평균 반복 복호 회수는 상기 <표 2>의 경우에 비해 다소 증가했음을 알 수 있다. 하지만, 충분히 높은 SNR에서는 20회 안팎의 반복 복호만으로도 충분한 성능을 얻을 수 있음을 알 수 있다.
Eb/No (dB) Average number of iterations
1.1 38.495
1.2 22.051
1.4 16.190
1.5 14.623
도 16a는 n = 7710, p = 257인 경우 정보 부분 H d 의 매트릭스를 예로서 도시한 도면이며, 도 16b는 n = 7710, p = 257인 경우 패리티 부분 H p 의 매트릭스를 예로서 도시한 도면이고, 도 16c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프이며, 도 16d는 저밀도 패리티 검사 코드의 반복 횟수 변화에 따른 시뮬레이션 결과 그레프이다.
상기 도 16a와 도 16b에 도시한 정보 부분의 매트릭스와 패리티 부분의 매트릭스는 이상에서 설명한 본 발명에 따라 구성한 것으로 실제로는 두 매트릭스가 결합되어 부호화를 수행하게 된다.
그러면 상기 도 16c에 도시한 바와 같은 성능을 나타낸 경우의 조건들에 대하여 살펴본다. 성능의 비교를 위해 cdma2000 1xEV-DV 표준의 부호화 패킷의 크기가 3864이고, 부호율이 1/2인 경우의 성능을 함께 나타내었다. 도 16c는 저밀도 패리티 검사 코드의 블록 크기가 매우 큰 경우에는 비슷한 프레임 크기의 터보 코드에 비해 매우 우수한 성능을 보이고 있음을 나타내고 있다. 특히, cdma2000 1xEV-DV 표준에서 사용되고 있는 프레임 길이가 3864인 터보 부호는 높은(high) 신호대 잡음비(SNR)에서 프레임 에러율(frame error rate)과 비트 에러율(bit error rate) 모두 에러 마루(error floor)가 발생하고 있음을 알 수 있다. 그러나, 본 발명에서 정의한 저밀도 패리티 검사 코드의 경우에는 이러한 오류 마루가 발생하지 않음을 확인할 수 있었다. 이러한 성능은 H-ARQ를 사용하는 통신 시스템에서 매우 유리한 점이다. 이에 따라 본 발명에서 정의한 저밀도 패리티 검사 코드가 기존의 표준에서 사용되고 있는 터보 부호에 비해 성능면에서 매우 우수함을 나타낸다고 할 수 있을 것이다. 하기 <표 5>는 n = 7710인 경우, 각 Eb/No에 따른 평균 반복 복호 회수를 나타낸 것이다.
Eb/No (dB) Average number of iterations
0.9 41.036
1.0 31.034
1.1 25.507
1.2 22.170
상기 <표 5>에서 저밀도 패리티 검사 코드의 블록 크기가 증가함에 따라 평균 반복 복호 회수는 상기 <표 4>의 경우에 비해 증가했음을 알 수 있다. 즉, cdma2000 1xEV-DV 표준과 유사한 최대 프레임 크기를 지원하는 저밀도 패리티 검사 코드의 경우에는 높은 신호대 잡음비에서도 20회 이상의 반복 복호가(iterative decoding)이 필요하게 되며, 따라서 최소의 지연만을 가지면서도 최적의 성능을 발휘하기 위해서는 반복 횟수(iteration number)에 따른 저밀도 패리티 검사 복호기(LDPC decoder)의 성능을 관찰할 필요가 있다.
도 16c는 상기 도 16a 및 도 16b와 같은 구성을 가지는 저밀도 패리티 검사 코드에서 최대 반복 횟수(iteration number)를 40, 80, 120, 160회로 제한하였을 때 얻을 수 있는 각각의 FER/BER 성능을 나타낸 도면이다. 지금까지의 경우와는 달리 최대 반복 복호 회수를 각각 40, 80, 120회로 제한하였을 경우에는 약간의 성능 저하가 나타났다. 그러나, 최대 반복 복호 회수를 40회로 제한한 경우를 제외하고는 발생한 성능 열화는 그리 크지 않은 것으로 생각되어 최대 반복 복호 회수를 80회 정도로 제한하더라도 성능면에서 크게 문제되지는 않을 것이다. 특히, 블록 크기가 이보다 작은 경우에는 최대 반복 복호를 80회로 제한함에 따른 성능 열화는 더욱 감소하여 매우 미미해질 것이다. 따라서, 본 발명에서 제안한 저밀도 패리티 검사 코드는 최대 부호 블록 크기를 7710회 정도로 가정하였을 때, 최대 반복 복호 회수를 80회 정도로만 하면, 복호시 충분한 성능을 얻을 수 있다.
3. 결론(Conclusions)
본 발명에서는 부호율(code rate) = 1/2인 경우에 한해, 효율적인 부호화가 가능하고, 우수한 복호 성능을 얻을 수 있는 저밀도 패리티 검사 코드를 정의하였다. 그리고, 이를 위해 저밀도 패리티 검사 코드를 정의하는 패리티 검사 매트릭스를 두 부분으로 구분(partition)하여, 패리티 검사 매트릭스에서 코드워드의 정보에 해당하는 부분은 행 가중치(column weight)가 2보다 큰 배열 코드(array code) 구조를 이용하여 정의하였다. 그리고, 패리티 검사 매트릭스에서 코드워드의 패리티에 해당하는 부분은 행 가중치가 모두 2인 일반화된 이중 사선 매트릭스(generalized dual diagonal matrix) 형태로 정의하였다. 이러한 방식으로 정의된 패리티 검사 매트릭스는 maximum variable node degree가 dv=15인 비정규 저밀도 패리티 검사 코드를 생성하며, 유사 가우시안(Gaussian approximation)에 의한 density evolution technique에 의해 백색 가우시안 잡음 채널(AWGN channel)에서 error free를 위한 임계치(threshold)가 0.9352임을 확인할 수 있었다. 이는 부호율 1/2인 부호에 대해 쉐논(Shannon)의 채널 용량에 비해 0.5819 dB만큼 근접한 형태의 성능이다.
일단, 선형 부호화가 가능하다는 점을 먼저 생각하면, 실제 선형 부호화의 가능 여부를 고려하지 않고, 보다 임의의(random) 방식으로 패리티 검사 매트릭스(parity check matrix)를 설계하면, Shannon의 임계치에 0.5819 dB보다 훨씬 근접하는 우수한 저밀도 패리티 코검사 코드를 생성할 수 있다. 그러나, 이러한 경우는 부호화 과정이 복잡하게 되어 실제 구현에 문제가 있을 수 있다. 선형 부호화를 가능하게 하는 것은 저밀도 패리티 검사 코드를 정의하는 패리티 검사 매트릭스에 하나의 제한 조건으로 작용하기 때문에, 패리티 검사 매트릭스(parity check matrix)가 임의의 구조(structure)를 가져야 한다. 따라서 좋은 성능을 보이기 위한 가능성은 선형 부호화를 고려하지 않고 임의로 정의한 패리티 검사 매트릭스(parity check matrix)보다 줄어들게 될 것이다. 그러므로 본 발명을 적용하게 되면, 선형 부호화를 고려하여 비교적 우수한 성능을 보이게 된다. 즉, 상기한 선형 부호화에 따른 패리티 검사 매트릭스(parity check matrix)의 제약에도 불구하고 비교적 우수한 성능을 보인다.
그리고, 복호시 우수한 성능을 보이기 위해서는 패리티 검사 매트릭스(parity check matrix)의 degree distribution을 정의하는데 있어 부호어의 크기를 증가시키고, 이에 따라 maximum variable node degree를 높이면 Shannon의 한계치에 거의 근접하는 성능을 갖는 저밀도 패리티 검사 코드를 설계할 수 있다. 하지만, 이 경우 maximum variable node degree가 증가할수록 복호시 복호기의 복잡도가 증가하기 때문에, 실제 구현과는 거리가 먼 이야기라고 할 수 있다. 따라서, 복호기 복잡도가 가능하다고 한 것은 구현을 하는데 있어 어느 정도 합당한(reasonable) maximum variable node degree를 설정한 것이다.
본 발명에서 정의한 패리티 검사 매트릭스에 의한 저밀도 패리티 검사 코드는 패리티 검사 매트릭스에서 코드워드의 패리티 부분이 pxp 항등 매트릭스의 순환 순열(cyclic permutation)에 의해 리프팅된 일반화된 이중 사선 매트릭스 형태를 가진다. 따라서 간단한 선형 연산에 의해 쉽게 부호화가 가능하다. 그리고, iterative belief propagation에 의한 복호 성능을 cdma2000 1xEV-DV 표준에서 사용되고 있는 터보 부호의 성능과 비교하였을 때, 유사한 프레임 크기에 대해 보다 우수한 프레임 오류율(frame error rate)을 얻을 수 있음을 실험을 통해 확인하였다. 특히, 터보 부호에 비해 우수한 프레임 오류율을 갖는 것은 본 발명의 저밀도 패리티 검사 코드를 hybrid-ARQ technique과 접목하여 사용할 경우, 매우 우수한 장점이 될 것이다. 따라서, 본 발명에서 정의한 저밀도 패리티 검사 코드는 간단한 선형 연산에 의해 쉽게 부호화가 가능하다. 또한, 복호기의 구현에 있어서도 각 서브 매트릭스(sub-matrix_의 행(row) 및 열(column) 별로 검사 노드 프로세서(check node processor)와 가변 노드 프로세서(variable node processor)를 병렬로 구현하여 매우 빠른 속도의 복호가 가능하다.
본 발명에서 정의한 저밀도 패리티 검사 코드는 패리티 검사 매트릭스를 구성하는 서브 매트릭스들의 배열 구조의 특성상 저밀도 패리티 검사 코드를 정의하는 펙터 그래프에서 길이가 4인 싸이클은 존재하지 않음을 쉽게 확인할 수 있다.
이상에서 상술한 바와 같이 본 발명을 적용하는 경우에 터보 부호화기와 유사하거나 보다 뛰어난 성능을 제공할 수 있으며, 특히 프레임 오류율을 감소시킬 수 있는 저밀도 패리티 검사 코드를 생성할 수 있는 이점이 있다. 또한 본 발명의 저밀도 패리티 검사 코드는 복호 시에도 복잡성을 줄일 수 있는 이점이 있다.
도 1은 일반적인 (p, r) 어레이 코드에 대한 패리티 검사 매트릭스를 도시한 도면,
도 2는 임의의 한 열에 존재하는 1의 최대 개수가 d v 이고, 그러한 서브 매트릭스 열의 수가 n v 이며, 나머지 서브 매트릭스 열들에 존재하는 1의 수는 항상 3인 경우의 매트릭스 H d 를 예로서 도시한 도면,
도 3은 비정규 반복 축적 코드의 펙터 그래프(factor graph) 구조를 도시한 도면,
도 4는 비정규 반복 축적 코드를 가지는 저밀도 패리티 코드의 매트릭스를 도시한 도면,
도 5는 옵셋 값(offset value) f를 임의의 값을 갖도록 리프팅하면 패리티 부분의 이중 사선 매트릭스를 도시한 도면,
도 6은 상기 도 5와 같은 부호화 과정에서 p 0 , p r-f , p r-2f , … 의 값들을 순차적으로 구하는 과정을 도시한 도면,
도 7은 maximum variable node degree가 15인 경우, 전술한 A 절의 설명에서와 같은 방식으로 생성한 패리티 검사 매트릭스의 정보 부분 H d 의 일례를 도시한 도면,
도 8은 임의의 4x4 매트릭스의 각 원소를 3x3 항등 매트릭스(identity matrix) 또는 3x3 0 매트릭스(matrix)로 대치하는 방식에 의해 기본 4x4 매트릭스를 12x12 매트릭스로 매트릭스 리프팅(lifting)시킨 행렬을 도시한 도면,
도 9는 pxp 순환 치환 서브 매트릭스에 의한 매트릭스 리프팅(lifting)을 통해 구성한 패리티 매트릭스 H p 을 도시한 도면,
도 10은 본 발명의 바람직한 실시 예에 따라 패리티 부분의 매트릭스를 생성하기 위한 흐름도,
도 11은 r = 15, f = 7, p =89의 값을 가지도록 리프팅된 일반화 이중 사선 매트릭스의 패리티 매트릭스를 도시한 도면,
도 12는 본 발명의 효율을 검증하기 위한 반복적 신뢰 증식 복호 과정의 흐름도,
도 13a는 n = 870, p = 29인 경우 정보 부분 Hd의 매트릭스를 예로서 도시한 도면,
도 13b는 n = 870, p = 29인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면,
도 13c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프,
도 14a는 n = 1590, p = 53인 경우 정보 부분 Hd의 매트릭스를 예로서 도시한 도면,
도 14b는 n = 1590, p = 53인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면,
도 14c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프,
도 15a는 n = 3090, p = 103인 경우 정보 부분 Hd의 매트릭스를 예로서 도시한 도면,
도 15b는 n = 3090, p = 103인 경우 패리티 부분 Hp의 매트릭스를 예로서 도시한 도면,
도 15c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프,
도 16a는 n = 7710, p = 257인 경우 정보 부분 H d 의 매트릭스를 예로서 도시한 도면,
도 16b는 n = 7710, p = 257인 경우 패리티 부분 H p 의 매트릭스를 예로서 도시한 도면,
도 16c는 저밀도 패리티 검사 코드와 터보 부호의 성능을 비교한 시뮬레이션 결과 그래프,
도 16d는 저밀도 패리티 검사 코드의 반복 횟수 변화에 따른 시뮬레이션 결과 그레프.

Claims (9)

  1. 정보 부분 매트릭스와 패리티 부분 매트릭스로 구성되는 저밀도 패리티 검사 코드를 생성 방법에 있어서,
    상기 정보 부분 매트릭스를 배열 코드 구조로 변경하고, 각각의 서브 매트릭스 열에 차수 시퀀스(degree sequence)를 할당하는 과정과,
    상기 패리티 부분 매트릭스인 일반화된 이중 사선 매트릭스에 있어서, 사선간의 옵셋 값이 임의의 값을 갖도록 확장하는 과정과,
    상기 일반화된 이중 사선 매트릭스를 리프팅 하는 과정과.
    상기 리프팅된 일반화된 이중 사선 매트릭스의 서브 매트릭스마다 순환 행 이동(cyclic column shift)을 위한 옵셋 값(offset value)을 결정하는 과정과,
    상기 패리티 부분 매트릭스의 열에 대응되는 패리티 심볼을 결정하는 부호화 과정을 포함함을 특징으로 하는 상기 저밀도 패리티 검사 코드 생성 방법.
  2. 제1항에 있어서, 상기 차수 시퀀스(degree sequence)는 하기 <수학식 37>과 같이 구성됨을 특징으로 하는 상기 저밀도 패리티 검사 코드 생성 방법.
  3. 제1항에 있어서, 상기 사선간의 옵셋 값은,
    일반화된 이중 사선 매트릭스의 열의 수와 서로소임을 특징으로 하는 상기 저밀도 패리티 검사 코드 생성 방법.
  4. 제1항에 있어서,
    상기 서브 매트릭스의 행의 수는 소수임을 특징으로 하는 상기 저밀도 패리티 검사 코드 생성 방법.
  5. 제1항에 있어서,
    상기 패리티 부분 매트릭스인 일반화된 이중 사선 매트릭스에서 사선상의 서브 매트릭스의 상기 순환 행 이동을 위한 옵셋 값들의 합과 옵셋 사선상의 서브 메트릭스의 순환 행 이동을 위한 옵셋 값들의 합의 차는 0이 아님을 특징으로 하는 상기 저밀도 패리티 검사 코드 생성 방법.
  6. 제1항에 있어서, 상기 부호화 과정은,
    상기 패리티 부분 매트릭스의 사선상의 서브 매트릭스 열 인덱스 0인 서브 매트릭스내의 첫 번째 행의 패리티 심볼을 결정하는 제1과정과,
    상기 설정된 패리티 심볼의 서브 매트릭스 열 인덱스와 같은 서브 매트릭스 열 인덱스를 가지는 옵셋 사선 상의 서브 매트릭스에서 상기 결정된 패리티 심볼과 서브 매트릭스 내의 열 인덱스가 같은 패리티 심볼의 서브 매트릭스 내의 행 인덱스를 설정하는 제2과정과,
    상기 옵셋 사선 상의 서브 매트릭스의 서브 매트릭스 행 인덱스와 같은 서브 매트릭스 행 인덱스를 가지는 사선 상의 서브 메트릭스에서 상기 설정된 서브 매트릭스 내의 행 인덱스가 같은 패리티 심볼을 결정하는 제3과정과,
    상기 제2과정부터 제3과정까지의 연산을 상기 패리티 매트릭스의 생성이 완료될 때까지 반복 수행하는 과정을 포함함을 특징으로 하는 상기 저밀도 패리티 검사 코드 생성 방법.
  7. 제6항에 있어서,
    상기 제1과정의 상기 패리티 심볼은 상기 패리티 심볼이 결정될 서브 매트릭스 내의 행 인덱스와 같은 행에 존재하는 정보 부분 매트릭스의 정보 심볼들의 합으로 결정됨을 특징으로 하는 상기 저밀도 패리티 검사 코드 생성 방법.
  8. 제6항에 있어서,
    상기 제2과정의 상기 서브 매트릭스 내의 행 인덱스를 설정은 하기 <수학식 38>과 같이 설정함을 특징으로 하는 상기 저밀도 패리티 검사 코드 생성 방법.
    상기 <수학식 38>에서 은 옵셋 사선상의 서브 매트릭스 열 인덱스 i인 서브 매트릭tm 내의 행 인덱스이고, 은 사선상에 존재하는 열 인덱스 i인 서브 매트릭 내의 열 인덱스이며, j2(i+r-f)+1은 상기 옵셋 사선상의 서브 매트릭스 열 인덱스 I인 서브 매트릭스의 순환 행 이동(cyclic column shift)을 위한 옵셋 값(offset value)이다.
  9. 제6항에 있어서,
    상기 제3과정에서 패리티 심볼 결정은 하기 <수학식 39>와 같이 결정함을 특징으로 하는 상기 저밀도 패리티 검사 코드 생성 방법.
    상기 <수학식 39>에서 은 열 인덱스 에 해당하는 패리티 심볼이며, Pxi (1)은 열 인덱스 에 해당하는 패리티 심볼이고, 은 서브 매트릭스의 열 인덱스 i+(r-f)인 서브 매트릭스 내의 행 인덱스 인 행에 존재하는 정보 심볼의 합이다.
KR1020030071456A 2003-10-14 2003-10-14 저밀도 패리티 검사 코드의 부호화 방법 KR100922956B1 (ko)

Priority Applications (9)

Application Number Priority Date Filing Date Title
KR1020030071456A KR100922956B1 (ko) 2003-10-14 2003-10-14 저밀도 패리티 검사 코드의 부호화 방법
PCT/KR2004/002630 WO2005036758A1 (en) 2003-10-14 2004-10-14 Method for encoding low-density parity check code
JP2006535266A JP4199279B2 (ja) 2003-10-14 2004-10-14 低密度パリティ検査コードの符号化方法
RU2006102662/09A RU2308803C2 (ru) 2003-10-14 2004-10-14 Способ кодирования кода разреженного контроля четности
CN2004800217855A CN1830149B (zh) 2003-10-14 2004-10-14 用于对低密度奇偶校验码编码的方法
DE602004016194T DE602004016194D1 (de) 2003-10-14 2004-10-14 Verfahren zum codieren eines ldpc codes
US10/563,216 US7458009B2 (en) 2003-10-14 2004-10-14 Method for encoding low-density parity check code
EP04793492A EP1673870B1 (en) 2003-10-14 2004-10-14 Method for encoding low-density parity check code
AU2004306640A AU2004306640B9 (en) 2003-10-14 2004-10-14 Method for encoding low-density parity check code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030071456A KR100922956B1 (ko) 2003-10-14 2003-10-14 저밀도 패리티 검사 코드의 부호화 방법

Publications (2)

Publication Number Publication Date
KR20050035729A true KR20050035729A (ko) 2005-04-19
KR100922956B1 KR100922956B1 (ko) 2009-10-22

Family

ID=36406342

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030071456A KR100922956B1 (ko) 2003-10-14 2003-10-14 저밀도 패리티 검사 코드의 부호화 방법

Country Status (9)

Country Link
US (1) US7458009B2 (ko)
EP (1) EP1673870B1 (ko)
JP (1) JP4199279B2 (ko)
KR (1) KR100922956B1 (ko)
CN (1) CN1830149B (ko)
AU (1) AU2004306640B9 (ko)
DE (1) DE602004016194D1 (ko)
RU (1) RU2308803C2 (ko)
WO (1) WO2005036758A1 (ko)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100523708B1 (ko) * 2003-12-17 2005-10-26 한국전자통신연구원 Ldpc 부호에 사용되는 거스 조건화된 패러티 검사행렬의 형성 방법
KR100678176B1 (ko) * 2004-04-28 2007-02-28 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100678175B1 (ko) * 2004-08-16 2007-02-28 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100837730B1 (ko) * 2006-09-29 2008-06-13 한국전자통신연구원 사전에 지정한 패리티를 검사한 결과를 이용해 ldpc코드를 부호화하는 방법
KR100975695B1 (ko) * 2007-02-02 2010-08-12 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
WO2010058994A3 (en) * 2008-11-24 2010-09-10 Samsung Electronics Co., Ltd. Channel-encoding/decoding apparatus and method using low-density parity-check codes
KR20110002813A (ko) * 2009-07-02 2011-01-10 삼성전자주식회사 인코딩 및 디코딩 장치 및 방법
US8132072B2 (en) 2006-01-06 2012-03-06 Qualcomm Incorporated System and method for providing H-ARQ rate compatible codes for high throughput applications
KR101128804B1 (ko) * 2006-06-07 2012-03-23 엘지전자 주식회사 참조 행렬을 이용한 lpdc 부호화 및 복호화 방법
US8327215B2 (en) 2007-12-13 2012-12-04 Electronics And Telecommunications Research Institute Apparatus and method for encoding LDPC code using message passing algorithm
KR20150118993A (ko) * 2013-02-13 2015-10-23 퀄컴 인코포레이티드 높은 병렬성, 낮은 에러 플로어, 및 간단한 인코딩 원리를 갖는 리프팅된 ldpc 코드들에 대한 설계
KR101666188B1 (ko) 2015-08-27 2016-10-13 고려대학교 산학협력단 중첩을 이용한 dvb-s2 기반 저밀도 패리티 검사(ldpc) 부호의 복호기 설계기법

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0031009D0 (en) * 2000-12-20 2001-01-31 Robson Brian Ceramic core and/or mould for metal casting
US7458003B2 (en) * 2003-12-01 2008-11-25 Qualcomm Incorporated Low-complexity, capacity-achieving code for communication systems
US20050160351A1 (en) * 2003-12-26 2005-07-21 Ko Young J. Method of forming parity check matrix for parallel concatenated LDPC code
WO2005096510A1 (en) * 2004-04-02 2005-10-13 Nortel Networks Limited Ldpc encoders, decoders, systems and methods
JP4820368B2 (ja) * 2004-09-17 2011-11-24 エルジー エレクトロニクス インコーポレイティド Ldpcコードを用いた符号化及び復号化方法
JP4772689B2 (ja) * 2004-10-08 2011-09-14 三菱電機株式会社 検査行列生成方法及び通信方法
US7752520B2 (en) * 2004-11-24 2010-07-06 Intel Corporation Apparatus and method capable of a unified quasi-cyclic low-density parity-check structure for variable code rates and sizes
EP1900105A1 (en) * 2005-04-15 2008-03-19 Trellisware Technologies, Inc. Clash-free irregular-repeat-accumulate code
US7802172B2 (en) * 2005-06-20 2010-09-21 Stmicroelectronics, Inc. Variable-rate low-density parity check codes with constant blocklength
US7793190B1 (en) 2005-08-10 2010-09-07 Trellisware Technologies, Inc. Reduced clash GRA interleavers
US7707479B2 (en) 2005-12-13 2010-04-27 Samsung Electronics Co., Ltd. Method of generating structured irregular low density parity checkcodes for wireless systems
JP4558638B2 (ja) * 2005-12-15 2010-10-06 富士通株式会社 符号器および復号器
US20070180344A1 (en) * 2006-01-31 2007-08-02 Jacobsen Eric A Techniques for low density parity check for forward error correction in high-data rate transmission
EP1841073A1 (en) * 2006-03-29 2007-10-03 STMicroelectronics N.V. Fast convergence LDPC decoding using BCJR algorithm at the check nodes
KR101191196B1 (ko) * 2006-06-07 2012-10-15 엘지전자 주식회사 패리티 검사 행렬을 이용하여 부호화 및 복호화하는 방법
KR101154995B1 (ko) 2006-07-14 2012-06-15 엘지전자 주식회사 Ldpc 부호화를 수행하는 방법
US7895500B2 (en) * 2006-07-28 2011-02-22 Via Telecom Co., Ltd. Systems and methods for reduced complexity LDPC decoding
JP4856605B2 (ja) * 2006-08-31 2012-01-18 パナソニック株式会社 符号化方法、符号化装置、及び送信装置
US7783952B2 (en) * 2006-09-08 2010-08-24 Motorola, Inc. Method and apparatus for decoding data
EP2092651B1 (fr) * 2006-11-13 2020-03-25 3G Licensing S.A. Codage et decodage d'un signal de donnees en fonction d'un code correcteur
TW201334425A (zh) * 2007-01-24 2013-08-16 Qualcomm Inc 可變大小之封包的低密度同位檢查編碼與解碼
US8020063B2 (en) * 2007-07-26 2011-09-13 Harris Corporation High rate, long block length, low density parity check encoder
KR101502624B1 (ko) * 2007-12-06 2015-03-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호화/복호화 방법 및 장치
KR101077552B1 (ko) * 2007-12-14 2011-10-28 한국전자통신연구원 복수의 기본 패리티 검사행렬을 이용한 저밀도 패리티 검사부호의 복호화 장치 및 그 방법
KR20090064268A (ko) * 2007-12-15 2009-06-18 한국전자통신연구원 가변 보정값을 이용한 복호화 장치 및 그 방법
KR101503059B1 (ko) * 2008-02-26 2015-03-19 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치
CA2720102A1 (en) * 2008-03-31 2009-10-08 Sirius Xm Radio Inc. Efficient, programmable and scalable low density parity check decoder
CN100586029C (zh) * 2008-05-23 2010-01-27 厦门大学 一种结构化奇偶校验码的编码方法及其编码器
JP5009418B2 (ja) * 2008-06-09 2012-08-22 パイオニア株式会社 検査行列の生成方法及び検査行列、並びに復号装置及び復号方法
WO2010006430A1 (en) * 2008-07-15 2010-01-21 The Royal Institution For The Decoding of linear codes with parity check matrix
KR101261091B1 (ko) 2009-07-07 2013-05-06 한양대학교 산학협력단 반복 복호수 설정 방법, 반복 복호화 장치 및 그 방법
US8196012B2 (en) * 2009-10-05 2012-06-05 The Hong Kong Polytechnic University Method and system for encoding and decoding low-density-parity-check (LDPC) codes
US8644282B2 (en) * 2010-09-16 2014-02-04 Qualcomm Incorporated System and method for transmitting a low density parity check signal
KR101865068B1 (ko) * 2011-03-30 2018-06-08 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 시스템에서 신호 맵핑/디맵핑 장치 및 방법
US8839069B2 (en) * 2011-04-08 2014-09-16 Micron Technology, Inc. Encoding and decoding techniques using low-density parity check codes
JP5648852B2 (ja) * 2011-05-27 2015-01-07 ソニー株式会社 データ処理装置、及び、データ処理方法
JP5664919B2 (ja) * 2011-06-15 2015-02-04 ソニー株式会社 データ処理装置、及び、データ処理方法
KR101791477B1 (ko) * 2011-10-10 2017-10-30 삼성전자주식회사 통신/방송 시스템에서 데이터 송수신 장치 및 방법
US9203434B1 (en) * 2012-03-09 2015-12-01 Western Digital Technologies, Inc. Systems and methods for improved encoding of data in data storage devices
US10148285B1 (en) 2012-07-25 2018-12-04 Erich Schmitt Abstraction and de-abstraction of a digital data stream
US10135460B2 (en) * 2013-10-01 2018-11-20 Texas Instruments Incorporated Apparatus and method for multilevel coding (MLC) with binary alphabet polar codes
US10795858B1 (en) 2014-02-18 2020-10-06 Erich Schmitt Universal abstraction and de-abstraction of a digital data stream
CN105447374B (zh) * 2014-09-11 2018-08-21 塔塔咨询服务有限公司 用于产生和找回授权码的计算机实施系统及方法
WO2016092245A1 (en) * 2014-12-11 2016-06-16 Toshiba Research Europe Limited Array codes
US10340953B2 (en) * 2015-05-19 2019-07-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding low density parity check codes
CN106130565B (zh) * 2016-06-16 2019-12-31 华南师范大学 一种由rc-ldpc分组码获得rc-ldpc卷积码的方法
CN117240415A (zh) 2016-08-10 2023-12-15 交互数字专利控股公司 Harq及高级信道码
CN108111250A (zh) * 2016-11-25 2018-06-01 晨星半导体股份有限公司 用于通信系统中回旋码解码装置的解码方法及相关的判断模块
WO2018182369A1 (ko) 2017-03-30 2018-10-04 엘지전자 주식회사 무선 통신 시스템에서 ldpc 부호의 패리티 검사 행렬을 기반으로 부호화를 수행하는 방법 및 이를 이용한 단말
CN111446971A (zh) * 2020-02-11 2020-07-24 上海威固信息技术股份有限公司 一种基于共享子矩阵的自适应低密度奇偶校验码编码方法
RU2743784C1 (ru) * 2020-11-13 2021-02-26 Акционерное Общество "Крафтвэй Корпорэйшн Плс" Способ кодирования данных на основе LDPC кода
CN113098531B (zh) * 2021-04-19 2022-04-29 中南林业科技大学 一种基于最小和译码框架的动态偏移补偿方法
CN115884387B (zh) * 2023-03-04 2023-05-02 天地信息网络研究院(安徽)有限公司 一种基于奇偶节点微时隙的定向自组网时隙分配方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2799592B1 (fr) * 1999-10-12 2003-09-26 Thomson Csf Procede de construction et de codage simple et systematique de codes ldpc
US20020042899A1 (en) * 2000-06-16 2002-04-11 Tzannes Marcos C. Systems and methods for LDPC coded modulation
CN1279699C (zh) * 2001-06-06 2006-10-11 西加特技术有限责任公司 使用数据存储或数据传输的低密度奇偶校验码的方法和编码装置
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
JP3808769B2 (ja) 2001-12-27 2006-08-16 三菱電機株式会社 Ldpc符号用検査行列生成方法
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
US6961888B2 (en) 2002-08-20 2005-11-01 Flarion Technologies, Inc. Methods and apparatus for encoding LDPC codes
JP3815557B2 (ja) 2002-08-27 2006-08-30 ソニー株式会社 符号化装置及び符号化方法、並びに復号装置及び復号方法
WO2004077733A2 (en) 2003-02-26 2004-09-10 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (ldpc) code operations using a multi-level permutation

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100523708B1 (ko) * 2003-12-17 2005-10-26 한국전자통신연구원 Ldpc 부호에 사용되는 거스 조건화된 패러티 검사행렬의 형성 방법
KR100678176B1 (ko) * 2004-04-28 2007-02-28 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100678175B1 (ko) * 2004-08-16 2007-02-28 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
US8132072B2 (en) 2006-01-06 2012-03-06 Qualcomm Incorporated System and method for providing H-ARQ rate compatible codes for high throughput applications
KR101217925B1 (ko) * 2006-01-06 2013-01-02 퀄컴 인코포레이티드 높은 쓰루풋 어플리케이션을 위한 h­arq 레이트 호환가능 저 밀도 패리티-체크 (ldpc) 코드
KR101128804B1 (ko) * 2006-06-07 2012-03-23 엘지전자 주식회사 참조 행렬을 이용한 lpdc 부호화 및 복호화 방법
US8392792B2 (en) 2006-09-29 2013-03-05 Electronics And Telecommunications Research Institute Method for encoding low density parity check codes using result of checking previously specified parity bits
KR100837730B1 (ko) * 2006-09-29 2008-06-13 한국전자통신연구원 사전에 지정한 패리티를 검사한 결과를 이용해 ldpc코드를 부호화하는 방법
US8051356B2 (en) 2007-02-02 2011-11-01 Samsung Electronics Co., Ltd Apparatus and method for receiving signal in a communication system
KR100975695B1 (ko) * 2007-02-02 2010-08-12 삼성전자주식회사 통신 시스템에서 신호 수신 장치 및 방법
US8327215B2 (en) 2007-12-13 2012-12-04 Electronics And Telecommunications Research Institute Apparatus and method for encoding LDPC code using message passing algorithm
WO2010058994A3 (en) * 2008-11-24 2010-09-10 Samsung Electronics Co., Ltd. Channel-encoding/decoding apparatus and method using low-density parity-check codes
US8495459B2 (en) 2008-11-24 2013-07-23 Samsung Electronics Co., Ltd Channel-encoding/decoding apparatus and method using low-density parity-check codes
KR20110002813A (ko) * 2009-07-02 2011-01-10 삼성전자주식회사 인코딩 및 디코딩 장치 및 방법
KR20150118993A (ko) * 2013-02-13 2015-10-23 퀄컴 인코포레이티드 높은 병렬성, 낮은 에러 플로어, 및 간단한 인코딩 원리를 갖는 리프팅된 ldpc 코드들에 대한 설계
KR101666188B1 (ko) 2015-08-27 2016-10-13 고려대학교 산학협력단 중첩을 이용한 dvb-s2 기반 저밀도 패리티 검사(ldpc) 부호의 복호기 설계기법

Also Published As

Publication number Publication date
WO2005036758A1 (en) 2005-04-21
JP2007508774A (ja) 2007-04-05
EP1673870B1 (en) 2008-08-27
AU2004306640B9 (en) 2008-11-13
AU2004306640B2 (en) 2008-04-24
RU2006102662A (ru) 2006-06-27
JP4199279B2 (ja) 2008-12-17
EP1673870A1 (en) 2006-06-28
DE602004016194D1 (de) 2008-10-09
RU2308803C2 (ru) 2007-10-20
KR100922956B1 (ko) 2009-10-22
EP1673870A4 (en) 2007-05-02
US7458009B2 (en) 2008-11-25
CN1830149B (zh) 2010-05-26
US20070022354A1 (en) 2007-01-25
AU2004306640A1 (en) 2005-04-21
CN1830149A (zh) 2006-09-06

Similar Documents

Publication Publication Date Title
KR100922956B1 (ko) 저밀도 패리티 검사 코드의 부호화 방법
US8185797B2 (en) Basic matrix, coder/encoder and generation method of the low density parity check codes
Johnson Introducing low-density parity-check codes
JP4168055B2 (ja) 低密度パリティ検査符号の生成方法及び装置
US7178082B2 (en) Apparatus and method for encoding a low density parity check code
KR101227264B1 (ko) Ldpc 코드용 디코더
KR100941680B1 (ko) 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치
CN107370490A (zh) 结构化ldpc的编码、译码方法及装置
Thorpe et al. Methodologies for designing LDPC codes using protographs and circulants
US20050160351A1 (en) Method of forming parity check matrix for parallel concatenated LDPC code
Baldi et al. Array convolutional low-density parity-check codes
Myung et al. Extension of quasi-cyclic LDPC codes by lifting
Malema Low-density parity-check codes: construction and implementation.
Pusane et al. Construction of irregular LDPC convolutional codes with fast encoding
Andreadou et al. Quasi-Cyclic Low-Density Parity-Check (QC-LDPC) codes for deep space and high data rate applications
Enad et al. Performance Evaluation and Assessment of LDPC Codec over DVB-S2 and WLAN802. 11n Applications
Roy et al. Recursive convolutional codes for time-invariant LDPC convolutional codes
KR20070025522A (ko) Ldpc 부호의 복호 방법
Talati et al. Rate-compatible and high-throughput architecture designs for encoding LDPC codes
Wang The ldpc code and rateless code for wireless sensor network
Chae et al. Low complexity encoding of improved regular LDPC codes
Chae et al. Low complexity encoding of regular low density parity check codes
Lau et al. Novel types of cyclically-coupled quasi-cyclic LDPC block codes
Ma et al. Recursive encoding of spatially coupled LDPC codes with arbitrary rates
Soltanpur et al. Lowering error floors by concatenation of low-density parity-check and array code

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
FPAY Annual fee payment

Payment date: 20120927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130927

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150925

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180921

Year of fee payment: 10