KR100678521B1 - Apparatus and method for coding of irregular low density parity check code - Google Patents

Apparatus and method for coding of irregular low density parity check code Download PDF

Info

Publication number
KR100678521B1
KR100678521B1 KR1020040109020A KR20040109020A KR100678521B1 KR 100678521 B1 KR100678521 B1 KR 100678521B1 KR 1020040109020 A KR1020040109020 A KR 1020040109020A KR 20040109020 A KR20040109020 A KR 20040109020A KR 100678521 B1 KR100678521 B1 KR 100678521B1
Authority
KR
South Korea
Prior art keywords
vector
matrix
parity check
low density
generated
Prior art date
Application number
KR1020040109020A
Other languages
Korean (ko)
Other versions
KR20060070323A (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 KR1020040109020A priority Critical patent/KR100678521B1/en
Publication of KR20060070323A publication Critical patent/KR20060070323A/en
Application granted granted Critical
Publication of KR100678521B1 publication Critical patent/KR100678521B1/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/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • 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
    • 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

본 발명은 비균일 저밀도 패리티 검사 부호의 부호화 장치 및 방법에 관한 것으로, 상세하게는 부호화 처리 지연 시간을 줄이기 위해 각 행렬의 원소가 순환 행렬로 정의되는 비이진 값을 가지며, 하위 삼각형 행렬을 포함하는 6개의 부분 행렬로 구성되는 패리티 검사 행렬을 사용하는 비균일 저밀도 패리티 검사 부호의 부호화 장치 및 방법에 관한 것이다. The present invention relates to an apparatus and method for encoding a non-uniform low density parity check code. Specifically, in order to reduce encoding processing delay time, an element of each matrix has a non-binary value defined as a cyclic matrix, and includes a lower triangular matrix. An apparatus and method for encoding a non-uniform low density parity check code using a parity check matrix composed of six partial matrices.

본 발명에 따른 비균일 저밀도 패리티 검사 부호의 부호화 방법에 따르면, 패리티 검사 행렬을 각 행렬의 원소가 순환 행렬로 정의되는 비이진 값을 가지는 복수의 부분 행렬로 구성하고 정보 비트들을 벡터 단위로 병렬화하여 입력 벡터를 생성한다. 그런 다음에 상기 복수의 부분 행렬에 기초하여 생성된 복수의 중간 벡터로부터 첫 번째 패리티 벡터를 생성하고 생성된 첫 번째 패리티 벡터와 상기 생성된 복수의 중간 벡터에 기초하여 두 번째 패리티 벡터를 생성하여 부호화한다. 이 때, 시분할 공유 구조에 의해 입력 값에 따라 상기 첫 번째 패리티 벡터를 얻기 위한 중간 벡터 중 어느 하나가 생성되거나 두 번째 패리티 벡터가 생성된다.According to the method of encoding a non-uniform low density parity check code according to the present invention, a parity check matrix is composed of a plurality of partial matrices having non-binary values in which elements of each matrix are defined as cyclic matrices, and the information bits are parallelized in vector units. Create an input vector. Then, a first parity vector is generated from a plurality of intermediate vectors generated based on the plurality of partial matrices, and a second parity vector is generated based on the generated first parity vector and the generated plurality of intermediate vectors. do. At this time, one of the intermediate vectors for obtaining the first parity vector or the second parity vector is generated according to the input value by the time division sharing structure.

오류정정부호, LDPC, 비균일, 비이진, 벡터, 순환행렬, 패리티검사행렬Error Correction Code, LDPC, Non-Uniform, Non-Binary, Vector, Recursive Matrix, Parity Check Matrix

Description

비균일 저밀도 패리티 검사 부호의 부호화 장치 및 방법{APPARATUS AND METHOD FOR CODING OF IRREGULAR LOW DENSITY PARITY CHECK CODE}Non-uniform low density parity check code encoding apparatus and method {APPARATUS AND METHOD FOR CODING OF IRREGULAR LOW DENSITY PARITY CHECK CODE}

도 1은 본 발명이 적용되는 패리티 검사 행렬의 근사 하위 삼각형 행렬을 나타낸 도면이다.1 is a diagram showing an approximate lower triangular matrix of a parity check matrix to which the present invention is applied.

도 2는 4×4 단위 부분 행렬로 구성한 비이진 저밀도 패리티 검사 행렬 H를 나타낸 도면이다.FIG. 2 is a diagram illustrating a non-binary low density parity check matrix H formed of a 4x4 unit partial matrix.

도 3은 본 발명의 실시 예에 따른 비균일 저밀도 패리티 부호의 부호화 장치의 구성을 나타낸 도면이다.3 is a diagram illustrating a configuration of an encoding apparatus of a non-uniform low density parity code according to an embodiment of the present invention.

도 4는 본 발명의 실시 예에 따른 비균일 저밀도 패리티 부호의 부호화 장치의 패리티 검사 행렬 메모리 구성을 나타낸 도면이다.4 is a diagram illustrating a parity check matrix memory configuration of an encoding apparatus of a non-uniform low density parity code according to an embodiment of the present invention.

도 5는 본 발명의 실시 예에 따른 비균일 저밀도 패리티 부호의 부호화 장치의 동작 타이밍을 나타낸 도면이다.5 is a diagram illustrating an operation timing of an encoding apparatus of a non-uniform low density parity code according to an embodiment of the present invention.

본 발명은 저밀도 패리티 검사 부호(Low Density Parity Check Codes, 이하 ‘LDPC’라 함)의 부호화 장치 및 방법에 관한 것으로, 특히 각 행과 열이 ‘0’이 아닌 원소의 개수가 일정하지 않은 비균일 LDPC 부호화 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for encoding low density parity check codes (hereinafter referred to as 'LDPC'). In particular, each row and column has a non-uniform number in which the number of elements other than '0' is not constant. LDPC encoding apparatus and method.

최근 무선 통신 시스템에서 광대역 멀티미디어 서비스 등에 대한 요구가 증대되면서, 고 효율의 고속 데이터의 전송 기술에 대한 연구 및 개발이 매우 활발하게 진행되고 있다. Recently, as the demand for broadband multimedia services is increased in a wireless communication system, research and development on high-efficiency high-speed data transmission technology have been actively conducted.

LDPC 부호화 방식은 고속의 광대역 데이터가 무선 채널을 통과하여 전송될 때 발생되는 신호의 왜곡에 따른 전송 데이터 오류를 효과적으로 정정하여, 데이터 전송 효율을 높이는 기술로서, 4세대 이동통신 시스템 및 위성통신 시스템, 고속 무선 LAN 등에서 연구 및 개발되고 있다.The LDPC coding method is a technique for improving data transmission efficiency by effectively correcting transmission data error caused by signal distortion generated when high-speed broadband data is transmitted through a wireless channel. The fourth generation mobile communication system and satellite communication system, It is being researched and developed in high speed wireless LAN.

LDPC 부호화 방식은 정보 비트들을 전송하기 전에 부호화를 위한 행렬을 사용하여 부호화하는 블록 부호화의 일종으로, 패리티 검사행렬의 원소들의 대부분이 0인 선형블록부호로서, 블록 부호화를 수행할 때 사용되는 행렬에 “1”의 원소가 매우 작은 즉, 대부분의 원소가 “0”의 값을 가지는 부호화 행렬을 사용하는 방식이다. The LDPC coding scheme is a block coding scheme that encodes using a matrix for encoding before transmitting information bits. The LDPC coding scheme is a linear block code in which most elements of a parity check matrix are zero. The element of "1" is very small, that is, most of the elements use a coding matrix having a value of "0".

이러한 LDPC 부호의 패리티 검사행렬은 1의 개수가 매우 적기 때문에 매우 큰 블록크기에서도 합곱 알고리즘(Sum-Product Algorithm)을 이용한 반복 복호가 가능하며 블록크기가 매우 커지면 터보 부호처럼 Shannon의 채널용량 한계에 근접하는 성능을 보인다. 특히 비균일 LDPC부호가 Shannon 한계에 가장 근접한 성능을 보인다. 현재 길이 107에서 Shannon 한계에 0.0045dB 이내로 접근하는 비균일 LDPC 부호가 존재한다. LDPC 부호는 터보 부호와 비교하여 큰 크기의 블록에서 성능이 우수하고, 오류마루(Error Floor)가 없으며, 복호 복잡도가 낮으며 병렬처리로 고속 복호가 가능하다.Since the parity check matrix of LDPC codes is very small, it is possible to iterative decoding using sum-product algorithm even in very large block sizes. If the block size is very large, it is close to Shannon's channel capacity limit like turbo code. To show performance. In particular, the non-uniform LDPC code shows the closest performance to Shannon limit. There is a non-uniform LDPC code presently approaching the Shannon limit within 0.0045 dB of length 107. The LDPC code has better performance in a larger block than the turbo code, no error floor, low decoding complexity, and high speed decoding by parallel processing.

이와 같이 LDPC 부호화 방식은 아주 적은(sparse) 양의 “1”의 값을 가지는 행(row)과 열(column)로 구성되고 행렬의 크기가 매우 큰 비-희소 행렬로 구성된 패리티 검사 행렬 H를 사용한다.In this way, the LDPC coding scheme uses a parity check matrix, H, which is composed of rows and columns with a very small amount of “1” and a very sparse matrix. do.

이와 같은 LDPC의 기본 개념은 D.J. MacKay, “Good error-correction codes based on very sparse matrices,” IEEE Trans. On Information Theory, vol.45, no 2, pp. 399-431, 1999에 개시되어 있으며 부호화 방법에 대한 기술은 T. Richardson, R. Urbanke, “Efficient encoding of low density parity check codes,” IEEE Trans. On Information theory, vol 47, no.2, pp. 638-656, 2001에 개시되어 있다.The basic concept of such LDPC is D.J. MacKay, “Good error-correction codes based on very sparse matrices,” IEEE Trans. On Information Theory, vol. 45, no 2, pp. 399-431, 1999 and a description of the encoding method is described in T. Richardson, R. Urbanke, “Efficient encoding of low density parity check codes,” IEEE Trans. On Information theory, vol 47, no. 2, pp. 638-656, 2001.

한편, 무선 통신 시스템에서 사용되는 오류 정정 부호의 경우, 무선 채널 환경에 따라 다양한 데이터 전송 속도를 지원할 수 있도록 여러 가지 부호화율을 지원한다. 저밀도 패리티 검사 부호의 경우, 여러 가지 부호화율을 지원하는 방법으로 펑쳐링(puncturing)을 사용하는 방법과 부호화율 별로 서로 다른 패리티 검사 행렬을 사용하는 방법이 있다. Meanwhile, in the case of an error correction code used in a wireless communication system, various coding rates are supported to support various data rates according to a wireless channel environment. In the case of the low density parity check code, there are a method of using puncturing as a method of supporting various code rates and a method of using different parity check matrices for each code rate.

부호화율 별로 성능이 최적화된 서로 다른 패리티 검사 행렬을 사용하는 경우, 특히 각 행과 열 별로 ‘0’이 아닌 원소의 개수가 균일하지 않은 비균일 저밀도 패리티 검사 부호의 경우 부호화 처리 지연 시간이 많이 소요되며 부호기의 제작 또한 어려운 문제점이 있다.If you use different parity check matrices with optimized performance for each code rate, especially for non-uniform low density parity check codes where the number of non-zero elements in each row and column is not uniform, the encoding processing delay time is high. The production of the encoder also has a difficult problem.

본 발명이 이루고자 하는 기술적 과제는 하드웨어 효율을 높이고 부호화 처리 지연 시간을 줄이면서 여러 종류의 부호화율을 지원하는 비균일 저밀도 패리티 부호의 부호화 장치 및 방법을 제공하기 위한 것이다.It is an object of the present invention to provide an apparatus and method for encoding a non-uniform low density parity code that supports various types of coding rates while improving hardware efficiency and reducing encoding processing delay time.

이러한 과제를 해결하기 위해, 본 발명에서는 비균일 저밀도 패리티 검사 부호의 부호화 장치 및 방법에 제공된다.In order to solve this problem, the present invention is provided to an apparatus and method for encoding a non-uniform low density parity check code.

본 발명의 한 특징에 따른 비균일 저밀도 패리티 검사 부호의 부호화 장치는, Non-uniform low density parity check code encoding apparatus according to an aspect of the present invention,

패리티 검사 행렬―여기서, 패리티 검사 행렬은 원소 중에 1의 개수가 적고 행과 열에 들어가는 일의 개수가 일정하지 않은 행렬로 복수의 부분 행렬로 구성됨―을 이용하여 정보 비트를 부호화하는 비균일 저밀도 패리티 검사 부호의 부호화 장치로서,Non-uniform low-density parity check that encodes information bits using a parity check matrix, where the parity check matrix consists of a plurality of submatrices with a small number of 1s in the element and a non-uniform number of entries into the rows and columns. A code encoding device,

입력되는 정보 비트를 병렬화하여 입력 벡터를 생성하는 입력비트 병렬화기;An input bit parallelizer for generating an input vector by parallelizing the input information bits;

상기 복수의 부분 행렬에 기초하여 생성된 복수의 중간 벡터로부터 첫 번째 패리티 벡터를 생성하는 p1 벡터 연산기; 상기 생성된 첫 번째 패리티 벡터와 복수의 중간 벡터에 기초하여 두 번째 패리티 벡터를 생성하되, 시분할 공유 구조에 의해 상기 복수의 중간 벡터 중 제1 중간 벡터 또는 상기 두 번째 패리티 벡터를 생성하는 t 벡터 연산기; 및 상기 생성된 첫 번째 및 두 번째 패리티 벡터에 기초하 여 상기 입력 벡터들을 부호화하는 제1 선택기를 포함한다.A p 1 vector operator for generating a first parity vector from the plurality of intermediate vectors generated based on the plurality of partial matrices; A t vector operator that generates a second parity vector based on the generated first parity vector and a plurality of intermediate vectors, and generates a first intermediate vector or the second parity vector among the plurality of intermediate vectors by a time division shared structure. ; And a first selector for encoding the input vectors based on the generated first and second parity vectors.

이 때, 상기 복수의 부분행렬은, 행 또는 열의 크기가 1이 아닌 A 및 T 행렬―여기서, T 행렬은 하위 삼각형 행렬임―, 행 또는 열의 크기가 1인 B, C, D 및 E 행렬을 포함하며, 순환 행렬로 정의되는 비이진 값으로부터 각 행렬의 원소가 이루어지며,In this case, the plurality of submatrices are A and T matrices in which the row or column size is not 1, where the T matrix is a lower triangular matrix, and the B, C, D and E matrices having a row or column size of 1 are obtained. Element of each matrix from non-binary values defined by the circulant matrix,

상기 복수의 중간 벡터는 상기 A, T, B, C, D, E 행렬에 기초하여 각각 생성된 a, t, b, c, d, e 벡터를 포함하며, 상기 제1 중간 벡터는 t 벡터이다.The plurality of intermediate vectors include a, t, b, c, d, and e vectors, each generated based on the A, T, B, C, D, and E matrices, and the first intermediate vector is a t vector. .

그리고 상기 t 벡터 연산기는, 상기 a 벡터가 입력되면 상기 t 벡터를 생성하고, 상기 a 벡터와 b 벡터의 합이 입력되면 상기 두 번째 패리티 벡터를 생성하는 시분할 공유 구조를 가진다.The t vector operator has a time division sharing structure that generates the t vector when the a vector is input and generates the second parity vector when the sum of the a vector and the b vector is input.

본 발명의 다른 특징에 따른 비균일 저밀도 패리티 검사 부호의 부호화 방법은,Non-uniform low density parity check code encoding method according to another aspect of the present invention,

패리티 검사 행렬―여기서, 패리티 검사 행렬은 원소 중에 1의 개수가 적고 행과 열에 들어가는 일의 개수가 일정하지 않은 행렬임―을 이용하여 정보 비트를 부호화하는 비균일 저밀도 패리티 검사 부호의 부호화 방법으로서,A method of encoding a non-uniform low density parity check code using a parity check matrix, wherein the parity check matrix is a matrix having a small number of 1's in an element and a non-uniform number of things entering a row and a column.

a) 상기 패리티 검사 행렬을 각 행렬의 원소가 순환 행렬로 정의되는 비이진 값을 가지는 복수의 부분 행렬로 구성하는 단계; b) 상기 정보 비트들을 벡터 단위로 병렬화하여 입력 벡터를 생성하는 단계; c) 상기 복수의 부분 행렬에 기초하여 생성된 복수의 중간 벡터로부터 첫 번째 패리티 벡터를 생성하는 단계; d) 상기 생성된 첫 번째 패리티 벡터와 상기 생성된 복수의 중간 벡터에 기초하여 두 번째 패 리티 벡터를 생성하는 단계; 및 e) 생성된 첫 번째 및 두 번째 패리티 벡터로 부호어 비트를 출력하는 단계를 포함한다. a) constructing the parity check matrix into a plurality of partial matrices in which elements of each matrix have non-binary values defined as cyclic matrices; b) parallelizing the information bits in vector units to generate an input vector; c) generating a first parity vector from a plurality of intermediate vectors generated based on the plurality of partial matrices; d) generating a second parity vector based on the generated first parity vector and the generated plurality of intermediate vectors; And e) outputting codeword bits to the generated first and second parity vectors.

이 때, 상기 복수의 부분 행렬은 행 또는 열의 크기가 1이 아닌 A 및 T 행렬―여기서, T 행렬은 하위 삼각형 행렬임―, 행 또는 열의 크기가 1인 B, C, D 및 E 행렬을 포함하며,Wherein the plurality of partial matrices comprise A and T matrices in which the row or column size is not one, where the T matrix is a lower triangular matrix, wherein the B, C, D, and E matrices have a row or column size of one. ,

상기 복수의 중간 벡터는 A, T, B, C, D 및 E 행렬에 기초하여 각각 생성된 a, t, b, c, d 및 e 벡터를 포함한다.The plurality of intermediate vectors include a, t, b, c, d and e vectors, respectively generated based on the A, T, B, C, D and E matrices.

그리고 상기 c)단계는, 상기 A 행렬과 상기 입력 벡터로부터 a 벡터를 생성하는 단계; 상기 생성된 a 벡터와 상기 T 행렬로부터 t 벡터를 생성하는 단계; 상기 생성된 t 벡터와 상기 E 행렬로부터 e 벡터를 생성하는 단계; 상기 입력 벡터와 상기 C 행렬로부터 c 벡터를 생성하는 단계; 및 상기 e 벡터와 c 벡터의 합과 상기 순환 행렬의 역행렬과의 곱으로부터 첫 번째 패리티 벡터를 생성하는 단계를 포함하며, 시분할 공유 구조에 의해 입력되는 벡터 값에 따라 상기 t 벡터 또는 두 번째 패리티 벡터가 생성된다. 또한 상기 a 벡터와 t 벡터는 소정의 시작 지연을 갖고 동시에 처리된다.And c) comprises: generating a vector from the A matrix and the input vector; Generating a t vector from the generated a vector and the T matrix; Generating an e vector from the generated t vector and the E matrix; Generating a c vector from the input vector and the C matrix; And generating a first parity vector from a product of the sum of the e vector and the c vector and the inverse of the circulant matrix, the t vector or the second parity vector according to a vector value input by a time division shared structure. Is generated. The a and t vectors are also processed simultaneously with a predetermined start delay.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention. Like parts are designated by like reference numerals throughout the specification.

이제 본 발명의 실시 예에 따른 비균일 저밀도 패리티 부호의 부호화 장치 및 방법에 대하여 도면을 참고로 하여 상세하게 설명한다.An apparatus and method for encoding a non-uniform low density parity code according to an embodiment of the present invention will now be described in detail with reference to the accompanying drawings.

먼저, 본 발명에서 적용하는 패리티 검사 행렬에 대해서 도 1 및 도 2를 참고로 하여 상세하게 설명한다.First, the parity check matrix applied in the present invention will be described in detail with reference to FIGS. 1 and 2.

도 1은 저밀도 패리티 검사 행렬의 근사 하위 삼각형 행렬을 나타낸 도면이다.1 is a diagram illustrating an approximate lower triangular matrix of a low density parity check matrix.

도 1에 나타낸 바와 같이, 저밀도 패리티 검사 행렬 H에 대해 행, 열의 치환과 가우시안 소거법(Gaussian elimination)을 사용하여 상위 삼각형 영역이 ‘0’인 하위 삼각형 행렬을 얻을 수 있으며, 이 행렬을 포함한 6개의 부분 행렬(A, B, C, D, E, T)로 패리티 검사 행렬을 표현하고, 보다 효율적인 방법으로 아래에 기술한 수학식 1 내지 수학식 9의 연산 과정에 따라 패리티 부호어를 이들 부분 행렬로부터 얻는다.As shown in Fig. 1, for the low-density parity check matrix H, a lower triangular matrix having an upper triangular region of '0' can be obtained by using row and column substitution and Gaussian elimination. Parity check matrices are represented by partial matrices (A, B, C, D, E, T), and the parity codewords are converted into parity codewords according to the operations of Equations 1 to 9 described below in a more efficient manner. Get from

도 2는 4×4 단위 부분 행렬로 구성한 비이진 저밀도 패리티 검사 행렬 H를 나타낸 도면이다.FIG. 2 is a diagram illustrating a non-binary low density parity check matrix H formed of a 4x4 unit partial matrix.

도 2에 나타낸 바와 같이, 패리티 검사 행렬 H의 각 원소가 예를 들어 4×4 순환 행렬

Figure 112004060107293-pat00001
을 원소로 갖는 비 이진의 경우, 순환 행렬을 단위 부분 행렬로 정의하여 패리티 검사 행렬을 표현할 때 각 원소의 값은 단위 부분 행렬의 순환 값이다.As shown in Fig. 2, each element of the parity check matrix H is, for example, a 4x4 circular matrix.
Figure 112004060107293-pat00001
In the case of non-binary having as element, when the parity check matrix is defined by defining the circulant matrix as the unit submatrix, the value of each element is the cyclic value of the unit submatrix.

그리고 이 순환 행렬을 단위 행렬로 사용하여 저밀도 패리티 검사 행렬 H를 표현할 때 부호화 장치의 경우, 행렬-벡터 간 연산이 간단한 쉬프트 레지스터 형태로 구현될 수 있으며, 단위 행렬의 크기 단위로 부호화 과정이 처리될 수 있으므로 실시간 처리에 보다 유리하다. When the low density parity check matrix H is expressed using the circulant matrix as the unit matrix, the matrix-vector operation may be implemented in the form of a simple shift register, and the encoding process may be processed in units of the size of the unit matrix. It is more advantageous for real time processing.

또한 복호화 장치의 경우에도 메시지 전달 복호 방법을 사용할 때 각 비트, 체크 노드 메시지를 단위 행렬 크기로 병렬화가 간단해지므로 고속 처리에 유리하다.Also, even in the decoding apparatus, when the message transfer decoding method is used, parallelization of each bit and check node message to a unit matrix size is simplified, which is advantageous for high-speed processing.

본 발명에서는 아래에 기술한 수학식 1 내지 수학식 9의 패리티 부호 연산 과정에 따라 각각의 부분 행렬로 구성되고, 단위 부분 순환 행렬의 크기를 32×32 행렬로 정의하여 사용한다.In the present invention, each partial matrix is formed according to the parity code arithmetic process of Equations 1 to 9 described below, and the size of the unit partial circulant matrix is defined as 32 × 32 matrix.

다음으로, 본 발명의 실시 예에 따른 비균일 저밀도 패리티 부호의 부호화 장치에 대해 도 3을 참고로 하여 상세하게 설명한다.Next, a non-uniform low density parity code encoding apparatus according to an embodiment of the present invention will be described in detail with reference to FIG. 3.

도 3은 본 발명의 실시 예에 따른 비균일 저밀도 패리티 부호의 부호화 장치의 구성을 나타낸 도면이다.3 is a diagram illustrating a configuration of an encoding apparatus of a non-uniform low density parity code according to an embodiment of the present invention.

도 3에 나타낸 바와 같이, 비균일 저밀도 패리티 부호의 부호화 장치는 입력비트 병렬화기(301), 입력 벡터 버퍼(302), a 벡터 연산기(303), a 벡터 버퍼(304), a 행렬 메모리(305), t 벡터 연산기(306), t/p2 벡터 버퍼(307), T 행렬 메모리(308), e 벡터 연산기(309), c 벡터 연산기(310), p1 벡터 연산기(311) 및 b 벡터 연산기(312)를 포함한다.As shown in Fig. 3, a non-uniform low density parity code encoding device includes an input bit parallelizer 301, an input vector buffer 302, a vector operator 303, a vector buffer 304, and a matrix memory 305. ), t vector operator 306, t / p 2 vector buffer 307, T matrix memory 308, e vector operator 309, c vector operator 310, p 1 vector operator 311 and b vector The operator 312 is included.

입력비트 병렬화기(301)는 부호화 장치로 입력되는 정보 비트열을 1×32 부 분 벡터 단위로 병렬화하여 입력 벡터를 생성한다. 이하 모든 행렬, 즉 벡터는 32비트 단위로 처리된다.The input bit parallelizer 301 generates an input vector by parallelizing an information bit string input to an encoding device in units of 1 × 32 part vectors. Hereinafter all matrices, or vectors, are processed in 32-bit units.

a 벡터 연산부(302)는 A 행렬의 행 단위로 각 행의 ‘0’이 아닌 원소의 위치에 해당하는 입력 벡터들을 원소 값만큼 순화 누적시켜 a 벡터를 생성한다. 이 때, a 벡터의 길이는 A 행렬의 행 길이이다. 즉, a 벡터 연산 과정은 수학식 1과 같다.The a vector operator 302 generates an a vector by accumulating the input vectors corresponding to positions of elements other than '0' of each row in units of rows of the matrix A by element values. At this time, the length of the a vector is the row length of the A matrix. That is, the a vector calculation process is shown in Equation 1.

Figure 112004060107293-pat00002
Figure 112004060107293-pat00002

t 벡터 연산기(306)는 a 벡터와 비슷한 방식으로 t 벡터를 생성하며, t 벡터의 길이는 T 행렬의 행 길이이다. 이 때, a 벡터 연산기(302)와 다른 점은 하위 삼각형 행렬인 T 행렬의 형태에 따라 첫 번째 t 벡터 t0 값을 a0 의 역순환 값으로부터 얻은 이후에 역치환(backword substitution) 방법을 사용하여 T 행렬의 대각 원소 값만큼 a 벡터를 역 순환시킨 값과 이전 t 벡터를 대각 원소 아래에 있는 T 행렬의 원소 값만큼 순환 이동시킨 값을 누적하여 얻는다는 점이다. 즉, t 벡터 연산 과정은 수학식 2와 같다.t vector operator 306 generates a t vector in a manner similar to the a vector, where the length of the vector is the row length of the T matrix. In this case, the difference from the vector operator 302 is that a backward substitution method is used after the first t vector t 0 value is obtained from the inverse of a 0 according to the form of the lower matrix T matrix. This is obtained by accumulating a value obtained by inverting a vector by the diagonal element value of the T matrix and by cyclically moving the previous t vector by the element value of the T matrix below the diagonal element. That is, the t vector calculation process is shown in Equation 2.

Figure 112004060107293-pat00003
Figure 112004060107293-pat00003

e 벡터 연산기(309)는 수학식 3에 따라 t 벡터 연산기(306)로부터 얻어진 t 벡터를 E 행렬의 원소 값만큼 순환 누적하여 e 벡터를 생성한다. 즉, e 벡터 연산 과정은 수학식 3과 같다.The e vector operator 309 cyclically accumulates the t vector obtained from the t vector operator 306 by the element value of the E matrix according to Equation 3 to generate the e vector. That is, the e-vector calculation process is shown in Equation 3.

Figure 112004060107293-pat00004
Figure 112004060107293-pat00004

c 벡터 연산기(310)는 입력 벡터들을 C 행렬의 원소 값만큼 순환 누적시켜 c 벡터를 생성한다. 즉, c 벡터 연산 과정은 수학식 4와 같다.The c vector operator 310 cyclically accumulates the input vectors by the element values of the C matrix to generate the c vector. That is, the c vector operation process is shown in Equation 4.

Figure 112004060107293-pat00005
Figure 112004060107293-pat00005

p1 벡터 연산기(311)는 두 개의 1×32 벡터(e 벡터와 c 벡터)의 합과 32×32 크기의 역행렬

Figure 112004060107293-pat00006
의 곱으로 첫 번째 패리티 부분 벡터 p1을 생성한다. 즉, p1 벡터 연산 과정은 수학식 5를 통해 수학식 6과 같이 나타난다.p 1 vector operator 311 is the sum of two 1 × 32 vectors (e and c vectors) and an inverse of size 32 × 32
Figure 112004060107293-pat00006
Create the first parity partial vector p 1 with the product of. That is, the p 1 vector operation process is represented by Equation 6 through Equation 5.

Figure 112004060107293-pat00007
Figure 112004060107293-pat00007

여기서, d는 d 벡터를 나타내며, d 벡터는 e 벡터와 c 벡터의 합으로써 생성된다.Here, d represents the d vector, and the d vector is generated as the sum of the e vector and the c vector.

Figure 112004060107293-pat00008
Figure 112004060107293-pat00008

b 벡터 연산기(312)는 첫 번째 패리티 부분 벡터 p1으로부터 B 행렬의 ‘0’이 아닌 원소의 위치에서 p1을 원소 값만큼 순환 이동시켜 b 벡터를 생성한다. 즉, b 벡터의 연산은 수학식 7과 같다.The b vector operator 312 generates a b vector by circularly shifting p 1 by an element value from the first parity partial vector p 1 at a position other than '0' of the B matrix. That is, the operation of the b vector is as shown in Equation (7).

Figure 112004060107293-pat00009
Figure 112004060107293-pat00009

한편, b 벡터와 a 벡터의 합을 두 번째 패리티 벡터 p2를 얻기 위한 입력으로 사용하며, 두 번째 패리티 벡터 p2는 t 벡터 연산기(306)를 통해 얻어진다. 이는 수학식 8 및 수학식 9와 같이 나타난다.Meanwhile, the sum of the b vector and the a vector is used as an input for obtaining the second parity vector p 2 , and the second parity vector p 2 is obtained through the t vector operator 306. This is represented by Equations 8 and 9.

Figure 112004060107293-pat00010
Figure 112004060107293-pat00010

Figure 112004060107293-pat00011
Figure 112004060107293-pat00011

이 때, 수학식 2와 수학식 9의 유사성을 이용하여 t 벡터를 얻을 때는 a 벡터를 사용하고, p2 벡터를 얻을 때는 a 벡터와 b 벡터의 합이 입력되도록 함으로써 t 벡터 연산기(306), t 벡터 버퍼(307), T 벡터 메모리(308) 및 선택기(314)를 포함하는 부분(점선으로 표시된 부분)은 시분할 공유 구조를 갖는다.At this time, when the obtained t vectors using the equations (2) and the similarity of the equation (9) using a vector and, if obtained p 2 vector by making the sum of a vector and the b vector type t vector computing unit 306, The portion (indicated by dashed lines) including the t vector buffer 307, the T vector memory 308, and the selector 314 has a time division shared structure.

그리고 본 발명의 실시 예에 따른 비균일 저밀도 패리티 검사 부호의 부호화 장치는 3가지 종류의 내부 메모리 즉, 입력 벡터 버퍼(302), a 벡터 버퍼(304) 및 t/p2 벡터 버퍼(307)를 포함하고 있다.In addition, an apparatus for encoding a non-uniform low density parity check code according to an embodiment of the present invention may include three types of internal memories, namely, an input vector buffer 302, a vector buffer 304, and a t / p 2 vector buffer 307. It is included.

입력 벡터 버퍼(302)는 입력 비트 병렬화부로부터 병렬화된 입력 벡터를 32 비트 부분 벡터 단위로 저장한다. 이 때, 입력 벡터 버퍼(302)는 a 벡터를 계산할 때 사용되는 A 행렬의 각 행에 ‘0’이 아닌 원소의 위치가 임의의 순서로 존재할 수 있으므로 입력 비트 시퀀스를 32비트 단위로 병렬화하여 저장한다.The input vector buffer 302 stores the parallelized input vector from the input bit parallelizer in 32 bit partial vector units. At this time, the input vector buffer 302 stores the input bit sequence in parallel by 32 bits because positions of elements other than '0' may exist in any order in each row of the A matrix used when calculating a vector. do.

a 벡터 버퍼(304)는 a 벡터를 저장한다. 이 때, a 벡터 버퍼(304)는 t 벡터와 p2 벡터를 얻을 때 입력되는 값으로 이 두 벡터가 시간 간격을 두고 연산되어 얻어지므로 a 벡터를 저장해야 하기 때문에 필요하다.a vector buffer 304 stores a vector. In this case, the a vector buffer 304 is a value input when the t vector and the p 2 vector are obtained, and are required because the a vector must be stored because these two vectors are calculated and obtained at a time interval.

t/P2 벡터 버퍼(307)는 t 벡터와 패리티 벡터 p2를 저장한다. 이 때, t/p2 벡터 버퍼(307)는 아래 삼각형 형태의 T 행렬 구조에 따라 n 번째 t(또는 P2) 벡터 원소를 얻기 위해 n-1 이하의 t(또는 p2) 벡터 원소를 입력으로 사용하므로 t 벡터의 연산기(307)의 출력을 저장하고 있어야 하기 때문에 필요하다.The t / P 2 vector buffer 307 stores the t vector and the parity vector p 2 . At this time, the t / p 2 vector buffer 307 inputs a t (or p 2 ) vector element equal to or less than n−1 to obtain an n th t (or P 2 ) vector element according to the T matrix structure in the form of a triangle below. This is necessary because the output of the operator 307 of the t vector must be stored.

또한 본 발명의 실시 예에 따른 비균일 저밀도 패리티 검사 부호의 부호화 장치는 덧셈기(313, 315) 및 선택기(314, 316)를 더 포함한다.In addition, the apparatus for encoding a non-uniform low density parity check code according to an embodiment of the present invention further includes adders 313 and 315 and selectors 314 and 316.

덧셈기(313)는 t 벡터 연산기(306)로 a 벡터와 b 벡터의 합을 입력시켜 p2 벡터를 얻기 위해 a 벡터와 b 벡터를 합하여 출력한다.The adder 313 inputs the sum of the a vector and the b vector to the t vector operator 306, and outputs the sum of the a vector and the b vector to obtain a p 2 vector.

선택기(314)는 t 벡터 또는 p2 벡터를 얻을 것인지에 따라 t 벡터 연산기(306)로 a 벡터를 입력시킬 것인지 또는 a 벡터와 b 벡터의 합을 입력시킬 것인지를 선택하여 t 벡터 연산기(306)로 출력한다.The selector 314 selects whether to input the a vector to the t vector operator 306 or the sum of the a vector and the b vector, depending on whether to obtain the t vector or the p 2 vector, and then to the t vector operator 306. Output

덧셈기(315)는 e 벡터와 c 벡터를 합하여 p1 벡터 연산기(311)로 출력한다.The adder 315 sums the e vector and the c vector and outputs the sum to the p 1 vector operator 311.

선택기(316)는 p1 벡터 연산기(311)로부터 출력되는 p1 벡터, t 벡터 연산기(306)로부터 출력되는 p2 벡터 및 입력비트 병렬화기(301)로부터 출력되는 입력 벡터에서 해당 벡터를 선택하여 부호어를 출력한다.The selector 316 selects a corresponding vector from a p 1 vector output from the p 1 vector operator 311, a p 2 vector output from the t vector operator 306, and an input vector output from the input bit parallelizer 301. Output the codeword.

또한 본 발명의 실시 예에 따른 비균일 저밀도 패리티 검사 부호의 부호화 장치는 A 행렬 메모리(305) 및 T 행렬 메모리(308)를 더 포함한다.In addition, the encoding apparatus of the non-uniform low density parity check code according to the embodiment of the present invention further includes an A matrix memory 305 and a T matrix memory 308.

A 행렬 메모리(305)는 A 행렬을 저장하고 있다.The A matrix memory 305 stores an A matrix.

T 행렬 메모리(308)는 T 행렬을 저장하고 있다.T matrix memory 308 stores a T matrix.

이러한 A 행렬 메모리(305) 및 T 행렬 메모리(308)에 대해서는 도 4를 참고로 하여 상세하게 설명한다.The A matrix memory 305 and the T matrix memory 308 will be described in detail with reference to FIG. 4.

도 4는 본 발명의 실시 예에 따른 비균일 저밀도 패리티 부호의 부호화 장치의 패리티 검사 행렬 메모리 구성을 나타낸 도면이다.4 is a diagram illustrating a parity check matrix memory configuration of an encoding apparatus of a non-uniform low density parity code according to an embodiment of the present invention.

도 4에 나타낸 바와 같이, 우선, 패리티 검사 행렬을 6개의 부분 행렬로 나누어 저장할 때, 패리티 검사 행렬의 원소 값을 저장하거나 또는 연산(정해진 위치에서의 순환과 누적) 방식을 정의하여 사용할 수 있다.As shown in Fig. 4, first, when storing the parity check matrix by dividing it into six partial matrices, element values of the parity check matrix can be stored or a calculation (cyclic and cumulative accumulation at a predetermined position) can be used.

본 발명의 실시 예에서는 앞서 설명한 것처럼, A 행렬 및 T 행렬은 각각 A 행렬 메모리(305) 및 T 행렬 메모리(308)에 저장되고, A 행렬과 T 행렬을 제외한 B, C, D, E 행렬은 행 또는 열의 크기가 1이므로, 메모리 방식을 사용하지 않고 연산을 정의하는 방법을 사용하여 각각의 부호화율에 따른 연산기를 별도로 구성하는 방식을 사용한다.In the embodiment of the present invention, as described above, the A matrix and the T matrix are respectively stored in the A matrix memory 305 and the T matrix memory 308, and the B, C, D, and E matrices except the A matrix and the T matrix are Since the size of a row or column is 1, a method of configuring an operator according to each coding rate is used by using a method of defining an operation without using a memory method.

한편, 균일 저밀도 패리티 부호의 경우에는 각 행의 무게가 일정하므로, 행 단위의 열 위치와 순환 값을 일정한 무게만큼의 회수로 읽어 벡터의 원소를 얻지만, 본 발명의 실시 예처럼 비균일 저밀도 패리티 부호의 경우에는 행 단위의 무게가 일정하지 않다. 따라서 A 행렬과 T 행렬의 경우, a 벡터 연산기(303)나 t 벡터 연산기(306)가 모두 행 단위로 동작하므로 A 행렬 메모리(305) 및 T 행렬 메모리(308)는 각각 행 단위의 ‘0’이 아닌 원소의 수(행의 무게 값)를 저장하고 있는 메모리와 행 단위의 ‘0’이 아닌 원소의 열의 위치와 순환 값을 저장하고 있는 메모리로 나누어 각각 구성한다. On the other hand, in the case of the uniform low density parity code, since the weight of each row is constant, the elements of the vector are obtained by reading the column position and the cyclic value of the row unit by a certain number of weights, but the nonuniform low density parity as in the embodiment of the present invention. In the case of the sign, the weight of the row unit is not constant. Therefore, in the case of the A matrix and the T matrix, since both the a vector operator 303 or the t vector operator 306 operate in a row unit, the A matrix memory 305 and the T matrix memory 308 are each '0' in a row unit. It consists of a memory that stores the number of non-elements (row weights) and a memory that stores the position and cyclic values of non-zero elements of a row.

따라서 각 행에 대해 a와 t 또는 p2 벡터의 원소를 얻기 위해 ‘0’이 아닌 원소 수를 저장하고 있는 메모리로부터 원하는 행의 무게 값을 읽고 열의 위치와 순환 값을 저장하고 있는 메모리에서 이 무게 값 만큼의 회수만큼 열의 위치와 순환 값을 읽어 원하는 벡터의 원소를 얻는다.Therefore, to obtain the elements of the a and t or p 2 vectors for each row, the desired row weight is read from the memory that stores the non-zero number of elements, and the weight is stored in the memory that stores the column positions and cycles. Read the position and the cyclic value of the column by the number of times to get the element of the desired vector.

그리고 여러 종류의 부호화 율을 지원하기 위해 각 부호화 율에 대해 A 행렬과 T 행렬의 구성을 이어서 저장하고 부호화율 별 시작 주소를 별도의 ROM 테이블에 저장하여 사용하는 방식으로 간단히 확장하고 B, C, D, E 행렬은 부호화율 별로 정의된 연산기의 출력을 선택하여 사용한다.In order to support various code rates, the structure of A and T matrices is continuously stored for each code rate, and the start address of each code rate is stored and stored in a separate ROM table, and the B, C, The D and E matrices select and use the output of the operator defined for each coding rate.

도 5는 본 발명의 실시 예에 따른 비균일 저밀도 패리티 부호의 부호화 장치의 동작 타이밍을 나타낸 도면이다.5 is a diagram illustrating an operation timing of an encoding apparatus of a non-uniform low density parity code according to an embodiment of the present invention.

도 5에 나타낸 바와 같이, 부호화 장치의 하드웨어 효율을 높이면서 부호화 처리 지연 시간을 최소화하기 위해 병렬 처리가 불가능한 t 벡터와 p2 벡터를 얻는 부분은 제외하고 나머지 벡터 연산기들이 최소 동작 지연을 갖도록 한다.As shown in FIG. 5, the rest of the vector operators have a minimum operation delay except for obtaining a t vector and a p 2 vector which are not parallelized in order to minimize encoding processing delay time while increasing hardware efficiency of the encoding apparatus.

t 벡터와 p2 벡터는 아래 삼각 행렬 T를 이용하는 유사성을 이용하여 하드웨어 크기를 줄이기 위해 시분할 공유 구조를 갖는다. The t vector and the p 2 vector have a time-sharing shared structure to reduce hardware size by using similarity using the triangular matrix T below.

a 벡터 연산기(303)와 t 벡터 연산기(306)의 경우, t 벡터가 a 벡터를 통해 얻어지지만, T 행렬이 하위 삼각형 행렬이므로 n 번째 원소 tn을 얻기 위해 필요한 입력이 an과 tm(m<n)이다. 따라서 도 5에서와 같이 a 벡터 연산기(303)의 동작 시점으로부터 일정 지연 시간 후에 t 벡터 연산(306)를 동작시킬 수 있다.For the a vector operator 303 and the t vector operator 306, the t vector is obtained through the a vector, but since the T matrix is the lower triangular matrix, the input needed to obtain the n th element t n is a n and t m ( m <n). Accordingly, as shown in FIG. 5, the t vector operation 306 may be operated after a predetermined delay time from the operation time of the a vector operator 303.

만일, T 행렬이 아래 삼각형 행렬 특성을 갖지 않는다면 T 행렬의 각 행의 ‘0’이 아닌 원소의 위치가 랜덤하게 정의될 수 있어 a 벡터 연산이 끝난 후에 t 벡터를 계산할 수 있다.If the T matrix does not have the triangular matrix characteristic below, the positions of the elements other than '0' of each row of the T matrix may be randomly defined, and thus the t vector may be calculated after the a vector operation is completed.

a 벡터 연산기(303)와 t 벡터 연산기(306)의 동작 시작 시점의 차이는 두 연산기(303, 306)의 동작 속도와 관련이 있다.The difference between the start point of operation of the a vector operator 303 and the t vector operator 306 is related to the operation speed of the two operators 303 and 306.

t 벡터 연산기(306)는 n 번째 원소 tn을 얻기 위해 an 입력이 필요하므로 임의의 시점에서도 t 벡터 연산기(306)가 a 벡터 연산기(303)의 동작 속도보다 앞설 수 없으나, A 행렬과 T 행렬의 ‘0’이 아닌 원소의 수와 분포에 따라 두 연산기(303, 306)가 같은 시점에서 시작하거나 충분한 지연 시간 없이 t 벡터 연산기(306)가 시작될 경우, n 번째 원소 tn을 얻기 위해 요구되는 an 입력이 도착하지 못 하는 경우가 발생한다. 따라서 비균일 저밀도 패리티 부호의 경우, 부호화율 별로 요구되는 a 벡터 연산기(303)와 t 벡터 연산기(306) 사이의 시작 지연 시간이 다르므로 이에 따른 제어가 필요하다.t vector computing unit 306 n it requires a n inputs to obtain a second element t n, but is in a particular time t vector computing unit 306 may ahead of the operating speed of a vector arithmetic unit (303), A matrix and the T Depending on the number and distribution of non-zero elements in the matrix, if two operators 303, 306 start at the same time, or if the t vector operator 306 starts without sufficient delay, it needs to obtain the nth element t n . It happens that a n input does not arrive. Therefore, in the case of the non-uniform low density parity code, since the start delay time between the a vector operator 303 and the t vector operator 306 required for each coding rate is different, it is necessary to control accordingly.

상술한 바와 같이, 본 발명의 실시 예에 따르면, 비이진 저밀도 패리티 검사 행렬은 부호화 처리 지연 시간을 줄이기 위해 하위 삼각형 행렬을 포함하는 6개의 부분 행렬로 구성하고 각 행렬의 원소는 순환 행렬로 정의되는 비이진 값을 가지며, 여러 종류의 부호화율에 따른 패리티 검사 행렬을 지원하면서 하드웨어 효율을 높일 수 있게 된다.As described above, according to an embodiment of the present invention, the non-binary low density parity check matrix is composed of six partial matrices including lower triangular matrices in order to reduce encoding processing delay time, and the elements of each matrix are defined as cyclic matrices. It has a non-binary value and supports hardware parity check matrix according to various code rates.

이상에서 본 발명의 바람직한 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.Although the preferred embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

본 발명에 의하면, 비균일 저밀도 패리티 검사 부호의 부호화 장치의 구현에 있어 t 벡터와 p2 벡터의 시분할 구조를 통해 하드웨어 효율을 높이면서 a 벡터와 t 벡터를 거의 동시에 동작시킴으로써 부호화 처리 시간을 최소화할 수 있다. 또한 여러 종류의 패리티 검사 행렬을 정의하여 사용함으로써 다중 부호화율을 지원할 수 있게 된다.According to the present invention, encoding time of a nonuniform low density parity check code can be minimized by operating a vector and t vector almost simultaneously while improving hardware efficiency through a time division structure of a t vector and a p 2 vector. Can be. In addition, by defining and using several types of parity check matrices, multiple coding rates can be supported.

Claims (22)

패리티 검사 행렬―여기서, 패리티 검사 행렬은 원소 중에 1의 개수가 적고 행과 열에 들어가는 일의 개수가 일정하지 않은 행렬로 복수의 부분 행렬로 구성됨―을 이용하여 정보 비트를 부호화하는 비균일 저밀도 패리티 검사 부호의 부호화 장치에 있어서,Non-uniform low-density parity check that encodes information bits using a parity check matrix, where the parity check matrix consists of a plurality of submatrices with a small number of 1s in the element and a non-uniform number of entries into the rows and columns. In the encoding device of a code, 입력되는 정보 비트를 병렬화하여 입력 벡터를 생성하는 입력비트 병렬화기;An input bit parallelizer for generating an input vector by parallelizing the input information bits; 상기 복수의 부분 행렬에 기초하여 생성된 복수의 중간 벡터로부터 첫 번째 패리티 벡터를 생성하는 p1 벡터 연산기;A p 1 vector operator for generating a first parity vector from the plurality of intermediate vectors generated based on the plurality of partial matrices; 상기 생성된 첫 번째 패리티 벡터와 복수의 중간 벡터에 기초하여 두 번째 패리티 벡터를 생성하되, 시분할 공유 구조에 의해 상기 복수의 중간 벡터 중 제1 중간 벡터 또는 상기 두 번째 패리티 벡터를 생성하는 t 벡터 연산기; 및A t vector operator that generates a second parity vector based on the generated first parity vector and a plurality of intermediate vectors, and generates a first intermediate vector or the second parity vector among the plurality of intermediate vectors by a time division shared structure. ; And 상기 생성된 첫 번째 및 두 번째 패리티 벡터에 기초하여 상기 입력 벡터들을 부호화하는 제1 선택기A first selector for encoding the input vectors based on the generated first and second parity vectors 를 포함하는 비균일 저밀도 패리티 검사 부호의 부호화 장치.Non-uniform low density parity check code encoding apparatus comprising a. 제1항에 있어서,The method of claim 1, 상기 복수의 부분행렬은, The plurality of submatrices, 행 또는 열의 크기가 1이 아닌 A 및 T 행렬―여기서, T 행렬은 하위 삼각형 행렬임―, 행 또는 열의 크기가 1인 B, C, D 및 E 행렬을 포함하며, 순환 행렬로 정의되는 비이진 값으로부터 각 행렬의 원소가 이루어지는 비균일 저밀도 패리티 검사 부호의 부호화 장치.A and T matrices where the size of the row or column is not 1, where the T matrix is a lower triangular matrix, a non-binary that includes the B, C, D, and E matrices where the size of the row or column is 1; An encoding device of a non-uniform low density parity check code in which elements of each matrix are formed from values. 제2항에 있어서,The method of claim 2, 상기 복수의 중간 벡터는 상기 A, T, B, C, D 및 E 행렬에 기초하여 각각 생성된 a, t, b, c, d 및 e 벡터를 포함하며,Wherein the plurality of intermediate vectors comprises a, t, b, c, d and e vectors, respectively generated based on the A, T, B, C, D and E matrices, 상기 제1 중간 벡터는 t 벡터인 비균일 저밀도 패리티 검사 부호의 부호화 장치.And encoding the non-uniform low density parity check code as the first intermediate vector. 제3항에 있어서,The method of claim 3, 상기 t 벡터 연산기는, 상기 a 벡터가 입력되면 상기 t 벡터를 생성하고, 상기 a 벡터와 b 벡터의 합이 입력되면 상기 두 번째 패리티 벡터를 생성하는 비균일 저밀도 패리티 검사 부호의 부호화 장치.And the t vector operator generates the t vector when the a vector is input and generates the second parity vector when the sum of the a vector and the b vector is input. 제4항에 있어서,The method of claim 4, wherein 상기 A 행렬의 행 단위로 각 행의 0이 아닌 원소의 위치에 해당하는 상기 입력 벡터들을 원소 값만큼 순환 누적시켜 a 벡터를 생성하는 a 벡터 연산기;An a vector operator configured to cyclically accumulate the input vectors corresponding to positions of non-zero elements of each row in units of rows of the matrix A by an element value; 상기 T 행렬의 대각 원소 값만큼 상기 a 벡터를 역순환시킨 값과 이전 t 벡터를 대각 원소 아래에 있는 T 행렬의 원소 값만큼 순환 이동시킨 값을 누적하여 t 벡터를 생성하고, 상기 생성된 a 벡터와 상기 b 벡터에 기초하여 두 번째 패리티 벡터를 생성하는 t 벡터 연산기;T vector is generated by accumulating a value of the reverse vector of the a vector by the diagonal element value of the T matrix and a value circulating the previous t vector by the element value of the T matrix under the diagonal element, and generating the vector vector A t vector operator for generating a second parity vector based on the b vector; 상기 t 벡터를 상기 E 행렬의 원소 값만큼 순환 누적하여 e 벡터를 생성하는 e 벡터 연산기;An e vector operator for cyclically accumulating the t vector by an element value of the E matrix to generate an e vector; 상기 입력 벡터들을 상기 C 행렬의 원소 값만큼 순환 누적하여 c 벡터를 생성하는 c 벡터 연산기; 및A c vector operator configured to cyclically accumulate the input vectors by an element value of the C matrix to generate a c vector; And 상기 B 행렬의 0이 아닌 원소의 위치에서 첫 번째 패리티 벡터를 원소 값만큼 순환 이동시켜 b 벡터를 생성하는 b 벡터 연산기A b vector operator that generates a b vector by circularly shifting the first parity vector by an element value at a nonzero element of the B matrix. 를 포함하는 비균일 저밀도 패리티 검사 부호의 부호화 장치.Non-uniform low density parity check code encoding apparatus comprising a. 제5항에 있어서,The method of claim 5, 상기 a 벡터 연산기의 동작 시점으로부터 소정 지연 시간 후에 상기 t 벡터 연산기가 동작하는 비균일 저밀도 패리티 검사 부호의 부호화 장치.And a non-uniform low density parity check code for operating the t vector operator after a predetermined delay time from an operation time point of the a vector operator. 제5항에 있어서,The method of claim 5, 상기 A 행렬을 저장하고 있는 A 행렬 메모리; 및An A matrix memory storing the A matrix; And 상기 하위 삼각형 행렬인 상기 T 행렬을 저장하고 있는 T 행렬 메모리T matrix memory storing the T matrix that is the lower triangular matrix 를 더 포함하는 비균일 저밀도 패리티 검사 부호의 부호화 장치.Non-uniform low density parity check code encoding apparatus further comprising. 제7항에 있어서,The method of claim 7, wherein 상기 A 행렬 메모리 및 T 행렬 메모리 각각은,Each of the A matrix memory and the T matrix memory, 상기 A 행렬 및 T 행렬 각각으로부터 행의 무게값―여기서, 행의 무게값은 행 단위의 0이 아닌 원소의 수임―을 저장하고 있는 제1 메모리; 및A first memory for storing a weight of a row from each of the A and T matrices, wherein the weight of the row is the number of nonzero elements in a row unit; And 상기 A 행렬 및 T 행렬 각각으로부터 행 단위의 0이 아닌 원소의 열의 위치와 순환 값을 저장하고 있는 제2 메모리A second memory for storing the position and the cyclic value of the non-zero column of the row unit from each of the A matrix and the T matrix 를 포함하는 비균일 저밀도 패리티 검사 부호의 부호화 장치.Non-uniform low density parity check code encoding apparatus comprising a. 제7항에 있어서,The method of claim 7, wherein 상기 입력 벡터를 32비트 부분 벡터 단위로 저장하는 입력 벡터 버퍼부;An input vector buffer unit for storing the input vector in units of 32-bit partial vectors; 상기 a 벡터를 저장하는 a 벡터 버퍼부; 및A vector buffer unit for storing the a vector; And 상기 t 벡터와 두 번째 패리티 벡터를 저장하는 t/p2 벡터 버퍼부T / p 2 vector buffer unit for storing the t vector and the second parity vector 를 더 포함하는 비균일 저밀도 패리티 검사 부호의 부호화 장치.Non-uniform low density parity check code encoding apparatus further comprising. 제9항에 있어서,The method of claim 9, 상기 a 벡터 또는 상기 a 벡터와 b 벡터의 합을 상기 t 벡터의 입력으로 선택하는 제2 선택기A second selector for selecting the vector a or the sum of the vector a and the vector b as the input of the vector t 를 더 포함하는 비균일 저밀도 패리티 검사 부호의 부호화 장치.Non-uniform low density parity check code encoding apparatus further comprising. 제2항 내지 제10항 중 어느 한 항에 있어서,The method according to any one of claims 2 to 10, 상기 순환 행렬은 32×32 크기의 행렬인 비균일 저밀도 패리티 검사 부호의 부호화 장치.And the cyclic matrix is a 32 × 32 matrix. 패리티 검사 행렬―여기서, 패리티 검사 행렬은 원소 중에 1의 개수가 적고 행과 열에 들어가는 일의 개수가 일정하지 않은 행렬임―을 이용하여 정보 비트를 부호화하는 비균일 저밀도 패리티 검사 부호의 부호화 방법에 있어서,In the method of encoding a non-uniform low density parity check code using a parity check matrix, wherein the parity check matrix is a matrix having a small number of 1's in an element and a non-uniform number of things entering a row and a column. , a) 상기 패리티 검사 행렬을 각 행렬의 원소가 순환 행렬로 정의되는 비이진 값을 가지는 복수의 부분 행렬로 구성하는 단계;a) constructing the parity check matrix into a plurality of partial matrices in which elements of each matrix have non-binary values defined as cyclic matrices; b) 상기 정보 비트들을 벡터 단위로 병렬화하여 입력 벡터를 생성하는 단계;b) parallelizing the information bits in vector units to generate an input vector; c) 상기 복수의 부분 행렬에 기초하여 생성된 복수의 중간 벡터로부터 첫 번째 패리티 벡터를 생성하는 단계;c) generating a first parity vector from a plurality of intermediate vectors generated based on the plurality of partial matrices; d) 상기 생성된 첫 번째 패리티 벡터와 상기 생성된 복수의 중간 벡터에 기초하여 두 번째 패리티 벡터를 생성하는 단계; 및d) generating a second parity vector based on the generated first parity vector and the generated plurality of intermediate vectors; And e) 생성된 첫 번째 및 두 번째 패리티 벡터에 기초하여 상기 입력 비트들을 부호화하는 단계e) encoding the input bits based on the generated first and second parity vectors 를 포함하는 비균일 저밀도 패리티 검사 부호의 부호화 방법.Non-uniform low density parity check code encoding method comprising a. 제12항에 있어서,The method of claim 12, 상기 복수의 부분 행렬은 행 또는 열의 크기가 1이 아닌 A 및 T 행렬―여기서, T 행렬은 하위 삼각형 행렬임―, 행 또는 열의 크기가 1인 B, C, D 및 E 행렬 을 포함하며,Wherein the plurality of partial matrices comprise A and T matrices in which the size of the row or column is not 1, where the T matrix is a lower triangular matrix, wherein the B, C, D, and E matrices are 1 or 2 in size; 상기 복수의 중간 벡터는 A, T, B, C, D 및 E 행렬에 기초하여 각각 생성된 a, t, b, c, d 및 e 벡터를 포함하는 비균일 저밀도 패리티 검사 부호의 부호화 방법.And a plurality of intermediate vectors comprising a, t, b, c, d and e vectors respectively generated based on A, T, B, C, D and E matrices. 제13항에 있어서,The method of claim 13, 상기 c)단계는,Step c) is 상기 A 행렬과 상기 입력 벡터로부터 a 벡터를 생성하는 단계;Generating a vector from the A matrix and the input vector; 상기 생성된 a 벡터와 상기 T 행렬로부터 t 벡터를 생성하는 단계;Generating a t vector from the generated a vector and the T matrix; 상기 생성된 t 벡터와 상기 E 행렬로부터 e 벡터를 생성하는 단계;Generating an e vector from the generated t vector and the E matrix; 상기 입력 벡터와 상기 C 행렬로부터 c 벡터를 생성하는 단계; 및Generating a c vector from the input vector and the C matrix; And 상기 e 벡터와 c 벡터의 합과 상기 순환 행렬의 역행렬과의 곱으로부터 첫 번째 패리티 벡터를 생성하는 단계Generating a first parity vector from a product of the sum of the e and c vectors and the inverse of the circulant matrix 를 포함하는 비균일 저밀도 패리티 검사 부호의 부호화 방법.Non-uniform low density parity check code encoding method comprising a. 제14항에 있어서,The method of claim 14, 상기 d)단계는, 상기 생성된 첫 번째 패리티 벡터와 상기 B 행렬로부터 생성된 b 벡터와 상기 a 벡터의 합으로부터 두 번째 패리티 벡터를 생성하는 비균일 저밀도 패리티 검사 부호의 부호화 방법.In step d), a non-uniform low density parity check code encoding method generates a second parity vector from a sum of the generated first parity vector, the b vector generated from the B matrix, and the a vector. 제15항에 있어서,The method of claim 15, 시분할 공유 구조에 의해 입력되는 벡터 값에 따라 상기 t 벡터 또는 두 번째 패리티 벡터가 생성되는 비균일 저밀도 패리티 검사 부호의 부호화 방법.And a t vector or a second parity vector is generated according to a vector value input by a time division shared structure. 제14항에 있어서,The method of claim 14, 상기 a 벡터와 t 벡터는 소정의 시작 지연을 갖고 동시에 처리되는 비균일 저밀도 패리티 검사 부호의 부호화 방법.And a vector and a vector are processed at the same time with a predetermined start delay. 제14항에 있어서,The method of claim 14, 상기 병렬화된 입력 벡터를 32비트 벡터 단위로 저장하는 단계; 및Storing the parallelized input vector in 32-bit vector units; And 상기 생성된 a 벡터 및 t 벡터를 저장하는 단계Storing the generated a and t vectors 를 더 포함하는 비균일 저밀도 패리티 검사 부호의 부호화 방법.Non-uniform low density parity check code encoding method further comprising. 제14항에 있어서,The method of claim 14, 상기 A 벡터 및 상기 T 벡터에 기초하여 행의 무게 값―여기서, 행의 무게값은 행 단위의 0이 아닌 원수의 수임―을 저장하는 단계; 및Storing a weight of a row based on the A vector and the T vector, wherein the weight of the row is the number of nonzero enemies in a row unit; And 상기 행 단위의 0이 아닌 원소의 열의 위치와 순환 값을 저장하는 단계Storing the position and cyclic value of the column of non-zero elements in the row unit 를 더 포함하는 비균일 저밀도 패리티 검사 부호의 부호화 방법.Non-uniform low density parity check code encoding method further comprising. 제19항에 있어서,The method of claim 19, 상기 저장된 행의 무게 값을 읽고 상기 무게 값만큼의 회수만큼 열의 위치와 순환 값을 읽어 상기 a 벡터, t 벡터 및 두 번째 패리티 벡터가 생성되는 비균일 저밀도 패리티 검사 부호의 부호화 방법.And reading the weight value of the stored row and reading the position and the cyclic value of the column as many times as the weight value to generate the a vector, the t vector, and the second parity vector. 제14항에 있어서,The method of claim 14, 상기 a 벡터는 상기 A 행렬의 행 단위로 각 행의 0이 아닌 원소의 위치에 해당하는 상기 입력 벡터들을 원소 값만큼 순환 누적시켜 생성되고, The a vector is generated by cyclically accumulating the input vectors corresponding to positions of nonzero elements of each row in units of rows of the matrix A by element values, 상기 t 벡터는 상기 T 행렬의 대각 원소 값만큼 상기 a 벡터를 역순환시킨 값과 이전 t 벡터를 대각 원소 아래에 있는 T 행렬의 원소 값만큼 순환 이동시킨 값을 누적하여 생성되며, The t vector is generated by accumulating a value obtained by inverting the a vector by the diagonal element value of the T matrix and by cyclically moving the previous t vector by the element value of the T matrix below the diagonal element. 상기 e 벡터는 상기 t 벡터를 상기 E 행렬의 원소 값만큼 순환 누적하여 생성되고,The e vector is generated by cyclically accumulating the t vector by an element value of the E matrix, 상기 c 벡터는 상기 입력 벡터들을 상기 C 행렬의 원소 값만큼 순환 누적하여 생성되는 비균일 저밀도 패리티 검사 부호의 부호화 방법.The c vector is a non-uniform low density parity check code encoding method generated by cyclically accumulating the input vectors by an element value of the C matrix. 제15항에 있어서,The method of claim 15, 상기 b 벡터는 상기 B 행렬의 0이 아닌 원소의 위치에서 첫 번째 패리티 벡터를 원소 값만큼 순환 이동시켜 생성되는 비균일 저밀도 패리티 검사 부호의 부호화 방법.And the b vector is a non-uniform low density parity check code generated by circularly shifting the first parity vector by an element value at positions of nonzero elements of the B matrix.
KR1020040109020A 2004-12-20 2004-12-20 Apparatus and method for coding of irregular low density parity check code KR100678521B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040109020A KR100678521B1 (en) 2004-12-20 2004-12-20 Apparatus and method for coding of irregular low density parity check code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040109020A KR100678521B1 (en) 2004-12-20 2004-12-20 Apparatus and method for coding of irregular low density parity check code

Publications (2)

Publication Number Publication Date
KR20060070323A KR20060070323A (en) 2006-06-23
KR100678521B1 true KR100678521B1 (en) 2007-02-02

Family

ID=37164085

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040109020A KR100678521B1 (en) 2004-12-20 2004-12-20 Apparatus and method for coding of irregular low density parity check code

Country Status (1)

Country Link
KR (1) KR100678521B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001168733A (en) 1999-10-12 2001-06-22 Thomson Csf Process for constructing and coding ldpc code
JP2003115768A (en) 2001-07-11 2003-04-18 Internatl Business Mach Corp <Ibm> Low density parity check encoding method and device for data
KR20040106062A (en) * 2003-06-10 2004-12-17 학교법인 한국정보통신학원 System and Method of Construction Regular Low-Density Parity Check Codes
KR100525411B1 (en) * 2003-01-15 2005-11-02 엘지전자 주식회사 Method for channel coding in communication system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001168733A (en) 1999-10-12 2001-06-22 Thomson Csf Process for constructing and coding ldpc code
JP2003115768A (en) 2001-07-11 2003-04-18 Internatl Business Mach Corp <Ibm> Low density parity check encoding method and device for data
KR100525411B1 (en) * 2003-01-15 2005-11-02 엘지전자 주식회사 Method for channel coding in communication system
KR20040106062A (en) * 2003-06-10 2004-12-17 학교법인 한국정보통신학원 System and Method of Construction Regular Low-Density Parity Check Codes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문

Also Published As

Publication number Publication date
KR20060070323A (en) 2006-06-23

Similar Documents

Publication Publication Date Title
US11206049B2 (en) Transmission apparatus including encoder, reception apparatus including decoder, and associated methods
JP7372369B2 (en) Structural LDPC encoding, decoding method and device
KR101203340B1 (en) Turbo ldpc decoding
KR100502609B1 (en) Encoder using low density parity check code and encoding method thereof
USRE44420E1 (en) Decoding apparatus, decoding method, and program to decode low density parity check codes
US7318186B2 (en) Decoding method, decoding apparatus, and program to decode low density parity check codes
KR100809619B1 (en) Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
KR100941680B1 (en) Apparatus and method for generating of quasi-cyclic low density parity check codes
KR20090092892A (en) Method of performing decoding using LDPC code
WO2006115166A1 (en) Encoding apparatus and encoding method
KR20080096387A (en) Decoding apparatus
JP2007089064A (en) Decoding apparatus and receiving apparatus
KR20090040223A (en) Data decoding apparatus, data decoding method, data transmitting/receiving system, data receiving apparatus, data receiving method and program
US8020063B2 (en) High rate, long block length, low density parity check encoder
EP2951925B1 (en) Ldpc code design and encoding apparatus enabling the adjustment of code rate and codelength
KR100918741B1 (en) Apparatus and method for channel coding in mobile communication system
KR20110087268A (en) Decoding circuit and encoding circuit
JP4832447B2 (en) Decoding apparatus and method using channel code
US20100251063A1 (en) Decoding device, data storage device, data communication system, and decoding method
JP2007110265A (en) Decoding apparatus and decoding method
US20140122979A1 (en) Hardware Architecture and Implementation of Low Power Layered Multi-Level LDPC Decoder
Bajpai et al. A new construction method for large girth quasi-cyclic ldpc codes with optimized lower bound using chinese remainder theorem
KR100678521B1 (en) Apparatus and method for coding of irregular low density parity check code
EP2951926B1 (en) Ldpc code design and encoding apparatus for their application
Khan et al. A real time programmable encoder for low density parity check code as specified in the IEEE P802. 16E/D7 standard and its efficient implementation on a DSP processor

Legal Events

Date Code Title Description
A201 Request for examination
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: 20121206

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131209

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee