KR20060045862A - 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법 - Google Patents

가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법 Download PDF

Info

Publication number
KR20060045862A
KR20060045862A KR1020050035720A KR20050035720A KR20060045862A KR 20060045862 A KR20060045862 A KR 20060045862A KR 1020050035720 A KR1020050035720 A KR 1020050035720A KR 20050035720 A KR20050035720 A KR 20050035720A KR 20060045862 A KR20060045862 A KR 20060045862A
Authority
KR
South Korea
Prior art keywords
matrix
parity check
check matrix
partial
permutation
Prior art date
Application number
KR1020050035720A
Other languages
English (en)
Other versions
KR100678176B1 (ko
Inventor
경규범
명세호
양경철
양현구
박동식
김재열
박성은
최승훈
주판유
정홍실
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20060045862A publication Critical patent/KR20060045862A/ko
Application granted granted Critical
Publication of KR100678176B1 publication Critical patent/KR100678176B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/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/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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/18Phase-modulated carrier systems, i.e. using phase-shift keying

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)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 정보어를 입력받고, 상기 정보어를 블록 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호로 생성시 적용할 길이에 상응하게 제1패리티 검사 행렬과 제2패리티 검사 행렬중 어느 한 패리티 검사 행렬을 기반으로 하여 부호화함으로써 상기 블록 LDPC 부호로 생성함으로써 가변 길이를 가지는 블록 LDPC 부호 생성을 가능하게 한다.
가변 길이 블록 LDPC 부호, 부호화율, 순열 행렬, 항등 행렬, 최소 사이클, 모행렬. 자행렬

Description

가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호 부호화/복호 장치 및 방법{APPARATUS AND METHOD FOR CODING/DECODING BLOCK LOW DENSITY PARITY CHECK CODE WITH VARIABLE BLOCK LENGTH}
도 1은 일반적인 통신 시스템의 송수신기 구조를 개략적으로 도시한 도면
도 2는 일반적인 (8, 2, 4) LDPC 부호의 패리티 검사 행렬을 도시한 도면
도 3은 도 2의 (8, 2, 4) LDPC 부호의 factor 그래프를 도시한 도면
도 4는 일반적인 블록 LDPC 부호의 패리티 검사 행렬을 개략적으로 도시한 도면
도 5는 도 4의 순환 행렬 P를 도시한 도면
도 6은 패리티 검사 행렬이 4개의 부분 행렬들로 구성된 블록 LDPC 부호의 사이클 구조를 개략적으로 도시한 도면
도 7은 완전 하삼각 행렬 형태와 유사한 형태를 가지는 패리티 검사 행렬을 도시한 도면
도 8은 도 7의 패리티 검사 행렬을 6개의 부분 블록들로 분할한 도면
도 9는 도 8의 부분 행렬 B의 이항 행렬과, 부분 행렬 E와, 부분 행렬 T와, 부분 행렬 T의 역행렬을 도시한 도면
도 10은 본 발명의 실시예에 따른 블록 LDPC 부호의 패리티 검사 행렬 생성 과정을 도시한 순서도
도 11은 본 발명의 제1실시예에 따른 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면
도 12는 본 발명의 제2실시예에 따른 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면
도 13은 본 발명의 제3실시예에 따른 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면
도 14는 본 발명의 제4실시예에 따른 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면
도 15는 본 발명의 제1실시예 내지 제4실시예에 따른 가변 길이 블록 LDPC 부호의 부호화 과정을 도시한 순서도
도 16은 본 발명의 실시예들에서의 기능을 수행하기 위한 가변 길이 블록 LDPC 부호의 부호화 장치 내부 구조를 도시한 블록도
도 17은 본 발명의 실시예들에서의 기능을 수행하는 블록 LDPC 부호의 복호 장치 내부 구조를 도시한 도면
본 발명은 이동 통신 시스템에 관한 것으로서, 특히 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호를 부호화/복호하는 장치 및 방법에 관한 것이다.
이동 통신 시스템이 급속하게 발전해나감에 따라 무선 네트워크에서 유선 네트워크의 용량(capacity)에 근접하는 대용량 데이터를 전송할 수 있는 기술 개발이 요구되고 있다. 이렇게, 음성 위주의 서비스를 벗어나 영상, 무선 데이터 등의 다양한 정보를 처리하고 전송할 수 있는 고속 대용량 통신 시스템이 요구됨에 따라 적정한 채널 부호화(channel coding) 방식을 사용하여 시스템 전송 효율을 높이는 것이 시스템 성능 향상에 필수적인 요소로 작용하게 된다. 그러나, 이동 통신 시스템은 이동 통신 시스템의 특성상 데이터를 전송할 때 채널의 상황에 따라 잡음(noise)과, 간섭(interference) 및 페이딩(fading) 등으로 인해 불가피하게 에러(error)가 발생하고, 따라서 상기 에러 발생으로 인한 정보 데이터의 손실이 발생한다.
이러한 에러 발생으로 인한 정보 데이터 손실을 감소시키기 위해서 채널의 특성에 따라 다양한 에러 제어 방식(error-control scheme)들을 사용함으로써 상기 이동 통신 시스템의 신뢰도를 향상시킬 수 있다. 상기 에러 제어 방식들 중에서 가장 보편적으로 사용되고 있는 에러 제어 방식은 에러 정정 부호(error-correcting code)를 사용하는 방식이다.
그러면 여기서 도 1을 참조하여 일반적인 이동 통신 시스템의 송수신기 구조에 대해서 설명하기로 한다.
상기 도 1은 일반적인 통신 시스템의 송수신기 구조를 개략적으로 도시한 도 면이다.
상기 도 1을 참조하면, 송신기(100)는 부호화기(encoder)(111)와, 변조기(modulator)(113)와, 무선 주파수(RF: Radio Frequency, 이하 'RF'라 칭하기로 한다) 처리기(115)를 포함하고, 수신기(150)는 RF 처리기(151)와, 복조기(de-modulator)(153)와, 복호기(decoder)(155)를 포함한다.
먼저, 상기 송신기(100)에서 송신하고자 하는 정보 데이터(information data) u가 발생되면, 상기 정보 데이터 u는 상기 부호화기(111)로 전달된다. 상기 부호화기(111)는 상기 정보 데이터 u를 미리 설정되어 있는 부호화 방식으로 부호화하여 부호화 심볼(coded symbol) c로 생성한 후 상기 변조기(113)로 출력한다. 상기 변조기(113)는 상기 부호화 심볼 c를 미리 설정되어 있는 변조 방식으로 변조하여 변조 심벌 s로 생성하여 상기 RF 처리기(115)로 출력한다. 상기 RF 처리기(115)는 상기 변조기(113)에서 출력한 신호를 입력하여 RF 처리한 후 안테나를 통해 에어(air)상으로 송신한다.
이렇게, 상기 송신기(100)에서 에어상으로 송신한 신호는 상기 수신기(150)의 안테나를 통해 수신되고, 상기 안테나를 통해 수신된 신호는 상기 RF 처리기(151)로 전달된다. 상기 RF 처리기(151)는 상기 수신 신호를 RF 처리한 후 그 RF 처리된 신호 s를 상기 복조기(153)로 출력한다. 상기 복조기(153)는 상기 RF 처리기(151)에서 출력한 신호 s를 입력하여 상기 송신기(100)의 변조기(113)에서 적용한 변조 방식에 상응하는 복조 방식으로 복조한 후 그 복조한 신호 x를 상기 복호기(155)로 출력한다. 상기 복호기(155)는 상기 복조기(153)에서 출력한 신호 x를 입력하여 상기 송신기(100)의 부호화기(111)에서 적용한 부호화 방식에 상응하는 복호 방식으로 복호한 후 그 복호한 신호
Figure 112005022474558-PAT00001
를 최종적으로 복원된 정보 데이터로 출력한다.
상기 송신기(100)에서 송신한 정보 데이터 u를 상기 수신기(150)에서 에러없이 복원하기 위해서 성능이 우수한 부호화기 및 복호기에 대한 필요성이 부각되고 있다. 특히, 이동 통신 시스템의 특성상 무선 채널 환경을 고려해야만 하므로 무선 채널 환경에 의해 발생할 수 있는 에러는 보다 심각하게 고려되어야만 한다.
한편, 상기 에러 정정 부호의 대표적인 부호들로는 터보 부호(turbo code)와, 저밀도 패리티 검사(LDPC: Low Density Parity Check, 이하 'LDPC'라 칭하기로 한다) 부호 등이 있다.
상기 터보 부호는 종래 오류 정정을 위해 주로 사용되던 컨벌루셔널 부호(convolutional code)에 비하여 고속 데이터 전송시에 성능 이득이 우수한 것으로 알려져 있으며, 전송 채널에서 발생하는 잡음에 의한 오류를 효과적으로 정정하여 데이터 전송의 신뢰도를 높일 수 있다는 장점을 가진다. 또한, 상기 LDPC 부호는 팩터(factor, 이하 'factor'라 칭하기로 한다) 그래프 상에서 합곱(sum-product) 알고리즘(algorithm)에 기반한 반복 복호(iterative decoding) 알고리즘을 사용하여 복호할 수 있다. 상기 LDPC 부호의 복호기는 상기 합곱 알고리즘에 기반한 반복 복호 알고리즘을 사용하기 때문에 상기 터보 부호의 복호기에 비해 낮은 복잡도를 가질 뿐만 아니라 병렬 처리 복호기로 구현하는 것이 용이하다.
한편, Shannon의 채널 부호화 이론(channel coding theorem)은 채널의 용량을 초과하지 않는 데이터 레이트(data rate)에 한해 신뢰성 있는 통신이 가능하다고 밝히고 있다. 하지만 Shannon의 채널 부호화 이론에서는 최대 채널의 용량 한계까지 의 데이터 레이트를 지원하는 채널 부호화 및 복호 방법에 대한 구체적인 제시는 전혀 없었다. 일반적으로, 블록(block) 크기가 굉장히 큰 랜덤(random) 부호는 Shannon의 채널 부호화 이론의 채널 용량 한계에 근접하는 성능을 나타내지만, MAP(maximum a posteriori) 또는 ML(maximum likelihood) 복호 방법을 사용할 경우 그 계산량에 있어 굉장한 로드(load)가 존재하여 실제 구현이 불가능하였다.
상기 터보 부호는 1993년 Berrou와 Glavieux, Thitimajshima에 의해 제안되었으며, Shannon의 채널 부호화 이론의 채널 용량 한계에 근접하는 우수한 성능을 가지고 있다. 상기 터보 부호의 제안으로 인해 부호의 반복 복호와 그래프 표현에 대한 연구가 활발하게 진행되었으며, 이 시점에서 Gallager가 1962년 이미 제안한바 있는 LDPC 부호가 새롭게 조명되었다. 또한, 상기 터보 부호와 LDPC 부호의 factor 그래프상에는 사이클(cycle)이 존재하는데, 상기 사이클이 존재하는 상기 LDPC 부호의 factor 그래프 상에서의 반복 복호는 준최적(suboptimal)이라는 것은 이미 잘 알려져 있는 사실이며, 상기 LDPC 부호는 반복 복호를 통해 우수한 성능을 가진다는 것 역시 실험적으로 입증된 바 있다. 지금까지 알려진 최고의 성능을 가지는 LDPC 부호는 블록 크기 107을 사용하여 비트 에러 레이트(BER: Bit Error Rate) 10-5에서 Shannon의 채널 부호화 이론의 채널 용량 한계에서 단지 0.04[dB] 정도의 차이를 가지는 성능을 나타낸다. 또한,
Figure 112005022474558-PAT00002
인 갈로아 필드(GF: Galois Field, 이하 'GF'라 칭하기로 한다), 즉 GF(q)에서 정의된 LDPC 부호는 그 복호 과정에 있어서 복잡도가 증가하긴 하지만 이진(binary) 부호에 비해 훨씬 더 우수한 성능을 보인다. 그러나, 상기 GF(q)에서 정의된 LDPC 부호의 반복 복호 알고리즘의 성공적인 복호에 대한 만족스런 이론적인 설명은 아직 이루어지지 않고 있다.
또한, 상기 LDPC 부호는 Gallager에 의해 제안된 부호이며, 대부분의 엘리먼트들이 0의 값(zero value)을 가지며, 상기 0의 값을 가지는 엘리먼트들 이외의 극히 소수의 엘리먼트들이 0이 아닌(non-zero value) 값을 가지는, 일 예로 1의 값을 가지는 패리티 검사 행렬(parity check matrix)에 의해 정의된다. 이하, 설명의 편의상 상기 0이 아닌 값을 1이라고 가정하여 설명하기로 한다.
일 예로, (N, j, k) LDPC 부호는 블록(block) 길이가 N인 선형 블록 부호(linear block code)로, 각 열(column)마다 j개의 1의 값을 가지는 엘리먼트들과, 각 행(row)마다 k개의 1의 값을 가지는 엘리먼트들을 가지고, 상기 1의 값을 가지는 엘리먼트들을 제외한 엘리먼트들은 모두 0의 값을 가지는 엘리먼트들로 구성된 성긴(sparse, 이하 'sparse'라 칭하기로 한다) 구조의 패리티 검사 행렬에 의해 정의된다.
상기에서 설명한 바와 같이 상기 패리티 검사 행렬내 각 열의 웨이트(weight)는 j로 일정하며, 상기 패리티 검사 행렬내 각 행의 웨이트는 k로 일정한 LDPC 부호를 균일(regular) LDPC 부호라고 칭한다. 여기서, 상기 웨이트라함은 상 기 패리티 검사 행렬을 구성하는 엘리먼트들 중 0이 아닌 값을 가지는 엘리먼트들의 개수를 나타낸다. 이와는 달리, 상기 패리티 검사 행렬내 각 열의 웨이트와 각 행의 웨이트가 일정하지 않은 LDPC 부호를 불균일(irregular) LDPC 부호라고 칭한다. 일반적으로, 상기 균일 LDPC 부호의 성능에 비해서 상기 불균일 LDPC 부호의 성능이 더 우수함이 알려져 있다. 그러나, 상기 불균일 LDPC 부호의 경우 패리티 검사 행렬내 각 열의 웨이트와 각 행의 웨이트가 일정하지 않기 때문에, 즉 불균일하기 때문에 패리티 검사 행렬내 각 열의 웨이트와 각 행의 웨이트를 적절하게 조절해야지만 우수한 성능을 보장받을 수 있다.
그러면 여기서 도 2를 참조하여 (N, j, k) LDPC 부호, 일 예로 (8, 2, 4) LDPC 부호의 패리티 검사 행렬에 대해서 설명하기로 한다.
도 2는 일반적인 (8, 2, 4) LDPC 부호의 패리티 검사 행렬을 도시한 도면이다.
상기 도 2를 참조하면, 먼저 상기 (8, 2, 4) LDPC 부호의 패리티 검사 행렬 H는 8개의 열들과 4개의 행들로 구성되어 있으며, 각 열의 웨이트는 2로 균일하며, 각 행의 웨이트는 4로 균일하다. 이렇게, 상기 패리티 검사 행렬내 각 열의 웨이트와 각 행의 웨이트가 균일하므로 상기 도 1에 도시되어 있는 (8, 2, 4) LDPC 부호는 균일 LDPC 부호가 되는 것이다.
상기 도 2에서는 일반적인 (8, 2, 4) LDPC 부호의 패리티 검사 행렬에 대해서 설명하였으며, 다음으로 도 3을 참조하여 상기 도 2에서 설명한 (8, 2, 4) LDPC 부호의 factor 그래프에 대해서 설명하기로 한다.
상기 도 3은 도 2의 (8, 2, 4) LDPC 부호의 factor 그래프를 도시한 도면이다.
상기 도 3을 참조하면, 상기 (8, 2, 4) LDPC 부호의 factor 그래프는 8개의 변수 노드(variable node)들, 즉 x1(300)과, x2(302)과, x3(304)과, x4(306)과, x5(308)과, x6(310)과, x7(312)과, x8(314)와, 4개의 검사 노드(check node)들(316,318,320,322)로 구성된다. 상기 (8, 2, 4) LDPC 부호의 패리티 검사 행렬의 i번째 행과 j번째 열이 교차하는 지점에 1의 값을 가지는, 즉 0이 아닌 값을 가지는 엘리먼트가 존재할 경우 변수 노드 xi와 j번째 검사 노드 사이에 브랜치(branch)가 생성된다.
상기에서 설명한 바와 같이 LDPC 부호의 패리티 검사 행렬은 매우 작은 웨이트를 가지기 때문에, 비교적 긴 길이를 가지는 블록 부호에서도 반복 복호를 통해 복호가 가능하며, 블록 부호의 블록 길이를 계속 증가시켜가면 터보 부호와 같이 Shannon의 채널 용량 한계에 근접하는 형태의 성능을 나타낸다. 또한, MacKay와 Neal은 흐름 전달 방식을 사용하는 LDPC 부호의 반복 복호 과정이 터보 부호의 반복 복호 과정에 거의 근접하는 성능을 가진다는 것을 이미 증명한 바가 있다.
한편, 성능이 좋은 LDPC 부호를 생성하기 위해서는 몇 가지 조건들을 만족시켜야만 하는데, 상기 조건들을 설명하면 다음과 같다.
(1) LDPC 부호의 factor 그래프상의 사이클을 고려해야만 한다.
상기 사이클이란 LDPC 부호의 factor 그래프에서 변수 노드와 검사 노드를 연결하는 에지(edge)가 구성하는 루프(loop)를 나타내는데, 상기 사이클의 길이는 상기 루프를 구성하는 에지들의 개수로 정의된다. 상기 사이클의 길이가 길다는 것은 상기 LDPC 부호의 factor 그래프에서 루프를 구성하는 변수 노드들과 검사 노드들을 연결하는 에지들의 개수가 많다는 것을 나타내며, 이와는 반대로 상기 사이클의 길이가 짧다는 것은 상기 LDPC 부호의 factor 그래프에서 루프를 구성하는 변수 노드들과 검사 노드들을 연결하는 에지들의 개수가 적다는 것을 나타낸다.
상기 LDPC 부호의 factor 그래프상의 사이클을 길게 생성할 수록 상기 LDPC 부호의 성능이 좋아지게 되는데 그 이유는 다음과 같다. 상기 LDPC 부호의 factor 그래프상의 사이클을 길게 생성할 경우, 상기 LDPC 부호의 factor 그래프상에 짧은 길이의 사이클이 많이 존재할 때 발생하는 오류 마루(error floor)등의 성능 열화가 발생하지 않기 때문이다.
(2) LDPC 부호의 효율적인 부호화를 고려해야만 한다.
상기 LDPC 부호는 상기 LDPC 부호의 특성상 컨벌루셔널 부호나 터보 부호에 비해 부호화 복잡도가 높아 실시간 부호화가 난이하다. 상기 LDPC 부호의 부호화 복잡도를 줄이기 위해서 반복 누적 부호(RA(Repeat Accumulate) code) 등이 제안되었으나, 상기 반복 누적 부호 역시 상기 LDPC 부호의 부호화 복잡도를 낮추는데 있어서는 한계를 나타내고 있다. 따라서, LDPC 부호의 효율적인 부호화를 고려해야만 한다.
(3) LDPC 부호의 factor 그래프상의 차수 분포를 고려해야만 한다.
일반적으로, 균일 LDPC 부호보다 불균일 LDPC 부호가 성능이 우수한데 그 이 유는 상기 불균일 LDPC 부호의 factor 그래프상의 차수(degree)가 다양한 차수를 가지기 때문이다. 여기서, 상기 차수란 상기 LDPC 부호의 factor 그래프상에서 각 노드들, 즉 변수 노드들과 검사 노드들에 연결되어 있는 에지의 개수를 나타낸다. 또한, LDPC 부호의 factor 그래프상의 차수 분포란 특정 차수를 갖는 노드들이 전체 노드들 중 얼마만큼 존재하는지를 나타내는 것이다. 특정한 차수 분포를 가지는 LDPC 부호의 성능이 우수하다는 것은 Richardson 등이 이미 증명한 바가 있다.
다음으로 도 4를 참조하여 블록 LDPC 부호의 패리티 검사 행렬에 대해서 설명하기로 한다.
상기 도 4는 일반적인 블록 LDPC 부호의 패리티 검사 행렬을 개략적으로 도시한 도면이다.
상기 도 4를 설명하기에 앞서, 먼저 상기 블록 LDPC 부호는 효율적인 부호화뿐만 아니라 효율적인 패리티 검사 행렬의 저장 및 성능 개선을 모두 고려한 새로운 LDPC 부호로서, 상기 블록 LDPC 부호는 균일 LDPC 부호의 구조를 일반화시켜 확장한 개념의 LDPC 부호이다. 상기 도 4를 참조하면, 상기 블록 LDPC 부호의 패리티 검사 행렬은 전체 패리티 검사 행렬을 다수의 부분 블록(partial block)들로 분할하고, 상기 부분 블록들 각각에 순열 행렬(permutation matrix)을 대응시키는 형태를 가진다. 상기 도 4에 도시되어 있는 P는
Figure 112005022474558-PAT00003
크기를 가지는 순열 행렬을 나타내며, 상기 순열 행렬 P의 위첨자 apq
Figure 112005022474558-PAT00004
혹은 apq = ∞를 가 진다.
또한, 상기 p는 해당 순열 행렬이 상기 패리티 검사 행렬의 다수의 부분 블록들중 p번째 행에 위치함을 나타내며, q는 해당 순열 행렬이 상기 패리티 검사 행렬의 다수의 부분 블록들중 q번째 열에 위치함을 나타낸다. 즉,
Figure 112005022474558-PAT00005
는 상기 다수의 부분 블록들로 구성된 패리티 검사 행렬의 p번째 행과 q번째 열이 교차하는 지점의 부분 블록에 존재하는 순열 행렬을 나타낸다. 즉, 상기 p와 q는 상기 패리티 검사 행렬에서 상기 정보 파트에 해당하는 부분 블록들의 행과 열의 개수를 나타낸다.
그러면 여기서 도 5를 참조하여 상기 순열 행렬에 대해서 설명하기로 한다.
상기 도 5는 도 4의 순환 행렬 P를 도시한 도면이다.
상기 도 5에 도시되어 있는 바와 같이 상기 순열 행렬 P는
Figure 112005022474558-PAT00006
크기를 가지는 정사각 행렬로서, 상기 순열 행렬 P는 상기 순열 행렬 P를 구성하는 Ns개의 행들 각각의 웨이트가 1이고, 상기 순열 행렬 P를 구성하는 Ns개의 행들 각각의 웨이트 역시 1인 행렬을 나타낸다. 여기서, 상기 순열 행렬 P의 크기를
Figure 112005022474558-PAT00007
라고 표현하였으나, 상기 순열 행렬 P가 정사각 행렬이므로 그 크기를 설명의 편의상 Ns라고도 표현하기로 함에 유의하여야만 한다.
한편, 상기 도 4에서 상기 순열 행렬 P의 위첨자 apq가 0일 때, 즉 순열 행 렬 P0는 항등 행렬(Identity matrix)
Figure 112005022474558-PAT00008
를 나타내며, 상기 순열 행렬 P의 위첨자 apq가 ∞일 때, 즉 순열 행렬 P는 영(zero) 행렬 나타낸다. 여기서,
Figure 112005022474558-PAT00009
는 크기가
Figure 112005022474558-PAT00010
인 항등 행렬을 나타낸다.
상기 도 4에서 상기 블록 LDPC 부호의 전체 패리티 검사 행렬은 전체 행의 개수가
Figure 112005022474558-PAT00011
이고, 전체 열의 개수가
Figure 112005022474558-PAT00012
이므로(단,
Figure 112005022474558-PAT00013
), 상기 블록 LDPC 부호의 전체 패리티 검사 행렬이 최대 랭크(full rank)를 가지는 경우 상기 부분 블록들의 크기에 상관없이 부호화율(coding rate)은 하기 수학식 1과 같이 나타낼 수 있다.
Figure 112005022474558-PAT00014
한편, 모든 p, q에 대해서
Figure 112005022474558-PAT00015
일 경우, 상기 부분 블록들 각각에 대응하는 순열 행렬들 각각은 영 행렬이 아님을 나타내며, 부분 블록들 각각에 대응하는 순열 행렬들 각각의 각 열의 웨이트는 p, 각 행의 웨이트는 q인 균일 LDPC 부호가 된다. 여기서, 상기 부분 블록들에 대응하는 순열 행렬을 '부분 행렬'이라 칭하기로 한다.
또한, 상기 전체 패리티 검사 행렬은 p-1개의 종속적인(dependent) 행들이 존재하므로 부호화율은 상기 수학식 1에서 계산한 부호화율보다 큰 값을 가진다. 상기 블록 LDPC 부호는 전체 패리티 검사 행렬을 구성하는 부분 행렬들 각각의 첫번째 행의 웨이트 위치가 결정되면, 나머지 Ns-1개 행들의 웨이트 위치가 결정되므로, 상기 전체 패리티 검사 행렬의 정보를 저장하기 위해서 불규칙하게 웨이트를 선택하는 경우에 비해서는 필요로 되는 메모리의 크기가 1/Ns로 줄어든다.
한편, 상기에서 설명한 바와 같이 LDPC 부호의 factor 그래프상의 사이클이란 패리티 검사 행렬의 LDPC 부호의 factor 그래프에서 변수 노드와 검사 노드를 연결하는 에지가 구성하는 루프를 나타내는데, 상기 사이클의 길이는 상기 루프를 구성하는 에지들의 개수로 정의된다. 상기 사이클의 길이가 길다는 것은 상기 LDPC 부호의 factor 그래프에서 루프를 구성하는 변수 노드와 검사 노드를 연결하는 에지들의 개수가 많다는 것을 나타낸다. 상기 LDPC 부호의 factor 그래프상의 사이클의 길이를 길게 생성할수록 상기 LDPC 부호의 성능이 좋아지게 된다.
이와는 반대로, 상기 LDPC 부호의 factor 그래프상에 길이가 짧은 사이클이 많이 존재할 수록 상기 LDPC 부호는 오류 마루등의 성능 열화가 나타나기 때문에 오류 정정 능력이 저하된다. 즉, 상기 LDPC 부호의 factor 그래프상에 길이가 짧은 사이클이 많이 존재할 경우 상기 길이가 짧은 사이클에 속해있는 임의의 한 노드에서 출발한 자신의 정보가 적은 반복 회수 후에 다시 자신에게 돌아오게 되고, 상기 반복 회수가 증가할수록 그 정보가 계속해서 자신에게 돌아오게 되므로 정보 업데 이트(update)가 잘 이루어지지 않아 결국 오류 정정 능력이 저하되는 것이다.
그러면 여기서 도 6을 참조하여 블록(block) LDPC 부호의 사이클 구조 특성에 대해서 설명하기로 한다.
상기 도 6은 패리티 검사 행렬이 4개의 부분 행렬들로 구성된 블록 LDPC 부호의 사이클 구조를 개략적으로 도시한 도면이다.
상기 도 6을 설명하기에 앞서, 상기 블록 LDPC 부호는 효율적인 부호화뿐만 아니라 효율적인 패리티 검사 행렬의 저장 및 성능 개선을 모두 고려한 LDPC 부호로서, 균일 LDPC 부호의 구조를 일반화시켜 확장한 개념의 LDPC 부호이다. 상기 도 6에 도시되어 있는 블록 LDPC 부호의 패리티 검사 행렬은 4개의 블록들로 구성되며, 사선은 1의 값을 가지는 엘리먼트들이 존재하는 위치를 나타내며, 상기 사선 부분 이외의 부분들은 모두 0의 값을 가지는 엘리먼트들이 존재하는 위치를 나타낸다. 또한, P는 상기 도 5에서 설명한 바와 같은 순열 행렬과 동일한 순열 행렬을 나타낸다.
상기 도 6에 도시한 블록 LDPC 부호의 사이클 구조를 분석하기 위해서 부분 행렬 Pa의 i번째 행에 위치하는 1의 값을 가지는 엘리먼트를 기준으로 정하고, 상기 i번째 행에 위치하는 1의 값을 가지는 엘리먼트를 '0-점'이라 칭하기로 한다. 여기서, 상기 부분 행렬은 상기 부분 블록에 대응되는 행렬을 나타낸다. 그러면, 상기 0-점은 상기 부분 행렬 Pa의 i + a번째 열에 위치하게 된다.
상기 0-점과 동일한 행에 위치한 부분 행렬 Pb에서의 1의 값을 가지는 엘리 먼트를 '1-점'이라 칭하기로 한다. 상기 0-점과 마찬가지 이유로 상기 1-점은 부분 행렬 Pb의 i + b번째 열에 위치하게 된다.
다음으로 상기 1-점과 동일한 열에 위치한 부분 행렬 Pc에서의 1의 값을 가지는 엘리먼트를 '2-점'이라 칭하기로 한다. 상기 부분 행렬 Pc가 항등 행렬 I의 열들 각각을 오른쪽으로 모듈로(modulo) Ns에 대해서 c만큼 이동하여 획득한 행렬이기 때문에 2-점은 상기 부분 행렬 Pc의 i + b - c번째 행에 위치하게 된다.
또한, 상기 2-점과 같은 행에 위치한 부분 행렬 Pd에서의 1의 값을 가지는 엘리먼트를 '3-점'이라 칭하기로 한다. 상기 3-점은 상기 부분 행렬 Pd에서의 i + b - c + d번째 열에 위치하게 된다.
마지막으로, 상기 3-점과 동일한 열에 위치한 부분 행렬 Pa에서의 1의 값을 가지는 엘리먼트를 '4-점'이라 칭하기로 한다. 상기 4-점은 상기 부분 행렬 Pa에서의 i + b - c + d - a번째 행에 위치하게 된다.
상기 도 6에 도시한 LDPC 부호의 사이클 구조에서 길이가 4인 사이클이 존재한다면 상기 0-점과 4-점은 서로 동일한 위치가 된다. 즉, 상기 0-점과 4-점간에는 하기 수학식 2와 같은 관계가 성립하게 된다.
Figure 112005022474558-PAT00016
그리고, 상기 수학식 2를 다시 정리하면 하기 수학식 3과 같이 표현할 수 있다.
Figure 112005022474558-PAT00017
결과적으로, 상기 수학식 3과 같은 관계가 성립할 때, 길이가 4인 사이클이 생성되는 것이다. 일반적으로, 0-점과 4p-점이 최초로 동일하게 되는 경우는
Figure 112005022474558-PAT00018
의 관계가 성립하게 되고, 하기 수학식 4와 같은 관계가 성립하게 된다.
Figure 112005022474558-PAT00019
다시 설명하면, 주어진 a, b, c, d에 대해 상기 수학식 4를 만족하는 양의 정수들중에서 최소값을 가지는 양의 정수를 p이라고 하면, 상기 도 6에 도시한 바와 같은 블록 LDPC 부호의 사이클 구조에서는 길이가 4p인 사이클이 최소 길이를 가지는 사이클이 되는 것이다.
결과적으로, 상기에서 설명한 바와 같이
Figure 112005022474558-PAT00020
인 경우
Figure 112005022474558-PAT00021
이 성립하면, p = Ns가 되고, 따라서 길이가 4Ns인 사이클이 최소 길이를 가지는 사이클이 되는 것이다.
한편, 상기 블록 LDPC 부호의 부호화 방식으로서 Richardson-Urbanke 방식을 사용하기로 한다. 상기 Richardson-Urbanke 방식을 부호화 방식으로 사용하기 때문에 패리티 검사 행렬의 형태는 완전 하삼각 행렬 형태에 유사한 형태를 가질수록 부호화 복잡도를 최소화시킬 수 있게 된다.
그러면 여기서 도 7을 참조하여 완전 하삼각 행렬 형태와 유사한 형태를 가지는 패리티 검사 행렬에 대해서 설명하기로 한다.
상기 도 7은 완전 하삼각 행렬 형태와 유사한 형태를 가지는 패리티 검사 행렬을 도시한 도면이다.
상기 도 7에 도시되어 있는 패리티 검사 행렬은 완전 하삼각 행렬 형태의 패리티 검사 행렬에 비해서는 패리티 파트의 형태가 완전 하삼각 행렬 형태를 벗어난다. 상기 도 7에서 정보 파트의 순열 행렬 P의 위첨자 apq는 상기에서 설명한 바와 같이
Figure 112005022474558-PAT00022
혹은 apq = ∞를 가지며, 상기 정보 파트의 순열 행렬 P의 위첨자 apq가 0일 경우, 즉 P0는 항등 행렬
Figure 112005022474558-PAT00023
를 나타내며, 상기 순열 행렬 P의 위첨자 apq가 ∞일 때, 즉 순열 행렬 P는 영 행렬 나타낸다. 또한, p와 q는 상기 패리티 검사 행렬에서 상기 정보 파트에 해당하는 부분 블록들의 행과 열의 개 수를 나타낸다. 또한, 상기 패리티 파트의 순열 행렬 P의 위첨자 ap, x, y 역시 순열 행렬 P의 지수를 나타내며, 다만 설명의 편의상 정보 파트와의 구분을 위해 상이하게 설정하였을 뿐이다. 즉, 상기 도 7에서 Px와 Py 역시 순열 행렬들이며, 상기 패리티 파트의 대각(diagonal) 부분에 위치하는 부분 행렬들에 순차적으로 인덱스(index)를 부여한 것이다. 또한, 상기 도 7에서 Px와 Py 역시 순열 행렬들이며, 설명의 편의상 임의의 인덱스를 부여한 것이다. 상기 도 7에 도시되어 있는 바와 같은 패리티 검사 행렬을 가지는 블록 LDPC 부호의 블록 크기를 N이라고 가정하면, 상기 블록 LDPC 부호의 부호화 복잡도는 상기 블록 크기 N에 대해서 선형적으로 증가한다(0(N)).
한편, 상기 도 7과 같은 패리티 검사 행렬을 가지는 LDPC 부호의 가장 큰 문제점은 부분 블록의 크기가 Ns라고 할 때, 상기 블록 LDPC 부호의 factor 그래프 상에서 항상 차수(degree)가 1인 Ns개의 검사 노드들이 생성된다는 점이다. 여기서, 상기 차수가 1인 검사 노드들은 반복 복호에 따른 성능 개선에 영향을 주지 못하며, 이에 따라 Richardson-Urbanke 방식과 같은 표준(standard) 불균일 LDPC 부호는 차수가 1인 검사 노드를 포함하고 있지 않다. 그러므로, 차수가 1인 검사 노드를 포함하지 않으면서 효율적인 부호화가 가능하도록 패리티 검사 행렬을 설계하기 위해 상기 도 7과 같은 패리티 검사 행렬을 기본적인 패리티 검사 행렬이라고 가정하기로 한다. 상기 도 7과 같이 부분 행렬들로 구성된 패리티 검사 행렬에서 부분 행렬의 선택은 상기 블록 LDPC 부호의 성능 개선에 있어서 매우 중요한 요소이고, 따라서 상기 부분 행렬의 적절한 선택 기준을 찾는 것 역시 매우 중요한 요소가 된다.
그러면 상기에서 설명한 블록 LDPC 부호의 구성을 기반으로 하여 상기 블록 LDPC 부호의 패리티 검사 행렬의 설계 방법에 대해서 설명하기로 한다.
여기서, 상기 블록 LDPC 부호의 패리티 검사 행렬의 설계 방법과 상기 블록 LDPC 부호의 부호화 방법을 용이하게 하기 위해서 상기 도 8에 도시한 바와 같은 패리티 검사 행렬을 도 9에 도시한 바와 같이 6개의 부분 행렬들로 구성된 형태라고 가정하기로 한다.
상기 도 8은 도 7의 패리티 검사 행렬을 6개의 부분 블록들로 분할한 도면이다.
상기 도 8을 참조하면, 상기 도 7에 도시되어 있는 블록 LDPC 부호의 패리티 검사 행렬을 정보 파트(s)와, 제1패리티 파트(p1)와, 제2패리티 파트(p2)의 부분 블록들로 분할한다. 여기서, 상기 정보 파트(s)는 상기 도 7에서 설명한 정보 파트와 같이 블록 LDPC 부호를 부호화하는 과정에서 실제 정보어에 매핑되는 상기 패리티 검사 행렬의 파트를 나타내며, 다만 설명의 편의상 표기를 달리하였을 뿐이다. 또한, 상기 제1패리티 파트(p1)와 제2패리티 파트(p2)는 상기 도 7에서 설명한 패리티 파트와 같이 상기 블록 LDPC 부호를 부호화하는 과정에서 실제 패리티에 매핑되는 상기 패리티 검사 행렬의 파트를 나타내며, 상기 패리티 파트를 2개의 파트들로 분 할한 것이다.
상기 정보 파트(s)의 부분 블록들, 즉 부분 블록 A(802)와 부분 블록 C(804)에 대응되는 부분 행렬들이 A와 C이며, 상기 제1패리티 파트(p1)의 부분 블록들, 즉 부분 블록 B(806)와 부분 블록 D(808)에 대응되는 부분 행렬들이 B와 D이며, 제2패리티 파트(p2)의 부분 블록들, 즉 부분 블록 T(810)와 부분 블록 E(812)에 대응되는 부분 행렬들이 T 및 E이다. 여기서, 상기 도 8에는 상기 패리티 검사 행렬이 7개의 부분 블록들로 분할된 것처럼 도시되어 있지만, O은 별도의 부분 블록이 아니라 부분 블록 T(810)에 대응되는 부분 행렬 T가 완전 하삼각 형태를 가지므로 대각선을 중심으로 O 행렬이 배치된 영역을 0으로 표기한 것일 뿐임에 유의하여야만 한다. 상기 정보 파트(s)와, 제1패리티 파트(p1)와, 제2패리티 파트(p2)의 부분 행렬들을 사용하여 부호화 방법을 간략하게 하는 과정은 하기 도 10에서 설명할 것이므로 여기서는 그 상세한 설명을 생략하기로 한다.
그러면 여기서 상기 도 8의 부분 행렬들을 도 9를 참조하여 설명하기로 한다.
상기 도 9는 도7의 패리티 검사 행렬의 부분 행렬을 도 8의 부분 행렬 B의 전치 행렬과, 부분 행렬 E와, 부분 행렬 T와, 부분 행렬 T의 역행렬로 도시한 도면이다.
상기 도 9를 참조하면, 부분 행렬 BT는 상기 부분 행렬 B의 전치 행렬 (transpose matrix)을 나타내며, 부분 행렬 T-1는 상기 부분 행렬 T의 역행렬(inverse matrix)을 나타낸다. 또한, 상기 도 9에서
Figure 112005022474558-PAT00024
Figure 112005022474558-PAT00025
를 나타낸다. 또한, 상기 도 9에서 상기 순열 행렬
Figure 112005022474558-PAT00026
는 항등 행렬이 될 수도 있음은 물론이다. 이는 상기에서 설명한 바와 같이 상기 순열 행렬의 지수, 즉
Figure 112005022474558-PAT00027
이 0이 될 경우에는 상기 순열 행렬
Figure 112005022474558-PAT00028
이 항등 행렬이 되기 때문이며, 또한 상기 순열 행렬의 지수, 즉
Figure 112005022474558-PAT00029
이 미리 설정된 값만큼 증가할 경우에는 상기 순열 행렬이 상기 증가한 설정값에 해당하는 만큼 다시 순환 쉬프트되어 결과적으로 상기 순열 행렬
Figure 112005022474558-PAT00030
이 항등 행렬이 되기 때문이다.
그러면 다음으로 도 10을 참조하여 상기 블록 LDPC 부호의 패리티 검사 행렬 설계 과정에 대해서 설명하기로 한다.
상기 도 10은 일반적인 블록 LDPC 부호의 패리티 검사 행렬 생성 과정을 도시한 순서도이다.
상기 도 10을 설명하기에 앞서, 블록 LDPC 부호를 생성하기 위해서는 생성하고자하는 블록 LDPC 부호의 부호어 크기와 부호화율을 결정하고, 상기 결정한 부호어 크기와 부호화율에 상응하게 패리티 검사 행렬의 크기를 결정해야만 한다. 상기 블록 LDPC 부호의 부호어 크기가 N이고, 부호화율을 R이라고 가정할 때 패리티 검사 행렬의 크기는
Figure 112005022474558-PAT00031
이 된다. 또한, 상기 도 10에 도시되어 있는 블록 LDPC 부호의 패리티 검사 행렬 생성 과정은 최초에 통신 시스템의 시스템 상황에 맞게 생성되고, 이후에는 상기 생성되어 있는 패리티 검사 행렬을 이용하는 것이므로, 실질적으로 상기 도 10의 패리티 검사 행렬 생성 과정은 1번만 수행되면 된다.
상기 도 10을 참조하면, 먼저 제어기(controller)는 1011단계에서 상기 크기
Figure 112005022474558-PAT00032
의 패리티 검사 행렬을 가로 축으로 p개의 블록들로 분할하고, 세로 축으로 q개의 블록들로 분할하여 총
Figure 112005022474558-PAT00033
개의 블록들로 분할한 후 1013단계로 진행한다. 여기서, 상기 블록들 각각의 크기는
Figure 112005022474558-PAT00034
이므로 상기 패리티 검사 행렬은
Figure 112005022474558-PAT00035
개의 행들과
Figure 112005022474558-PAT00036
개의 열들로 구성된다. 상기 1013단계에서 상기 제어기는 상기
Figure 112005022474558-PAT00037
개의 블록들로 분할한 패리티 검사 행렬을 정보 파트(s)와 패리티 파트, 즉 제1패리티 파트(p1)와 제2패리티 파트(p2)로 분류하고 1015단계 및 1021단계로 진행한다.
상기 1015단계에서 상기 제어기는 상기 정보 파트(s)를 상기 블록 LDPC 부호의 우수한 성능을 보장하는 차수 분포에 맞게 0이 아닌 블록, 즉 0 행렬이 아닌 블록과 0인 블록, 즉 0 행렬인 블록을 결정하고 1017단계로 진행한다. 여기서, 상기 블록 LDPC 부호의 우수한 성능을 보장하는 차수 분포는 상기에서 설명한 바와 같으므로 여기서는 그 상세한 설명을 생략하기로 한다. 상기 1017단계에서 상기 제어기는 상기 블록 LDPC 부호의 우수한 성능을 보장하는 차수 분포에 맞게 결정한 블록들중 낮은 차수를 가지는 블록들중에서 0 행렬이 아닌 부분에 상기에서 설명한 바와 같이 블록 사이클의 최소 사이클 길이가 최대가 되도록 순열 행렬
Figure 112005022474558-PAT00038
을 결정하고 1019단계로 진행한다. 여기서, 상기 순열 행렬
Figure 112005022474558-PAT00039
을 결정할 때는 상기 정보 파트(s) 뿐만 아니라 상기 제1패리티 파트(p1)와 제2패리티 파트(p2)의 블록 사이클 역시 고려해서 결정해야만 한다.
상기 1019단계에서 상기 제어기는 상기 블록 LDPC 부호의 우수한 성능을 보장하는 차수 분포에 맞게 결정한 블록들중 높은 차수(high degree)를 가지는 블록들중에서 0 행렬이 아닌 부분에 랜덤하게 순열 행렬
Figure 112005022474558-PAT00040
을 결정하고 종료한다. 여기서, 상기 높은 차수를 가지는 블록들중 0 행렬이 아닌 부분에 적용할 순열 행렬
Figure 112005022474558-PAT00041
을 결정할 때 역시 블록 사이클의 최소 사이클 크기가 최대가 되도록 순열 행렬
Figure 112005022474558-PAT00042
을 결정해야만 하고, 또한 상기 정보 파트(s) 뿐만 아니라 상기 제1패리티 파트(p1)와 제2패리티 파트(p2)의 블록 사이클 역시 고려해서 결정해야만 한다. 상기와 같이 패리티 검사 행렬의 정보 파트(s)에 순열 행렬
Figure 112005022474558-PAT00043
을 배열 한 형태가 도 7에 도시되어 있다.
한편, 상기 1021단계에서 상기 제어기는 상기 패리티 파트, 즉 제1패리티 파트(p1)와 제2패리티 파트(p2)를 4개의 부분 행렬들, 즉 부분 행렬 B와, 부분 행렬 T와, 부분 행렬 D 및 부분 행렬 E로 분할한 후 1023단계로 진행한다. 상기 1023단계에서 상기 제어기는 상기 부분 행렬 B를 구성하는 부분 블록들중 2개의 부분 블록들에 0이 아닌 순열 행렬 Py
Figure 112005022474558-PAT00044
을 입력하고 1025단계로 진행한다. 여기서, 상기 부분 행렬 B를 구성하는 부분 블록들중 2개의 부분 블록들에 0이 아닌 순열 행렬 Py
Figure 112005022474558-PAT00045
를 입력하는 구조는 이미 도 9에서 설명한 바가 있다.
상기 1025단계에서 상기 제어기는 상기 부분 행렬 T의 대각 부분 블록들에는 항등 행렬 I를 입력하고, 상기 부분 행렬 T의 대각 성분들 아래의 (i, i+1)번째 부분 블록들에는 임의의 순열 행렬
Figure 112005022474558-PAT00046
을 입력하고 1027단계로 진행한다. 여기서, 상기 부분 행렬 T의 대각 부분 블록들에는 항등 행렬 I를 입력하고, 상기 부분 행렬 T의 대각 성분들 아래의 (i, i+1)번째 부분 블록들에는 임의의 순열 행렬
Figure 112005022474558-PAT00047
을 입력하는 구조는 이미 도 9에서 설명한 바가 있다.
상기 1027단계에서 상기 제어기는 상기 부분 행렬 D에 순열 행렬
Figure 112005022474558-PAT00048
를 입력하고 1029단계로 진행한다. 상기 1029단계에서 상기 제어기는 상기 부분 행렬 E에는 마지막 부분 블록에만
Figure 112005022474558-PAT00049
를 입력하고 종료한다. 여기서, 상기 부분 행렬 E를 구성하는 부분 블록들중 마지막 부분 블록에 2개의
Figure 112005022474558-PAT00050
를 입력하는 구조는 이미 도 9에서 설명한 바가 있다.
상기에서 설명한 바와 같이 LDPC 부호는 터부 부호와 함께 고속 데이터 전송시에 성능 이득이 우수한 것으로 알려져 있으며, 전송 채널에서 발생하는 잡음에 의한 오류를 효과적으로 정정하여 데이터 전송의 신뢰도를 높일 수 있다는 장점을 가진다. 그러나, 상기 LDPC 부호는 부호화율(coding rate)면에 있어서 단점을 가진다. 즉, 상기 LDPC 부호는 비교적 높은 부호화율을 가지기 때문에 부호화율면에서 자유롭지 못하다는 단점을 가진다. 현재 제안되어 있는 LDPC 부호의 경우 대부분이 1/2의 부호화율을 가지고, 일부만 1/3의 부호화율을 가진다. 이렇게, 부호화율면에서의 제한은 결과적으로 고속 대용량 데이터 용량 전송에 치명적인 영향을 미치게 된다. 물론, 비교적 낮은 부호화율을 구현하기 위해서 밀도 진화(density evolution) 등과 같은 방식을 이용하여 최적의 성능을 나타내는 차수 분포를 구할 수는 있지만, 상기 최적의 성능을 나타내는 차수 분포를 가지는 LDPC 부호를 구현하는 것은 factor 그래프 상의 사이클 구조와 하드웨어 구현(implementation) 등의 여러 가지 제약 조건들로 인해서 난이하다.
따라서, 본 발명의 목적은 이동 통신 시스템에서 가변 블록 길이를 가지는 LDPC 부호를 부호화/복호하는 장치 및 방법을 제공함에 있다.
본 발명의 다른 목적은 이동 통신 시스템에서 부호화 복잡도가 최소화된, 가변 블록 길이를 가지는 LDPC 부호를 부호화/복호하는 장치 및 방법을 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명의 방법은; 가변 길이를 가지는 블록 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호를 부호화하는 방법에 있어서, 정보어를 입력받는 과정과, 상기 정보어를 블록 LDPC 부호로 생성시 적용할 길이에 상응하게 제1패리티 검사 행렬과 제2패리티 검사 행렬중 어느 한 패리티 검사 행렬을 기반으로 하여 부호화함으로써 상기 블록 LDPC 부호로 생성하는 과정을 포함함을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 다른 방법은; 가변 길이를 가지는 블록 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호를 복호하는 방법에 있어서, 신호를 수신하는 과정과, 복호할 블록 LDPC 부호의 길이에 상응하게 제1패리티 검사 행렬 혹은 제2패리티 검사 행렬을 사용할지를 결정하고, 상기 결정된 패리티 검사 행렬에 상응하게 상기 수신 신호를 복호하여 상기 블록 LDPC 부호로 검출하는 과정을 포함함을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 장치는; 가변 길이를 가지는 블록 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호를 부호화하는 장치에 있어서, 정보어를 블록 LDPC 부호로 생성시 적용할 길이에 상응하게 제1패리티 검 사 행렬과 제2패리티 검사 행렬중 어느 한 패리티 검사 행렬을 기반으로 하여 부호화함으로써 상기 블록 LDPC 부호로 생성하는 부호화기와, 상기 블록 LDPC 부호를 미리 설정되어 있는 변조 방식으로 변조하여 변조 심벌로 생성하는 변조기와, 상기 변조 심벌을 송신하는 송신기 포함함을 특징으로 한다.
상기한 목적들을 달성하기 위한 본 발명의 다른 장치는; 가변 길이를 가지는 블록 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호를 복호하는 장치에 있어서, 신호를 수신하는 수신기와, 복호할 블록 LDPC 부호의 길이에 상응하게 제1패리티 검사 행렬 혹은 제2패리티 검사 행렬을 사용할지를 결정하고, 상기 결정된 패리티 검사 행렬에 상응하게 상기 수신 신호를 복호하여 상기 블록 LDPC 부호로 검출하는 복호기를 포함함을 특징으로 한다.
이하, 본 발명에 따른 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.
본 발명은 가변 블록 길이를 가지는 블록(block) 저밀도 패리티 검사(LDPC: Low Density Parity Check, 이하 'LDPC'라 칭하기로 한다) 부호(이하 '가변 길이 블록 LDPC 부호'라 칭하기로 한다)를 부호화(coding) 및 복호(decoding)하는 장치 및 방법을 제안한다. 즉, 본 발명은 블록 LDPC 부호의 팩터(factor, 이하 'factor' 라 칭하기로 한다) 그래프상의 최소 사이클(cycle)의 길이가 최대가 되고, 상기 블록 LDPC 부호의 부호화를 위한 복잡도가 최소가 되고, 상기 블록 LDPC 부호의 factor 그래프상의 차수 분포가 최적 1의 분포를 가지면서도 다양한 블록 길이를 지원하는 가변 길이 블록 LDPC 부호의 부호화 및 복호 장치 및 방법을 제안한다. 또한, 본 발명에서 별도로 도시하여 설명하지는 않지만 본 발명의 종래 기술 부분의 도 1에서 설명한 바와 같은 송수신기 구성에 본 발명의 가변 길이 블록 LDPC 부호의 부호화 및 복호 장치를 적용할 수 있음은 물론이다.
특히, 차세대 이동 통신 시스템은 패킷 서비스 통신 시스템(packet service communication system) 형태로 발전되어 왔으며, 패킷 서비스 통신 시스템은 버스트(burst)한 패킷 데이터(packet data)를 다수의 이동국들로 전송하는 시스템으로서, 대용량 데이터 전송에 적합하도록 설계되어 왔다. 특히, 상기 데이터 전송량을 증가시키기 위해 복합 재전송(HARQ: Hybrid Automatic Retransmission Request, 이하 'HARQ'라 칭하기로 한다) 방식과 적응적 변조 및 부호화(AMC: Adaptive Modulation and Coding, 이하 'AMC'라 칭하기로 한다) 방식 등과 같은 다양한 방식들이 제안되어 있으며, 상기 HARQ 방식 및 AMC 방식 등에서는 가변 부호화율(coding rate)을 지원하므로 다양한 블록 길이를 가지는 블록 LDPC 부호에 대한 필요성이 부각되고 있다.
상기 가변 길이 블록 LDPC 부호의 설계는 일반적인 LDPC 부호를 설계할 경우와 마찬가지로 패리티 검사 행렬(parity check matrix)의 설계를 통해 구현된다. 그런데, 이동 통신 시스템에서 1개의 코덱(CODEC)으로 가변 길이 블록 LDPC 부호를 제공하기 위해서는, 즉 다양한 블록 길이를 가지는 블록 LDPC 부호를 제공하기 위해서는 상기 패리티 검사 행렬 내에 다른 블록 길이의 블록 LDPC 부호를 나타낼 수 있는 패리티 검사 행렬이 포함되는 형태가 되어야만 한다. 그러면 여기서 가변 블록 길이를 제공하는 블록 LDPC 부호의 패리티 검사 행렬에 대해서 설명하기로 한다.
먼저, 설계하고자 하는 설정 부호화율에 대해서 시스템에서 요구하는 최소 길이의 블록 LDPC 부호를 설계한다. 상기 패리티 검사 행렬에서 부분 행렬의 크기인 Ns를 증가시키며 블록 길이가 긴 블록 LDPC 부호를 생성한다. 여기서, 상기 부분 행렬이라함은 상기 본 발명의 종래 기술 부분에서 설명한 바와 같이 상기 패리티 검사 행렬을 다수의 부분 블록(partial block)들로 분할하였을 경우, 상기 부분 블록들 각각에 대응하는 순열 행렬(permutation matrix)을 나타낸다. 한편, 상기 부분 행렬의 크기인 Ns를 증가시키게 되면 사이클(cycle) 구조가 변경되기 때문에 우선 짧은 길이의 블록 LDPC 부호를 설계하고, 그 다음으로 긴 길이의 블록 LDPC 부호를 설계하는 형태로 확장하는 경우를 가정하여 상기 패리티 검사 행렬의 순열 행렬의 지수를 사이클이 최대가 되도록 선택한다. 여기서, 상기 부분 행렬의 크기가 NS라 함은 상기 부분 행렬이
Figure 112005022474558-PAT00051
크기를 가지는 정사각 행렬임을 나타내며, 설명의 편의상 상기 부분 행렬의 크기를 Ns라고 표현한 것임에 유의하여야만 한다.
일 예로, 기본 블록 LDPC 부호의 부분 블록 크기 Ns = 2인 경우 상기 기본 블록 LDPC 부호를 2배 길이의 Ns = 4인 블록 LDPC 부호로 확장하고자 할 때, 순열 행렬의 지수가 0인 부분 행렬은 Ns = 2에서 Ns = 4로 증가되면 0 또는 2의 값을 선택할 수 있다. 여기서, 상기 2개의 값들중에 상기 사이클을 최대화할 수 있는 값을 선택해야만 한다. 이와 마찬가지로 Ns = 2인 블록 LDPC 부호에서 지수가 1인 부분 행렬은 Ns = 2에서 Ns = 4로 증가되면 1 또는 3의 값을 선택할 수 있다.
상기에서 설명한 바와 같이 기본 블록 LDPC 부호를 이용하여 Ns 값을 증가시켜가면서 블록 LDPC 부호를 설계하면 각각의 블록 길이별로 최대 성능을 가지는 블록 LDPC 부호를 설계할 수 있다. 또한, 상기 다양한 길이의 블록 LDPC 부호들중 임의의 1개의 블록 LDPC 부호를 기본 블록 LDPC 부호로 정의할 수 있으므로, 메모리 효율성 면에서도 이득을 갖게 된다. 그러면 여기서 상기 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 생성하는 방법에 대해서 설명하기로 한다. 본 발명에서는 상기 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 부호화율에 상응하게 4가지 형태로 제안하며, 본 발명에서 고려하는 부호화율은 1/2, 2/3, 3/4, 5/6이다.
한편, 상기 부호화율은 1/2, 2/3, 3/4, 5/6에 따른 가변 길이 블록 LDPC 부호의 패리티 검사 행렬에 대해서 설명하기 전에 도 15를 참조하여 본 발명에서 설계한 패리티 검사 행렬을 사용하여 가변 길이 블록 LDPC 부호를 부호화하는 과정을 설명하기로 한다.
상기 도 15는 본 발명의 제1실시예 내지 제4실시예에 따른 가변 길이 블록 LDPC 부호의 부호화 과정을 도시한 순서도이다.
상기 도 15를 설명하기에 앞서, 상기 가변 길이 블록 LDPC 부호의 패리티 검사 행렬은 상기 종래 기술 부분의 도 8에서 설명한 바와 같은 6개의 부분 행렬들로 구성된 형태라고 가정하기로 한다. 상기 도 15를 참조하면, 먼저 제어기(도시하지 않음)는 1511단계에서 상기 가변 길이 블록 LDPC 부호로 부호화하기 위한 정보어 벡터(
Figure 112005022474558-PAT00052
)를 입력받고 1513단계 및 1515단계로 진행한다. 여기서, 상기 블록 LDPC 부호로 부호화하기 위해 입력받은 정보어 벡터(
Figure 112005022474558-PAT00053
)의 길이는 k라고 가정하기로 한다. 상기 1513단계에서 상기 제어기는 상기 입력받은 정보어 벡터(
Figure 112005022474558-PAT00054
)와 패리티 검사 행렬의 부분 행렬 A를 행렬 곱셈한 후(
Figure 112005022474558-PAT00055
) 1517단계로 진행한다. 여기서, 상기 부분 행렬 A에 존재하는 1의 값을 가지는 엘리먼트들의 개수는 0의 값을 가지는 엘리먼트들의 개수에 비해서 매우 적으므로 상기 정보어 벡터(
Figure 112005022474558-PAT00056
)와 패리티 검사 행렬의 부분 행렬 A의 행렬 곱셈은 비교적 적은 횟수의 합곱(sum-product) 연산만으로도 가능하게 된다. 또한, 상기 부분 행렬 A에서 1의 값을 가지는 엘리먼트들의 위치는 0이 아닌 블록의 위치와 그 블록의 순열 행렬의 지수승으로 나타낼 수 있으므로 임의의 패리티 검사 행렬에 비하여 매우 간단한 연산만으로도 행렬 곱셈을 수행할 수 있다. 또한, 상기 1515단계에서 상기 제어기는 상기 패리티 검사 행렬의 부분 행렬 C와 상기 정보어 벡터(
Figure 112005022474558-PAT00057
)의 행렬 곱셈을 수행하고(
Figure 112005022474558-PAT00058
) 1519단계로 진행한다.
한편, 상기 1517단계에서 상기 제어기는 상기 정보어 벡터(
Figure 112005022474558-PAT00059
)와 패리티 검사 행렬의 부분 행렬 A의 행렬 곱셈 결과와 행렬 ET-1의 행렬 곱셈을 수행하고(
Figure 112005022474558-PAT00060
) 1519단계로 진행한다. 여기서, 상기에서 설명한 바와 같이 상기 행렬 ET-1의 1의 값을 가지는 엘리먼트들의 개수는 매우 적기 때문에 블록의 순열 행렬의 지수승만 알게되면 상기 행렬 곱셈을 용이하게 수행할 수 있다. 상기 1519단계에서 상기 제어기는 상기
Figure 112005022474558-PAT00061
Figure 112005022474558-PAT00062
를 가산하여 제1패리티 벡터(
Figure 112005022474558-PAT00063
)를 계산한 후(
Figure 112005022474558-PAT00064
) 1821단계로 진행한다. 여기서, 가산 연산은 배타적 가산(exclusive OR) 연산으로 동일한 비트가 가산될 때는 0이 되고 상이한 비트가 가산될 때는 1이 된다. 결국, 상기 1519단계까지의 과정은 제1패리티 벡터(
Figure 112005022474558-PAT00065
)를 계산하기 위한 과정인 것이다.
상기 1521단계에서 상기 제어기는 상기 패리티 검사 행렬의 부분 행렬 B와 상기 제1패리티 벡터(
Figure 112005022474558-PAT00066
)를 곱셈한 후
Figure 112005022474558-PAT00067
를 가산한 후 1523단계로 진행한다. 여기서, 상기 정보어 벡터(
Figure 112005022474558-PAT00068
)와 제1패리티 벡터(
Figure 112005022474558-PAT00069
)를 알면, 제2패리티 벡터(
Figure 112005022474558-PAT00070
)를 구하기 위해 상기 패리티 검사 행렬의 부분 행렬 T의 역행렬 T-1을 행렬 곱해야한다. 따라서, 상기 1523단계에서 상기 제어기는 상기 제2패리티 벡터(
Figure 112005022474558-PAT00071
)를 구하기 위해서 상기 1521단계에서 계산한 벡터에 상기 부분 행렬 T의 역행렬 T-1을 곱한 후(
Figure 112005022474558-PAT00072
) 1525단계로 진행한다. 상기에서 설명한 바와 같이 부호화하고자 하는 블록 LDPC 부호의 정보어 벡터(
Figure 112005022474558-PAT00073
)만을 알면 제1패리티 벡터(
Figure 112005022474558-PAT00074
)와, 제2패리티 벡터(
Figure 112005022474558-PAT00075
)를 구할수 있고, 결과적으로 부호어 벡터 모두를 얻을 수 있는 것이다. 그리고, 상기 제어기는 1525단계에서 상기 정보어 벡터(
Figure 112005022474558-PAT00076
)와, 제1패리티 벡터(
Figure 112005022474558-PAT00077
)와, 제2패리티 벡터(
Figure 112005022474558-PAT00078
)로 생성된 부호어 벡터(
Figure 112005022474558-PAT00079
)를 생성하여 전송하고 종료한다.
다음으로 도 16을 참조하여 본 발명의 제1실시예 내지 제4실시예에서의 기능을 수행하기 위한 가변 길이 블록 LDPC 부호의 부호화 장치 내부 구조에 대해서 설명하기로 한다.
상기 도 16은 본 발명의 실시예들에서의 기능을 수행하기 위한 가변 길이 블록 LDPC 부호의 부호화 장치 내부 구조를 도시한 블록도이다.
상기 도 16을 참조하면, 상기 가변 길이 블록 LDPC 부호의 부호화 장치는 행 렬 A 곱셈기(1611)와, 행렬 C 곱셈기(1613)와, 행렬 ET-1 곱셈기(1615)와, 가산기(1617)와, 행렬 B 곱셈기(1619)와, 가산기(1621)와, 행렬 T-1 곱셈기(1623)와, 스위치(switch)들(1625, 1627, 1629)을 포함한다.
먼저, 입력 신호, 즉 가변 길이 블록 LDPC 부호로 부호화하고자 하는 길이 k의 정보어 벡터(
Figure 112005022474558-PAT00080
)가 입력되고, 상기 입력된 길이 k의 정보어 벡터(
Figure 112005022474558-PAT00081
)는 상기 스위치(1625)와, 행렬 A 곱셈기(1611)와, 행렬 C 곱셈기(1613)로 입력된다. 상기 행렬 A 곱셈기(1611)는 상기 정보어 벡터(
Figure 112005022474558-PAT00082
)와 전체 패리티 검사 행렬의 부분 행렬 A를 곱한 후 행렬 ET-1 곱셈기(1615)와 상기 가산기(1621)로 출력한다. 또한, 상기 행렬 C 곱셈기(1613)는 상기 정보어 벡터(
Figure 112005022474558-PAT00083
)와 전체 패리티 검사 행렬의 부분 행렬 C를 곱한 후 상기 가산기(1617)로 출력한다. 상기 행렬 ET-1 곱셈기(1615)는 상기 행렬 A 곱셈기(1611)에서 출력한 신호에 전체 패리티 검사 행렬의 부분 행렬 ET-1를 곱한 후 상기 가산기(1617)로 출력한다.
상기 가산기(1617)는 상기 행렬 ET-1 곱셈기(1615)에서 출력한 신호와 상기 행렬 C 곱셈기(1613)에서 출력한 신호를 입력하여 가산한 후 상기 행렬 B 곱셈기(1619) 및 스위치(1627)로 출력한다. 여기서, 상기 가산기(1617)는 비트별로 배타적 논리합 연산을 수행한다. 일 예로, 길이 3인 벡터 x = (x1, x2, x3)와 길이 3인 벡터 y = (y1, y2, y3)가 상기 가산기(1617)로 입력될 경우, 상기 가산기(1617)는 상기 길이 3인 벡터 x = (x1, x2, x3)와 길이 3인 벡터 y = (y1, y2, y3)를 배타적 논리합 연산하여 길이 3인 벡터
Figure 112005022474558-PAT00084
를 출력한다. 여기서, 상기
Figure 112005022474558-PAT00085
연산은 동일한 비트가 연산되면 0이 되고, 상이한 비트가 연산되면 1이 되는 배타적 논리합 연산을 나타낸다. 결국, 상기 가산기(1617)에서 출력하는 신호가 제1패리티 벡터(
Figure 112005022474558-PAT00086
)가 되는 것이다.
또한, 상기 행렬 B 곱셈기(1619)는 상기 가산기(1617)에서 출력한 신호, 즉 제1패리티 벡터(
Figure 112005022474558-PAT00087
)를 입력하여 상기 전체 패리티 검사 행렬의 부분 행렬 B를 곱한 후 상기 가산기(1621)로 출력한다. 상기 가산기(1621)는 상기 행렬 B 곱셈기(1619)에서 출력한 신호와 상기 행렬 A 곱셈기(1611)에서 출력한 신호를 가산한 후 상기 행렬 T-1 곱셈기(1623)로 출력한다. 여기서, 상기 가산기(1621)는 상기 가산기(1617)에서 설명한 바와 같이 상기 행렬 B 곱셈기(1619)에서 출력한 신호와 상기 행렬 A 곱셈기(1611)에서 출력한 신호를 배타적 논리합 연산한 후 상기 행렬 T-1 곱셈기(1623)로 출력하는 것이다.
상기 행렬 T-1 곱셈기(1623)는 상기 가산기(1621)에서 출력한 신호와 상기 행렬 T-1를 곱한 후 상기 스위치(1629)로 출력한다. 여기서, 상기 행렬 T-1 곱셈기 (1623)의 출력이 결국 제2패리티 벡터(
Figure 112005022474558-PAT00088
)가 되는 것이다. 한편, 상기 스위치들(1625, 1627, 1629) 각각은 자신이 전송하는 시점에서만 스위칭 온(switching on)되어 해당 신호를 전송하도록 한다. 즉, 상기 정보어 벡터(
Figure 112005022474558-PAT00089
)가 전송되는 시점에서는 상기 스위치(1625)가 스위칭 온되고, 상기 제1패리티 벡터(
Figure 112005022474558-PAT00090
)가 전송되는 시점에서는 상기 스위치(1627)가 스위칭 온되고, 상기 제2패리티 벡터(
Figure 112005022474558-PAT00091
)가 전송되는 시점에서는 상기 스위치(1629)가 스위칭 온되는 것이다.
또한, 하기 도 17에서도 구체적으로 설명할 것이지만, 본 발명의 실시예에서는 가변 길이를 가지는 블록 LDPC 부호를 생성하는 것이 가능해야하므로 상기 도 16의 가변 길이 블록 LDPC 부호의 부호화 장치에서 사용되는 행렬들 각각은 상기 가변 길이 블록 LDPC 부호의 패리티 검사 행렬이 변경될 때마다 상응하게 변경됨은 물론이다. 따라서, 상기 도 16에 별도로 도시하지는 않았으나, 제어기가 상기 가변 길이 블록 LDPC 부호의 패리티 검사 행렬이 변경에 따라 상기 가변 길이 블록 LDPC 부호의 부호화 장치에서 사용되는 행렬들을 변경함은 물론이다.
상기에서는 효율적인 부호화를 고려한 가변 길이 블록 LDPC 부호의 생성 방법에 대해서 설명하였다. 상기에서 설명한 바와 같이 가변 길이 블록 LDPC 부호는 가변 길이 블록 LDPC 부호의 구조적인 특성에 따라 패리티 검사 행렬에 관련된 정보를 저장하기 위한 메모리 효율이 뛰어날 뿐만 아니라, 패리티 검사 행렬에서 부분 행렬을 적절하게 선택함으로써 효율적인 부호화가 가능하게 된다. 그러나, 블록 단위로 패리티 검사 행렬을 생성함에 따라 불규칙성(randomness)은 감소하게 되고, 상기 불규칙성의 감소는 블록 LDPC 부호의 성능의 열화를 발생시킬 수 있다. 즉, 상기에서 설명한 바와 같이 불균일 블록 LDPC 부호가 균일 블록 LDPC 부호에 비해서 성능이 좋기 때문에, 블록 LDPC 부호를 설계함에 있어 전체 패리티 검사 행렬에서 부분 행렬을 선택하는 것은 매우 중요한 요소로 작용하게 된다.
그러면 여기서 도 11을 참조하여 부호화율 1/2일 경우의 가변 길이 블록 LDPC 부호의 구체적인 생성 방법에 대해서 설명하기로 한다.
상기 도 11은 본 발명의 제1실시예에 따른 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면이다.
상기 도 11을 설명하기에 앞서, 상기 본 발명의 제1실시예는 부호화율이 1/2일 경우의 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 제안한다. 상기 도 11을 참조하면, 먼저 상기 부분 행렬의 크기인 Ns 값을 4, 8, 12, 16, 20, 24, 28, 32, 36, 40이라고 가정할 경우 상기 도 11에 도시한 바와 같은 패리티 검사 행렬을 사용하여 길이 96, 192, 288, 384, 480, 576, 672, 768, 864, 960인 블록 LDPC 부호를 생성할 수 있다. 상기 도 11에 도시되어 있는 블록들, 즉 부분 행렬들 각각에 표기되어 있는 값은 순열 행렬의 지수 값을 나타낸다. 여기서, 상기 가변 길이 블록 LDPC 부호의 패리티 검사 행렬은 다수의 부분 블록들로 구성되며, 상기 부분 블록들 각각에 대응하는 부분 행렬이 상기 순열 행렬이 되는 것이다. 일 예로, 상기 가변 길이 블록 LDPC 부호의 패리티 검사 행렬이
Figure 112005022474558-PAT00092
개의 부분 블록들로 구성 될 경우, 즉 상기 가변 길이 블록 LDPC 부호의 패리티 검사 행렬의 부분 블록들의 행(row)의 개수가 p이고, 상기 가변 길이 블록 LDPC 부호의 패리티 검사 행렬의 부분 블록들의 열(column)의 개수가 q일 경우, 상기 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 구성하는 순열 행렬들은
Figure 112005022474558-PAT00093
형태로 표기할 수 있으며, 순열 행렬 P의 위첨자 apq
Figure 112005022474558-PAT00094
혹은 apq = ∞를 가진다. 즉, 상기 순열 행렬
Figure 112005022474558-PAT00095
는 상기 다수의 부분 블록들로 구성된 가변 길이 블록 LDPC 부호의 패리티 검사 행렬의 p번째 행과 q번째 열이 교차하는 지점의 부분 블록에 존재하는 순열 행렬을 나타낸다. 따라서, 상기 도 11에 도시한 순열 행렬의 지수값은 상기 apq이며, 상기 순열 행렬의 지수값에 상기 부분 행렬의 크기에 해당하는 Ns 값을 모듈로(modulo) 연산하면 상기 Ns 값을 가지는 가변 길이 블록 LDPC 부호의 패리티 검사 행렬의 순열 행렬 지수 값을 구할 수 있다. 여기서, 상기 순열 행렬의 지수가 상기 Ns 값으로 모듈로 연산되었을 경우 그 결과값이 0이면 해당 순열 행렬은 항등 행렬(Identity matrix)이 되는 것이다.
그러면, 더욱 구체적인 설명을 위해 다음과 같은 파라미터(parameter)들을 정의하기로 한다.
먼저, 상기 도 11과 같은 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 '모행렬(mother matrix)'이라 칭하기로 하고, 상기 모행렬을 구성하는 부분 행렬들, 즉 순열 행렬들중에서 0(zero) 행렬이 아닌 순열 행렬들의 개수를 L이라 정의하고, 상기 모 행렬을 구성하는 순열 행렬들 중에서 0 행렬이 L개의 순열 행렬들의 지수들이
Figure 112005022474558-PAT00096
이고, 상기 모행렬을 구성하는 순열 행렬들의 크기는 Ns라고 가정하기로 한다. 여기서, 상기 모행렬을 구성하는 순열 행렬들중 0 행렬이 아닌 순열 행렬들이 L개이므로, 첫 번째 순열 행렬은 그 지수가 a1가 되고, 두 번째 순열 행렬은 그 지수가 a2가 되고, 이런 식으로 마지막 순열 행렬인 L번째 순열 행렬은 그 지수가 aL이 되는 것이다.
또한, 상기 모행렬과 상이하게 새롭게 생성할 패리티 검사 행렬을 '자행렬(child matrix)'이라 칭하기로 하고, 상기 자행렬을 구성하는 부분 행렬들, 즉 순열 행렬들중에서 0 행렬이 아닌 순열 행렬들의 개수를 L이라 정의하고, 상기 자행렬을 구성하는 순열 행렬들의 크기가 Ns'이고, 상기 자행렬을 구성하는 순열 행렬들의 지수들이
Figure 112005022474558-PAT00097
이라고 가정하기로 한다. 여기서, 상기 자행렬을 구성하는 순열 행렬들중 0 행렬이 아닌 순열 행렬들이 L개이므로, 첫 번째 순열 행렬은 그 지수가 a1 ' 가 되고, 두 번째 순열 행렬은 그 지수가 a2 ' 가 되고, 이런 식으로 마지막 순열 행렬인 L번째 순열 행렬은 그 지수가 aL ' 이 되는 것이다.
그러면, 하기 수학식 5를 사용하여 1개의 모행렬로부터 생성하고자 하는 자 행렬을 구성하는 순열 행렬의 크기 Ns'를 선택하여 가변 블록 길이를 가지는 자행렬을 생성하는 것이 가능하다.
Figure 112005022474558-PAT00098
다음으로 도 12를 참조하여 부호화율 2/3일 경우의 가변 길이 블록 LDPC 부호의 구체적인 생성 방법에 대해서 설명하기로 한다.
상기 도 12는 본 발명의 제2실시예에 따른 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면이다.
상기 도 12를 설명하기에 앞서, 상기 본 발명의 제2실시예는 부호화율이 2/3일 경우의 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 제안한다. 상기 도 12를 참조하면, 먼저 상기 부분 행렬의 크기인 Ns 값을 8,16이라고 가정할 경우 상기 도 12에 도시한 바와 같은 패리티 검사 행렬을 사용하여 길이 288, 576인 블록 LDPC 부호를 생성할 수 있다. 상기 도 12에 도시되어 있는 블록들, 즉 부분 행렬들 각각에 표기되어 있는 값은 순열 행렬의 지수 값을 나타낸다. 따라서, 상기 순열 행렬의 지수값에 상기 부분 행렬의 크기에 해당하는 Ns 값을 모듈로 연산하면 상기 Ns 값을 가지는 블록 LDPC 부호의 패리티 검사 행렬의 순열 행렬 지수 값을 구할 수 있다. 여기서, 상기 순열 행렬의 지수가 상기 Ns 값으로 모듈로 연산을 수행했을 때 그 결과값이 0일 경우 해당 순열 행렬은 항등 행렬이 되는 것이다.
다음으로 도 13을 참조하여 부호화율 3/4일 경우의 가변 길이 블록 LDPC 부호의 구체적인 생성 방법에 대해서 설명하기로 한다.
상기 도 13은 본 발명의 제3실시예에 따른 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면이다.
상기 도 13을 설명하기에 앞서, 상기 본 발명의 제3실시예는 부호화율이 3/4일 경우의 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 제안한다. 상기 도 13을 참조하면, 먼저 상기 부분 행렬의 크기인 Ns 값을 3, 6, 9, 12, 15, 18이라고 가정할 경우 상기 도 13에 도시한 바와 같은 패리티 검사 행렬을 사용하여 길이 96, 192, 288, 384,, 480, 576인 가변 길이 블록 LDPC 부호를 생성할 수 있다. 상기 도 13에 도시되어 있는 블록들, 즉 부분 행렬들 각각에 표기되어 있는 값은 순열 행렬의 지수 값을 나타낸다. 따라서, 상기 순열 행렬의 지수값에 상기 부분 행렬의 크기에 해당하는 Ns 값을 모듈로 연산하면 상기 Ns 값을 가지는 블록 LDPC 부호의 패리티 검사 행렬의 순열 행렬 지수 값을 구할 수 있다. 여기서, 상기 순열 행렬의 지수가 상기 Ns 값으로 모듈로 연산을 수행했을 때 그 결과값이 0일 경우 해당 순열 행렬은 항등 행렬이 되는 것이다.
다음으로 도 14를 참조하여 부호화율 5/6일 경우의 가변 길이 블록 LDPC 부호의 구체적인 생성 방법에 대해서 설명하기로 한다.
상기 도 14는 본 발명의 제4실시예에 따른 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 도시한 도면이다.
상기 도 14를 설명하기에 앞서, 상기 본 발명의 제4실시예는 부호화율이 5/6일 경우의 가변 길이 블록 LDPC 부호의 패리티 검사 행렬을 제안한다. 상기 도 14를 참조하면, 먼저 상기 부분 행렬의 크기인 Ns 값을 8, 16이라고 가정할 경우 상기 도 14에 도시한 바와 같은 패리티 검사 행렬을 사용하여 길이 288, 576인 블록 LDPC 부호를 생성할 수 있다. 상기 도 14에 도시되어 있는 블록들, 즉 부분 행렬들 각각에 표기되어 있는 값은 순열 행렬의 지수 값을 나타낸다. 따라서, 상기 순열 행렬의 지수값에 상기 부분 행렬의 크기에 해당하는 Ns 값을 모듈로 연산하면 상기 Ns 값을 가지는 블록 LDPC 부호의 패리티 검사 행렬의 순열 행렬 지수 값을 구할 수 있다. 여기서, 상기 순열 행렬의 지수가 상기 Ns 값으로 모듈로 연산을 수행했을 때 그 결과값이 0일 경우 해당 순열 행렬은 항등 행렬이 되는 것이다.
한편, 상기 LDPC 부호 계열의 모든 부호들은 팩터(factor, 이하 'factor'라 칭하기로 한다) 그래프 상에서 합곱 알고리즘(sum-product algorithm)으로 복호가 가능하다. 상기 LDPC 부호의 복호 방식은 크게 양방향 전달 방식과 흐름 전달 방식으로 분류할 수 있다. 상기 양방향 전달 방식으로 복호 동작을 수행할 경우에는 검사 노드(check node) 당 노드 프로세서(processor)가 각각 존재하여 복호기의 복잡도가 상기 검사 노드들의 개수에 비례하여 복잡해지지만, 모든 노드들이 동시에 업데이트되므로 복호 속도가 굉장히 빨라진다.
이와는 달리 상기 흐름 전달 방식은 한 개의 노드 프로세서가 존재하여 모든 factor 그래프 상의 노드를 지나가며 정보를 업데이트하게 된다. 따라서, 복호기의 복잡도는 간단해지지만 패리티 검사 행렬의 크기가 커질수록 즉, 노드들의 개수가 증가할수록 복호 속도가 느려지게 된다. 하지만 본 발명에서 제안하는 부호화율에 상응하게 다양한 블록 길이를 가지는 가변 길이 블록 LDPC 부호와 같이 블록 단위로 패리티 검사 행렬을 생성하게 되면, 복호시 상기 패리티 검사 행렬을 구성하고 있는 블록들의 개수만큼의 노드 프로세서를 이용하므로 상기 양방향 전달 방식보다는 복호기 복잡도가 감소되며, 또한 상기 흐름 전달 방식보다는 복호 속도가 빠른 복호기를 구현할 수 있다.
다음으로 도 17을 참조하여 본 발명의 실시예들에 따른 패리티 검사 행렬을 사용하여 가변 길이 블록 LDPC 부호를 복호하는 복호 장치 내부 구조에 대해서 설명하기로 한다.
상기 도 17은 본 발명의 실시예들에서의 기능을 수행하는 블록 LDPC 부호의 복호 장치 내부 구조를 도시한 도면이다.
상기 도 17을 참조하면, 상기 가변 길이 블록 LDPC 부호의 복호 장치는 블록 제어기(block controller)(1710)와, 변수 노드 파트(1700)와, 가산기(1715)와, 디인터리버(de-interleaver)(1717)와, 인터리버(interleaver)(1719)와, 제어기(1721)와, 메모리(1723)와, 가산기(1725)와, 검사 노드 파트(1750)와, 경판정기(1729)를 포함한다. 상기 변수 노드 파트(1700)는 변수 노드 복호기(1711)와, 스위치들(1713,1714)를 포함하고, 상기 검사 노드 파트(1750)는 검사 노드 복호기(1727)를 포함한다.
먼저, 무선 채널을 통해 수신되는 수신 신호는 상기 블록 제어기(1710)로 입 력된다. 상기 블록 제어기(1710)는 상기 수신 신호의 블록 크기를 결정하며, 또한 상기 복호 장치에 대응하는 부호화 장치에서 천공된 정보어 부분이 존재할 경우, 상기 천공된 정보어 부분에 0을 삽입하여 전체 블록 크기를 조정한 후 상기 변수 노드 복호기(1711)로 출력한다.
상기 변수 노드 복호기(1711)는 상기 블록 제어기(1710)에서 출력한 신호를 입력하고, 상기 블록 제어기(1710)에서 출력한 신호의 확률값들을 계산하고, 상기 계산된 확률값들을 업데이트한 후 상기 스위치(1713) 및 상기 스위치(1714)로 출력한다. 여기서, 상기 변수 노드 복호기(1711)는 상기 불균일 블록 LDPC 부호의 복호 장치에 미리 설정되어 있는 패리티 검사 행렬에 상응하게 변수 노드들을 연결하며, 상기 변수 노드들에 연결된 1의 개수만큼의 입력값과 출력값을 갖는 업데이트 연산이 수행된다. 상기 변수 노드들 각각에 연결된 1의 개수는 상기 패리티 검사 행렬을 구성하는 열들 각각의 웨이트와 동일하다. 따라서, 상기 패리티 검사 행렬을 구성하는 열들 각각의 웨이트에 따라 상기 변수 노드 복호기(1711)의 내부 연산이 상이하게 된다. 상기 스위치(1714)는 상기 스위치(1713)가 스위칭 온될 경우만을 제외하고, 즉 상기 스위치(1713)가 스위칭 오프될 경우만을 제외하고 스위칭 온되어 상기 블록 제어기(1710)에서 출력하는 신호를 상기 가산기(1715)로 전달한다.
상기 가산기(1715)는 상기 변수 노드 복호기(1711)에서 출력한 신호와 이전 반복 복호(iteration decoding) 과정에서의 상기 인터리버(1719)의 출력 신호를 입력하고, 상기 변수 노드 복호기(1711)에서 출력한 신호에서 이전 반복 복호 과정에서의 상기 인터리버(1719)의 출력 신호를 감산한 후 상기 디인터리버(1717)로 출력 한다. 여기서, 상기 복호 과정이 최초의 복호 과정일 경우, 상기 인터리버(1719)의 출력 신호는 0이라고 간주해야함은 물론이다.
상기 디인터리버(1717)는 상기 가산기(1715)에서 출력한 신호를 입력하여 미리 설정되어 있는 설정 방식에 상응하게 디인터리빙(de-interleaving)한 후 상기 가산기(1725)와 검사 노드 복호기(1727)로 출력한다. 여기서, 상기 디인터리버(1717)의 내부 구조는 상기 패리티 검사 행렬에 상응하는 구조를 가지며, 그 이유는 상기 패리티 검사 행렬의 1의 값을 가지는 엘리먼트들의 위치에 따라 상기 디인터리버(1717)에 대응하는 인터리버(1719)의 입력값에 대한 출력값이 상이해지기 때문이다.
상기 가산기(1725)는 이전 반복 복호 과정에서의 상기 검사 노드 복호기(1727)의 출력 신호와 상기 디인터리버(1717)의 출력 신호를 입력하고, 상기 이전 반복 복호 과정에서의 상기 검사 노드 복호기(1727)의 출력 신호에서 상기 디인터리버(1717)의 출력 신호를 감산한 후 상기 인터리버(1719)로 출력한다. 상기 검사 노드 복호기(1727)는 상기 블록 LDPC 부호의 복호 장치에 미리 설정되어 있는 패리티 검사 행렬에 상응하게 검사 노드들을 연결하며, 상기 검사 노드들에 연결된 1의 개수만큼의 입력값과 출력값을 갖는 업데이트 연산이 수행된다. 상기 검사 노드들 각각에 연결된 1의 개수는 상기 패리티 검사 행렬을 구성하는 행들 각각의 웨이트와 동일하다. 따라서, 상기 패리티 검사 행렬을 구성하는 행들 각각의 웨이트에 따라 상기 검사 노드 복호기(1727)의 내부 연산이 상이하게 된다.
여기서, 상기 인터리버(1719)는 상기 제어기(1721)의 제어에 따라 미리 설정 되어 있는 설정 방식으로 상기 가산기(1725)에서 출력한 신호를 인터리빙한 후 상기 가산기(1715) 및 상기 변수 노드 복호기(1711)로 출력한다. 여기서, 상기 제어기(1721)는 상기 메모리(1723)에 저장되어 있는 인터리빙 방식에 관련된 정보를 읽어 상기 인터리버(1719)의 인터리빙 방식과 상기 디인터리버(1717)의 디인터리빙 방식을 제어하게 되는 것이다. 여기서, 상기 메모리(1723)는 상기 가변 길이 블록 LDPC 부호를 생성할 수 있는 모행렬만을 저장하고 있으므로, 제어기(1721)는 상기 메모리(1723)에 저장되어 있는 모행렬을 리드(read)하여 미리 설정되어 있는 블록 크기에 상응하는 순열 행렬의 크기 Ns'를 사용하여 해당 자행렬을 구성하는 순열 행렬들의 지수를 생성한다. 그리고, 상기 제어기(1721)는 상기 생성한 자행렬을 사용하여 상기 인터리버(1719)의 인터리빙 방식과 상기 디인터리버(1717)의 디인터리빙 방식을 제어하게 된다. 또한, 상기 복호 과정이 최초의 복호 과정일 경우에는 상기 디인터리버(1717)의 출력 신호는 0이라고 간주해야함은 물론이다.
상기와 같은 과정들을 반복적으로 수행함으로써 오류 없이 신뢰도 높은 복호를 수행하며, 미리 설정한 설정 반복 회수에 해당하는 반복 복호를 수행한 후에는 상기 스위치(1713)는 상기 변수 노드 복호기(1711)와 가산기(1715)간을 스위칭 오프(switching off)한 후, 상기 변수 노드 복호기(1711)와 경판정기(1729)간을 스위칭 온하여 상기 변수 노드 복호기(1711)에서 출력한 신호가 상기 경판정기(1729)로 출력하도록 한다. 상기 경판정기(1729)는 상기 변수 노드 복호기(1711)에서 출력한 신호를 입력하여 경판정한 후, 그 경판정 결과를 출력하게 되고, 상기 경판정기 (1729)의 출력값이 최종적으로 복호된 값이 되는 것이다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같은 본 발명은 이동 통신 시스템에서 최소 사이클 길이가 최대가 되는 가변 길이 블록 LDPC 부호를 제안함으로써 오류 정정 능력을 최대화시켜 시스템 성능을 향상시킨다는 이점을 가진다. 또한, 본 발명은 효율적인 패리티 검사 행렬을 생성함으로써 가변 길이 블록 LDPC 부호의 부호화 복잡도를 최소화시킨다는 이점을 가진다. 또한 가변 길이 블록 LDPC 부호의 부호화 복잡도를 블록 길이에 비례하게 만들어서 효율적인 부호화가 가능하도록 한다는 이점을 가진다. 특히, 본 발명은 다양한 부호화율에 적용 가능하면서도 다양한 블록 길이를 가지는 블록 LDPC 부호를 생성 가능하게 함으로써 하드웨어 복잡도를 최소화한다는 이점을 가진다.

Claims (57)

  1. 가변 길이를 가지는 블록 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호를 부호화하는 방법에 있어서,
    정보어를 입력받는 과정과,
    상기 정보어를 블록 LDPC 부호로 생성시 적용할 길이에 상응하게 제1패리티 검사 행렬과 제2패리티 검사 행렬중 어느 한 패리티 검사 행렬을 기반으로 하여 부호화함으로써 상기 블록 LDPC 부호로 생성하는 과정을 포함함을 특징으로 하는 상기 방법.
  2. 제1항에 있어서,
    상기 블록 LDPC 부호를 미리 설정되어 있는 변조 방식으로 변조하여 변조 심벌로 생성하는 과정과,
    상기 변조 심벌을 송신하는 과정을 더 포함함을 특징으로 하는 상기 방법.
  3. 제1항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 크기를 가변시킨 패리티 검사 행렬임을 특징으로 하는 상기 방법.
  4. 제3항에 있어서,
    상기 제1패리티 검사 행렬은 미리 설정되어 있는 부호화율과, 상기 블록 LDPC 부호의 길이가 미리 설정된 길이를 가지도록 생성된 패리티 검사 행렬임을 특징으로 하는 상기 방법.
  5. 제4항에 있어서,
    상기 제1패리티 검사 행렬은 미리 설정된 개수의 부분 블록들을 포함하며, 상기 부분 블록들은 미리 결정된 크기를 가짐을 특징으로 하는 상기 방법.
  6. 제5항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 부분 블록들의 크기를 가변시킨 패리티 검사 행렬임을 특징으로 하는 상기 방법.
  7. 제6항에 있어서,
    상기 부분 블록들 각각에는 미리 설정된 순열 행렬이 일대일 대응됨을 특징 으로 하는 상기 방법.
  8. 제7항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 순열 행렬들중 0(zero) 행렬이 아닌 순열 행렬들의 지수와 상기 제2패리티 검사 행렬의 부분 블록들의 크기에 상응하게 상기 제2패리티 검사 행렬의 순열 행렬들중 0 행렬이 아닌 순열 행렬들의 지수가 결정되어 생성된 패리티 검사 행렬임을 특징으로 하는 상기 방법.
  9. 제7항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 순열 행렬들중 0(zero) 행렬이 아닌 L개의 순열 행렬들의 지수가
    Figure 112005022474558-PAT00099
    이고, 상기 제1패리티 검사 행렬의 부분 블록들의 크기가
    Figure 112005022474558-PAT00100
    (Ns)이고, 상기 제2패리티 검사 행렬의 순열 행렬들중 0 행렬이 아닌 L개의 순열 행렬들의 지수가
    Figure 112005022474558-PAT00101
    이고, 상기 제2패리티 검사 행렬의 부분 블록들의 크기가
    Figure 112005022474558-PAT00102
    (Ns')일 경우 하기 수학식 6의 관계를 가짐을 특징으로 하는 상기 방법.
    Figure 112005022474558-PAT00103
    단, 상기 수학식 6에서 mod는 modulo 연산을 나타냄.
  10. 제9항에 있어서,
    상기 정보어를 상기 블록 LDPC 부호로 생성하는 과정은;
    상기 길이에 상응하게 상기 제1패리티 검사 행렬 혹은 제2패리티 검사 행렬을 사용할지를 결정하는 과정과,
    상기 정보어를 상기 결정된 패리티 검사 행렬의 제1부분 행렬과 곱셈하여 제1신호로 생성하는 과정과,
    상기 정보어를 상기 결정된 패리티 검사 행렬의 제2부분 행렬과 곱셈하여 제2신호로 생성하는 과정과,
    상기 제1신호와, 상기 패리티 검사 행렬의 제3부분 행렬과 제4부분 행렬의 역행렬의 행렬곱을 곱셈하여 제3신호로 생성하는 과정과,
    상기 제2신호와 제3신호를 가산하여 제4신호로 생성하는 과정과,
    상기 제4신호와 상기 패리티 검사 행렬의 제5부분 행렬을 곱셈하여 제5신호 로 생성하는 과정과,
    상기 제2신호와 상기 제5신호를 가산하여 제6신호로 생성하는 과정과,
    상기 제6신호와 상기 패리티 검사 행렬의 제4부분 행렬의 역행렬의 행렬곱을 곱셈하여 제7신호로 생성하는 과정과,
    상기 정보어와, 상기 제4신호를 제1패리티로, 상기 제7신호를 제2패리티로 하여 상기 블록 LDPC 부호 포맷에 상응하도록 다중화하여 출력하는 과정을 포함함을 특징으로 하는 상기 방법.
  11. 제10항에 있어서,
    상기 제1부분 행렬 및 제2부분 행렬은 상기 결정된 패리티 검사 행렬에서 정보어와 연관되는 정보 파트에 대응되는 부분 행렬들임을 특징으로 하는 상기 방법.
  12. 제11항에 있어서,
    상기 제3부분 행렬과 제4부분 행렬은 패리티와 연관되는 제1패리티 파트에 대응되는 부분 행렬들이며, 상기 제5부분 행렬과 제6부분 행렬은 상기 패리티와 연관되는 제2패리티 파트에 대응되는 부분 행렬들임을 특징으로 하는 상기 방법.
  13. 제5항에 있어서,
    상기 부호화율이 1/2일 경우 상기 제1패리티 검사 행렬은 하기 표 1과 같이 표현됨을 특징으로 하는 상기 방법.
    Figure 112005022474558-PAT00104
    상기 표 1에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  14. 제5항에 있어서,
    상기 부호화율이 2/3일 경우 상기 제1패리티 검사 행렬은 하기 표 2와 같이 표현됨을 특징으로 하는 상기 방법.
    Figure 112005022474558-PAT00105
    상기 표 2에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  15. 제5항에 있어서,
    상기 부호화율이 3/4일 경우 상기 제1패리티 검사 행렬은 하기 표 3과 같이 표현됨을 특징으로 하는 상기 방법.
    Figure 112005022474558-PAT00106
    상기 표 3에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  16. 제5항에 있어서,
    상기 부호화율이 5/6일 경우 상기 제1패리티 검사 행렬은 하기 표 4과 같이 표현됨을 특징으로 하는 상기 방법.
    Figure 112005022474558-PAT00107
    상기 표 4에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  17. 가변 길이를 가지는 블록 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호를 부호화하는 장치에 있어서,
    정보어를 블록 LDPC 부호로 생성시 적용할 길이에 상응하게 제1패리티 검사 행렬과 제2패리티 검사 행렬중 어느 한 패리티 검사 행렬을 기반으로 하여 부호화함으로써 상기 블록 LDPC 부호로 생성하는 부호화기와,
    상기 블록 LDPC 부호를 미리 설정되어 있는 변조 방식으로 변조하여 변조 심벌로 생성하는 변조기와,
    상기 변조 심벌을 송신하는 송신기 포함함을 특징으로 하는 상기 장치.
  18. 제17항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 크기를 가변시킨 패리티 검사 행렬임을 특징으로 하는 상기 장치.
  19. 제18항에 있어서,
    상기 제1패리티 검사 행렬은 미리 설정되어 있는 부호화율과, 상기 블록 LDPC 부호의 길이가 미리 설정된 길이를 가지도록 생성된 패리티 검사 행렬임을 특징으로 하는 상기 장치.
  20. 제19항에 있어서,
    상기 제1패리티 검사 행렬은 미리 설정된 개수의 부분 블록들을 포함하며, 상기 부분 블록들은 미리 결정된 크기를 가짐을 특징으로 하는 상기 장치.
  21. 제20항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 부분 블록들의 크기를 가변시킨 패리티 검사 행렬임을 특징으로 하는 상기 장치.
  22. 제21항에 있어서,
    상기 부분 블록들 각각에는 미리 설정된 순열 행렬이 일대일 대응됨을 특징으로 하는 상기 장치.
  23. 제22항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 순열 행렬들중 0(zero) 행렬이 아닌 순열 행렬들의 지수와 상기 제2패리티 검사 행렬의 부분 블록들의 크기에 상응하게 상기 제2패리티 검사 행렬의 순열 행렬들중 0 행렬이 아닌 순열 행렬들의 지수가 결정되어 생성된 패리티 검사 행렬임을 특징으로 하는 상기 장치.
  24. 제23항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 순열 행렬들중 0(zero) 행렬이 아닌 L개의 순열 행렬들의 지수가
    Figure 112005022474558-PAT00108
    이고, 상기 제1패리티 검사 행렬의 부분 블록들의 크기가
    Figure 112005022474558-PAT00109
    (Ns)이고, 상기 제2패리티 검사 행렬의 순열 행렬들중 0 행렬이 아닌 L개의 순열 행렬들의 지수가
    Figure 112005022474558-PAT00110
    이고, 상기 제2패리티 검사 행렬의 부분 블록들의 크기가
    Figure 112005022474558-PAT00111
    (Ns')일 경우 하기 수학식 7의 관계를 가짐을 특징으로 하는 상기 장치.
    Figure 112005022474558-PAT00112
    단, 상기 수학식 7에서 mod는 modulo 연산을 나타냄.
  25. 제24항에 있어서,
    상기 부호화기는;
    상기 길이에 상응하게 상기 제1패리티 검사 행렬 혹은 제2패리티 검사 행렬을 사용할지를 결정하는 제어기와,
    상기 정보어를 상기 결정된 패리티 검사 행렬의 제1부분 행렬과 곱셈하는 제1행렬 곱셈기와,
    상기 정보어를 상기 결정된 패리티 검사 행렬의 제2부분 행렬과 곱셈하는 제2행렬 곱셈기와,
    상기 제1행렬 곱셈기에서 출력한 신호와, 상기 패리티 검사 행렬의 제3부분 행렬과 제4부분 행렬의 역행렬의 행렬곱을 곱셈하는 제3행렬 곱셈기와,
    상기 제2행렬 곱셈기에서 출력한 신호와 제3행렬 곱셈기에서 출력한 신호를 가산하는 제1가산기와,
    상기 제1가산기에서 출력한 신호와 상기 패리티 검사 행렬의 제5부분 행렬과 곱셈하는 제4행렬 곱셈기와,
    상기 제2행렬 곱셈기에서 출력한 신호와 상기 제4행렬 곱셈기에서 출력한 신호를 가산하는 제2가산기와,
    상기 제2가산기에서 출력한 신호와 상기 패리티 검사 행렬의 제4부분 행렬의 역행렬의 행렬곱을 곱셈하는 제5행렬 곱셈기와,
    상기 정보어와, 상기 제1가산기의 출력 신호를 제1패리티로, 상기 제5행렬 곱셈기의 출력 신호를 제2패리티로 하여 상기 블록 LDPC 부호 포맷에 상응하도록 다중화하여 출력하는 스위치들을 포함함을 특징으로 하는 상기 장치.
  26. 제25항에 있어서,
    상기 제1부분 행렬 및 제2부분 행렬은 상기 결정된 패리티 검사 행렬에서 정보어와 연관되는 정보 파트에 대응되는 부분 행렬들임을 특징으로 하는 상기 장치.
  27. 제26항에 있어서,
    상기 제3부분 행렬과 제4부분 행렬은 패리티와 연관되는 제1패리티 파트에 대응되는 부분 행렬들이며, 상기 제5부분 행렬과 제6부분 행렬은 상기 패리티와 연관되는 제2패리티 파트에 대응되는 부분 행렬들임을 특징으로 하는 상기 장치.
  28. 제20항에 있어서,
    상기 부호화율이 1/2일 경우 상기 제1패리티 검사 행렬은 하기 표 5과 같이 표현됨을 특징으로 하는 상기 장치.
    Figure 112005022474558-PAT00113
    상기 표 5에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  29. 제20항에 있어서,
    상기 부호화율이 2/3일 경우 상기 제1패리티 검사 행렬은 하기 표 6와 같이 표현됨을 특징으로 하는 상기 장치.
    Figure 112005022474558-PAT00114
    상기 표 6에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  30. 제20항에 있어서,
    상기 부호화율이 3/4일 경우 상기 제1패리티 검사 행렬은 하기 표 7과 같이 표현됨을 특징으로 하는 상기 장치.
    Figure 112005022474558-PAT00115
    상기 표 7에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  31. 제20항에 있어서,
    상기 부호화율이 5/6일 경우 상기 제1패리티 검사 행렬은 하기 표 8과 같이 표현됨을 특징으로 하는 상기 장치.
    Figure 112005022474558-PAT00116
    상기 표 8에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  32. 가변 길이를 가지는 블록 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호를 복호하는 방법에 있어서,
    신호를 수신하는 과정과,
    복호할 블록 LDPC 부호의 길이에 상응하게 제1패리티 검사 행렬 혹은 제2패리티 검사 행렬을 사용할지를 결정하고, 상기 결정된 패리티 검사 행렬에 상응하게 상기 수신 신호를 복호하여 상기 블록 LDPC 부호로 검출하는 과정을 포함함을 특징으로 하는 상기 방법.
  33. 제32항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 크기를 가변시킨 패리티 검사 행렬임을 특징으로 하는 상기 방법.
  34. 제33항에 있어서,
    상기 제1패리티 검사 행렬은 미리 설정되어 있는 부호화율과, 상기 블록 LDPC 부호의 길이가 미리 설정된 길이를 가지도록 생성된 패리티 검사 행렬임을 특징으로 하는 상기 방법.
  35. 제34항에 있어서,
    상기 제1패리티 검사 행렬은 미리 설정된 개수의 부분 블록들을 포함하며, 상기 부분 블록들은 미리 결정된 크기를 가짐을 특징으로 하는 상기 방법.
  36. 제35항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 부분 블록들의 크기를 가변시킨 패리티 검사 행렬임을 특징으로 하는 상기 방법.
  37. 제36항에 있어서,
    상기 부분 블록들 각각에는 미리 설정된 순열 행렬이 일대일 대응됨을 특징으로 하는 상기 방법.
  38. 제37항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 순열 행렬들중 0(zero) 행렬이 아닌 순열 행렬들의 지수와 상기 제2패리티 검사 행렬의 부분 블록들의 크기에 상응하게 상기 제2패리티 검사 행렬의 순열 행렬들중 0 행렬이 아닌 순열 행렬들의 지수가 결정되어 생성된 패리티 검사 행렬임을 특징으로 하는 상기 방법.
  39. 제37항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 순열 행렬들중 0(zero) 행렬이 아닌 L개의 순열 행렬들의 지수가
    Figure 112005022474558-PAT00117
    이고, 상기 제1패리티 검사 행렬의 부분 블록들의 크기가
    Figure 112005022474558-PAT00118
    (Ns)이고, 상기 제2패리티 검사 행렬의 순열 행렬들중 0 행렬이 아닌 L개의 순열 행렬들의 지수가
    Figure 112005022474558-PAT00119
    이고, 상기 제2패리티 검사 행렬의 부분 블록들의 크기가
    Figure 112005022474558-PAT00120
    (Ns')일 경우 하기 수학식 8의 관계를 가짐을 특징으로 하는 상기 방법.
    Figure 112005022474558-PAT00121
    단, 상기 수학식 8에서 mod는 modulo 연산을 나타냄.
  40. 제39항에 있어서,
    상기 결정된 패리티 검사 행렬에 상응하게 상기 수신 신호를 복호하여 상기 블록 LDPC 부호로 검출하는 과정은;
    상기 결정된 패리티 검사 행렬에 상응하게 디인터리빙 방식 및 인터리빙 방식을 결정하는 과정과,
    상기 수신 신호의 확률값들을 검출하는 과정과,
    상기 수신 신호의 확률값들에서 이전 복호시 생성된 신호를 감산하여 제1신호를 생성하는 과정과,
    상기 제1신호를 입력하여 상기 디인터리빙 방식으로 디인터리빙하는 과정과,
    상기 디인터리빙된 신호를 입력하여 확률값들을 검출하는 과정과,
    상기 디인터리빙된 신호의 확률값들에서 상기 디인터리빙된 신호를 감산하여 제2신호를 생성하는 과정과,
    상기 제2신호를 상기 인터리빙 방식으로 인터리빙하고, 상기 인터리빙된 신호를 반복 복호하여 상기 블록 LDPC 부호를 검출하는 과정을 포함함을 특징으로 하는 상기 방법.
  41. 제35항에 있어서,
    상기 부호화율이 1/2일 경우 상기 제1패리티 검사 행렬은 하기 표 9와 같이 표현됨을 특징으로 하는 상기 방법.
    Figure 112005022474558-PAT00122
    상기 표 9에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  42. 제35항에 있어서,
    상기 부호화율이 2/3일 경우 상기 제1패리티 검사 행렬은 하기 표 10과 같이 표현됨을 특징으로 하는 상기 방법.
    Figure 112005022474558-PAT00123
    상기 표 10에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  43. 제35항에 있어서,
    상기 부호화율이 3/4일 경우 상기 제1패리티 검사 행렬은 하기 표 11과 같이 표현됨을 특징으로 하는 상기 방법.
    Figure 112005022474558-PAT00124
    상기 표 11에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  44. 제35항에 있어서,
    상기 부호화율이 5/6일 경우 상기 제1패리티 검사 행렬은 하기 표 12와 같이 표현됨을 특징으로 하는 상기 방법.
    Figure 112005022474558-PAT00125
    상기 표 12에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  45. 가변 길이를 가지는 블록 저밀도 패리티 검사(LDPC: Low Density Parity Check) 부호를 복호하는 장치에 있어서,
    신호를 수신하는 수신기와,
    복호할 블록 LDPC 부호의 길이에 상응하게 제1패리티 검사 행렬 혹은 제2패리티 검사 행렬을 사용할지를 결정하고, 상기 결정된 패리티 검사 행렬에 상응하게 상기 수신 신호를 복호하여 상기 블록 LDPC 부호로 검출하는 복호기를 포함함을 특징으로 하는 상기 장치.
  46. 제45항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 크기를 가변시킨 패리티 검사 행렬임을 특징으로 하는 상기 장치.
  47. 제46항에 있어서,
    상기 제1패리티 검사 행렬은 미리 설정되어 있는 부호화율과, 상기 블록 LDPC 부호의 길이가 미리 설정된 길이를 가지도록 생성된 패리티 검사 행렬임을 특징으로 하는 상기 장치.
  48. 제47항에 있어서,
    상기 제1패리티 검사 행렬은 미리 설정된 개수의 부분 블록들을 포함하며, 상기 부분 블록들은 미리 결정된 크기를 가짐을 특징으로 하는 상기 장치.
  49. 제48항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 부분 블록들의 크기를 가변시킨 패리티 검사 행렬임을 특징으로 하는 상기 장치.
  50. 제49항에 있어서,
    상기 부분 블록들 각각에는 미리 설정된 순열 행렬이 일대일 대응됨을 특징으로 하는 상기 장치.
  51. 제50항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 순열 행렬들중 0(zero) 행렬이 아닌 순열 행렬들의 지수와 상기 제2패리티 검사 행렬의 부분 블록들의 크기에 상응하게 상기 제2패리티 검사 행렬의 순열 행렬들중 0 행렬이 아닌 순열 행렬들의 지수가 결정되어 생성된 패리티 검사 행렬임을 특징으로 하는 상기 장치.
  52. 제51항에 있어서,
    상기 제2패리티 검사 행렬은 상기 제1패리티 검사 행렬의 순열 행렬들중 0(zero) 행렬이 아닌 L개의 순열 행렬들의 지수가
    Figure 112005022474558-PAT00126
    이고, 상기 제1패리티 검사 행렬의 부분 블록들의 크기가
    Figure 112005022474558-PAT00127
    (Ns)이고, 상기 제2패리티 검사 행렬의 순열 행렬들중 0 행렬이 아닌 L개의 순열 행렬들의 지수가
    Figure 112005022474558-PAT00128
    이고, 상기 제2패리티 검사 행렬의 부분 블록들의 크기가
    Figure 112005022474558-PAT00129
    (Ns')일 경우 하기 수학식 9의 관계를 가짐을 특징으로 하는 상기 장치.
    Figure 112005022474558-PAT00130
    단, 상기 수학식 9에서 mod는 modulo 연산을 나타냄.
  53. 제52항에 있어서,
    상기 복호기는;
    상기 복호할 블록 LDPC 부호의 길이에 상응하게 제1패리티 검사 행렬 혹은 제2패리티 검사 행렬을 사용할지를 결정하는 제1제어기와,
    소정 제어에 따라 상기 결정된 패러티 검사 행렬을 구성하는 열들 각각의 웨이트에 상응하게 변수 노드들을 연결하여 수신 신호의 확률값들을 검출하여 출력하는 변수 노드 복호기와,
    상기 변수 노드 복호기에서 출력한 신호에서 이전 복호시 생성된 신호를 감산하여 출력하는 제1가산기와,
    상기 제1가산기에서 출력한 신호를 입력하여 상기 결정된 패리티 검사 행렬에 상응하게 설정된 디인터리빙 방식으로 디인터리빙하여 출력하는 디인터리버와,
    소정 제어에 따라 상기 결정된 패리티 검사 행렬을 구성하는 행들 각각의 웨이트에 상응하게 검사 노드들을 연결하여 상기 디인터리버에서 출력한 신호의 확률값들을 검출하여 출력하는 검사 노드 복호기와,
    상기 검사 노드 복호기에서 출력한 신호에서 상기 디인터리버에서 출력한 신호를 감산하는 제2가산기와,
    상기 제2가산기에서 출력한 신호를 상기 결정된 패리티 검사 행렬에 상응하게 설정된 인터리빙 방식으로 인터리빙하여 상기 변수 노드 복호기 및 상기 제1가산기로 출력하는 인터리버와,
    상기 디인터리빙 방식 및 인터리빙 방식을 상기 결정된 패리티 검사 행렬에 상응하게 제어하는 제2제어기를 포함함을 특징으로 하는 상기 장치.
  54. 제48항에 있어서,
    상기 부호화율이 1/2일 경우 상기 제1패리티 검사 행렬은 하기 표 13과 같이 표현됨을 특징으로 하는 상기 장치.
    Figure 112005022474558-PAT00131
    상기 표 13에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  55. 제48항에 있어서,
    상기 부호화율이 2/3일 경우 상기 제1패리티 검사 행렬은 하기 표 14와 같이 표현됨을 특징으로 하는 상기 장치.
    Figure 112005022474558-PAT00132
    상기 표 14에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  56. 제48항에 있어서,
    상기 부호화율이 3/4일 경우 상기 제1패리티 검사 행렬은 하기 표 15와 같이 표현됨을 특징으로 하는 상기 장치.
    Figure 112005022474558-PAT00133
    상기 표 15에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
  57. 제48항에 있어서,
    상기 부호화율이 5/6일 경우 상기 제1패리티 검사 행렬은 하기 표 16과 같이 표현됨을 특징으로 하는 상기 장치.
    Figure 112005022474558-PAT00134
    상기 표 16에서 각 블록들은 상기 부분 블록들을 나타내며, 숫자들은 해당 순열 행렬들의 지수들을 나타내며, 숫자들이 존재하지 않는 블록들은 0 행렬이 대응되는 부분 블록들을 나타내며, I는 해당 순열 행렬의 지수가 0인 항등 행렬을 나타내는 인덱스임.
KR1020050035720A 2004-04-28 2005-04-28 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법 KR100678176B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020040029738 2004-04-28
KR20040029738 2004-04-28

Publications (2)

Publication Number Publication Date
KR20060045862A true KR20060045862A (ko) 2006-05-17
KR100678176B1 KR100678176B1 (ko) 2007-02-28

Family

ID=34935920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050035720A KR100678176B1 (ko) 2004-04-28 2005-04-28 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법

Country Status (9)

Country Link
US (1) US7747929B2 (ko)
EP (1) EP1592137A1 (ko)
JP (1) JP4555334B2 (ko)
KR (1) KR100678176B1 (ko)
CN (1) CN1947368B (ko)
AU (1) AU2005239263B2 (ko)
CA (1) CA2559818C (ko)
RU (1) RU2341894C2 (ko)
WO (1) WO2005107124A1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009072854A1 (en) * 2007-12-06 2009-06-11 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding channel in a communication system using low-density parity-check codes
KR100987692B1 (ko) * 2006-05-20 2010-10-13 포항공과대학교 산학협력단 통신 시스템에서 신호 송수신 장치 및 방법
RU2446585C2 (ru) * 2007-12-06 2012-03-27 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования и декодирования канала в системе связи с использованием кодов проверок на четность с малой плотностью
KR101502624B1 (ko) * 2007-12-06 2015-03-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호화/복호화 방법 및 장치
KR101503654B1 (ko) * 2008-02-11 2015-03-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치
KR101503655B1 (ko) * 2008-02-26 2015-03-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101008636B1 (ko) 2004-05-04 2011-01-17 엘지전자 주식회사 소프터 핸드오버시에 적용되는 패킷 전송 성공 여부 전송방법
US7171603B2 (en) * 2004-05-06 2007-01-30 Motorola, Inc. Method and apparatus for encoding and decoding data
KR20050118056A (ko) * 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
US7395490B2 (en) 2004-07-21 2008-07-01 Qualcomm Incorporated LDPC decoding methods and apparatus
US7346832B2 (en) * 2004-07-21 2008-03-18 Qualcomm Incorporated LDPC encoding methods and apparatus
EP1626505B1 (en) * 2004-08-10 2011-03-09 Samsung Electronics Co., Ltd. Apparatus and method for encoding and decoding a block low density parity check code
KR100809616B1 (ko) * 2005-10-19 2008-03-05 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
US8271850B2 (en) * 2005-12-29 2012-09-18 Intel Corporation Fast low-density parity-check code encoder
US7493548B2 (en) * 2006-02-06 2009-02-17 Motorola, Inc Method and apparatus for encoding and decoding data
KR100975558B1 (ko) * 2006-05-03 2010-08-13 삼성전자주식회사 통신 시스템에서 신호 송수신 장치 및 방법
US8024639B2 (en) * 2006-06-23 2011-09-20 Schweitzer Engineering Laboratories, Inc. Software and methods to detect and correct data structure
KR100930265B1 (ko) * 2006-11-16 2009-12-09 삼성전자주식회사 광대역 무선접속 통신시스템에서 복호를 위한 장치 및 방법
RU2443053C2 (ru) * 2007-01-24 2012-02-20 Квэлкомм Инкорпорейтед Кодирование и декодирование ldpc пакетов переменных размеров
US20080320374A1 (en) * 2007-06-22 2008-12-25 Legend Silicon Corp. Method and apparatus for decoding a ldpc code
US8473824B1 (en) * 2008-09-08 2013-06-25 Marvell International Ltd. Quasi-cyclic low-density parity-check (QC-LDPC) encoder
US8140944B2 (en) * 2008-01-24 2012-03-20 Texas Instruments Incorporated Interleaver design with unequal error protection for control information
KR101623468B1 (ko) 2008-03-03 2016-05-23 라이 라디오텔레비지오네 이탈리아나 에스.페.아. Ldpc 코딩된 변조 및 qam 성상도들에 대한 비트 치환 패턴들
CN101272150B (zh) 2008-05-14 2010-09-29 中兴通讯股份有限公司 一种低密度生成矩阵码的译码方法及装置
JP5009418B2 (ja) * 2008-06-09 2012-08-22 パイオニア株式会社 検査行列の生成方法及び検査行列、並びに復号装置及び復号方法
JP4563476B2 (ja) * 2008-07-09 2010-10-13 パナソニック株式会社 符号化器、復号化器及び符号化方法
JP4879338B2 (ja) * 2008-07-09 2012-02-22 パナソニック株式会社 符号化方法
CN101686061A (zh) * 2008-09-27 2010-03-31 松下电器产业株式会社 构造低密度奇偶校验码的方法及发送/接收装置和系统
CN101741396B (zh) * 2008-11-19 2013-03-13 华为技术有限公司 可变码长ldpc码编码或译码的方法与装置及编码器和译码器
US8327214B2 (en) 2009-08-26 2012-12-04 Ntt Docomo, Inc. Method and apparatus for the joint design and operation of ARQ protocols with user scheduling for use with multiuser MIMO in the downlink of wireless systems
US8423861B2 (en) * 2009-11-19 2013-04-16 Lsi Corporation Subwords coding using different interleaving schemes
KR101611169B1 (ko) * 2011-01-18 2016-04-11 삼성전자주식회사 통신/방송 시스템에서 데이터 송수신 장치 및 방법
US9203434B1 (en) 2012-03-09 2015-12-01 Western Digital Technologies, Inc. Systems and methods for improved encoding of data in data storage devices
US8605383B1 (en) 2012-05-21 2013-12-10 Western Digital Technologies, Inc. Methods, devices and systems for characterizing polarities of piezoelectric (PZT) elements of a two PZT element microactuator
US8972826B2 (en) 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US8996963B2 (en) 2012-11-13 2015-03-31 Seagate Technology Llc Buffer management using side information
US8910026B2 (en) * 2012-11-13 2014-12-09 Seagate Technology Llc Data decoding using side information
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US9619317B1 (en) 2012-12-18 2017-04-11 Western Digital Technologies, Inc. Decoder having early decoding termination detection
US8966339B1 (en) 2012-12-18 2015-02-24 Western Digital Technologies, Inc. Decoder supporting multiple code rates and code lengths for data storage systems
US9122625B1 (en) 2012-12-18 2015-09-01 Western Digital Technologies, Inc. Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems
US9214963B1 (en) 2012-12-21 2015-12-15 Western Digital Technologies, Inc. Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
US8797664B1 (en) 2012-12-22 2014-08-05 Western Digital Technologies, Inc. Polarity detection of piezoelectric actuator in disk drive
MX338477B (es) * 2013-06-12 2016-04-18 Sony Corp Aparato de procesamiento de datos y metodo de procesamiento de datos.
WO2015045900A1 (ja) * 2013-09-26 2015-04-02 ソニー株式会社 データ処理装置、及びデータ処理方法
US9153283B1 (en) 2014-09-30 2015-10-06 Western Digital Technologies, Inc. Data storage device compensating for hysteretic response of microactuator
KR102254102B1 (ko) * 2015-01-23 2021-05-20 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10784901B2 (en) 2015-11-12 2020-09-22 Qualcomm Incorporated Puncturing for structured low density parity check (LDPC) codes
EP4117209A1 (en) 2015-12-23 2023-01-11 Samsung Electronics Co., Ltd. Apparatus and method for encoding and decoding channel in communication or broadcasting system
KR20170075627A (ko) * 2015-12-23 2017-07-03 삼성전자주식회사 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
US10454499B2 (en) 2016-05-12 2019-10-22 Qualcomm Incorporated Enhanced puncturing and low-density parity-check (LDPC) code structure
US10469104B2 (en) 2016-06-14 2019-11-05 Qualcomm Incorporated Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes
US20180034588A1 (en) * 2016-08-01 2018-02-01 Mediatek Inc. Apparatus and method for data transmission using coded-combining or hybrid-coding
US10243638B2 (en) 2016-10-04 2019-03-26 At&T Intellectual Property I, L.P. Forward error correction code selection in wireless systems
US10270559B2 (en) 2016-10-04 2019-04-23 At&T Intellectual Property I, L.P. Single encoder and decoder for forward error correction coding
KR20180071917A (ko) * 2016-12-20 2018-06-28 삼성전자주식회사 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
US10484010B2 (en) 2016-12-20 2019-11-19 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication or broadcasting system
KR102348466B1 (ko) * 2017-03-30 2022-01-10 삼성전자 주식회사 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
US10484134B2 (en) 2017-03-30 2019-11-19 Samsung Electronics Co., Ltd. Apparatus and method for channel encoding/decoding in communication or broadcasting system
CN110583023B (zh) 2017-05-04 2022-03-01 三星电子株式会社 在通信或广播系统中用于信道编码和解码的方法和设备
US10312939B2 (en) 2017-06-10 2019-06-04 Qualcomm Incorporated Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2007042C1 (ru) 1991-02-22 1994-01-30 Морозов Андрей Константинович Система для кодирования и декодирования с исправлением ошибок
US5721745A (en) 1996-04-19 1998-02-24 General Electric Company Parallel concatenated tail-biting convolutional code and decoder therefor
FR2799592B1 (fr) 1999-10-12 2003-09-26 Thomson Csf Procede de construction et de codage simple et systematique de codes ldpc
DE60040805D1 (de) * 1999-12-20 2008-12-24 Research In Motion Ltd Hybrid-wiederholungsaufforderungsystem und -verfahren
US6539367B1 (en) * 2000-05-26 2003-03-25 Agere Systems Inc. Methods and apparatus for decoding of general codes on probability dependency graphs
KR20030036227A (ko) * 2000-06-16 2003-05-09 어웨어, 인크. Ldpc 코드형 변조를 위한 시스템 및 방법
US7072417B1 (en) * 2000-06-28 2006-07-04 Marvell International Ltd. LDPC encoder and method thereof
US7000177B1 (en) * 2000-06-28 2006-02-14 Marvell International Ltd. Parity check matrix and method of forming thereof
US6633856B2 (en) 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6895547B2 (en) 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
WO2004019268A1 (en) 2002-08-20 2004-03-04 Flarion Technologies, Inc. Methods and apparatus for encoding ldpc codes
CN1185796C (zh) * 2002-11-15 2005-01-19 清华大学 改进的非规则低密度奇偶校验码纠错译码方法
US7702986B2 (en) 2002-11-18 2010-04-20 Qualcomm Incorporated Rate-compatible LDPC codes
US7139959B2 (en) * 2003-03-24 2006-11-21 Texas Instruments Incorporated Layered low density parity check decoding for digital communications
KR100809619B1 (ko) * 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
KR100922956B1 (ko) * 2003-10-14 2009-10-22 삼성전자주식회사 저밀도 패리티 검사 코드의 부호화 방법
KR100523708B1 (ko) * 2003-12-17 2005-10-26 한국전자통신연구원 Ldpc 부호에 사용되는 거스 조건화된 패러티 검사행렬의 형성 방법
US7260763B2 (en) * 2004-03-11 2007-08-21 Nortel Networks Limited Algebraic low-density parity check code design for variable block sizes and code rates
KR20050118056A (ko) * 2004-05-12 2005-12-15 삼성전자주식회사 다양한 부호율을 갖는 Block LDPC 부호를 이용한이동 통신 시스템에서의 채널부호화 복호화 방법 및 장치
US7516391B2 (en) * 2004-08-16 2009-04-07 Samsung Electronics Co., Ltd Apparatus and method for coding/decoding block low density parity check code with variable block length
KR20060016059A (ko) * 2004-08-16 2006-02-21 삼성전자주식회사 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100987692B1 (ko) * 2006-05-20 2010-10-13 포항공과대학교 산학협력단 통신 시스템에서 신호 송수신 장치 및 방법
US7908541B2 (en) 2006-05-20 2011-03-15 Samsung Electronics Co., Ltd Apparatus and method for transmitting/receiving signal in a communication system
WO2009072854A1 (en) * 2007-12-06 2009-06-11 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding channel in a communication system using low-density parity-check codes
RU2446585C2 (ru) * 2007-12-06 2012-03-27 Самсунг Электроникс Ко., Лтд. Способ и устройство для кодирования и декодирования канала в системе связи с использованием кодов проверок на четность с малой плотностью
US8166367B2 (en) 2007-12-06 2012-04-24 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding channel in a communication system using low-density parity-check codes
KR101502624B1 (ko) * 2007-12-06 2015-03-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호화/복호화 방법 및 장치
KR101503653B1 (ko) * 2007-12-06 2015-03-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호화/복호화 방법 및 장치
KR101503654B1 (ko) * 2008-02-11 2015-03-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치
KR101503655B1 (ko) * 2008-02-26 2015-03-17 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치

Also Published As

Publication number Publication date
AU2005239263B2 (en) 2008-12-04
WO2005107124A1 (en) 2005-11-10
RU2006138012A (ru) 2008-05-10
JP2007531455A (ja) 2007-11-01
US20050246617A1 (en) 2005-11-03
KR100678176B1 (ko) 2007-02-28
CA2559818A1 (en) 2005-11-10
JP4555334B2 (ja) 2010-09-29
CN1947368B (zh) 2010-06-16
CN1947368A (zh) 2007-04-11
CA2559818C (en) 2011-11-29
EP1592137A1 (en) 2005-11-02
AU2005239263A1 (en) 2005-11-10
US7747929B2 (en) 2010-06-29
RU2341894C2 (ru) 2008-12-20

Similar Documents

Publication Publication Date Title
KR100678176B1 (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100809616B1 (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100678175B1 (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100713371B1 (ko) 블록 저밀도 패리티 검사 부호 부호화/복호 장치 및 방법
KR100724922B1 (ko) 가변 부호화율을 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR100739510B1 (ko) 반구조적 블록 저밀도 패리티 검사 부호 부호화/복호 장치및 방법
KR101009785B1 (ko) 불균일 반복 축적 부호 부호화/복호화 장치 및 방법
KR100941680B1 (ko) 준순환 저밀도 패리티 검사 부호의 생성 방법 및 장치
KR20070119580A (ko) 통신 시스템에서 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR20060016059A (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법
KR20060016061A (ko) 가변 블록 길이를 가지는 블록 저밀도 패리티 검사 부호부호화/복호 장치 및 방법

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: 20121228

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131230

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141223

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151229

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20171228

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 13