KR101211433B1 - 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법 - Google Patents

낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법 Download PDF

Info

Publication number
KR101211433B1
KR101211433B1 KR1020080130462A KR20080130462A KR101211433B1 KR 101211433 B1 KR101211433 B1 KR 101211433B1 KR 1020080130462 A KR1020080130462 A KR 1020080130462A KR 20080130462 A KR20080130462 A KR 20080130462A KR 101211433 B1 KR101211433 B1 KR 101211433B1
Authority
KR
South Korea
Prior art keywords
row
circulators
parity
output
matrix
Prior art date
Application number
KR1020080130462A
Other languages
English (en)
Other versions
KR20100071663A (ko
Inventor
오종의
정민호
이유로
이석규
이용호
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020080130462A priority Critical patent/KR101211433B1/ko
Priority to US12/642,463 priority patent/US20100162074A1/en
Publication of KR20100071663A publication Critical patent/KR20100071663A/ko
Application granted granted Critical
Publication of KR101211433B1 publication Critical patent/KR101211433B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6527IEEE 802.11 [WLAN]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6544IEEE 802.16 (WIMAX and broadband wireless access)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

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

Abstract

본 발명은 낮은 선형적 복잡도를 가진 LDPC (Low Density Parity Check) 부호화를 위하여 IEEE 802.1x표준에 제안된 패리티 검사 행렬을 이용하는 효율적인 부호화 방식에 기인한다. 기존의 제안된 방식으로는 LDPC부호의 임의의 패리티 검사 행렬을 블록화해서 나누고 연관된 행렬 방정식들을 통하여 부호화를 수행하거나, Quasi-Cyclic(QC) LDPC부호의 임의의 패리티 검사 행렬을 이용하여 얻은 생성 행렬과 정보 비트들과의 행렬 곱셈 연산을 순차적인 두 단계로 나누고 각 단계를 cyclic shift-register로 구현한 부호기를 통하여 부호화를 수행하였으나, 본 발명에서 제안하는 방식은 기존의 방식과는 달리 표준에 제안된 이중 대각 패리티 구조를 가지는 패리티 검사 행렬을 이용하여 순차적으로 임시 패리티 비트 생성, 수정 비트 생성, 패리티 비트 수정을 통한 부호화 방식에 패리티 검사 행렬의 quasi-cyclic특성을 적용하여 부분적인 부호화가 연속적으로 실행됨으로써 전체 부호화가 수행되고 또한 여러 정보 벡터들의 연속적인 부호화를 수행할 경우 유휴 상태의 shift-register가 최대한 없도록 함으로써 소요되는 전체 클럭을 경감 시킬 수 있도록 하는 효율적인 부호화 방식 및 부호기의 구현 방식을 새롭게 제시하는 방식이다.
저밀도 패리티 검사(Low Density Parity Check) 부호화, 낮은 선형적 복잡도를 가지는 LDPC부호기, 서큘런트, 쉬프트 레지스터.

Description

낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 장치 및 방법{APPRATUS AND METHOD OF HIGH SPEED QUASI-CYCLIC LOW DENSITY PARITY CHECK CODE HAVING LOW COMPLEXITY}
본 발명은 저밀도 패리티 검사 부호(Low Density Parity Check Code, 이하 "LDPC"라 함)의 부호화 장치 및 방법에 관한 것으로, 특히 준-순환 LDPC(Quasi-Cyclic LDPC, 이하 "QC-LDPC"라 함)의 부호화 장치 및 방법에 관한 것이다.
일반적으로 유무선 통신 시스템이 디지털 시스템으로 발전하면서 송/수신되는 데이터는 부호화되어 전송된다. 이러한 부호화 방식들은 다양한 방면으로 발전하고 있으며, 순방향 오류 정정(FEC) 부호들을 이용하여 수신단에서 송신기로부터 전송된 데이터에 오류가 존재하여도 정정할 수 있는 부호화 방식들이 주류를 이루고 있다. 특히 무선 통신 시스템과 같이 무선 채널 환경에서 데이터의 오류가 빈번하게 발생하는 환경에서는 채널 부호화 방법으로 순방향 오류 정정 부호화 기법이 더욱 필요하게 되었다. 이러한 순방향 오류 정정 부호화 기법으로는 컨볼루션 코드 와 터보 코드 및 LPDC 부호화 방법 등이 있고, 이중 현재 가장 주목받고 있는 부호화 방식으로 LDPC 부호화 방법이 있다.
LDPC 부호화 방법은 Gallager에 의해 도입된 부호이다. LDPC 부호는 극소수의 원소들이 1의 값을 가지며, 나머지인 대부분의 원소들은 0의 값을 갖는 패리티 검사 행렬로 정의된다. LDPC 부호는 균일(regular) LDPC 부호와 비균일(irregular) LDPC 부호로 대별된다. 균일 LDPC 부호는 Gallager가 제안한 LDPC 부호로서, 패리티 검사 행렬내의 모든 행들은 동일한 개수의 1을 원소로 가지며, 모든 열들도 동일한 개수의 1을 원소로 갖는다. 이와는 달리, 비균일 LDPC 부호의 패리티 검사 행렬에는, 서로 다른 개수의 1을 포함하는 행들이 존재하거나, 서로 다른 개수의 1을 포함하는 열들이 존재한다. 일반적으로 비균일 LDPC 부호의 오류 정정 성능이 균일 LDPC 부호보다 우수하다고 알려져 있다.
LDPC 부호화 방법을 간략히 살펴보면, 우선 시스테메틱(systematic)한 방식으로 부호화가 이루어진다는 것을 전제로 한다. 즉 패킷(packet)의 일부분은 입력된 비트(bit)와 동일한 형태로 출력되고, 패킷의 나머지 부분은 부호 검사 비트(parity bit)에 해당하는 부가정보가 이어서 붙여져 나가는 형태를 띠는 것이다. 따라서 입력신호가 부호화 기능을 담당하는 블록에 모두 입력이 되어야 부호화 작업이 이루어진다. 또한 부호율에 따라 패리티 비트(parity bit)가 전체 패킷(packet)에 해당하는 비율은 다르다. 따라서 H 행렬 에 의해 부호율은 고정이 되어있다. 그러면 도 1을 참조하여 부호화가 이루어지는 과정을 LDPC의 예를 들어 살펴보기로 한다.
도 1은 LPDC 부호화 방법의 개념을 설명하기 위한 블록 구성도이다.
LDPC 부호는 선형 블록 부호로서, 기본적인 부호화는 생성행렬과 정보벡터의 곱으로 수행된다. 즉, 도 1에서 LDPC 부호화 되어 출력되는 부호어(codeword)(100)는 전송하고자 하는 정보(Information)(110)와 생성 매트릭스(Generator matrix)(120)의 행렬 곱의 형태로 표현된다. 또한 여기서 생성 매트릭스(120)는 패리티 매트릭스(122)를 포함하고 있다. 또한 LDPC 부호의 특징은 부호어(100)와 생성 매트릭스(120)의 패리티 매트릭스(122)의 곱은 영(zero) 행렬을 갖는 특성을 갖는다.
따라서 패리티 검사행렬을 이용하여 연관된 생성행렬을 구할 수 있다. 하지만 LDPC 부호의 부호화를 수행할 경우에는 일반적으로 복잡도로 인하여 위와 같은 방식으로 수행하지 않는다. 그 이유는 LDPC부호의 특징 중에 하나가 패리티 검사행렬(122)이 sparse한 형태를 가진다는 점 때문이다. 이러한 형태의 패리티 검사행렬(122)을 가지고 생성행렬(120)을 구해보면 생성행렬(120)의 많은 원소들이 1을 가지는 것을 알 수 있다. 1이 많다는 것은 부호화를 할 때 그만큼 정보벡터의 원소들과 연산을 많이 해야 된다는 것을 의미하고, 이를 처리하기 위한 하드웨어 복잡도가 증가한다는 뜻이다. 반대로 0이 많으면 해당 위치의 정보벡터 원소는 고려할 필요가 없어 복잡도 문제가 발생하지 않는다. 따라서 LDPC 부호의 부호화를 선형블록 부호와 같이 수행하게 되면 큰 복잡도를 유발되는 문제를 어느 정도 해결하기 위해 부호화를 수행할 때 생성 행렬(120)을 사용하지 않고 패리티 검사행렬(122)을 기반으로 하여 부호화를 수행할 수 있다는 것이다.
또한 생성 행렬(120)의 형태를 기준으로 하여 시스테메틱(systematic) 또는 넌시스테메틱(non-systematic) 생성 행렬(120)로 나눌 수 있다. 시스테메틱 생성 행렬의 역할은 정보벡터와 생성행렬을 곱하였을 때 얻어지는 부호어의 일정 부분이 정보 벡터와 동일하게 만들어 주는 것이다. 즉 부호어에 정보 벡터가 그대로 나타난다는 점이다. 반대로 넌시스테미틱(non-systematic) 생성 행렬은 부호어에 정보벡터가 나타나지 않는다. 이와 같이 부호어의 일정부분에 정보벡터가 나오게 하려면 systematic 생성행렬의 특정부분에 항등(identity) 행렬을 넣어주면 간단히 해결된다. 이를 수학식으로 도시하면, 하기 <수학식 1>과 같이 도시할 수 있다.
Figure 112008087541838-pat00001
여기서 정보벡터(m)와 생성행렬(G)이 곱해져서 부호어(U)가 구해진다. 시스테메틱 생성 행렬은 이와 같이 일정부분은 P와 같은 부행렬(형태에 구속받지 않음, 어떤 행렬도 가능)로 되어 있고 나머지 일정부분은 정보벡터의 사이즈만큼 정방부행렬인 항등(identity) 행렬로 되어 있다. 이와 같이 항등 행렬이 뒤에 있으면 부호어의 뒷부분에 정보벡터가 보일 것이며 앞부분이 패리티 비트가 된다. 만약 P와 항등 행렬의 위치를 바꾸게 되면 앞부분에 정보벡터가 보일 것이며 뒷부분이 패리 티 비트가 된다.
패리티 검사 행렬을 사용하는 경우 가장 쉽게 생성할 수 있는 방법으로 패리티 검사 행렬을 쉽게 생성하기 위한 형태로 가우시안 소거법(gaussian elimination)을 이용하여 패리티 검사 행렬을 생성하는 방법이 있다. 이러한 가우시안 소거법은 알 수 없는 값이 하나이며, 이를 방정식을 이용하여 풀이하는 방법으로 패리티 검사 행렬을 생성하는 기법이다. 그런데, 이와 같이 가우시안 소거법을 이용하는 경우에 소거 시에 많은 수의 방정식들을 계산해야 하므로, 많은 복잡도를 유발시킨다. 이를 해소하기 위한 LDPC 부호화 방법으로 리차드슨(Richardson) 부호화 방법이 있다.
리차드슨 부호화 방식은 LDPC 부호의 패리티 검사행렬을 블록화해서 나누고 연관된 행렬 방정식들을 통하여 패리티 비트들을 생성하는 기법으로서 H 행렬을 6개로 세분화하여 sub 행렬로 나눈 뒤 행렬의 연립 방정식으로 입력 벡터(vector)가 주어지면 출력 패리티 비트(parity bit)를 생성한다. 이와 같은 리차드슨 부호화 방식은 근사적 저밀도의 삼각형(approximate lower triangular) 형태이기만 하면 그 형태 내에서 각 행렬 원소들이 어떤 값을 가지든 간에 부호화를 수행할 수 있다. 즉, 리차드슨 부호화 방식은 approximate lower triangular 형태의 랜덤 패리티 검사 행렬에만 사용할 수 있다는 제약이 있다.
다음으로, Fossorier에 의해 제안된 QC-LDPC 부호화 방법에 대하여 살펴보기로 한다.
QC-LDPC 부호화 방법은 준순환 매트릭을 이용하는 방식이다. 그러므로 먼저 순환 매트릭에 대하여 살펴보기로 한다. 순환 매트릭은 도 2에 도시한 바와 같은 NXN 정방 행렬에서 각 열에 하나씩의 1이 존재하며, 하나씩의 1은 각각 1비트씩 쉬프트될 수 있음을 의미한다. 도 2는 NXN 정방 행렬을 순환 매트릭으로 구성한 경우의 예를 도시한 도면이다.
먼저 A0(210)는 4X4의 정방 행렬로, 대각선에만 1이 존재하는 단위 행렬이며, A1(220)의 정방 행렬은 A0(210) 행렬의 1의 위치가 모두 오른쪽을 1씩 쉬프트되어 있는 정방 행렬이며, A2(230)의 정방 행렬은 A1(220) 행렬의 1의 위치가 다시 오른쪽으로 1씩 쉬프트되어 있는 정방 행렬이고, A3(240)의 정방 행렬은 A2(230)의 위치가 다시 오른쪽으로 1씩 쉬프트되어 있는 정방 행렬이다. 또한 A-(200)는 4X4 정방 행렬의 값이 모두 "0"인 영 행렬이다.
Fossorier가 제안한 QC-LDPC 부호화 방법은 패리티 검사 행렬의 원소를 GF(2) 상의 원소인 0, 1이 아니라 순환 이동(cyclic shift)된 단위 행렬(identity matrix) 및 0 행렬로 나타내는 준 순환(Quasi-cyclic) LDPC 부호를 제안하였다. IEEE 802.16e나 802.11n에 채택된 LDPC 부호는 비균일 형태의 준순환 LDPC 부호이며, 패리티 비트 부분은 블록 타입의 이중 대각행렬(dual diagonal) 형태를 가진다.
도 3은 QC-LDPC 부호화를 수행하기 위한 이중 대각 행렬 구조를 가지는 패리티 검사 매트릭스의 구성과 부호어와의 관계도이다.
앞에서 설명한 바와 같이 부호어(330)는 두 부분으로 구성된 패리티 검사 매트릭스(310, 320)와 곱을 취하는 경우 영행렬(340)이 된다. 여기서 두 부분의 패리티 검사 매트릭스(310, 320) 중 뒤쪽(320)은 이중 대각 행렬 구조를 가지는 형태이다. 이러한 구조를 이용하여 QC-LDPC 부호화를 수행하기 때문에 실제로 구현 시 복잡도가 증가하게 된다.
또 다른 방식으로 Zongwang Li 등이 제안한 방식이 있다. 이 방식은 QC-LDPC 부호의 패리티 검사 행렬을 이용하여 얻은 생성 행렬과 정보 비트들과의 행렬 곱셈 연산을 순차적인 두 단계로 나누고 각 단계를 cyclic shift-register로 구현한 부호기를 통하여 패리티 비트들을 생성하는 기법을 제시하고 있다. 그러나 순환 쉬프트 레지스터를 이용함으로써 대기 시간이 길어지는 문제가 있다.
따라서 본 발명에서는 복잡도를 줄일 수 있는 QC-LDPC 부호화 장치 및 방법을 제공한다.
또한 본 발명에서는 부호화 시 대기 시간을 줄일 수 있는 QC-LDPC 부호화 장치 및 방법을 제공한다.
또한 본 발명에서는 IEEE 802.1x 표준에 제안된 QC-LDPC 방식의 패리티 검사 행렬을 이용하며, 낮은 복잡도를 가지며, 대기 시간을 줄일 수 있는 부호화 장치 및 방법을 제공한다.
본 발명의 일 실시 예에 따른 장치는, 입력되는 정보를 이중 대각행렬 형태를 가지는 생성 매트릭스로 부호화하기 위한 준-순환 저밀도 패리티 검사(QC-LDPC) 부호화 장치로, 임의의 패리티 비트를 생성하는 패리티 비트 생성부와, 상기 입력 정보를 서큘런트로 구성하고, 상기 임의의 패리티 비트를 이용하여 각 서큘런트들을 각 행에 대응하여 쉬프트 및 결합하여 임시 패리티 비트를 생성하는 임시 패리티 비트 생성부와, 상기 임시 패리티 비트 생성부의 출력을 이용하여 패리티 비트의 수정 비트를 생성하는 수정 비트 생성부와, 상기 수정 비트 생성부의 출력을 상기 임시 패리티 비트 생성부의 출력에 반영하여 임시 패리티 비트를 수정하는 패리티 비트 수정부를 포함한다.
본 발명의 일 실시 예에 따른 방법은, 입력되는 정보를 이중 대각행렬 형태를 가지는 생성 매트릭스로 부호화하기 위한 준-순환 저밀도 패리티 검사(QC-LDPC) 부호화 방법으로, 임의의 패리티 비트를 생성하는 과정과, 상기 입력 정보를 서큘런트로 구성하고, 상기 임의의 패리티 비트를 이용하여 각 서큘런트들을 각 행에 대응하여 쉬프트 및 결합하여 임시 패리티 비트를 생성하는 과정과, 상기 임시 패리티 비트 생성부의 출력을 이용하여 패리티 비트의 수정 비트를 생성하는 과정과, 상기 수정 비트 생성부의 출력을 상기 임시 패리티 비트 생성부의 출력에 반영하여 임시 패리티 비트를 수정하는 과정을 포함한다.
상기와 같이 이루어지는 본 발명은, 유무선 통신시스템에 LDPC 부호기를 제안함으로써 구현 시 패리티 검사 행렬을 직접 이용한 부호화를 수행함으로써 선형적 복잡도를 가질 수 있다. 또한 기존의 방식들에 비해 하드웨어의 복잡도를 상당부분 줄일 수 있다. 뿐만 아니라 여러 정보 벡터들의 연속적인 부호화의 경우 부호기 register의 효율적인 이용을 통해 연속적인 부호화에 소요되는 전체 클럭을 경감시킴으로써 보다 더 효율적인 부호기를 구현할 수 있다는 이점을 가진다.
이하 첨부된 도면을 참조하여 본 발명을 설명한다. 본 발명을 설명함에 있어 당업자에게 자명한 부분에 대하여는 본 발명의 요지를 흩뜨리지 않도록 생략하기로 한다. 또한 이하에서 설명되는 각 용어들은 본 발명의 이해를 돕기 위해 사용된 것일 뿐이며, 각 제조 회사 또는 연구 그룹에서는 동일한 용도임에도 불구하고 서로 다른 용어로 사용될 수 있음에 유의해야 한다.
이하의 설명에서 본 발명에 따른 QC-LDPC 부호화 방법은 LDPC 부호화 방법으로 설명하기로 한다. 본 발명에서는 LDPC 부호의 임의의 패리티 검사 행렬 대신 IEEE 802.1x 표준에 제안된 패리티 검사 행렬을 이용할 것이다. 따라서 기존의 부호화 방식과는 차별화된 고유의 방식으로 낮은 선형적 복잡도를 가지는 효율적인 LDPC 부호화를 수행할 수 있다. 이를 위하여 본 발명에서 따른 LDPC 부호화 방법에서는 본 발명에서 제안하는 패리티 검사 행렬을 부호화에 직접 이용함으로써 낮은 선형적 복잡도를 가질 수 있도록 한다. 또한 본 발명에서는 제안된 패리티 검사 행 렬의 원형 행렬을 이용하며, 이중 대각 패리티 구조를 가지는 패리티 검사 행렬을 이용하여 순차적으로 임시 패리티 비트 생성, 수정 비트 생성, 패리티 비트 수정을 수행하도록 한다. 이를 통해 QC-LDPC 부호화 방식에서 패리티 검사 행렬의 quasi-cyclic 특성을 적용하여 부분적인 부호화가 연속적으로 실행됨으로써 전체 부호화가 수행되도록 한다.
또한 본 발명에 따른 패리티 검사 행렬에서는 정보 벡터와 패리티 검사 행렬의 시스테메틱(systematic) 부분과의 행렬 곱셈 연산을 적은 수의 범용 와이어(global wire)와 순환 쉬프트 레지스터(cyclic shift-register)를 통하여 구현한다. 따라서 표준에 제안된 패리티 검사 행렬을 이용하여 낮은 선형적 복잡도를 가지는 효율적인 LDPC 부호기는 제안된 패리티 검사 행렬의 원형 행렬을 이용한 LDPC부호화 방식을 확장하여 부호화 할 때 요구되는 global wire의 수가 그대로 유지하도록 할 수 있다.
또한 본 발명에서는 표준에 제안된 패리티 검사 행렬을 이용하여 낮은 선형적 복잡도를 가지는 효율적인 LDPC부호기 단계는 제안된 이중 대각 패리티 구조를 가지는 패리티 검사 행렬을 이용한다. 그러므로 본 발명에 따른 QC-LDPC 부호화 방법은 순차적으로 임시 패리티 비트 생성, 수정 비트 생성, 패리티 비트 수정을 통한 부호화 방식에 패리티 검사 행렬의 quasi-cyclic 특성을 적용하여 부분적인 부호화가 연속적으로 실행됨으로써 전체 부호화가 수행되기 위하여 평행한 쉬프트 레지스터(shift-register)들로 구현할 수 있다. 또한 여러 정보 벡터들의 연속적인 부호화를 수행할 경우 유휴 상태의 쉬프트 레지스터(shift-register)의 최소가 되 도록 함으로써 소요되는 전체 클럭을 경감 시킬 수 있는 장치 및 방법을 개시할 것이다.
그러면 이하에서 본 발명에 대하여 살펴보기에 앞서 QC-LDPC부호의 관련 표기법과 IEEE 802.11n과 802.16e표준에 제안된 패리티 검사 행렬 H에 대해서 언급한다. 서큘런트(circulant)는 종래 기술에서 살펴본 바와 같이 각 행들이 같은 가중치를 가지며 맨 위의 행부터 맨 아래의 행까지 cyclic하게 배치되어 있는 정방 행렬로 정의한다. 또한 서큘런트(circulant)의 첫 번째 행을 서큘런트(circulant)의 발생기(generator)로 정의한다. 서큘런트(circulant)는 발생기를 통하여 완전히 생성 가능하며 발생기로 대표된다. 한 예로 각 행들의 가중치가 1인 서큘런트(circulant)를 정의할 수 있다. 행렬 A = (Ai,j)에서 Ai,j를 하기 <수학식 2>와 같이 표현하며, 행렬 A를 BXB 순열 행렬로 정의한다.
Figure 112008087541838-pat00002
<수학식 2>에서
Figure 112008087541838-pat00003
연산을 의미한다.
행렬Ai는 i가 정수 0부터 B-1까지에 대하여 BXB 단위 행렬을 오른쪽으로 i만큼 이동시킨 서큘런트(circulant) 순열 행렬로 정의한다. BXB 영 행렬은 종래 기술의 도 3에서 설명한 바와 같이 A-로 정의한다. 따라서 i는 {-, 0, 1, …, B-1}의 표 본 공간을 가지고 Ai는 {A-, A0, A1, …, AB-1}의 표본 공간을 가진다. u는 {u0, u1, …, uK-1}를 가지는 정보열로 가정하면, i가 정수 0부터 K-1까지에 대하여 ui는 {ui,0, ui,1, …, ui,B-1}의 형태를 가지는 정보 벡터로 정의한다. u는 (c s |cp)의 형태를 가지는 부호어 c로 부호화된다. cs는 {u0, u1, …, uK-1}의 형태를 가지며 c의 시스테메틱(systematic) 부분에 해당하는 1X(KB) 벡터로 정의하고 cp는 {p0, p1, …, pM-1}로 표현할 때, i가 정수 0부터 M-1까지에 대하여 pi는 {pi,0, pi,1, …, pi,B-1}의 형태를 가지며 c의 패리티 부분에 해당하는 1X(MB) 벡터로 정의한다. 모든 ui,j와 pi,j는 GF(2)에 정의된다.
Figure 112008087541838-pat00004
는 GF(2)에 정의되는 덧셈으로 정의한다. H는 (MB)X(NB) 행렬이며, 하기 <수학식 3>과 같이 정의한다.
Figure 112008087541838-pat00005
<수학식 3>에서 모든 si,j는 표본공간{-, 0, 1, …, B-1}에 정의된다. 위와 같이, 서큘런트(circulant) 순열 행렬들로 구성된 H를 이용하여 부호화되는 LDPC부 호를 QC-LDPC부호라고 정의한다. 또한 <수학식 3>에서 Hs는 c의 시스테메틱(systematic) 부분과 관련되는 (MB)X(KB) 행렬로 정의하고, Hp는 c의 패리티 부분과 관련되는 (MB)X(MB) 행렬로 정의한다. 여기서 P(H)는 H의 영 행렬과 서큘런트(circulant) 순열 행렬을 각각 0과 1로 표기한 H의 원형 행렬로 정의한다. 그리고 E(H)는 H의 지수 행렬로 정의한다. 이때, E(Hs)와 E(Hp)도 E(H)와 마찬가지로 정의한다. 따라서 E(H)와 E(Hs)와 E(Hp)는 하기 <수학식 4>와 같이 정의할 수 있다.
Figure 112008087541838-pat00006
IEEE 802.11n 표준과 802.16e 표준에 제안된 H는 상기의 서큘런트(circulant) 순열 형태로 구성되어 있으며 이중 대각 패리티 구조를 가진다. 이중 대각 패리티 구조는 하기 <수학식 5>와 같이 정의한다.
Figure 112008087541838-pat00007
<수학식 5>의 정의를 바탕으로 하나의 예를 들어 살펴보면, M=6일 때의 E(Hp)는 하기 <수학식 6>과 같이 표기할 수 있다.
Figure 112008087541838-pat00008
E(Hp) =
<수학식 6>과 같이 제안된 H를 이용하는 본 발명의 부호화 방식은 제안된 H의 P(H)를 이용한 부호화 방식에 기인한다. 만약 QC-LDPC 부호의 부호화를 수행하는 데에 있어서 P(H)를 이용한 부호화로부터 H를 이용한 부호화로의 확장을 고려한다면, H의 quasi-cyclic 특성을 적용하여 효율적인 부호화 방식 및 부호기를 새롭게 구현할 수 있다. 본 발명의 부호화는 크게 3개의 블록에 의해 수행된다.
도 4는 본 발명에 따른 QC-LDPC 부호화 장치의 블록 구성도이다. 먼저 도 4의 구성에 대하여 간략히 살펴보기로 한다.
정보 u(400)는 앞에서 설명한 바와 같이 {u0, u1, …, uK-1}를 가지는 정보열로 가정하고, i가 정수 0부터 K-1까지에 대하여 ui는 {ui,0, ui,1, …, ui,B-1}의 형태를 가지므로, 도 4에 도시한 바와 같이 병렬로 입력된다. 이와 같이 정보 u(400)가 입력되면, 임시 패리티 비트 생성부(410)는 임의의 패리티 비트 생성부(440)로부터 수신된 패리티 비트를 이용하여 임시 패리티 비트를 생성한다. 여기서 임의의 패리티 비트 생성부(440)는 미리 정의된 소정의 규칙에 의거하여 임의의 패리티 비트를 생성하여 임시 패리티 비트 생성부와 수정 비트 생성부(420) 및 패리티 비트 수정부(430)로 제공한다. 또한 미리 정의된 소정의 규칙은 생성해야 하는 패리티 비트에 대한 정보가 될 수 있다. 임시 패리티 비트 생성부(410)는 입력된 정보 u(400)와 임의의 패리티 비트 생성부(440)로부터 제공되는 패리티 비트를 이용하여 패리티 비트에 대한 부호어를 생성하고, 패리티 수정부(430)와 수정 비트 생성부(420)로 전달한다. 수정 비트 생성부(420)는 생성된 부호어 중 일부를 이용하여 수정할 패리티 비트를 생성하고, 이를 패리티 비트 수정부(430)로 제공한다. 이에 따라 패리티 비트 수정부(430)는 임시 패리티 비트 생성부(410)에 의해 생성된 부호어를 수정 비트 생성부(420)에 의거하여 수정하고, 그 결과를 출력한다.
도 5는 본 발명에 따른 QC-LDPC 부호화 장치의 임시 패리티 비트 생성부의 내부 구성을 도시한 도면이다. 이하의 설명에서 각 블록의 동작은 클럭을 기준으로 하여 설명하며, t는 클럭 색인자를 의미한다.
임시 패리티 비트(pi) 생성부(410)는 크게 2 부분으로 구분할 수 있다. 먼저 순한 좌향 쉬프트 레지스터(cyclic left shift-register) 및 덧셈기(411)와 패리티 비트들을 생성하기 위한 부 블록들로 구성된다. 패리티 비트들을 생성하기 위한 부 블록들(412, 413, 414, …, 415) 중 첫 번째 부 블록(412)은 임의의 패리티 비트 생성부(440)로부터 제공되는 패리티 비트를 수신하며, 나머지 부 블록들(413, 414, …, 415, 416, 417, …, 418)은 바로 위의 부 블록으로부터 패리티 비트 정보를 수신한다. 즉, P1을 위한 부 블록(412)은 임의의 패리티 비트 생성부(440)로부터 제공되는 패리티 비트 정보를 수신하여 패리티 검사 매트릭의 첫 번째 행에 대한 방정식을 계산할 수 있다. 이와 같이 첫 번째 행에 대한 방정식이 계산된 값은 다시 그 아래의 즉, 패리티 매트릭의 두 번째 행에 대한 방정식을 위에서 계산된 첫 번째 행에 대한 방정식의 해를 이용하여 풀이할 수 있다. 이러한 방식으로 각 방정식의 풀이를 수행하면, 마지막 부 블록(418)은 패리티 검사 매트릭의 M-1번째 행을 계산하여 그 값을 출력할 수 있다.
그러면 이상의 구성을 가지는 QC-LDPC 부호기의 동작을 시간 t에 대하여 살펴보기로 한다. 상기 부 블록들(412, 413, 414, …, 415, 416, 417, …, 418)은 i가 정수 1부터 M-1까지에 대하여 pi를 위한 순차적인 부 블록들로 구성되어있다. 클럭을 기준으로 하여 도 5에 도시한 각 부 블록들은 하기 <수학식 7>과 같이 표현할 수 있다.
Figure 112008087541838-pat00009
<수학식 7>에서 ai,j는 AS의 발생기로 정의하며
Figure 112008087541838-pat00010
는 uj를 순환 좌향 쉬프트(cyclic left t-shift)한 결과 벡터를 정의하고, 윗 첨자 T는 벡터의 전치 연산을 정의한다.
그러면 상기 <수학식 7>에 정의되어 있는 내용을 바탕으로 도 5의 구성에 대한 동작을 다시 살펴보기로 한다. 부호화를 시작하기 이전에 정보 u는 순환 좌향 쉬프트 레지스터(cyclic left shift-register)들로 미리 전달된다. cyclic left shift-register들은 도 5에 도시하지 않았으나, 범용 와이어(global wire)들을 통하여 M개의 덧셈기에 연결되어져 있다. H를 이용한 부호기는 P(H)를 이용한 부호기로부터 확장하였기 때문에, 요구되는 global wire수는 증가되지 않고 그대로 유지된다. P(H)에서 H로 확장되었음에도 불구하고 이 처리 부분에서의 복잡도는 증가하 지 않는다. 이중 대각 패리티 구조를 기반으로 하는 부호화를 수행하기 위해, 임의의 패리티 비트 p0 생성 블록에서 패리티 비트 p0를 먼저 임의로 생성한다. 간단한 연산을 위하여 임의의 패리티 비트 p0는 1XB의 크기를 갖는 영 벡터로 설정할 수 있다. 연속적인 (M-2)+B 클럭 동안, 임시 패리티 비트 pi 생성 블록에서 i가 정수 1부터 M-1까지에 대하여 임의의 패리티 비트 p0에 기인한 다른 임시 패리티 비트 pi들이 매 한 클럭마다 부분적으로 생성된다. 클럭이 (M-2)+(B-1)일 때, i가 정수 1부터 M-1까지에 대한 다른 임시 패리티 비트 pi 들은 완전히 생성된다.
도 4의 클럭을 기준으로 하는 수정 비트 생성부(420) 블록을 수학식으로 표현하면, 하기 <수학식 8>과 같이 표현할 수 있다.
Figure 112008087541838-pat00011
그러면 다음으로 도 4의 수정 비트 생성부(420)의 동작을 설명한다.
Figure 112008087541838-pat00012
는 임의의 패티리 비트 p0에 대한 수정 비트이다. 연속적인 B 클럭 동안,
Figure 112008087541838-pat00013
또한 매 한 클럭마다 부분적으로 생성된다. 클럭이 (M-1)+(B-1)일 때,
Figure 112008087541838-pat00014
는 완전히 생성된다.
도 4의 클럭을 기준으로 하는 패리티 비트 수정부(420)를 다시 수학식으로 표현하면, 하기 <수학식 9>와 같이 표현할 수 있다.
Figure 112008087541838-pat00015
그러면 <수학식 9>를 바탕으로 도 4의 패리티 비트 수정부(420)의 동작을 살펴보기로 한다. 연속적인 B 클럭 동안, 임의의 패리티 비트 p0와 i가 정수 1부터 M-1까지에 대한 다른 임시 패리티 비트 pi는 매 한 클럭마다 부분적으로 수정된다. 그 결과, 본 발명의 부호화는 연속적으로 M-평행 부분 부호화를 수행한다. 임시 패리티 비트 생성부(410)로 정보 u(400)의 입력에 소요되는 클럭을 무시하였을 때, KB개의 정보 비트들의 본 발명의 부호화를 위해서는 M+s0,K+B의 클럭이 소요된다. 그러나 n개의 u에 대하여 연속적인 부호화를 할 경우, 본 발명의 부호화는 nX(M+s0,K+B) 보다 적은 (M+s0,K+B)+(n-1)X(s0,K+B) 클럭이 소요된다.
이를 도 6을 참조하여 살펴보기로 한다. 도 6은 발명의 QC-LDPC 부호화기에서 클럭에 따른 각 부 블록들의 타이밍도이다. 도 6에서 빗금으로 표시된 부분은 각 부 블록이 동작하여 정상적인 출력이 이루어지고 있는 상태를 의미하며, 각 부 블록들에 대한 지연시간을 함께 도시하고 있다. 즉, 순환 좌향 쉬프트 레지스터 및 덧셈기(411)가 정상적인 출력을 시작하는 시점은 클럭 B의 시점이다. 즉, 참조부호 600은 정보 비트가 입력되고, 이들을 이용하여 순환 좌향 쉬프트 레지스터 및 덧셈기(411)가 신호를 출력할 때까지의 시점을 도시하고 있으며, 참조부호 601 시점에서 최초로 출력이 이루어지며, P1을 위한 부 블록(412)에서도 정상적인 출력이 이루진다. 그리고 B+1 클럭이 시작되는 참조부호 602의 시점에서부터 P2를 위한 부 블록(413)에서도 정상적인 출력이 이루어지며, 참조부호 603의 시점에서부터는 P3를 위한 부 블록(414)에서도 정상적인 출력이 이루어진다. 이러한 관계는 각각의 부 블록들이 도 5에 도시한 바와 같이 이전의 부 블록으로부터 신호를 수신해야만 다음 부 블록에서 정상적인 신호를 출력하기 때문에 모든 부 블록에서 신호가 출력되려면 B 클럭이 입력된 시점부터 부 블록들의 숫자만큼 지연 시간을 필요로 한다.
따라서 본 발명의 부호화 방식을 이용하여 정보 u(400)를 부호화 할 때, 도 6에 도시한 바와 같이 클럭이 B-1 이후로부터 유휴 상태의 부 블록 및 블록들이 존재하게 된다.
본 발명의 부호화는 연속적인 부호화를 할 경우, 이러한 유휴 상태의 부 블록 및 블록들을 다음 u의 부호화에 이용함으로써 전체 부호화를 수행하는 데에 있어서 소요되는 클럭들을 경감시킬 수 있다. 소요되는 클럭들의 경감 정도는 서큘런트(circulant) 크기인 B와 E(H)의 s0,K에 의존한다.
종래 기술에서 사용하던 2단계 부호화 방식의 경우에는 정보 u의 부호화 연산이 끝날 때까지 다음 정보 u의 부호화가 수행될 수 없다. 즉, n개의 u에 대하여 연속적인 부호화를 수행할 때 2단계 부호화 방식을 사용할 경우, 본 발명의 부호화 방식보다 더 많은 nX(M+s0,K+B) 클럭이 소요된다.
순환 좌향 쉬프트 레지스터(cyclic left shift-register)를 사용한다는 관점에서, 본 발명의 순환 좌향 쉬프트 레지스터(cyclic left shift-register) 및 덧셈기 부 블록(411)의 동작은 2 단계 부호화 방식의 첫 번째 단계의 동작과 비슷하다. 하지만 본 발명에 이용된 순환 좌향 쉬프트 레지스터(cyclic left shift-register)는 부호화를 위하여 P(H)를 이용한 부호기에서 H를 이용한 부호기로의 확장에 의해 유도된 것다. 또한 2단계 부호화 방식에 이용된 본 발명에 따른 순환 좌향 쉬프트 레지스터(cyclic left shift-register)는 H를 통하여 얻은 생성 행렬 G에 행렬 분해를 적용하여 부호화를 하는 과정에서 유도된 것이다. 따라서 본 발명의 부호화 방식의 순환 좌향 쉬프트 레지스터(cyclic left shift-register)에 연결된 범용 와이어(global wire) 수와 2단계 부호화 방식의 첫 번째 단계의 순환 좌향 쉬프트 레지스터(cyclic left shift-register)에 연결된 범용 와이어(global wire)의 수는 동일하다.
그러나 2단계 부호화 방식의 경우 두 번째 단계의 Hp의 역행렬 연산으로 인하여 두 번째 단계의 순환 좌향 쉬프트 레지스터(cyclic left shift-register)에 첫 번째 단계의 범용 와이어(global wire) 수보다 더 많은 수의 범용 와이 어(global wire)가 추가로 요구된다.
본 발명의 이해를 돕기 위한 E(H)와 E(H)의 E(Gp)에 대하여 다음의 예를 들어 살펴보기로 한다. 행렬 Gp는 시스테메틱(systematic) G의 패리티 부분에 해당하는 행렬로 정의한다. E(Gp)는 서큘런트(circulant) 순열 행렬들의 합인 서큘런트(circulant)의 지수 형태들로 정의한다. 한 예로 지수가 0◇1◇4인 서큘런트(circulant)는 서큘런트(circulant) 순열 행렬 A0와 A1과 A4의 합으로 정의하며, 이를 수학식으로 표현하면, 하기 <수학식 10>과 같이 표현할 수 있다.
Figure 112008087541838-pat00016
<수학식 10>과 같은 예의 P(H)를 본 발명에 따른 부호화 장치로 구현하면 도 7과 같이 도시할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 부호화 장치로 P(H)를 구현한 예의 블록 구성도이다.
도 7을 살펴보면, 정보 u에서 i가 0, 1, 2, 3을 가지는 경우 각 0번째 열의 정보 u0와 1번째 열의 정보 u1, 2번째 열의 정보 u2 및 3번째 열의 정보 u3의 각 출력기들(701, 702, 703, 704)에 대하여 각각 3개의 서로 다른 범용 와이어를 사용하고 있다. 그리고 각각의 출력기들(701, 702, 703, 704)로부터의 범용 와이어를 정렬하기 위한 와이어 정렬 및 가산부(710)에서 각각의 와이어들을 정렬한 후 가산기들에서 가산되도록 구성하고 있다. 이와 같이 정렬 및 가산부(710)에서는 각각의 범용 와이어들을 정리하여 가산한 결과를 각각의 패리티들에 대응하여 출력한다. 이러한 패리티 매트릭을 생성하기 위해 패리티 생성부로 제공된다. 패리티 생성부(720)는 각각 쉬프트 레지스터들(721, 722, 723, 724, 730, …, 756)과 가산기들(725, 731, 743, 754)로 구성된다.
따라서 p1을 출력하는 쉬프트 레지스터들(721, 722, 723, 724)은 가산되어 입력된 값을 순차적으로 쉬프트하여 출력하며, p1을 출력하는 쉬프트 레지스터들(721, 722, 723, 724) 중 첫 번째 쉬프트 레지스터(721)의 출력은 p2의 출력에 영향을 주도록 구성되어 있다. 이는 바로 위의 쉬프트 레지스터들의 출력이 다음 쉬프트 레지스터들의 출력에 영향을 주는 형태이다. 또한 p2를 출력하는 쉬프트 레지스터들(730, 302, 733, 734) 중 두 번째 쉬프트 레지스터(732)의 출력은 그 아래의 값인 p3를 출력하는 쉬프트 레지스터들(741, 742, 745, 746) 중 세 번째 쉬프트 레지스터(745)의 입력에 영향을 주게 된다. 이러한 방식으로 각각의 쉬프트 레지스터들이 영향을 받아서 최종적인 값은 다시 P1과 P2로 궤환되어 보정을 수행할 수 있 다.
즉, 첫 행을 제외한 다른 행에서는 다음과 같은 규칙이 적용됨을 알 수 있다. 이전 행의 번호 즉, 첫 번째 행의 번호를 1이라 하고, 두 번째 행의 번호를 2라 하며, 세 번째 행의 번호를 3이라 하자. 그러면 두 번째 행은 이전 행의 쉬프트 레지스터들 중 이전 행 번호의 쉬프트 레지스터 즉, 첫 번째 레지스터의 출력을 자신의 행 번호의 쉬프트 레지스터 즉, 두 번째 쉬프트 레지스터 입력 전에 가산되어 입력됨을 알 수 있다.
그러면 도 7의 구조를 확장하는 경우를 살펴보기로 한다. 도 8은 도 7의 패리티 검사 행렬의 원형 행렬을 이용한 부호기를 확장한 부호기의 블록 구성도이다.
도 8에서는 도 7의 P(H)를 이용한 부호기를 확장하여 s0,K와 sM-1,K가 0으로 변경된 H를 이용한 부호기의 블록 구성도를 도시하고 있다.
도 7과 도 8을 대비하여 살펴보면, 정보 u에 대하여 쉬프트 레지스터들을 이용하여 구성하고 있는 예이다. 즉, 각 행들에 대응하는 수만큼 쉬프트 레지스터들의 열을 가지며, E(Hs)와 E(Hp)의 열 중 첫 번째 열의 정보가 입력되어 쉬프트되는 형태로 구성되어 있다. 여기서는 계산을 용이하게 하기 위해 E(Hp)의 첫 번째 행의 첫 번째 열의 값과 마지막 행의 첫 번째 열의 값을 모두 "0"인 경우를 가정하여 도시한 것이다.
또한 도 9는 도 4의 P(H)를 이용한 부호기를 확장하여 H를 그대로 이용한 부호기의 블록 구성도이다. 이러한 도 7과 도 8 및 도 9의 부호기에서 임의의 패리티 비트 p0는 간단한 연산을 위해 모두 영 벡터로 초기 설정되었다.
도 9를 도 8과 대비하여 살펴보면, 도 9의 임시 패리티 비트 생성부(910)는 도 8의 임시 패리티 비트 생성부(810)에 대응하며, 도 9의 와이어 정렬 및 가산부(920)는 도 8의 와이어 정렬 및 가산부(820)에 대응한다. 또한 각 행에 대응하는 쉬프트 레지스터들(930)은 도 5의 부 블록들(412, 413, …, 418)에 해당한다. 또한 도 8과 도 9를 대비하면 도 8에서는 수정 비트 생성부(940)가 포함되어 있지 않으나, 도 9에서는 패리티 비트를 출력하는 쉬프트 레지스터들 마지막 쉬프트 레지스터 전에 각 행에 대응하는 레지스터들을 이용하여 수정 비트 생성부(940)를 구성하였다. 그리고 수정 비트 생성부(940)의 이후 단에 수정 비트를 적용하여 패리티 비트를 수정하는 패리티 비트 수정부(950)를 가지도록 구성하였다. 이와 같이 구성을 확장하여 본 발명에 따른 QC-LDPC 부호기를 구성하였다. 즉, 도 9에서는 도 8과 대비할 때, 수정 비트
Figure 112008087541838-pat00017
를 생성하여 패리티 비트를 수정하는 형태로 구현한 것이다.
도 7과 도 8 및 도 9를 살펴보면, P(Hs)의 12개의 1비트가 Hs의 60개의 1비트로 확장되었음에도 불구하고 각 와이어(wire) 정렬부(920)에 범용 와이어(global wire)의 수는 증가하지 않고 그대로 유지되는 것을 알 수 있다. 즉, 본 발명을 적용하면, 범용 와이어의 수를 증가시키지 않고 비트가 확장된 QC-LDPC 부호기를 구현할 수 있다.
도 8과 도 9에서 본 발명의 부호화는 제안된 H의 s0,K와 sM-1,K가 "0" 뿐만 아니라 "1" 더나아가 어느 양의 정수 값을 가지더라도 약간의 변경을 통하여 적용 가능하다는 것을 보여준다. 이 점은 임시 패리티 비트 pi 생성부(410, 810, 910)에서 각 부 블록의 동작 클럭이 연속적인 B 클럭에서 B+s0,K 클럭으로 변경을 요구하며, 수정 비트
Figure 112008087541838-pat00018
생성부(420, 940)의 동작 클럭은 또한 연속적인 B 클럭에서 B+s0,K 클럭으로 변경을 요구한다. 구현 측면에서는 i가 정수 0부터 3까지에 대한 p3,i의 덧셈기와 빗금으로 표시된 레지스터(register)들을 요구한다. P(H)를 이용하는 부호기를 기준으로 하였을 때, 본 발명의 부호기는 s0,K에 따라 추가적인 s0,K개의 레지스터 즉, 도 9에 빗금으로 도시된 레지스터 열 벡터를 요구한다.
도 6에서 정보 레지스터들의 순환 좌향 쉬프트(cyclic left shift)를 통하여 본 발명의 전체 부호화는 10 클럭동안 수행되며, 그 중 6번째 클럭 때 p0,0, p1,0, p2,0, p3,0을 생성하고 나머지 4 클럭동안 매 한 클럭마다 i가 정수 1부터 4까지에 대하여 p0,i, p1,i, p2,i, p3,i를 연속적으로 생성한다.
도 10은 본 발명에 따른 QC-LDPC 부호기의 레지스터에서 연속적인 클럭에 기준하여 입력되는 값들을 도시한 도면이다. 즉, 도 10에 도시한 레지스터의 값들은 도 9의 부호기가 여러 정보 벡터들의 연속적인 부호화를 수행하였을 때, 클럭을 기준으로 하여 도 9의 부호기의 특정 레지스터에 입력되는 값들을 클럭에 맞춰 표현 한 타이밍도이다. 또한 도 10은 패리티 비트 수정부(430, 950)에서의 연속적인 B 클럭동안 4-평행 부분 부호화가 연속적으로 수행됨을 보여준다.
따라서 본 발명에 따른 QC-LDPC 부호화기는 도 11에 도시한 바와 같은 패리티 검사 행렬을 생성할 수 있다. 도 11은 IEEE 802.11n 초안에 제안된 코드율 1/2와 1944비트의 부호어 길이를 가지는 패리티 검사 행렬을 도시한 도면이다. 도 11에서 시스테메틱 부분(1101)은 972비트로 구성되어 있으며, 페리티 부분(1102) 또한 972 비트로 구성되어 있음을 알 수 있다. 그리고, IEEE 802.11n 표준에서 사용하는 방식인 이중 대각행렬(dual diagonal) 형태를 가짐을 알 수 있다.
이상의 설명에서 본 발명의 부호화 방식 및 이를 이용하는 장치는 이해를 돕기 위하여 위와 같은 E(H)와 E(H)의 E(Gp)의 예를 참고하여 설명하였다. 그러나 이는 본 발명의 이해를 돕기 위한 예로써 설명한 것에 불과하며 해당 분야에서 통상적인 지식을 가진 자라면 이로부터 다양한 변형 및 도 11과 같은 형태의 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.
도 1은 LPDC 부호화 방법의 개념을 설명하기 위한 블록 구성도,
도 2는 NXN 정방 행렬을 순환 매트릭으로 구성한 경우의 예를 도시한 도면,
도 3은 QC-LDPC 부호화를 수행하기 위한 이중 대각 행렬 구조를 가지는 패리티 검사 매트릭스의 구성과 부호어와의 관계도,
도 4는 본 발명에 따른 QC-LDPC 부호화 장치의 블록 구성도,
도 5는 본 발명에 따른 QC-LDPC 부호화 장치의 임시 패리티 비트 생성부의 내부 구성을 도시한 도면,
도 6은 발명의 QC-LDPC 부호화기에서 클럭에 따른 각 부 블록들의 타이밍도,
도 7은 본 발명의 일 실시 예에 따른 부호화 장치로 P(H)를 구현한 예의 블록 구성도,
도 8은 도 7의 패리티 검사 행렬의 원형 행렬을 이용한 부호기를 확장한 부호기의 블록 구성도,
도 9는 도 4의 P(H)를 이용한 부호기를 확장하여 H를 그대로 이용한 부호기의 블록 구성도,
도 10은 본 발명에 따른 QC-LDPC 부호기의 레지스터에서 연속적인 클럭에 기준하여 입력되는 값들을 도시한 도면,
도 11은 IEEE 802.11n 초안에 제안된 코드율 1/2와 1944비트의 부호어 길이를 가지는 패리티 검사 행렬을 도시한 도면.

Claims (12)

  1. 입력 정보를 이중 대각행렬 형태를 가지는 패리티 체크 매트릭스로 부호화하기 위한 준-순환 저밀도 패리티 검사(QC-LDPC) 부호화 장치에 있어서,
    미리 정의된 규칙에 따라 임의의 패리티 비트를 생성하는 패리티 비트 생성부;
    상기 입력 정보에 상응하는 정보 벡터를 각 행들이 같은 가중치를 가지며 맨 위의 행부터 맨 아래의 행까지 순환적으로 배치된 정방 행렬의 서큘런트들로 구성하고, 상기 임의의 패리티 비트를 이용하여 각 서큘런트들의 각 행에 대응하여 쉬프트 및 결합하여 임시 패리티 비트를 생성하는 임시 패리티 비트 생성부;
    상기 임시 패리티 비트 생성부의 출력을 이용하여 패리티 비트의 수정 비트를 생성하는 수정 비트 생성부; 및
    상기 수정 비트 생성부의 출력을 상기 임시 패리티 비트 생성부의 출력에 반영하여 임시 패리티 비트를 수정하는 패리티 비트 수정부;를 포함하는 낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 장치.
  2. 제 1 항에 있어서, 상기 임시 패리티 비트 생성부는,
    상기 입력 정보를 미리 결정된 크기의 서큘런트들로 구성하여 클럭 단위로 상기 서큘런트들을 쉬프트하며, 상기 각 서큘런트들을 와이어 정렬하여 상기 각 서큘런트들의 각 행에 대응하는 값들이 가산되도록 결합하는 순환 좌향 쉬프트 레지스터 및 덧셈기; 및
    상기 가산된 각 행의 패리티 정보들을 상기 클럭에 대응하여 쉬프트하며, 첫 행을 제외한 상기 각 서큘런트들의 각 행의 값들은 상위 행의 정보와 입력되는 서큘런트들을 이용하여 보정하는 행의 개수만큼의 부 블록들;을 포함하는 낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 장치.
  3. 제 2 항에 있어서, 상기 각 부 블록들은,
    미리 결정된 개수만큼의 직렬 연결된 쉬프트 레지스터들을 포함하며,
    첫 행의 쉬프트 레지스터들을 제외한 상기 각 서큘런트들의 각 행의 쉬프트 레지스터들은 이전 행 쉬프트 레지스터들 중 이전 행 번호의 쉬프트 레지스터의 출력이 자신의 행 번호에 대응하는 쉬프트 레지스터의 입력 전에 가산되는 낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 장치.
  4. 제 3 항에 있어서, 상기 수정 비트 생성부는,
    상기 각 서큘런트들의 각 행들에 대응하는 최종 쉬프트 레지스터의 출력을 입력으로 하여 클럭에 맞춰 쉬프트하는 상기 각 서큘런트들의 각 행들에 대응하는 제1쉬프트 레지스터들; 및
    상기 제1쉬프트 레지스터들의 각 출력을 입력으로 하며 클럭에 맞춰 출력하는 상기 각 서큘런트들의 각 행들에 대응하는 제2쉬프트 레지스터들;을 포함하는 낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 장치.
  5. 제 4 항에 있어서, 상기 패리티 비트 수정부는,
    상기 제1쉬프트 레지스터의 마지막 행의 레지스터의 출력을 마지막 행을 제외한 나머지 행의 제2쉬프트 레지스터들의 출력에 가산하고, 상기 제2쉬프트 레지스터들의 마지막 행의 쉬프트 레지스터의 출력을 마지막 행의 바로 위의 행의 제2쉬프트 레지스터 출력에 가산하여 상기 패리티 비트를 수정하는 낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 장치.
  6. 제 2 항에 있어서, 상기 순환 좌향 쉬프트 레지스터 및 덧셈기는,
    상기 서큘런트들을 상기 각 서큘런트들의 각 행에 대응하여 좌측으로 순환 쉬프트하는 각 행 단위의 순환 좌향 쉬프트 레지스터들;
    상기 각 서큘런트들의 각 행에 대응하는 상기 순환 좌향 쉬프트 레지스터들의 미리 결정된 위치에서 범용 와이어를 통해 정보들을 출력하며, 상기 범용 와이어들을 정렬하는 와이어 정렬부; 및
    상기 와이어 정렬부에서 정렬된 출력들을 가산하여 상기 각 서큘런트들의 각 행 단위로 출력하는 가산기들;을 포함하는 낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 장치.
  7. 제 6 항에 있어서, 상기 각 부 블록들은,
    미리 결정된 개수만큼의 직렬 연결된 쉬프트 레지스터들을 포함하며,
    첫 행의 쉬프트 레지스터들을 제외한 상기 각 서큘런트들의 각 행의 쉬프트 레지스터들은 이전 행 쉬프트 레지스터들 중 이전 행 번호의 쉬프트 레지스터의 출력이 자신의 행 번호에 대응하는 쉬프트 레지스터의 입력 전에 가산되는 낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 장치.
  8. 제 7 항에 있어서, 상기 수정 비트 생성부는,
    상기 각 서큘런트들의 각 행들에 대응하는 최종 쉬프트 레지스터의 출력을 입력으로 하여 클럭에 맞춰 쉬프트하는 상기 각 서큘런트들의 각 행들에 대응하는 제1쉬프트 레지스터들; 및
    상기 제1쉬프트 레지스터들의 각 출력을 입력으로 하며 클럭에 맞춰 출력하는 상기 각 서큘런트들의 각 행들에 대응하는 제2쉬프트 레지스터들;을 포함하는 낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 장치.
  9. 제 8 항에 있어서, 상기 패리티 비트 수정부는,
    상기 제1쉬프트 레지스터의 마지막 행의 레지스터의 출력을 마지막 행을 제외한 나머지 행의 제2쉬프트 레지스터들의 출력에 가산하고, 상기 제2쉬프트 레지스터들의 마지막 행의 쉬프트 레지스터의 출력을 마지막 행의 바로 위의 행의 제2쉬프트 레지스터 출력에 가산하여 상기 패리티 비트를 수정하는 낮은 복잡도를 가 지는 고속의 QC-LDPC 부호의 부호화 장치.
  10. 입력 정보를 이중 대각행렬 형태를 가지는 패리티 체크 매트릭스로 부호화하기 위한 준-순환 저밀도 패리티 검사(QC-LDPC) 부호화 방법에 있어서,
    미리 정의된 규칙에 따라 임의의 패리티 비트를 생성하는 과정;
    상기 입력 정보에 상응하는 정보 벡터를 각 행들이 같은 가중치를 가지며 맨 위의 행부터 맨 아래의 행까지 순환적으로 배치된 정방 행렬의 서큘런트들로 구성하고, 상기 임의의 패리티 비트를 이용하여 각 서큘런트들의 각 행에 대응하여 쉬프트 및 결합하여 임시 패리티 비트를 생성하는 과정;
    상기 생성된 임시 패리티 비트를 이용하여 패리티 비트의 수정 비트를 생성하는 과정; 및
    상기 생성된 수정 비트를 상기 생성된 임시 패리티 비트에 반영하여 상기 생성된 임시 패리티 비트를 수정하는 과정;을 포함하는 낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 방법.
  11. 제 10 항에 있어서, 상기 임시 패리티 비트를 생성하는 과정은,
    상기 입력 정보를 미리 결정된 크기의 서큘런트들로 구성하여 클럭 단위로 상기 서큘런트들을 순환 좌향 쉬프트하는 과정;
    상기 쉬프트 시 상기 각 서큘런트들 중 미리 결정된 위치의 서큘런트들을 상기 서큘런트들의 각 행에 대응하여 가산하는 과정과,
    상기 가산된 각 행의 패리티 정보들을 상기 클럭에 대응하여 쉬프트하며, 첫 행을 제외한 서큘런트들의 각 행의 값들은 상위 행의 정보와 가산되어 입력되는 서큘런트들을 이용하여 보정하는 과정;을 포함하는 낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 방법.
  12. 제 11 항에 있어서, 상기 보정하는 과정은,
    첫 행을 제외한 나머지 행들에 대하여 이전 행의 상기 서큘런트가 이전 행 번호에 대응하는 횟수만큼 쉬프트된 값을 자신의 행 번호에 대응하는 쉬프트 전에 가산하여 쉬프트하는 과정;을 포함하는 낮은 복잡도를 가지는 고속의 QC-LDPC 부호의 부호화 방법.
KR1020080130462A 2008-12-19 2008-12-19 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법 KR101211433B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080130462A KR101211433B1 (ko) 2008-12-19 2008-12-19 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법
US12/642,463 US20100162074A1 (en) 2008-12-19 2009-12-18 Apparatus and method for coding qc-ldpc code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080130462A KR101211433B1 (ko) 2008-12-19 2008-12-19 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20100071663A KR20100071663A (ko) 2010-06-29
KR101211433B1 true KR101211433B1 (ko) 2012-12-12

Family

ID=42267890

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080130462A KR101211433B1 (ko) 2008-12-19 2008-12-19 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법

Country Status (2)

Country Link
US (1) US20100162074A1 (ko)
KR (1) KR101211433B1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443257B1 (en) 2010-02-01 2013-05-14 Sk Hynix Memory Solutions Inc. Rate-scalable, multistage quasi-cyclic LDPC coding
US8448041B1 (en) 2010-02-01 2013-05-21 Sk Hynix Memory Solutions Inc. Multistage LDPC encoding
US8572463B2 (en) * 2010-02-01 2013-10-29 Sk Hynix Memory Solutions Inc. Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size
US8504894B1 (en) * 2010-03-04 2013-08-06 Sk Hynix Memory Solutions Inc. Systematic encoding for non-full row rank, quasi-cyclic LDPC parity check matrices
US8635517B2 (en) 2011-01-31 2014-01-21 Samsung Electronics Co., Ltd. Methods and apparatus for fast synchronization using quasi-cyclic low-density parity-check (QC-LDPC) codes
US8713398B2 (en) * 2011-03-22 2014-04-29 Nec Corporation Error correct coding device, error correct coding method, and error correct coding program
US9100052B2 (en) * 2013-02-01 2015-08-04 Samsung Electronics Co., Ltd. QC-LDPC convolutional codes enabling low power trellis-based decoders
CN105099467B (zh) * 2014-04-21 2019-02-01 华为技术有限公司 Qc-ldpc码的编码方法及编码装置
CN104410426B (zh) * 2014-09-18 2017-10-13 北京航空航天大学 一种多进制ldpc码的构造方法及编码方法
CN104868926B (zh) * 2015-04-27 2018-05-04 北京理工大学 一种ldpc码型的构造方法及***
EP3531561B1 (en) 2016-12-27 2023-07-12 Huawei Technologies Co., Ltd. Layered min-sum decoding for qc-ldpc codes according to increasing row weights
CN109802687B (zh) * 2018-12-25 2023-05-02 西安空间无线电技术研究所 一种基于fpga的qc-ldpc码的高速码率兼容ldpc编码器
CN109889207A (zh) * 2019-01-04 2019-06-14 浙江大学 Navdat中基于双对角线结构的ldpc信道编码方法
CN110730003B (zh) * 2019-09-19 2023-04-11 中国科学院国家空间科学中心 一种ldpc编码方法及ldpc编码器
CN111046334B (zh) * 2019-12-18 2023-10-13 中国传媒大学 基于数字信号处理器的循环矩阵快速生成方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100946905B1 (ko) * 2005-09-27 2010-03-09 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 송수신 장치 및 방법
US8065598B1 (en) * 2007-02-08 2011-11-22 Marvell International Ltd. Low latency programmable encoder with outer systematic code and low-density parity-check code
US20090049357A1 (en) * 2007-08-16 2009-02-19 Yeong-Luh Ueng Decoding Method for Quasi-Cyclic Low-Density Parity-Check Codes and Decoder for The Same

Also Published As

Publication number Publication date
US20100162074A1 (en) 2010-06-24
KR20100071663A (ko) 2010-06-29

Similar Documents

Publication Publication Date Title
KR101211433B1 (ko) 낮은 복잡도를 가지는 고속의 qc-ldpc 부호의 부호화 장치 및 방법
JP5199463B2 (ja) ターボldpc復号
KR100502609B1 (ko) Ldpc 코드를 이용한 부호화기 및 부호화 방법
US8095859B1 (en) Encoder for low-density parity check codes
CN107786211B (zh) 一种ira-qc-ldpc码的代数结构获取方法、编码方法和编码器
KR101405962B1 (ko) Ldpc 코드를 이용한 복호화 방법
EP1829223B1 (en) Parallel, layered decoding for Low-Density Parity-Check (LDPC) codes
US8359515B2 (en) Forward substitution for error-correction encoding and the like
CN111162797B (zh) 一种速率兼容的5g ldpc码的编码装置及编码方法
CN103401564A (zh) 编码器、解码器、发送装置、接收装置及其方法
WO2007034870A1 (ja) 復号装置および受信装置
WO2006115166A1 (ja) 符号装置および符号化方法
KR20050044963A (ko) q차 제곱 잉여류를 이용한 준순환 저밀도 패러티 검사부호 생성 방법
RU2743857C1 (ru) Способ и оборудование проектирования для квазициклического разреженного контроля по четности
WO2013026291A1 (zh) 分组交织的准循环扩展并行编码ldpc码的编码方法和编码器
KR100918741B1 (ko) 이동 통신 시스템에서 채널 부호화 장치 및 방법
KR20060106132A (ko) 연접 ldgm 부호 부호화/복호화 방법
KR101216075B1 (ko) 채널 코드를 이용한 복호화 및 복호화 장치
Khodaiemehr et al. Construction and encoding of QC-LDPC codes using group rings
US9065482B1 (en) Circuit for forward error correction encoding of data blocks
Fewer et al. A versatile variable rate LDPC codec architecture
EP2951926B1 (en) Ldpc code design and encoding apparatus for their application
EP3529900B1 (en) Construction of ldpc convolutional turbo codes
Moriyama et al. A study on construction of Low-Density Parity-Check codes using nonlinear feedback shift registers
Khan et al. A real time programmable encoder for low density parity check code as specified in the IEEE P802. 16E/D7 standard and its efficient implementation on a DSP processor

Legal Events

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

Payment date: 20151204

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161125

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171020

Year of fee payment: 6