KR101227514B1 - Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법 - Google Patents

Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법 Download PDF

Info

Publication number
KR101227514B1
KR101227514B1 KR1020070025505A KR20070025505A KR101227514B1 KR 101227514 B1 KR101227514 B1 KR 101227514B1 KR 1020070025505 A KR1020070025505 A KR 1020070025505A KR 20070025505 A KR20070025505 A KR 20070025505A KR 101227514 B1 KR101227514 B1 KR 101227514B1
Authority
KR
South Korea
Prior art keywords
matrix
model matrix
shift number
model
decoding
Prior art date
Application number
KR1020070025505A
Other languages
English (en)
Other versions
KR20080084179A (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 엘지전자 주식회사
Priority to KR1020070025505A priority Critical patent/KR101227514B1/ko
Priority to PCT/KR2008/001495 priority patent/WO2008111824A2/en
Publication of KR20080084179A publication Critical patent/KR20080084179A/ko
Application granted granted Critical
Publication of KR101227514B1 publication Critical patent/KR101227514B1/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
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/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/033Theoretical methods to calculate these checking 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
    • 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/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
    • H03M13/1188Parity 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 wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
    • 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/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6544IEEE 802.16 (WIMAX and broadband wireless access)

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 LDPC(Low Density Parity Check) 부호화 및 복호화 방법에 관한 것으로서, 보다 상세하게는, LDPC 부호화 및 복호화를 위해 사용되는 패리티 검사 행렬의 구성 방법에 관한 것이다.
본 발명은 상술한 목적을 달성하기 위해, 제1 모델 행렬과 중첩되는 제2 모델 행렬에 포함되는 제2 쉬프트 수를 결정하는 단계; 및 상기 제1 모델 행렬과 상기 제2 모델 행렬을 포함하는 복수의 행렬을 중첩하여 LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 단계를 포함하되, 상기 제1 모델 행렬 및 상기 제2 모델 행렬은 서브 블록들을 포함하고, 상기 제2 쉬프트 수는, 상기 제2 쉬프트 수와 중첩될 상기 제1 모델 행렬의 제1 쉬프트 수 및 상기 서브 블록들의 크기에 따라 결정된다.
LDPC, 중첩, 거스, 사이클, 패리티 검사 행렬

Description

LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 방법{Method for configuring a model matrix for Low Density Parity Check encoding and decoding}
도 1은 본 발명 및 종래 기술이 적용되는 이동통신 채널의 구조를 나타내는 도면이다.
도 2는 소정의 크기의 서브 블록(sub-block)으로 표현하는 방법이다.
도 3은 LDPC 부호화/복호화를 위해 사용되는 모델 행렬(model matrix)의 일례이다.
도 4는 상술한 인덱스, 즉 쉬프트 수(shift number)에 따른 행렬의 표현 방법을 나타낸 도면이다.
도 5는 LDPC 부호화 방법을 나타내는 블록도이다.
도 6은 LDPC 복호화 방법을 나타내는 블록도이다.
도 7은 패리티 검사 행렬을 이분법 그래프(bipartite graph)를 통해 나타낸 것이다.
도 8은 중첩되는 하나의 모델 행렬을 나타내는 도면이다.
도 9는 중첩되는 하나의 모델 행렬을 나타내는 도면이다.
도 10a는 서브 블록의 쉬프수 수가 0 이상의 경우 해당 서브 블록을 패리티 검사 행렬로 표시한 결과이다.
도 10b는 도 10a의 서브 블록에서 무게를 갖는 성분의 위치를 수학식으로 표시한 것이다.
도 11은 하나의 서브 블록 내에서 거스 4가 발생하는 경우를 설명하기 위한 블록도이다.
도 12는 하나의 서브 블록 내에서 거스 4가 발생하는 경우를 설명하기 위한 블록도이다.
도 13은 서로 다른 서브 블록 내에서 거스 4가 발생하는 경우를 설명하기 위한 블록도이다.
도 14는 세로 방향으로 존재하는 2개의 서브 블록 내에서 거스 4가 발생하는 경우를 설명하기 위한 블록도이다.
도 15 내지 도 18는 본 실시예에서 제안한 방법에 따라 2개의 행렬을 중첩한 일례이다.
도 19A 내지 도 21C는 본 실시예에 따른 모델 행렬의 일례를 나타낸 블록도이다.
본 발명은 LDPC(Low Density Parity Check) 부호화 및 복호화 방법에 관한 것으로서, 보다 상세하게는, LDPC 부호화 및 복호화를 위해 사용되는 패리티 검사 행렬의 구성 방법에 관한 것이다.
도 1은 본 발명 및 종래 기술이 적용되는 이동통신 채널의 구조를 나타내는 도면이다. 이하, 도 1을 참조하여 이동통신 채널의 구조를 설명한다. 송신 단(Transmitter)에서 전송할 데이터를 무선채널에서 손실이나 왜곡 없이 전송하기 위해 채널 코딩(channel coding) 절차를 거친다. 상기 채널 코딩 기법으로는, Convolutional Coding, Turbo Coding, LDPC Coding 등의 다양한 기술이 있다. 상기 채널 코딩(Channel coding) 절차를 거친 데이터(data)는 무선 채널로 전송될 때 여러 개의 비트들이 모여서 하나의 심볼로 전송될 수 있다. 이때, 여러 비트들을 하나의 심볼(symbol)로 매핑(mapping) 되는 절차를 변조(modulation)라 한다.
변조된 데이터는 다중화(Multiplexing) 과정 또는 다중 접속(Multiple Access) 방법을 거쳐 다중 전송을 위한 신호로 변환된다. 상기 다중화 방법으로는, CDM, TDM, FDM 등의 다양한 방법이 존재한다. 상기 다중화(Multiplexing) 블록을 거친 신호는 한 개 이상의 다중 안테나에 전송되기 적합한 구조로 변경되어 무선채널을 통해 수신 단(Receiver)에 전달된다. 무선 채널을 통과하는 과정에서 전송된 데이터는 페이딩(Fading)과 열 잡음을 겪게 되어 데이터에 왜곡이 발생할 수 있다.
상기 변조(Modulation)된 데이터는 무선 채널을 통해 수신 단(Receiver)에 전달된다. 이 과정에서 전송된 데이터는 페이딩(Fading)과 열 잡음 등을 겪게 되어 데이터에 왜곡이 발생할 수 있다. 수신 단에서는 상기 왜곡된 데이터를 수신한 후 상기 송신 단의 일련의 절차를 역순으로 수행한다. 상기 심볼로 매핑(mapping)된 데이터를 비트열로 바꾸는 복조(demodulation) 작업을 수행하고, 채널 디코 딩(Channel Decoding) 절차를 거치며 왜곡된 데이터를 원래 데이터로 복원한다.
상기 채널 코딩을 수행하는 장치는, 입력된 데이터(Information bits 또는 Systematic Bits)에 첨가될 패리티 비트(Parity Bits)을 발생시키는 사용되는 패리티 검사 행렬(Parity Check Matrix)인 H 행렬 또는 H행렬로부터 유도되는 생성행렬(Generation Matrix) G 행렬을 저장하고 있다. 즉, 상기 송신 단은, 상기 H 또는 G 행렬과 상기 입력된 데이터를 통해 패리티 비트(Parity Bit)들을 발생하는 인코더(Encoder)를 포함한다. 채널 디코딩(Channel Decoding)을 수행하는 장치는, 수신된 데이터(왜곡된 Systematic Bits + Parity Bits)를 H행렬과 연산을 통하여 상기 입력된 데이터(Systematic Bits)들이 제대로 복구되는지 확인하고 복구 실패시 연산을 재수행한다.
상기 변조(Modulation)는 BPSK(Binary Phase Shift Keying), QPSK(Quadrature Phase Shift Keying), 16-QAM(Quadrature Amplitude Modulation), 64-QAM, 256-QAM 등이 사용된다. 예를 들어, 16-QAM은 변조(Modulation)시 채널 인코딩(Channel Encoding) 절차를 거친 데이터 열을 4 비트 단위로 하나의 심볼에 매핑(mapping)한다. 16-QAM은 복조(Demodulation) 시 무선 채널을 거쳐 수신된 데이터의 하나의 심볼을 4개의 bit로 디매핑(demapping) 한다.
이하, 본 발명과 함께 사용될 수 있는 데이터 재전송 기법에 관하여 설명한다. 상기 데이터 재전송 기법의 종류는 다양한바, 이하 HARQ(Hybrid Automatic Repeat reQuest) 기법에 대하여 설명한다. HARQ는 통신시스템에서 재전송 기법인 ARQ(Automatic Repeat reQuest)와 FEC(Forward Error Correction) 부호를 결합한 기술이다. ARQ 기법은, 수신단에서 수신된 데이터에서 에러(error)가 검출된 경우, 상기 수신 단(Receiver)은 송신 단(Transmitter)으로 재전송을 요청하는 방법이다. ARQ 기법에는 재전송 방법에 따라, Stop-And-Wait, Selective Repeat, Go-Back-N 등이 있다.
이하 LDPC 부호에 관하여 설명한다. LDPC 부호의 개념을 설명하면 다음과 같다.
선형 부호는 생성행렬 G 또는 패리티 체크 행렬 H로 기술될 수 있다. 선형 부호의 특징은 모든 코드워드 c 에 대하여,
Figure 112007020940512-pat00001
을 만족하도록 부호가 구성된다는 점이다. 이 선형 부호의 일종으로서, 최근에 주목받는 LDPC 부호는 1962년 Gallager에 의하여 처음 제안되었다. 이 부호의 특징으로는 패리티 체크 행렬의 원소가 대부분 0으로 이루어지고, 0이 아닌 원소의 수는 부호 길이에 비하여 적은 수를 가지도록 하여 확률을 기반으로 한 반복적 복호가 가능한 점이다. 처음 제안된 LDPC 부호는 패리티 체크 행렬을 비체계적인(non-systematic) 형태로 정의하였고, 그것의 행과 열에 균일하게 적은 무게(weight)를 갖도록 설계되었다.
여기서, 무게(weight)란 행렬에서 열(column) 또는 행(row)에 포함된 1의 개수를 의미한다.
LDPC 부호의 패리티 체크 행렬 H 상에 0이 아닌 원소의 밀도가 적기 때문에 낮은 복호 복잡도를 가지게 된다. 아울러, 복호 성능도 기존의 부호들보다 우수하여 Shannon의 이론적인 한계에 근접하는 좋은 성능을 보인다. 하지만 LDPC 부호는 당시 하드웨어 기술로서 구현이 어려워서 30여 년이 넘게 많은 사람의 관심을 끌지 못하였다. 1980년대 초반 그래프를 이용하여 반복적 복호를 하는 방법이 개발되어, 이를 이용하여 LDPC 부호를 실제로 복호할 수 있는 여러 알고리즘들이 개발되었다. 이를 대표하는 알고리즘으로 합곱 알고리즘(sum-product Algorithm)을 뽑을 수 있다.
이하, LDPC 부호의 특징을 설명한다. LDPC 부호는 높은 오류 정정 성능을 갖고 있으며, 이로 인해 통신 속도와 용량의 개선을 가능하게 한다. 상기 LDPC 부호는 MIMO(Multiple Input Multiple Output) 시스템과 결합하여 수백 Mbit/s의 전송이 가능한 고속 무선 LAN에 적용될 수 있고, 또한 250km/h에서 1Mbit/s 이상의 전송 속도를 갖는 고속 이동 통신에 적용될 수 있고, 또한 40Gbits/s 이상의 광통신에 적용될 수 있다. 또한, 상기 LDPC 부호의 높은 오류 정정 성능으로 인해 전송 품질이 개선되어 저품질의 통신 경로에서 재전송의 회수를 감소시키는 양자 암호화 통신을 가능하게 할 수 있다. 또한, LDPC 부호의 낮은 복잡도와 뛰어난 손실 보상으로 인해, 유실된 패킷을 용이하게 복원할 수 있으며, 이는 인터넷과 이동 통신을 통해 TV 품질과 동일한 품질의 컨텐츠를 전송할 수 있게 한다. LDPC의 장점인 넓은 적용 범위와 큰 용량으로 인하여, 전에는 불가능한 것으로 여겨졌던 100m 범위까지의 10GBASE-T 전송이 LDPC 부호를 통해 실현 가능하다. 동시에 36MHz 대역의 단일 위성 송신기의 전송 용량을 1.3배 늘어난 80M비트/s까지 늘릴 수 있다.
이하, 구조화된(structured) LDPC를 설명한다.
LDPC 부호를 사용하기 위해서는 패리티 체크 행렬 H를 사용하는데, 사용하는 행렬 H는 대부분의 0과 일부의 1을 원소(elemnet)로 포함하는데, H 행렬의 크기가 105 비트 이상으로 크기 때문에 H 행렬을 표현하는데 큰 크기의 메모리가 필요하다. 상기 구조화된 LDPC 기법은 LDPC 부호화 및 복호화에 사용되는 상기 H 행렬의 원소들을 도 2와 같이 일정한 크기의 서브 블록(sub-block)으로 표현하는 방법이다.
IEEE802.16e에서는 상기 서브 블록을 하나의 정수 인덱스(index)로 표시하여, 상기 H 행렬을 저장하는데 필요한 메모리의 크기를 줄인다. 상기 서브 블록은 다양한 행렬일 수 있는바, 예를 들어 일정한 크기의 퍼뮤테이션 행렬(Permutation Matrix)일 수도 있다.
상기 구조화된 LDPC 기법을 사용하게 되면 특정한 메모리에 1 또는 0으로 구성되는 일정 크기의 행렬을 저장하는 대신, 하나의 정수(즉, 인덱스)만 저장하면 되기 때문에 상기 H 행렬을 표시하는데 필요한 메모리의 크기를 줄일 수 있다.
일례로, IEEE802.16e 표준에 반영된 코드워드(codeword)의 크기가 2304이고, 부호율(code rate)이 2/3인 경우에, LDPC 부호화/복호화를 위해 사용되는 모델 행렬(model matrix)은 도 3과 같다. 모델 행렬은, 이하에서 설명하는 쉬프트 수로 표현되는 적어도 하나의 서브 블록으로 구성된 패리티 검사 행렬을 의미한다. 상기 모델 행렬은 이하에서 설명하는 방법에 의해 패리티 검사 행렬로 확장되어 생성될 수 있다. 따라서 특정한 모델 행렬로 부호화 및 복호화를 수행한다는 의미는 해당 모델 행렬에서 확장되어 생성된 패리티 검사 행렬로 부호화 및 복호화를 수행한다는 의미와 동일하다.
도 3에 도시된 바와 같이, 구조화된 LDPC 행렬은 '-1', '0' 과 양의 정수로 표현될 수 있다. 인덱스가 '-1'인 경우는 특정한 크기의 영 행렬(zero matrix)을 나타내며, 인덱스가 '0'인 경우는 특정한 크기의 단위 행렬(identity matrix)을 나타낸다. '-1'과 '0'을 제외한 양의 정수를 갖는 인덱스는, 상기 인덱스가 쉬프트 수(shift number)를 나타낸다. 서브 블록을 '1'이라는 인덱스로 표현하는 경우, 해당 서브 블록은 단위 행렬에서 특정한 방향으로 '1'번 쉬프트된 것이다.
도 4는 상술한 인덱스, 즉 쉬프트 수(shift number)에 따른 행렬의 표현 방법을 나타낸 도면이다. 특정한 패리티 검사 행렬을 4*4 크기의 행렬(즉, 서브 블록)로 구조화하여 표현하는 경우, 상기 특정한 서브 블록을 '3'이라는 인덱스로 표시하면, 상기 서브 블록은 도 4의 행렬이 된다.
이하, LDPC 부호화 방법을 설명한다.
일반적인 LDPC 부호화(Encoding) 방법은, LDPC 패리티 검사행렬(Parity Check Matrix) H로부터 생성행렬(Generation Matrix) G를 유도해 내어, 정보 비트(information bit)를 부호화(encoding)한다. 상기 생성행렬 G를 유도하기 위해, 상기 검사행렬 H를 가우스 소거(Gaussian Reduction) 방법을 통해 [ PT : I ] 형태로 구성한다. 상기 정보 비트(Information bit)의 수를 k이라 하고, 인코딩된 코드 워드(codeword)의 크기를 n이라고 할 때, 상기 P 행렬은 행의 개수가 k이고 열의 개수가 n-k인 행렬이고, 상기 I는 행 크기가 k 열 크기가 k인 단위 행렬(Identity Matrix)이다.
상기 생성행렬 G 는, 상기 검사행렬 H 가 [ PT : I ]와 같이 표현되었을 때, [ I : P ] 행렬이 된다. 인코딩(Encoding) 되는 k 비트 크기의 정보 비트를 행렬로 표시하면, 행의 개수는 1이고 열의 개수는 k인 행렬 x로 표현할 수 있다. 이 경우 코드 워드 c는 다음과 같은 식으로 설명된다.
Figure 112007020940512-pat00002
상기 수식에서, x는 정보어 부분(information part 또는 systematic part)을 나타내고, xP는 패리티 부분(parity part)을 나타낸다.
한편, 위와 같이 가우스 소거(Gaussian Reduction) 방법으로 부호화하는 경우에는 계산량이 많아, 상기 H 행렬의 형태를 특수한 구조로 디자인(design)하여 상기 G 행렬을 유도하지 않고, 상기 H 행렬에서 직접 부호화하는 방법을 사용한다. 즉, 상기 G 행렬과 상기 H 행렬에 대한 전치(Transpose) 형태의 HT 간의 곱이 0 이라는 성질(즉,
Figure 112007020940512-pat00003
)을 이용하여, 상기 수학식 1에서 HT을 곱하면, 하기 수학식 2 같은 수학식을 얻을 수 있다. 하기 수학식 2에 부합하는 패리티 비트를 정보 비트(x) 뒤에 추가하여 코드워드 c를 얻을 수 있다.
Figure 112007020940512-pat00004
상술한 내용을 도면에 따라 설명하면 다음과 같다.
도 5는 LDPC 부호화 방법을 나타내는 블록도이다.
도시된 바와 같이, 하나의 패리티 검사 행렬이 있는 경우, 정보 비트 [a0, a1, a2, a3]는 도 5의 하단에 제시된 수식에 따라 패리티 비트 [p0, p1, p2, p3]를 생성한다. 도면에서 '
Figure 112007020940512-pat00005
'는 배타적 논리합(exclusive or) 연산을 나타낸다.
도 5의 결과 생성되는 코드워드는 [a0, a1, a2, a3, p0, p1, p2, p3]이다.
도 5와 같이 패리티 검사 행렬을 이용하여 부호화를 할 수도 있고, 생성 행렬 G를 이용하여 부호화를 할 수도 있다.
이하, LDPC 복호화 방법에 대하여 설명한다.
통신시스템에서 부호화된 데이터는 도 1의 무선 채널을 통과하는 과정에서 잡음을 포함하게 되는데, 수신 단에서는 도 6과 같은 절차를 통해 데이터의 복호 과정을 나타낸다. 수신 단의 복호화 블록에서는 부호화된 코드워드(c)에 잡음이 첨가된 수신신호(c')로부터 정보 비트(x)를 구하는데, cHT=0인 성질을 이용하여 찾아낸다. 즉, 수신된 코드워드를 c'라 할 때, c'HT의 값을 계산하여 결과가 0이면, c' 에서 처음 k개의 비트를 상기 정보 비트(x)로 결정한다. 만약, c'HT의 값이 0이 아닌 경우, 그래프를 통한 합곱(sum-product) 알고리즘 등의 복호화 기법을 사용하여, c'HT의 값이 0을 만족하는 c'을 찾아 상기 정보 비트(x)를 복구한다.
이하, LDPC 부호의 부호율(code rate)를 설명한다.
일반적으로, 부호율(R: code rate)은 상기 정보 비트의 크기가 k이고, 실제 전송되는 코드워드의 크기가 n일 때 다음과 같다.
R = k/n
LDPC 부호화 및 복호화에 필요한 상기 H 행렬의 행의 크기가 m, 열의 크기가 n인 경우, 부호율은 다음과 같다.
R = 1 - m/n
상술한 바와 같이, 종래의 LDPC 부호는 상기 H 행렬에 의해 부호화 및 복호화를 수행하는바 상기 H 행렬의 구조가 매우 중요하다. 즉, 부호화 및 복호화의 성능이 상기 H 행렬의 구조에 크게 영향을 받기 때문에, 상기 H 행렬의 설계가 무엇보다 중요하다.
이하, 종래 기술에 문제되는 사이클 4를 설명한다.
도 7은 패리티 검사 행렬을 이분법 그래프(bipartite graph)를 통해 나타낸 것이다.
도 7은 하기 수학식 5의 패리티 검사 행렬을 이분법 그래프로 나타낸 것이다.
Figure 112007020940512-pat00006
수학식 5의 첫 번째 행은 제1 검사 노드(C1)에 상응하고, 두 번째 행은 제2 검사 노드(C2)에 상응하고, 세 번째 행은 제3 검사 노드(C3)에 상응한다. 또한, 수학식 5의 첫 번째 열은 제1 비트 노드(V1)에 상응하고, 두 번째 열은 제2 비트 노드(V2)에 상응하고, 세 번째 열은 제3 비트 노드(V3)에 상응하고, 네 번째 열은 제4 비트 노드(V4)에 상응한다.
이분법 그래프의 연결과 도시된 바와 같으면, 사이클 4(cycle)가 존재한다고 한다. 즉, 하나의 노드에서부터 연결선을 그리는 경우, 4개의 선을 통해 자기 자신에 이르면 사이클 4가 존재한다고 한다.
도시된 바와 같이 사이클 4가 존재하는 경우, LDPC 복호화를 수행하는데 문제가 발생할 수 있다.즉, LDPC 복호화를 수행하는 경우 부정확한 수신 신호는 신뢰도 전파(belief propagation: BP) 기법에 의해 전파되어야 하는데, 사이클 4가 존재하면 부정확한 신호에 대한 전파가 수행되지 않아서 LDPC 복호화의 성능이 열화된다.
본 발명은 종래 기술을 개선하기 위해 제안된 것으로서, 본 발명의 목적은, 개선된 성능의 모델 행렬을 제안하는 것이다.
발명의 개요
본 발명은 상술한 목적을 달성하기 위해, 제1 모델 행렬과 중첩되는 제2 모델 행렬에 포함되는 제2 쉬프트 수를 결정하는 단계; 및 상기 제1 모델 행렬과 상기 제2 모델 행렬을 포함하는 복수의 행렬을 중첩하여 LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 단계를 포함하되, 상기 제1 모델 행렬 및 상기 제2 모델 행렬은 서브 블록들을 포함하고, 상기 제2 쉬프트 수는, 상기 제2 쉬프트 수와 중첩될 상기 제1 모델 행렬의 제1 쉬프트 수 및 상기 서브 블록들의 크기에 따라 결정된다.
본 실시예는 제1 모델 행렬에 제2 모델 행렬을 중첩하여 새로운 모델 행렬을 구성하는 방법을 제안한다. 상기 모델 행렬들은 패리티 검사 행렬로 확장되어 LDPC 부호화 및 복호화에 사용되는 것이 바람직하다.
중첩되는 모델 행렬의 개수에는 제한이 없다.
상기 제1 모델 행렬은 이미 주어진 모델 행렬인 것이 더욱 바람직하다. 예를 들어, IEEE 802.16e의 규격에서 제안된 모델 행렬인 것이 바람직하다.
상기 제1 모델 행렬 및 제2 모델 행렬을 포함하는 모델 행렬들은 특정한 크기의 단위 행렬에 의하여 확장된다. 즉, 특정한 크기의 단위 행렬에 의해 확장되어 패리티 검사 행렬을 구성한다. 상기 특정한 크기는 z * z인 것이 바람직하다.
상기 제2 모델 행렬을 구성하는 적어도 하나의 인덱스, 즉 쉬프트 수는 패리티 검사 행렬로 확장되는 과정에서 사용되는 행렬의 크기, 즉 'z '에 따라 결정되 는 것이 바람직하다.
또한, 상기 제2 모델 행렬을 구성하는 적어도 하나의 인덱스, 즉 쉬프트 수는 제1 모델 행렬을 이루는 인덱스와 제2 모델 행렬을 이루는 인덱스 간의 관계에 의해 결정되는 것이 바람직하다. 예를 들어, 제1 모델 행렬을 이루는 인덱스와 제2 모델 행렬을 이루는 인덱스의 차이에 따라 제2 모델 행렬의 인덱스를 결정할 수 있다.
또한, 제3 모델 행렬도 추가적으로 중첩하는 경우, 제1, 2, 3 모델 행렬의 인덱스들의 관계에 따라 제3 모델 행렬의 인덱스가 결정되는 것이 바람직하다. 예를 들어, 제1 모델 행렬의 인덱스와 제2 모델 행렬의 인덱스의 차이에 따라 제3 모델 행렬의 인덱스를 결정할 수 있다.
발명의 일 실시예
본 발명의 구성 및 동작은 이하에서 설명되는 본 발명의 일 실시예에 의해 구체화될 것이다. 이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 설명한다.
본 실시예는 적어도 2개의 모델 행렬을 중첩할 것을 제안한다.
도 8은 중첩되는 하나의 모델 행렬을 나타내는 도면이다. 또한, 도 9는 중첩되는 하나의 모델 행렬을 나타내는 도면이다.
본 실시예는 도 8과 도 9와 같은 모델 행렬을 조합할 것을 제안한다.
모델 행렬들을 중첩시키는 경우 다음과 같은 유리한 점이 있다.
2개의 모델 행렬을 중첩시키는 경우 제1 모델 행렬을 기본 행렬이라고 칭하고, 제2 모델 행렬을 중첩 행렬이라 칭할 수 있다. 이 경우, 기본 행렬은 도 8과 같이 이미 제안된 모델 행렬일 수 있다. 모델 행렬을 Hb라 하고, 중첩 행렬을 Hs라 하는 경우, 중첩에 의하여 새롭게 구성되는 모델 행렬은 Hr이다.
Figure 112007020940512-pat00007
기본 행렬과 중첩 행렬 및 새롭게 구성되는 모델 행렬은 수학식 6의 관계를 만족한다.
이 경우 Hr 행렬에 의해 부호화된 코드워드는 다음 수학식을 만족한다.
Figure 112007020940512-pat00008
기본 행렬과 하나 이상의 중첩 행렬을 이용하여 모델 행렬을 만드는 경우, 기본 행렬이 갖는 많은 장점들을 유지하는 새로운 모델 행렬을 만들 수 있다.
중첩 행렬은 도 9와 같이 일정한 영역에만 무게를 가질 수 있다. 이 경우, 균일한 특성을 갖는 기본 행렬에 더해져서 비 균일한 특성을 갖는 모델 행렬을 만들 수 있다.
즉, 중첩 행렬을 이용하여, 균일한(regular) LDPC 패리티 검사 행렬을 비균일한(irregular) LDPC 패리티 검사 행렬로 변환할 수 있다.
비균일한 LDPC 부호의 성능을 차수 분포(degree distribution)에 따라 평가하는 경우, 변수 노드(variable node)에 대한 최고 차수(maximum degree)가 클 수록 성능이 좋다고 알려져 있다. 또한, 최고 차수가 차지하는 비율이 일정 비율 이 상일 수록 부호의 성능이 좋다고 알려져 있다.
본 실시예는 충첩 행렬을 이용하므로, 중첩하는 인덱스 값의 위치를 조정하면 최고 차수를 자유롭게 조정할 수 있는 유리한 점이 있다.
모델 행렬을 중첩시키면 상술한 유리한 점이 있지만, 새롭게 구성된 모델 행렬이 사이클 4의 구조를 갖는 문제가 발생할 수 있다.
가령, 도 4에 도시된 바와 같이, 종래의 모델 행렬을 구성하는 서브 블록에 대한 행 또는 열의 무게는 '1'이다. 이 경우, 하나의 서브 블록 내에서는 사이클 4의 구조가 존재할 수 없다. 그러나, 모델 행렬을 중첩한다면 하나의 서브 블록 내에서도 사이클 4의 구조가 존재할 수 있다.
또한, 이미 제안된 모델 행렬에는 사이클 4의 구조가 없다고 하더라도 중첩에 의해 새롭게 사이클 4의 구조가 발생할 수 있다.
본 실시예는 모델 행렬을 중첩시켜 새로운 모델 행렬을 구성하는 경우, 사이클 4의 발생을 방지하는 방법을 제안한다.
달리 표현하면, 본 실시예에 따른 모델 행렬 또는 본 실시예에 따른 모델 행렬로부터 생성된 패리티 검사 행렬은 사이클 4의 구조를 갖지 않는다. 즉, 본 실시예에 따른 모델 행렬 내지 패리티 검사 행렬에 대한 거스(girth)는 4를 초과한다. 즉, 6 이상의 거스를 갖는다.
거스(girth)는 이분법 그래프 상에서 길이가 가장 짧은 사이클(cycle)을 의미한다. 즉, 하나의 모델 행렬 또는 패리티 검사 행렬에 존재하는 가장 작은 사이클이 거스라 칭한다. 거스가 4를 초과하면 해당 모델 행렬 또는 패리티 검사 행렬 에는 사이클 4의 구조가 존재하지 않는다. 따라서, LDPC 복호화 시에 향상된 성능을 얻을 수 있다.
이하, 하나의 서브 블록 내에서 사이클 4의 구조를 방지하는 방법과 복수의 서브 블록 내에서 사이클 4의 구조를 방지하는 방법을 설명한다.
이하, 하나의 서브 블록 내에서 거스 4가 발생하는 것을 방지하는 방법을 설명한다.
충첩을 사용하지 않는 경우, '0' 이상의 쉬프트 수를 가지는 하나의 서브 블록 내에서는 차수(degree)가 '1'로 정해진다. 따라서, 거스를 계산할 때에 서로 다른 서브 블록 간의 관계를 고려했다. 그러나, 중첩을 사용하는 경우, '0' 이상의 쉬프트 수를 가지는 서브 블록들이 더해질 수 있다. 즉, 하나의 서브 블록 내에서 차수가 '2' 이상이 될 수 있다.
우선 2개의 서브 블록들을 더하는 경우, 거스 4가 발생할 수 있는지 여부를 검토한다.
우선, 하나의 서브 블록에서 무게를 갖는 성분의 위치를 수학적으로 표시하는 방법을 설명한다.
도 10a는 서브 블록의 쉬프수 수가 0 이상의 경우 해당 서브 블록을 패리티 검사 행렬로 표시한 결과이다. 또한, 도 10b는 도 10a의 서브 블록에서 무게를 갖는 성분의 위치를 수학식으로 표시한 것이다.
도 10a의 좌측에 도시된 바와 같이, 쉬프트 수가 '0'이고, 하나의 서브 블록의 크기(달리 표현하면, 'z factor'라 칭함)가 '6'일 수 있다. 즉, 하나의 서브 블 록이 6 * 6의 행렬로 확장될 수 있다.
이 경우, 해당 서브 블록은 도 10a의 좌측에 표시된 것과 같은 패리티 검사 행렬로 확장된다.
이 경우, 해당 서브 블록은 도 10b의 좌측에 표시된 것과 같이 표시된다. 즉, 쉬프트 수가 '0'이고 서브 블록의 크기가 '6'인 경우, 해당 서브 블록의 무게를 갖는 성분의 위치는 [x, x]로 표시된다.
도 10a의 우측에 도시된 바와 같이, 쉬프트 수가 '3'이고, 하나의 서브 블록의 크기(달리 표현하면, 'z factor'라 칭함)가 '6'인 경우에, 해당 서브 블록은 도 10b의 우측에 표시된 것과 같이 표시된다.
즉, 쉬프트 수가 '3'이고 서브 블록의 크기가 '6'인 경우, 해당 서브 블록의 무게를 갖는 성분의 위치는 [x, (x-3) mod 6]로 표시된다. 상기 mod는 모듈로(modulo) 연산을 나타내는 것이다.
정리하면, 쉬프트 수가 'a1'이고, 서브 블록의 크기가 'z'인 경우, 해당 서브 블록의 무게를 갖는 성분의 x 좌표값은 'x'이고, y 좌표값은 '(x-a1) mod z'이다.
이하, 하나의 서브 블록 내에서 거스 4가 발생하는 경우를 설명한다.
하기 수학식 8a와 같은 제1 모델 행렬과 하기 수학식 8b와 같은 제2 모델 행렬을 중첩하는 경우, 수학식 8c와 같은 새로운 모델 행렬을 얻을 수 있다. 즉, 도 8a는 제1 모델 행렬이라 할 수 있고, 도 8b는 제2 모델 행렬이라 할 수 있다. 이 경우, 제1 모델 행렬의 제1 쉬프트 수(a1)은 제2 모델 행렬의 제2 쉬프트 수(a2)와 중첩된다. 달리 표현하면, 제1 쉬프트 수에 상응하는 서브 블록이 제2 쉬프트 수에 상응하는 서브 블록과 중첩된다.
다만, 제2 모델 행렬에서 무게를 갖는 성분은 a2 뿐이므로, 제1 모델 행렬의 쉬프트 수 x는 제2 모델 행렬의 쉬프트 수와 중첩되지 않는다.
Figure 112007020940512-pat00009
Figure 112007020940512-pat00010
Figure 112007020940512-pat00011
상기 수학식 8c는 도 11와 같이 도시될 수 있다.
도 11은 하나의 서브 블록 내에서 거스 4가 발생하는 경우를 설명하기 위한 블록도이다.
도시된 바와 같이, 1101 성분은 제1 쉬프트 수 a1에 따라 생성된 성분이다. 또한, 1102 성분은 제2 쉬프트 수 a2에 따라 생성된 성분이다.
거스 4가 발생하기 위해서는 사각형 형태로 무게를 갖는 성분이 위치하여야 한다. 따라서, 1103 성분이 존재하여야 한다. 1103 성분은 1102 성분으로부터 -a2 + a1만큼 천이(shift) 되었다고 가정한다. 1104 성분은 1103 성분과 동일한 x 좌표값을 가져야 하기 때문에, 1104 성분의 x 좌표값은 '(x-a2+a1) mod z'로 정해진다. 이 경우, 1104 성분은 쉬프트 수 a2에 따라 생성되는 성분이므로, 1104 성분의 y 좌표값은 '(x-a2+a1-a2) mod z '로 결정된다.
만약 하나의 서브 블록 내에서 거스 4가 발생하는 경우라면, 1101 성분의 y 좌표값과 1104 성분의 y 좌표값이 동일한 경우가 존재하여야 한다. 이러한 경우가 존재하는지 여부는 하기 수학식 9에 의해 설명된다.
Figure 112007020940512-pat00012
Figure 112007020940512-pat00013
Figure 112007020940512-pat00014
정리하면 수학식 9의 결과인
Figure 112007020940512-pat00015
를 만족하면 거스 4가 발생한다. 따라서, 제1 모델 행렬에 속하는 제1 쉬프트 수 a1과 제2 모델 행렬에 속하는 제2 쉬프트 수 a2를 중첩하는 경우, 2(a1-a2) mod z가 아닌 경우에는 거스 4가 발생하지 않는다.
만약, z가 홀수라면 a1과 a2의 값에 관계없이 수학식 9는 달성될 수 없다. 즉, z가 홀수라면 a1과 a2의 값에 관계없이 도 12와 같은 구조는 존재할 수 없다.
다만, z가 짝수라면 a1-a2의 결과는 z/2의 배수가 되지 않도록 하는 것이 바람직하다. 예를 들어, z=10인 경우에는 a1-a2는 5, 10, 15, 20등이 되지 않도록 a1-a2를 결정하는 것이 바람직하다. 만약, a1이 이미 정해져 있다면, a2 값을 조정하여 수학식 9를 만족하지 않도록 하는 것이 바람직하다.
본 실시예에 따라 중첩하는 경우, 중첩하는 모델 행렬의 개수에는 제한이 없다. 이하, 3개의 모델 행렬이 중첩되는 경우에 거스 4를 방지하는 방법을 설명한다.
도 12는 하나의 서브 블록 내에서 거스 4가 발생하는 경우를 설명하기 위한 블록도이다.
도시된 바와 같이, 1201 성분은 제2 쉬프트 수 a2에 따라 생성된 성분이다. 또한, 1202 성분은 제3 쉬프트 수 a3에 따라 생성된 성분이다.
거스 4가 발생하기 위해서는 사각형 형태로 무게를 갖는 성분이 위치하여야 한다. 따라서, 1203 성분이 존재하여야 한다. 1203 성분은 1202 성분으로부터 a2 - a3만큼 천이(shift) 되었다고 가정한다. 1204 성분은 1203 성분과 동일한 x 좌표값을 가져야 하기 때문에, 1204 성분의 x 좌표값은 '(x+a2-a3) mod z'로 정해진다. 이 경우, 1204 성분은 제1 쉬프트 수 a1에 따라 생성되는 성분이라 가정하는 경우, 1204 성분의 y 좌표값은 '(x-a1+a2-a3) mod z '로 결정된다.
만약 3개의 쉬프트 수를 중첩하여 거스 4가 발생하려면, 1201 성분의 y 좌표값과 1204 성분의 y 좌표값이 동일한 경우가 존재하여야 한다. 이러한 경우가 존재하는지 여부는 하기 수학식 10에 의해 설명된다.
Figure 112007020940512-pat00016
Figure 112007020940512-pat00017
Figure 112007020940512-pat00018
정리하면 수학식 10의 결과인
Figure 112007020940512-pat00019
를 만족하면 거스 4가 발생한다.
따라서 3개의 모델 행렬을 중첩하는 경우, 제1 쉬프트 수와 제3 쉬프트 수의 합이 제2 쉬프트 수의 2배인 경우에는 거스 4가 발생한다.
따라서, 3개의 모델 행렬을 중첩하는 경우, 제1 쉬프트 수와 제3 쉬프트 수의 합산 결과에 대해 모듈로 연산을 취한 결과는 제2 쉬프트 수의 2배에 모듈로 연산을 취한 결과와 상이하도록 제1 내지 제3 쉬프트 수를 정하는 것이 바람직하다. 상기 제1 내지 제3 쉬프트 수들 중 적어도 어느 하나는 이미 결정된 값일 수 있다. 이 경우, 나머지 값들을 조정하여 수학식 10을 만족하지 않는 쉬프트 수를 정하는 것이 바람직하다.
이하, 서로 다른 서브 블록 간에 거스 4가 발생하는 경우를 설명한다.
하기 수학식 11a와 같은 제1 모델 행렬과 하기 수학식 11b와 같은 제2 모델 행렬을 중첩하는 경우, 수학식 8c와 같은 새로운 모델 행렬을 얻을 수 있다. 즉, 수학식 11a는 제1 모델 행렬이라 할 수 있고, 수학식 11b는 제2 모델 행렬이라 할 수 있다. 이 경우, 제1 모델 행렬의 제1 쉬프트 수(a1)은 제2 모델 행렬의 제2 쉬프트 수(a2)와 중첩된다. 달리 표현하면, 제1 쉬프트 수에 상응하는 서브 블록이 제2 쉬프트 수에 상응하는 서브 블록과 중첩된다. 또한, 제1 모델 행렬의 제4 쉬프트 수(a4)은 제2 모델 행렬의 제3 쉬프트 수(a3)와 중첩된다.
수학식 11a 및 수학식 11b 각각은 거스 4의 구조를 갖지 않는다. 다만, 중첩이 적용되면, 거스 4의 구조를 갖을 수 있다.
Figure 112007020940512-pat00020
Figure 112007020940512-pat00021
Figure 112007020940512-pat00022
상기 수학식 11c는 도 13과 같이 도시될 수 있다.
도 13은 서로 다른 서브 블록 내에서 거스 4가 발생하는 경우를 설명하기 위한 블록도이다.
도시된 바와 같이, 1301 성분은 제1 쉬프트 수 a1에 따라 생성된 성분이다. 또한, 1302 성분은 제2 쉬프트 수 a2에 따라 생성된 성분이다.
거스 4가 발생하기 위해서는 사각형 형태로 무게를 갖는 성분이 위치하여야 한다. 따라서, 1303 성분이 존재하여야 한다. 1303 성분은 1302 성분으로부터 -a2 + a3만큼 천이(shift) 되었다고 가정한다. 1304 성분은 1303 성분과 동일한 x 좌표값을 가져야 하기 때문에, 1304 성분의 x 좌표값은 '(x-a2+a3) mod z'로 정해진다. 이 경우, 1304 성분은 쉬프트 수 a4에 따라 생성되는 성분으로 가정하면, 1304 성분의 y 좌표값은 '(x-a2+a1-a4) mod z '로 결정된다.
만약 거스 4가 발생하는 경우라면, 1301 성분의 y 좌표값과 1304 성분의 y 좌표값이 동일한 경우가 존재하여야 한다. 이러한 경우가 존재하는지 여부는 하기 수학식 12에 의해 설명된다.
Figure 112007020940512-pat00023
Figure 112007020940512-pat00024
Figure 112007020940512-pat00025
정리하면 수학식 12의 결과인
Figure 112007020940512-pat00026
를 만족하면 거스 4가 발생한다.
따라서, 모델 행렬들을 중첩하는 경우, 상기 수학식 12를 만족하디 않도록 쉬프트 수를 정하는 것이 바람직하다. 상기 제1 내지 제4 쉬프트 수들 중 적어도 어느 하나는 이미 결정된 값일 수 있다. 이 경우, 나머지 값들을 조정하여 수학식 12을 만족하지 않는 쉬프트 수를 정하는 것이 바람직하다.
상술한 일례는 하나의 서브 블록에서 2개의 쉬프트 수가 중첩되는 일례이다. 중첩되는 쉬프트 수의 개수에는 제한이 없다. 예를 들어, 하나의 서브 블록에서 3개의 쉬프트 수가 중첩되어 서로 다른 서브 블록 간에 거스 4가 발생하는지 여부를 알기 위해서는, 3개의 쉬프트 수 중에서 2개의 쉬프트 수에 대해 이미 설명한 식으로 거스 4가 존재하는지를 검사하는 것이 바람직하다.
도 13은 가로 방향의 두 서브 블록 간에 거스 4가 발생하는 경우에 관한 것이다. 이하, 세로 방향의 두 서브 블록 간에 거스 4가 발생하는 경우를 설명한다.
하기 수학식 11a와 같은 제1 모델 행렬과 하기 수학식 11b와 같은 제2 모델 행렬을 중첩하는 경우, 수학식 8c와 같은 새로운 모델 행렬을 얻을 수 있다. 즉, 수학식 11a는 제1 모델 행렬이라 할 수 있고, 수학식 11b는 제2 모델 행렬이라 할 수 있다. 이 경우, 제1 모델 행렬의 제1 쉬프트 수(a1)은 제2 모델 행렬의 제2 쉬프트 수(a2)와 중첩된다. 달리 표현하면, 제1 쉬프트 수에 상응하는 서브 블록이 제2 쉬프트 수에 상응하는 서브 블록과 중첩된다. 또한, 제1 모델 행렬의 제4 쉬프트 수(a4)은 제2 모델 행렬의 제3 쉬프트 수(a3)와 중첩된다.
수학식 11a 및 수학식 11b 각각은 거스 4의 구조를 갖지 않는다. 다만, 중첩이 적용되면, 거스 4의 구조를 갖을 수 있다.
Figure 112007020940512-pat00027
Figure 112007020940512-pat00028
Figure 112007020940512-pat00029
상기 수학식 13c는 도 14와 같이 도시될 수 있다.
도 14는 세로 방향으로 존재하는 2개의 서브 블록 내에서 거스 4가 발생하는 경우를 설명하기 위한 블록도이다.
도시된 바와 같이, 1401 성분은 제1 쉬프트 수 a1에 따라 생성된 성분이다. 또한, 1402 성분은 제3 쉬프트 수 a3에 따라 생성된 성분이다.
거스 4가 발생하기 위해서는 사각형 형태로 무게를 갖는 성분이 위치하여야 한다. 따라서, 1403 성분이 존재하여야 한다. 1403 성분은 1402 성분으로부터 -a3 + a4만큼 천이(shift) 되었다고 가정한다. 1404 성분은 1403 성분과 동일한 x 좌표값을 가져야 하기 때문에, 1404 성분의 x 좌표값은 '(x-a3+a4) mod z'로 정해진다. 이 경우, 1404 성분은 쉬프트 수 a2에 따라 생성되는 성분으로 가정하면, 1404 성분의 y 좌표값은 '(x-a3+a4-a2) mod z '로 결정된다.
만약 거스 4가 발생하는 경우라면, 1401 성분의 y 좌표값과 1404 성분의 y 좌표값이 동일한 경우가 존재하여야 한다. 이러한 경우가 존재하는지 여부는 하기 수학식 14에 의해 설명된다.
Figure 112007020940512-pat00030
Figure 112007020940512-pat00031
Figure 112007020940512-pat00032
수학식 14의 결과는 수학식 12의 변수를 교환한 결과와 동일하다. 따라서, 도 13의 일례에서 검토한 방법과 같은 방법으로, 거스 4의 발생을 방지할 수 있다.
이하, 본 실시예에서 제안한 방법에 따라 2개의 행렬을 중첩한 일례를 설명한다.
도 15는 본 실시예에서 제안한 방법에 따라 2개의 행렬을 중첩한 일례이다. 도 15는 1개의 서브 블록 내에서 2개의 쉬프트 수가 중첩되는 일례이다. 도시된 바와 같이, 도 15의 모델 행렬은 열의 무게가 최대 6이다.
도 16은 본 실시예에서 제안한 방법에 따라 2개의 행렬을 중첩한 일례이다. 도 16은 2개의 서브 블록 내에서 각각 2개의 쉬프트 수가 중첩되는 일례이다. 도시된 바와 같이, 도 16의 모델 행렬은 열의 무게가 최대 8이다.
도 17은 본 실시예에서 제안한 방법에 따라 2개의 행렬을 중첩한 일례이다. 도 17은 2개의 서브 블록 내에서 각각 2개의 쉬프트 수가 중첩되는 또 다른 일례이다. 도시된 바와 같이, 도 16의 모델 행렬은 열의 무게가 최대 8이다.
도 18은 본 실시예에서 제안한 방법에 따라 2개의 행렬을 중첩한 일례이다. 도 18은 4개의 서브 블록 내에서 각각 2개의 쉬프트 수가 중첩되는 또 다른 일례이다.
상술한 다양한 일례에서 거스 4는 발생하지 않는다.
이하, LDPC 부호의 성능을 검사하기 위한 다양한 방법 중 하나에 따라 본 실시예의 결과를 검토한다.
LDPC 부호를 성능하기 위해 리차드슨 등은 제안한 차수 분포(degree distribution)를 사용할 수 있다. 이하, IEEE 802.16e 규격에 채택된 패리티 검사 행렬의 차수 분포를 산출하고, 본 실시예에 따라 중첩된 행렬들의 차수 분포를 비교한다.
IEEE 802.16e에 규격에 채택된 패리티 검사 행렬의 경우 다음과 같은 차수 분포를 갖는다.
Figure 112007020940512-pat00033
Figure 112007020940512-pat00034
Figure 112007020940512-pat00035
Figure 112007020940512-pat00036
는 열의 무게가 2인 열의 비율을 나타내고,
Figure 112007020940512-pat00037
는 열의 무게가 3인 열의 비율을 나타내고,
Figure 112007020940512-pat00038
는 열의 무게가 6인 열의 비율을 나타낸다.
본 실시예에 따르는 도 15의 행렬의 경우 차수 분포는 다음과 같다.
Figure 112007020940512-pat00039
Figure 112007020940512-pat00040
Figure 112007020940512-pat00041
Figure 112007020940512-pat00042
본 실시예에 따르는 도 18의 행렬의 경우 차수 분포는 다음과 같다.
Figure 112007020940512-pat00043
Figure 112007020940512-pat00044
Figure 112007020940512-pat00045
Figure 112007020940512-pat00046
수학식 16과 수학식 17을 보면 본 실시예에 따라 중첩을 하는 경우 차수 분포의 조절할 수 있음을 알 수 있다.
가령 중첩을 이용하여 차수 분포를 조절하는 경우 리차드슨 등이 제안한 최적 값에 근접하는 모델 행렬을 구성할 수 있다.
이하, 최대 차수가 8인 모델 행렬이 라차드슨 등이 제안한 최적 값에 근접하도록 차수 분포를 조절한 일례이다.
Figure 112007020940512-pat00047
Figure 112007020940512-pat00048
Figure 112007020940512-pat00049
수학식 18에서 괄호 안의 수치는 리차드슨 등이 제안한 최적 값이다.
수학식 18에서 제안하는 차수 분포를 가지는 경우, 리차드슨 등이 제안한 최적 값에 근접함을 알 수 있다.
이하, 최대 차수가 12인 모델 행렬이 라차드슨 등이 제안한 최적 값에 근접하도록 차수 분포를 조절한 일례이다.
Figure 112007020940512-pat00050
Figure 112007020940512-pat00051
Figure 112007020940512-pat00052
Figure 112007020940512-pat00053
Figure 112007020940512-pat00054
Figure 112007020940512-pat00055
Figure 112007020940512-pat00056
수학식 19에서 괄호 안의 수치는 리차드슨 등이 제안한 최적 값이다.
수학식 19에서 제안하는 차수 분포를 가지는 경우, 리차드슨 등이 제안한 최적 값에 근접함을 알 수 있다.
이하, 최대 차수가 15인 모델 행렬이 라차드슨 등이 제안한 최적 값에 근접하도록 차수 분포를 조절한 일례이다.
Figure 112007020940512-pat00057
Figure 112007020940512-pat00058
Figure 112007020940512-pat00059
Figure 112007020940512-pat00060
Figure 112007020940512-pat00061
Figure 112007020940512-pat00062
Figure 112007020940512-pat00063
수학식 20에서 괄호 안의 수치는 리차드슨 등이 제안한 최적 값이다.
수학식 20에서 제안하는 차수 분포를 가지는 경우, 리차드슨 등이 제안한 최적 값에 근접함을 알 수 있다.
상술한 수학식 18 내지 수학식 20의 차수 분포에 따르는 모델 행렬을 일례는 도 19A 내지 도 21C와 같다.
도 19A 내지 도 21C는 본 실시예에 따른 모델 행렬의 일례를 나타낸 블록도이다.
도 19A 내지 도 19B를 중첩하면 수학식 18 내지 수학식 20의 조건을 만족하는 모델 행렬을 얻을 수 있다. 도 19A는 제1 모델 행렬을 나타내고, 도 19B는 제2 모델 행렬을 나타낸다.
도 20A 내지 도 20B를 중첩하면 수학식 18 내지 수학식 20의 조건을 만족하는 모델 행렬을 얻을 수 있다. 도 20A는 제1 모델 행렬을 나타내고, 도 20B는 제2 모델 행렬을 나타낸다.
도 21A 내지 도 21C를 중첩하면 수학식 18 내지 수학식 20의 조건을 만족하는 모델 행렬을 얻을 수 있다. 도 21A는 제1 모델 행렬을 나타내고, 도 21B는 제2 모델 행렬을 나타낸다. 또한, 도 21C는 또 다른 제2 모델 행렬을 나타낸다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
이하, 본 발명에 따른 효과를 설명한다.
본 발명에 따라 모델 행렬을 구성하면 중첩을 이용하면서도 사이클 특성이 우수한 모델 행렬을 새롭게 만들 수 있는 장점이 있다.

Claims (9)

  1. LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 방법에 있어서,
    제1 모델 행렬과 중첩되는 제2 모델 행렬에 포함되는 제2 쉬프트 수를 결정하는 단계; 및
    상기 제1 모델 행렬과 상기 제2 모델 행렬을 포함하는 복수의 행렬을 중첩하여 상기 LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 단계
    를 포함하되,
    상기 제1 모델 행렬 및 상기 제2 모델 행렬은 서브 블록들을 포함하고,
    상기 제2 쉬프트 수는, 상기 제2 쉬프트 수와 중첩될 상기 제1 모델 행렬의 제1 쉬프트 수 및 상기 서브 블록들의 크기에 따라 결정되는
    LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 방법.
  2. 제1항에 있어서,
    상기 제2 쉬프트 수는, 상기 제1 쉬프트 수 및 상기 제2 쉬프트 수에 대한 수학 연산의 결과와 상기 서브 블록의 크기에 따라 결정되는
    LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 방법.
  3. 제1항에 있어서,
    상기 제2 쉬프트 수는, 상기 제1 쉬프트 수 및 상기 제2 쉬프트 수에 대한 수학 연산을 통해 얻은 결과 값과 상기 서브 블록의 크기에 대한 모듈로(modulo) 연산에 따라 결정되는
    LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 방법.
  4. 제1항에 있어서,
    상기 제1 쉬프트수가 a1이고, 상기 제2 쉬프트 수가 a2이고, 상기 서브 블록이 z*z 행렬인 경우,
    Figure 112007020940512-pat00064
    을 만족하는
    LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 방법.
  5. 제1항에 있어서,
    상기 제1 쉬프트 수가 a1이고, 상기 제2 쉬프트 수가 a2이고, 상기 제1 쉬프트 수와 다른 위치에 위치하는 제3 쉬프트 수가 a3이고, 상기 제2 쉬프트 수와 다른 위치에 위치하는 제4 쉬프트 수가 a4이고, 상기 서브 블록이 z*z 행렬인 경우,
    Figure 112007020940512-pat00065
    을 만족하는
    LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 방법.
  6. 제1항에 있어서,
    상기 제1 쉬프트 수가 a1이고, 상기 제2 쉬프트 수가 a2이고, 상기 제1 쉬프트 수와 다른 위치에 위치하는 제3 쉬프트 수가 a3이고, 상기 제2 쉬프트 수와 다른 위치에 위치하는 제4 쉬프트 수가 a4이고, 상기 서브 블록이 z*z 행렬인 경우,
    Figure 112007020940512-pat00066
    을 만족하는
    LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 방법.
  7. 제1항에 있어서,
    상기 제1 모델 행렬과 상기 제2 모델 행렬을 포함하는 복수의 행렬은,
    제3 모델 행렬을 포함하는
    LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 방법.
  8. 제7항에 있어서,
    상기 제1 쉬프트수가 a1이고, 상기 제2 쉬프트 수가 a2이고, 상기 제3 모델 행렬에 포함되는 제3 쉬프트 수가 a3이고, 상기 서브 블록이 z*z 행렬인 경우,
    Figure 112007020940512-pat00067
    를 만족하는
    LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 방법.
  9. 제1항에 있어서,
    상기 복수의 행렬을 중첩하여 구성된 상기 모델 행렬은, 6 이상의 거스(girth)를 가지는
    LDPC 부호화 및 복호화를 위한 모델 행렬을 구성하는 방법.
KR1020070025505A 2007-03-15 2007-03-15 Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법 KR101227514B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070025505A KR101227514B1 (ko) 2007-03-15 2007-03-15 Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법
PCT/KR2008/001495 WO2008111824A2 (en) 2007-03-15 2008-03-17 Method of encoding and decoding data using ldpc code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070025505A KR101227514B1 (ko) 2007-03-15 2007-03-15 Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법

Publications (2)

Publication Number Publication Date
KR20080084179A KR20080084179A (ko) 2008-09-19
KR101227514B1 true KR101227514B1 (ko) 2013-01-31

Family

ID=39760226

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070025505A KR101227514B1 (ko) 2007-03-15 2007-03-15 Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법

Country Status (2)

Country Link
KR (1) KR101227514B1 (ko)
WO (1) WO2008111824A2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107294651A (zh) * 2016-04-11 2017-10-24 中兴通讯股份有限公司 编码方法及装置、译码方法及装置
WO2018011455A1 (en) * 2016-07-13 2018-01-18 Nokia Technologies Oy Retransmission scheme for low-density parity check coding

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031744A1 (en) 2004-08-09 2006-02-09 Blankenship Yufei W Method and apparatus for encoding and decoding data
US20060036932A1 (en) 2004-08-12 2006-02-16 Blankenship Yufei W Method and apparatus for encoding and decoding data
KR20060032807A (ko) * 2004-10-13 2006-04-18 삼성전자주식회사 저밀도 패리티 체크 행렬 생성 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7530002B2 (en) * 2006-01-03 2009-05-05 Broadcom Corporation Sub-matrix-based implementation of LDPC (Low Density Parity Check) decoder
US7644339B2 (en) * 2006-10-02 2010-01-05 Broadcom Corporation Overlapping sub-matrix based LDPC (low density parity check) decoder

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060031744A1 (en) 2004-08-09 2006-02-09 Blankenship Yufei W Method and apparatus for encoding and decoding data
US20060036932A1 (en) 2004-08-12 2006-02-16 Blankenship Yufei W Method and apparatus for encoding and decoding data
KR20070029843A (ko) * 2004-08-12 2007-03-14 모토로라 인코포레이티드 데이터를 인코딩 및 디코딩하기 위한 방법 및 장치
KR20060032807A (ko) * 2004-10-13 2006-04-18 삼성전자주식회사 저밀도 패리티 체크 행렬 생성 방법 및 장치

Also Published As

Publication number Publication date
KR20080084179A (ko) 2008-09-19
WO2008111824A3 (en) 2009-02-19
WO2008111824A2 (en) 2008-09-18

Similar Documents

Publication Publication Date Title
KR101119111B1 (ko) Ldpc 부호를 이용한 데이터 재전송 방법
EP2025063B1 (en) Method of encoding/decoding using low density check code matrix
KR101455978B1 (ko) Ldpc 부호를 이용한 부호화 방법
US8086929B2 (en) Method of executing LDPC coding using parity check matrix
KR101154995B1 (ko) Ldpc 부호화를 수행하는 방법
KR101265636B1 (ko) 모델 행렬을 이용하여 ldpc 복호화를 수행하는 방법
KR101253184B1 (ko) 모델 행렬을 이용하여 ldpc 부호화를 수행한 데이터를천공하는 방법
KR101227514B1 (ko) Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법
KR101128804B1 (ko) 참조 행렬을 이용한 lpdc 부호화 및 복호화 방법
WO2008117994A1 (en) Method of encoding data using a low density parity check code
KR101187070B1 (ko) 패리티 검사 행렬을 이용하여 부호화하는 방법
KR101162217B1 (ko) 패리티 검사 행렬을 이용하여 ldpc 부호화를 수행하는방법
KR101187072B1 (ko) 패리티 검사 행렬을 이용한 부호화 방법
KR101191197B1 (ko) 복수의 패리티 검사 행렬을 이용하여 복호화하는 방법
KR101319891B1 (ko) 블록 코드를 이용한 부호화가 수행된 신호를 데이터처리하는 방법
KR101221911B1 (ko) Ldpc 부호를 이용하여 재전송을 수행하는 방법
KR101137349B1 (ko) 복수의 패리티 검사 행렬을 이용하여 부호화하는 방법
KR101221897B1 (ko) Ldpc 부호화 장치

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151224

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161214

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171214

Year of fee payment: 6