KR101221897B1 - Ldpc 부호화 장치 - Google Patents

Ldpc 부호화 장치 Download PDF

Info

Publication number
KR101221897B1
KR101221897B1 KR1020060036351A KR20060036351A KR101221897B1 KR 101221897 B1 KR101221897 B1 KR 101221897B1 KR 1020060036351 A KR1020060036351 A KR 1020060036351A KR 20060036351 A KR20060036351 A KR 20060036351A KR 101221897 B1 KR101221897 B1 KR 101221897B1
Authority
KR
South Korea
Prior art keywords
parity
bits
diagonal component
matrix
component
Prior art date
Application number
KR1020060036351A
Other languages
English (en)
Other versions
KR20070104137A (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 KR1020060036351A priority Critical patent/KR101221897B1/ko
Publication of KR20070104137A publication Critical patent/KR20070104137A/ko
Application granted granted Critical
Publication of KR101221897B1 publication Critical patent/KR101221897B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction 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(Low Density Parity Check) 부호화와 복호화에 관한 것으로서, 보다 상세하게는, 간단한 처리과정을 통해 정보어를 부호어로 변환시키는 패리티 검사 행렬을 사용하는 부호화 장치에 관한 것이다. 본원 발명에 따른 LDPC 부호화 장치는, 상기 패리티 검사 행렬의 정보어 부분의 구조에 따라 정보 비트에 대한 연산을 수행하여 복수 개의 연산 값을 출력하는 정보어 부분 연산부; 및 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 출력에 대한 데이터 처리를 수행하고, 상기 데이터 처리가 수행된 결과를 누산하여 복수 개의 패리티 비트를 생성하는 패리티 비트 산출부를 포함하는 것을 특징으로 한다.
Figure R1020060036351
LDPC, 인코더, 패리티 부분, 병렬 처리, 하위 삼각형, 서브 블록

Description

LDPC 부호화 장치{LDPC encoder}
도 1은 본 발명 및 종래 기술이 적용되는 이동통신 채널의 구조를 나타내는 도면이다.
도 2는 구조화된(structured) LDPC를 설명하기 위한 도면이다.
도 3은 종래 기술에 따른 모델 행렬을 나타낸 도면이다.
도 4는 쉬프트 넘버에 따른 행렬의 표현 방법을 나타낸 도면이다.
도 5는 LDPC 복호화 방법에 대하여 설명한 도면이다.
도 6a는 이중 대각(dual diagonal) 성분을 갖는 패리티 검사 행렬의 패리티 비트를 산출하기 위해 패리티 비트 산출부를 도시한 도면이다.
도 6b는 본 실시예에 따라 다수의 비트를 동시에 처리하는 부호화 장치의 구조를 나타낸 도면이다.
도 7a는 일반적인 모델 행렬의 구조를 나타낸 것이다.
도 7b는 본 실시예에 따른 부호화 장치가 사용하는 모델 행렬의 구조를 나타낸 도면이다.
도 8은 본 실시예에 다른 모델 행렬의 일례를 나타낸 도면이다.
도 9는 도 8의 모델 행렬을 이용하여 부호화를 수행하는 부호화 장치(900)의 일례를 나타낸 도면이다.
도 10은 쉬프트 수(shift number)가 0인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다.
도 11은 쉬프트 수(shift number)가 임의의 정수인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다.
도 12는 쉬프트 수(shift number)가 임의의 정수인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다.
도 13a 내지 도 13c는 본 실시예에 따른 모델 행렬의 패리티 부분을 나타낸 도면이다.
도 14a 내지 도 14d는 본 실시예에 따른 부호화 장치의 동작을 설명하기 위한 도면이다.
본 발명은 LDPC(Low Density Parity Check) 부호화와 복호화에 관한 것으로서, 보다 상세하게는, 간단한 처리과정을 통해 정보어를 부호어로 변환시키는 패리티 검사 행렬을 사용하는 부호화 장치에 관한 것이다.
도 1은 본 발명 및 종래 기술이 적용되는 이동통신 채널의 구조를 나타내는 도면이다. 이하, 도 1을 참조하여 이동통신 채널의 구조를 설명한다. 송신 단(Transmitter)에서 전송할 데이터를 무선채널에서 손실이나 왜곡 없이 전송하기 위해 채널 코딩(channel coding) 절차를 거친다. 상기 채널 코딩 기법으로는, Convolutional Coding, Turbo Coding, LDPC Coding 등의 다양한 기술이 있다. 상기 채널 코딩(Channel coding) 절차를 거친 데이터(data)는 무선 채널로 전송될 때 여러 개의 비트들이 모여서 하나의 심볼로 전송될 수 있다. 이때, 여러 비트들을 하나의 심볼(symbol)로 매핑(mapping) 되는 절차를 변조(modulation)라 한다.
변조된 데이터는 다중화(Multiplexing) 과정 또는 다중 접속(Multiple Access) 방법을 거쳐 다중 전송을 위한 신호로 변환된다. 상기 다중화 방법으로는, CDM, TDM, FDM 등의 다양한 방법이 존재하는바, 도 1에서는 OFDM(Orthogonal Frequency Division Multiplexing)의 예를 표시하였다. 상기 다중화(Multiplexing) 블록을 거친 신호는 한 개 이상의 다중 안테나에 전송되기 적합한 구조로 변경되어 무선채널을 통해 수신 단(Receiver)에 전달된다. 무선 채널을 통과하는 과정에서 전송된 데이터는 페이딩(Fading)과 열 잡음을 겪게 되어 데이터에 왜곡이 발생할 수 있다.
상기 변조(Modulation)된 데이터는 무선 채널을 통해 수신 단(Receiver)에 전달된다. 이 과정에서 전송된 데이터는 페이딩(Fading)과 열 잡음 등을 겪게 되어 데이터에 왜곡이 발생할 수 있다. 수신 단에서는 상기 왜곡된 데이터를 수신한 후 상기 송신 단의 일련의 절차를 역순으로 수행한다. 상기 심볼로 매핑(mapping)된 데이터를 비트열로 바꾸는 복조(demodulation) 작업을 수행하고, 채널 디코딩(Channel Decoding) 절차를 거치며 왜곡된 데이터를 원래 데이터로 복원한다.
상기 채널 코딩을 수행하는 장치는, 입력된 데이터(Systematic Bits)에 첨가될 패리티 비트(Parity Bits)을 발생시키는 사용되는 패리티 검사 행렬(Parity Check Matrix)인 H 행렬 또는 H행렬로부터 유도되는 패리티 검사 생성 행렬(Parity Check Generate Matrix)인 G행렬을 저장하고 있다. 즉, 상기 송신 단은, 상기 H 또는 G 행렬과 상기 입력된 데이터를 통해 패리티 비트(Parity Bit)들을 발생하는 인코더(Encoder)를 포함한다. 채널 디코딩(Channel Decoding)을 수행하는 장치는, 수신된 데이터(왜곡된 Systematic Bits + Parity Bits)를 H행렬과 연산을 통하여 상기 입력된 데이터(Systematic Bits)들이 제대로 복구되는지 확인하고 복구 실패시 연산을 재수행한다.
상기 변조(Modulation)는 BPSK(Binary Phase Shift Keying), QPSK(Quadrature Phase Shift Keying), 16-QAM(Quadrature Amplitude Modulation), 64-QAM, 256-QAM 등이 사용된다. 예를 들어, 16-QAM은 변조(Modulation)시 채널 인코딩(Channel Encoding) 절차를 거친 데이터 열을 4비트 단위로 하나의 심볼에 매핑(mapping)한다. 16-QAM은 복조(Demodulation) 시 무선 채널을 거쳐 수신된 데이터의 하나의 심볼을 4개의 bit로 디매핑(demapping) 한다.
이하 LDPC 부호에 관하여 설명한다. LDPC 부호의 개념을 설명하면 다음과 같다.
선형 부호는 생성행렬 G 또는 패리티 체크 행렬 H로 기술될 수 있다. 선형 부호의 특징은 모든 부호어 c 에 대하여,
Figure 112006028087667-pat00001
을 만족하도록 부호가 구성된다는 점이다. 이 선형 부호의 일종으로서, 최근에 주목받는 LDPC 부호는 1962년 Gallager에 의하여 처음 제안되었다. 이 부호의 특징으로는 패리티 체크 행렬의 성 분이 대부분 0으로 이루어지고, 0이 아닌 성분의 개수는 부호 길이에 비하여 적은 수를 가지도록 하여 확률을 기반으로 한 반복적 복호가 가능한 점이다. 처음 제안된 LDPC 부호는 패리티 체크 행렬을 비체계적인(non-systematic) 형태로 정의하였고, 그것의 행과 열에 균일하게 적은 무게(weight)를 갖도록 설계되었다.
여기서, 무게(weight)란 행렬에서 열(column) 또는 행(row)에 포함된 1의 개수를 의미한다.
LDPC 부호의 패리티 체크 행렬 H 상에 0이 아닌 성분의 밀도가 적기 때문에 낮은 복호 복잡도를 가지게 된다. 아울러, 복호 성능도 기존의 부호들보다 우수하여 Shannon의 이론적인 한계에 근접하는 좋은 성능을 보인다. 하지만 LDPC 부호는 당시 하드웨어 기술로서 구현이 어려워서 30여 년이 넘게 많은 사람의 관심을 끌지 못하였다. 1980년대 초반 그래프를 이용하여 반복적 복호를 하는 방법이 개발되어, 이를 이용하여 LDPC 부호를 실제로 복호할 수 있는 여러 알고리즘들이 개발되었다. 이를 대표하는 알고리즘으로 합곱 알고리즘(sum-product Algorithm)을 뽑을 수 있다.
이하, LDPC 부호의 특징을 설명한다. LDPC 부호는 높은 오류 정정 성능을 갖고 있으며, 이로 인해 통신 속도와 용량의 개선을 가능하게 한다. 상기 LDPC 부호는 MIMO(Multiple Input Multiple Output) 시스템과 결합하여 수백 Mbit/s의 전송이 가능한 고속 무선 LAN에 적용될 수 있고, 또한 250km/h에서 1Mbit/s 이상의 전송 속도를 갖는 고속 이동 통신에 적용될 수 있고, 또한 40Gbits/s 이상의 광통신에 적용될 수 있다. 또한, 상기 LDPC 부호의 높은 오류 정정 성능으로 인해 전송 품질이 개선되어 저품질의 통신 경로에서 재전송의 회수를 감소시키는 양자 암호화 통신을 가능하게 할 수 있다. 또한, LDPC 부호의 낮은 복잡도와 뛰어난 손실 보상으로 인해, 유실된 패킷을 용이하게 복원할 수 있으며, 이는 인터넷과 이동 통신을 통해 TV 품질과 동일한 품질의 컨텐츠를 전송할 수 있게 한다. LDPC의 장점인 넓은 적용 범위와 큰 용량으로 인하여, 전에는 불가능한 것으로 여겨졌던 100m 범위까지의 10GBASE-T 전송이 LDPC 부호를 통해 실현 가능하다. 동시에 36MHz 대역의 단일 위성 송신기의 전송 용량을 1.3배 늘어난 80M비트/s까지 늘릴 수 있다. 이런 장점으로 높은 주파수 효율을 지향하는 IEEE802.16 시스템과 IEEE802.11 시스템 등에서 차세대 채널코딩 방법으로 채택되고 있다.
이하, 구조화된(structured) LDPC를 설명한다.
LDPC code를 사용하기 위해서는 패리티 체크 행렬 H를 사용하는데, 사용하는 행렬 H는 대부분의 0과 일부의 1을 성분(elemnet)으로 포함하는데, H 행렬의 크기가 105 비트 이상으로 크기 때문에 H 행렬을 표현하는데 큰 크기의 메모리가 필요하다. 상기 구조화된 LDPC 기법은 LDPC 부호화 및 복호화에 사용되는 상기 H 행렬의 성분들을 도 2와 같이 일정한 크기의 서브 블록(sub-block)으로 표현하는 방법이다. IEEE802.16e에서는 상기 서브 블록을 하나의 정수 인덱스(index)로 표시하여, 상기 H 행렬을 저장하는데 필요한 메모리의 크기를 줄인다. 상기 서브 블록은 다양한 행렬일 수 있는바, 예를 들어 일정한 크기의 퍼뮤테이션 행렬(Permutation Matrix)일 수도 있다.
상기 구조화된 LDPC 기법을 사용하게 되면 특정한 메모리에 1 또는 0으로 구성되는 일정 크기의 행렬을 저장하는 대신, 하나의 정수(즉, 인덱스)만 저장하면 되기 때문에 상기 H 행렬을 표시하는데 필요한 메모리의 크기를 줄일 수 있다.
일례로, IEEE802.16e 표준에 반영된 코드워드(codeword)의 크기가 2304이고, 부호율(code rate)이 2/3인 경우에, LDPC 부호화/복호화를 위해 사용되는 모델 행렬(model matrix)은 도 3과 같다.
도 3에 도시된 바와 같이, IEEE802.16e의 구조화된 LDPC 행렬은 -1, 0 과 양의 정수의 성분들로 이루어진다. -1은 원소가 모두 0인 영 행렬(zero matrix)이며 0은 단위 행렬(identity matrix)을 나타낸다. -1과 0을 제외한 양의 정수 성분들은 양의 정수만큼 상기 단위 행렬(identity matrix)이 오른쪽으로 쉬프트(shift)된 형태의 퍼뮤테이션 행렬(permutation matrix)이다. 즉, 행렬의 성분이 3이면 상기 단위 행렬을 오른쪽으로 3번 쉬프트(shift)시킨 형태의 퍼뮤테이션 행렬을 표현하는 것이다.
도 4는 상술한 양의 정수, 즉 쉬프트 넘버에 따른 행렬의 표현 방법을 나타낸 도면이다. 특정한 H 행렬을 4*4 크기의 행렬(즉, 서브 블록)로 구조화하여 표현하는 경우, 상기 특정한 서브 블록을 3이라 표시하면, 상기 서브 블록은 도 4의 행렬이 된다.
이하, LDPC 부호화 방법을 설명한다.
일반적인 LDPC 부호화(Encoding) 방법은, LDPC 패리티 검사행렬(Parity Check Matrix) H로부터 생성행렬(Generation Matrix) G를 유도해 내어, 정보 비 트(information bit)를 부호화(encoding)한다. 상기 생성행렬 G를 유도하기 위해, 상기 검사행렬 H를 가우스 소거(Gaussian Reduction) 방법을 통해 [ PT : I ] 형태로 구성한다. 상기 정보 비트(Information bit)의 수를 k이라 하고, 인코딩된 코드 워드(codeword)의 크기를 n이라고 할 때, 상기 P 행렬은 행의 개수가 k이고 열의 개수가 n-k인 행렬이고, 상기 I는 행 크기가 k 열 크기가 k인 단위 행렬(Identity Matrix)이다.
상기 생성행렬 G 는, 상기 검사행렬 H 가 [ PT : I ]와 같이 표현되었을 때, [ I : P ] 행렬이 된다. 인코딩(Encoding) 되는 k 비트 크기의 정보 비트를 행렬로 표시하면, 행의 개수는 1이고 열의 개수는 k인 행렬 x로 표현할 수 있다. 이 경우 코드 워드 c는 다음과 같은 식으로 설명된다.
Figure 112006028087667-pat00002
상기 수식에서, x는 정보어 부분(systematic part)를 나타내고, xP는 패리티 부분(parity part)를 나타낸다.
한편, 위와 같이 가우스 소거(Gaussian Reduction) 방법으로 부호화하는 경우에는 계산량이 많아, 상기 H 행렬의 형태를 특수한 구조로 디자인(design)하여 상기 G 행렬을 유도하지 않고, 상기 H 행렬에서 직접 부호화하는 방법을 사용한다. 즉, 상기 G 행렬과 상기 H 행렬에 대한 전치(Transpose) 형태의 HT 간의 곱이 0 이 라는 성질(즉,
Figure 112006028087667-pat00003
)을 이용하여, 상기 수학식 1에서 HT을 곱하면, 하기 수학식 2 같은 수학식을 얻을 수 있다. 하기 수학식 2에 부합하는 패리티 비트를 정보 비트(x) 뒤에 추가하여 코드워드 c를 얻을 수 있다.
Figure 112006028087667-pat00004
이하, LDPC 복호화 방법에 대하여 설명한다.
통신시스템에서 부호화된 데이터는 도 1의 무선 채널을 통과하는 과정에서 잡음을 포함하게 되는데, 수신 단에서는 도 5와 같은 절차를 통해 데이터의 복호 를 수행한다. 수신 단의 복호화 블록에서는 부호화된 코드워드(c)에 잡음이 첨가된 수신신호(c')로부터 정보 비트(x)를 구하는데, cHT=0인 성질을 이용하여 찾아낸다. 즉, 수신된 코드워드를 c'라 할 때, c'HT의 값을 계산하여 결과가 0이면, c'에서 처음 k개의 비트를 상기 정보 비트(x)로 결정한다. 만약, c'HT의 값이 0이 아닌 경우, 그래프를 통한 합곱(sum-product) 알고리즘 등의 복호화 기법을 사용하여, c'HT의 값이 0을 만족하는 c'을 찾아 상기 정보 비트(x)를 복구한다.
이하, LDPC 부호의 부호율(code rate)을 설명한다.
일반적으로, 부호율(R: code rate)은 상기 정보 비트의 크기가 k이고, 실제 전송되는 코드워드의 크기가 n일 때 다음과 같다.
R = k/n
LDPC 부호화 및 복호화에 필요한 상기 H 행렬의 행의 크기가 m, 열의 크기가 n인 경우, 부호율은 다음과 같다.
R = 1 - m/n
상술한 바와 같이, 종래의 LDPC 부호는 상기 H 행렬에 의해 부호화 및 복호화를 수행하는바, 상기 H 행렬의 구조가 매우 중요하다. 즉, 부호화 및 복호화의 성능이 상기 H 행렬의 구조에 크게 영향을 받기 때문에, 상기 H 행렬의 설계가 무엇보다 중요하다.
본 발명의 상술한 종래 기술을 개선하기 위해 제안된 것으로, 본 발명의 목적은, 종래에 비해 향상된 성능의 부호화 장치를 제안하는 것이다.
본 발명의 다른 목적은, 부호화에 따른 복잡도를 개선한 패리티 검사 행렬을 이용하여 패리티 비트를 생성하는 부호화 장치를 제안하는 것이다.
본원 발명은 종래 기술에 비해 성능을 향상시키기 위해 다수의 패리티 비트를 병렬로 산출한다. 보다 구체적으로, 본원 발명에 따른 부호화 장치는, 특정한 크기(z*z)의 서브 블록들로 이루어진 패리티 검사 행렬을 이용하여 부호화를 수행한다. 또한, 본원 발명은 상기 서브 블록 단위로 패리티 비트를 산출한다. 즉, 상 기 서브 블록의 행 또는 열의 크기 만큼의 패리티 비트를 한번에 산출한다.
또한, 본원 발명에 따른 부호화 장치는 하위 삼각형(lower triangle) 타입의 패리티 검사 행렬에 대한 병렬 처리를 수행하는 것을 특징으로 한다. 본원 발명에 따른 부호화 장치는 상기 하위 삼각형 타입의 패리티 검사 행렬을 사용하여, 부호화에 따른 복잡도를 낮출 수 있다.
본원 발명에 따른 LDPC 부호화 방법은, 정보 비트를 패리티 검사 행렬을 이용하여 부호화하는 방법에 있어서, 상기 패리티 검사 행렬의 정보어 부분 중 제1 영역의 구조에 의해 결정된 제1 정보 비트들에 대한 복수 개의 제1 패리티 비트들을 산출하는 단계; 및 상기 정보어 부분 중 제2 영역의 구조에 의해 결정된 제2 정보 비트들과 상기 제1 패리티 비트들을 누산하여 복수 개의 제2 패리티 비트들을 산출하는 단계를 포함하는 것을 특징으로 한다.
또한, 본원 발명에 따른 LDPC 부호화 장치는, 서브 블록들로 이루어진 모델 행렬로부터 생성된 패리티 검사 행렬을 이용하여 부호화를 수행하는 장치에 있어서, 상기 패리티 검사 행렬의 정보어 부분의 구조에 따라 정보 비트에 대한 연산을 수행하여 복수 개의 연산 값을 출력하는 정보어 부분 연산부; 및 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 출력에 대한 데이터 처리를 수행하고, 상기 데이터 처리가 수행된 결과를 누산하여 복수 개의 패리티 비트를 생성하는 패리티 비트 산출부를 포함하여 이루어진다.
또한, 본원 발명에 따른 부호화 장치에 사용되는 데이터 스케쥴러는, 상기 패리티 검사 행렬의 구조에 따라 정보 비트들을 합산한 복수 개의 연산 값 또는 상 기 정보 비트들과 패리티 비트들을 합산한 복수개의 연산 값을 입력 받고, 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 연산 값들에 대한 데이터 처리를 수행하는 것을 특징으로 한다.
본 발명의 구성, 동작 및 효과는 이하에서 설명되는 본 발명의 일 실시예에 의해 구체화될 것이다. 이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 설명한다.
이하, 상술한 구조화된(structured) LDPC에 따라 특정한 z * z 크기의 서브 블록으로 패리티 검사 행렬을 나타내는 행렬을 모델 행렬(model matrix)이라 한다. 상기 모델 행렬의 각 서브 블록은 특정한 인덱스에 의해 다양한 종류의 행렬로 확장될 수 있는바, 상기 모델 행렬은 상기 인덱스를 상기 모델 행렬의 성분으로 한다. 상기 모델 행렬의 각 서브 블록은 상기 인덱스에 따라 다양한 방식으로 결정될 수 있는바, 이하에서 상기 인덱스는 특정한 크기(z*z)의 단위 행렬에 대한 쉬프트 수(shift number)인 경우를 가정한다. 또한, 상기 인덱스가 -1인 경우에는, 상기 -1의 인덱스를 갖는 서브 블록은 특정한 크기(z*z)의 영 행렬(zero matrix)이다.
상기 모델 행렬은 상기 인덱스에 따라 특정한 패리티 검사 행렬로 확장되는바, 상기 모델 행렬에 의해 부호화 및 복호화가 수행된다는 것은, 상기 모델 행렬에 의해 생성되는 특정한 패리티 검사 행렬에 의해 부호화 및 복호화가 수행되는 것을 의미한다.
도 6a는 이중 대각(dual diagonal) 성분을 갖는 패리티 검사 행렬의 패리티 비트를 산출하기 위해 패리티 비트 산출부를 도시한 도면이다. 상기 패리티 비트 산출부는 상기 패리티 검사 행렬의 정보어 부분(systematic part)의 구조에 따라 생성된 결과값을 누적하여 패리티 비트를 출력한다. 즉, 상기 패리티 비트 산출부는 누산기(accumulator)로 이루어진다.
도 6b는 본 실시예에 따라 다수의 비트를 동시에 처리하는 부호화 장치의 구조를 나타낸 도면이다. 본 실시예에 따른 부호화 장치는 부호화되는 정보 비트들을 패리티 검사 행렬의 구조에 따라 연산하는 연산부(610)와 상기 연산부의 결과 값을 누산하여 패리티 비트를 산출하는 패리티 산출부(620)를 포함한다. 상기 패리티 산출부(620)는 피드백(feedback) 구조를 이용하여 상기 연산부의 출력 값을 누산한다. 또한, 상기 패리티 산출부(620)는 특정한 개수의 결과 값을 동시에 누산하는 것이 바람직하다. 상기 동시에 누산되는 결과 값의 개수는, 상기 부호화 장치가 이용하는 패리티 검사 행렬의 구조에 따라 정해진다. 상기 패리티 검사 행렬은 특정한 크기(z*z)의 서브 블록들로 이루어지는바, 상기 서브 블록의 행 또는 열의 크기(z) 만큼의 결과 값을 병렬 처리하여 한 번의 데이터 처리를 통해 z개 만큼의 패리티 비트를 출력한다. 즉, 하나의 서브 블록에 대한 연산은 동시에 처리된다. 상기 데이터 처리부는 상기 패리티 검사 행렬의 이중 대각 성분의 구조에 따라 데이터를 저장하거나 쉬프트(shift)하는 등의 동작을 수행한다.
상기 데이터 처리부는 상기 패리티 검사 행렬(또는 특정한 모델 행렬에 의해 확장되는 패리티 검사 행렬)의 구조에 따라 특정한 동작을 수행하는바, 이하 상세한 동작을 설명한다. 도 6b의 부호화 장치는, 하위 삼각형(lower triangle) 타입의 패리티 검사 행렬(하위 삼각형 타입의 모델 행렬에 의해 확장된 패리티 검사 행렬 도 포함한다.)을 이용하여 부호화 동작을 수행하는 것이 바람직하므로, 이하 상기 하위 삼각형의 개념을 설명하고, 그에 따른 동작을 설명한다.
이하, 상기 하위 삼각형(lower triangle)의 개념을 설명하기 위해 상위 삼각형(upper triangle)의 개념을 설명하고, 그에 이어 하위 삼각형의 개념을 설명한다.
도 7a는 일반적인 모델 행렬의 구조를 나타낸 것이다. 도 7a에 표시된 각각의 정수는 인덱스를 나타내며, 표시되지 않은 부분은 -1의 인덱스를 갖는다. 도 7a의 모델 행렬은, 크게 정보어 부분(systematic part)과 패리티 부분(parity part)으로 구성된다. 즉, 도 7a의 모델 행렬은, [Hd : Hp]의 구조로 이루어지는바, 상기 Hd는 상기 모델 행렬에 의해 부호화되는 정보 비트(information bit)에 1:1로 대응하는 정보어 부분이고, 상기 Hp는 부호화된 코드워드에 포함되는 패리티 비트를 생성하는 패리티 부분이다.
도시된 바와 같이, 일반적인 모델 행렬은 상기 패리티 부분에 이중 대각(dual diagonal) 성분을 갖는다. 다만, 종래의 이중 대각 성분은 도시된 바와 같이, 하나의 대각(diagonal) 성분과 상기 대각 성분에 인접한 성분으로 이루어진다. 또한, 상기 인접한 성분은, 상기 대각 성분의 상단(upper)에 위치한다. 달리 표현하면, 상기 인접한 성분은 상기 대각 성분의 우측에 위치한다. 행렬의 성분에 대한 상하 좌우는 행렬을 보는 방향에 따라 가변적인바, 도 7a의 행렬을 다른 방법으로 설명하면 다음과 같다.
상기 모델 행렬을 [Hd : Hp]라 하고, 도 7a의 패리티 부분 내에서 서브 블록의 행을 r이라 하고, 열을 c로 표시하고, 특정한 서브 블록에 대한 쉬프트 수를 Ar ,c라 하는 경우, 상기 인덱스 Ar ,c는 r=c인 경우와 c=r+1인 경우에 0을 갖는다. 또한, 나머지 인덱스 Ar ,c는 -1을 갖는다. 즉, 도 7a의 모델 행렬의 패리티 부분이 16개의 서브 블록을 갖는 경우, 상기 패리티 부분은 하기 수학식 5와 같이 결정된다.
Figure 112006028087667-pat00005
모델 행렬 또는 패리티 검사 행렬의 패리티 부분은, 이중 대각 성분의 설계 방법에 따라 여러 가지로 구분될 수 있는바, 도 7a의 모델 행렬의 방식으로 설계된 패리티 부분은 '상위 삼각형(upper triangle) 타입'에 따라 설계되었다고 표현한다.
도 7b는 본 실시예에 따른 부호화 장치가 사용하는 모델 행렬의 구조를 나타낸 도면이다. 도 7b의 모델 행렬은, 크게 정보어 부분(systematic part)과 패리티 부분(parity part)으로 구성된다. 즉, 도 7b의 모델 행렬은, [Hd : Hp]의 구조로 이루어지는바, 상기 Hd는 상기 모델 행렬에 의해 부호화되는 정보 비트(information bit)에 1:1로 대응하는 정보어 부분이고, 상기 Hp는 부호화된 코드워드에 포함되는 패리티 비트를 생성하는 패리티 부분이다. 상기 Hd를 구성하는 방법에는 제한이 없는바, 도 7b에서는 상기 정보어 부분에 자세한 사항을 도시하지 않는다.
도 7b의 모델 행렬 역시 이중 대각(dual diagonal) 성분을 갖는다. 도 7b의 이중 대각 성분은 도시된 바와 같이, 하나의 대각(diagonal) 성분과 상기 대각 성분에 인접한 성분으로 이루어진다. 다만, 상기 인접한 성분은, 상기 대각 성분의 하단(lower)에 위치한다. 달리 말하면, 상기 인접한 성분은 상기 대각 성분의 좌측에 위치한다. 행렬의 성분에 대한 상하 좌우는 행렬을 보는 방향에 따라 가변적인바, 본 실시예에 따른 모델 행렬을 다른 방법으로 설명하면 다음과 같다.
상기 모델 행렬을 [Hd : Hp]라 하고, 도 7b의 패리티 부분 내에서 서브 블록의 행을 r이라 하고, 열을 c로 표시하고, 특정한 서브 블록에 대한 쉬프트 수를 Ar ,c라 하는 경우, 상기 인덱스 Ar ,c는 r=c인 경우와 r=c+1인 경우에 -1인 아닌 임의의 정수를 갖는다. 즉, 도 7b의 모델 행렬의 패리티 부분이 16개의 서브 블록을 갖는 경우, 상기 패리티 부분은 하기 수학식 6과 같이 결정될 수 있다.
Figure 112006028087667-pat00006
상기 수식에서 xi와 yi는 임의의 정수를 나타낸다. 모델 행렬 또는 패리티 검사 행렬의 패리티 부분은, 이중 대각 성분의 설계 방법에 따라 여러 가지로 구분될 수 있는바, 도 7b의 모델 행렬과 동일한 방식으로 설계된 패리티 부분은 '하위 삼각형(lower triangle) 타입'에 따라 설계되었다고 표현한다.
이하, 상기 하위 삼각형 타입의 행렬을 이용하여 부호화를 수행하는 방법을 설명한다. 상기 하위 삼각형 타입의 종류는 다양한바, 도 8의 모델 행렬을 이용하여 부호화를 수행하는 방법을 설명한다.
도 8의 모델 행렬을 Hb라 하는 경우, 상기 Hb는 정보어, 즉 정보비트(information bit)와 일대일 대응되는 정보어 부분 Hb1과, 패리티 부분 Hb2으로 구성된다. 상기 모델 행렬을 수식으로 정리하면 다음과 같다.
Figure 112006028087667-pat00007
상기 kb는 도 8의 모델 행렬에서 정보어에 대응하는 서브 블록의 개수를 나타낸다. 또한, 상기 mb는 상기 모델 행렬에서 열 방향으로 위치하는 서브 블록의 개수이다. 즉, 상기 모델 행렬의 정보어 부분은, 서브 블록의 단위로 표현할 때, mb * kb의 크기를 갖는다. 또한, 상기 모델 행렬의 패리티 부분은, 서브 블록의 단위로 표현할 때, mb * mb의 크기를 갖는다.
상기 Hb에 의해 생성되는 코드워드 x는, 정보 비트 s와 패리티 비트 p를 포함하는바, 하기 수식으로 표현된다.
Figure 112006028087667-pat00008
상술한 바와 같이, 상기 모델 행렬 Hb는 z * z 크기의 서브 블록들로 구성된다. 또한, 상기 Hb를 이용하는 부호화 장치는 z개 단위로 데이터를 처리한다. 즉, 부호화를 위해서 정보 비트 s를 z 비트씩 묶어서 kb개의 그룹으로 그룹화한다. kb개의 그룹으로 그룹화된 정보 비트 s는 하기 수학식 9와 같이 벡터로 표시된다
Figure 112006028087667-pat00009
Figure 112006028087667-pat00010
상기 수학식 9에서 u(i)는, 크기가 z*1인 열 벡터(column vector)이다.
본 실시예에 따라 한 번에 z비트의 패리티 비트가 출력되는바, 본 실시예에 따른 부호화 장치에 의해 출력되는 패리티 비트는 크기가 z*1인 열 벡터(column vector) v(i)로 표현될 수 있다. 이를 수식으로 정리하면 하기 수학식 10과 같다.
Figure 112006028087667-pat00011
Figure 112006028087667-pat00012
상기 수학식 10과 같이, 패리티는 mb개의 벡터로 구성되고, 각각의 벡터는 z 비트의 패리티 비트를 포함한다.
Figure 112006028087667-pat00013
Figure 112006028087667-pat00014
상기 수학식에서,
Figure 112006028087667-pat00015
는 패리티 부분에 위치하는 서브 블록으로부터 확장되어 생성되는 행렬을 나타낸다. 예를 들어,
Figure 112006028087667-pat00016
이라면, 특정한 모델 행렬의 첫 번째 행과 첫 번째 열에 위치하는 서브 블록을 나타내는 것이다. 상기 수학식 11a에서도 알 수 있듯이, 전체 패리티 비트 중 첫 번째 열 벡터(즉, 전체 패리티 비트 중 최초 z비트)는, 상기 첫 번째 열 벡터에 상응하는 정보어 부분(systematic part)에 대한 연산 결과이다. 두 번째 열 벡터는, 상기 두 번째 열 벡터에 상응하는 정보어 부분에 대한 연산 결과와 상기 첫 번째 열 벡터를 이용하여 계산된다. 이러한 내용을 정리하면, 패리티 비트를 산출하는 과정은 상기 수학식 11b와 같은 재귀적 방법으로 표현될 수 있다.
도 9는 도 8의 모델 행렬을 이용하여 부호화를 수행하는 부호화 장치(900)의 일례를 나타낸 도면이다. 도 9는, 도 6b의 부호화 장치를 보다 상세하게 설명한 일례이다.
도시된 바와 같이, 상기 부호화 장치(900)는 패리티 검사 행렬의 정보어 부분에 대한 연산 처리를 수행하는 연산 처리부(910), 상기 연산 처리부의 출력을 누적적으로 합산하는 합산 모듈(920), 상기 합산 모듈(920)의 출력을 저장하는 메모리(930), 상기 메모리로부터 출력되는 결과값에 대한 데이터 처리를 수행하는 제1 스케쥴러(940), 상기 합산 모듈(920)의 출력에 대하여 상기 패리티 검사 행렬의 구조에 따라 데이터 처리를 수행하는 제2 스케쥴러(950), 상기 부호화 장치의 전체적인 스케줄링 및 동작 제어를 수행하는 제어부(960)를 포함한다.
상기 연산 처리부(910)는, 도 8의 모델 행렬로부터 확장되어 생성된 패리티 검사 행렬의 정보어 부분에 대한 연산을 수행한다. 상기 정보어 부분에 대한 연산 방법이 다양하게 존재한다는 사실은, 본 발명이 속하는 기술 분야의 통상의 지식을 갖춘자에게는 자명하다. 이하, 패리티 검사 행렬의 정보어 부분에 대한 연산 방법을 설명한다.
Figure 112006028087667-pat00017
만약 정보어 부분이 [0 1 3 0]로 표현되고, 모델 행렬을 구성하는 서브 블록 의 크기 z가 4인 경우, 상기 모델 행렬은 수학식 12의 패리티 검사 행렬 H와 같이 확장될 수 있다. 상기 수학식 12의 정보어 부분은, 16개의 정보비트(a0 내지 a15)에 대응된다. 따라서, 상기 정보어 부분에 대한 연산 처리를 수행하면 4개의 결과값이 생성된다. 즉, 첫 번째 결과값은
Figure 112006028087667-pat00018
이고, 두 번째 결과값은
Figure 112006028087667-pat00019
이고, 세 번째 결과값은,
Figure 112006028087667-pat00020
이고, 네 번째 결과값은,
Figure 112006028087667-pat00021
이다. 상기 결과값은 z개이므로, z개 단위로 병렬처리된다.
상기 연산 처리부(910)는 상기 z 비트만큼의 결과값을 상기 합산 모듈(920)로 출력한다. 초기 단계에서는 상기 메모리(930)에는 저장된 값이 없으므로, 상기 z 비트만큼의 결과값을 상기 제2 스케쥴러(950)로 출력한다. 상기 제2 스케쥴러(950)의 자세한 동작은 이후 설명되는바, 도 8의 모델 행렬을 사용하는 경우 상기 제2 스케쥴러(950)는 입력을 그대로 출력한다. 상기 제2 스케쥴러(950)의 출력은 상기 정보 비트에 대한 첫 번째 패리티 벡터(v(0))이다.
상기 z 비트만큼의 결과값은 상기 메모리(930)에도 전달되어 저장된다. 상기 메모리(930)의 크기는 z 비트인 것이 바람직하다. 또한, 상기 메모리(930)의 저장된 데이터는 상기 제1 스케쥴러(940)로 출력된다. 상기 제1 스케쥴러(940)의 자세한 동작은 이후 설명되는바, 도 8의 모델 행렬을 사용하는 경우 상기 제1 스케쥴러(940)는 쉬프트 연산을 수행하지 않는다.
상기 제어부(960)는 상기 연산 처리부(910)를 통해 정보어 부분에 대한 연산을 지시하는바, 두 번째 패리티 벡터(v(1))에 상응하는 정보어 부분에 대한 연산을 수행한다. 상기 수행된 연산의 결과값은 z 비트의 크기를 갖는바, 상기 합산 모듈(920)에 한번에 출력된다, 상기 합산 모듈(920)은, 상기 첫 번째 패리티 벡터(v(0))에 상응하는 정보어 부분에 대한 결과값과, 상기 두 번째 패리티 벡터(v(1))에 상응하는 정보어 부분에 대한 결과값을 합산(예를 들어, XOR 연산)하는 연산을 수행한다. 상기 합산된 결과 역시 z개의 데이터이며, 한번에 출력되어 상기 제2 스케쥴러(950)와 상기 메모리(930)에 출력된다. 상술한 바와 같이, 상기 제2 스케쥴러(950)는 데이터 처리 없이 입력 값을 그래도 출력하여, 두 번째 패리티 벡터(v(1))를 출력한다. 상기 메모리(930)에는 새로운 값이 저장되며, 상기 저장된 값은, 세 번째 패리티 벡터(v(2))에 상응하는 정보어 부분에 대한 연산 결과값과 합산된다. 상술한 방법이 반복되면, v(0)에서 v(mb-1)까지의 패리티 벡터를 구하여 결국 전체 패리티 비트를 구할 수 있다. 상술한 내용은, 상기 수학식 11b에서도 설명된 부호화 동작이다.
이하, 상기 제1 스케쥴러(940) 및 상기 제2 스케쥴러(950)의 동작을 설명한다.
상기 제1 및 제2 스케쥴러는 특정한 데이터들이 패리티 부분의 구조에 따라 합산되는 경우, 합산되는 데이터들의 순서를 조정하기 위해 사용된다. 특정한 패리티 비트가 생성되기 위해서는, 상기 하위 삼각형 타입에 따른 모델 행렬의 이중 대 각 성분의 구조에 따라 특정한 데이터 비트들이 합산된다. 상기 스케쥴러는 상기 합산되는 데이터 비트들을 결정하고, 합산된 결과값의 순서를 조절한다. 즉 상기 스케쥴러는 합산되는 비트가 올바르게 매핑(mapping)되도록 데이터 처리를 수행하고, 패리티 비트로 출력될때 요구되는 순서에 따라 출력되도록 데이터 처리를 수행한다.
상기 스케쥴러의 개수에는 제한이 없는바, 이하 도 10 내지 도 12의 일례에서는 2개의 스케쥴러를 사용한다. 상기 스케쥴러는 데이터 비트가 매핑되는 순서를 조정하기 때문에 쉬프트 레지스터(shift register) 등의 장치를 통해 구현될 수 있다. 이하 도 10 내지 도 12의 일례에서는, 쉬프트 레지스터를 통해 스케쥴러를 구현한 일례를 설명한다.
도 10은 쉬프트 수(shift number)가 0인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다.
도시된 바와 같이, 도 10의 일례에서는
Figure 112006028087667-pat00022
와 같은 패리티 부분을 구비한 모델 행렬을 이용하여 부호화를 수행한다. 상기 행렬
Figure 112006028087667-pat00023
은, 전체 패리티 부분의 일부일 수 있는바, 설명의 편의를 위해 상기 행렬
Figure 112006028087667-pat00024
를 기초로 하여 동작을 설명한다. 상기 모델 행렬은 패리티 검사 행렬로 확장되는바, 서브 블록의 크기가 4*4인 경우에 도시된 바와 같이 확장된다. 도시된 바와 같이, 패리티 비트 p0 내지 p7은 상기 패리티 검사 행렬의 구조에 의해 산출된다. 보다 구체적으로는, 각 패리티 비트에 상응하는 정보어 부분에 대한 연산 값과 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 패리티 비트가 결정된다. 상술한 바와 같이, 상기 패리티 비트는 4(=z) 비트 단위로 산출되는바, 현재 상태는 p0 내지 p3은 산출되어 상기 메모리(930)에 저장된 상태다.
상기 제1 쉬프트 레지스터(940)는 상기 제어부(960)에 의해 쉬프트(shift) 동작을 수행하는바, 상기 제어부(960)는 상기 패리티 검사 행렬의 구조를 분석하고, 상기 구조를 통해 상기 제1 쉬프트 레지스터(940)의 동작을 제어한다. 보다 구체적으로 1001의 성분과 1002의 성분을 비교하여, 얼마만큼의 쉬프트를 수행할지 결정한다. 도 10의 경우 1001의 성분과 1002의 성분이 동일한 값이므로 쉬프트를 수행하지 않는다.
상기 제1 쉬프트 레지스터(940)의 출력은 상기 합산 모듈(920)로 출력된다. 합산 모듈(920)은, 제4 내지 제7 결과값을 p0 내지 p3의 결과값과 각각 합산한다. 상기 합산된 결과는 상기 제2 쉬프트레지스터(950)에 입력된다. 상기 제어부(960)는 상기 패리티 검사 행렬의 구조를 분석하고, 상기 구조를 통해 상기 제2 쉬프트 레지스터(950)의 동작을 제어한다. 보다 구체적으로 1005의 쉬프트 수(shift number)가 단위 행렬(identity matrix)에 비하여 얼마만큼 쉬프트 되었는지에 따라 쉬프트 수를 결정한다. 도 10의 경우 1005의 성분은 단위 행렬을 나타내는바, 쉬프트를 수행하지 않는다. 결과적으로 상기 합산된 결과는 p4 내지 p7의 패리티 비트로 결정된다.
도시된 제0 내지 제7 결과값은 p0 내지 p7 패리티 비트에 상응하는 정보어 부분에서의 정보 비트에 대한 연산 값을 나타낸다. 상기 결과값을 구하는 방법은 상기 수학식 12 등에 의할 수 있다.
도 10의 우측에 도시된 바와 같이, 패리티 비트 p4는 제4 결과값과 패리티 비트 p0 간의 연산에 의해 결정된다. 각 변수들 간의 관계는 지시선 1003에 의해 설명된다. 패리트 비트 p5의 경우는, 제5 결과값과 패리티 비트 p5 간의 연산에 의해 결정된다. 각 변수들 간의 관계는 지시선 1004에 의해 설명된다.
도 10은 본 발명의 일례를 나타내기 위한 도면에 불과한바, 본 발명은 도 10에 제한되지 아니한다. 즉, 제1 쉬프트 레지스터와 제2 쉬프트 레지스터가 어떠한 동작도 수행하지 않는경우, 상기 쉬프트 레지스터가 제외된 부호화 장치를 사용할 수 있다.
도 11은 쉬프트 수(shift number)가 임의의 정수인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다.
도시된 바와 같이, 도 11의 일례에서는
Figure 112006028087667-pat00025
를 포함하는 패리티 부분을 구비한 모델 행렬을 이용하여 부호화를 수행한다. 상기 모델 행렬은 패리티 검사 행렬로 확장되는바, 서브 블록의 크기가 4*4인 경우 도시된 바와 같이 확장된다. 도시된 바와 같이, 패리티 비트 p0 내지 p7은 상기 패리티 검사 행렬의 구조에 따라 산출된다. 보다 구체적으로는, 각 패리티 비트에 상응하는 정보어 부분에 대한 연산 값과 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 패리티 비트가 결정된다. 상술한 바와 같이, 상기 패리티 비트는 4(=z) 비트 단위로 산출되는바, 현재 상태는 p0 내지 p3은 산출되어 상기 메모리(930)에 저장된 상태다.
상기 제1 쉬프트 레지스터(940)는 상기 제어부(960)에 의해 쉬프트(shift) 동작을 수행하는바, 상기 제어부(960)는 상기 패리티 검사 행렬의 구조를 분석하고, 상기 구조를 통해 상기 제1 쉬프트 레지스터(940)의 동작을 제어한다. 보다 구체적으로 도 11의 1101의 성분과 1102의 성분을 비교하여, 얼마만큼의 쉬프트를 수행할지 결정한다. 도 11의 경우 1101의 성분과 1102의 성분이 서로 1 만큼의 차이가 나기 때문에, 상기 제1 쉬프트 레지스터(940)는 1만큼의 쉬프트 연산을 수행할 수 있다. 즉, p0, p1, p2, p3 순서로 저장된 값을 p1, p2, p3, p0로 출력하게 한다. 상기 제1 쉬프트 레지스터의 출력은 상기 합산 모듈(920)에 입력되어, 상기 제4 내지 제7 결과값과 더해진다.
상기 합산 모듈(920)은, 제4 결과값과 p1를 합산하고, 제5 결과값과 p2를 합산하고, 제6 결과값과 p3을 합산하고, 제7 결과값과 p0를 합산한다. 상기 합산된 결과는 상기 제2 쉬프트레지스터(950)에 입력된다. 상기 제어부(960)는 상기 패리티 검사 행렬의 구조를 분석하고, 상기 구조를 통해 상기 제2 쉬프트 레지스터(950)의 동작을 제어한다. 상술한 바와 같이, 상기 제2 쉬프트 레지스터(950)의 동작은, 상기 1103 성분에 대한 쉬프트 수에 따라 제어된다. 도 11의 경우 1103의 성분에 대 한 쉬프트 수가 0이므로 쉬프트를 수행하지 않는다. 결과적으로 상기 합산된 결과는 p4 내지 p7의 패리티 비트로 결정된다. 도 11의 우측에 도시된 바와 같이, 패리티 비트 p4는 제4 결과값과 패리티 비트 p1 간의 연산에 의해 결정된다. 상술한 변수들(p1, p4, 제4 결과값) 간의 관계는 지시선 1104에 의해 설명된다. 패리트 비트 p7의 경우는, 제7 결과값과 패리티 비트 p0 간의 연산에 의해 결정된다. 상술한 변수들(p0, p7, 제7 결과값) 간의 관계는 지시선 1105에 의해 설명된다.
도 11은 본 발명의 일례를 나타내기 위한 도면에 불과한바, 본 발명은 도 11에 제한되지 아니한다. 즉, 제2 쉬프트 레지스터가 어떠한 동작도 수행하지 않는경우, 제1 쉬프트 레지스터 만을 포함하는 부호화 장치를 사용할 수 있다.
도 12는 쉬프트 수(shift number)가 임의의 정수인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다.
도시된 바와 같이, 도 12의 일례에서는
Figure 112006028087667-pat00026
와 같은 패리티 부분을 구비한 모델 행렬을 이용하여 부호화를 수행한다. 상기 모델 행렬은 패리티 검사 행렬로 확장되는바, 서브 블록의 크기가 4*4인 경우 도시된 바와 같이 확장된다. 도시된 바와 같이, 패리티 비트 p0 내지 p7은 상기 패리티 검사 행렬의 구조에 따라 산출된다. 보다 구체적으로는, 각 패리티 비트에 상응하는 정보어 부분에 대한 연산 값과 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 패리티 비트가 결 정된다. 상술한 바와 같이, 상기 패리티 비트는 4(=z) 비트 단위로 산출되는바, 현재 상태는 p0 내지 p3은 산출되어 상기 메모리(930)에 저장된 상태다.
상기 제1 쉬프트 레지스터(940)는 상기 제어부(960)에 의해 쉬프트(shift) 동작을 수행하는바, 상기 제어부(960)는 상기 패리티 검사 행렬의 구조를 분석하고, 상기 구조를 통해 상기 제1 쉬프트 레지스터(940)의 동작을 제어한다. 보다 구체적으로 1201의 성분과 1202의 성분을 비교하여, 얼마만큼의 쉬프트를 수행할지 결정한다. 도 12의 경우 1201의 성분과 1202의 성분이 동일하므로 쉬프트 동작을 수행하지 않는다. 상기 제1 쉬프트 레지스터의 출력은 상기 합산 모듈(920)에 입력되어, 상기 제4 내지 제7 결과값과 더해진다.
상기 합산된 결과는 상기 제2 쉬프트레지스터(950)에 입력된다. 상기 제어부(960)는 상기 패리티 검사 행렬의 구조를 분석하고, 상기 구조를 통해 상기 제2 쉬프트 레지스터(950)의 동작을 제어한다. 도 12의 경우 1203의 성분에 대한 쉬프트 수가 1이므로 1만큼의 쉬프트 연산을 수행한다. 결과적으로, 제4 결과값
Figure 112006028087667-pat00027
p0, 제5 결과값
Figure 112006028087667-pat00028
p1, 제6 결과값
Figure 112006028087667-pat00029
p2, 제7 결과값
Figure 112006028087667-pat00030
p3의 순서로 출력된 값은, 상기 제2 쉬프트 레지스터(950)에 의해, 제7 결과값
Figure 112006028087667-pat00031
p3, 제4 결과값
Figure 112006028087667-pat00032
p0, 제5 결과값
Figure 112006028087667-pat00033
p1, 제6 결과값
Figure 112006028087667-pat00034
p2의 순서로 출력된다.
도 12의 우측에 도시된 바와 같이, 패리티 비트 p5는 제4 결과값과 패리티 비트 p0 간의 연산에 의해 결정된다. 상술한 변수들(p0, p5, 제4 결과값) 간의 관계는 지시선 1204에 의해 설명된다. 패리트 비트 p6의 경우는, 제5 결과값과 패리티 비트 p1 간의 연산에 의해 결정된다. 상술한 변수들(p1, p6, 제5 결과값) 간의 관계는 지시선 1205에 의해 설명된다.
특정한 모델 행렬에 의해 부호화를 수행하는 경우, 상술한 도 10 내지 도 12의 일례가 선택적으로 수행될 수 있다.
도 13a는 본 실시예에 따른 모델 행렬의 패리티 부분을 나타낸 도면이다. 도 13a의 1301 영역은 도 10에서 설명된 패리티 부분과 동일하다. 즉, 도 13a의 패리티 부분을 사용하여 패리티 비트를 생성하는 경우, 1301 영역에 상응하는 패리티 비트는 도 10에서 설명한 패리티 비트 생성 방법에 따라 생성될 수 있다. 또한, 1302 영역은 도 10에서 설명된 패리티 부분과 동일하므로, 1302 영역에 상응하는 패리티 비트를 생성하기 위하여 도 10에서 설명한 패리티 비트 생성 방법을 사용할 수 있다.
상술한 바와 같이, 제1 스케쥴러는 이중 대각 성분의 구조에 따라 데이터 처리를 수행한다. 보다 구체적으로 대각 성분과 대각 성분의 하부에 위치하는 성분 간의 쉬프트 수(shift number) 차이에 따라 쉬프트 동작을 수행한다. 1303 영역에서는 대각 성분과 대각 성분의 아래에 위치하는 성분이 모두 '0'이므로 상기 제1 스케쥴러는 데이터 처리를 수행하지 않는다. 상술한 바와 같이, 제2 스케쥴러는 이중 대각 성분의 구조에 따라 데이터 처리를 수행한다. 보다 구체적으로 대각 성분 의 쉬프트 수(shift number)에 따라 쉬프트 동작을 수행한다. 1303 영역에서는 대각 성분이 모두 0으로 단위 행렬에 상응하는 성분을 갖기 때문에 상기 제2 스케쥴러는 데이터 처리를 수행하지 않는다.
즉, 도 13a의 모델 행렬에 따라 부호화를 수행하는 경우, 상기 제1 및 제2 스케줄러는 특별한 데이터 처리를 수행하지 않는다. 이 경우, 상기 제1 및 제2 스케줄러를 제외한 부호화 장치를 사용할 수 있다.
도 13b는 본 실시예에 따른 모델 행렬의 패리티 부분을 나타낸 도면이다. 도 13b의 1311 영역은 도 10에서 설명된 패리티 부분과 동일하다. 즉, 도 13b의 패리티 부분을 사용하여 패리티 비트를 생성하는 경우, 1311 영역에 상응하는 패리티 비트는 도 10에서 설명한 패리티 비트 생성 방법에 따라 생성될 수 있다. 한편, 1312 영역은 도 11에서 설명된 패리티 부분과 동일하다. 따라서, 1312 영역에 상응하는 패리티 비트를 생성하기 위하여 도 11에서 설명한 패리티 비트 생성 방법을 사용할 수 있다.
상술한 바와 같이, 제1 스케쥴러는 이중 대각 성분의 구조에 따라 데이터 처리를 수행한다. 보다 구체적으로 대각 성분과 대각 성분의 하부에 위치하는 성분 간의 쉬프트 수(shift number) 차이에 따라 쉬프트 동작을 수행한다. 1312 영역에서는 대각 성분은 '0이고 대각 성분의 아래에 위치하는 성분은 '1'이므로 상기 제1 스케쥴러는 1 만큼의 쉬프트 연산을 수행한다. 상술한 바와 같이, 제2 스케쥴러는 이중 대각 성분의 구조에 따라 데이터 처리를 수행한다. 보다 구체적으로 대각 성분의 쉬프트 수(shift number)에 따라 쉬프트 동작을 수행한다. 1312 영역에서는 대각 성분이 모두 0으로 단위 행렬에 상응하는 성분을 갖기 때문에 상기 제2 스케쥴러는 데이터 처리를 수행하지 않는다. 도 13b의 1313 영역도 1312 영역과 동일한 형태를 갖기 때문에, 상기 제1 스케쥴러만이 데이터 처리를 수행한다.
결론적으로, 도 13b의 모델 행렬에 따라 부호화를 수행하는 경우, 대각 성분이 모두 0이므로, 상기 제2 스케줄러는 데이터 처리를 수행하지 않는다. 이 경우, 상기 제2 스케줄러를 제외한 부호화 장치를 사용할 수 있다.
도 13c는 본 실시예에 따른 모델 행렬의 패리티 부분을 나타낸 도면이다. 도 13c의 1321 영역은 도 10에서 설명된 패리티 부분과 동일하다. 즉, 도 13b의 패리티 부분을 사용하여 패리티 비트를 생성하는 경우, 1321 영역에 상응하는 패리티 비트는 도 10에서 설명한 패리티 비트 생성 방법에 따라 생성될 수 있다. 한편, 1322 영역은 도 12에서 설명된 패리티 부분과 동일하다. 따라서, 1322 영역에 상응하는 패리티 비트를 생성하기 위하여 도 12에서 설명한 패리티 비트 생성 방법을 사용할 수 있다.
1323 영역에 상응하는 패리티 비트를 생성하는 경우, 1323 영역은
Figure 112006028087667-pat00035
의 구조를 갖기 때문에, 제1 스케쥴러가 데이터 처리를 수행한다. 즉, 첫 번째 대각 성분 '1'과 첫 번째 대각 성분 아래에 위치한 성분 '0'간에 -1 만큼의 쉬프트 수가 차이가 나기 때문에, 상기 제1 스케쥴러는 차이 나는 쉬프트 수에 상응하는 쉬프트 연산을 수행한다. 또한, 두 번째 대각 성분이 '0'이기 때문에 제2 스케쥴러는 쉬프트 연산을 수행하지 않는다.
1324 영역에 상응하는 패리티 비트를 생성하는 경우, 1324 영역은
Figure 112006028087667-pat00036
의 구조를 갖기 때문에, 제1 스케쥴러가 데이터 처리를 수행한다. 즉, 첫 번째 대각 성분 '0'과 첫 번째 대각 성분 아래에 위치한 성분 '1'간에 1 만큼의 쉬프트 수가 차이가 나기 때문에, 상기 제1 스케쥴러는 차이 나는 쉬프트 수에 상응하는 쉬프트 연산을 수행한다. 또한, 두 번째 대각 성분이 '1'이기 때문에 제2 스케쥴러는 두 번째 대각 성분에 상응하는 만큼의 쉬프트 연산을 수행한다.
1325 영역에 상응하는 패리티 비트를 생성하는 경우, 1325 영역은
Figure 112006028087667-pat00037
의 구조를 갖기 때문에, 제1 스케쥴러가 데이터 처리를 수행한다. 즉, 첫 번째 대각 성분 '1'과 첫 번째 대각 성분 아래에 위치한 성분 '0'간에 -1 만큼의 쉬프트 수가 차이가 나기 때문에, 상기 제1 스케쥴러는 차이 나는 쉬프트 수에 상응하는 쉬프트 연산을 수행한다. 또한, 두 번째 대각 성분이 '0'이기 때문에 제2 스케쥴러는 쉬프트 연산을 수행하지 않는다.
1326 영역에는 '0'의 이중 대각 성분이 존재하기 때문에, 상기 제1 및 제2 스케쥴러는 데이터 처리를 수행하지 않는다.
결론적으로, 도 13c의 모델 행렬에 따라 부호화를 수행하는 경우, 상기 제1 및 제2 스케쥴러는 이중 대각 성분의 구조에 따라 다양한 데이터 처리를 수행한다.
본 발명에 따른 부호화 장치는 다양한 종류의 하위 삼각형 타입의 모델 행렬에 따라 동작할 수 있기 대문에, 본 발명이 도 13a 내지 도 13c의 행렬에 제한되지 않는다. 가령 도 13a 내지 도 13c의 행렬과 달리, 이중 대각 성분 이외의 성분에 '0' 이상의 쉬프트 수를 갖는 하위 삼각형 타입의 모델 행렬에 따라 부호화를 수행할 수 있다.
도 14a 내지 도 14d는 모델 행렬
Figure 112006028087667-pat00038
을 이용하여 부호화를 수행하는 동작을 설명한다. 우선, 도 14a와 같이, 상기 모델 행렬은 패리티 검사 행렬로 확장된다. 상기 모델 행렬은 이중 대각 성분을 제외한 나머지 성분 중에 0 이상의 쉬프트 수를 갖는 성분(구체적으로 5번째 행과 5번째 영에 위치하는 '+1')을 갖는다. 도 14a에서, a0 내지 a19는 정보어 부분에 따른 정보 비트 정보어 부분에 대한 연산 처리 결과값이다.
상기 모델 행렬에 따라 부호화를 수행하는 경우, 모델 행렬의 1401 영역, 1402 영역, 1403 영역, 1404 영역에 대한 연산을 순차적으로 수행한다.
도 14b는 1401 영역에 대한 패리티 비트를 생성하는 동작을 설명한다. 도 14b의 동작은 상술한 도 13a의 부호화 동작과 동일하다. 도 14b에 도시된 바와 같이, 모델 행렬의 패리티 부분의 구조에 따라 제1 쉬프트 레지스터와 제2 쉬프트 레지스터가 동작하여 패리티 비트 p0, p1, p2, p3을 출력한다. 상술한 바와 같이, 상기 제1 쉬프트 레지스터와 제2 쉬프트 레지스터가 동작할 필요가 없는 경우, 상기 부호화 장치에서 상기 쉬프트 레지스터들을 생략할 수 있다.
도 14b의 부호화 장치는, 쉬프트 데이터 처리부(Shift data processor)(1400)를 추가적으로 구비하는 것이 바람직하다. 상기 쉬프트 데이터 처리부(1400)는, 특정한 모델 행렬이 이중 대각 성분 이외의 위치에 '0' 이상의 쉬프트 수를 갖는 경우, 이미 생성된 패리티 비트를 획득하여 데이터 처리를 수행한다. 도 14a의 모델행렬은 1405 영역에 '1' 성분을 갖기 때문에, 1404 영역에 대한 연산을 수행하는 경우에 1405 영역에 대한 연산을 함께 수행하여야 한다. 따라서, 1404 영역을 제외한 영역에서는 상기 쉬프트 데이터 처리부(1400)는 데이터 처리를 수행하지 않고 입력을 바로 출력한다.
도 14c는 1401 영역에 대한 패리티 비트를 생성하는 동작을 설명한다. 도 14c의 동작은 상술한 도 13a의 부호화 동작과 동일하다. 도 14c에 도시된 바와 같이, 모델 행렬의 패리티 부분의 구조에 따라 제1 쉬프트 레지스터와 제2 쉬프트 레지스터가 동작하여 패리티 비트 p4, p5, p6, p7을 출력한다. 상술한 바와 같이, 상기 제1 쉬프트 레지스터와 제2 쉬프트 레지스터가 동작할 필요가 없는 경우, 상기 부호화 장치에서 상기 쉬프트 레지스터들을 생략할 수 있다.
상술한 바와 같이, 1401 영역에 대한 연산을 수행하는 경우, 상기 쉬프트 데이터 처리부(1400)는 데이터 처리를 수행하지 않고 입력을 바로 출력한다.
도 14b 내지 도 14c의 동작을 반복 수행하면, p8 내지 p15의 패리티 비트를 산출할 수 있다. 다만, p16 내지 p19의 패리티 비트를 산출하기 위해서는 상기 1405 영역에 의한 추가적인 데이터 처리가 필요하다. 도 14d를 통해, 상기 p16 내지 p19의 패리티 비트를 산출하는 동작을 설명한다.
상기 p16 내지 p19의 패리티 비트를 산출하기 위해서는 도 14a의 지시선 1411 및 지시선 1412에 따른 데이터 처리가 필요하다. 즉, p16을 생성하려면 a16과 p1 및 p12에 대한 연산을 수행하여야 한다. 또한, p18을 생성하려면 a18과 p3 및 p14에 대한 연산을 수행하여야 한다. 결과적으로, 상기 p16 내지 p19의 패리티 비트를 산출하기 위해서는, 메모리에 이미 저장된 p12 내지 p15와 정보어 부분에 대한 연산 처리부(910)에서 출력되는 a16 내지 a19 뿐만 아니라 이미 계산이 완료된 p0 내지 p3의 값이 필요하다. 상기 쉬프트 데이터 처리부(1400)는 모델 행렬의 구조에 따라 이미 계산이 완료된 패리티 비트 p0, p1, p2, p3를 획득한 이후, 도 14a의 1405 영역의 쉬프트 수 '1'에 따라 데이터 순서를 p1, p2, p3, p0로 조정한다. 상기 쉬프트 데이터 처리부(1400)는 합산 모듈(920)의 출력 a16+p12, a17+p13, a18+p14, a19+p15와 상기 순서가 조정된 데이터 p1, p2, p3, p0를 각각 합산하여 출력한다. 패리티 검사 행렬의 구조 상 제2 쉬프트 레지스터는 별도의 동작을 하지 않기 때문에, 상기 출력 값은 패리티 비트로 출력된다.
본 실시예에 따른 부호화 장치는, 모델 행렬의 구조에 따라 다양한 장치를 구비할 수 있다. 즉, 모델 행렬의 이중 대각 성분의 성분이 단위 행렬을 기준으로 쉬프트 되었는지 여부에 따라 적어도 하나의 데이터 스케쥴러를 포함할 수 있다. 또한, 이중 대각 성분 이외의 성분에 무게(weight)가 존재하는 경우에는 이미 처리된 패리티 비트에 대한 데이터 처리를 수행하여 새로운 패리티 비트를 산출하는 데이터 처리부를 추가적으로 포함할 수 있다.
결론적으로, 본 발명에 따른 부호화 장치에 포함되는 모듈에 따라 이중 대각 성분 이외의 위치에 다양한 쉬프트 수를 갖는 모델 행렬에 대해서도 부호화를 수행할 수 있다.
본 실시예에 따른 부호화 장치의 제1, 제2 쉬프트 레지스터, 메모리, 합산 모듈, 쉬프트 데이터 처리부는 상술한 바와 같은 동작을 수행할 수 있다. 상술한 제1 쉬프트레지스터, 제2 쉬프트레지스터, 합산 모듈, 쉬프트 데이터 처리부는 다양한 하드웨어 또는 소프트웨어에 의해 구현될 수 있다.
본 실시예에 따른 부호화 장치는 모델 행렬의 구조에 따라 동작을 수행하여, 상기 모델 행렬을 이루는 서브 블록의 크기에 따라 복수의 데이터 비트를 처리하는바, 종래 기술에 비해 향상된 성능을 보인다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정해져야 할 것이다.
이하, 본 발명에 따른 효과를 설명한다.
본 발명에 따른 부호화 장치는 단순한 누산기를 이용하여 빠른 속도로 패리 티 비트를 생성하는 유리한 효과가 있다. 또한, 하위 삼각형 타입의 행렬을 이용하여 부호화를 수행하는 경우 부가적인 연산 없이 한번의 블록 연산으로 다수 개의 패리티 비트를 계산하는 유리한 효과가 있다.

Claims (15)

  1. 특정한 크기의 서브 블록들을 나타내는 성분들로 이루어진 모델 행렬로부터 확장되어 생성된 패리티 검사 행렬을 이용하여 정보 비트들을 부호화하는 방법에 있어서,
    정보어 부분과 패리티 부분으로 구분되는 상기 모델 행렬의 상기 패리티 부분 내 이중 대각 성분의 첫 번째 대각 성분과 상기 첫 번째 대각 성분 아래에 위치한 성분의 차이 값에 기반하여 제1 정보 비트들의 연산 값으로부터 상기 제1 정보 비트들에 대한 제1 패리티 비트들을 산출하는 단계; 및
    상기 이중 대각 성분의 두 번째 대각 성분에 기반하여 상기 제1 정보 비트들의 연산 값과 제2 정보 비트들의 연산 값을 합산한 상기 제2 정보 비트들에 대한 제2 패리티 비트들을 산출하는 단계;를 포함하고,
    상기 정보 비트들은 제1 정보 비트들 및 제2 정보 비트들로 구성되는, 패리티 검사 행렬을 이용하여 부호화하는 방법.
  2. 제1항에 있어서,
    상기 제1 패리티 비트들의 개수는, 상기 제2 패리티 비트들의 개수와 동일한 것을
    특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 제1 패리티 비트들의 개수는, 상기 서브 블록의 크기와 동일한 것을
    특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.
  5. 제1항에 있어서, 상기 제1 패리티 비트들을 산출하는 단계는,
    상기 이중 대각 성분에 따라 상기 제1 정보 비트들의 순서를 조정하여 상기 제1 패리티 비트들을 산출하는 것을 특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.
  6. 제1항에 있어서, 상기 제2 패리티 비트들을 산출하는 단계는,
    상기 이중 대각 성분에 따라 상기 제1 패리티 비트들의 순서와 상기 제2 정보 비트들의 연산 값의 순서를 조정하여 상기 제2 패리티 비트들을 산출하는 것을 특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.
  7. 제1항에 있어서,
    상기 제1 정보 비트들은, 상기 모델 행렬의 상기 정보어 부분 중 제1 영역에서 무게(weight)를 갖는 성분에 상응하는 정보 비트들인 것을 특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.
  8. 제1항에 있어서,
    상기 제2 정보 비트들은, 상기 모델 행렬의 상기 정보어 부분 중 제2 영역에서 무게(weight)를 갖는 성분에 상응하는 정보 비트들인 것을 특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.
  9. 특정한 크기의 서브 블록들을 나타내는 성분들로 이루어진 모델 행렬로부터 확장되어 생성된 패리티 검사 행렬을 이용하여 부호화를 수행하는 장치에 있어서,
    정보어 부분과 패리티 부분으로 구분되는 상기 모델 행렬의 정보어 부분에 대한 연산을 수행하여 복수 개의 연산 값을 출력하는 정보어 부분 연산부; 및
    상기 모델 행렬의 상기 패리티 부분 내 이중 대각 성분의 첫 번째 대각 성분과 상기 첫 번째 대각 성분 아래에 위치한 성분의 차이 값, 또는 상기 이중 대각 성분의 두 번째 대각 성분에 기반하여 상기 출력에 대한 데이터 처리를 수행하고,
    상기 데이터 처리가 수행된 결과를 누산하여 복수 개의 패리티 비트를 생성하는 패리티 비트 산출부
    를 포함하여 이루어지는 LDPC 부호화 장치.
  10. 제9항에 있어서,
    상기 정보어 부분 연산부의 출력은,
    상기 정보어 부분의 무게(weight)에 상응하는 정보 비트들의 합산 값인 것을 특징으로 하는 LDPC 부호화 장치.
  11. 제9항에 있어서,
    상기 패리티 비트 산출부는,
    상기 정보어 부분 연산부의 출력을 저장하는 메모리; 및
    상기 정보어 부분 연산부의 출력과 상기 메모리의 출력을 합산하여 패리티 비트를 출력하는 합산 모듈
    을 포함하는 것을 특징으로 하는 LDPC 부호화 장치.
  12. 제9항에 있어서,
    상기 패리티 비트 산출부는,
    상기 정보어 부분 연산부의 출력을 저장하는 메모리;
    상기 첫 번째 대각 성분과 상기 첫 번째 대각 성분 아래에 위치한 성분의 차이 값에 기반하여 상기 메모리의 출력에 대한 쉬프트 연산을 수행하는 제1 쉬프트 레지스터(shift register);
    상기 정보어 부분 연산부의 출력과 상기 제1 쉬프트 레지스터의 출력을 합산하는 합산 모듈; 및
    상기 두 번째 대각 성분에 기반하여 상기 합산 모듈의 출력에 대한 쉬프트 연산을 수행하는 제2 쉬프트 레지스터
    를 포함하는 것을 특징으로 하는 LDPC 부호화 장치.
  13. 특정한 크기의 서브 블록들을 나타내는 성분들로 이루어진 모델 행렬로부터 확정되어 생성된 패리티 검사 행렬에 따라 부호화를 수행하는 경우 사용되는 데이터를 처리하는 데이터 스케쥴러에 있어서,
    정보 비트들을 합산한 복수 개의 연산 값 또는 상기 정보 비트들과 패리티 비트들을 합산한 복수개의 연산 값을 입력 받고,
    정보어 부분과 패리티 부분으로 구분되는 상기 모델 행렬의 상기 패리티 부분 내 이중 대각 성분의 첫 번째 대각 성분과 상기 첫 번째 대각 성분 아래에 위치한 성분의 차이 값, 그리고 두 번째 대각 성분에 기반하여 상기 연산 값들에 대한 데이터 처리를 수행하는 것을 특징으로 하는 데이터 스케쥴러.
  14. 제13항에 있어서,
    상기 연산 값들에 대한 데이터 처리는, 상기 첫 번째 대각 성분 및 상기 첫 번째 대각 성분 아래에 위치한 성분의 쉬프트 수(shift number)들 간의 차이에 의한 쉬프트 연산(shift operation)에 의하는 것을
    특징으로 하는 데이터 스케쥴러.
  15. 제13항에 있어서,
    상기 연산 값들에 대한 데이터 처리는, 상기 두 번째 대각 성분의 쉬프트 수(shift number)에 의한 쉬프트 연산에 의하는 것을
    특징으로 하는 데이터 스케쥴러.
KR1020060036351A 2006-04-21 2006-04-21 Ldpc 부호화 장치 KR101221897B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060036351A KR101221897B1 (ko) 2006-04-21 2006-04-21 Ldpc 부호화 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060036351A KR101221897B1 (ko) 2006-04-21 2006-04-21 Ldpc 부호화 장치

Publications (2)

Publication Number Publication Date
KR20070104137A KR20070104137A (ko) 2007-10-25
KR101221897B1 true KR101221897B1 (ko) 2013-01-15

Family

ID=38818314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060036351A KR101221897B1 (ko) 2006-04-21 2006-04-21 Ldpc 부호화 장치

Country Status (1)

Country Link
KR (1) KR101221897B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003115768A (ja) * 2001-07-11 2003-04-18 Internatl Business Mach Corp <Ibm> データの低密度パリティ検査符号化方法および装置
KR20040106062A (ko) * 2003-06-10 2004-12-17 학교법인 한국정보통신학원 정칙 저밀도 패리티검사(regular-LDPC) 코드의검사행렬 구성 시스템 및 방법
KR100550101B1 (ko) * 2003-12-22 2006-02-08 한국전자통신연구원 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법
KR100981503B1 (ko) * 2004-02-13 2010-09-10 삼성전자주식회사 최대 오류 정정/오류 검출 능력을 가지는 저밀도 패리티검사 부호 부호화/복호화 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003115768A (ja) * 2001-07-11 2003-04-18 Internatl Business Mach Corp <Ibm> データの低密度パリティ検査符号化方法および装置
KR20040106062A (ko) * 2003-06-10 2004-12-17 학교법인 한국정보통신학원 정칙 저밀도 패리티검사(regular-LDPC) 코드의검사행렬 구성 시스템 및 방법
KR100550101B1 (ko) * 2003-12-22 2006-02-08 한국전자통신연구원 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법
KR100981503B1 (ko) * 2004-02-13 2010-09-10 삼성전자주식회사 최대 오류 정정/오류 검출 능력을 가지는 저밀도 패리티검사 부호 부호화/복호화 장치 및 방법

Also Published As

Publication number Publication date
KR20070104137A (ko) 2007-10-25

Similar Documents

Publication Publication Date Title
KR101455978B1 (ko) Ldpc 부호를 이용한 부호화 방법
KR101191196B1 (ko) 패리티 검사 행렬을 이용하여 부호화 및 복호화하는 방법
KR101119111B1 (ko) Ldpc 부호를 이용한 데이터 재전송 방법
JP5247355B2 (ja) 送信装置
JP4808722B2 (ja) データ伝送システム及びデータ伝送方法
EP2050195B1 (en) Method of encoding/decoding using low density check code matrix
JP5679059B2 (ja) 無線送受信装置、通信システム及びそれらに用いるチャネルコーディング処理方法
KR101253184B1 (ko) 모델 행렬을 이용하여 ldpc 부호화를 수행한 데이터를천공하는 방법
KR101128804B1 (ko) 참조 행렬을 이용한 lpdc 부호화 및 복호화 방법
KR101276845B1 (ko) 복수의 레이어들을 이용하여 ldpc 복호화를 수행하는방법
KR101265636B1 (ko) 모델 행렬을 이용하여 ldpc 복호화를 수행하는 방법
KR101221897B1 (ko) Ldpc 부호화 장치
KR101187070B1 (ko) 패리티 검사 행렬을 이용하여 부호화하는 방법
KR101227514B1 (ko) Ldpc 부호화 및 복호화를 위한 모델 행렬을 구성하는방법
WO2008117994A1 (en) Method of encoding data using a low density parity check code
KR100950637B1 (ko) 반복에 의한 부호어 생성 방법
KR101187072B1 (ko) 패리티 검사 행렬을 이용한 부호화 방법
KR20070022569A (ko) Ldpc 부호화된 데이터의 송수신 장치 및 그를 이용하는변복조 방법
KR101503655B1 (ko) 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널 부호/복호 방법 및 장치
KR101411720B1 (ko) 엘디피시 부호의 패리티 체크 행렬을 이용해 서로 다른 여러 개의 복호기를 만드는 엘디피시 부호의 복호 방법 및 이를 포함하는 엘디피시 부호 시스템
KR20180108046A (ko) 무선통신 시스템을 위한 짧은 블록 부호화 및 복호화 장치 및 방법
KR101279283B1 (ko) 블록 부호를 사용하는 통신 시스템에서 신호 송수신 장치및 방법
KR101319891B1 (ko) 블록 코드를 이용한 부호화가 수행된 신호를 데이터처리하는 방법
KR20230107872A (ko) 통신 또는 방송 시스템에서 데이터 복호화 방법 및 장치
JP2017143341A (ja) 通信装置および通信システム

Legal Events

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

Payment date: 20151224

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee