KR20070076538A - 리차드슨 유형 재킷 ldpc 부호 생성장치 및 방법 - Google Patents
리차드슨 유형 재킷 ldpc 부호 생성장치 및 방법 Download PDFInfo
- Publication number
- KR20070076538A KR20070076538A KR1020070005448A KR20070005448A KR20070076538A KR 20070076538 A KR20070076538 A KR 20070076538A KR 1020070005448 A KR1020070005448 A KR 1020070005448A KR 20070005448 A KR20070005448 A KR 20070005448A KR 20070076538 A KR20070076538 A KR 20070076538A
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- jacket
- output
- sub
- multiplexer
- 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명은 리차드슨 유형 재킷 LDPC 부호 생성장치 및 방법에 관한 것으로, 리차드슨 LDPC(low density parity check) 부호 계열의 패리티 검사 행렬을 다수의 부행렬들로 분해하여 표시하고, 각 부행렬들은 엘레멘트 인버스(element inverse) 특성을 갖는 재킷 행렬과 이의 행렬 확장 및 소거 기법을 이용하여 부호화에 필요한 곱셈 연산 회수(number of multiplying operation)의 대폭적인 감축에 의한 고속 부호화 방법 및 이를 이용하여 고속 부호기를 구성하여, 부호화의 복잡도 측면에서 우수한 특성을 갖는 리차드슨 유형 LDPC 부호 계열의 간단한 생성 및 이러한 방법으로 생성된 행렬을 이용한 고속 부호화기의 구현이 간단한 하드웨어를 이용하여 용이하게 실현될 수 있는 이점이 있다.
Description
도 1은 리차드슨 유형 LDPC 부호의 패리티 검사 행렬을 나타내는 도면이다.
도 2는 리차드슨 유형 LDPC 부호의 부호화 알고리즘을 나타내는 도면이다.
도 3은 리차드슨 유형 LDPC 부호 생성기의 구조를 나타내는 도면이다.
도 4는 본 발명의 바람직한 일 실시예에 따른 리차드슨 유형 재킷 LDPC 부호의 생성 알고리즘을 나타내는 도면이다.
도 5는 본 발명의 바람직한 일 실시예에 따른 리차드슨 유형 재킷 LDPC 부호의 패리티 검사 행렬을 나타내는 도면이다.
도 6은 본 발명의 바람직한 일 실시예에 따른 리차드슨 유형 재킷 LDPC 부호기의 구조를 나타내는 도면이다.
도 7은 본 발명의 바람직한 일 실시예에 따른 리차드슨 유형 재킷 LDPC 부호기에 CPM(circulant permutation matrix) 특성을 반영하여 단순화시킨 파이프라인(pipeline) 부호기의 구조를 나타내는 도면이다.
도 8은 본 발명의 바람직한 일 실시예에 따른 입력 정보 데이터 벡터(sT)와 부행렬 A와의 이진 곱셈을 위한 회로 구성도이다.
도 9는 본 발명의 바람직한 일 실시예에 따른 입력 정보 데이터 벡터(sT)와 부행렬 C와의 이진 곱셈을 위한 회로 구성도이다.
도 10은 본 발명의 바람직한 일 실시예에 따른 부행렬 φ-1의 이진 곱셈을 위한 회로 구성도이다.
도 11은 본 발명의 바람직한 일 실시예에 따른 부행렬 B의 이진 곱셈을 위한 회로 구성도이다.
도 12는 본 발명의 바람직한 일 실시예에 따른 리차드슨 유형 재킷 LDPC 부호의 BER 성능을 나타내는 도면이다.
본 발명은 리차드슨 유형 재킷 LDPC(low density parity check) 부호 생성장치 및 방법에 관한 것으로, 보다 상세하게는 리차드슨 유형 LDPC 부호 계열의 패리티 검사 행렬을 재킷 행렬과 이의 행렬 확장 및 소거 기법을 이용하여 부호화에 필요한 곱셈 연산 회수(number of multiplying operation)의 대폭적인 감축에 의한 고속 부호화 방법 및 이를 이용한 고속 부호화기에 관한 것이다.
채널부호화 기술은 그 채널의 성격에 따라 여러 가지 형태로 변형될 수 있으나, 기본적인 방법으로는 오류 정정 부호(error-correcting code)가 사용된다. 오류 정정 부호의 궁극적인 목표는 신뢰할 수 없는 채널 상에서 신뢰할 수 있는 통신 을 달성하는 방법을 제시하는 것이다.
다시 말해서 채널 상에서 전송하기 전에 채널부호를 사용하여 부호화한 후 수신단에서 채널 출력으로부터 원 정보와 같은 정보를 추출하는 것이다. 이러한 시스템의 기본적인 특성은, 정보에 대한 적절한 부호화가 이루어지는 경우 잡음이 있는 채널에 의해 발생하는 오류를 정보 전송율의 손실 없이 최대한으로 줄일 수 있는 한계가 존재한다는 샤논(Shannon)의 채널부호화 이론에 근거한다.
이러한 부호들을 체계적으로 연구하는 부호 이론은 지난 수 십년간 눈부신 발전을 거듭해왔다.
이러한 부호들 중에서 1993년에 발표된 터보 부호는 RSC(recursive systematic convolutional) 부호를 병렬로 연접하여 부호화하며 준 최적 복호 방법인 반복 복호(iterative decoding)를 통하여 복호 동작을 수행하게 된다.
또한, 터보 부호는 인터리버의 크기가 크고 반복복호가 충분히 수행되었을 때 BER(bit error rate)의 관점에서 샤논의 한계에 근접하는 우수한 성능을 보인다.
그러나 이러한 터보 부호를 사용하는 경우 많은 연산량에 따른 복잡성의 증가, 인터리버와 반복 복호수에 따른 지연, 및 실시간 처리의 어려움이라는 문제점을 안고 있다.
이에 대한 대안으로 기존의 터보 부호보다 복잡도나 성능 면에서 우수한 부호 특성을 보여주는 LDPC(low density parity check) 부호가 많은 관심을 불러일으키고 있다.
이 LDPC 부호는 1962년 Gallager에 의해 처음 제안되었으며, 패리티 검사행렬 H의 원소들의 대부분이 '0'인 선형 블록 부호(linear block code)로서 당시의 기술력으로 구현이 불가능한 복호의 복잡도로 인해 오랫동안 잊혀져 왔다.
그러나 Mackay와 Neal은 이를 재발견하였고, Gallager의 간단한 확률적(probabilistic) 복호법을 이용하여 성능이 매우 우수함을 보였다.
LDPC 부호는 행렬안의 1의 개수가 적은(sparse) 패리티 검사 행렬에 의해 정의되며, 패리티 검사 행렬의 패턴에 따라 랜덤 LDPC 부호와 결정적 LDPC 부호 등으로 세분된다.
랜덤 LDPC 부호가 결정적 LDPC 부호에 비해 약간 우수한 특성을 가지고 있지만 구현이 복잡하므로 비교적 우수한 특성과 구현이 용이한 결정적 LDPC 부호가 최근 관심을 모으고 있다.
LDPC 부호는 복잡도와 성능 면에서 터보 부호와 비교했을 때 상당한 경쟁자로 여겨지고 둘 다는 제한된 랜덤 부호의 모임들과 반복 복호 알고리즘이라는 유사한 철학에 근거한다. 특히 LDPC 부호는 터보 부호보다 점진적으로 더 낳은 성능을 보인다.
그리고 성능과 복호 복잡도 간에 광범위한 trade-off를 인정한다. LDPC 부호와 관련된 주된 문제점은 그것들의 명백히 높은 부호화 복잡도이다. 최근에 리차드슨(Richardson)은 LDPC 부호의 대략적인 하 삼각분해에 근거한 일반적인 효율적인 부호화 알고리즘을 소개했다.
그러나 리차드슨(Richardson) 형태의 계산은 여러 서브 행렬 연산에 근거한 다. 따라서 패리티 체크 행렬 H의 선택이 적절하게 되지 않으면 변환과 행렬 처리과정의 복잡도는 더 높아진다.
본 발명이 이루고자 하는 기술적 과제로 리차드슨 유형 LDPC 부호 계열의 패리티 검사 행렬을 다수의 부행렬들로 분해하여 표시하고, 각 부행렬들은 엘레멘트 인버스(element inverse) 특성을 갖는 재킷 행렬과 이의 행렬 확장 및 소거 기법을 이용하여 부호화에 필요한 곱셈 연산 회수(number of multiplying operation)의 대폭적인 감축에 의한 고속 부호화 방법 및 이를 이용하여 고속 부호화기를 제공하는 것이다.
본 발명이 이루고자 하는 다른 기술적 과제로 cycle-4를 쉽게 피하고 가변 부호율과 길이로 접근할 수 있게 하는 재킷 패턴과 CPM(circulant permutation matrix)으로부터 간단한 H 패리티 체크 행렬을 제안한다. 결과적으로 서브행렬 연산은 여러 CPM들의 곱셈들이 될 것이고 본 발명에서는 서브행렬의 곱셈연산을 파이프 구조로 구현함으로써 리차드슨(Richardson) 형태의 계산들이 더욱 간단하게 된다.
상기 기술적 과제를 해결하기 위하여 본 발명이 제시하는 리차드슨 유형 재킷 LDPC 부호의 생성 방법 및 고속 부호기는 패리티 검사 행렬을 다수의 부행렬들로 분해하여 표시하고, 각 부행렬들은 엘레멘트 인버스(element inverse) 특성을 갖는 재킷 행렬과 이의 행렬 확장 및 소거 기법을 이용한 리차드슨 LDPC 부호 계열 의 간단한 생성 방법의 제공 및 이러한 방법으로 생성된 패리티 검사 행렬을 이용하여 매우 빠른 부호화가 가능한 고속 LDPC 부호기를 간단한 하드웨어를 이용하여 구성하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위하여 본 발명에서 제시하는 리차드슨 유형 재킷 LDPC 부호 생성장치는 정방행렬의 역행렬이 각 성분들의 역으로 나타나는 재킷패턴을 기반으로 한 재킷행렬을 생성하는 재킷패턴 생성부, 요구되는 부호율을 만족시키기 위하여 상기 재킷패턴 생성부에서 생성된 재킷행렬의 크기를 기초로 순환치환행렬의 크기를 결정하는 소수(P)를 산출하는 부호율 및 부호길이 제어부, 상기 재킷패턴 생성부에서 생성된 재킷행렬에 영(zero)을 삽입하여 비정방 재킷행렬을 생성하는 제로 패딩 및 소거부, 상기 부호율 및 부호길이 제어부에서 산출된 소수(P)를 기초로 대각적인(diagonal) 인자만을 가지는 단위행렬의 제1순환치환행렬을 생성하고, 상기 재킷행렬의 각 인자에 맞추어 상기 제1순환치환행렬을 쉬프트하여 생성가능한 모든 제2순환치환행렬을 생성하는 CPM 삽입부 및 상기 비정방 재킷행렬과 상기 제2순환치환행렬을 기초로 리차드슨 유형 H 행렬을 생성하는 H 행렬 생성부를 포함하는 것을 특징으로 한다.
또한, 상기 제로 패딩 및 소거부는 상기 부호율 및 부호길이 제어부의 소수(P)를 산출하는 과정에서 상기 재킷행렬의 일부 열과 행을 소거하여 비정방 재킷행렬을 생성하는 것을 특징으로 한다.
또한, 상기 CPM 삽입부는 상기 재킷행렬의 각 인자에 맞추어 생성된 제2순환치환행렬을 상기 재킷행렬에 치환 또는 삽입하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위하여 본 발명이 제시하는 리차드슨 유형 재킷 LDPC 부호 생성장치는 일반 H 행렬에서 상기 H 행렬의 행 간에 순서를 바꾸어 T 부분이 하삼각이 되도록 하고 이에 따라 A, B, C, D, E를 구분한 형태의 패리티 검사행렬에 있어서 입력 정보 데이터 벡터(sT)와 상기 부행렬(A)간의 이진곱셈을 수행하고, 상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(C)간의 이진곱셈을 수행하여 각각의 결과값을 더하여 초기값을 생성하는 제1처리부, 상기 제1처리부에서 생성된 초기값과 의 연산을 통하여 얻은 φ의 각 성분들을 역으로 나타내는 과정을 통하여 생성된 부행렬(φ-1)간의 이진곱셈을 수행하여 페리티 비트()를 생성하는 제2처리부 및 상기 제2처리부에서 생성된 페리티 비트()와 부행렬(B)간의 이진곱셈을 수행하여 상기 제1처리부에서 상기 입력정보 데이터 벡터(sT)와 상기 부행렬(A)간의 이진곱셈을 수행한 결과값과 더하여 페리티 비트()를 생성하는 제3처리부를 포함하는 것을 특징으로 한다.
또한, 상기 제1처리부는 상기 입력 정보 데이터 벡터(sT)를 순차적으로 출력하는 멀티플레서, 상기 멀티플레서에서 순차적으로 출력할 수 있도록 데이터 선택 신호를 생성하여 상기 멀티플레서를 제어하는 데이터 선택부 및 상기 멀티플레서에서 출력되는 입력 정보 데이터 벡터(sT)를 입력받아 상기 부행렬(A)을 순환치환행렬로 구성하여 상기 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 상기 멀티플레서로 피드백하여 순환쉬프트 과정을 수행하는 쉬프트 레지스터를 포함하는 것을 특징으로 한다.
또한, 상기 제1처리부는 상기 입력 정보 데이터 벡터(sT)를 순차적으로 출력하는 멀티플레서, 상기 멀티플레서에서 순차적으로 출력할 수 있도록 데이터 선택신호를 생성하여 상기 멀티플레서를 제어하는 데이터 선택부 및 상기 멀티플레서에서 출력되는 입력 정보 데이터 벡터(sT)를 입력받아 상기 부행렬(C)을 다수의 순환치환행렬로 구성하여 상기 각각의 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 상기 멀티플레서로 피드백하여 순환쉬프트 과정을 수행하는 쉬프트 레지스터를 포함하는 것을 특징으로 한다.
또한, 상기 제1처리부는 상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(A)간의 이진곱셈 결과값 및 상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(C)간의 이진곱셈 결과값을 분산시켜 더하는 EXOR 게이트를 포함하는 것을 특징으로 한다.
또한, 상기 제2처리부는 상기 제1처리부로부터 입력된 초기값을 순차적으로 출력하는 멀티플레서, 상기 멀티플레서에서 순차적으로 출력할 수 있도록 데이터 선택신호를 생성하여 상기 멀티플레서를 제어하는 데이터 선택부 및 상기 멀티플레 서에서 출력되는 초기값들을 입력받아 상기 부행렬(φ-1)을 순환치환행렬로 구성하여 상기 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 상기 멀티플레서로 피드백하여 순환쉬프트 과정을 수행하는 쉬프트 레지스터를 포함하는 것을 특징으로 한다.
또한, 상기 쉬프트 레지스터에서 출력된 각각의 결과값을 분산시켜 더하는 EXOR게이트를 더 포함하는 것을 특징으로 한다.
또한, 상기 φ를 구할 때 상기 D 행렬이 영행렬(null)인 경우에는 상기 쉬프트 레지스터에서 상기 부행렬(φ-1)의 첫번째 행 블록에 의한 결과값만을 구하여 그 결과값을 나머지 행 블록에 삽입하고, 상기 D 행렬이 영행렬(null)이 아닌 경우에는 상기 쉬프트 레지스터에서 상기 부행렬(φ-1)의 전체 행 블록에 대한 결과값을 모두 구하는 것을 특징으로 한다.
또한, 상기 제3처리부는 상기 제2처리부로부터 입력된 페리트 비트()를 순차적으로 출력하는 멀티플레서, 상기 멀티플레서에서 순차적으로 출력할 수 있도록 데이터 선택신호를 생성하여 상기 멀티플레서를 제어하는 데이터 선택부 및 상기 멀티플레서에서 출력되는 페리트 비트()를 입력받아 상기 부행렬(B)을 순환치환행렬로 구성하여 상기 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 상기 멀티플레서로 피드백하여 순환쉬프트 과정을 수행하는 쉬프트 레지스터를 포함하는 것을 특징으로 한다.
또한, 상기 쉬프트 레지스터에서 출력된 각각의 결과값을 분산시켜 더하는 EXOR게이트를 더 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위하여 본 발명이 제시하는 리차드슨 유형 재킷 LDPC 부호 생성방법은 (a)정방행렬의 역행렬이 각 성분들의 역으로 나타나는 재킷패턴을 기반으로 한 재킷행렬을 생성하는 단계, (b)요구되는 부호율을 만족시키기 위하여 상기 재킷패턴 생성부에서 생성된 재킷행렬의 크기를 기초로 순환치환행렬의 크기를 결정하는 소수(P)를 산출하는 단계, (c)상기 (a)단계에서 생성된 재킷행렬에 영(zero)을 삽입하여 비정방 재킷행렬을 생성하는 단계, (d)상기 (b)단계에서 산출된 소수(P)를 기초로 대각적인(diagonal) 인자만을 가지는 단위행렬의 제1순환치환행렬을 생성하고, 상기 재킷행렬의 각 인자에 맞추어 상기 제1순환치환행렬을 쉬프트하여 생성가능한 모든 제2순환치환행렬을 생성하는 단계 및 (e)상기 비정방 재킷행렬와 상기 제2순환치환행렬을 기초로 리차드슨 유형 H 행렬을 생성하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 (c)단계는 상기 (b)단계의 소수(P)를 산출하는 과정에서 상기 재킷행렬의 일부 열과 행을 소거하여 비정방 재킷행렬을 생성하는 것을 특징으로 한다.
또한, 상기 (d)단계는 상기 재킷행렬의 각 인자에 맞추어 생성된 제2순환치환행렬을 상기 재킷행렬에 치환 또는 삽입하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위하여 본 발명에서 제시하는 리차드슨 유형 재킷 LDPC 부호 생성방법은 일반 H 행렬에서 상기 H 행렬의 행 간에 순서를 바꾸어 T 부분이 하삼각이 되도록 하고 이에 따라 A, B, C, D, E를 구분한 형태의 패리티 검사행렬에 있어서, (a)입력 정보 데이터 벡터(sT)와 상기 부행렬(A)간의 이진곱셈을 수행하고, 상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(C)간의 이진곱셈을 수행하여 각각의 결과값을 더하여 초기값을 생성하는 단계, (b)상기 (a)단계에서 생성된 초기값과 의 연산을 통하여 얻은 φ의 각 성분들을 역으로 나타내는 과정을 통하여 생성된 부행렬(φ-1)간의 이진곱셈을 수행하여 페리티 비트()를 생성하는 단계 및 (c)상기 (b)단계에서 생성된 페리티 비트()와 부행렬(B)간의 이진곱셈을 수행하여 상기 (a)단계에서 상기 입력정보 데이터 벡터(sT)와 상기 부행렬(A)간의 이진곱셈을 수행한 결과값과 더하여 페리티 비트()를 생성하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 (a)단계는 (a1)상기 입력 정보 데이터 벡터(sT)를 순차적으로 출력하는 단계 및 (a2)상기 (a1)단계에서 출력되는 입력 정보 데이터 벡터(sT)를 입력받아 상기 부행렬(A)을 순환치환행렬로 구성하여 상기 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 피드백하 여 순환쉬프트 과정을 수행하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 (a)단계는 (a3)상기 입력 정보 데이터 벡터(sT)를 순차적으로 출력하는 단계 및 (a4)상기 (a3)단계에서 출력되는 입력 정보 데이터 벡터(sT)를 입력받아 상기 부행렬(C)을 다수의 순환치환행렬로 구성하여 상기 각각의 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 피드백하여 순환쉬프트 과정을 수행하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 (a)단계는 상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(A)간의 이진곱셈 결과값 및 상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(C)간의 이진곱셈 결과값을 분산시켜 더하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 (b)단계는 (b1)상기 (a)단계로부터 생성된 초기값을 순차적으로 출력하는 단계 및 (b2)상기 (b1)단계에서 출력되는 초기값들을 입력받아 상기 부행렬(φ-1)을 순환치환행렬로 구성하여 상기 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 피드백하여 순환쉬프트 과정을 수행하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 (b2)단계에서 출력된 각각의 결과값을 분산시켜 더하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 상기 φ를 구할 때 상기 D 행렬이 영행렬(null)인 경우에는 상기 (b2) 단계에서 상기 부행렬(φ-1)의 첫번째 행 블록에 의한 결과값만을 구하여 그 결과값을 나머지 행 블록에 삽입하고, 상기 D 행렬이 영행렬(null)이 아닌 경우에는 상기 (b2)단계에서 상기 부행렬(φ-1)의 전체 행 블록에 대한 결과값을 모두 구하는 것을 특징으로 한다.
또한, 상기 (c)단계는 (c1)상기 (b)단계로부터 생성된 페리트 비트()를 순차적으로 출력하는 단계 및 (c2)상기 (c1)단계에서 출력되는 페리트 비트()를 입력받아 상기 부행렬(B)을 순환치환행렬로 구성하여 상기 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 피드백하여 순환쉬프트 과정을 수행하는 단계를 포함하는 것을 특징으로 한다.
또한, 상기 (c2)단계에서 출력된 각각의 결과값을 분산시켜 더하는 단계를 더 포함하는 것을 특징으로 한다.
이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다.
도 1은 리차드슨 유형 LDPC 부호의 패리티 검사 행렬을 나타내는 도면이다.
Richardson과 Urbanke가 제안한 효율적인 부호화 기법은 생성 행렬 없이 패리티 검사 행렬의 재구성을 통하여 패리티 검사 행렬만을 이용하여 부호화가 가능하도록 하는 기법이다.
일반적으로 패리티 검사 행렬 H에 의하여 정의된 LDPC 부호의 부호어 는 다 음을 만족한다.
이러한 성질을 이용하여 부호어를 생성하기 위하여 가우스 소거법을 이용하여 다음과 같이 하삼각 (lower triangular) 행렬 구조로 만들 수 있다.
이러한 구조를 이용하여 부호기를 구성할 경우 부호어를 x=(s,p)라 할 때 n-m길이의 정보 비트 s를 패리티 검사 행렬의 앞부분에 곱하고 나머지 패리티 비트 pl은 아래의 식을 이용하여 순차적으로 구할 수 있다.
이렇게 부호기를 구성하는 경우 가우스 소거법에 의하여 행렬 H의 1이 적은 성질이 사라지게 되므로 복잡도는 O(n2)이 된다.
부호기의 복잡도를 줄이기 위하여 리차드슨(Richardson)은 가우스 소거법을 사용하는 대신 행렬 H의 행과 열을 치환하는 것만을 허용하여 1이 적은 성질이 그 대로 유지되도록 하였다.
치환만을 이용하여 행렬 H를 재구성하는 경우 도 1과 같이 완벽한 하삼각 구조가 아닌 근사 하삼각(ALT; approximate lower triangular) 행렬 구조를 가지게 된다.
이러한 구조를 가진 행렬 H를 부호화를 위하여 다음과 같은 6개의 부분으로 나눌 수 있다.
이 행렬의 E 부분을 0으로 만들기 위하여 다음과 같은 행렬을 곱하여 새로운 행렬을 얻을 수 있다.
새로운 행렬에 대하여 부호어를 x(s, p1, p2)라 할 때 부호어는 다음의 두 식을 만족한다.
이러한 부호화 방식을 사용하는 경우 복잡도는 O(n+g2)이 되어 g의 크기를 최대한 작게 할 경우 거의 O(n)에 가까운 복잡도를 얻을 수 있다.
부호화는 다음의 절차에 따라 수행된다.
도 3은 리차드슨 유형 LDPC 부호 생성기의 구조를 나타내는 도면이다.
먼저 부행렬 연산 블록 A(300)와 부행렬 연산 블록 C(310)은 각각 입력 정보 데이터 벡터 sT와 부행렬 A 및 C 간의 이진 곱셈을 수행한다.
부행렬 연산 블록 A(300)의 계산 결과는 부행렬 연산 블록 ET-1(320)에서 부행렬 ET- 1와 이진 곱셈된 후 부행렬 연산 블록 C(310)의 결과와 EXOR 게이트(330)에 의해 이진 가산된다.
첫 번째 패리티 벡터인 은 부행렬 연산 블록 B(350)에서 부행렬 B와 이진 곱셈된 후 EXOR 게이트(360)에 의해 부행렬 연산 블록 A(300)의 계산 결과와 이진 가산된다.
도 4는 본 발명의 바람직한 일 실시예에 따른 리차드슨 유형 재킷 LDPC 부호의 생성 알고리즘을 나타내는 도면이다. 도 4를 참조하면, LDPC 부호 생성장치는 재킷패턴 생성부(400), 부호율 및 부호길이 제어부(410), CPM 삽입부(420), 제로 패딩 및 소거부(430) 및 H 행렬 생성부(440)을 포함하여 구성된다.
먼저, 재킷 패턴 생성부(400)는 다음의 재킷 행렬 이론에 근거한다.
일반적으로 Sylvester Hadamard 행렬이 원소는 +1 또는 -1로 구성된다. 따라서 이러한 행렬의 계산은 단지 가산과 감산만으로 수행된다.최근에는 중앙 가중치 하다마드 행렬을 일반화한 재킷(Jacket) 행렬이 소개되었다.
재킷 행렬이라는 명칭은 뒤집어 입는 재킷(reversible jacket)의 기하 구조(geometric structure)에서 유래한다. 이는 기존의 일반적인 하다마드 행렬을 포함하지만, 가중치 ω를 가지며, ω는 j 또는 2k이다. 여기서 k는 정수, j는 허수 단위(imagination unit), , 하다마드 행렬의 중앙부에 위치한다.
전방(forward) 행렬의 가중치 원소의 위치는 이의 역 행렬의 비가중치 원소에 의해 대체될 수 있지만 이들의 부호(signs)는 전방 행렬과 역 행렬에서 변하지 않는다.
이는 매우 흥미로운 상보 행렬 관계를 의미하며, 재킷 행렬은 다음과 같이 정의된다.
<정의 1>
비영(零) 원소로 이루어진 다음과 같은 크기 m×m의 행렬 [J]m에 대해
이의 역 행렬은
와 같은 경우 이를 재킷 행렬이라 한다.
흥미로운 행렬들, Hadamard 행렬, DFT(discrete Fourier transform) 행렬 등의 대다수의 유용한 행렬 역시 재킷 계열에 포함된다. 본 발명에서는 복소수 필드 상에서 재킷 행렬의 부류를 이용한다. p를 홀수 소수(odd prime), 원시 원소를 라 하자. 따라서 이고 〈a·b〉 연산을 하는 는 유한체이고 여기서,
이제 다음의 벡터를 정의한다.
예를 들어 p=5라 하면
그리고
이는 재킷 패턴에 근거한 이진 저밀도 행렬의 한 형태를 나타낸다.
두 번째, 부호율 및 부호길이 제어부(410)은 다음과 같이 수행된다.
(k×k)재킷 행렬이 주어진 경우 LDPC 부호의 부호 길이 N은 N≤(p×k)으로 주어지며, 여기서 p는 CPM의 크기를 결정하는 소수(prime number)이다.
LDPC 부호의 부호율(rate) R은 R=(N-M_/N과 같으며, 여기서 M은 정보 데이터 벡터의 길이를 나타낸다. 또한, 행 무게(row weight) j는 (j×p)≤M를 만족하도록 결정된다.
세 번째, CPM 삽입부(420)는 다음과 같이 수행된다.
재킷 패턴 상의 저밀도 행렬에 대한 CPM 삽입은 다음의 정의에 따르며, 이러한 방법으로 CPM으로부터 확장되는 LDPC 부호를 얻게 된다.
<정의 2>
라 하자. 여기서
행렬 Eh, 0≤h≤p-1는 CPM으로서 참조된다. 가 기존의 행렬 곱I=Ep과 를 갖는 아벨 군(Abelian group)을 형성한다는 것을 알 수 있다. 또한 CPM의 전치(transpose)는 이의 역이 된다.
이하에서는 재킷 패턴 상의 저밀도 행렬의 정의를 사용해서 CPM으로부터 확장되는 LDPC 부호의 부호화 형태를 제시한다.
, p=5
네 번째, Zero 패딩 및 소거부(430)는 다음과 같이 수행된다.
상기 [수학식 20]에 의한 저밀도 재킷 행렬 계열에서 cycle-4는 쉽게 피할 수 있다. 그러나 그것은 정방행렬이다.
행과 열의 소거(canceling)에 의해 쉽게 비정방 패리티 검사 행렬 H를 얻을 수 있다. 예를 들어 크기 3p×kp인 (3,k) 균일 LDPC 부호는[J]p패턴의 저밀도 행렬에 의해 설계되어지고 p≥k이면 다음과 같이 나타낼 수 있다.
또한 더 좋은 부호를 얻기 위해서 다음과 같이 zero 패딩(padding) 방법을 적용할 수 있다.
마지막으로, 새로운 H 행렬 생성부(440)에서는 생성된 LDPC 행렬을 저장한 후 종료한다.
도 5는 본 발명의 바람직한 일 실시예에 따른 리차드슨 유형 재킷 LDPC 부호의 패리티 검사 행렬을 나타내는 도면이다.
분명히 이 재킷 패턴에 의한 LDPC 부호 계열은 다음과 같은 Richardson형 부호를 쉽게 생성할 수 있다.
특히, 재킷 패턴 m×n H 행렬은 도 5와 같이 나타낼 수 있다. 여기서 T는 p×p 단위행렬(identity matrix)이고, 나머지 {A, B, C, D, E}는 좀 더 간단한 연 산의 여러 CPM에 의해서 구해진다.
예를 들어 Richardson의 ALT LDPC 부호는 [수학식 20]의 역순 형태(reversing form)로부터 다음과 같은 방법으로 구해진다.
이 경우에
패리티 검사 비트들은 (p1, p2)와 체계적인 부분인 s에 의해 얻어지고, 그 함수들은 다음과 같이 계산되어 진다.
여기서 이고 재킷 패턴의 저밀도 부호들이 사용될 경우 이는 분명히 non-singular이다. 재킷 패턴에 의해 구성된 Richardson의 ALT LDPC 부호의 경우 [수학식 22]에서 보여진 것처럼 역순 형태를 사용해서 T=I이 되도록 할 수 있으며, 크기 (m-p)×p의 를 얻을 수 있다. 결국 [수학식 23], [수학식 24]는 다음과 같이 단순화된다.
리차드슨(Richardson)의 ALT LDPC 부호와 유사한 행렬 구조를 갖는 재킷 패턴을 이용한 근사 하삼각 LDPC 부호는 CPM과 이들의 곱셈을 사용함으로써 간단히 부호화 되어질 수 있다는 것은 분명하다. 이러한 계열의 LDPC 부호에 대한 계산 복잡도는 매우 낮아지게 되어 고속 부호화를 실현할 수 있다.
이하에서는 리차드슨(Richardson)에 의한 ALT 부호화 재킷 패턴과 CPM에 의한 리차드슨 유형 ALT 부호의 생성 예를 설명한다.
다음과 같은 패리티 검사 행렬을 이용한 예를 제시한다.
위의 것과 동등한 형태는 다음처럼 계산되어져야 한다.
그리고 이 행렬은 다음과 같이 나눠질 수 있다.
그러면 그 형태는 다음과 같다.
위의 예에서 다음을 얻는다.
그리고 -ET-1A+C과 -ET-1B+D가 얻어진다.
반면 재킷 패턴에 의한 저밀도 행렬이 사용된다면 다음과 쓸 수 있다.
그리고 이진 행렬은 다음과 같이 구성된다.
적당한 부호 길이를 얻기 위해 음영 표시된 부분을 제거하면 다음과 같이 쓸 수 있다.
E=[1 0 0 0 0], 이들 행렬들의 계산은 매우 간단해질 것이다. 그러나 이 경우 가중치 1 부호어들이 패리티 검사 행렬 안에 매우 많아서 반복 복호와 에러 정정능력에 좋지 않다.
그러므로 더 좋은 부호를 얻기 위해서 다음과 같이 다른 저밀도 행렬 설계를 사용한다.
행렬 크기는 6×12 이고 다음과 같이 패턴을 자를 수 있다.
(단, 이는 단지 확장 방법의 하나일 뿐이며, 큰 행렬을 만들고 여러 줄을 제 거하는 다른 방법들도 가능하다. 그러므로 재킷 패턴의 확장과 감소는 매우 용이하다.)
그런 다음, 다음과 같이 0을 추가한 확장을 얻는다.
따라서 H행렬은 다음과 같은 형태이다.
그러면 최종 H행렬은 다음과 같다.
가중치 1인 부호어들의 수는 H로부터 감소되어질 수 있고 이 행렬은 다음과 같은 형태를 갖는다.
비슷하게, -ET-1A+C과 -ET-1B+D가 계산된다.
분명히 재킷 패턴의 저밀도 행렬이 사용되면 A, B, C, D, E에 의한 계산들은 매우 간단함을 알 수 있다.
상기 내용을 간단히 정리하면,
- 재킷패턴 생성부는 재킷패턴을 기반으로 k*k의 재킷행렬을 생성한다.
- 부호율 및 부호길이 제어부는 요구되는 부호율을 만족시키기 위하여 생성된 재킷행렬의 k*k 크기를 기초로 생성될 CPM 크기(p*p)를 결정짓는 소수 p 값을 산출한다.
- 제로패딩 및 소거부는 정방행렬에 비하여 우수한 성능결과를 가지는 비정방행렬을 생성하기 위함이며, 생성된 재킷패턴을 기초로 이 행렬에 0을 삽입하여 비정방재킷 행렬을 생성할 수 있다. 또 다른 비정방행렬 생성 방식은 재킷 행렬의 일부 열과 행을 소거함으로써 수행될 수 있다.
특히 제로패딩 및 소거 방식은 비정방행렬 생성과 더불어 부호율 및 길이를 효과적으로 만족시킬 수 있는 기능을 추가로 제공한다(제로 패딩 및 소거부는 부호율 및 부호길이 제어부의 최적의 p 산출을 위한 과정에서 동시에 수행 가능하다).
- CPM 삽입부는 산출된 p를 기초로 p*p의 diagonal 인자만을 가지는 단위 행렬의 CPM을 생성하고 재킷 행렬의 각 인자에 맞게 CPM을 쉬프트하여 모든 가능한 CPM을 생성한다. 재킷행렬의 각 인자와 맞는 생성된 CPM을 재킷행렬에 치환/삽입한다(제로패딩 및 소거부 수행 이후 CPM 생성 및 삽입을 수행).
- H 행렬 생성부 재킷행렬과 재킷패턴과 CPM으로 생성된 행렬을 기초로 Richardson 형 H 행렬을 생성한다.
이를 이용하여 다음과 같은 예를 들 수 있다.
Cyclic-4는 매트릭스 상에 1로 표현된 인자들 중 4개의 인자들이 아래 그림과 같이 loop를 형성하는 형태이다. 이러한 Clyclic-4는 LDPC 부화화 기법의 성능에 중요한 요소로써 복화화 과정에서 다른 인자들간의 연산을 할 수 없고 4개의 인자에 대해서만 loop를 형성하므로 성능이 열화의 원인이 된다.
그러나 재킷 행렬 및 CPM을 기반으로 할 경우 각 재킷행렬의 인자는 첫번째 행과 첫번째 열을 제외한 모든 행과 열에 서로 다른 인자를 가지게 되고, 재킷 행렬의 각 인자로 치환되는 CPM은 하나의 행과 열에 하나의 인자를 가지므로 아래 그림과 같이 loop를 피할 수 있다.
도 6은 본 발명의 바람직한 일 실시예에 따른 리차드슨 유형 재킷 LDPC 부호기의 구조를 나타내는 도면이다. 도 6a는 종래 리차드슨에 의해 제시된 도 3의 부호기 구조와 비교하여 부행렬 T가 단위행렬 I로 대체되어 있음을 보여준다. 이는 더 이상 부행렬 T에 대한 이진 곱셈이 필요치 않음을 의미한다. 도 6b는 도 6a에서 이진 곱셈이 필요치 않은 부행렬을 제거함으로써 더욱 단순하며 고속 복호가 가능한 재킷 LDPC 부호기 구조도의 일실시예이다.
도 7은 본 발명의 바람직한 일 실시예에 따른 리차드슨 유형 재킷 LDPC 부호기에 CPM(circulant permutation matrix) 특성을 반영하여 단순화시킨 파이프라인(pipeline) 부호기의 구조를 나타내는 도면이다.
다수의 부행렬 연산 블록으로 구성되어 있는 점은 리차드슨에 의해 제시된 도 3의 부호기 구조와 유사하지만 다음과 같은 차이점을 갖는다.
첫째, 본 발명에서 제안된 부호기 구조에서는 각 부행렬 연산블록이 CPM 특성에 의해 단순한 시프트 레지스터 블록만으로 구현되는 점이 다르다.
둘째, 리차드슨에 의해 제시된 도 3의 부호기 구조에 비해 더 적은 부행렬 연산 블록을 갖기 때문에 더 낮은 하드웨어 복잡도를 갖는다.
상기 차이점으로 인해 본 발명에 의한 부호기는 종래의 부호기에 비해 더 간단한 하드웨어로 동일한 기능을 실현할 수 있으며, 또한 종래의 부호기에 비해 더 욱 빠른 부호화가 가능한 장점을 갖는다.
도 7은 3개의 스테이지를 순차적으로 통과함으로써 하나의 부호어가 완성되지만, 3개의 스테이지로 구성되는 파이프라인 구조를 이루고 있으며, 이는 스테이지 2에서 하나의 부호어에 대한 부행렬 연산을 수행하고 있다면, 스테이지 1에서는 또 하나의 부호어에 대한 부행렬 연산이 동시에 수행됨을 의미한다.
스테이지 1은 부호화를 수행한 입력 소스 데이터와 각 행렬간의 곱을 통하여 부호화 과정의 초기 값을 생성하는 부분이고, 스테이지 2는 Φ-1의 곱 연산을 수행하는 부분으로서 p1의 페리티 비트를 실질적으로 생성하는 부분이고, 스테이지 3는 p2 페리티 비트를 생성하는 부분이다.
도 7의 스테이지 1은 부행렬 연산 블록 A(700), 부행렬 연산 블록 C(710) 그리고 두 개의 EXOR 게이트(720, 730)로 구성되어 있다.
부행렬 연산 블록 A(700)는 도 5의 부행렬 A와 입력 정보 데이터 벡터(sT)간의 이진 곱셈을 수행하며, 부행렬 연산 블록 C(710)는 도 5의 부행렬 C와 입력 정보 데이터 벡터(sT)간의 이진 곱셈을 수행한다.
그리고 두 개의 EXOR 게이트(720, 730)는 도 3 및 도 6의 부행렬 연산 블록 E에 해당하며, 본 발명에 따른 LDPC 부호의 경우 , 즉 E=I와 같이 단위행렬을 원소로 갖고 있기 때문에 실제 하드웨어 구현 시 이진 곱셈이 필요치 않 으며, 이를 두 개의 EXOR 게이트(720, 730)로 분산시켜 더해주고 있다.
도 7의 스테이지 2는 [수학식 23]의 부행렬에 대한 이진 곱셈을 위한 부행렬 연산 블록(740)만을 포함한다.
도 7의 스테이지 3는 부행렬 연산 블록 B(750)와 하나의 EXOR 게이트(760)로 구성된다.
3개의 스테이지로 구성되는 파이프라인 구조를 이루고 있으며, 이는 스테이지 2에서 하나의 부호어에 대한 부행렬 연산을 수행하고 있다면, 스테이지 1에서는 또 하나의 부호어에 대한 부행렬 연산이 동시에 수행됨을 의미한다.
스테이지 1에서 C1과 C2는 서로 다른 값이다. Ci의 전체 수는 재킷 패턴에 따라 확장이 가능하다.
즉 재킷 패턴에서 생성된 행의 수와 관련이 있으며, 이 행의 수는 T로 결정되는 재킷행렬의 단위 행렬 이외의 나머지 열의 수가 되며, 하나의 Ci 출력 값은 재킷 행렬의 하나의 행에 해당하게 된다.
그리고 각각의 Ci의 출력 결과는 재킷행렬의 인자에 치환되는 CPM에 따라 결정된다.
도 8은 본 발명의 바람직한 일 실시예에 따른 입력 정보 데이터 벡터(sT)와 부행렬 A와의 이진 곱셈을 위한 회로 구성도이며, 도 7의 부행렬 연산 블록 A(700)에 해당된다.
도 8의 멀티플레서(800)는 입력 정보 데이터 벡터(sT)를 p 스테이지 시프트 레지스터(810)에 순차적으로 입력시키기 위해 이용되며, 이때 Data Select 신호는 입력 정보 데이터 벡터 출력하도록 제어하는데 이용된다.
시프트 레지스터(810)에 저장된 입력 정보 데이터 벡터(sT)와 부행렬 A간의 이진 곱셈을 위해서 멀티플레서(800)는 시프트 레지스터의 출력을 시프트 레지스터의 입력으로 피드백시켜 필요한 만큼 순환 시프트(cyclic shift) 과정을 수행하도록 Data Select 신호에 의해 제어된다.
이는 단위행렬의 각 열을 순환 시프트 시켜 구성한 크기의 부행렬 A의 CPM 특성에 의한 것으로 입력 정보 데이터 벡터와 부행렬 A간의 이진 곱셈은 단지 입력 정보 데이터 벡터의 순환 시프트와 동일하다.
제안 부행렬 연산 구조는 중간 결과를 메모리에 저장할 필요가 없기 때문에 메모리 엑세스에 따른 오버헤드가 없으며, 또한 메모리 어드레싱을 위한 부가의 하드웨어를 요구하지 않는 특징이 있으며, 단순한 구조에 의해 고속 부호화가 가능한 장점을 갖는다.
도 9는 본 발명의 바람직한 일 실시예에 따른 입력 정보 데이터 벡터(sT)와 부행렬 C와의 이진 곱셈을 위한 회로 구성도이며, 도 7의 부행렬 연산 블록 C(710)에 해당된다.
도 9의 멀티플레서(900, 920)는 입력 정보 데이터 벡터(sT)를 p 스테이지 시 프트 레지스터(910, 930)에 순차적으로 입력시키기 위해 이용되며, 이때 Data Select 신호는 입력 정보 데이터 벡터(sT) 출력하도록 제어하는데 이용된다.
시프트 레지스터(910, 930)에 저장된 입력 정보 데이터 벡터(sT) 와 부행렬 C 간의 이진 곱셈을 위해서 멀티플레서(900, 920)는 시프트 레지스터의 출력을 시프트 레지스터의 입력으로 피드백시켜 필요한 만큼 순환 시프트(cyclic shift) 과정을 수행하도록 Data Select 신호에 의해 제어된다.
부행렬 C는 CPM 특성을 갖는 부행렬 A와 유사하지만 다수의 CPM 행렬들로 구성되는 점이 다르다. 부행렬 C에 포함된 각 CPM 행렬은 p 스테이지 시프트 레지스터(910, 930)에 의해 개별적으로 부행렬 A와 동일한 방법으로 처리된 후 두 개의 출력 벡터 C1과 C2로 출력된다.
도 10은 본 발명의 바람직한 일 실시예에 따른 부행렬 φ-1의 이진 곱셈을 위한 회로 구성도이다.
D 행렬이 Null인 경우 Φ-1의 행렬은 동일한 행 블록이 반복되어 구성되며 단지 첫 번째 행 블록에 의한 계산 결과를 구하면 충분하다.
나머지 행 블록에 의한 계산 결과는 첫 번째 행 블록에 의한 계산 결과의 복사본에 지나지 않음을 알 수 있다. 또한 첫 번째 행 블록은 다수의 CPM 행렬의 배열로 이루어지며 각 CPM 행렬별로 분리하여 구한 결과를 비트 단위로 가산한 것과 동일하다.
반면에 D 행렬이 Null이 아닌 경우 Φ-1의 행렬은 서로 다른 행 블록으로 구성되며 도 10의 부행렬 연산 블록 Φ-1을 병렬 구성하여 각 행 블록에 대한 계산 결과를 구하게 된다.
이는 Φ-1의 행렬의 크기가 증가하는 경우에도 Φ-1의 행렬의 계산 시간에는 영향을 미치지 않음을 의미한다.
도 11은 본 발명의 바람직한 일 실시예에 따른 부행렬 B의 이진 곱셈을 위한 회로 구성도이다. 도 7의 부행렬 연산 블록 B(760)에 해당되며, 도 10에 나타낸 부행렬 연산 블록 Φ-1과 동일한 구조를 갖는다.
도 8 내지 도 11은 기본적으로 멀티플레서와 p 스테이지 시프트 레지스터로 이루어져 있는데 이러한 구성들의 동작과정을 간략히 설명한다.
예를 들어 A의 부분을 구성하는 재킷 패턴이 1행 2열로 구성된 두 개의 인자를 가지고 있다면 A는 최종적으로 두 개의 CPM으로 구성된다.
이때 소스 비트는 두 개의 CPM에 입력되는 부분으로 구분이 가능하게 된다. 먼저 CPM 두 개 중 앞 부분 하나를 고려할 때 처음 멀티플렉서를 통하여 소스 bit를 쉬프트 레지스터에 입력한다.
이후 출력 결과를 얻기 위해 일반적인 행렬의 곱 대신 CPM의 특성을 이용하여 쉬프트 연산을 통해 결과를 얻는다. CPM의 각 행에서는 서로 다른 열에 1의 인자를 가지므로 입력된 소스 비트 중 해당 열에 맞는 소스 비트를 쉬프트하여 찾아 출력으로 내보냄으로써 매트릭스의 곱연산을 대신 할 수 있다.
이후 두번째 CPM에 대한 출력 결과를 얻기 위해 나머지 소스 비트를 쉬프트 레지스터에 삽입하고 동일한 방식으로 두 번째 CPM의 매트릭스 인자에 맞게 소스 비트를 찾아 출력으로 내보내는 방식이다.
도 7의 C 블록은 전체 H 행렬 중 C의 부분 행렬을 구성하는 재킷 패턴이 서로 다른 행을 가질 수 있으므로 각 행은 병렬적으로 위의 A 블럭과 같이 동작 가능하므로 구분을 지을 수 있는 것이다
도 12는 본 발명의 바람직한 일 실시예에 따른 리차드슨 유형 재킷 LDPC 부호의 BER 성능을 나타내는 도면이다.
시뮬레이션에 적용된 주요 파라미터는 아래 표와 같다. 그림에서 리차드슨(Richardson)에 의해 제시된 근사 하삼각 LDPC 부호의 성능은 '+' 표시되어 있으 며, 제안 부호가 0.5dB 정도의 우수한 성능을 나타내고 있다.
채널 모델 | AWGN |
부호율(R) | R=1/2 |
프레임 크기 | 6비트 |
변조 | BPSK |
최대 반복 복호 수 | 20회 |
복호 알고리즘 | Sum-Product 알고리즘 |
(AWGN 채널, 부호 길이 = 12)
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD_ROM, 자기테이프, 플로피디스크 및 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에서는 패리티 검사 행렬의 각 부행렬은 Null 행렬, 항등행렬, 그리고 항등행렬 의 모든 열을 순환 시프트시킨 구조만으로 구성되므로 부행렬과 정보 벡터간의 연산은 단지 순환 시프트 과정만으로 처리될 수 있다.
또한, 재킷 패턴을 이용한 Richardson 유형 LDPC 부호는 CPM과 이들의 곱셈을 사용함으로써 간단히 부호화 되어질 수 있다. 이러한 계열의 LDPC 부호에 대한 계산 복잡도는 매우 낮아지게 되어, 보다 간단한 하드웨어로 부호기를 구성할 수 있는 장점이 있다.
Claims (25)
- 정방행렬의 역행렬이 각 성분들의 역으로 나타나는 재킷패턴을 기반으로 한 재킷행렬을 생성하는 재킷패턴 생성부;요구되는 부호율을 만족시키기 위하여 상기 재킷패턴 생성부에서 생성된 재킷행렬의 크기를 기초로 순환치환행렬의 크기를 결정하는 소수(P)를 산출하는 부호율 및 부호길이 제어부;상기 재킷패턴 생성부에서 생성된 재킷행렬에 영(zero)을 삽입하여 비정방 재킷행렬을 생성하는 제로 패딩 및 소거부;상기 부호율 및 부호길이 제어부에서 산출된 소수(P)를 기초로 대각적인(diagonal) 인자만을 가지는 단위행렬의 제1순환치환행렬을 생성하고, 상기 재킷행렬의 각 인자에 맞추어 상기 제1순환치환행렬을 쉬프트하여 생성가능한 모든 제2순환치환행렬을 생성하는 CPM 삽입부; 및상기 비정방 재킷행렬과 상기 제2순환치환행렬을 기초로 리차드슨 유형 H 행렬을 생성하는 H 행렬 생성부;를 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성장치.
- 제 1 항에 있어서,상기 제로 패딩 및 소거부는 상기 부호율 및 부호길이 제어부의 소수(P)를 산출하는 과정에서 상기 재킷행렬의 일부 열과 행을 소거하여 비정방 재킷행렬을 생성하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성장치.
- 제 1 항에 있어서,상기 CPM 삽입부는 상기 재킷행렬의 각 인자에 맞추어 생성된 제2순환치환행렬을 상기 재킷행렬에 치환 또는 삽입하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성장치.
- 입력 정보 데이터 벡터(sT)와 상기 부행렬(A)간의 이진곱셈을 수행하고, 상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(C)간의 이진곱셈을 수행하여 각각의 결과값을 더하여 초기값을 생성하는 제1처리부;상기 제1처리부에서 생성된 초기값과 의 연산을 통하여 얻은 φ의 각 성분들을 역으로 나타내는 과정을 통하여 생성된 부행렬(φ-1)간의 이진곱셈을 수행하여 페리티 비트()를 생성하는 제2처리부; 및
- 제 4 항에 있어서, 제1처리부는상기 입력 정보 데이터 벡터(sT)를 순차적으로 출력하는 멀티플레서;상기 멀티플레서에서 순차적으로 출력할 수 있도록 데이터 선택신호를 생성하여 상기 멀티플레서를 제어하는 데이터 선택부; 및상기 멀티플레서에서 출력되는 입력 정보 데이터 벡터(sT)를 입력받아 상기 부행렬(A)을 순환치환행렬로 구성하여 상기 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 상기 멀티플레서로 피드백하여 순환쉬프트 과정을 수행하는 쉬프트 레지스터;를 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성장치.
- 제 4 항에 있어서, 제1처리부는상기 입력 정보 데이터 벡터(sT)를 순차적으로 출력하는 멀티플레서;상기 멀티플레서에서 순차적으로 출력할 수 있도록 데이터 선택신호를 생성하여 상기 멀티플레서를 제어하는 데이터 선택부; 및상기 멀티플레서에서 출력되는 입력 정보 데이터 벡터(sT)를 입력받아 상기 부행렬(C)을 다수의 순환치환행렬로 구성하여 상기 각각의 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 상기 멀티플레서로 피드백하여 순환쉬프트 과정을 수행하는 쉬프트 레지스터;를 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성장치.
- 제 4 항에 있어서, 제1처리부는상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(A)간의 이진곱셈 결과값 및 상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(C)간의 이진곱셈 결과값을 분산시켜 더하는 EXOR 게이트;를 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성장치.
- 제 4 항에 있어서, 제2처리부는상기 제1처리부로부터 입력된 초기값을 순차적으로 출력하는 멀티플레서;상기 멀티플레서에서 순차적으로 출력할 수 있도록 데이터 선택신호를 생성하여 상기 멀티플레서를 제어하는 데이터 선택부; 및상기 멀티플레서에서 출력되는 초기값들을 입력받아 상기 부행렬(φ-1)을 순환치환행렬로 구성하여 상기 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 상기 멀티플레서로 피드백하여 순환쉬프트 과정을 수행하는 쉬프트 레지스터;를 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성장치.
- 제 8 항에 있어서,상기 쉬프트 레지스터에서 출력된 각각의 결과값을 분산시켜 더하는 EXOR게이트;를 더 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성장치.
- 제 8 항에 있어서,상기 φ를 구할 때 상기 D 행렬이 영행렬(null)인 경우에는 상기 쉬프트 레지스터에서 상기 부행렬(φ-1)의 첫번째 행 블록에 의한 결과값만을 구하여 그 결과값을 나머지 행 블록에 삽입하고, 상기 D 행렬이 영행렬(null)이 아닌 경우에는 상기 쉬프트 레지스터에서 상기 부행렬(φ-1)의 전체 행 블록에 대한 결과값을 모두 구하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성장치.
- 제 4 항에 있어서, 제3처리부는상기 멀티플레서에서 순차적으로 출력할 수 있도록 데이터 선택신호를 생성하여 상기 멀티플레서를 제어하는 데이터 선택부; 및
- 제 11 항에 있어서,상기 쉬프트 레지스터에서 출력된 각각의 결과값을 분산시켜 더하는 EXOR게이트;를 더 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성장치.
- (a) 정방행렬의 역행렬이 각 성분들의 역으로 나타나는 재킷패턴을 기반으로 한 재킷행렬을 생성하는 단계;(b) 요구되는 부호율을 만족시키기 위하여 상기 재킷패턴 생성부에서 생성된 재킷행렬의 크기를 기초로 순환치환행렬의 크기를 결정하는 소수(P)를 산출하는 단계;(c) 상기 (a)단계에서 생성된 재킷행렬에 영(zero)을 삽입하여 비정방 재킷행렬을 생성하는 단계;(d) 상기 (b)단계에서 산출된 소수(P)를 기초로 대각적인(diagonal) 인자만을 가지는 단위행렬의 제1순환치환행렬을 생성하고, 상기 재킷행렬의 각 인자에 맞추어 상기 제1순환치환행렬을 쉬프트하여 생성가능한 모든 제2순환치환행렬을 생성하는 단계; 및(e) 상기 비정방 재킷행렬와 상기 제2순환치환행렬을 기초로 리차드슨 유형 H 행렬을 생성하는 단계;를 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성방법.
- 제 13 항에 있어서,상기 (c)단계는 상기 (b)단계의 소수(P)를 산출하는 과정에서 상기 재킷행렬의 일부 열과 행을 소거하여 비정방 재킷행렬을 생성하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성방법.
- 제 13 항에 있어서,상기 (d)단계는 상기 재킷행렬의 각 인자에 맞추어 생성된 제2순환치환행렬을 상기 재킷행렬에 치환 또는 삽입하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성방법.
- (a) 입력 정보 데이터 벡터(sT)와 상기 부행렬(A)간의 이진곱셈을 수행하고, 상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(C)간의 이진곱셈을 수행하여 각각의 결과값을 더하여 초기값을 생성하는 단계;(b) 상기 (a)단계에서 생성된 초기값과 의 연산을 통하여 얻은 φ의 각 성분들을 역으로 나타내는 과정을 통하여 생성된 부행렬(φ-1)간의 이진곱셈을 수행하여 페리티 비트()를 생성하는 단계; 및
- 제 16 항에 있어서, 상기 (a)단계는(a1) 상기 입력 정보 데이터 벡터(sT)를 순차적으로 출력하는 단계; 및(a2) 상기 (a1)단계에서 출력되는 입력 정보 데이터 벡터(sT)를 입력받아 상기 부행렬(A)을 순환치환행렬로 구성하여 상기 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 피드백하여 순환쉬프트 과정을 수행하는 단계;를 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성방법.
- 제 16 항에 있어서, 상기 (a)단계는(a3) 상기 입력 정보 데이터 벡터(sT)를 순차적으로 출력하는 단계; 및(a4) 상기 (a3)단계에서 출력되는 입력 정보 데이터 벡터(sT)를 입력받아 상기 부행렬(C)을 다수의 순환치환행렬로 구성하여 상기 각각의 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 피드백하여 순환쉬프트 과정을 수행하는 단계;를 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성방법.
- 제 16 항에 있어서, 상기 (a)단계는상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(A)간의 이진곱셈 결과값 및 상기 입력 정보 데이터 벡터(sT)와 상기 부행렬(C)간의 이진곱셈 결과값을 분산시켜 더하는 단계;를 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성방법.
- 제 16 항에 있어서, 상기 (b)단계는(b1) 상기 (a)단계로부터 생성된 초기값을 순차적으로 출력하는 단계; 및(b2) 상기 (b1)단계에서 출력되는 초기값들을 입력받아 상기 부행렬(φ-1)을 순환치환행렬로 구성하여 상기 순환치환행렬의 소스 비트 중 해당 열에 맞는 소스 비트를 찾아 출력하고, 상기 출력된 소스 비트를 피드백하여 순환쉬프트 과정을 수행하는 단계;를 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성방법.
- 제 20 항에 있어서,상기 (b2)단계에서 출력된 각각의 결과값을 분산시켜 더하는 단계;를 더 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성방법.
- 제 20 항에 있어서,상기 φ를 구할 때 상기 D 행렬이 영행렬(null)인 경우에는 상기 (b2)단계에서 상기 부행렬(φ-1)의 첫번째 행 블록에 의한 결과값만을 구하여 그 결과값을 나 머지 행 블록에 삽입하고, 상기 D 행렬이 영행렬(null)이 아닌 경우에는 상기 (b2)단계에서 상기 부행렬(φ-1)의 전체 행 블록에 대한 결과값을 모두 구하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성방법.
- 제 23 항에 있어서,상기 (c2)단계에서 출력된 각각의 결과값을 분산시켜 더하는 단계;를 더 포함하는 것을 특징으로 하는 리차드슨 유형 재킷 LDPC 부호 생성방법.
- 제 16 항 내지 제 23 항 중 어느 한 항의 리차드슨 유형 재킷 LDPC 부호 생 성방법을 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060005030 | 2006-01-17 | ||
KR20060005030 | 2006-01-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070076538A true KR20070076538A (ko) | 2007-07-24 |
Family
ID=38501346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070005448A KR20070076538A (ko) | 2006-01-17 | 2007-01-17 | 리차드슨 유형 재킷 ldpc 부호 생성장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20070076538A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710367A (zh) * | 2012-04-16 | 2012-10-03 | 哈尔滨工程大学 | 低密度奇偶校验码与连续相位调制系统中的自适应迭代接收机 |
CN108023673A (zh) * | 2016-11-04 | 2018-05-11 | 清华大学 | 一种多码率多码长ldpc码的构造及编码方法 |
-
2007
- 2007-01-17 KR KR1020070005448A patent/KR20070076538A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710367A (zh) * | 2012-04-16 | 2012-10-03 | 哈尔滨工程大学 | 低密度奇偶校验码与连续相位调制系统中的自适应迭代接收机 |
CN102710367B (zh) * | 2012-04-16 | 2014-10-22 | 哈尔滨工程大学 | 低密度奇偶校验码与连续相位调制系统中的自适应迭代接收机 |
CN108023673A (zh) * | 2016-11-04 | 2018-05-11 | 清华大学 | 一种多码率多码长ldpc码的构造及编码方法 |
CN108023673B (zh) * | 2016-11-04 | 2020-03-27 | 清华大学 | 一种多码率多码长ldpc码的构造及编码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1829223B1 (en) | Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes | |
KR101405962B1 (ko) | Ldpc 코드를 이용한 복호화 방법 | |
US7395494B2 (en) | Apparatus for encoding and decoding of low-density parity-check codes, and method thereof | |
US8352847B2 (en) | Matrix vector multiplication for error-correction encoding and the like | |
US8099646B2 (en) | Low density parity check (LDPC) code | |
KR100996029B1 (ko) | 저밀도 패리티 검사 코드의 부호화 장치 및 방법 | |
EP2176758B1 (en) | Generation of parity-check matrices | |
KR101211433B1 (ko) | 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법 | |
KR100875613B1 (ko) | 송신기를 동작시키기 위한 방법 및 장치 및 수신기를 동작시키기 위한 방법 | |
JP5700041B2 (ja) | 符号化装置、誤り訂正符号構成方法およびそのプログラム | |
JP5774237B2 (ja) | 誤り訂正符号化方法および誤り訂正符号化装置 | |
KR20070035072A (ko) | 데이터를 인코딩 및 디코딩하는 방법 및 장치 | |
JPH09507110A (ja) | 有限体反転 | |
CN109586732B (zh) | 中短码ldpc编解码系统和方法 | |
KR101216075B1 (ko) | 채널 코드를 이용한 복호화 및 복호화 장치 | |
KR101147768B1 (ko) | 채널 코드를 이용한 복호화 방법 및 장치 | |
KR100918741B1 (ko) | 이동 통신 시스템에서 채널 부호화 장치 및 방법 | |
Khodaiemehr et al. | Construction and encoding of QC-LDPC codes using group rings | |
EP2309650A1 (en) | A systematic encoder with arbitrary parity positions | |
KR20070076538A (ko) | 리차드슨 유형 재킷 ldpc 부호 생성장치 및 방법 | |
KR101043558B1 (ko) | 다양한 부호율을 갖는 재킷 패턴 기반의 고속 엘디피씨부호기 | |
EP2951926B1 (en) | Ldpc code design and encoding apparatus for their application | |
EP3526899B1 (en) | Decoding of low-density parity-check convolutional turbo codes | |
Hurley | Convolutional codes from unit schemes | |
KR100800775B1 (ko) | 이동 통신 시스템에서 채널 부호화 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |