KR20070104137A - Ldpc encoder - Google Patents

Ldpc encoder Download PDF

Info

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

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

Abstract

An LDPC(Low Density Parity Check) encoder is provided to calculate plural parity bits using a single block manipulation process by using a triangular matrix. An LDPC encoder includes a manipulation processor(910), an adder module(920), a memory(930), a first scheduler(940), a second scheduler(950), and a controller(960). The manipulation processor processes a systematic part in a parity check matrix. The adder module accumulates the output from the manipulation processor. The memory stores the output from the adder module. The first scheduler performs a data process on a result from the memory. The second scheduler performs the data process on the output from the adder module according to a structure of the parity check matrix. The controller controls the schedulers.

Description

LDPC 부호화 장치{LDPC encoder}LDPC encoder {LDPC encoder}

도 1은 본 발명 및 종래 기술이 적용되는 이동통신 채널의 구조를 나타내는 도면이다.1 is a view showing the structure of a mobile communication channel to which the present invention and the prior art are applied.

도 2는 구조화된(structured) LDPC를 설명하기 위한 도면이다. 2 is a diagram for explaining structured LDPC.

도 3은 종래 기술에 따른 모델 행렬을 나타낸 도면이다. 3 is a view showing a model matrix according to the prior art.

도 4는 쉬프트 넘버에 따른 행렬의 표현 방법을 나타낸 도면이다.4 is a diagram illustrating a method of expressing a matrix according to a shift number.

도 5는 LDPC 복호화 방법에 대하여 설명한 도면이다. 5 is a diagram illustrating an LDPC decoding method.

도 6a는 이중 대각(dual diagonal) 성분을 갖는 패리티 검사 행렬의 패리티 비트를 산출하기 위해 패리티 비트 산출부를 도시한 도면이다.FIG. 6A is a diagram illustrating a parity bit calculator for calculating parity bits of a parity check matrix having a dual diagonal component.

도 6b는 본 실시예에 따라 다수의 비트를 동시에 처리하는 부호화 장치의 구조를 나타낸 도면이다.6B is a diagram illustrating a structure of an encoding apparatus which simultaneously processes a plurality of bits according to the present embodiment.

도 7a는 일반적인 모델 행렬의 구조를 나타낸 것이다.7A shows the structure of a general model matrix.

도 7b는 본 실시예에 따른 부호화 장치가 사용하는 모델 행렬의 구조를 나타낸 도면이다.7B is a diagram showing the structure of a model matrix used by the encoding apparatus according to the present embodiment.

도 8은 본 실시예에 다른 모델 행렬의 일례를 나타낸 도면이다. 8 is a diagram showing an example of a model matrix according to the present embodiment.

도 9는 도 8의 모델 행렬을 이용하여 부호화를 수행하는 부호화 장치(900)의 일례를 나타낸 도면이다.9 is a diagram illustrating an example of an encoding apparatus 900 that performs encoding by using the model matrix of FIG. 8.

도 10은 쉬프트 수(shift number)가 0인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다.FIG. 10 is a diagram for describing an encoding operation according to a parity part including a double diagonal component having a shift number of zero.

도 11은 쉬프트 수(shift number)가 임의의 정수인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다.FIG. 11 is a diagram for describing an encoding operation according to a parity part including a double diagonal component having a shift number of any integer.

도 12는 쉬프트 수(shift number)가 임의의 정수인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다.12 is a diagram illustrating an encoding operation according to a parity portion formed of a double diagonal component having a shift number of any integer.

도 13a 내지 도 13c는 본 실시예에 따른 모델 행렬의 패리티 부분을 나타낸 도면이다.13A to 13C are diagrams showing parity portions of the model matrix according to the present embodiment.

도 14a 내지 도 14d는 본 실시예에 따른 부호화 장치의 동작을 설명하기 위한 도면이다. 14A to 14D are diagrams for describing an operation of the encoding apparatus according to the present embodiment.

본 발명은 LDPC(Low Density Parity Check) 부호화와 복호화에 관한 것으로서, 보다 상세하게는, 간단한 처리과정을 통해 정보어를 부호어로 변환시키는 패리티 검사 행렬을 사용하는 부호화 장치에 관한 것이다. The present invention relates to LDPC (Low Density Parity Check) encoding and decoding, and more particularly, to an encoding apparatus using a parity check matrix for converting an information word into a code word through a simple process.

도 1은 본 발명 및 종래 기술이 적용되는 이동통신 채널의 구조를 나타내는 도면이다. 이하, 도 1을 참조하여 이동통신 채널의 구조를 설명한다. 송신 단(Transmitter)에서 전송할 데이터를 무선채널에서 손실이나 왜곡 없이 전송하기 위해 채널 코딩(channel coding) 절차를 거친다. 상기 채널 코딩 기법으로는, Convolutional Coding, Turbo Coding, LDPC Coding 등의 다양한 기술이 있다. 상기 채널 코딩(Channel coding) 절차를 거친 데이터(data)는 무선 채널로 전송될 때 여러 개의 비트들이 모여서 하나의 심볼로 전송될 수 있다. 이때, 여러 비트들을 하나의 심볼(symbol)로 매핑(mapping) 되는 절차를 변조(modulation)라 한다. 1 is a view showing the structure of a mobile communication channel to which the present invention and the prior art are applied. Hereinafter, the structure of a mobile communication channel will be described with reference to FIG. 1. In order to transmit the data to be transmitted from the transmitter without loss or distortion in the radio channel, a channel coding procedure is performed. As the channel coding technique, there are various techniques such as convolutional coding, turbo coding, and LDPC coding. Data that has undergone the channel coding procedure may be transmitted as a single symbol by collecting a plurality of bits when transmitted through a wireless channel. In this case, a procedure in which several bits are mapped to one symbol is called modulation.

변조된 데이터는 다중화(Multiplexing) 과정 또는 다중 접속(Multiple Access) 방법을 거쳐 다중 전송을 위한 신호로 변환된다. 상기 다중화 방법으로는, CDM, TDM, FDM 등의 다양한 방법이 존재하는바, 도 1에서는 OFDM(Orthogonal Frequency Division Multiplexing)의 예를 표시하였다. 상기 다중화(Multiplexing) 블록을 거친 신호는 한 개 이상의 다중 안테나에 전송되기 적합한 구조로 변경되어 무선채널을 통해 수신 단(Receiver)에 전달된다. 무선 채널을 통과하는 과정에서 전송된 데이터는 페이딩(Fading)과 열 잡음을 겪게 되어 데이터에 왜곡이 발생할 수 있다.The modulated data is converted into a signal for multiplex transmission through a multiplexing process or a multiple access method. As the multiplexing method, various methods such as CDM, TDM, and FDM exist. In FIG. 1, an example of orthogonal frequency division multiplexing (OFDM) is illustrated. The signal that has passed through the multiplexing block is changed into a structure suitable for transmission to one or more multiple antennas and transmitted to a receiver through a radio channel. Data transmitted in the course of passing through the wireless channel may experience fading and thermal noise, which may cause distortion of the data.

상기 변조(Modulation)된 데이터는 무선 채널을 통해 수신 단(Receiver)에 전달된다. 이 과정에서 전송된 데이터는 페이딩(Fading)과 열 잡음 등을 겪게 되어 데이터에 왜곡이 발생할 수 있다. 수신 단에서는 상기 왜곡된 데이터를 수신한 후 상기 송신 단의 일련의 절차를 역순으로 수행한다. 상기 심볼로 매핑(mapping)된 데이터를 비트열로 바꾸는 복조(demodulation) 작업을 수행하고, 채널 디코딩(Channel Decoding) 절차를 거치며 왜곡된 데이터를 원래 데이터로 복원한다.The modulated data is transmitted to a receiver through a wireless channel. In this process, the transmitted data may experience fading and thermal noise, which may cause distortion of the data. After receiving the distorted data, the receiving end performs a series of procedures in the reverse order. A demodulation operation of converting the data mapped to the symbol into a bit string is performed, and the distorted data is restored to the original data through a channel decoding process.

상기 채널 코딩을 수행하는 장치는, 입력된 데이터(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)들이 제대로 복구되는지 확인하고 복구 실패시 연산을 재수행한다. The apparatus for performing channel coding generates a parity check derived from an H matrix or an H matrix, which is a parity check matrix used to generate parity bits to be added to input data (Systematic Bits). It stores G matrix, which is a parity check generate matrix. That is, the transmitting end includes an encoder for generating parity bits through the H or G matrix and the input data. The apparatus for performing channel decoding checks whether the inputted data (Systematic Bits) are properly recovered through the H matrix and the operation of the received data (distorted Systematic Bits + Parity Bits). Rerun

상기 변조(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) 한다.The modulation includes Binary Phase Shift Keying (BPSK), Quadrature Phase Shift Keying (QPSK), Quadrature Amplitude Modulation (16-QAM), 64-QAM, 256-QAM, and the like. For example, 16-QAM maps a sequence of data that has undergone a channel encoding procedure to one symbol in units of 4 bits during modulation. In demodulation, 16-QAM demaps one symbol of data received through a wireless channel into four bits.

이하 LDPC 부호에 관하여 설명한다. LDPC 부호의 개념을 설명하면 다음과 같다. Hereinafter, the LDPC code will be described. The concept of the LDPC code is as follows.

선형 부호는 생성행렬 G 또는 패리티 체크 행렬 H로 기술될 수 있다. 선형 부호의 특징은 모든 부호어 c 에 대하여,

Figure 112006028087667-PAT00001
을 만족하도록 부호가 구성된다는 점이다. 이 선형 부호의 일종으로서, 최근에 주목받는 LDPC 부호는 1962년 Gallager에 의하여 처음 제안되었다. 이 부호의 특징으로는 패리티 체크 행렬의 성 분이 대부분 0으로 이루어지고, 0이 아닌 성분의 개수는 부호 길이에 비하여 적은 수를 가지도록 하여 확률을 기반으로 한 반복적 복호가 가능한 점이다. 처음 제안된 LDPC 부호는 패리티 체크 행렬을 비체계적인(non-systematic) 형태로 정의하였고, 그것의 행과 열에 균일하게 적은 무게(weight)를 갖도록 설계되었다. The linear code can be described by the generation matrix G or parity check matrix H. The characteristic of linear code is that for all codewords c,
Figure 112006028087667-PAT00001
The sign is constructed to satisfy. As a form of this linear code, a recent notable LDPC code was first proposed by Gallager in 1962. The feature of this code is that the components of the parity check matrix are mostly 0, and the number of nonzero components is smaller than the code length, so that it is possible to perform iterative decoding based on probability. The first proposed LDPC code defines the parity check matrix in a non-systematic form and is designed to have a uniformly low weight in its rows and columns.

여기서, 무게(weight)란 행렬에서 열(column) 또는 행(row)에 포함된 1의 개수를 의미한다.Here, the weight means the number of 1s included in a column or a row in the matrix.

LDPC 부호의 패리티 체크 행렬 H 상에 0이 아닌 성분의 밀도가 적기 때문에 낮은 복호 복잡도를 가지게 된다. 아울러, 복호 성능도 기존의 부호들보다 우수하여 Shannon의 이론적인 한계에 근접하는 좋은 성능을 보인다. 하지만 LDPC 부호는 당시 하드웨어 기술로서 구현이 어려워서 30여 년이 넘게 많은 사람의 관심을 끌지 못하였다. 1980년대 초반 그래프를 이용하여 반복적 복호를 하는 방법이 개발되어, 이를 이용하여 LDPC 부호를 실제로 복호할 수 있는 여러 알고리즘들이 개발되었다. 이를 대표하는 알고리즘으로 합곱 알고리즘(sum-product Algorithm)을 뽑을 수 있다. Since the density of nonzero components on the parity check matrix H of the LDPC code is small, the decoding complexity is low. In addition, the decoding performance is also better than the existing codes, showing a good performance close to Shannon's theoretical limit. The LDPC code, however, was a hardware technology that was difficult to implement at the time and has not attracted much attention for more than 30 years. In the early 1980s, a method of iterative decoding using a graph was developed, and various algorithms were developed to actually decode the LDPC code using the graph. The sum-product algorithm can be extracted as the representative 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 시스템 등에서 차세대 채널코딩 방법으로 채택되고 있다.Hereinafter, the features of the LDPC code will be described. LDPC codes have high error correction performance, which allows for improvements in communication speed and capacity. The LDPC code may be applied to a high speed wireless LAN capable of transmitting hundreds of Mbit / s in combination with a multiple input multiple output (MIMO) system, and may be applied to high speed mobile communication having a transmission speed of 1 Mbit / s or more at 250 km / h. It can also be applied to optical communication of 40Gbits / s or more. In addition, the high error correction performance of the LDPC code may improve the transmission quality, thereby enabling quantum encrypted communication that reduces the number of retransmissions in a low quality communication path. In addition, due to the low complexity and excellent loss compensation of the LDPC code, lost packets can be easily recovered, which makes it possible to transmit content of the same quality as TV quality through the Internet and mobile communication. Due to the wide coverage and large capacity of LDPC, 10GBASE-T transmissions up to the 100m range, previously considered impossible, are possible with LDPC codes. At the same time, the transmission capacity of a single satellite transmitter in the 36MHz band can be increased by 1.3 times to 80Mbit / s. These advantages are being adopted as the next generation channel coding method in IEEE802.16 system and IEEE802.11 system for high frequency efficiency.

이하, 구조화된(structured) LDPC를 설명한다. The structured LDPC is described below.

LDPC code를 사용하기 위해서는 패리티 체크 행렬 H를 사용하는데, 사용하는 행렬 H는 대부분의 0과 일부의 1을 성분(elemnet)으로 포함하는데, H 행렬의 크기가 105 비트 이상으로 크기 때문에 H 행렬을 표현하는데 큰 크기의 메모리가 필요하다. 상기 구조화된 LDPC 기법은 LDPC 부호화 및 복호화에 사용되는 상기 H 행렬의 성분들을 도 2와 같이 일정한 크기의 서브 블록(sub-block)으로 표현하는 방법이다. IEEE802.16e에서는 상기 서브 블록을 하나의 정수 인덱스(index)로 표시하여, 상기 H 행렬을 저장하는데 필요한 메모리의 크기를 줄인다. 상기 서브 블록은 다양한 행렬일 수 있는바, 예를 들어 일정한 크기의 퍼뮤테이션 행렬(Permutation Matrix)일 수도 있다.In order to use the LDPC code includes a matrix H to use, uses a parity check matrix H is most 0 and part of one of the components (elemnet), the H matrix, since the size of the H matrix size by more than 10 5 bits It requires a large amount of memory to represent. The structured LDPC technique is a method of expressing components of the H matrix used for LDPC encoding and decoding into sub-blocks having a constant size as shown in FIG. 2. In IEEE802.16e, the subblock is represented by one integer index to reduce the size of memory required to store the H matrix. The subblock may be various matrices, for example, a permutation matrix of a constant size.

상기 구조화된 LDPC 기법을 사용하게 되면 특정한 메모리에 1 또는 0으로 구성되는 일정 크기의 행렬을 저장하는 대신, 하나의 정수(즉, 인덱스)만 저장하면 되기 때문에 상기 H 행렬을 표시하는데 필요한 메모리의 크기를 줄일 수 있다.In the structured LDPC technique, instead of storing a matrix of 1 or 0 in a specific memory, only one integer (that is, an index) needs to be stored. Can be reduced.

일례로, IEEE802.16e 표준에 반영된 코드워드(codeword)의 크기가 2304이고, 부호율(code rate)이 2/3인 경우에, LDPC 부호화/복호화를 위해 사용되는 모델 행렬(model matrix)은 도 3과 같다. For example, when the size of the codeword reflected in the IEEE802.16e standard is 2304 and the code rate is 2/3, the model matrix used for LDPC encoding / decoding is shown in FIG. Same as 3.

도 3에 도시된 바와 같이, IEEE802.16e의 구조화된 LDPC 행렬은 -1, 0 과 양의 정수의 성분들로 이루어진다. -1은 원소가 모두 0인 영 행렬(zero matrix)이며 0은 단위 행렬(identity matrix)을 나타낸다. -1과 0을 제외한 양의 정수 성분들은 양의 정수만큼 상기 단위 행렬(identity matrix)이 오른쪽으로 쉬프트(shift)된 형태의 퍼뮤테이션 행렬(permutation matrix)이다. 즉, 행렬의 성분이 3이면 상기 단위 행렬을 오른쪽으로 3번 쉬프트(shift)시킨 형태의 퍼뮤테이션 행렬을 표현하는 것이다.As shown in Fig. 3, the structured LDPC matrix of IEEE802.16e consists of -1, 0 and positive integer components. -1 is a zero matrix of all elements 0 and 0 represents an identity matrix. Positive integer components other than -1 and 0 are permutation matrices in which the identity matrix is shifted to the right by a positive integer. That is, if the component of the matrix is 3, the permutation matrix is expressed by shifting the unit matrix three times to the right.

도 4는 상술한 양의 정수, 즉 쉬프트 넘버에 따른 행렬의 표현 방법을 나타낸 도면이다. 특정한 H 행렬을 4*4 크기의 행렬(즉, 서브 블록)로 구조화하여 표현하는 경우, 상기 특정한 서브 블록을 3이라 표시하면, 상기 서브 블록은 도 4의 행렬이 된다. 4 is a diagram illustrating a method of expressing a matrix according to the aforementioned positive integer, that is, a shift number. When a specific H matrix is structured and expressed as a matrix having a size of 4 * 4 (that is, a sub block), if the specific sub block is denoted as 3, the sub block becomes the matrix of FIG.

이하, LDPC 부호화 방법을 설명한다. Hereinafter, the LDPC encoding method will be described.

일반적인 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)이다. A general LDPC encoding method derives a generation matrix G from an LDPC parity check matrix H and encodes an information bit. In order to derive the generation matrix G, the inspection matrix H is configured in the form of [P T : I] through a Gaussian Reduction method. When the number of information bits is k and the size of an encoded codeword is n, the P matrix is a matrix in which the number of rows is k and the number of columns is nk, and I is K is the identity matrix whose k column size is k.

상기 생성행렬 G 는, 상기 검사행렬 H 가 [ PT : I ]와 같이 표현되었을 때, [ I : P ] 행렬이 된다. 인코딩(Encoding) 되는 k 비트 크기의 정보 비트를 행렬로 표시하면, 행의 개수는 1이고 열의 개수는 k인 행렬 x로 표현할 수 있다. 이 경우 코드 워드 c는 다음과 같은 식으로 설명된다. The generation matrix G becomes a [I: P] matrix when the check matrix H is expressed as [P T : I]. If the encoded information bits of k-bit size are represented in a matrix, the number of rows is 1 and the number of columns is k. In this case, the code word c is described as follows.

Figure 112006028087667-PAT00002
Figure 112006028087667-PAT00002

상기 수식에서, x는 정보어 부분(systematic part)를 나타내고, xP는 패리티 부분(parity part)를 나타낸다. In the above equation, x denotes a systematic part and xP denotes a parity part.

한편, 위와 같이 가우스 소거(Gaussian Reduction) 방법으로 부호화하는 경우에는 계산량이 많아, 상기 H 행렬의 형태를 특수한 구조로 디자인(design)하여 상기 G 행렬을 유도하지 않고, 상기 H 행렬에서 직접 부호화하는 방법을 사용한다. 즉, 상기 G 행렬과 상기 H 행렬에 대한 전치(Transpose) 형태의 HT 간의 곱이 0 이 라는 성질(즉,

Figure 112006028087667-PAT00003
)을 이용하여, 상기 수학식 1에서 HT을 곱하면, 하기 수학식 2 같은 수학식을 얻을 수 있다. 하기 수학식 2에 부합하는 패리티 비트를 정보 비트(x) 뒤에 추가하여 코드워드 c를 얻을 수 있다. On the other hand, in the case of encoding by the Gaussian Reduction method as described above, a large amount of calculation is performed, and a method of directly encoding the H matrix without inducing the G matrix by designing the shape of the H matrix into a special structure. Use That is, H T in the form of a transpose of the G matrix and the H matrix. The property that the product of is 0 (that is,
Figure 112006028087667-PAT00003
By multiplying H T by Equation 1, Equation 2 can be obtained. A codeword c may be obtained by adding a parity bit corresponding to Equation 2 after the information bit x.

Figure 112006028087667-PAT00004
Figure 112006028087667-PAT00004

이하, LDPC 복호화 방법에 대하여 설명한다. Hereinafter, the LDPC decoding method will be described.

통신시스템에서 부호화된 데이터는 도 1의 무선 채널을 통과하는 과정에서 잡음을 포함하게 되는데, 수신 단에서는 도 5와 같은 절차를 통해 데이터의 복호 를 수행한다. 수신 단의 복호화 블록에서는 부호화된 코드워드(c)에 잡음이 첨가된 수신신호(c')로부터 정보 비트(x)를 구하는데, cHT=0인 성질을 이용하여 찾아낸다. 즉, 수신된 코드워드를 c'라 할 때, c'HT의 값을 계산하여 결과가 0이면, c'에서 처음 k개의 비트를 상기 정보 비트(x)로 결정한다. 만약, c'HT의 값이 0이 아닌 경우, 그래프를 통한 합곱(sum-product) 알고리즘 등의 복호화 기법을 사용하여, c'HT의 값이 0을 만족하는 c'을 찾아 상기 정보 비트(x)를 복구한다.The coded data in the communication system includes noise in the process of passing through the wireless channel of FIG. 1, and the receiving end performs decoding of the data through the procedure of FIG. 5. The decoding block of the receiving end obtains the information bit (x) from the received signal (c ') with noise added to the coded code (c), and finds it using the property of cH T = 0. That is, when the received codeword is c ', the value of c'H T is calculated, and if the result is 0, the first k bits in c' are determined as the information bits x. If the value of c'H T is not 0, a decoding technique such as a sum-product algorithm through a graph is used to find c 'whose value of c'H T satisfies 0. recover (x)

이하, LDPC 부호의 부호율(code rate)을 설명한다. Hereinafter, the code rate of the LDPC code will be described.

일반적으로, 부호율(R: code rate)은 상기 정보 비트의 크기가 k이고, 실제 전송되는 코드워드의 크기가 n일 때 다음과 같다. In general, a code rate (R) is as follows when the size of the information bit is k and the size of the codeword actually transmitted is n.

R = k/nR = k / n

LDPC 부호화 및 복호화에 필요한 상기 H 행렬의 행의 크기가 m, 열의 크기가 n인 경우, 부호율은 다음과 같다. The code rate is as follows when the row size of the H matrix required for LDPC encoding and decoding is m and the size of the column is n.

R = 1 - m/nR = 1-m / n

상술한 바와 같이, 종래의 LDPC 부호는 상기 H 행렬에 의해 부호화 및 복호화를 수행하는바, 상기 H 행렬의 구조가 매우 중요하다. 즉, 부호화 및 복호화의 성능이 상기 H 행렬의 구조에 크게 영향을 받기 때문에, 상기 H 행렬의 설계가 무엇보다 중요하다.As described above, the conventional LDPC code is encoded and decoded by the H matrix, and thus the structure of the H matrix is very important. That is, since the performance of encoding and decoding is greatly affected by the structure of the H matrix, the design of the H matrix is most important.

본 발명의 상술한 종래 기술을 개선하기 위해 제안된 것으로, 본 발명의 목적은, 종래에 비해 향상된 성능의 부호화 장치를 제안하는 것이다. It is proposed to improve the above-described prior art of the present invention, and an object of the present invention is to propose an encoding device with improved performance compared to the prior art.

본 발명의 다른 목적은, 부호화에 따른 복잡도를 개선한 패리티 검사 행렬을 이용하여 패리티 비트를 생성하는 부호화 장치를 제안하는 것이다.Another object of the present invention is to propose an encoding apparatus for generating parity bits using a parity check matrix having improved complexity due to encoding.

본원 발명은 종래 기술에 비해 성능을 향상시키기 위해 다수의 패리티 비트를 병렬로 산출한다. 보다 구체적으로, 본원 발명에 따른 부호화 장치는, 특정한 크기(z*z)의 서브 블록들로 이루어진 패리티 검사 행렬을 이용하여 부호화를 수행한다. 또한, 본원 발명은 상기 서브 블록 단위로 패리티 비트를 산출한다. 즉, 상 기 서브 블록의 행 또는 열의 크기 만큼의 패리티 비트를 한번에 산출한다. The present invention calculates a plurality of parity bits in parallel to improve performance over the prior art. More specifically, the encoding apparatus according to the present invention performs encoding using a parity check matrix composed of subblocks having a specific size (z * z). In addition, the present invention calculates a parity bit in the sub-block unit. That is, parity bits corresponding to the size of the row or column of the subblock are calculated at one time.

또한, 본원 발명에 따른 부호화 장치는 하위 삼각형(lower triangle) 타입의 패리티 검사 행렬에 대한 병렬 처리를 수행하는 것을 특징으로 한다. 본원 발명에 따른 부호화 장치는 상기 하위 삼각형 타입의 패리티 검사 행렬을 사용하여, 부호화에 따른 복잡도를 낮출 수 있다.In addition, the encoding apparatus according to the present invention is characterized by performing parallel processing on a parity check matrix of a lower triangle type. The encoding apparatus according to the present invention may reduce the complexity of encoding by using the parity check matrix of the lower triangle type.

본원 발명에 따른 LDPC 부호화 방법은, 정보 비트를 패리티 검사 행렬을 이용하여 부호화하는 방법에 있어서, 상기 패리티 검사 행렬의 정보어 부분 중 제1 영역의 구조에 의해 결정된 제1 정보 비트들에 대한 복수 개의 제1 패리티 비트들을 산출하는 단계; 및 상기 정보어 부분 중 제2 영역의 구조에 의해 결정된 제2 정보 비트들과 상기 제1 패리티 비트들을 누산하여 복수 개의 제2 패리티 비트들을 산출하는 단계를 포함하는 것을 특징으로 한다. In the LDPC encoding method according to the present invention, a method of encoding information bits using a parity check matrix, the LDPC encoding method comprising: a plurality of first information bits determined by a structure of a first region of an information word portion of the parity check matrix; Calculating first parity bits; And calculating a plurality of second parity bits by accumulating the second information bits and the first parity bits determined by the structure of a second region of the information word portion.

또한, 본원 발명에 따른 LDPC 부호화 장치는, 서브 블록들로 이루어진 모델 행렬로부터 생성된 패리티 검사 행렬을 이용하여 부호화를 수행하는 장치에 있어서, 상기 패리티 검사 행렬의 정보어 부분의 구조에 따라 정보 비트에 대한 연산을 수행하여 복수 개의 연산 값을 출력하는 정보어 부분 연산부; 및 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 출력에 대한 데이터 처리를 수행하고, 상기 데이터 처리가 수행된 결과를 누산하여 복수 개의 패리티 비트를 생성하는 패리티 비트 산출부를 포함하여 이루어진다. In addition, the LDPC encoding apparatus according to the present invention is a device for performing encoding using a parity check matrix generated from a model matrix consisting of sub-blocks, the information bit according to the structure of the information word portion of the parity check matrix. An information word partial calculating unit configured to output a plurality of operation values by performing an operation on the input unit; And a parity bit calculator configured to perform data processing on the output according to the structure of the parity portion of the parity check matrix, and generate a plurality of parity bits by accumulating the result of the data processing.

또한, 본원 발명에 따른 부호화 장치에 사용되는 데이터 스케쥴러는, 상기 패리티 검사 행렬의 구조에 따라 정보 비트들을 합산한 복수 개의 연산 값 또는 상 기 정보 비트들과 패리티 비트들을 합산한 복수개의 연산 값을 입력 받고, 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 연산 값들에 대한 데이터 처리를 수행하는 것을 특징으로 한다. In addition, the data scheduler used in the encoding apparatus according to the present invention inputs a plurality of operation values obtained by adding information bits or a plurality of operation values obtained by adding the information bits and parity bits according to the structure of the parity check matrix. And perform data processing on the operation values according to the structure of the parity portion of the parity check matrix.

본 발명의 구성, 동작 및 효과는 이하에서 설명되는 본 발명의 일 실시예에 의해 구체화될 것이다. 이하, 첨부된 도면을 참조하여 본 발명의 일 실시예를 설명한다. The construction, operation and effects of the present invention will be embodied by one embodiment of the present invention described below. Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention.

이하, 상술한 구조화된(structured) LDPC에 따라 특정한 z * z 크기의 서브 블록으로 패리티 검사 행렬을 나타내는 행렬을 모델 행렬(model matrix)이라 한다. 상기 모델 행렬의 각 서브 블록은 특정한 인덱스에 의해 다양한 종류의 행렬로 확장될 수 있는바, 상기 모델 행렬은 상기 인덱스를 상기 모델 행렬의 성분으로 한다. 상기 모델 행렬의 각 서브 블록은 상기 인덱스에 따라 다양한 방식으로 결정될 수 있는바, 이하에서 상기 인덱스는 특정한 크기(z*z)의 단위 행렬에 대한 쉬프트 수(shift number)인 경우를 가정한다. 또한, 상기 인덱스가 -1인 경우에는, 상기 -1의 인덱스를 갖는 서브 블록은 특정한 크기(z*z)의 영 행렬(zero matrix)이다. Hereinafter, a matrix representing a parity check matrix as a subblock having a specific z * z size according to the structured LDPC described above is referred to as a model matrix. Each sub block of the model matrix may be extended to various kinds of matrices by a specific index, and the model matrix has the index as a component of the model matrix. Each sub block of the model matrix may be determined in various ways according to the index. Hereinafter, it is assumed that the index is a shift number for a unit matrix of a specific size z * z. In addition, when the index is -1, the sub block having the index of -1 is a zero matrix of a specific size z * z.

상기 모델 행렬은 상기 인덱스에 따라 특정한 패리티 검사 행렬로 확장되는바, 상기 모델 행렬에 의해 부호화 및 복호화가 수행된다는 것은, 상기 모델 행렬에 의해 생성되는 특정한 패리티 검사 행렬에 의해 부호화 및 복호화가 수행되는 것을 의미한다. The model matrix is extended to a specific parity check matrix according to the index, so that encoding and decoding are performed by the model matrix, and that encoding and decoding is performed by a specific parity check matrix generated by the model matrix. it means.

도 6a는 이중 대각(dual diagonal) 성분을 갖는 패리티 검사 행렬의 패리티 비트를 산출하기 위해 패리티 비트 산출부를 도시한 도면이다. 상기 패리티 비트 산출부는 상기 패리티 검사 행렬의 정보어 부분(systematic part)의 구조에 따라 생성된 결과값을 누적하여 패리티 비트를 출력한다. 즉, 상기 패리티 비트 산출부는 누산기(accumulator)로 이루어진다. FIG. 6A is a diagram illustrating a parity bit calculator for calculating parity bits of a parity check matrix having a dual diagonal component. The parity bit calculator accumulates a result value generated according to a structure of an information word part of the parity check matrix and outputs a parity bit. That is, the parity bit calculator is an accumulator.

도 6b는 본 실시예에 따라 다수의 비트를 동시에 처리하는 부호화 장치의 구조를 나타낸 도면이다. 본 실시예에 따른 부호화 장치는 부호화되는 정보 비트들을 패리티 검사 행렬의 구조에 따라 연산하는 연산부(610)와 상기 연산부의 결과 값을 누산하여 패리티 비트를 산출하는 패리티 산출부(620)를 포함한다. 상기 패리티 산출부(620)는 피드백(feedback) 구조를 이용하여 상기 연산부의 출력 값을 누산한다. 또한, 상기 패리티 산출부(620)는 특정한 개수의 결과 값을 동시에 누산하는 것이 바람직하다. 상기 동시에 누산되는 결과 값의 개수는, 상기 부호화 장치가 이용하는 패리티 검사 행렬의 구조에 따라 정해진다. 상기 패리티 검사 행렬은 특정한 크기(z*z)의 서브 블록들로 이루어지는바, 상기 서브 블록의 행 또는 열의 크기(z) 만큼의 결과 값을 병렬 처리하여 한 번의 데이터 처리를 통해 z개 만큼의 패리티 비트를 출력한다. 즉, 하나의 서브 블록에 대한 연산은 동시에 처리된다. 상기 데이터 처리부는 상기 패리티 검사 행렬의 이중 대각 성분의 구조에 따라 데이터를 저장하거나 쉬프트(shift)하는 등의 동작을 수행한다. 6B is a diagram illustrating a structure of an encoding apparatus which simultaneously processes a plurality of bits according to the present embodiment. The encoding apparatus according to the present embodiment includes an operation unit 610 that calculates encoded information bits according to a structure of a parity check matrix, and a parity calculator 620 that calculates a parity bit by accumulating the result values of the operation unit. The parity calculator 620 accumulates the output value of the calculator using a feedback structure. In addition, the parity calculator 620 preferably accumulates a specific number of result values simultaneously. The number of result values accumulated at the same time is determined according to the structure of the parity check matrix used by the encoding apparatus. The parity check matrix is composed of subblocks of a specific size (z * z). The parity check matrix performs z-parity through one data process by parallelizing a result value corresponding to the size (z) of a row or column of the subblock. Output a bit. That is, operations on one sub block are processed at the same time. The data processor stores or shifts data according to the structure of the double diagonal component of the parity check matrix.

상기 데이터 처리부는 상기 패리티 검사 행렬(또는 특정한 모델 행렬에 의해 확장되는 패리티 검사 행렬)의 구조에 따라 특정한 동작을 수행하는바, 이하 상세한 동작을 설명한다. 도 6b의 부호화 장치는, 하위 삼각형(lower triangle) 타입의 패리티 검사 행렬(하위 삼각형 타입의 모델 행렬에 의해 확장된 패리티 검사 행렬 도 포함한다.)을 이용하여 부호화 동작을 수행하는 것이 바람직하므로, 이하 상기 하위 삼각형의 개념을 설명하고, 그에 따른 동작을 설명한다. The data processor performs a specific operation according to the structure of the parity check matrix (or a parity check matrix extended by a specific model matrix), which will be described in detail below. Since the encoding apparatus of FIG. 6B preferably performs an encoding operation using a parity check matrix of a lower triangle type (including a parity check matrix extended by a model matrix of a lower triangle type), the following operation is performed. The concept of the lower triangle will be described and the operation accordingly.

이하, 상기 하위 삼각형(lower triangle)의 개념을 설명하기 위해 상위 삼각형(upper triangle)의 개념을 설명하고, 그에 이어 하위 삼각형의 개념을 설명한다.Hereinafter, the concept of the upper triangle will be described to explain the concept of the lower triangle, followed by the concept of the lower triangle.

도 7a는 일반적인 모델 행렬의 구조를 나타낸 것이다. 도 7a에 표시된 각각의 정수는 인덱스를 나타내며, 표시되지 않은 부분은 -1의 인덱스를 갖는다. 도 7a의 모델 행렬은, 크게 정보어 부분(systematic part)과 패리티 부분(parity part)으로 구성된다. 즉, 도 7a의 모델 행렬은, [Hd : Hp]의 구조로 이루어지는바, 상기 Hd는 상기 모델 행렬에 의해 부호화되는 정보 비트(information bit)에 1:1로 대응하는 정보어 부분이고, 상기 Hp는 부호화된 코드워드에 포함되는 패리티 비트를 생성하는 패리티 부분이다.7A shows the structure of a general model matrix. Each integer indicated in FIG. 7A represents an index, and an unmarked portion has an index of -1. The model matrix of FIG. 7A is largely comprised of a systematic part and a parity part. That is, the model matrix of FIG. 7A has a structure of [H d : H p ], where H d is an information word portion corresponding to an information bit encoded by the model matrix in a 1: 1 ratio. , H p is a parity portion for generating a parity bit included in the coded codeword.

도시된 바와 같이, 일반적인 모델 행렬은 상기 패리티 부분에 이중 대각(dual diagonal) 성분을 갖는다. 다만, 종래의 이중 대각 성분은 도시된 바와 같이, 하나의 대각(diagonal) 성분과 상기 대각 성분에 인접한 성분으로 이루어진다. 또한, 상기 인접한 성분은, 상기 대각 성분의 상단(upper)에 위치한다. 달리 표현하면, 상기 인접한 성분은 상기 대각 성분의 우측에 위치한다. 행렬의 성분에 대한 상하 좌우는 행렬을 보는 방향에 따라 가변적인바, 도 7a의 행렬을 다른 방법으로 설명하면 다음과 같다. As shown, a general model matrix has a dual diagonal component in the parity portion. However, the conventional double diagonal component is composed of one diagonal component and a component adjacent to the diagonal component as shown. The adjacent component is also located at the upper of the diagonal component. In other words, the adjacent component is located to the right of the diagonal component. The up, down, left, and right sides of the components of the matrix are variable depending on the direction of viewing the matrix. The matrix of FIG.

상기 모델 행렬을 [Hd : Hp]라 하고, 도 7a의 패리티 부분 내에서 서브 블록의 행을 r이라 하고, 열을 c로 표시하고, 특정한 서브 블록에 대한 쉬프트 수를 Ar ,c라 하는 경우, 상기 인덱스 Ar ,c는 r=c인 경우와 c=r+1인 경우에 0을 갖는다. 또한, 나머지 인덱스 Ar ,c는 -1을 갖는다. 즉, 도 7a의 모델 행렬의 패리티 부분이 16개의 서브 블록을 갖는 경우, 상기 패리티 부분은 하기 수학식 5와 같이 결정된다. The model matrix is referred to as [H d : H p ], the row of sub blocks in the parity portion of FIG. 7A is r, the column is represented by c, and the number of shifts for a specific sub block is A r , c . In this case, the indexes A r and c have 0 when r = c and when c = r + 1. In addition, the remaining indexes A r and c have −1. That is, when the parity portion of the model matrix of FIG. 7A has 16 subblocks, the parity portion is determined as shown in Equation 5 below.

Figure 112006028087667-PAT00005
Figure 112006028087667-PAT00005

모델 행렬 또는 패리티 검사 행렬의 패리티 부분은, 이중 대각 성분의 설계 방법에 따라 여러 가지로 구분될 수 있는바, 도 7a의 모델 행렬의 방식으로 설계된 패리티 부분은 '상위 삼각형(upper triangle) 타입'에 따라 설계되었다고 표현한다.The parity portion of the model matrix or the parity check matrix can be divided into various types according to the design method of the double diagonal component. The parity portion designed by the method of the model matrix of FIG. 7A has an upper triangle type. Expressed as designed accordingly.

도 7b는 본 실시예에 따른 부호화 장치가 사용하는 모델 행렬의 구조를 나타낸 도면이다. 도 7b의 모델 행렬은, 크게 정보어 부분(systematic part)과 패리티 부분(parity part)으로 구성된다. 즉, 도 7b의 모델 행렬은, [Hd : Hp]의 구조로 이루어지는바, 상기 Hd는 상기 모델 행렬에 의해 부호화되는 정보 비트(information bit)에 1:1로 대응하는 정보어 부분이고, 상기 Hp는 부호화된 코드워드에 포함되는 패리티 비트를 생성하는 패리티 부분이다. 상기 Hd를 구성하는 방법에는 제한이 없는바, 도 7b에서는 상기 정보어 부분에 자세한 사항을 도시하지 않는다.7B is a diagram showing the structure of a model matrix used by the encoding apparatus according to the present embodiment. The model matrix of FIG. 7B is largely composed of an information word part and a parity part. That is, the model matrix of FIG. 7B has a structure of [H d : H p ], where H d is an information word portion corresponding to an information bit encoded by the model matrix in a 1: 1 ratio. , H p is a parity portion for generating a parity bit included in the coded codeword. There is no limitation in the method of configuring H d , and details of the information word are not shown in FIG. 7B.

도 7b의 모델 행렬 역시 이중 대각(dual diagonal) 성분을 갖는다. 도 7b의 이중 대각 성분은 도시된 바와 같이, 하나의 대각(diagonal) 성분과 상기 대각 성분에 인접한 성분으로 이루어진다. 다만, 상기 인접한 성분은, 상기 대각 성분의 하단(lower)에 위치한다. 달리 말하면, 상기 인접한 성분은 상기 대각 성분의 좌측에 위치한다. 행렬의 성분에 대한 상하 좌우는 행렬을 보는 방향에 따라 가변적인바, 본 실시예에 따른 모델 행렬을 다른 방법으로 설명하면 다음과 같다. The model matrix of FIG. 7B also has a dual diagonal component. The double diagonal component of FIG. 7B consists of one diagonal component and the component adjacent to the diagonal component, as shown. However, the adjacent component is located at the lower end of the diagonal component. In other words, the adjacent component is located to the left of the diagonal component. The up, down, left, and right of the components of the matrix are variable depending on the direction of viewing the matrix. The model matrix according to the present embodiment is described in another way as follows.

상기 모델 행렬을 [Hd : Hp]라 하고, 도 7b의 패리티 부분 내에서 서브 블록의 행을 r이라 하고, 열을 c로 표시하고, 특정한 서브 블록에 대한 쉬프트 수를 Ar ,c라 하는 경우, 상기 인덱스 Ar ,c는 r=c인 경우와 r=c+1인 경우에 -1인 아닌 임의의 정수를 갖는다. 즉, 도 7b의 모델 행렬의 패리티 부분이 16개의 서브 블록을 갖는 경우, 상기 패리티 부분은 하기 수학식 6과 같이 결정될 수 있다.The model matrix is called [H d : H p ], the row of sub blocks in the parity portion of FIG. 7B is r, the column is represented by c, and the number of shifts for a specific sub block is A r , c . In this case, the index A r , c has any integer that is not -1 when r = c and r = c + 1. That is, when the parity portion of the model matrix of FIG. 7B has 16 subblocks, the parity portion may be determined as shown in Equation 6 below.

Figure 112006028087667-PAT00006
Figure 112006028087667-PAT00006

상기 수식에서 xi와 yi는 임의의 정수를 나타낸다. 모델 행렬 또는 패리티 검사 행렬의 패리티 부분은, 이중 대각 성분의 설계 방법에 따라 여러 가지로 구분될 수 있는바, 도 7b의 모델 행렬과 동일한 방식으로 설계된 패리티 부분은 '하위 삼각형(lower triangle) 타입'에 따라 설계되었다고 표현한다. In the above formula, x i and y i represent an arbitrary integer. The parity portion of the model matrix or parity check matrix can be divided into various types according to the design method of the double diagonal component. The parity portion designed in the same manner as the model matrix of FIG. 7B is a 'lower triangle type'. Expressed as designed according to

이하, 상기 하위 삼각형 타입의 행렬을 이용하여 부호화를 수행하는 방법을 설명한다. 상기 하위 삼각형 타입의 종류는 다양한바, 도 8의 모델 행렬을 이용하여 부호화를 수행하는 방법을 설명한다. Hereinafter, a method of performing encoding by using the matrix of the lower triangle type will be described. The type of the lower triangular type is various, and a method of performing encoding using the model matrix of FIG.

도 8의 모델 행렬을 Hb라 하는 경우, 상기 Hb는 정보어, 즉 정보비트(information bit)와 일대일 대응되는 정보어 부분 Hb1과, 패리티 부분 Hb2으로 구성된다. 상기 모델 행렬을 수식으로 정리하면 다음과 같다. When the model matrix of FIG. 8 is referred to as H b , the H b is composed of an information word, that is, an information word part H b1 corresponding to the information bit one-to-one and a parity part H b2 . The model matrix is summarized as follows.

Figure 112006028087667-PAT00007
Figure 112006028087667-PAT00007

상기 kb는 도 8의 모델 행렬에서 정보어에 대응하는 서브 블록의 개수를 나타낸다. 또한, 상기 mb는 상기 모델 행렬에서 열 방향으로 위치하는 서브 블록의 개수이다. 즉, 상기 모델 행렬의 정보어 부분은, 서브 블록의 단위로 표현할 때, mb * kb의 크기를 갖는다. 또한, 상기 모델 행렬의 패리티 부분은, 서브 블록의 단위로 표현할 때, mb * mb의 크기를 갖는다. K b represents the number of subblocks corresponding to the information word in the model matrix of FIG. 8. In addition, the m b is the number of sub-blocks located in the column direction in the model matrix. That is, the information word portion of the model matrix has a size of m b * k b when expressed in units of sub-blocks. In addition, the parity portion of the model matrix has a size of m b * m b when expressed in units of sub-blocks.

상기 Hb에 의해 생성되는 코드워드 x는, 정보 비트 s와 패리티 비트 p를 포함하는바, 하기 수식으로 표현된다.The codeword x generated by H b includes an information bit s and a parity bit p, and is represented by the following formula.

Figure 112006028087667-PAT00008
Figure 112006028087667-PAT00008

상술한 바와 같이, 상기 모델 행렬 Hb는 z * z 크기의 서브 블록들로 구성된다. 또한, 상기 Hb를 이용하는 부호화 장치는 z개 단위로 데이터를 처리한다. 즉, 부호화를 위해서 정보 비트 s를 z 비트씩 묶어서 kb개의 그룹으로 그룹화한다. kb개의 그룹으로 그룹화된 정보 비트 s는 하기 수학식 9와 같이 벡터로 표시된다As described above, the model matrix H b is composed of sub blocks of size z * z. In addition, the encoding apparatus using H b processes data in units of z. That is, for encoding, information bits s are grouped into k b groups by z bits. The information bits s grouped into k b groups are represented as vectors as shown in Equation 9 below.

Figure 112006028087667-PAT00009
Figure 112006028087667-PAT00009

Figure 112006028087667-PAT00010
Figure 112006028087667-PAT00010

상기 수학식 9에서 u(i)는, 크기가 z*1인 열 벡터(column vector)이다. In Equation 9, u (i) is a column vector of size z * 1.

본 실시예에 따라 한 번에 z비트의 패리티 비트가 출력되는바, 본 실시예에 따른 부호화 장치에 의해 출력되는 패리티 비트는 크기가 z*1인 열 벡터(column vector) v(i)로 표현될 수 있다. 이를 수식으로 정리하면 하기 수학식 10과 같다.According to this embodiment, z-bit parity bits are output at a time. The parity bits output by the encoding apparatus according to the present embodiment are represented by a column vector v (i) having a size z * 1. Can be. This can be summarized as Equation 10 below.

Figure 112006028087667-PAT00011
Figure 112006028087667-PAT00011

Figure 112006028087667-PAT00012
Figure 112006028087667-PAT00012

상기 수학식 10과 같이, 패리티는 mb개의 벡터로 구성되고, 각각의 벡터는 z 비트의 패리티 비트를 포함한다. As shown in Equation 10, the parity is composed of m b vectors, and each vector includes z bits of parity bits.

Figure 112006028087667-PAT00013
Figure 112006028087667-PAT00013

Figure 112006028087667-PAT00014
Figure 112006028087667-PAT00014

상기 수학식에서,

Figure 112006028087667-PAT00015
는 패리티 부분에 위치하는 서브 블록으로부터 확장되어 생성되는 행렬을 나타낸다. 예를 들어,
Figure 112006028087667-PAT00016
이라면, 특정한 모델 행렬의 첫 번째 행과 첫 번째 열에 위치하는 서브 블록을 나타내는 것이다. 상기 수학식 11a에서도 알 수 있듯이, 전체 패리티 비트 중 첫 번째 열 벡터(즉, 전체 패리티 비트 중 최초 z비트)는, 상기 첫 번째 열 벡터에 상응하는 정보어 부분(systematic part)에 대한 연산 결과이다. 두 번째 열 벡터는, 상기 두 번째 열 벡터에 상응하는 정보어 부분에 대한 연산 결과와 상기 첫 번째 열 벡터를 이용하여 계산된다. 이러한 내용을 정리하면, 패리티 비트를 산출하는 과정은 상기 수학식 11b와 같은 재귀적 방법으로 표현될 수 있다. In the above equation,
Figure 112006028087667-PAT00015
Denotes a matrix generated by extending from a subblock located in the parity portion. E.g,
Figure 112006028087667-PAT00016
, The subblock at the first row and first column of a particular model matrix. As can be seen from Equation 11a, the first column vector of all parity bits (ie, the first z bits of all parity bits) is an operation result of an information part corresponding to the first column vector. . The second column vector is calculated using the result of the calculation of the information word portion corresponding to the second column vector and the first column vector. In summary, the process of calculating the parity bits may be represented by a recursive method as shown in Equation 11b.

도 9는 도 8의 모델 행렬을 이용하여 부호화를 수행하는 부호화 장치(900)의 일례를 나타낸 도면이다. 도 9는, 도 6b의 부호화 장치를 보다 상세하게 설명한 일례이다. 9 is a diagram illustrating an example of an encoding apparatus 900 that performs encoding by using the model matrix of FIG. 8. 9 illustrates an example of the encoding apparatus of FIG. 6B in more detail.

도시된 바와 같이, 상기 부호화 장치(900)는 패리티 검사 행렬의 정보어 부분에 대한 연산 처리를 수행하는 연산 처리부(910), 상기 연산 처리부의 출력을 누적적으로 합산하는 합산 모듈(920), 상기 합산 모듈(920)의 출력을 저장하는 메모리(930), 상기 메모리로부터 출력되는 결과값에 대한 데이터 처리를 수행하는 제1 스케쥴러(940), 상기 합산 모듈(920)의 출력에 대하여 상기 패리티 검사 행렬의 구조에 따라 데이터 처리를 수행하는 제2 스케쥴러(950), 상기 부호화 장치의 전체적인 스케줄링 및 동작 제어를 수행하는 제어부(960)를 포함한다. As shown, the encoding apparatus 900 includes an arithmetic processing unit 910 for performing arithmetic operations on an information word portion of a parity check matrix, a summation module 920 for cumulatively summing outputs of the arithmetic processing unit, and A memory 930 for storing the output of the summing module 920, a first scheduler 940 for performing data processing on a result value output from the memory, and the parity check matrix for the output of the summing module 920 A second scheduler 950 for performing data processing according to the structure of the structure, and a controller 960 for performing overall scheduling and operation control of the encoding device.

상기 연산 처리부(910)는, 도 8의 모델 행렬로부터 확장되어 생성된 패리티 검사 행렬의 정보어 부분에 대한 연산을 수행한다. 상기 정보어 부분에 대한 연산 방법이 다양하게 존재한다는 사실은, 본 발명이 속하는 기술 분야의 통상의 지식을 갖춘자에게는 자명하다. 이하, 패리티 검사 행렬의 정보어 부분에 대한 연산 방법을 설명한다. The operation processing unit 910 performs an operation on the information word portion of the parity check matrix generated by extending from the model matrix of FIG. 8. The fact that there are various calculation methods for the information word part is obvious to those skilled in the art. An operation method on the information word portion of the parity check matrix will be described below.

Figure 112006028087667-PAT00017
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개 단위로 병렬처리된다.If the information word portion is represented by [0 1 3 0] and the size z of the subblock constituting the model matrix is 4, the model matrix may be extended like the parity check matrix H of Equation 12. The information word portion of Equation 12 corresponds to sixteen information bits a 0 to a 15 . Accordingly, four result values are generated when the arithmetic operation is performed on the information word portion. In other words, the first result is
Figure 112006028087667-PAT00018
And the second result is
Figure 112006028087667-PAT00019
And the third result is
Figure 112006028087667-PAT00020
And the fourth result is
Figure 112006028087667-PAT00021
to be. Since the result value is z, it is processed in parallel in units of z.

상기 연산 처리부(910)는 상기 z 비트만큼의 결과값을 상기 합산 모듈(920)로 출력한다. 초기 단계에서는 상기 메모리(930)에는 저장된 값이 없으므로, 상기 z 비트만큼의 결과값을 상기 제2 스케쥴러(950)로 출력한다. 상기 제2 스케쥴러(950)의 자세한 동작은 이후 설명되는바, 도 8의 모델 행렬을 사용하는 경우 상기 제2 스케쥴러(950)는 입력을 그대로 출력한다. 상기 제2 스케쥴러(950)의 출력은 상기 정보 비트에 대한 첫 번째 패리티 벡터(v(0))이다.The operation processor 910 outputs the result value of the z bits to the summing module 920. In the initial stage, since there is no stored value in the memory 930, a result value corresponding to the z bits is output to the second scheduler 950. Detailed operations of the second scheduler 950 will be described later. When the model matrix of FIG. 8 is used, the second scheduler 950 outputs an input as it is. The output of the second scheduler 950 is the first parity vector v (0) for the information bits.

상기 z 비트만큼의 결과값은 상기 메모리(930)에도 전달되어 저장된다. 상기 메모리(930)의 크기는 z 비트인 것이 바람직하다. 또한, 상기 메모리(930)의 저장된 데이터는 상기 제1 스케쥴러(940)로 출력된다. 상기 제1 스케쥴러(940)의 자세한 동작은 이후 설명되는바, 도 8의 모델 행렬을 사용하는 경우 상기 제1 스케쥴러(940)는 쉬프트 연산을 수행하지 않는다. The result value of the z bits is also transferred to and stored in the memory 930. The size of the memory 930 is preferably z bits. In addition, the stored data of the memory 930 is output to the first scheduler 940. Detailed operations of the first scheduler 940 will be described later. When the model matrix of FIG. 8 is used, the first scheduler 940 does not perform a shift operation.

상기 제어부(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에서도 설명된 부호화 동작이다. The controller 960 instructs an operation on the information word portion through the operation processor 910, and performs an operation on the information word portion corresponding to the second parity vector v (1). The result of the performed operation has a size of z bits, and is output to the sum module 920 at one time. The sum module 920 includes information corresponding to the first parity vector v (0). A result of adding the result value for the fish portion and the result value for the information word portion corresponding to the second parity vector v (1) is performed (for example, an XOR operation). The summed result is also z data and is output at once to the second scheduler 950 and the memory 930. As described above, the second scheduler 950 still outputs an input value without data processing, and outputs a second parity vector v (1). The new value is stored in the memory 930, and the stored value is summed with the result of operation on the information word portion corresponding to the third parity vector v (2). If the above-described method is repeated, the parity vector from v (0) to v (m b -1) can be obtained, and finally, the total parity bit can be obtained. The above is the encoding operation described in the above equation (11b).

이하, 상기 제1 스케쥴러(940) 및 상기 제2 스케쥴러(950)의 동작을 설명한다. Hereinafter, operations of the first scheduler 940 and the second scheduler 950 will be described.

상기 제1 및 제2 스케쥴러는 특정한 데이터들이 패리티 부분의 구조에 따라 합산되는 경우, 합산되는 데이터들의 순서를 조정하기 위해 사용된다. 특정한 패리티 비트가 생성되기 위해서는, 상기 하위 삼각형 타입에 따른 모델 행렬의 이중 대 각 성분의 구조에 따라 특정한 데이터 비트들이 합산된다. 상기 스케쥴러는 상기 합산되는 데이터 비트들을 결정하고, 합산된 결과값의 순서를 조절한다. 즉 상기 스케쥴러는 합산되는 비트가 올바르게 매핑(mapping)되도록 데이터 처리를 수행하고, 패리티 비트로 출력될때 요구되는 순서에 따라 출력되도록 데이터 처리를 수행한다. The first and second schedulers are used to adjust the order of the summed data when specific data are summed according to the structure of the parity portion. In order to generate a specific parity bit, specific data bits are summed according to the structure of the double diagonal component of the model matrix according to the lower triangle type. The scheduler determines the summed data bits and adjusts the order of the summed result. That is, the scheduler performs data processing so that the bits to be summed are mapped correctly, and performs data processing so that the bits are output in the order required when outputting the parity bits.

상기 스케쥴러의 개수에는 제한이 없는바, 이하 도 10 내지 도 12의 일례에서는 2개의 스케쥴러를 사용한다. 상기 스케쥴러는 데이터 비트가 매핑되는 순서를 조정하기 때문에 쉬프트 레지스터(shift register) 등의 장치를 통해 구현될 수 있다. 이하 도 10 내지 도 12의 일례에서는, 쉬프트 레지스터를 통해 스케쥴러를 구현한 일례를 설명한다. There is no limit to the number of the scheduler. In the example of FIGS. 10 to 12, two schedulers are used. Since the scheduler adjusts the order in which data bits are mapped, the scheduler may be implemented through a device such as a shift register. 10 to 12, an example of implementing the scheduler through the shift register will be described.

도 10은 쉬프트 수(shift number)가 0인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다. FIG. 10 is a diagram for describing an encoding operation according to a parity part including a double diagonal component having a shift number of zero.

도시된 바와 같이, 도 10의 일례에서는

Figure 112006028087667-PAT00022
와 같은 패리티 부분을 구비한 모델 행렬을 이용하여 부호화를 수행한다. 상기 행렬
Figure 112006028087667-PAT00023
은, 전체 패리티 부분의 일부일 수 있는바, 설명의 편의를 위해 상기 행렬
Figure 112006028087667-PAT00024
를 기초로 하여 동작을 설명한다. 상기 모델 행렬은 패리티 검사 행렬로 확장되는바, 서브 블록의 크기가 4*4인 경우에 도시된 바와 같이 확장된다. 도시된 바와 같이, 패리티 비트 p0 내지 p7은 상기 패리티 검사 행렬의 구조에 의해 산출된다. 보다 구체적으로는, 각 패리티 비트에 상응하는 정보어 부분에 대한 연산 값과 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 패리티 비트가 결정된다. 상술한 바와 같이, 상기 패리티 비트는 4(=z) 비트 단위로 산출되는바, 현재 상태는 p0 내지 p3은 산출되어 상기 메모리(930)에 저장된 상태다. As shown, in the example of FIG.
Figure 112006028087667-PAT00022
The encoding is performed using a model matrix having a parity portion as shown in FIG. The matrix
Figure 112006028087667-PAT00023
May be part of an entire parity part, for convenience of description the matrix
Figure 112006028087667-PAT00024
The operation will be described on the basis of the following. The model matrix is extended with a parity check matrix, as shown in the case where the size of the subblock is 4 * 4. As shown, parity bits p 0 to p 7 are calculated by the structure of the parity check matrix. More specifically, the parity bit is determined according to the operation value for the information word portion corresponding to each parity bit and the structure of the parity portion of the parity check matrix. As described above, the parity bit is calculated in units of 4 (= z) bits, and the current state is a state in which p 0 to p 3 are calculated and stored in the memory 930.

상기 제1 쉬프트 레지스터(940)는 상기 제어부(960)에 의해 쉬프트(shift) 동작을 수행하는바, 상기 제어부(960)는 상기 패리티 검사 행렬의 구조를 분석하고, 상기 구조를 통해 상기 제1 쉬프트 레지스터(940)의 동작을 제어한다. 보다 구체적으로 1001의 성분과 1002의 성분을 비교하여, 얼마만큼의 쉬프트를 수행할지 결정한다. 도 10의 경우 1001의 성분과 1002의 성분이 동일한 값이므로 쉬프트를 수행하지 않는다. The first shift register 940 performs a shift operation by the control unit 960. The control unit 960 analyzes a structure of the parity check matrix and performs the first shift through the structure. Controls the operation of the register 940. More specifically, the component of 1001 and the component of 1002 are compared to determine how much shift is to be performed. In FIG. 10, since the component of 1001 and the component of 1002 are the same value, the shift is not performed.

상기 제1 쉬프트 레지스터(940)의 출력은 상기 합산 모듈(920)로 출력된다. 합산 모듈(920)은, 제4 내지 제7 결과값을 p0 내지 p3의 결과값과 각각 합산한다. 상기 합산된 결과는 상기 제2 쉬프트레지스터(950)에 입력된다. 상기 제어부(960)는 상기 패리티 검사 행렬의 구조를 분석하고, 상기 구조를 통해 상기 제2 쉬프트 레지스터(950)의 동작을 제어한다. 보다 구체적으로 1005의 쉬프트 수(shift number)가 단위 행렬(identity matrix)에 비하여 얼마만큼 쉬프트 되었는지에 따라 쉬프트 수를 결정한다. 도 10의 경우 1005의 성분은 단위 행렬을 나타내는바, 쉬프트를 수행하지 않는다. 결과적으로 상기 합산된 결과는 p4 내지 p7의 패리티 비트로 결정된다. The output of the first shift register 940 is output to the summing module 920. The adding module 920 adds the fourth to seventh result values with the result values of p 0 to p 3 , respectively. The sum result is input to the second shift register 950. The controller 960 analyzes the structure of the parity check matrix and controls the operation of the second shift register 950 through the structure. More specifically, the shift number is determined according to how much the shift number of 1005 is shifted compared to the identity matrix. In the case of FIG. 10, the component of 1005 represents an identity matrix, and thus no shift is performed. As a result, the summed result is determined by parity bits of p 4 to p 7 .

도시된 제0 내지 제7 결과값은 p0 내지 p7 패리티 비트에 상응하는 정보어 부분에서의 정보 비트에 대한 연산 값을 나타낸다. 상기 결과값을 구하는 방법은 상기 수학식 12 등에 의할 수 있다. The zeroth to seventh result values shown represent operation values for information bits in the information word portion corresponding to p 0 to p 7 parity bits. The method for obtaining the result value may be based on Equation 12.

도 10의 우측에 도시된 바와 같이, 패리티 비트 p4는 제4 결과값과 패리티 비트 p0 간의 연산에 의해 결정된다. 각 변수들 간의 관계는 지시선 1003에 의해 설명된다. 패리트 비트 p5의 경우는, 제5 결과값과 패리티 비트 p5 간의 연산에 의해 결정된다. 각 변수들 간의 관계는 지시선 1004에 의해 설명된다.As shown on the right side of FIG. 10, parity bit p 4 is determined by an operation between the fourth result value and parity bit p 0 . The relationship between each variable is explained by leader 1003. In the case of the parit bit p 5 , it is determined by the operation between the fifth result value and the parity bit p 5 . The relationship between each variable is described by leader 1004.

도 10은 본 발명의 일례를 나타내기 위한 도면에 불과한바, 본 발명은 도 10에 제한되지 아니한다. 즉, 제1 쉬프트 레지스터와 제2 쉬프트 레지스터가 어떠한 동작도 수행하지 않는경우, 상기 쉬프트 레지스터가 제외된 부호화 장치를 사용할 수 있다. 10 is only a diagram for illustrating an example of the present invention, and the present invention is not limited to FIG. 10. That is, when the first shift register and the second shift register do not perform any operation, an encoding apparatus in which the shift register is excluded may be used.

도 11은 쉬프트 수(shift number)가 임의의 정수인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다.FIG. 11 is a diagram for describing an encoding operation according to a parity part including a double diagonal component having a shift number of any integer.

도시된 바와 같이, 도 11의 일례에서는

Figure 112006028087667-PAT00025
를 포함하는 패리티 부분을 구비한 모델 행렬을 이용하여 부호화를 수행한다. 상기 모델 행렬은 패리티 검사 행렬로 확장되는바, 서브 블록의 크기가 4*4인 경우 도시된 바와 같이 확장된다. 도시된 바와 같이, 패리티 비트 p0 내지 p7은 상기 패리티 검사 행렬의 구조에 따라 산출된다. 보다 구체적으로는, 각 패리티 비트에 상응하는 정보어 부분에 대한 연산 값과 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 패리티 비트가 결정된다. 상술한 바와 같이, 상기 패리티 비트는 4(=z) 비트 단위로 산출되는바, 현재 상태는 p0 내지 p3은 산출되어 상기 메모리(930)에 저장된 상태다. As shown, in the example of FIG.
Figure 112006028087667-PAT00025
Encoding is performed using a model matrix having a parity portion including. The model matrix is extended with a parity check matrix, and as shown in the case where the size of the subblock is 4 * 4. As shown, parity bits p 0 to p 7 are calculated according to the structure of the parity check matrix. More specifically, the parity bit is determined according to the operation value for the information word portion corresponding to each parity bit and the structure of the parity portion of the parity check matrix. As described above, the parity bit is calculated in units of 4 (= z) bits, and the current state is a state in which p 0 to p 3 are calculated and stored in the memory 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 결과값과 더해진다. The first shift register 940 performs a shift operation by the control unit 960. The control unit 960 analyzes a structure of the parity check matrix and performs the first shift through the structure. Controls the operation of the register 940. More specifically, by comparing the components of 1101 and 1102 of Figure 11, it is determined how much shift to perform. In FIG. 11, since the components of 1101 and 1102 differ from each other by one, the first shift register 940 may perform a shift operation of one. That is, the values stored in the order of p 0 , p 1 , p 2 , and p 3 are output as p 1 , p 2 , p 3 , and p 0 . The output of the first shift register is input to the summing module 920 and added to the fourth to seventh result values.

상기 합산 모듈(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에 의해 설명된다.The summing module 920 sums the fourth result value and p 1 , sums the fifth result value and p 2 , sums the sixth result value and p 3, and sums the seventh result value and p 0 . do. The sum result is input to the second shift register 950. The controller 960 analyzes the structure of the parity check matrix and controls the operation of the second shift register 950 through the structure. As described above, the operation of the second shift register 950 is controlled according to the number of shifts for the 1103 component. In the case of FIG. 11, since the number of shifts for the component of 1103 is 0, the shift is not performed. As a result, the summed result is determined by parity bits of p 4 to p 7 . As shown on the right side of FIG. 11, parity bit p 4 is determined by an operation between the fourth result value and parity bit p 1 . The relationship between the above-described variables p 1 , p 4 and the fourth result is described by the leader line 1104. In the case of the parit bit p 7 , it is determined by the operation between the seventh result value and the parity bit p 0 . The relationship between the above-described variables p 0 , p 7 , and seventh resultant value is described by the leader line 1105.

도 11은 본 발명의 일례를 나타내기 위한 도면에 불과한바, 본 발명은 도 11에 제한되지 아니한다. 즉, 제2 쉬프트 레지스터가 어떠한 동작도 수행하지 않는경우, 제1 쉬프트 레지스터 만을 포함하는 부호화 장치를 사용할 수 있다. 11 is only a diagram for illustrating an example of the present invention, and the present invention is not limited to FIG. 11. That is, when the second shift register does not perform any operation, an encoding apparatus including only the first shift register may be used.

도 12는 쉬프트 수(shift number)가 임의의 정수인 이중 대각 성분으로 이루어진 패리티 부분에 따른 부호화 동작을 설명한 도면이다.12 is a diagram illustrating an encoding operation according to a parity portion formed of a double diagonal component having a shift number of any integer.

도시된 바와 같이, 도 12의 일례에서는

Figure 112006028087667-PAT00026
와 같은 패리티 부분을 구비한 모델 행렬을 이용하여 부호화를 수행한다. 상기 모델 행렬은 패리티 검사 행렬로 확장되는바, 서브 블록의 크기가 4*4인 경우 도시된 바와 같이 확장된다. 도시된 바와 같이, 패리티 비트 p0 내지 p7은 상기 패리티 검사 행렬의 구조에 따라 산출된다. 보다 구체적으로는, 각 패리티 비트에 상응하는 정보어 부분에 대한 연산 값과 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 패리티 비트가 결 정된다. 상술한 바와 같이, 상기 패리티 비트는 4(=z) 비트 단위로 산출되는바, 현재 상태는 p0 내지 p3은 산출되어 상기 메모리(930)에 저장된 상태다. As shown, in the example of FIG.
Figure 112006028087667-PAT00026
The encoding is performed using a model matrix having a parity portion as shown in FIG. The model matrix is extended with a parity check matrix, and as shown in the case where the size of the subblock is 4 * 4. As shown, parity bits p 0 to p 7 are calculated according to the structure of the parity check matrix. More specifically, the parity bit is determined according to the operation value for the information word portion corresponding to each parity bit and the structure of the parity portion of the parity check matrix. As described above, the parity bit is calculated in units of 4 (= z) bits, and the current state is a state in which p 0 to p 3 are calculated and stored in the memory 930.

상기 제1 쉬프트 레지스터(940)는 상기 제어부(960)에 의해 쉬프트(shift) 동작을 수행하는바, 상기 제어부(960)는 상기 패리티 검사 행렬의 구조를 분석하고, 상기 구조를 통해 상기 제1 쉬프트 레지스터(940)의 동작을 제어한다. 보다 구체적으로 1201의 성분과 1202의 성분을 비교하여, 얼마만큼의 쉬프트를 수행할지 결정한다. 도 12의 경우 1201의 성분과 1202의 성분이 동일하므로 쉬프트 동작을 수행하지 않는다. 상기 제1 쉬프트 레지스터의 출력은 상기 합산 모듈(920)에 입력되어, 상기 제4 내지 제7 결과값과 더해진다. The first shift register 940 performs a shift operation by the control unit 960. The control unit 960 analyzes a structure of the parity check matrix and performs the first shift through the structure. Controls the operation of the register 940. More specifically, the component of 1201 and the component of 1202 are compared to determine how much shift is to be performed. In FIG. 12, since the components of 1201 and 1202 are the same, the shift operation is not performed. The output of the first shift register is input to the summing module 920 and added to the fourth to seventh result values.

상기 합산된 결과는 상기 제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의 순서로 출력된다. The sum result is input to the second shift register 950. The controller 960 analyzes the structure of the parity check matrix and controls the operation of the second shift register 950 through the structure. In FIG. 12, since the number of shifts for the component of 1203 is 1, the shift operation of 1 is performed. As a result, the fourth result
Figure 112006028087667-PAT00027
p 0 , fifth result
Figure 112006028087667-PAT00028
p 1 , the sixth result
Figure 112006028087667-PAT00029
p 2 , seventh result
Figure 112006028087667-PAT00030
The value output in the order of p 3 is the seventh result value by the second shift register 950.
Figure 112006028087667-PAT00031
p 3 , fourth result
Figure 112006028087667-PAT00032
p 0 , fifth result
Figure 112006028087667-PAT00033
p 1 , the sixth result
Figure 112006028087667-PAT00034
The output is in the order of p 2 .

도 12의 우측에 도시된 바와 같이, 패리티 비트 p5는 제4 결과값과 패리티 비트 p0 간의 연산에 의해 결정된다. 상술한 변수들(p0, p5, 제4 결과값) 간의 관계는 지시선 1204에 의해 설명된다. 패리트 비트 p6의 경우는, 제5 결과값과 패리티 비트 p1 간의 연산에 의해 결정된다. 상술한 변수들(p1, p6, 제5 결과값) 간의 관계는 지시선 1205에 의해 설명된다.As shown on the right side of FIG. 12, parity bit p 5 is determined by an operation between the fourth result value and parity bit p 0 . The relationship between the above-described variables p 0 , p 5 , and the fourth result is explained by the leader line 1204. In the case of the parit bit p 6 , it is determined by the operation between the fifth result value and the parity bit p 1 . The relationship between the above-described variables p 1 , p 6 , and fifth resultant value is described by the leader line 1205.

특정한 모델 행렬에 의해 부호화를 수행하는 경우, 상술한 도 10 내지 도 12의 일례가 선택적으로 수행될 수 있다. When encoding is performed by a specific model matrix, the above-described example of FIGS. 10 to 12 may be selectively performed.

도 13a는 본 실시예에 따른 모델 행렬의 패리티 부분을 나타낸 도면이다. 도 13a의 1301 영역은 도 10에서 설명된 패리티 부분과 동일하다. 즉, 도 13a의 패리티 부분을 사용하여 패리티 비트를 생성하는 경우, 1301 영역에 상응하는 패리티 비트는 도 10에서 설명한 패리티 비트 생성 방법에 따라 생성될 수 있다. 또한, 1302 영역은 도 10에서 설명된 패리티 부분과 동일하므로, 1302 영역에 상응하는 패리티 비트를 생성하기 위하여 도 10에서 설명한 패리티 비트 생성 방법을 사용할 수 있다. 13A is a diagram illustrating a parity portion of a model matrix according to the present embodiment. Region 1301 of FIG. 13A is the same as the parity portion described in FIG. 10. That is, when parity bits are generated using the parity portion of FIG. 13A, parity bits corresponding to the region 1301 may be generated according to the parity bit generation method described with reference to FIG. 10. In addition, since the region 1302 is the same as the parity portion described with reference to FIG. 10, the parity bit generation method described with reference to FIG. 10 may be used to generate a parity bit corresponding to the region 1302.

상술한 바와 같이, 제1 스케쥴러는 이중 대각 성분의 구조에 따라 데이터 처리를 수행한다. 보다 구체적으로 대각 성분과 대각 성분의 하부에 위치하는 성분 간의 쉬프트 수(shift number) 차이에 따라 쉬프트 동작을 수행한다. 1303 영역에서는 대각 성분과 대각 성분의 아래에 위치하는 성분이 모두 '0'이므로 상기 제1 스케쥴러는 데이터 처리를 수행하지 않는다. 상술한 바와 같이, 제2 스케쥴러는 이중 대각 성분의 구조에 따라 데이터 처리를 수행한다. 보다 구체적으로 대각 성분 의 쉬프트 수(shift number)에 따라 쉬프트 동작을 수행한다. 1303 영역에서는 대각 성분이 모두 0으로 단위 행렬에 상응하는 성분을 갖기 때문에 상기 제2 스케쥴러는 데이터 처리를 수행하지 않는다. As described above, the first scheduler performs data processing according to the structure of the double diagonal component. More specifically, the shift operation is performed according to the shift number difference between the diagonal component and the component positioned below the diagonal component. In area 1303, since the diagonal component and the component positioned below the diagonal component are both '0', the first scheduler does not perform data processing. As described above, the second scheduler performs data processing according to the structure of the double diagonal component. More specifically, the shift operation is performed according to the shift number of the diagonal component. In the 1303 region, the second scheduler does not perform data processing because all diagonal components have a component corresponding to the unit matrix.

즉, 도 13a의 모델 행렬에 따라 부호화를 수행하는 경우, 상기 제1 및 제2 스케줄러는 특별한 데이터 처리를 수행하지 않는다. 이 경우, 상기 제1 및 제2 스케줄러를 제외한 부호화 장치를 사용할 수 있다. That is, when encoding is performed according to the model matrix of FIG. 13A, the first and second schedulers do not perform special data processing. In this case, an encoding apparatus except for the first and second schedulers may be used.

도 13b는 본 실시예에 따른 모델 행렬의 패리티 부분을 나타낸 도면이다. 도 13b의 1311 영역은 도 10에서 설명된 패리티 부분과 동일하다. 즉, 도 13b의 패리티 부분을 사용하여 패리티 비트를 생성하는 경우, 1311 영역에 상응하는 패리티 비트는 도 10에서 설명한 패리티 비트 생성 방법에 따라 생성될 수 있다. 한편, 1312 영역은 도 11에서 설명된 패리티 부분과 동일하다. 따라서, 1312 영역에 상응하는 패리티 비트를 생성하기 위하여 도 11에서 설명한 패리티 비트 생성 방법을 사용할 수 있다. 13B is a diagram illustrating a parity portion of a model matrix according to the present embodiment. Region 1311 of FIG. 13B is the same as the parity portion described in FIG. 10. That is, when parity bits are generated using the parity portion of FIG. 13B, parity bits corresponding to the 1311 region may be generated according to the parity bit generation method described with reference to FIG. 10. On the other hand, the 1312 region is the same as the parity portion described in FIG. Accordingly, the parity bit generation method described with reference to FIG. 11 may be used to generate parity bits corresponding to the 1312 region.

상술한 바와 같이, 제1 스케쥴러는 이중 대각 성분의 구조에 따라 데이터 처리를 수행한다. 보다 구체적으로 대각 성분과 대각 성분의 하부에 위치하는 성분 간의 쉬프트 수(shift number) 차이에 따라 쉬프트 동작을 수행한다. 1312 영역에서는 대각 성분은 '0이고 대각 성분의 아래에 위치하는 성분은 '1'이므로 상기 제1 스케쥴러는 1 만큼의 쉬프트 연산을 수행한다. 상술한 바와 같이, 제2 스케쥴러는 이중 대각 성분의 구조에 따라 데이터 처리를 수행한다. 보다 구체적으로 대각 성분의 쉬프트 수(shift number)에 따라 쉬프트 동작을 수행한다. 1312 영역에서는 대각 성분이 모두 0으로 단위 행렬에 상응하는 성분을 갖기 때문에 상기 제2 스케쥴러는 데이터 처리를 수행하지 않는다. 도 13b의 1313 영역도 1312 영역과 동일한 형태를 갖기 때문에, 상기 제1 스케쥴러만이 데이터 처리를 수행한다. As described above, the first scheduler performs data processing according to the structure of the double diagonal component. More specifically, the shift operation is performed according to the shift number difference between the diagonal component and the component positioned below the diagonal component. In area 1312, since the diagonal component is '0' and the component positioned below the diagonal component is '1', the first scheduler performs a shift operation by one. As described above, the second scheduler performs data processing according to the structure of the double diagonal component. More specifically, the shift operation is performed according to the shift number of the diagonal component. In the 1312 region, since the diagonal components all have a component corresponding to the unit matrix with 0, the second scheduler does not perform data processing. Since region 1313 of FIG. 13B also has the same form as region 1312, only the first scheduler performs data processing.

결론적으로, 도 13b의 모델 행렬에 따라 부호화를 수행하는 경우, 대각 성분이 모두 0이므로, 상기 제2 스케줄러는 데이터 처리를 수행하지 않는다. 이 경우, 상기 제2 스케줄러를 제외한 부호화 장치를 사용할 수 있다. In conclusion, when encoding is performed according to the model matrix of FIG. 13B, since the diagonal components are all zero, the second scheduler does not perform data processing. In this case, an encoding apparatus other than the second scheduler may be used.

도 13c는 본 실시예에 따른 모델 행렬의 패리티 부분을 나타낸 도면이다. 도 13c의 1321 영역은 도 10에서 설명된 패리티 부분과 동일하다. 즉, 도 13b의 패리티 부분을 사용하여 패리티 비트를 생성하는 경우, 1321 영역에 상응하는 패리티 비트는 도 10에서 설명한 패리티 비트 생성 방법에 따라 생성될 수 있다. 한편, 1322 영역은 도 12에서 설명된 패리티 부분과 동일하다. 따라서, 1322 영역에 상응하는 패리티 비트를 생성하기 위하여 도 12에서 설명한 패리티 비트 생성 방법을 사용할 수 있다. 13C is a diagram illustrating a parity portion of a model matrix according to the present embodiment. Region 1321 of FIG. 13C is the same as the parity portion described in FIG. 10. That is, when parity bits are generated using the parity portion of FIG. 13B, parity bits corresponding to the region 1321 may be generated according to the parity bit generation method described with reference to FIG. 10. Meanwhile, the region 1322 is the same as the parity portion described with reference to FIG. 12. Accordingly, the parity bit generation method described with reference to FIG. 12 may be used to generate parity bits corresponding to the region 1322.

1323 영역에 상응하는 패리티 비트를 생성하는 경우, 1323 영역은

Figure 112006028087667-PAT00035
의 구조를 갖기 때문에, 제1 스케쥴러가 데이터 처리를 수행한다. 즉, 첫 번째 대각 성분 '1'과 첫 번째 대각 성분 아래에 위치한 성분 '0'간에 -1 만큼의 쉬프트 수가 차이가 나기 때문에, 상기 제1 스케쥴러는 차이 나는 쉬프트 수에 상응하는 쉬프트 연산을 수행한다. 또한, 두 번째 대각 성분이 '0'이기 때문에 제2 스케쥴러는 쉬프트 연산을 수행하지 않는다. When generating parity bits corresponding to the 1323 region, the 1323 region is
Figure 112006028087667-PAT00035
Since it has a structure of, the first scheduler performs data processing. That is, since the number of shifts by -1 differs between the first diagonal component '1' and the component '0' located below the first diagonal component, the first scheduler performs a shift operation corresponding to the shift number. . Also, since the second diagonal component is '0', the second scheduler does not perform a shift operation.

1324 영역에 상응하는 패리티 비트를 생성하는 경우, 1324 영역은

Figure 112006028087667-PAT00036
의 구조를 갖기 때문에, 제1 스케쥴러가 데이터 처리를 수행한다. 즉, 첫 번째 대각 성분 '0'과 첫 번째 대각 성분 아래에 위치한 성분 '1'간에 1 만큼의 쉬프트 수가 차이가 나기 때문에, 상기 제1 스케쥴러는 차이 나는 쉬프트 수에 상응하는 쉬프트 연산을 수행한다. 또한, 두 번째 대각 성분이 '1'이기 때문에 제2 스케쥴러는 두 번째 대각 성분에 상응하는 만큼의 쉬프트 연산을 수행한다. When generating a parity bit corresponding to the 1324 region, the 1324 region is
Figure 112006028087667-PAT00036
Since it has a structure of, the first scheduler performs data processing. That is, since the number of shifts of 1 differs between the first diagonal component '0' and the component '1' located below the first diagonal component, the first scheduler performs a shift operation corresponding to the shift number. Also, since the second diagonal component is '1', the second scheduler performs a shift operation corresponding to the second diagonal component.

1325 영역에 상응하는 패리티 비트를 생성하는 경우, 1325 영역은

Figure 112006028087667-PAT00037
의 구조를 갖기 때문에, 제1 스케쥴러가 데이터 처리를 수행한다. 즉, 첫 번째 대각 성분 '1'과 첫 번째 대각 성분 아래에 위치한 성분 '0'간에 -1 만큼의 쉬프트 수가 차이가 나기 때문에, 상기 제1 스케쥴러는 차이 나는 쉬프트 수에 상응하는 쉬프트 연산을 수행한다. 또한, 두 번째 대각 성분이 '0'이기 때문에 제2 스케쥴러는 쉬프트 연산을 수행하지 않는다. When generating a parity bit corresponding to region 1325, region 1325 is
Figure 112006028087667-PAT00037
Since it has a structure of, the first scheduler performs data processing. That is, since the number of shifts by -1 differs between the first diagonal component '1' and the component '0' located below the first diagonal component, the first scheduler performs a shift operation corresponding to the shift number. . Also, since the second diagonal component is '0', the second scheduler does not perform a shift operation.

1326 영역에는 '0'의 이중 대각 성분이 존재하기 때문에, 상기 제1 및 제2 스케쥴러는 데이터 처리를 수행하지 않는다. Since there is a double diagonal component of '0' in the region 1326, the first and second schedulers do not perform data processing.

결론적으로, 도 13c의 모델 행렬에 따라 부호화를 수행하는 경우, 상기 제1 및 제2 스케쥴러는 이중 대각 성분의 구조에 따라 다양한 데이터 처리를 수행한다. In conclusion, when encoding is performed according to the model matrix of FIG. 13C, the first and second schedulers perform various data processing according to the structure of the double diagonal component.

본 발명에 따른 부호화 장치는 다양한 종류의 하위 삼각형 타입의 모델 행렬에 따라 동작할 수 있기 대문에, 본 발명이 도 13a 내지 도 13c의 행렬에 제한되지 않는다. 가령 도 13a 내지 도 13c의 행렬과 달리, 이중 대각 성분 이외의 성분에 '0' 이상의 쉬프트 수를 갖는 하위 삼각형 타입의 모델 행렬에 따라 부호화를 수행할 수 있다. Since the encoding apparatus according to the present invention can operate according to various types of lower triangle type model matrices, the present invention is not limited to the matrices of FIGS. 13A to 13C. For example, unlike the matrices of FIGS. 13A to 13C, encoding may be performed according to a model matrix of a lower triangle type having a shift number equal to or greater than '0' in components other than the double diagonal component.

도 14a 내지 도 14d는 모델 행렬

Figure 112006028087667-PAT00038
을 이용하여 부호화를 수행하는 동작을 설명한다. 우선, 도 14a와 같이, 상기 모델 행렬은 패리티 검사 행렬로 확장된다. 상기 모델 행렬은 이중 대각 성분을 제외한 나머지 성분 중에 0 이상의 쉬프트 수를 갖는 성분(구체적으로 5번째 행과 5번째 영에 위치하는 '+1')을 갖는다. 도 14a에서, a0 내지 a19는 정보어 부분에 따른 정보 비트 정보어 부분에 대한 연산 처리 결과값이다. 14A-14D are model matrices
Figure 112006028087667-PAT00038
The operation of performing encoding by using will be described. First, as shown in FIG. 14A, the model matrix is extended to a parity check matrix. The model matrix has a component having a shift number of 0 or more (specifically, '+1' located in the fifth row and the fifth zero) among the remaining components except the double diagonal component. In FIG. 14A, a 0 to a 19 are arithmetic processing result values for the information bit information word portion according to the information word portion.

상기 모델 행렬에 따라 부호화를 수행하는 경우, 모델 행렬의 1401 영역, 1402 영역, 1403 영역, 1404 영역에 대한 연산을 순차적으로 수행한다. When encoding is performed according to the model matrix, operations on regions 1401, 1402, 1403, and 1404 of the model matrix are sequentially performed.

도 14b는 1401 영역에 대한 패리티 비트를 생성하는 동작을 설명한다. 도 14b의 동작은 상술한 도 13a의 부호화 동작과 동일하다. 도 14b에 도시된 바와 같이, 모델 행렬의 패리티 부분의 구조에 따라 제1 쉬프트 레지스터와 제2 쉬프트 레지스터가 동작하여 패리티 비트 p0, p1, p2, p3을 출력한다. 상술한 바와 같이, 상기 제1 쉬프트 레지스터와 제2 쉬프트 레지스터가 동작할 필요가 없는 경우, 상기 부호화 장치에서 상기 쉬프트 레지스터들을 생략할 수 있다. 14B illustrates an operation of generating parity bits for an area 1401. The operation of FIG. 14B is the same as the encoding operation of FIG. 13A described above. As shown in FIG. 14B, the first shift register and the second shift register operate according to the structure of the parity portion of the model matrix to output parity bits p 0 , p 1 , p 2 , and p 3 . As described above, when the first shift register and the second shift register do not need to operate, the shift registers may be omitted in the encoding apparatus.

도 14b의 부호화 장치는, 쉬프트 데이터 처리부(Shift data processor)(1400)를 추가적으로 구비하는 것이 바람직하다. 상기 쉬프트 데이터 처리부(1400)는, 특정한 모델 행렬이 이중 대각 성분 이외의 위치에 '0' 이상의 쉬프트 수를 갖는 경우, 이미 생성된 패리티 비트를 획득하여 데이터 처리를 수행한다. 도 14a의 모델행렬은 1405 영역에 '1' 성분을 갖기 때문에, 1404 영역에 대한 연산을 수행하는 경우에 1405 영역에 대한 연산을 함께 수행하여야 한다. 따라서, 1404 영역을 제외한 영역에서는 상기 쉬프트 데이터 처리부(1400)는 데이터 처리를 수행하지 않고 입력을 바로 출력한다. The encoding apparatus of FIG. 14B preferably further includes a shift data processor 1400. When the specific model matrix has a shift number equal to or greater than '0' at a position other than the double diagonal component, the shift data processor 1400 performs data processing by acquiring already generated parity bits. Since the model matrix of FIG. 14A has a '1' component in the area 1405, when the operation on the area 1404 is performed, the operation on the area 1405 must be performed together. Accordingly, the shift data processor 1400 directly outputs an input without performing data processing in an area except the 1404 area.

도 14c는 1401 영역에 대한 패리티 비트를 생성하는 동작을 설명한다. 도 14c의 동작은 상술한 도 13a의 부호화 동작과 동일하다. 도 14c에 도시된 바와 같이, 모델 행렬의 패리티 부분의 구조에 따라 제1 쉬프트 레지스터와 제2 쉬프트 레지스터가 동작하여 패리티 비트 p4, p5, p6, p7을 출력한다. 상술한 바와 같이, 상기 제1 쉬프트 레지스터와 제2 쉬프트 레지스터가 동작할 필요가 없는 경우, 상기 부호화 장치에서 상기 쉬프트 레지스터들을 생략할 수 있다. 14C illustrates an operation of generating parity bits for an area 1401. The operation of FIG. 14C is the same as the encoding operation of FIG. 13A described above. As shown in FIG. 14C, the first shift register and the second shift register operate according to the structure of the parity portion of the model matrix to output parity bits p 4 , p 5 , p 6 , and p 7 . As described above, when the first shift register and the second shift register do not need to operate, the shift registers may be omitted in the encoding apparatus.

상술한 바와 같이, 1401 영역에 대한 연산을 수행하는 경우, 상기 쉬프트 데이터 처리부(1400)는 데이터 처리를 수행하지 않고 입력을 바로 출력한다. As described above, when performing an operation on an area 1401, the shift data processor 1400 directly outputs an input without performing data processing.

도 14b 내지 도 14c의 동작을 반복 수행하면, p8 내지 p15의 패리티 비트를 산출할 수 있다. 다만, p16 내지 p19의 패리티 비트를 산출하기 위해서는 상기 1405 영역에 의한 추가적인 데이터 처리가 필요하다. 도 14d를 통해, 상기 p16 내지 p19의 패리티 비트를 산출하는 동작을 설명한다. By repeating the operations of FIGS. 14B to 14C, parity bits of p 8 to p 15 may be calculated. However, in order to calculate parity bits of p 16 to p 19 , additional data processing by the 1405 region is required. An operation of calculating the parity bits of p 16 to p 19 will be described with reference to FIG. 14D.

상기 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 쉬프트 레지스터는 별도의 동작을 하지 않기 때문에, 상기 출력 값은 패리티 비트로 출력된다. In order to calculate the parity bits of p 16 to p 19 , data processing according to the indicator line 1411 and the indicator line 1412 of FIG. 14A is required. That is, to generate p 16 , the operations on a 16 , p 1, and p 12 must be performed. In addition, to generate p 18 , operations on a 18 and p 3 and p 14 must be performed. As a result, in order to calculate the parity bits of p 16 to p 19 , not only a 16 to a 19 outputted from the arithmetic processing unit 910 for the p 12 to p 15 and the information word portion already stored in the memory are already calculated. The value of completed p 0 to p 3 is required. After the shift data processor 1400 acquires the parity bits p 0 , p 1 , p 2 , and p 3 that have already been calculated according to the structure of the model matrix, the shift data processor 1400 performs data according to the shift number '1' in the region 1405 of FIG. 14A. Adjust the order to p 1 , p 2 , p 3 , p 0 . The shift data processor 1400 outputs a 16 + p 12 , a 17 + p 13 , a 18 + p 14 , a 19 + p 15, and the adjusted data p 1 , p 2 of the summing module 920. , p 3 , p 0 are added together and output. Since the second shift register does not operate separately due to the structure of the parity check matrix, the output value is output as a parity bit.

본 실시예에 따른 부호화 장치는, 모델 행렬의 구조에 따라 다양한 장치를 구비할 수 있다. 즉, 모델 행렬의 이중 대각 성분의 성분이 단위 행렬을 기준으로 쉬프트 되었는지 여부에 따라 적어도 하나의 데이터 스케쥴러를 포함할 수 있다. 또한, 이중 대각 성분 이외의 성분에 무게(weight)가 존재하는 경우에는 이미 처리된 패리티 비트에 대한 데이터 처리를 수행하여 새로운 패리티 비트를 산출하는 데이터 처리부를 추가적으로 포함할 수 있다. The encoding device according to the present embodiment may include various devices according to the structure of the model matrix. That is, at least one data scheduler may be included depending on whether a component of the double diagonal component of the model matrix is shifted based on the unit matrix. In addition, when weight is present in components other than the double diagonal component, the apparatus may further include a data processor configured to calculate a new parity bit by performing data processing on the already processed parity bit.

결론적으로, 본 발명에 따른 부호화 장치에 포함되는 모듈에 따라 이중 대각 성분 이외의 위치에 다양한 쉬프트 수를 갖는 모델 행렬에 대해서도 부호화를 수행할 수 있다. In conclusion, according to a module included in the encoding apparatus according to the present invention, encoding may be performed on a model matrix having various shift numbers at positions other than the double diagonal component.

본 실시예에 따른 부호화 장치의 제1, 제2 쉬프트 레지스터, 메모리, 합산 모듈, 쉬프트 데이터 처리부는 상술한 바와 같은 동작을 수행할 수 있다. 상술한 제1 쉬프트레지스터, 제2 쉬프트레지스터, 합산 모듈, 쉬프트 데이터 처리부는 다양한 하드웨어 또는 소프트웨어에 의해 구현될 수 있다.The first and second shift registers, the memory, the summation module, and the shift data processing unit of the encoding apparatus according to the present embodiment may perform the operations described above. The first shift register, the second shift register, the summation module, and the shift data processor may be implemented by various hardware or software.

본 실시예에 따른 부호화 장치는 모델 행렬의 구조에 따라 동작을 수행하여, 상기 모델 행렬을 이루는 서브 블록의 크기에 따라 복수의 데이터 비트를 처리하는바, 종래 기술에 비해 향상된 성능을 보인다. The encoding apparatus according to the present exemplary embodiment performs an operation according to a structure of a model matrix and processes a plurality of data bits according to the size of a subblock constituting the model matrix, which shows an improved performance compared to the prior art.

이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정해져야 할 것이다. Those skilled in the art through the above description can be seen that various changes and modifications can be made without departing from the spirit of the present invention. Therefore, the technical scope of the present invention should not be limited to the contents described in the detailed description of the specification but should be defined by the claims.

이하, 본 발명에 따른 효과를 설명한다. Hereinafter, the effect of the present invention will be described.

본 발명에 따른 부호화 장치는 단순한 누산기를 이용하여 빠른 속도로 패리 티 비트를 생성하는 유리한 효과가 있다. 또한, 하위 삼각형 타입의 행렬을 이용하여 부호화를 수행하는 경우 부가적인 연산 없이 한번의 블록 연산으로 다수 개의 패리티 비트를 계산하는 유리한 효과가 있다.The encoding apparatus according to the present invention has an advantageous effect of generating parity bits at high speed using a simple accumulator. In addition, when encoding is performed using a lower triangle type matrix, there is an advantageous effect of calculating a plurality of parity bits in one block operation without additional operations.

Claims (15)

정보 비트를 패리티 검사 행렬을 이용하여 부호화하는 방법에 있어서,In the method for encoding information bits using a parity check matrix, 상기 패리티 검사 행렬의 정보어 부분 중 제1 영역의 구조에 의해 결정된 제1 정보 비트들에 대한 복수 개의 제1 패리티 비트들을 산출하는 단계; 및Calculating a plurality of first parity bits for first information bits determined by a structure of a first region of an information word portion of the parity check matrix; And 상기 정보어 부분 중 제2 영역의 구조에 의해 결정된 제2 정보 비트들과 상기 제1 패리티 비트들을 누산하여 복수 개의 제2 패리티 비트들을 산출하는 단계;Calculating a plurality of second parity bits by accumulating second information bits and the first parity bits determined by a structure of a second region of the information word portion; 를 포함하여 이루어지는 패리티 검사 행렬을 이용하여 부호화하는 방법.Method of encoding using a parity check matrix comprising a. 제1항에 있어서, The method of claim 1, 상기 제1 패리티 비트들의 개수는, 상기 제2 패리티 비트들의 개수와 동일한 것을 The number of the first parity bits is equal to the number of the second parity bits. 특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.A method of encoding using a parity check matrix characterized in that. 제1항에 있어서, The method of claim 1, 상기 패리티 검사 행렬은, 특정한 크기의 서브 블록들로 이루어진 모델 행렬로부터 확장되어 생성되는 것을 The parity check matrix is generated by extending from a model matrix consisting of subblocks of a specific size. 특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.A method of encoding using a parity check matrix characterized in that. 제3항에 있어서, The method of claim 3, 상기 제1 패리티 비트들의 개수는, 상기 서브 블록의 크기와 동일한 것을 The number of the first parity bits is equal to the size of the sub block. 특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.A method of encoding using a parity check matrix characterized in that. 제3항에 있어서, 상기 제1 패리티 비트들을 산출하는 단계는, The method of claim 3, wherein calculating the first parity bits comprises: 상기 모델 행렬의 이중 대각 성분에 따라 상기 제1 정보비트들의 순서를 조정하여 상기 제1 패리티 비트들을 산출하는 것을 특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.And adjusting the order of the first information bits according to a double diagonal component of the model matrix to calculate the first parity bits. 제3항에 있어서, 상기 제2 패리티 비트들을 산출하는 단계는, The method of claim 3, wherein the calculating of the second parity bits comprises: 상기 모델 행렬의 이중 대각 성분에 따라 상기 제1 패리티 비트들의 순서와 상기 제2 정보 비트들의 순서를 조정하여 상기 제2 패리티 비트들을 산출하는 것을 특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.And adjusting the order of the first parity bits and the order of the second information bits according to the double diagonal component of the model matrix to calculate the second parity bits. 제1항에 있어서, The method of claim 1, 상기 제1 정보 비트들은, 상기 제1 영역에서 무게(weight)를 갖는 성분에 상응하는 정보비트들인 것을 특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.And the first information bits are information bits corresponding to a component having a weight in the first region. 제1항에 있어서, The method of claim 1, 상기 제2 정보 비트들은, 상기 제2 영역에서 무게(weight)를 갖는 성분에 상 응하는 정보비트들인 것을 특징으로 하는 패리티 검사 행렬을 이용하여 부호화하는 방법.And the second information bits are information bits corresponding to a component having a weight in the second region. 서브 블록들로 이루어진 모델 행렬로부터 생성된 패리티 검사 행렬을 이용하여 부호화를 수행하는 장치에 있어서, An apparatus for performing encoding using a parity check matrix generated from a model matrix consisting of subblocks, 상기 패리티 검사 행렬의 정보어 부분의 구조에 따라 정보 비트에 대한 연산을 수행하여 복수 개의 연산 값을 출력하는 정보어 부분 연산부; 및An information word partial operation unit configured to output a plurality of operation values by performing an operation on information bits according to a structure of the information word portion of the parity check matrix; And 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 출력에 대한 데이터 처리를 수행하고,Perform data processing on the output according to the structure of the parity portion of the parity check matrix, 상기 데이터 처리가 수행된 결과를 누산하여 복수 개의 패리티 비트를 생성하는 패리티 비트 산출부A parity bit calculator configured to accumulate a result of the data processing to generate a plurality of parity bits 를 포함하여 이루어지는 LDPC 부호화 장치.LDPC encoding apparatus comprising a. 제9항에 있어서, The method of claim 9, 상기 정보어 부분 연산부의 출력은, The output of the information word portion calculating unit, 상기 정보어 부분의 무게(weight)에 상응하는 정보 비트들의 합산 값인 것을 특징으로 하는 LDPC 부호화 장치.LDPC encoding apparatus characterized in that the sum of the information bits corresponding to the weight (weight) of the information word portion. 제9항에 있어서, The method of claim 9, 상기 패리티 비트 산출부는, The parity bit calculator, 상기 정보어 부분 연산부의 출력을 저장하는 메모리; 및A memory for storing an output of the information word partial calculator; And 상기 정보어 부분 연산부의 출력과 상기 메모리의 출력을 합산하여 패리티 비트를 출력하는 합산 모듈An adder module configured to add an output of the information word partial calculator and an output of the memory to output a parity bit; 을 포함하는 것을 특징으로 하는 LDPC 부호화 장치.LDPC encoding apparatus comprising a. 제9항에 있어서, The method of claim 9, 상기 패리티 비트 산출부는,The parity bit calculator, 상기 정보어 부분 연산부의 출력을 저장하는 메모리;A memory for storing an output of the information word partial calculator; 상기 패리티 부분의 구조에 따라 상기 메모리의 출력에 대한 쉬프트 연산을 수행하는 제1 쉬프트 레지스터(shift register);A first shift register configured to perform a shift operation on the output of the memory according to the structure of the parity portion; 상기 정보어 부분 연산부의 출력과 상기 제1 쉬프트 레지스터의 출력을 합산하는 합산 모듈; 및A summing module for summing an output of the information word partial calculator and an output of the first shift register; And 상기 패리티 부분의 구조에 따라 상기 합산 모듈의 출력에 대한 쉬프트 연산을 수행하는 제2 쉬프트 레지스터A second shift register configured to perform a shift operation on an output of the summing module according to the structure of the parity part 를 포함하는 것을 특징으로 하는 LDPC 부호화 장치.LDPC encoding apparatus comprising a. 패리티 검사 행렬에 따라 부호화를 수행하는 경우 사용되는 데이터를 처리하는 데이터 처리 장치에 있어서, A data processing apparatus for processing data used when encoding is performed according to a parity check matrix, 상기 패리티 검사 행렬의 구조에 따라 정보 비트들을 합산한 복수 개의 연산 값 또는 상기 정보 비트들과 패리티 비트들을 합산한 복수개의 연산 값을 입력 받 고, Receiving a plurality of operation values obtained by adding information bits or a plurality of operation values obtained by adding the information bits and parity bits according to the structure of the parity check matrix, 상기 패리티 검사 행렬의 패리티 부분의 구조에 따라 상기 연산 값들에 대한 데이터 처리를 수행하는 것을 특징으로 하는 데이터 스케쥴러.And perform data processing on the operation values according to a structure of a parity portion of the parity check matrix. 제13항에 있어서, The method of claim 13, 상기 패리티 검사 행렬은, 특정한 모델 행렬로부터 확장되어 생성된 것을 특징으로 하고, The parity check matrix is characterized in that it is generated by extending from a specific model matrix, 상기 연산 값들에 대한 데이터 처리는, 상기 모델 행렬의 이중 대각 성분의 쉬프트 수(shift number)들 간의 차이에 의한 쉬프트 연산(shift operation)에 의하는 것을 The data processing for the operation values is due to a shift operation by a difference between shift numbers of the double diagonal components of the model matrix. 특징으로 하는 데이터 스케쥴러.Features a data scheduler. 제13항에 있어서, The method of claim 13, 상기 패리티 검사 행렬은, 특정한 모델 행렬로부터 확장되어 생성된 것을 특징으로 하고, The parity check matrix is characterized in that it is generated by extending from a specific model matrix, 상기 연산 값들에 대한 데이터 처리는, 상기 모델 행렬의 대각 성분의 쉬프트 수(shift number)에 의한 쉬프트 연산에 의하는 것을 The data processing for the calculation values is based on a shift operation by the shift number of the diagonal component of the model matrix. 특징으로 하는 데이터 스케쥴러.Features a data scheduler.
KR1020060036351A 2006-04-21 2006-04-21 LDPC encoder KR101221897B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060036351A KR101221897B1 (en) 2006-04-21 2006-04-21 LDPC encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060036351A KR101221897B1 (en) 2006-04-21 2006-04-21 LDPC encoder

Publications (2)

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

Family

ID=38818314

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060036351A KR101221897B1 (en) 2006-04-21 2006-04-21 LDPC encoder

Country Status (1)

Country Link
KR (1) KR101221897B1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895547B2 (en) * 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
KR100525324B1 (en) * 2003-06-10 2005-11-02 학교법인 한국정보통신학원 System and Method of Construction Regular Low-Density Parity Check Codes
KR100550101B1 (en) * 2003-12-22 2006-02-08 한국전자통신연구원 An apparatus for encoding and decoding of Low-Density Parity-Check Codes, and methods thereof
KR100981503B1 (en) * 2004-02-13 2010-09-10 삼성전자주식회사 Apparatus and method for encoding/decoding low density parity check code with maximum error correction/error detection capacity

Also Published As

Publication number Publication date
KR101221897B1 (en) 2013-01-15

Similar Documents

Publication Publication Date Title
KR101455978B1 (en) Method for encoding data using a Low Density Parity Check code
KR101191196B1 (en) Method of encoding and decoding using a parity check matrix
KR101119111B1 (en) Method of data reretransmission using Low Density Parity Check Code
JP5247355B2 (en) Transmitter
US20060036926A1 (en) Simplified LDPC encoding for digital communications
JP4808722B2 (en) Data transmission system and data transmission method
EP2050195B1 (en) Method of encoding/decoding using low density check code matrix
WO2007091797A2 (en) Method of matching codeword size and transmitter therefor in mobile communications system
JP5679059B2 (en) Wireless transmission / reception apparatus, communication system, and channel coding processing method used therefor
KR101253184B1 (en) Method of puncturing data encoded by Low Density Parity Check model matrix
KR101128804B1 (en) Method of LDPC encoding and LDPC decoding using a reference matrix
KR101276845B1 (en) Method of Low Density Parity Check Code decoding using a plurality of layers
KR101265636B1 (en) method of performing a Low-density parity-check codes decoding using a model matrix
KR101221897B1 (en) LDPC encoder
KR101187070B1 (en) Method for encoding using parity check matrix
KR101227514B1 (en) Method for configuring a model matrix for Low Density Parity Check encoding and decoding
WO2008117994A1 (en) Method of encoding data using a low density parity check code
KR100950637B1 (en) Method for generation of codeword using repetition
KR101187072B1 (en) Method for encoding using parity check matrix
KR20070022569A (en) apparatuses for transmitting and receiving LDPC coded data and a method for modulating and demodulating LDPC coded data using LDPC Code
KR101503655B1 (en) Apparatus and method for channel encoding and decoding in communication system using low-density parity-check codes
KR101411720B1 (en) Method and apparatus for decoding system consisting of multiple decoders corresponding to variations of a single parity check matrix
KR20180108046A (en) Apparatus and method of encoding and decoding of short length block codes in wireless communication system
KR101279283B1 (en) Apparatus and method for transmitting/receiving signal in a communication system using a block code
KR20230107872A (en) Data decoding method and apparatus in communication or broadcasting system

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