KR102146803B1 - 패리티 검사 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법 - Google Patents
패리티 검사 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법 Download PDFInfo
- Publication number
- KR102146803B1 KR102146803B1 KR1020140058323A KR20140058323A KR102146803B1 KR 102146803 B1 KR102146803 B1 KR 102146803B1 KR 1020140058323 A KR1020140058323 A KR 1020140058323A KR 20140058323 A KR20140058323 A KR 20140058323A KR 102146803 B1 KR102146803 B1 KR 102146803B1
- Authority
- KR
- South Korea
- Prior art keywords
- parity check
- ldpc
- check matrix
- information word
- parity
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/033—Theoretical methods to calculate these checking codes
- H03M13/036—Heuristic code construction methods, i.e. code construction or code search based on using trial-and-error
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1165—QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
- H04L1/0043—Realisations of complexity reduction techniques, e.g. use of look-up tables
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
부호화 장치가 개시된다. 본 부호화 장치는 패리티 검사 행렬에 기초하여 LDPC 부호화를 수행하여 16200 개의 비트로 구성된 LDPC 부호어를 생성하는 LDPC 인코더를 포함하며, 패리티 검사 행렬은, 정보어 부분 행렬과 패리티 부분 행렬을 포함하며, 정보어 부분 행렬은, 각각 360 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 360 번째 열에 존재하는 1 값의 위치를 나타내는 테이블로 정의된다.
Description
본 발명은 패리티 검사 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법에 관한 것으로, 보다 상세하게는 패리티 검사 행렬에 기초하여 LDPC 부호화 및 복호화를 수행하는 패리티 검사 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법에 관한 것이다.
통신/방송 시스템에서, 링크(link) 성능은 채널의 여러 가지 잡음(noise), 페이딩(fading) 현상 및 심벌 간 간섭(ISI : inter-symbol interference)에 의해 현저히 저하될 수 있다. 따라서, 차세대 이동 통신, 디지털 방송 및 휴대 인터넷과 같이 높은 데이터 처리량과 신뢰도를 요구하는 고속 디지털 통신/방송 시스템들을 구현하기 위해서, 잡음, 페이딩 및 심벌 간 간섭을 극복하기 위한 기술을 개발하는 것이 요구된다. 잡음 등을 극복하기 위한 연구의 일환으로서, 최근에는 정보의 왜곡을 효율적으로 복원하여 통신의 신뢰도를 높이기 위한 방법으로서 오류정정부호(error-correcting code)에 대한 연구가 활발히 이루어지고 있다.
1960년대에 Gallager에 의해서 처음 소개된 LDPC(Low Density Parity Check) 부호는 당시 기술 수준에서 구현하기 어려운 복잡도로 인해 오랫동안 잊혀져 왔다. 하지만, 1993년 Berrou와 Glavieux, Thitimajshima에 의해 제안된 터보(turbo) 부호가 셰논(Shannon)의 채널 용량에 근접하는 성능을 보임에 따라, 터보 부호의 성능과 특성에 대한 많은 해석이 이루어지면서 반복 복호(iterative decoding)와 그래프를 기반으로 하는 채널 부호화에 대한 많은 연구가 진행되었다. 이를 계기로 1990년대 후반에 LDPC 부호에 대해 재연구되면서 LDPC 부호에 대응되는 터너(Tanner) 그래프 상에서 합-곱(sum-product) 알고리즘에 기반한 반복 복호(iterative decoding)를 적용하여 복호화를 수행하면 셰논의 채널 용량에 근접하는 성능을 가지게 됨이 밝혀졌다.
LDPC 부호는 일반적으로 패리티 검사 행렬(parity-check matrix)로 정의되며 터너 그래프로 통칭되는 이분(bipartite) 그래프를 이용하여 표현될 수 있다.
이하에서는 도 1을 참조하여 시스테메틱(systematic) LDPC 부호어를 설명하도록 한다. LDPC 부호는 Kldpc 개의 비트 혹은 심벌들로 구성되어 있는 정보어(102)를 입력받아 LDPC 부호화를 하여 Nldpc 개의 비트 혹은 심벌들로 구성되어 있는 부호어(100, codeword)를 생성한다. 이하 설명의 편의를 위해, Kldpc 개의 비트들을 포함하는 정보어(102)를 입력받아 Nldpc 개의 비트들로 구성되는 부호어(100)를 가정한다. 즉, Kldpc 개의 입력 비트들인 정보어 (102)를 LDPC 부호화하면, 부호어 (100)가 생성된다. 즉, 부호어는 다수의 비트로 구성되어 있는 비트열이며, 부호어 비트는 부호어를 구성하는 각각의 비트를 의미한다. 또한, 정보어는 다수의 비트로 구성되어 있는 비트열이며, 정보어 비트는 정보어를 구성하는 각각의 비트를 의미한다. 이때, 시스테메틱 부호인 경우, 부호어 로 구성된다. 여기에서, 는 패리티 비트(104)이고, 패리티 비트의 개수 Nparity는 Nparity=Nldpc-Kldpc이다.
LDPC 부호는 선형 블록 부호(linear block code)의 일종으로 하기의 수학식 1과 같은 조건을 만족하는 부호어를 결정하는 과정을 포함한다.
수학식 1에서, H는 패리티 검사 행렬, c는 부호어, ci는 부호어의 i 번째 비트, Nldpc는 부호어 길이를 의미한다. 그리고, hi는 패리티 검사 행렬 H의 i 번째 열(column)을 의미한다.
패리티 검사 행렬 H는 LDPC 부호어의 비트 개수와 동일한 Nldpc 개의 열들로 구성되어 있다. 수학식 1은 패리티 검사 행렬의 i 번째 열(hi)과 i 번째 부호어 비트 ci의 곱의 합이 '0'이 됨을 의미하므로, i 번째 열(hi)은 i 번째 부호어 비트 ci와 관계가 있음을 의미한다.
한편, 패리티 검사 행렬에 따라 LDPC 부호의 성능이 결정될 수 있다. 그러므로, 우수한 성능을 갖는 LDPC 부호를 위해 상기 패리티 검사 행렬을 설계하는 것이 필요하다.
본 발명은 상술한 필요성에 따른 것으로, LDPC 부호화 및 복호화 성능을 향상시킬 수 있는 패리티 검사 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 부호화 장치는 패리티 검사 행렬에 기초하여 입력 비트들에 대해 LDPC 부호화를 수행하여 16200 개의 비트로 구성된 LDPC 부호어를 생성하는 LDPC 인코더를 포함하며, 상기 패리티 검사 행렬은 정보어 부분 행렬과 패리티 부분 행렬을 포함하며, 상기 정보어 부분 행렬은 각각 360 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 360 번째 열에 존재하는 1 값의 위치를 나타내는 테이블로 정의된다.
여기에서, 상기 LDPC 인코더는 부호율이 7/15인 경우, 표 6과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
또한, 상기 LDPC 인코더는 부호율이 5/15인 경우, 표 10과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
그리고, 상기 LDPC 인코더는 부호율이 9/15인 경우, 표 11과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
또한, 상기 LDPC 인코더는 부호율이 11/15인 경우, 표 13과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
그리고, 상기 LDPC 인코더는 부호율이 13/15인 경우, 표 14와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
한편, 본 발명의 일 실시 예에 따른 부호화 방법은 패리티 검사 행렬에 기초하여 입력 비트들에 대해 LDPC 부호화를 수행하여 16200 개의 비트로 구성된 LDPC 부호어를 생성하는 단계를 포함하며, 상기 패리티 검사 행렬은 정보어 부분 행렬과 패리티 부분 행렬을 포함하며, 상기 정보어 부분 행렬은 각각 360 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 360 번째 열에 존재하는 1 값의 위치를 나타내는 테이블로 정의될 수 있다.
여기에서, 상기 LDPC 부호어를 생성하는 단계는 부호율이 7/15인 경우, 표 6과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
또한, 상기 LDPC 부호어를 생성하는 단계는 부호율이 5/15인 경우, 표 10과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
그리고, 상기 LDPC 부호어를 생성하는 단계는 부호율이 9/15인 경우, 표 11과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
또한, 상기 LDPC 부호어를 생성하는 단계는 부호율이 11/15인 경우, 표 13과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
그리고, 상기 LDPC 부호어를 생성하는 단계는 부호율이 13/15인 경우, 표 14와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
한편, 본 발명의 일 실시 예에 따른 복호화 장치는 패리티 검사 행렬에 기초하여 16200 개의 비트로 구성된 LDPC 부호어에 대해 LDPC 복호화를 수행하는 LDPC 디코더를 포함하며, 상기 패리티 검사 행렬은 정보어 부분 행렬과 패리티 부분 행렬을 포함하며, 상기 정보어 부분 행렬은 각각 360 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 360 번째 열에 존재하는 1 값의 위치를 나타내는 테이블로 정의될 수 있다.
여기에서, 상기 LDPC 디코더는 부호율이 7/15인 경우, 표 6과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
또한, 상기 LDPC 디코더는 부호율이 5/15인 경우, 표 10과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
그리고, 상기 LDPC 디코더는 부호율이 9/15인 경우, 표 11과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
또한, 상기 LDPC 디코더는 부호율이 11/15인 경우, 표 13과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
그리고, 상기 LDPC 디코더는 부호율이 13/15인 경우, 표 14와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다
한편, 본 발명의 일 실시 예에 따른 복호화 방법은 패리티 검사 행렬에 기초하여 16200 개의 비트로 구성된 LDPC 부호어에 대해 LDPC 복호화를 수행하는 단계를 포함하며, 상기 패리티 검사 행렬은 정보어 부분 행렬과 패리티 부분 행렬을 포함하며, 상기 정보어 부분 행렬은 각각 360 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 360 번째 열에 존재하는 1 값의 위치를 나타내는 테이블로 정의될 수 있다.
여기에서, 상기 LDPC 복호화를 수행하는 단계는 부호율이 7/15인 경우, 표 6과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
또한, 상기 LDPC 복호화를 수행하는 단계는 부호율이 5/15인 경우, 표 10과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
그리고, 상기 LDPC 복호화를 수행하는 단계는 부호율이 9/15인 경우, 표 11과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
또한, 상기 LDPC 복호화를 수행하는 단계는 부호율이 11/15인 경우, 표 13과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
그리고, 상기 LDPC 복호화를 수행하는 단계는 부호율이 13/15인 경우, 표 14와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
이상과 같은 본 발명의 다양한 실시 예에 따르면 LDPC 부호화 및 복호화 성능이 향상될 수 있다.
도 1은 시스테메틱 LDPC 부호의 부호어를 도시한 도면,
도 2는 일반적인 (8,2,4) LDPC 부호의 패리티 검사 행렬과 팩터 그래프를 도시한 도면,
도 3은 본 발명의 일 실시 예에 따른 패리티 검사 행렬을 도시한 도면,
도 4는 LDPC 복호화에 이용되는 검사 노드와 변수 노드를 도시한 도면,
도 5는 본 발명의 일 실시 예에 따른 부호화 장치의 구성을 설명하기 위한 블록도,
도 6은 본 발명의 일 실시 예에 따른 송신 장치의 구성을 설명하기 위한 블록도,
도 7은 본 발명의 일 실시 예에 따른 복호화 장치의 구성을 설명하기 위한 블록도,
도 8은 본 발명의 일 실시 예에 따른 복호화 장치를 설명하기 위한 블록도,
도 9는 본 발명의 일 실시 예에 따른 수신 장치의 구성을 설명하기 위한 블록도,
도 10은 본 발명의 일 실시 예에 따른 부호화 방법을 설명하기 위한 흐름도, 그리고,
도 11은 본 발명의 일 실시 예에 따른 복호화 방법을 설명하기 위한 흐름도이다.
도 2는 일반적인 (8,2,4) LDPC 부호의 패리티 검사 행렬과 팩터 그래프를 도시한 도면,
도 3은 본 발명의 일 실시 예에 따른 패리티 검사 행렬을 도시한 도면,
도 4는 LDPC 복호화에 이용되는 검사 노드와 변수 노드를 도시한 도면,
도 5는 본 발명의 일 실시 예에 따른 부호화 장치의 구성을 설명하기 위한 블록도,
도 6은 본 발명의 일 실시 예에 따른 송신 장치의 구성을 설명하기 위한 블록도,
도 7은 본 발명의 일 실시 예에 따른 복호화 장치의 구성을 설명하기 위한 블록도,
도 8은 본 발명의 일 실시 예에 따른 복호화 장치를 설명하기 위한 블록도,
도 9는 본 발명의 일 실시 예에 따른 수신 장치의 구성을 설명하기 위한 블록도,
도 10은 본 발명의 일 실시 예에 따른 부호화 방법을 설명하기 위한 흐름도, 그리고,
도 11은 본 발명의 일 실시 예에 따른 복호화 방법을 설명하기 위한 흐름도이다.
이하에서는, 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우, 그 상세한 설명은 생략한다.
이하 본 발명은 통신/방송 시스템에서 LDPC 부호화 및 복호화 기술에 대하여 설명한다.
이하, 본 발명은 유럽 디지털 방송 표준(standard)의 하나인 DVB-T2(Digital Video Broadcasting the 2nd Generation Terrestrial) 시스템 및 표준 제정 중인 북미 디지털 방송 표준 시스템 ATSC 3.0(Advanced Television Systems Committee) 에서 정의하고 있는 용어 및 명칭들을 사용한다. 하지만, 본 발명이 상기 용어 및 명칭들에 의해 한정되는 것은 아니며, 다른 시스템에도 동일하게 적용될 수 있다.
도 2를 참조하여 LDPC 부호의 그래프 표현 방법에 대해 설명하기로 한다.
도 2는 4 개의 행(row)과 8 개의 열(column)로 이루어진 LDPC 부호의 패리티 검사 행렬 H1의 일 예와 이를 터너 그래프(tanner graph)로 도시한 도면이다. 도 2를 참조하면, 패리티 검사 행렬 H1은 열이 8개 있기 때문에 길이가 8인 부호어(codeword)를 생성하며, H1을 통해 생성된 부호는 LDPC 부호를 의미하며, 각 열은 부호화된 8 비트와 대응된다.
도 2를 참조하면, 패리티 검사 행렬 H1을 기반으로 부호화 및 복호화하는 LDPC 부호의 터너 그래프는 8개의 변수 노드(variable node)들 즉, x1(202), x2(204), x3(206), x4(208), x5(210), x6(212), x7(214), x8(216)과 4개의 검사 노드(check node)(218, 220, 222, 224)들로 구성되어 있다. 여기서, LDPC 부호의 패리티 검사 행렬 H1의 i 번째 열과 j 번째 행은 각각 변수 노드 xi와 j 번째 검사 노드에 대응된다. 또한, LDPC 부호의 패리티 검사 행렬 H1의 j 번째 열과 j 번째 행이 교차하는 지점의 1의 값, 즉 0이 아닌 값의 의미는, 도 2와 같이 터너 그래프 상에서 변수 노드 xi와 j번째 검사 노드를 연결하는 선분(edge)이 존재함을 의미한다.
LDPC 부호의 터너 그래프에서 변수 노드 및 검사 노드의 차수(degree)는 각 노드들에 연결되어 있는 선분의 개수를 의미하며, 이는 LDPC 부호의 패리티 검사 행렬에서 해당 노드에 대응되는 열 또는 행에서 0이 아닌 원소(entry)들의 개수와 동일하다. 예를 들어, 도 2에서 변수 노드들 x1(202), x2(204), x3(206), x4(208), x5(210), x6(212), x7(214), x8(216)의 차수는 각각 순서대로 4, 3, 3, 3, 2, 2, 2, 2가 되며, 검사 노드들(218, 220, 222, 224)의 차수는 각각 순서대로 6, 5, 5, 5가 된다. 또한, 도 2의 변수 노드들에 대응되는 도 2의 패리티 검사 행렬 H1의 각각의 열에서 0이 아닌 원소들의 개수는 상술한 차수들 4, 3, 3, 3, 2, 2, 2, 2와 순서대로 일치하며, 도 2의 검사 노드들에 대응되는 도 2의 패리티 검사 행렬 H1의 각각의 행에서 0이 아닌 원소들의 개수는 상술한 차수들 6, 5, 5, 5와 순서대로 일치한다.
상술한 바와 같이, LDPC 부호어의 i 번째 비트인 ci는 패리티 검사 행렬의 i 번째 열(column)과 관계가 있으며 터너 그래프의 i 번째 변수 노드와 대응된다. 그러므로, i 번째 비트의 성능은 패리티 검사 행렬의 i 번째 열(column)의 1의 위치 및 개수에 따라 결정될 수 있다. 그러므로, 부호어의 Nldpc 개의 부호어 비트들의 성능은 패리티 검사 행렬의 1의 위치 및 개수에 의해 성능이 좌우된다.
이하에서는 특정한 구조를 가지는 LDPC 부호의 패리티 검사 행렬이 가지는 특성을 도 3을 참조하여 설명하기로 한다.
본 발명은 도 3에 도시된 바와 같은 구조의 패리티 검사 행렬을 고려한다. 도 3에 도시된 패리티 검사 행렬은 부호어가 정보어를 그대로 포함하는 시스테메틱(systematic) 구조이다. 이하, 본 발명은 도 3의 패리티 검사 행렬을 기반으로 설명하나, 본 발명이 적용 가능한 범위가 도 3과 같은 패리티 검사 행렬에 제한되는 것은 아니다.
도 3에서, Nldpc는 LDPC 부호어의 길이, Kldpc는 정보어의 길이를 의미한다. 부호어 또는 정보어의 길이는 부호어 또는 정보어에 포함되는 비트들의 개수를 의미한다. M은 정보어에 대응되는 부분 행렬(310)(이하, 정보어 부분 행렬이라 함)에서 열의 패턴이 반복되는 간격, Qldpc는 정보어 부분 행렬(310)에서 각 열이 시클릭 쉬프트(cyclic shift)되는 크기로서, 정수 M 및 Qldpc의 값은 Qldpc=(Nldpc-Kldpc)/M 이 성립하도록 결정된다. 이때, Kldpc/M도 정수가 된다. M 및 Qldpc의 구체적인 값은 부호어 길이와 부호율(또는, 코딩 레이트)에 따라 달라질 수 있다.
도 3을 참고하면, 패리티 검사 행렬(300)은 정보어 부분 행렬(310) 및 패리티에 대응되는 부분 행렬(320)(이하, 패리티 부분 행렬이라 함)로 구분된다. 정보어 부분 행렬(310)은 Kldpc 개의 열(column)들을 포함하고, 패리티 부분 행렬(320)은 Nparity=Nldpc-Kldpc 개의 열들을 포함한다. 패리티 검사 행렬(300)의 행(row)의 개수는 패리티 부분 행렬(320)의 열의 개수 Nldpc-Kldpc와 동일하다.
패리티 검사 행렬(300)의 Kldpc 번째 열(column)부터 Nldpc-1 번째 열을 포함하는 패리티 부분 행렬(320)에서, 무게-1(weight-1), 즉, 1 값을 가지는 원소들의 위치는 이중 대각(dual diagonal) 구조를 가진다. 따라서, 패리티 부분 행렬(320)에 포함되는 열들 중, Nldpc-1 번째 열을 제외한 나머지 열들의 차수(degree)(여기에서, 차수는 각 열에 포함된 1의 개수이다)는 모두 2이며, Nldpc-1 번째 열의 차수는 1이다.
도 3을 참고하면, 패리티 검사 행렬(300)에서 정보어 부분 행렬(310), 즉, 0 번째 열부터 Kldpc-1 번째 열을 포함하는 부분 행렬의 구조는 다음과 같은 규칙에 따른다.
첫째, 패리티 검사 행렬(300)에서 정보어에 대응되는 Kldpc 개의 열들은 M 개씩 동일 그룹에 속하며, 총 Kldpc/M 개의 열 그룹(column group)들로 구분된다. 동일한 열 그룹 내에 속한 열들은 서로 Qldpc만큼 쉬프트된 관계를 가진다.
둘째, i번째(i=0,1,..,Kldpc/M-1) 열 그룹의 0 번째 열의 차수를 Di라 하고, 1이 있는 각 행(row)의 위치를 이라 하면, i 번째 열 그룹 내의 j 번째 열에서 무게-1이 위치한 행의 인덱스 는 하기의 수학식 2와 같이 결정된다.
여기에서, k=0,1,2,...,Di-1, i=0,1,...,Kldpc/M-1, j=1,2,...,M-1이다.
한편, 수학식 2는 하기의 수학식 3과 같이 동일하게 표현될 수 있다.
여기에서, k=0,1,2,...,Di-1, i=0,1,...,Kldpc/M-1, j=1,2,...,M-1이다.
이들 수학식에서, 는 i 번째 열 그룹 내의 j 번째 열에서 k 번째 무게-1이 있는 행의 인덱스, Nldpc는 LDPC 부호어의 길이, Kldpc는 정보어의 길이, Di는 i 번째 열 그룹에 속하는 열들의 차수, M은 하나의 열 그룹에 속하는 열 개수를 의미한다.
이들 수학식에 의하면, 값만을 알면 i 번째 열 그룹 내의 k 번째 무게-1이 있는 행의 인덱스를 알 수 있음이 나타난다. 그러므로, 각각의 열 그룹 내의 0 번째 열에서 k 번째 무게-1이 있는 행의 인덱스 값을 저장하면, 도 3의 구조를 갖는 패리티 검사 행렬(300)(즉, 패리티 검사 행렬(300)의 정보어 부분 행렬(310))에서 무게-1이 있는 열과 행의 위치가 파악될 수 있다.
상술한 규칙들에 따르면, i 번째 열 그룹에 속하는 열들의 차수는 모두 Di로 동일하다. 한편, 상술한 규칙들에 따라 패리티 검사 행렬(300)에 대한 정보를 저장하고 있는 LDPC 부호는 다음과 같이 간략하게 표현될 수 있다.
구체적인 예로서, Nldpc가 30, Kldpc가 15, Qldpc가 3인 경우, 3 개의 열 그룹의 0 번째 열에서 무게-1이 위치한 행의 위치 정보는 하기의 수학식 4와 같은 수열들로 표현될 수 있다. 하기의 수학식 4와 같은 수열들은 '무게-1 위치 수열(weight-1 position sequence)'이라 지칭될 수 있다.
한편, 각 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스를 나타내는 수학식 4와 같은 무게-1 위치 수열들은 하기의 표 1과 같이 보다 간략하게 표현될 수 있다.
표 1은 패리티 검사 행렬에서 무게-1, 다시 말해, 1 값을 가지는 원소의 위치를 나타낸 것으로서, i 번째 무게-1 위치 수열은 i 번째 열 그룹에 속한 0 번째 열에서 무게-1이 있는 행의 인덱스들로 표현된다.
본 발명에서 제안하고자 하는 LDPC 부호는 상술한 것과 같이 패리티 검사 행렬에서 M 개의 열 단위로 그룹화되어 특정 형태를 가짐을 특징으로 한다. 패리티 검사 행렬(300)에서 M 개의 열로 이루어진 1 개의 열 그룹은 도 3의 부호어(330)에서 정보어에 해당하는 부분을 M 개의 비트 그룹(bit group)으로 그룹화한 것(340)과 일대일 대응된다. 다시 말해, 본 발명에서 사용하는 열 그룹이라는 명칭은 패리티 검사 행렬에 대해 그룹핑을 했음을 의미하며, 비트 그룹이라는 명칭은 부호어에 대해 그룹핑을 했음을 의미한다. 또한, 열 그룹과 비트 그룹은 일대일 대응 관계에 있음에 유의한다.
LDPC 부호는 패리티 검사 행렬을 구성하는 무게-1의 위치와 개수에 따라 성능이 달라질 수 있다. 다시 말해, 주어진 부호어 길이 및 부호율 등에 대해 패리티 검사 행렬의 크기가 정해져 있다고 할 때, 패리티 검사 행렬을 구성하는 무게-1의 위치와 개수에 따라서 LDPC 부호의 성능은 서로 다를 수 있다. 또한, 무게-1의 개수는 LDPC 부호의 부호화 및 복호화 복잡도와도 밀접한 관련이 있다.
따라서 주어진 부호어 길이 및 부호율 등에 대해 패리티 검사 행렬의 크기가 정해져 있을 경우에 적절한 무게-1의 개수와 위치를 결정하는 것은 우수한 LDPC 부호를 설계하는데 핵심적인 과정이다.
본 발명에서는 도 3과 같이 M 개의 열 단위로 그룹화된 특징을 가지는 LDPC 부호의 설계 방법을 제안하고, 이러한 방법을 통해 설계된 LDPC 부호를 사용하는 부호화 및 복호화 장치를 제안하고자 한다.
아래는 본 발명에서 제안하는 부호의 설계 방법에 대한 과정을 개념적이고 순차적으로 나타난 것이다.
단계 1) 설계하고자 하는 패리티 검사 행렬의 크기 (Nldpc, Kldpc), M(또는 Qldpc) 값을 결정한다. 패리티 검사 행렬은 Nldpc 개의 열과 Nldpc-Kldpc 개의 행으로 이루어져야 함을 의미한다. 또한, 설계하고자 하는 패리티 검사 행렬 구조는 도 3의 패리티 검사 행렬(300)과 동일한 구조를 가지고 있어야 함에 유의한다. 즉, 도 3의 패리티 검사 행렬(300)처럼 (Nldpc-Kldpc-1) 개의 열은 차수가 2이고, 1 개의 열은 차수가 1인 계단형(staircase) 구조를 가진다.
단계 2) 단계 1에서 결정한 크기의 패리티 검사 행렬을 설계하기 위한 모행렬(mother matrix)(또는, 모 패리티 검사 행렬(mother parity-check matrix))의 크기 및 구조를 설정한다. 모행렬의 크기는 Nldpc/M 개의 열과 (Nldpc-Kldpc)/M 개의 행으로 이루어져 있으며, 패리티 부분은 도 3의 패리티 검사 행렬(300)과 동일한 구조를 가지고 있다. 즉, 도 3의 패리티 검사 행렬(300)과 같이 (Nldpc-Kldpc)/M-1 개의 열은 차수가 2이고 1개의 열은 차수가 1인 계단형(staircase) 구조를 가진다.
단계 3) 모행렬의 설계를 위해 적절한 차수 분포를 구한다. 차수 분포를 구하는 대표적인 방법은 Density Evolution(reference: Richardson, T., and URBANKE, R.: 'The capacity of low-density parity-check codes under message-passing decoding', IEEE Trans. Inf. Theory, 2001, 47, (2), pp. 599-618)을 이용할 수 있다. 차수 분포를 구할 때, 차수가 2인 열의 개수는 (Nldpc-Kldpc)/M-1 개, 차수가 1인 열의 개수는 1 개로 고정되어 있음에 유의한다.
단계 4) 단계 3에서 구한 차수 분포를 만족하도록 모행렬을 설계한다. 모 행렬을 설계하는 방법은 낮은 차수 순서대로 사이클 특성을 고려하여 설계한다.
단계 5) 모행렬로부터 최종적인 패리티 검사 행렬을 설계한다. 최종적인 패리티 검사 행렬을 설계하는 방법은 모행렬로부터 사이클 특성을 고려한 리프팅(liting)이라는 방법을 적용한다.
이하에서는 단계 5)에서 기술한 리프팅에서 대해 보다 구체적으로 설명하도록 한다.
리프팅은 작은 크기의 패리티 검사 행렬에 기초하여 그 보다 큰 크기의 패리티 검사 행렬을 비교적 간단하게 생성할 수 있는 방법이다. 예를 들어, M1 개의 열 단위로 열 그룹을 이루고 있으며, 총 열의 개수가 N1, 행의 개수가 N1-K1인 패리티 검사 행렬 H1이 주어져 있을 때, 리프트 방식을 통해 M2 개의 열 단위로 열 그룹을 이루고 있으며, 총 열의 개수가 N2, 행의 개수가 N2-K2인 패리티 검사 행렬 H2를 얻을 수 있다.
여기에서, N2/N1=(N2-K2)/(N1-K1)=M2/M1=A (A는 1보다 큰 양의 정수)인 관계에 있다. 이때, Qldpc1=(N1-K1)/M1=(N2-K2)/M2=Qldpc2의 특징이 있음에 유의한다.
이하에서는, 도 3의 구조를 유지하면서 리프팅을 적용하여 주어진 패리티 검사 행렬 H1으로부터 H1보다 큰 패리티 검사 행렬 H2를 생성하는 과정을 살펴보도록 한다.
리프팅 과정을 설명하기 위해 주어진 패리티 검사 행렬 H1의 정보어 비트에 대응되는 i 번째 열 그룹의 정보를 나타내는 수열이 와 같다고 가정한다. 여기서, i=0,1,..,K1/M1-1이며, Di는 i 번째 열 그룹에 속하는 열들의 차수를 의미한다.
리프팅 단계 1) 도 3의 패리티 부분에 대응되는 부분 행렬과 동일한 구조를 갖는 (N2-K2)×(N2-K2) 크기의 행렬을 H2의 패리티 부분에 대응되는 패리티 부분 행렬로 설정한다.
단계 2) i=0으로 초기화한다.
단계 3) 패리티 검사 행렬 H1에 대해 정보어 비트에 대응되는 i 번째 열 그룹의 정보를 나타내는 수열 (k=0,1,2,..,Di-1) 각각에 대해서 다음 같이 A개의 수열들로 이루어진 집합 을 정의한다. 여기서, A는 N2/N1=(N2-K2)/(N1-K1)=M2/M1=A을 만족하는 양의 정수이다.
단계 4) 설계하고자 하는 패리티 검사 행렬 H2에 대해 (i+1) 번째 열 그룹부터 (N2-K2)/M2-1 번째 열 그룹에 해당하는 정보어 열 그룹은 없다고 가정하고, 아래 <조건 1> 및 <조건 2>를 만족하는 수열 (k=0,1,2,..,Di-1)을 순차적으로 구한다.
<조건 2> : <조건 1>을 만족하는 수열들 중에서 Tanner 그래프 상에서 girth의 값은 최대이며, 해당 girth를 갖는 사이클의 개수가 최소가 되는 수열. 여기에서, girth란 Tanner 그래프 상에서 존재하는 사이클 중에서 가장 짧은 사이클의 길이를 의미한다. 단, 가장 좋은 경우가 여러 경우일 때는 그 중 하나를 임의로 선택한다.
단계 5) i=1,2,...,(N2-K2)/M2-1에 대해 상기 단계 3과 단계 4의 과정을 계속 반복한다.
상기와 같은 리프팅 방법을 이용하면, Nldpc/M 개의 열과 (Nldpc- Kldpc)/M 개의 행으로 이루어져 있으며 패리티 부분은 도 3의 패리티 검사 행렬(300)과 동일한 구조를 가지고 있는 모 패리티 검사 행렬로부터 Nldpc 개의 열과 (Nldpc-Kldpc) 개의 행으로 이루어져 있으며 패리티 부분은 도 3의 패리티 검사 행렬(300)과 동일한 구조를 가지고 있는 패리티 검사 행렬을 설계하는 것이 비교적 간단해 질 수 있다.
만일, 주어진 모 패리티 검사 행렬에 대해서 리프팅을 1번 적용하여 패리티 검사 행렬을 설계하고자 하면, 모 행렬의 열과 행의 개수는 모두 최종적으로 설계하고자 하는 패리티 검사 행렬의 크기에 비해 각각 1/M이기 때문에, 리프팅 과정에서 구하고자 하는 수열을 구성하는 각각의 수 의 선택에 대한 가능한 가지 수는 총 M가지가 된다. 이와 같이 정보어 비트에 대응되는 열 그룹을 나타내는 모든 각각의 수에 대해 모두 M 가지의 선택이 존재하는 경우는 M이 비교적 큰 숫자일 경우에 너무 많은 가지 수로 인해 설계가 쉽지 않은 단점이 있다.
하지만, 만일 주어진 모 행렬에 대해서 리프팅을 여러 단계로 나누어 적용하여 패리티 검사 행렬을 설계할 경우에는 보다 쉽게 설계가 가능하다. 예를 들어 모 패리티 검사 행렬을 H1이라 하고, 최종적으로 설계하고자 하는 패리티 검사 행렬을 H라 할 때, 리프팅을 H1 → H2 → … → Hw → H 와 같이 w 단계를 거쳐서 설계했다고 가정하자.
여기에서, 각 패리티 검사 행렬 Hi를 구성하고 있는 열 그룹의 크기를 Mi라 하면, 리프팅 과정의 가정에 의해서 M2=A1×M1, M3=A2×M2,..., Mw=A(w-1)×M(w-1), M=Aw×Mw와 같은 관계가 있음을 알 수 있다. 단, Ai은 1보다 큰 양의 정수이다(i=1,2,...,w). 또한, 상술한 식을 정리하면 M=M1×A1×A2×...×Aw 임을 쉽게 확인할 수 있다.
정리하면, 각 i 번째 리프팅 과정에서 정보어 비트의 열 그룹을 나타내는 수열의 각 숫자를 선택할 수 있는 가능한 가지 수는 Ai 개이므로, H1에서 H를 설계하기 하기 위해 w 번의 리프팅을 적용하게 되면, 총 가능한 선택의 가지 수가 (A1+A2+...+Aw)가 됨을 쉽게 알 수 있다. 이는 리프팅을 1번만 적용할 경우에 M 가지의 선택, 즉, A1×A2×...×Aw 개의 선택의 가지 수가 있는 것에 비해 크게 줄어드는 효과가 있다. 이는 리프팅 적용 단계가 많을수록 더욱 효율적임을 알 수 있다.
하지만, 너무 많은 리프팅을 적용할 경우에는 선택의 가지 수가 너무 줄어들게 되어 좋은 사이클 특성을 가지는 열 그룹의 수열을 구하는 것이 어려워진다. 따라서 리프팅 단계는 설계하고자 하는 부호에 따라서 적절히 선택할 수 있다.
상술한 방법에 의해 설계한 결과의 일 예로, 부호어 길이 Nldpc가 16200, 부호율이 7/15, M이 360인 경우(또는, Qldpc=24), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 2와 같다..
다른 예로, 부호어 길이 Nldpc가 16200, 부호율이 9/15, M이 360인 경우(또는, Qldpc=18), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 3과 같다.
또 다른 예로, 부호어 길이 Nldpc가 16200, 부호율이 11/15, M이 360인 경우(또는, Qldpc=12), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 4와 같다.
또 다른 일 예로, 부호어 길이 Nldpc가 16200, 부호율이 13/15, M이 360인 경우(또는, Qldpc=6), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 5와 같다.
한편, 부호의 설계 과정에서 단계 5)의 과정은 사이클 특성을 고려한 리프팅이라는 방법을 적용하였는데, 만일 사이클 특성뿐만 아니라 다양한 대수적 특성을 추가로 고려하면 더 좋은 성능을 가지는 부호를 설계할 수도 있다.
통상적으로 LDPC 부호의 성능은 사이클 특성뿐만 아니라 차수 분포(degree distribution)도 영향을 주기 때문에, 두 특성을 동시에 고려하여 더 좋은 성능을 가지는 부호를 설계할 수 있다.
본 발명에서는 가장 짧은 길이를 가지는 사이클과 이러한 사이클들에 포함되는 특정 차수를 가지는 변수 노드의 개수에 따라 파라미터를 결정하고, 파라미터를 통해 결정되는 규칙에 따라 리프트 단계 4)에서 수열을 결정하는 과정에 적용되는 방법을 제안한다.
본 발명의 예로서, 리프팅 단계 4)의 <조건 2>를 다음 <조건 2'>, <조건 3>과 같이 변경한다.
<조건 2'> : <조건 1>을 만족하는 수열들 중에서, 다음 <조건 3>을 만족하는 사이클들에 대해 girth는 최대이고, 해당 girth 값을 가지는 사이클의 개수가 최소가 되도록 만드는 수열.
<조건 3> : 차수가 A, B인 열 그룹에 대해 리프팅 과정을 적용할 경우에 고려하는 사이클들은
- 차수가 A인 열 그룹의 리프팅을 진행하는 과정에서 사이클에 포함되는 변수 노드 중 차수가 A인 변수 노드의 개수는 x1 개 이하이며,
- 차수가 B인 열 그룹의 리프팅을 진행하는 과정에서 사이클에 포함되는 변수 노드에 대해서 (차수가 A인 변수 노드의 개수 + 차수가 B인 변수 노드의 개수 × C)의 값이 x2 이하인 사이클만 고려한다.
단, 차수가 A 및 B가 아닌 열 그룹에 대해서 리프팅 과정을 적용할 경우에는 모든 사이클을 고려한다.
여기서, A는 2 이상인 양의 정수(positive integer), B는 A보다 크고 패리티 검사 행렬의 최대 차수(maximum degree) 보다는 작은 양의 정수이며, C는 무게 계수(weighting factor)로서 양의 정수 값을 가진다.
또한, 차수가 A 및 B가 아닌 열 그룹에 대해서 리프팅 과정을 적용할 경우에는 특정 사이클에 대한 구분 없이 모든 사이클을 고려한다.
구체적인 실시 예를 들면, A=3, B=4, C=2인 경우는 다음과 같다.
예를 들면, 리프팅 과정에서 차수가 3인 열 그룹들의 리프팅을 진행하는 과정에서 사이클에 포함되는 변수 노드 중 차수가 3인 변수 노드(열과 동치)가 x1 개 이하이며, 차수가 4인 열 그룹들의 리프팅을 진행하는 과정에서 사이클에 포함되는 변수 노드 중 (차수가 4인 변수 노드의 개수 × 2 + 차수가 3인 변수 노드의 개수)가 x2 이하인 사이클만을 고려하여 리프팅을 진행한다.
통상적으로 단순 리프팅은 사이클의 개수가 줄어들도록 패리티 검사 행렬을 설계하는데, 이러한 과정에서는 상술한 조건을 만족하는 사이클의 개수가 줄어들도록 패리티 검사 행렬을 설계한다.
상술한 조건이 더 좋은 성능을 가지는 LDPC 부호를 설계하는데 영향을 주는 이유는 LDPC 부호는 사이클의 영향뿐만 아니라 차수 분포에도 영향을 받는데 상술한 조건은 사이클과 차수 분포를 고려하였기 때문이다.
이러한 추가 조건을 고려하여 설계한 LDPC 부호의 일 예를 하기의 표 6 내지 표 15에 나타내었다.
참고로, 표 6에서 고려한 x1, x2 값은 (x1, x2)=(4, 5), 표 7에서 고려한 x1, x2 값은 (x1, x2)=(4, 5), 표 8에서 고려한 x1, x2 값은 (x1, x2)=(3, 4), 표 9에서 고려한 x1, x2 값은 (x1, x2) = (3, 4)이다.
또한, 표 10에서 고려한 x1, x2 값은 (x1, x2)=(5, 5), 표 11, 표 12 및 표 13에서 고려한 x1, x2 값은 (x1, x2)=(4, 4), 표 14 및 표 15에서 고려한 x1, x2 값은 (x1, x2)=(3, 4)이다.
표 6 내지 표 15를 참조하면, 동일한 x1, x2 값에 대해 서로 다른 LDPC 부호들이 설계될 수 있음을 알 수 있다. 이는 리프팅 과정에서 수열을 선택하는 함에 있어 복수 개의 선택이 가능하기 때문임을 유의한다.
이와 같은 추가 조건을 고려하여 설계한 결과의 일 예로, 부호어 길이 Nldpc가 16200, 부호율이 7/15, M이 360인 경우(또는, Qldpc=24), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 6과 같다.
추가 조건을 고려하여 설계한 결과의 다른 예로, 부호어 길이 Nldpc가 16200, 부호율이 9/15, M이 360인 경우(또는, Qldpc=18), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 7과 같다.
추가 조건을 고려하여 설계한 결과의 또 다른 예로, 부호어 길이 Nldpc가 16200, 부호율이 11/15, M이 360인 경우(또는, Qldpc=12), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 8과 같다.
추가 조건을 고려하여 설계한 결과의 또 다른 예로, Nldpc가 16200, 부호율이 13/15, M이 360인 경우(또는, Qldpc=6), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 9와 같다.
추가 조건을 고려하여 설계한 결과의 또 다른 예로, Nldpc가 16200, 부호율이 5/15, M이 360인 경우(또는, Qldpc=30), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 10과 같다.
추가 조건을 고려하여 설계한 결과의 또 다른 예로, Nldpc가 16200, 부호율이 9/15, M이 360인 경우(또는, Qldpc=18), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 11 및 표 12와 같다.
추가 조건을 고려하여 설계한 결과의 또 다른 예로, Nldpc가 16200, 부호율이 11/15, M이 360인 경우(또는, Qldpc=12), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 13과 같다.
추가 조건을 고려하여 설계한 결과의 또 다른 예로, Nldpc가 16200, 부호율이 13/15, M이 360인 경우(또는, Qldpc=6), 도 3의 구조의 패리티 검사 행렬의 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스들은 하기의 표 14 및 표 15와 같다.
여기서 주의할 점은 상술한 표 2 내지 표 15에서 각 i 번째 열 그룹에 대한 수열 내의 숫자들의 순서는 바뀌어도 동일한 부호의 패리티 검사 행렬임에 유의한다.
예를 들어, 표 5에서 0 번째 열 그룹에 대응되는 수열을 380, 671, 699, 745, 1410, 1564 순서로 나열되어 있는데 이 수열을 671, 699, 1410, 380, 1564, 745와 같이 순서를 바꾸어도 동일한 부호의 패리티 검사 행렬을 나타낸다.
또한, 표 2 내지 표 15에서 각 열 그룹에 대응되는 수열들의 나열 순서를 바뀌어도 부호의 그래프 상의 사이클 특성 및 차수 분포, 최소 거리(minimum distance) 등의 대수적 특성이 바뀌지 않기 때문에, 표 2 내지 표 15에서 나타낸 수열들의 나열 순서가 바뀐 경우도 본 발명에서 제안하는 부호의 설계 방법을 통해 도출할 수 있는 결과의 한 가지 일 예가 될 수 있다.
예를 들어, 표 5에서 0 번째 열 그룹에 대응되는 수열 380, 671, 699, 745, 1410, 1564와 12 번째 열 그룹에 대응되는 수열 893, 1305, 2030의 나열 순서를 바꾸어 0 번째 열 그룹에 대응되는 수열을 893, 1305, 2030으로 설정하고, 12 번째 열 그룹에 대응되는 수열을 380, 671, 699, 745, 1410, 1564로 설정하여 나열 순서를 변경하여도 부호의 그래프 상의 사이클 특성 및 차수 분포, 최소 거리(minimum distance) 등은 변화가 없다(실제로 각 열 그룹에 대응되는 수열의 나열 순서를 바꾸는 것은 패리티 검사 행렬 내에서 열 그룹의 배치 순서만 바뀌는 것과 동일하기 때문에 주요 대수적 특성이 바뀌지 않는다).
또한, 표 2 내지 표 15에서 임의의 열 그룹에 대응되는 수열들에 대해 모두 동일하게 Qldpc의 배수를 더한 결과 또한 부호의 그래프 상의 사이클 특성이나 차수 분포 등의 대수적 특성이 바뀌지 않는 특성이 있기 때문에 본 발명에서 제안하는 부호의 설계 방법을 통해 도출할 수 있는 결과의 한 가지 일 예가 될 수 있다.
예를 들어, 표 5에서 12 번째 열 그룹에 대응되는 수열 893, 1305, 2030에 대해 Qldpc=(Nldpc-Kldpc)/M= 6에 대해 모두 동일한 6의 배수를 더한 결과, 구체적인 예로서, 899(=893+6), 1311(=1305+6), 2036(=2030+6)이나 911(=893+6×3), 1323(=1305+6×3), 2048(=2030+6×3)과 같은 경우 또한 부호의 그래프 상의 사이클 특성이나 차수 분포, 최소 거리(minimum distance) 등의 대수적 특성이 바뀌지 않는다(실제로 Qldpc 배수를 임의의 수열에 더해진 결과 얻어진 수열은 마치 해당 열 그룹 내에 있는 열들의 순서만 재배열된 것과 동일한 동작이기 때문에 주요 대수적 특성이 바뀌지 않는다).
여기서 주의해야 할 점은 주어진 수열에 Qldpc 배수만큼 더 했을 경우에 만일 그 값이 (Nldpc-Kldpc) 이상인 값이 나올 경우에는, 그 값에 (Nldpc-Kldpc)에 대한 모듈로(modulo) 연산을 적용한 값으로 바꾸어 적용한다. 예를 들어, 표 5에서 2 번째 열 그룹에 대응되는 수열 247, 328, 1778, 2040, 2051, 2151에 대해 만일 6×3만큼 모두 더한 결과는 265, 346, 1796, 2058, 2069, 2169가 되는데 (Nldpc-Kldpc)=2160이므로, 모듈로-2160을 수열에 적용하여 265, 346, 1796, 2058, 2069, 9 또는 9, 265, 346, 1796, 2058, 2069와 같이 나타낼 수 있다.
또한, 표 2 내지 표 15에서 나타낸 수열은 도 3의 패리티 검사 행렬의 구조를 기준으로 나타낸 것이지만, 만일 도 3의 패리티 검사 행렬에 행의 순서를 재배치하는 행 교환(row permutation) 또는 열의 순서를 재배치하는 열 교환(column permutation) 등을 적용할 경우에는 도 3의 구조와는 다른 형태로 패리티 검사 행렬을 나타낼 수도 있다. 하지만, 행 교환 및 열 교환 등의 동작은 사이클 특성이나 차수 분포, 최소 거리(minimum distance)와 같은 LDPC 부호 자체의 대수적 특성이 전혀 바뀌지 않기 때문에 동일한 패리티 검사 행렬로 간주할 수 있다.
즉, 어떤 주어진 패리티 검사 행렬이 적절한 행 교환 및 열 교환을 통해 도 3과 같은 구조의 패리티 검사 행렬로 변형 가능하며, 변형된 패리티 검사 행렬에 대해 표 2 내지 표 15에서 나타낸 수열처럼 표현하였을 때 만일 표 2 내지 표 15 중에서 수열이 일치하는 경우가 존재할 때 두 개의 패리티 검사 행렬은 대수적으로 동일(equivalent)하다고 판단한다.
이하에서는, 도 3과 같은 구조를 갖는 패리티 검사 행렬을 이용하여 LDPC 부호의 부호화 과정에 대하여 설명하도록 한다. 상술한 바와 같이, LDPC 부호의 부호화 과정은 패리티 검사 행렬과 부호어의 곱이 0가 되는 관계식을 만족하는 부호어 C를 결정하는 것이다. 즉, LDPC 부호화 과정은 HㆍCT=0과 같이 표현될 수 있다. 여기에서, H는 패리티 검사 행렬이고, C는 LDPC 부호어를 나타낸다.
이하에서는, LDPC 부호화되는 정보어 비트들은 (i0,i1,...,)이고, LDPC 부호화에 의해 생성된 LDPC 부호어 비트들은 (c0,c1,...,)라 할 때, LDPC 부호어 비트들을 산출하는 방법을 설명하도록 한다.
먼저, LDPC 부호는 시스테메틱 부호이므로 0<k<Kldpc-1에 대한 ck는 ik와 동일하게 설정한다. 그리고, 나머지 부호어 비트들에 대하여서는 로 설정한다. 여기에서, pk는 패리티 비트들이며 이하에서 설명하는 바와 같이 산출될 수 있다.
한편, 본 발명의 일 실시 예에 따라 패리티 검사 행렬은 표 2 내지 표 15와 같이 정의된다는 점에서, 이하에서 설명하는 과정은 패리티 검사 행렬이 표 2 내지 표 15와 같이 정의되는 경우 적용될 수 있다.
먼저, 표 2 내지 표 15에서 i번째 행(row)의 j번째 표기된 값(entry)을 q(i,j,0)라 할 때, 0<l<360에 대해 q(i,j,l)=q(i,j,0)+Qldpcㆍl(mod Nldpc-Kldpc)라 한다. 여기에서, 더하기 연산 '+'(accumulation)은 모두 GF(Galois Field)(2)에서 정의되는 덧셈 연산을 의미한다(즉, additions in GF(2)). 그리고, Qldpc는 정보어 부분 행렬에서 각 열이 시클릭 쉬프트되는 크기로서, 표 2 내지 표 15 각각에서 정의된 값이 될 수 있다.
한편, q(i,j,0) 및 q(i,j,l)이 상기와 같이 정의될 때, 패리티 비트를 산출하는 과정은 하기와 같다.
단계 1) 패리티 비트들을 '0'으로 초기화한다. 즉, pk=0 for 0<k<Nldpc-Kldpc
단계 2) 0<k<Kldpc의 모든 k 값에 대하여 i와 l을 , l:=k (mod 360)로 설정한다. 여기에서, 는 x 보다 크지 않는 정수 중에서 가장 큰 정수 값이다. 즉, 이다. 이후, 설정된 i와 l값을 기반으로 이하와 같이 모든 j에 대하여 ik를 pq (i,j,l)에 더한다. 즉, pq(i,0,l)=pq(i,0,l)+ik,pq(i,1,l)=pq(i,1,l)+ik,pq(i,2,l)=pq(i,2,l)+ik,...,pq(i,w(i)-1,l)=pq(i,w(i)-1,l)+ik를 산출한다.
여기에서, w(i)는 표 2 내지 표 15의 i 번째 행의 값들의 개수이며, 패리티 검사 행렬에서 ik에 대응되는 열의 1의 개수를 의미한다. 즉, 패리티 검사 행렬에서 ik에 대응되는 열의 1의 개수를 의미한다. 또한, 표 2 내지 표 15에서 i 번째 행(row)의 j 번째 표기된 값(entry)인 q(i,j,0)은 패리티 비트의 인덱스이며, 패리티 검사 행렬에서 ik에 대응되는 열에서 1이 존재하는 행의 위치를 나타낸다.
단계 3) 0<k<Nldpc-Kldpc를 만족하는 모든 k에 대해 pk=pk+pk - 1를 산출하여 패리티 비트 pk를 산출하게 된다.
한편, LDPC 부호화 과정을 상술한 바와 같이 기술하는 것은 일 예에 불과하다. 즉, LDPC 부호화는 HㆍCT=0를 만족하는 LDPC 부호어 C를 산출하는 과정이라는 점에서, 주어진 패리티 검사 행렬에 대해 다양한 부호화 방법이 존재할 수 있음은 물론이다.
예를 들어, DVB-T2 규격에서 적용된 방식이 패리티 검사 행렬이 표 2 내지 표 15와 같이 정의되는 경우에도 적용될 수 있다. 이하에서는, 패리티 검사 행렬이 표 5와 같이 정의되는 경우를 일 예로, DVB-T2 규격에서 기술된 방식에 따른 LDPC 부호화 과정을 개략적으로 설명하도록 한다.
단계 2) 표 5의 첫 번째 행(즉, i=0인 행)에서 정의되는 패리티 비트의 어드레스를 패리티 비트의 인덱스로 갖는 패리티 비트에 0 번째 정보어 비트 i0를 누적(accumulate)한다. 이는 아래의 수학식 5와 같이 표현될 수 있다.
여기에서, i0는 0 번째 정보어 비트, pi는 i 번째 패리티 비트, 는 바이너리 연산을 의미한다. 바이너리 연산에 의하면, 11은 0, 10은 1, 01은 1, 00은 0이다.
단계 3) 나머지 359 개의 정보어 비트들 im(m=1,2,...,359)을 패리티 비트에 누적한다. 여기에서, 나머지 정보어 비트들은 i0와 동일한 열 그룹에 속하는 정보어 비트들일 수 있다. 이때, 패리티 비트의 어드레스는 하기의 수학식 6에 기초하여 결정될 수 있다.
여기에서, x는 정보어 비트 i0에 대응되는 패리티 비트 누적기(parity bit accumulator)의 어드레스이고, Qldpc는 정보어에 대응되는 부분 행렬에서 각 열이 쉬프트되는 크기로 6이다.
결국, 수학식 6에 기초하여 산출된 패리티 비트의 어드레스를 인덱스로 하는 패리티 비트 각각에 정보어 비트들 im(m=1,2,...,359) 각각을 누적하며, 일 예로, 정보어 비트 i1에 대해 하기의 수학식 7과 같은 연산이 수행될 수 있다.
여기에서, i1는 1 번째 정보어 비트, pi는 i 번째 패리티 비트, 는 바이너리 연산을 의미한다. 바이너리 연산에 의하면, 11은 0, 10은 1, 01은 1, 00은 0이다.
단계 4) 표 5의 두 번째 행(즉, i=1인 행)에서 정의되는 패리티 비트의 어드레스를 패리티 비트의 인덱스로 갖는 패리티 비트에 360 번째 정보어 비트 i360를 누적한다.
단계 5) 정보어 비트 i360과 동일한 그룹에 속하는 나머지 359 개의 정보어 비트들을 패리티 비트에 누적한다. 이때, 패리티 비트의 어드레스는 수학식 6에 기초하여 결정될 수 있다. 다만, 이 경우, x는 정보어 비트 i360에 대응되는 패리티 비트 누적기의 어드레스가 된다.
단계 6) 상술한 단계 4 및 단계 5와 같은 과정을 표 5의 모든 열 그룹에 대해 반복한다.
단계 7) 결국, 하기와 같은 수학식 8에 기초하여 패리티 비트 pi를 산출하게 된다. 이때, i는 1로 초기화된다.
수학식 8에서, pi는 i 번째 패리티 비트, Nldpc는 LDPC 부호어의 길이, Kldpc는 LDPC 부호어 중 정보어의 길이, 는 바이너리 연산을 의미한다. 바이너리 연산에 의하면, 11은 0, 10은 1, 01은 1, 00은 0이다.
결국, 이와 같은 방식에 따라 패리티 비트들을 산출할 수 있게 된다.
한편, i 번째 열 그룹의 0 번째 열에 나타난 패리티 비트의 어드레스는 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스와 동일하다. 그러므로, 표 2 내지 표 15의 0 번째 열 그룹의 i 번째 열에서 1이 위치한 행의 인덱스들은 부호화 과정에서 패리티 비트의 어드레스로 표현된다. 그러므로, 표 2 내지 표 15는 "addresses of parity bit accumulators"들을 의미할 수 있게 된다.
이와 같이, 본 발명에서는 다양한 방식을 이용하여 LDPC 부호화 과정을 수행하여 LDPC 부호어를 생성할 수 있게 된다.
한편, LDPC 부호는 도 2에서 나열한 bipartite 그래프 상에서 합곱(sum-product) 알고리즘(algorithm)에 기반한 반복 복호(iterative decoding) 알고리즘을 사용하여 복호할 수 있다. 여기서, 합곱 알고리즘은 메시지 패싱 알고리즘(message passing algorithm)의 일종이며, 메시지 패싱 알고리즘이라 함은 상기 bipartite 그래프 상에서 에지를 통해 메시지들을 교환하고, 변수 노드들 혹은 검사 노드들로 입력되는 메시지들로부터 출력 메시지를 계산하여 업데이트하는 알고리즘을 나타낸다.
이하에서는, 도 4를 참조하여 LDPC 복호화 시 일반적으로 사용되는 메시지 패싱 동작에 대해서 설명하도록 한다.
도 4는 LDPC 복호화를 위해 임의의 검사 노드와 임의의 변수 노드에서 메시지 패싱 동작을 나타낸다.
도 4의 (1)은 일반적인 LDPC 복호화 장치의 임의의 검사 노드와 변수 노드에서 메시지 패싱 동작을 도시한 도면이다.
도 4에는 검사 노드 m(400)과 검사 노드 m(400)에 연결되는 다수의 변수 노드들(410,420,430,440)이 도시되어 있다. 또한, 도시되어 있는 Tn' ,m은 변수 노드 n'(410)에서 검사 노드 m(400)으로 패싱되는 메시지를 나타내며, En ,m은 검사 노드 m(400)에서 변수 노드 n(430)으로 패싱되는 메시지를 나타낸다. 여기서, 검사 노드 m(400)에 연결되어 있는 모든 변수 노드들의 집합을 N(m)이라고 정의하고, N(m)에서 변수 노드 n(430)을 제외한 집합을 N(m)\n이라고 정의하기로 한다.
이 경우, 합곱 알고리즘에 기반한 메시지 업데이트(update) 규칙은 하기 수학식 9와 같이 나타낼 수 있다.
여기에서, Sign(En ,m)은 메시지 En ,m의 부호(sign)를 나타내고, 은 메시지 En ,m의 크기(magnitude)를 나타낸다. 한편, 함수 는 하기의 수학식 10과 같이 나타낼 수 있다.
한편, 도 4의 (2)에는 변수 노드 x(450)와 변수 노드 x(450)에 연결되는 다수의 검사 노드들(460,470,480,490)이 도시되어 있다. 또한, 도시되어 있는 Ey' ,x은 검사 노드 y'(460)에서 변수 노드 x(450)로 패싱되는 메시지를 나타내며, Ty ,x은 변수 노드 x(450)에서 변수 노드 y(480)로 패싱되는 메시지를 나타낸다. 여기서, 변수 노드 x(450)에 연결되어 있는 모든 변수 노드들의 집합을 M(x)이라고 정의하고, M(x)에서 검사 노드 y(480)을 제외한 집합을 M(x)\y라고 정의하기로 한다. 이 경우, 합곱 알고리즘에 기반한 메시지 업데이트(update) 규칙은 하기 수학식 11과 같이 나타낼 수 있다.
여기에서, Ex는 변수 노드 x의 초기 메시지 값을 의미한다.
또한, 노드 x의 비트 값을 판정할 경우에는 하기의 수학식 12와 같이 나타낼 수도 있다.
이 경우, Px 값에 따라 노드 x에 대응하는 부호화 비트를 판정 할 수 있다.
한편, 도 4에서 설명한 복호화 방법은 일반적인 복호화 방법이라는 점에서 더 이상의 구체적인 설명은 생략하도록 한다. 다만, 도 4에서 설명한 방법 외에도 변수 노드와 검사 노드에서의 패싱되는 메시지 값을 결정하는 데 있어 다른 방법이 적용될 수도 있다(Frank R. Kschischang, Brendan J. Frey, and Hans-Andrea Loeliger, “Factor Graphs and the Sum-Product Algorithm,” IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 47, NO. 2, FEBRUARY 2001, pp 498-519).
도 5는 본 발명의 일 실시 예에 따른 부호화 장치의 구성을 나타내는 블록도이다. 이 경우, 부호화 장치(500)는 LDPC 부호화를 수행할 수 있다.
도 5에 따르면, 부호화 장치(500)는 LDPC 인코더(510)를 포함한다. LDPC 인코더(510)는 패리티 검사 행렬에 기초하여 입력 비트들에 대해 LDPC 부호화를 수행하여 LDPC 부호어를 생성할 수 있다. 이때, LDPC 부호어는 16200 개의 비트로 구성될 수 있다. 즉, LDPC 부호어의 길이는 16200이 될 수 있다.
여기에서, 패리티 검사 행렬은 도 3에서 도시한 패리티 검사 행렬(300)과 동일한 형태일 수 있다.
구체적으로, 패리티 검사 행렬은 정보어 부분 행렬과 패리티 부분 행렬을 포함한다.
여기에서, 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 M번째 열에 존재하는 1 값의 위치를 나타내는 테이블로 정의된다. 여기에서, M은 정보어 부분 행렬에서 열의 패턴이 반복되는 간격으로, 360이 될 수 있다. 그리고, 패리티 부분 행렬은 이중 대각 구조를 가질 수 있다.
이 경우, LDPC 인코더(510)는 부호율(즉, LDPC 부호의 부호율)에 따라 서로 다르게 정의된 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
예를 들어, LDPC 인코더(510)는 부호율이 7/15인 경우 표 2 또는 표 6과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행하고, 부호율이 9/15인 경우 표 3, 표 7, 표 11 또는 표 12와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다. 그리고, LDPC 인코더(510)는 부호율이 11/15인 경우 표 4, 표 8 또는 표 13과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행하고, 부호율이 13/15인 경우 표 5, 표 9, 표 14 또는 표 15와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다. 또한, LDPC 인코더(510)는 부호율이 5/15인 경우 표 10과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
한편, LDPC 부호화를 수행하는 구체적인 방법에 대해서는 상술한바 있다는 점에서 구체적인 중복 설명은 생략하도록 한다.
한편, 부호화 장치(500)는 LDPC 부호의 부호율, 부호어 길이, 패리티 검사 행렬에 대한 정보를 기저장하기 위한 메모리(미도시)를 더 포함할 수 있으며, LDPC 인코더(510)는 이러한 정보를 이용하여 LDPC 부호화를 수행할 수 있다. 패리티 검사 행렬에 대한 정보는 본 발명에서 제시하는 패리티 행렬을 사용할 경우 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 M 번째 열에 존재하는 1의 값의 위치를 나타내는 테이블을 포함할 수 있다.
도 6은 본 발명의 실시 예에 따른 송신 장치의 구성을 나타내기 위한 블록도이다. 도 6에 따르면, 송신 장치(600)는 BCH(Bose, Chaudhuri, Hocquenghem) 인코더(610), LDPC 인코더(620), 인터리버(630) 및 변조부(640)를 포함할 수 있다.
BCH 인코더(610)는 입력 비트들에 대해 BCH 부호화를 수행하고, BCH 부호화에 의해 생성된 BCH 부호어를 LDPC 인코더(620)로 출력한다.
BCH 부호어 는 LDPC 부호화를 위한 정보어로서, LDPC 인코더(620)로 입력된다. BCH 부호화는 널리 알려진 기술로서, "Bose, R. C.; Ray-Chaudhuri, D. K. (March 1960), "On A Class of Error Correcting Binary Group Codes", Information and Control 3 (1): 68-79, ISSN 0890-5401" 등의 문헌에 개시되어 있으므로, 본 발명은 구체적인 설명을 생략한다.
한편, BCH 인코더(610)의 사용 여부는 변경 가능하다. 즉, 경우에 따라 BCH 인코더(610)는 생략될 수도 있다.
LDPC 인코더(620)는 BCH 인코더(610)에서 출력되는 BCH 부호어에 대해 LDPC 부호화를 수행하고, LDPC 부호화에 의해 생성된 LDPC 부호어를 인터리버(630)로 출력한다.
구체적으로, LDPC 인코더(620)는 BCH 인코더(610)에서 출력되는 BCH 부호어 를 정보어로 LDPC 부호화를 수행하여 Nldpc-Kldpc 개의 LDPC 패리티 비트들을 생성하고, LDPC 부호어 를 생성한다.
다만, BCH 인코더(610)가 생략되는 경우, LDPC 인코더(620)는 입력 비트들에 대해 LDPC 부호화를 수행할 수 있다.
한편, 도 6의 LDPC 인코더(620)는 도 5에서 설명한 LDPC 인코더(510)로 구현될 수 있다. 즉, LDPC 인코더(620)는 부호율에 따라 정보어 부분 행렬이 표 2 내지 표 15와 같이 정의되며 패리티 부분 행렬이 이중 대각 구조를 갖는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
이를 위해, 송신 장치(600)는 패리티 검사 행렬에 대한 정보를 저장하기 위한 메모리(미도시)를 구비할 수 있다. 이 경우, 패리티 검사 행렬은 부호율에 따라 다양한 형태가 될 수 있으며, 표 2 내지 표 15에서 정의된 테이블이 일 예가 될 수 있다. 패리티 검사 행렬에 대한 정보는 본 발명에서 제시하는 패리티 행렬을 사용할 경우 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 M 번째 열에 존재하는 1의 값의 위치를 나타내는 테이블을 포함할 수 있다.
인터리버(630)는 LDPC 인코더(620)에서 출력되는 LDPC 부호어에 대해 인터리빙을 수행하고, 인터리빙된 비트들을 변조부(640)로 출력한다.
이 경우, 인터리버(630)는 LDPC 인코더(620)에서 출력되는 LDPC 부호어 비트들을 입력받아 소정의 방식에 의하여 인터리빙을 수행한다. 인터리빙 방식은 다양하게 존재할 수 있으며, 인터리버(630)의 사용 여부는 가변일 수 있다.
변조부(640)는 인터리버(630)에서 출력되는 비트들을 변조하여 수신 장치(가령, 도 9의 900)로 전송한다.
구체적으로, 변조부(640)는 인터리버(630)에서 출력되는 비트들을 디멀티플렉싱하고, 이를 성상도(constellation)에 맵핑할 수 있다.
즉, 변조부(640)는 인터리버(630)에서 출력되는 비트들을 시리얼-투-패러렐(serial-to-parallel) 변환하여, 일정한 개수의 비트로 구성된 셀(cell)을 생성할 수 있다. 여기에서, 각 셀을 구성하는 비트의 개수는 성상도(constellation)에 맵핑되는 변조 심볼을 구성하는 비트의 개수와 동일할 수 있다.
이후, 변조부(640)는 디멀티플렉싱된 비트들을 성상도에 맵핑할 수 있다. 즉, 변조부(640)는 디멀티플렉싱된 비트들을 QPSK, 16-QAM, 64-QAM, 256-QAM, 1024-QAM, 4096-QAM 등의 다양한 변조 방식을 통해 변조하여 변조 심볼을 생성하고, 이를 성상점(constellation point)에 맵핑할 수 있다. 이 경우, 디멀티플렉싱된 비트들은 변조 심볼에 대응되는 셀로 구성된다는 점에서, 각 셀이 순차적으로 성상점에 맵핑될 수 있다.
그리고, 변조부(640)는 성상도에 맵핑된 신호를 변조하여 수신 장치(900)로 전송할 수 있다. 예를 들어, 변조부(640)는 OFDM(Orthogonal Frequency Division Multiplexing) 방식으로 이용하여 성상도에 맵핑된 신호를 OFMD 프레임에 맵핑하고, 이를 할당된 채널을 통해 수신 장치(900)로 전송할 수 있다.
한편, 송신 장치(600)는 부호화, 인터리빙 및 변조에 이용되는 각종 파라미터를 기저장하고 있을 수 있다. 여기에서, 부호화에 이용되는 파라미터는 BCH 부호의 부호율 및 부호어 길이, LDPC 부호의 부호율, 부호어 길이, 패리티 검사 행렬에 대한 정보가 될 수 있다. 그리고, 인터리빙에 이용되는 파리미터는 인터리빙 룰에 대한 정보가 될 수 있으며, 변조에 이용되는 파리미터는 변조 방식에 대한 정보가 될 수 있다. 패리티 검사 행렬에 대한 정보는 본 발명에서 제시하는 패리티 행렬을 사용할 경우 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 M 번째 열에 존재하는 1의 값의 위치를 나타내는 테이블을 포함할 수 있다.
이 경우, 송신 장치(600)를 구성하는 각 구성요소를 이러한 파라미터를 이용하여 동작을 수행할 수 있다.
한편, 도시하지 않았지만 경우에 따라 송신 장치(600)는 송신 장치(600)의 동작을 제어하기 위한 제어부(미도시)를 더 포함할 수도 있다.
이 경우, 제어부(미도시)는 BCH 인코더(610)로 BCH 부호의 부호율 및 부호어 길이 에 대한 정보를 제공하며, LDPC 인코더(620)로 LDPC 부호의 부호율, 부호어 길이, 패리티 검사 행렬에 대한 정보를 제공할 수 있다. 또한, 제어부(미도시)는 인터리버(630)로 인터리빙 방식에 대한 정보를 제공하고, 변조부(640)로 변조 방식에 대한 정보를 제공할 수 있다. 패리티 검사 행렬에 대한 정보는 본 발명에서 제시하는 패리티 행렬을 사용할 경우 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 M 번째 열에 존재하는 1의 값의 위치를 나타내는 테이블을 포함할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 복호화 장치의 구성을 나타내는 블록도이다. 도 7에 따르면, 복호화 장치(700)는 LDPC 디코더(710)를 포함할 수 있다.
LDPC 디코더(710)는 패리티 검사 행렬에 기초하여 LDPC 부호어에 대해 LDPC 복호화를 수행한다. 여기에서, LDPC 부호어는 16200 개의 비트로 구성될 수 있다. 즉, LDPC 부호어의 길이는 16200이 될 수 있다.
예를 들어, LDPC 디코더(710)는 반복 복호 알고리즘을 통해 LDPC 부호어 비트들에 대응되는 LLR(Log Likelihood Ratio) 값을 패싱하여 LDPC 복호화를 수행하여 정보어 비트들을 생성할 수 있다.
여기에서, LLR 값은 LDPC 부호어 비트들에 대응되는 채널 값으로, 다양한 방법으로 표현될 수 있다.
예를 들어, LLR 값은 송신 측에서 채널을 통해 전송한 비트가 0일 확률과 1일 확률의 비율에 Log를 취한 값으로 나타낼 수 있다. 또한, LLR 값은 경판정에 따라 결정된 비트 값 자체가 될 수 있으며, 송신 측에서 에서 전송한 비트가 0 또는1일 확률이 속하는 구간에 따라 결정된 대표 값이 될 수도 있다.
이 경우, 송신 측은 도 5와 같은 LDPC 인코더(510)를 이용하여 LDPC 부호어를 생성하여 전송할 수 있다.
한편, LDPC 복호화 시 이용되는 패리티 검사 행렬은 도 3에서 도시한 패리티 검사 행렬(300)과 동일한 형태일 수 있다.
구체적으로, 패리티 검사 행렬은 정보어 부분 행렬과 패리티 부분 행렬을 포함한다.
여기에서, 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 M번째 열에 존재하는 1 값의 위치를 나타내는 테이블로 정의된다. 여기에서, M은 정보어 부분 행렬에서 열의 패턴이 반복되는 간격으로, 360이 될 수 있다. 그리고, 패리티 부분 행렬은 이중 대각 구조를 가질 수 있다.
이 경우, LDPC 디코더(710)는 부호율(즉, LDPC 부호의 부호율)에 따라 서로 다르게 정의된 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
예를 들어, LDPC 디코더(710)는 부호율이 7/15인 경우 표 2 또는 표 6과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행하고, 부호율이 9/15인 경우 표 3, 표 7, 표 11 또는 표 12와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다. 그리고, LDPC 디코더(710)는 부호율이 11/15인 경우 표 4, 표 8 또는 표 13과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행하고, 부호율이 13/15인 경우 표 5, 표 9, 표 14 또는 표 15와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다. 또한, LDPC 디코더(710)는 부호율이 5/15인 경우 표 10과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
한편, 상술한 바와 같이 LDPC 디코더(710)는 반복 복호 알고리즘을 사용하여 LDPC 복호화를 수행할 수 있으며, 이 경우, LDPC 디코더(710)는 도 8과 같은 구조로 구성될 수 있다. 다만, 반복 복호 알고리즘의 경우 이미 공지된 사항이라는 점에서, 도 8에 도시된 세부 구성 역시 일 예일 뿐이다.
도 8에 따르면, 복호화 장치(800)는 입력 처리기(811), 메모리(812), 변수 노드 연산기(813), 제어기(814), 검사 노드 연사기(815) 및 출력 처리기(816)를 포함한다.
입력처리기(811)에서 입력되는 값을 저장한다. 구체적으로, 입력 처리기(811)는 무선 채널을 통해 수신되는 수신 신호의 LLR 값을 저장한다.
제어기(814)는 무선 채널을 통해 수신되는 수신 신호의 블록의 크기, 부호율에 대응되는 패리티 검사 행렬을 기반으로 하여 변수 노드 연산기(813)에 입력되는 값의 개수 및 메모리(812)에서의 주소 값, 검사 노드 연산기(815)에 입력되는 값의 개수 및 메모리(812)에서의 주소 값 등을 결정한다.
본 발명의 일 실시 예에 따르면, LDPC 디코더(710)는 i 번째 열 그룹의 0 번째 열에서 1이 위치한 행의 인덱스가 표 2 내지 표 15와 같이 정의된 도 3의 형태를 갖는 패리티 검사 행렬을 기반으로 하여 복호화를 수행할 수 있다.
메모리(812)는 변수 노드 연산기(813)와 검사 노드 연산기(815)의 입력 데이터 및 출력 데이터를 저장한다.
변수 노드 연산기(813)는 제어기(814)에서 입력받은 입력 데이터의 주소 정보 및 입력 데이터의 개수 정보에 따라 메모리(812)에서 데이터들을 입력받아 변수 노드 연산을 한다. 이후, 변수 노드 연산기(813)는 제어기(814)에서 입력받은 출력 데이터의 주소 정보 및 출력 데이터의 개수 정보에 기초하여 변수 노드 연산 결과들을 메모리(812)에 저장한다. 또한, 변수 노드 연산기(813)에서는 입력 처리기(811)와 메모리(812)에서 입력받은 데이터를 기반으로 하여 변수 노드 연산 결과를 출력 처리기(816)에 입력한다. 여기에서, 변수 노드 연산은 도 4를 기반으로 설명한바 있다.
검사 노드 연산기(815)는 제어기(814)에서 입력받은 입력데이터의 주소 정보 및 입력 데이터의 개수 정보에 따라 메모리(812)에서 데이터들을 입력받아 검사 노드 연산을 한다. 이후, 검사 노드 연산기(850)는 제어기(814)에서 입력받은 출력 데이터의 주소 정보 및 출력 데이터의 개수 정보에 따라 변수 노드 연산 결과들을 메모리(812)에 저장한다. 여기에서, 검사 노드 연산은 도 4를 기반으로 설명한바 있다.
출력 처리기(816)는 변수 노드 연산기(813)로부터 입력받은 데이터를 기반으로 하여 송신기의 부호어의 정보어 비트들이 0이었는지 1이었는지 경판정한 후, 그 경판정 결과를 출력하게 되고, 출력 처리기(816)의 출력값이 최종적으로 복호화된 값이 되는 것이다. 이 경우, 도 4에서 하나의 변수 노드로 입력되는 모든 메시지 값(초기 메시지 값과 검사 노드로부터 입력되는 모든 메시지 값들)을 더한 값을 기반으로 경판정할 수 있다.
한편, 복호화 장치(700)는 LDPC 부호의 부호율, 부호어 길이, 패리티 검사 행렬에 대한 정보를 기저장하기 위한 메모리(미도시)를 더 포함할 수 있으며, LDPC 디코더(710)는 이러한 정보를 이용하여 LDPC 부호화를 수행할 수 있다. 하지만, 이는 일 예일 뿐, 해당 정보들은 송신 측으로부터 제공될 수도 있다. 패리티 검사 행렬에 대한 정보는 본 발명에서 제시하는 패리티 행렬을 사용할 경우 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 M 번째 열에 존재하는 1의 값의 위치를 나타내는 테이블을 포함할 수 있다.
도 9는 본 발명의 실시 예에 따른 수신 장치의 구성을 설명하기 위한 블록도이다. 도 9에 따르면, 수신 장치(900)는 복조부(910), 디인터리버(920), LDPC 디코더(930) 및, BCH 디코더(940), 를 포함한다.
복조부(910)는 송신 장치(가령, 도 6의 600)에서 전송한 신호를 수신하여 복조한다. 구체적으로, 복조부(910)는 수신된 신호를 복조하여 LDPC 부호어에 대응되는 값을 생성하고, 이를 디인터리버(920)로 출력할 수 있다.
이 경우, LDPC 부호어에 대응되는 값은 수신된 신호에 대한 채널 값으로 표현될 수 있다. 여기에서, 채널 값을 결정하는 방법은 다양하게 존재할 수 있으며, 일 예로, LLR 값을 결정하는 방법이 될 수 있다.
디인터리버(920)는 복조부(910)의 출력 값들에 대해 디인터리빙을 수행하고, 이를 LDPC 디코더(930)로 출력한다.
구체적으로, 디인터리버(920)는 송신 장치(600)의 인터리버(630)에 대응되는 구성요소로, 인터리버(630)에 대응되는 동작을 수행할 수 있다. 즉, 디인터리버(920)는 인터리버(630)에서 적용된 인터리빙 방식을 역으로 적용하여 복조부(910)에서 출력되는 LLR 값들을 디인터리빙할 수 있다.
다만, 경우에 따라 송신 장치(600)에서 인터리버(630)가 생략된 경우, 디인터리버(920)는 생략될 수 있다.
LDPC 디코더(930)는 디인터리버(920)의 출력 값들을 이용하여 LDPC 복호화를 수행하고, LDPC 복호화된 비트들을 BCH 디코더(940)로 출력할 수 있다. 여기에서, LDPC 복호화된 비트들은 BCH 부호어일 수 있다.
구체적으로, LDPC 디코더(930)는 송신 장치(600)의 LDPC 인코더(630)에 대응되는 구성요소로, 패리티 검사 행렬에 기초하여 LDPC 복호화를 수행할 수 있다. 한편, 도 9의 LDPC 디코더(930)는 도 7에서 설명한 LDPC 디코더(710)로 구현될 수 있다. 즉, LDPC 디코더(930)는 부호율에 따라 정보어 부분 행렬이 표 2 내지 표 15와 같이 정의되며 패리티 부분 행렬이 이중 대각 구조를 갖는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
BCH 디코더(940)는 LDPC 디코더(930)의 출력 값에 대해 BCH 복호화를 수행할 수 있다.
구체적으로, BCH 디코더(940)는 송신 장치(600)의 BCH 인코더(610)에 대응되는 구성요소로, LDPC 디코더(930)에서 출력되는 BCH 부호어에 대해 BCH 복호화를 수행하여 송신 장치(600)에서 전송한 비트들을 생성할 수 있다. 다만, 경우에 따라 송신 장치(600)에서 BCH 인코더(610)가 생략되는 경우, BCH 디코더(940)는 생략될 수 있다.
한편, 수신 장치(900)는 복호화 및 디인터리빙에 이용되는 각종 파라미터를 기저장하고 있을 수 있다. 여기에서, 복호화에 이용되는 파라미터는 BCH 부호의 부호율 및 부호어 길이, LDPC 부호의 부호율, 부호어 길이, 패리티 검사 행렬에 대한 정보가 될 수 있다. 그리고, 디인터리빙에 이용되는 파리미터는 디인터리빙 룰에 대한 정보가 될 수 있다. 패리티 검사 행렬에 대한 정보는 본 발명에서 제시하는 패리티 행렬을 사용할 경우 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 M 번째 열에 존재하는 1의 값의 위치를 나타내는 테이블을 포함할 수 있다.
이 경우, 수신 장치(900)를 구성하는 각 구성요소를 이러한 파라미터를 이용하여 동작을 수행할 수 있다.
한편, 도시하지 않았지만 경우에 따라 수신 장치(900)는 수신 장치(900)의 동작을 제어하기 위한 제어부(미도시)를 더 포함할 수도 있다.
이 경우, 제어부(미도시)는 BCH 디코더(940)로 BCH 부호의 부호율 및 부호어 길이 에 대한 정보를 제공하며, LDPC 디코더(930)로 LDPC 부호의 부호율, 부호어 길이, 패리티 검사 행렬에 대한 정보를 제공할 수 있다. 또한, 제어부(미도시)는 디인터리버(920)로 인터리빙 방식에 대한 정보를 제공할 수도 있다. 패리티 검사 행렬에 대한 정보는 본 발명에서 제시하는 패리티 행렬을 사용할 경우 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 M 번째 열에 존재하는 1의 값의 위치를 나타내는 테이블을 포함할 수 있다.
도 10은 본 발명의 일 실시 예에 따른 부호화 방법을 설명하기 위한 흐름도이다. 구체적으로, 도 10은 LDPC(Low Density Parity Check) 부호화를 수행하는 부호화 장치의 부호화 방법을 설명하기 위한 도면이다.
먼저, 패리티 검사 행렬에 기초하여 입력 비트들에 대해 LDPC 부호화를 수행하여 LDPC 부호어를 생성한다(S1010). 이때, LDPC 부호어는 16200 개의 비트로 구성될 수 있다. 즉, LDPC 부호어의 길이는 16200이 될 수 있다.
한편, 패리티 검사 행렬은 도 3에서 도시한 패리티 검사 행렬(300)과 동일한 형태일 수 있다.
구체적으로, 패리티 검사 행렬은 정보어 부분 행렬과 패리티 부분 행렬을 포함한다.
여기에서, 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 M 번째 열에 존재하는 1 값의 위치를 나타내는 테이블로 정의될 수 있다. 여기에서, M은 정보어 부분 행렬에서 열의 패턴이 반복되는 간격으로, 360이 될 수 있다. 그리고, 패리티 부분 행렬은 이중 대각 형태일 수 있다.
이 경우, S1010 단계는 부호율에 따라 서로 다르게 정의된 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
예를 들어, 부호율이 7/15인 경우 표 2 또는 표 6과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행하고, 부호율이 9/15인 경우 표 3, 표 7, 표 11 또는 표 12와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다. 그리고, 부호율이 11/15인 경우 표 4, 표 8 또는 표 13과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행하고, 부호율이 13/15인 경우 표 5, 표 9, 표 14 또는 표 15와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다. 또한, 부호율이 5/15인 경우 표 10과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행할 수 있다.
한편, LDPC 부호화를 수행하는 구체적인 방법에 대해서는 상술한 바 있다는 점에서 구체적인 중복 설명은 생략하도록 한다.
도 11은 본 발명의 일 실시 예에 따른 복호화 방법을 설명하기 위한 흐름도이다. 구체적으로, 도 11은 LDPC(Low Density Parity Check) 복호화를 수행하는 복호화 장치의 복호화 방법을 설명하기 위한 도면이다.
먼저, 패리티 검사 행렬에 기초하여 LDPC 부호어에 대해LDPC 복호화를 수행한다(S1110). 여기에서, LDPC 부호어는 16200 개의 비트로 구성될 수 있다. 즉, LDPC 부호어의 길이는 16200이 될 수 있다.
예를 들어, 반복 복호 알고리즘을 통해 LDPC 부호어 비트들에 대응되는 LLR 값을 패싱하여 LDPC 복호화를 수행하여 정보어 비트들을 생성할 수 있다.
여기에서, LLR 값은 LDPC 부호어 비트들에 대응되는 채널 값으로, 다양한 방법으로 표현될 수 있다.
예를 들어, LLR 값은 송신 측에서 채널을 통해 전송한 비트가 0일 확률과 1일 확률의 비율에 Log를 취한 값으로 나타낼 수 있다. 또한, LLR 값은 경판정에 따라 결정된 비트 값 자체가 될 수 있으며, 송신 측에서 에서 전송한 비트가 0 또는1일 확률이 속하는 구간에 따라 결정된 대표 값이 될 수도 있다.
이 경우, 송신 측은 도 5와 같은 LDPC 인코더(510)를 이용하여 LDPC 부호어를 생성하여 전송할 수 있다.
한편, 패리티 검사 행렬은 도 3에서 도시한 패리티 검사 행렬(300)과 동일한 형태일 수 있다.
구체적으로, 패리티 검사 행렬은 정보어 부분 행렬과 패리티 부분 행렬을 포함한다.
여기에서, 정보어 부분 행렬은 각각 M 개의 열을 포함하는 복수의 열 그룹으로 구성되며, 매 M번째 열에 존재하는 1 값의 위치를 나타내는 테이블로 정의된다. 여기에서, M은 정보어 부분 행렬에서 열의 패턴이 반복되는 간격으로, 360이 될 수 있다. 그리고, 패리티 부분 행렬은 이중 대각 형태일 수 있다.
이 경우, S1110 단계는 부호율에 따라 서로 다르게 정의된 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
예를 들어, 부호율이 7/15인 경우 표 2 또는 표 6과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행하고, 부호율이 9/15인 경우 표 3, 표 7, 표 11 또는 표 12와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다. 그리고, 부호율이 11/15인 경우 표 4, 표 8 또는 표 13과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행하고, 부호율이 13/15인 경우 표 5, 표 9, 표 14 또는 표 15와 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다. 또한, 부호율이 5/15인 경우 표 10과 같은 테이블로 정의되는 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행할 수 있다.
한편, LDPC 복호화를 수행하는 구체적인 방법에 대해서는 상술한 바 있다는 점에서, 구체적인 설명은 생략하도록 한다.
한편, 본 발명에 따른 부호화 방법 및 복호화 방법을 순차적으로 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 부호화 장치, 복호화 장치, 송신 장치 및 수신 장치에 대해 도시한 상술한 블록도에서는 버스(bus)를 미도시하였으나, 부호화 장치, 복호화 장치, 송신 장치 및 수신 장치에서 각 구성요소 간의 통신은 버스를 통해 이루어질 수도 있다. 또한, 각 장치에는 상술한 다양한 단계를 수행하는 CPU, 마이크로 프로세서 등과 같은 프로세서가 더 포함될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
500 : 부호화 장치 510 : LDPC 인코더
Claims (24)
- 송신 장치에 있어서,
LDPC(Low Density Parity Check) 부호의 패리티 검사 행렬에 기초하여 정보어 비트들을 인코딩하여 패리티 비트들을 생성하는 인코더;
상기 정보어 비트들 및 상기 패리티 비트들을 포함하는 코드워드를 인터리빙하는 인터리버; 및
상기 인터리빙된 코드워드의 비트들을 성상점들에 맵핑하는 성상도 맵퍼;를 포함하며,
상기 패리티 검사 행렬은, 상기 정보어 비트들에 대응되는 정보어 부분 행렬 및 상기 패리티 비트들에 대응되는 패리티 부분 행렬을 포함하고,
상기 정보어 부분 행렬은, 사이클 특성 및 차수 분포를 기초한, 기설정된 구조를 갖는 행렬의 리프팅(lifting)을 통해 얻어지는 송신 장치. - 송신 방법에 있어서,
LDPC(Low Density Parity Check) 부호의 패리티 검사 행렬에 기초하여 정보어 비트들을 인코딩하여 패리티 비트들을 생성하는 단계;
상기 정보어 비트들 및 상기 패리티 비트들을 포함하는 코드워드를 인터리빙하는 단계; 및
상기 인터리빙된 코드워드의 비트들을 성상점들에 맵핑하는 단계;를 포함하며,
상기 패리티 검사 행렬은, 상기 정보어 비트들에 대응되는 정보어 부분 행렬 및 상기 패리티 비트들에 대응되는 패리티 부분 행렬을 포함하고,
상기 정보어 부분 행렬은, 사이클 특성 및 차수 분포를 기초한, 기설정된 구조를 갖는 행렬의 리프팅(lifting)을 통해 얻어지는 송신 방법. - 수신 장치에 있어서,
정보어 비트들 및 상기 정보어 비트들의 인코딩에 의해 생성된 패리티 비트들에 기초하여 생성된 신호를 송신 장치로부터 수신하고, 상기 수신된 신호를 복조하여 상기 수신된 신호에 대응되는 값들을 생성하는 복조부;
상기 생성된 값들을 디인터리빙하는 디인터리버; 및
LDPC(Low Density Parity Check) 부호의 패리티 검사 행렬에 기초하여 상기 디인터리빙된 값들을 디코딩하는 디코더;를 포함하며,
상기 패리티 검사 행렬은, 상기 정보어 비트들에 대응되는 정보어 부분 행렬 및 상기 패리티 비트들에 대응되는 패리티 부분 행렬을 포함하고,
상기 정보어 부분 행렬은, 사이클 특성 및 차수 분포를 기초한, 기설정된 구조를 갖는 행렬의 리프팅(lifting)을 통해 얻어지는 수신 장치. - 수신 방법에 있어서,
정보어 비트들 및 상기 정보어 비트들의 인코딩에 의해 생성된 패리티 비트들에 기초하여 생성된 신호를 송신 장치로부터 수신하고, 상기 수신된 신호를 복조하여 상기 수신된 신호에 대응되는 값들을 생성하는 단계;
상기 생성된 값들을 디인터리빙하는 단계; 및
LDPC(Low Density Parity Check) 부호의 패리티 검사 행렬에 기초하여 상기 디인터리빙된 값들을 디코딩하는 단계;를 포함하며,
상기 패리티 검사 행렬은, 상기 정보어 비트들에 대응되는 정보어 부분 행렬 및 상기 패리티 비트들에 대응되는 패리티 부분 행렬을 포함하고,
상기 정보어 부분 행렬은, 사이클 특성 및 차수 분포를 기초한, 기설정된 구조를 갖는 행렬의 리프팅(lifting)을 통해 얻어지는 수신 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/303,856 US9362952B2 (en) | 2013-06-14 | 2014-06-13 | Apparatuses and methods for encoding and decoding of parity check codes |
PCT/KR2014/005203 WO2014200303A1 (en) | 2013-06-14 | 2014-06-13 | Apparatuses and methods for encoding and decoding of parity check codes |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361835084P | 2013-06-14 | 2013-06-14 | |
US61/835,084 | 2013-06-14 | ||
US201361839080P | 2013-06-25 | 2013-06-25 | |
US61/839,080 | 2013-06-25 | ||
US201361862633P | 2013-08-06 | 2013-08-06 | |
US61/862,633 | 2013-08-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140145977A KR20140145977A (ko) | 2014-12-24 |
KR102146803B1 true KR102146803B1 (ko) | 2020-08-21 |
Family
ID=52675512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140058323A KR102146803B1 (ko) | 2013-06-14 | 2014-05-15 | 패리티 검사 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102146803B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102397896B1 (ko) * | 2015-05-29 | 2022-05-13 | 삼성전자주식회사 | 수신 장치 및 그의 신호 처리 방법 |
CN114679185A (zh) | 2017-08-11 | 2022-06-28 | 中兴通讯股份有限公司 | 数据编码方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012151520A (ja) * | 2010-12-28 | 2012-08-09 | Sony Corp | データ処理装置、及びデータ処理方法 |
JP2012165265A (ja) | 2011-02-08 | 2012-08-30 | Sony Corp | データ処理装置、及び、データ処理方法 |
-
2014
- 2014-05-15 KR KR1020140058323A patent/KR102146803B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012151520A (ja) * | 2010-12-28 | 2012-08-09 | Sony Corp | データ処理装置、及びデータ処理方法 |
JP2012165265A (ja) | 2011-02-08 | 2012-08-30 | Sony Corp | データ処理装置、及び、データ処理方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20140145977A (ko) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102151739B1 (ko) | Ldpc 부호의 부호화 장치, 그의 부호화 방법, 복호화 장치 및 그의 복호화 방법 | |
US11177833B2 (en) | Method and apparatus for encoding and decoding low density parity check codes | |
US10727870B2 (en) | Method and apparatus for encoding and decoding low density parity check codes | |
US9362952B2 (en) | Apparatuses and methods for encoding and decoding of parity check codes | |
KR20210145089A (ko) | 송신 장치 및 그의 신호 처리 방법 | |
KR102606204B1 (ko) | 송신 장치 및 그의 신호 처리 방법 | |
KR102368584B1 (ko) | 송신 장치 및 그의 신호 처리 방법 | |
KR102445897B1 (ko) | 송신 장치 및 그의 신호 처리 방법 | |
KR102146803B1 (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 |