KR102424942B1 - Method of channel coding for communication systems and apparatus using the same - Google Patents

Method of channel coding for communication systems and apparatus using the same Download PDF

Info

Publication number
KR102424942B1
KR102424942B1 KR1020180088550A KR20180088550A KR102424942B1 KR 102424942 B1 KR102424942 B1 KR 102424942B1 KR 1020180088550 A KR1020180088550 A KR 1020180088550A KR 20180088550 A KR20180088550 A KR 20180088550A KR 102424942 B1 KR102424942 B1 KR 102424942B1
Authority
KR
South Korea
Prior art keywords
matrix
exponential matrix
exponential
column
type
Prior art date
Application number
KR1020180088550A
Other languages
Korean (ko)
Other versions
KR20190017652A (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 US16/100,268 priority Critical patent/US10756762B2/en
Publication of KR20190017652A publication Critical patent/KR20190017652A/en
Application granted granted Critical
Publication of KR102424942B1 publication Critical patent/KR102424942B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

패리티 검사 행렬을 변환하는 채널 코딩/디코딩 방법 및 이를 이용한 장치가 개시된다. 본 발명의 일실시예에 따른 채널 코딩 방법은 제1 지수 행렬을 로드하는 단계; 상기 제1 지수 행렬을 제2 지수 행렬로 변환하는 단계; 상기 제2 지수 행렬을 이용하여 필요한 블록 크기에 상응하는 패리티 검사 행렬을 생성하는 단계; 및 상기 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행하는 단계를 포함한다.Disclosed are a channel coding/decoding method for transforming a parity check matrix and an apparatus using the same. A channel coding method according to an embodiment of the present invention includes: loading a first exponential matrix; transforming the first exponential matrix into a second exponential matrix; generating a parity check matrix corresponding to a required block size using the second exponential matrix; and performing LDPC encoding using the parity check matrix.

Description

통신 시스템을 위한 채널 코딩 방법 및 이를 이용한 장치 {METHOD OF CHANNEL CODING FOR COMMUNICATION SYSTEMS AND APPARATUS USING THE SAME}Channel coding method for communication system and apparatus using the same

본 발명은 채널 코딩(channel coding) 기술에 관한 것으로, 특히 LDPC(low-density parity-check) 부호를 사용하는 통신시스템을 위한 데이터 인코딩 및 디코딩 기술에 관한 것이다.The present invention relates to a channel coding technique, and more particularly, to a data encoding and decoding technique for a communication system using a low-density parity-check (LDPC) code.

무선 통신 시스템들은 음성, 데이터 등과 같은 다양한 타입들의 통신 컨텐츠를 제공하기 위해 널리 사용된다. 이들 시스템들은 이용가능한 시스템 리소스들(예를 들어, 대역폭 및 송신 전력)을 공유함으로써 다중 사용자들과의 통신을 지원하는 것이 가능한 다중-액세스 시스템들일 수도 있다. 이러한 다중 액세스 시스템들의 예들은 코드 분할 다중 액세스(CDMA) 시스템들, 시간 분할 다중 액세스(TDMA) 시스템들, 주파수 분할 다중 액세스(FDMA) 시스템들, 제3 세대 파트너십 프로젝트(3GPP) 롱 텀 에볼루션(LTE) 시스템들, 롱 텀 에볼루션 어드밴스드(LTE-A) 시스템들, 및 직교 주파수 분할 다중 액세스(OFDMA) 시스템들을 포함한다.BACKGROUND Wireless communication systems are widely used to provide various types of communication content such as voice, data, and the like. These systems may be multiple-access systems capable of supporting communication with multiple users by sharing the available system resources (eg, bandwidth and transmit power). Examples of such multiple access systems are Code Division Multiple Access (CDMA) systems, Time Division Multiple Access (TDMA) systems, Frequency Division Multiple Access (FDMA) systems, Third Generation Partnership Project (3GPP) Long Term Evolution (LTE) systems. ) systems, Long Term Evolution Advanced (LTE-A) systems, and Orthogonal Frequency Division Multiple Access (OFDMA) systems.

현대 정보화 시대에서는, 이진 값들(예를 들어, 1들 및 0들)이 비디오, 오디오, 통계 정보 등과 같은 다양한 타입들의 정보를 표현 및 통신하는데 이용된다. 유감스럽게도, 이진 데이터들의 저장, 송신, 및/또는 프로세싱 동안, 에러들이 발생할 수 있다. 예를 들어, 원래 1이었던 데이터가 0으로 바뀔 수 있고, 원래 0이었던 데이터가 1로 바뀔 수 있다.In the modern information age, binary values (eg, ones and zeros) are used to represent and communicate various types of information such as video, audio, statistical information, and the like. Unfortunately, errors can occur during storage, transmission, and/or processing of binary data. For example, data that was originally 1 may be changed to 0, and data that was originally 0 may be changed to 1.

에러들에 대해 체크하고, 일부 경우들에 에러들을 정정하기 위한 메커니즘을 제공하기 위해, 이진 데이터는 신중히 설계된 리던던시를 도입하도록 코딩될 수 있다. 데이터의 유닛의 코딩은 코드 워드로 통칭되는 것을 생성한다. 그 리던던시로 인해, 코드 워드는 코드 워드가 생성된 데이터의 입력 유닛보다 더 많은 비트들을 포함하게 될 것이다. 이와 같이 정보 비트들에 패리티 비트들(리던던트 비트들)을 부가하는 것을 채널 코딩(channel coding)이라 한다.To check for errors and, in some cases, provide a mechanism for correcting errors, binary data can be coded to introduce carefully designed redundancy. Coding of units of data creates what are collectively referred to as code words. Because of that redundancy, the code word will contain more bits than the input unit of data from which the code word is generated. In this way, adding parity bits (redundant bits) to the information bits is called channel coding.

리던던트 비트들은 코드 워드를 생성하기 위해 인코더에 의해 송신된 비트 스트림에 부가된다. 송신된 코드 워드들로부터 발생하는 신호들이 수신 또는 프로세싱될 때, 신호에서 관측되는 바와 같은 코드 워드에 포함된 리던던트 정보는 원래의 데이터 유닛을 복구하기 위하여 수신된 데이터에서의 에러들을 식별 및/또는 정정하거나 또는 그 수신된 신호로부터 왜곡을 제거하는데 이용될 수 있다. 이러한 에러 체크 및/또는 정정은 디코딩 프로세스의 일부로서 구현될 수 있다.Redundant bits are added to the bit stream transmitted by the encoder to generate a code word. When signals originating from transmitted code words are received or processed, the redundant information contained in the code word as observed in the signal identifies and/or corrects errors in the received data to recover the original data unit. or to remove distortion from the received signal. Such error checking and/or correction may be implemented as part of the decoding process.

통신 시스템들은 종종 여러 상이한 레이트들로 동작할 필요가 있고, 최근 통신 시스템에서는 채널 코딩 기법으로 LDPC(low-density parity-check) 부호가 활발하게 사용되고 있다.Communication systems often need to operate at several different rates, and in recent communication systems, a low-density parity-check (LDPC) code is actively used as a channel coding technique.

일반적으로 통신 시스템은 광범위한 성능 레인지를 가지는 디바이스들에서 실용적으로 동작하기 위해, 인코더/디코더 구현을 위한 코스트를 낮추는 것이 요구된다.In general, a communication system is required to lower the cost for implementing an encoder/decoder in order to practically operate in devices with a wide performance range.

따라서, LDPC 인코딩/디코딩의 부호화/복호화 복잡도를 낮출 수 있는 새로운 채널 코딩 기법의 필요성이 절실하게 대두된다.Accordingly, there is an urgent need for a new channel coding technique capable of lowering the encoding/decoding complexity of LDPC encoding/decoding.

본 발명의 목적은 주어진 LDPC 부호의 패리티 검사 행렬(parity check matrix)을 변환(transform)하여 유사한 대수적 특성을 가지는 다른 패리티 검사 행렬을 생성하여 LDPC 인코딩/디코딩을 수행함으로써, 채널 인코딩/디코딩의 효율성을 극대화하는 것이다.An object of the present invention is to transform a parity check matrix of a given LDPC code to generate another parity check matrix having similar algebraic characteristics to perform LDPC encoding/decoding, thereby improving the efficiency of channel encoding/decoding. is to maximize

또한, 본 발명의 목적은 서로 다른 포맷을 가지는 LDPC 부호들의 패리티 검사 행렬들을 변환하여 하나의 통합된(unified) 포맷으로 통합하여 부호화/복호화 복잡도를 감소시키는 것이다.Another object of the present invention is to reduce encoding/decoding complexity by transforming parity check matrices of LDPC codes having different formats and integrating them into one unified format.

상기한 목적을 달성하기 위한 본 발명에 따른 채널 코딩 방법은, 제1 지수 행렬을 로드하는 단계; 상기 제1 지수 행렬을 제2 지수 행렬로 변환하는 단계; 상기 제2 지수 행렬을 이용하여 필요한 블록 크기에 상응하는 패리티 검사 행렬을 생성하는 단계; 및 상기 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행하는 단계를 포함한다.A channel coding method according to the present invention for achieving the above object includes: loading a first exponential matrix; transforming the first exponential matrix into a second exponential matrix; generating a parity check matrix corresponding to a required block size using the second exponential matrix; and performing LDPC encoding using the parity check matrix.

이 때, 제1 지수 행렬을 상기 제2 지수 행렬로 변환하는 단계는, 상기 제1 지수 행렬의 하나의 열에 대하여 순환 컬럼 퍼뮤테이션(circular column permutation)을 수행하여 컬럼 퍼뮤테이션된 지수 행렬을 생성하는 단계; 및 상기 컬럼 퍼뮤테이션된 지수 행렬의 0보다 큰 요소(element)에 대한 변환값을 생성하고, 상기 변환값을 이용하여 상기 제2 지수 행렬을 생성하는 단계를 포함할 수 있다.In this case, the converting of the first exponential matrix into the second exponential matrix includes performing circular column permutation on one column of the first exponential matrix to generate a column permuted exponential matrix. step; and generating a transform value for an element greater than 0 of the column permutated exponent matrix, and generating the second exponential matrix by using the transform value.

이 때, 상기 하나의 열은 상기 제1 지수 행렬의 (kb+1)번째 열(kb는 상기 제1 지수 행렬의 열의 수에서 행의 수를 뺀 자연수)일 수 있다.In this case, the one column may be a (k b +1)-th column of the first exponential matrix (k b is a natural number obtained by subtracting the number of rows from the number of columns of the first exponential matrix).

이 때, 제1 지수 행렬 및 제2 지수 행렬은 상기 제1 지수 행렬의 (kb+1)번째 열의 첫 4개의 원소들(elements)에 따라 제1 유형 및 제2 유형의 두 가지 유형으로 구분될 수 있다.In this case, the first exponential matrix and the second exponential matrix are divided into two types, a first type and a second type, according to the first four elements of the (k b +1)-th column of the first exponential matrix. can be

이 때, 상기 제1 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수(a)를 한 개만 포함하고, 상기 제2 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수(a)를 두 개 포함할 수 있다.In this case, the first type includes only one natural number (a) in which the first four elements are greater than zero, and the second type includes two natural numbers (a) in which the first four elements are greater than zero. can

이 때, 제1 지수 행렬이 상기 제1 유형인 경우, 상기 제2 지수 행렬은 상기 제2 유형이고, 상기 제1 지수 행렬이 상기 제2 유형인 경우, 상기 제2 지수 행렬은 상기 제1 유형일 수 있다.In this case, when the first exponential matrix is the first type, the second exponential matrix is the second type, and when the first exponential matrix is the second type, the second exponential matrix is the first type can

이 때, 순환 컬럼 퍼뮤테이션은 상기 0보다 큰 자연수(a)를 이용하여 수행될 수 있다.In this case, the recursive column permutation may be performed using the natural number (a) greater than 0.

이 때, 순환 컬럼 퍼뮤테이션은 하기 수학식을 이용하여 수행될 수 있다.In this case, the cyclic column permutation may be performed using the following equation.

[수학식][Equation]

Figure 112018075159235-pat00001
Figure 112018075159235-pat00001

(V'ij는 상기 컬럼 퍼뮤테이션된 지수 행렬의 요소, Vij는 상기 제1 지수 행렬의 요소, mod는 모듈레이션 연산자, Zmax는 최대 블록 크기, a는 상기 0보다 큰 자연수)(V' ij is an element of the column permuted exponential matrix, V ij is an element of the first exponential matrix, mod is a modulation operator, Z max is the maximum block size, a is a natural number greater than 0)

이 때, 상기 변환값은 상기 최대 블록 크기에서 상기 컬럼 퍼뮤테이션된 지수 행렬의 0보다 큰 요소(element)를 감산하여 생성될 수 있다.In this case, the transform value may be generated by subtracting an element greater than 0 of the column permutated exponential matrix from the maximum block size.

이 때, 제2 지수 행렬은 수학식을 이용하여 생성될 수 있다.In this case, the second exponential matrix may be generated using Equation.

[수학식][Equation]

Figure 112018075159235-pat00002
Figure 112018075159235-pat00002

(Wij는 상기 제2 지수 행렬의 요소, V'ij는 상기 컬럼 퍼뮤테이션된 지수 행렬의 요소, Zmax는 상기 최대 블록 크기)(W ij is an element of the second exponential matrix, V' ij is an element of the column permuted exponential matrix, and Z max is the maximum block size)

또한, 본 발명의 일실시예에 따른 채널 인코더는, 기존 패리티 검사 행렬에 상응하는 제1 지수 행렬에 관한 데이터를 저장하는 메모리; 및 상기 제1 지수 행렬을 변환하여 생성되는 제2 지수 행렬에 상응하는 패리티 검사 행렬을 생성하고, 생성된 상기 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행하는 프로세서를 포함한다.In addition, the channel encoder according to an embodiment of the present invention, a memory for storing data about the first exponential matrix corresponding to the existing parity check matrix; and a processor that generates a parity check matrix corresponding to a second exponential matrix generated by transforming the first exponential matrix, and performs LDPC encoding using the generated parity check matrix.

이 때, 제2 지수 행렬은 컬럼 퍼뮤테이션된 지수 행렬의 0보다 큰 요소(element)에 대한 변환값을 이용하여 생성되고, 상기 컬럼 퍼뮤테이션된 지수 행렬은 상기 제1 지수 행렬의 하나의 열에 대하여 순환 컬럼 퍼뮤테이션(circular column permutation)을 수행하여 생성될 수 있다.In this case, the second exponent matrix is generated using a transform value for an element greater than 0 of the column permutated exponent matrix, and the column permuted exponent matrix is generated for one column of the first exponent matrix. It may be generated by performing circular column permutation.

이 때, 하나의 열은 상기 제1 지수 행렬의 (kb+1)번째 열(kb는 상기 제1 지수 행렬의 열의 수에서 행의 수를 뺀 자연수)일 수 있다.In this case, one column may be a (k b +1)-th column of the first exponential matrix (k b is a natural number obtained by subtracting the number of rows from the number of columns of the first exponential matrix).

이 때, 제1 지수 행렬 및 제2 지수 행렬은 상기 제1 지수 행렬의 (kb+1)번째 열의 첫 4개의 원소들(elements)에 따라 제1 유형 및 제2 유형의 두 가지 유형으로 구분될 수 있다.In this case, the first exponential matrix and the second exponential matrix are divided into two types, a first type and a second type, according to the first four elements of the (k b +1)-th column of the first exponential matrix. can be

이 때, 제1 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수를 한 개만 포함하고, 상기 제2 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수를 두 개 포함할 수 있다.In this case, the first type may include only one natural number in which the first four elements are greater than 0, and the second type may include two natural numbers in which the first four elements are greater than zero.

이 때, 제1 지수 행렬이 상기 제1 유형인 경우, 상기 제2 지수 행렬은 상기 제2 유형이고, 상기 제1 지수 행렬이 상기 제2 유형인 경우, 상기 제2 지수 행렬은 상기 제1 유형일 수 있다.In this case, when the first exponential matrix is the first type, the second exponential matrix is the second type, and when the first exponential matrix is the second type, the second exponential matrix is the first type can

이 때, 순환 컬럼 퍼뮤테이션은 상기 0보다 큰 자연수를 이용하여 수행될 수 있다.In this case, the recursive column permutation may be performed using the natural number greater than 0.

이 때, 순환 컬럼 퍼뮤테이션은 하기 수학식을 이용하여 수행될 수 있다.In this case, the cyclic column permutation may be performed using the following equation.

[수학식][Equation]

Figure 112018075159235-pat00003
Figure 112018075159235-pat00003

(V'ij는 상기 컬럼 퍼뮤테이션된 지수 행렬의 요소, Vij는 상기 제1 지수 행렬의 요소, mod는 모듈레이션 연산자, Zmax는 최대 블록 크기, a는 상기 0보다 큰 자연수)(V' ij is an element of the column permuted exponential matrix, V ij is an element of the first exponential matrix, mod is a modulation operator, Z max is the maximum block size, a is a natural number greater than 0)

이 때, 제2 지수 행렬은 하기 수학식을 이용하여 생성될 수 있다.In this case, the second exponential matrix may be generated using the following equation.

[수학식][Equation]

Figure 112018075159235-pat00004
Figure 112018075159235-pat00004

(Wij는 상기 제2 지수 행렬의 요소, V'ij는 상기 컬럼 퍼뮤테이션된 지수 행렬의 요소, Zmax는 상기 최대 블록 크기)(W ij is an element of the second exponential matrix, V' ij is an element of the column permuted exponential matrix, and Z max is the maximum block size)

또한, 본 발명의 일실시예에 따른 채널 디코더는, 기존 패리티 검사 행렬에 상응하는 제1 지수 행렬에 관한 데이터를 저장하는 메모리; 및 상기 제1 지수 행렬을 변환하여 생성되는 제2 지수 행렬에 상응하는 패리티 검사 행렬을 생성하고, 생성된 상기 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행하는 프로세서를 포함한다.In addition, the channel decoder according to an embodiment of the present invention, a memory for storing data about the first exponential matrix corresponding to the existing parity check matrix; and a processor that generates a parity check matrix corresponding to a second exponential matrix generated by transforming the first exponential matrix, and performs LDPC decoding using the generated parity check matrix.

본 발명에 따르면, 주어진 LDPC 부호의 패리티 검사 행렬(parity check matrix)을 변환(transform)하여 유사한 대수적 특성을 가지는 다른 패리티 검사 행렬을 생성하여 LDPC 인코딩/디코딩을 수행함으로써, 채널 인코딩/디코딩의 효율성을 극대화할 수 있다.According to the present invention, LDPC encoding/decoding is performed by transforming a parity check matrix of a given LDPC code to generate another parity check matrix having similar algebraic characteristics, thereby increasing the efficiency of channel encoding/decoding. can be maximized.

또한, 본 발명은 서로 다른 포맷을 가지는 LDPC 부호들의 패리티 검사 행렬들을 변환하여 하나의 통합된(unified) 포맷으로 통합하여 부호화/복호화 복잡도를 감소시킬 수 있다.In addition, the present invention can reduce encoding/decoding complexity by transforming parity check matrices of LDPC codes having different formats and integrating them into one unified format.

또한, 본 발명은 변환 이전의 패리티 검사 행렬과 대수적인 특성이 대부분 그대로 유지되는 새로운 패리티 검사 행렬을 생성하므로, 채널 인코딩/디코딩시 성능 열화를 유발하지 않을 수 있다.In addition, since the present invention generates a new parity check matrix in which most of the logarithmic characteristics and the parity check matrix before transformation are maintained, performance degradation may not be caused during channel encoding/decoding.

도 1 및 도 2는 기본 그래프에 상응하는 이진 행렬들의 예들을 나타낸 도면들이다.
도 3 및 도 4는 각각 도 1 및 도 2에 도시된 기본 그래프에 상응하는 지수 행렬들의 예들을 나타낸 도면들이다.
도 5는 본 발명의 일실시예에 따른 채널 코딩/디코딩 방법을 나타낸 동작 흐름도이다.
도 6은 본 발명의 일실시예에 따른 통신 시스템을 나타낸 블록도이다.
도 7은 도 6에 도시된 채널 인코더 또는 채널 디코더의 일 예를 나타낸 블록도이다.
1 and 2 are diagrams illustrating examples of binary matrices corresponding to a basic graph.
3 and 4 are diagrams illustrating examples of exponential matrices corresponding to the basic graphs shown in FIGS. 1 and 2 , respectively.
5 is an operation flowchart illustrating a channel coding/decoding method according to an embodiment of the present invention.
6 is a block diagram illustrating a communication system according to an embodiment of the present invention.
7 is a block diagram illustrating an example of a channel encoder or a channel decoder shown in FIG. 6 .

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will be described in detail with reference to the accompanying drawings as follows. Here, repeated descriptions, well-known functions that may unnecessarily obscure the gist of the present invention, and detailed descriptions of configurations will be omitted. The embodiments of the present invention are provided in order to more completely explain the present invention to those of ordinary skill in the art. Accordingly, the shapes and sizes of elements in the drawings may be exaggerated for clearer description.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

LDPC(low-density parity-check) 부호는 일반적으로 패리티 검사 행렬(parity-check matrix)로 정의될 수 있는 선형 블록 부호(linear block code)로써, 통상적으로 Kldpc개의 비트 혹은 심볼로 구성되어 있는 정보어(information 또는 information word)를 입력 받아 LDPC 부호화를 통해 Nldpc개 비트로 구성되는 부호어(codeword)를 생성한다(Kldpc는 자연수, Nldpc는 Kldpc보다 큰 자연수).An LDPC (low-density parity-check) code is a linear block code that can be generally defined as a parity-check matrix, and is typically information composed of K ldpc bits or symbols. A codeword composed of N ldpc bits is generated through LDPC encoding by receiving an information or information word (K ldpc is a natural number, N ldpc is a natural number greater than K ldpc ).

최근에는 LDPC 부호의 부호화 및 복호화 성능뿐만 아니라 구현의 효율성 및 정보처리량(throughput) 극대화 등을 위해 준순환(quasi-cyclic) LDPC 부호에 기반한 부호화 및 복호화 기술이 제안되었다.Recently, an encoding and decoding technique based on a quasi-cyclic LDPC code has been proposed to maximize the efficiency of implementation and throughput as well as the encoding and decoding performance of the LDPC code.

본 발명에서는 주어진 준순환 LDPC 부호의 패리티 검사 행렬을 변환(transform)하여 유사한 대수적 특성(algebraic characteristics)을 가지는 LDPC 부호를 생성하는 기법을 제공한다. 이와 같이 변환을 통해 설계된 LDPC 부호는 변환의 대상인 주어진 준순환 LDPC 부호와 거의 동일한 대수적 특성을 가지게 되는데, 상기 변환을 통해서 LDPC 부호어의 패리티에 해당하는 패리티 검사 행렬의 부분행렬을 특정한 형태로 변환함으로써 부호화 복잡도를 감소시키는 효과를 얻을 수 있다.The present invention provides a technique for generating an LDPC code having similar algebraic characteristics by transforming a parity check matrix of a given quasi-cyclic LDPC code. The LDPC code designed through the transformation has almost the same algebraic characteristics as the given quasi-cyclic LDPC code that is the target of the transformation. An effect of reducing encoding complexity can be obtained.

이하 설명에서 사용되는 기호들과 용어들에 대해서는 2005년 8월 공개된 S. Myung, K. Yang 및 J. Kim의 "IEEE Transactions on Information Theory"의 pp. 2894-2901이나, 2006년 6월 공개된 S. Myung, K. Yang 및 J. Kim의 "Lifting methods for quasi-cyclic LDPC codes"의 pp. 489-497에 상세히 개시되어 있다.For the symbols and terms used in the description below, pp. pp. 2894-2901 or "Lifting methods for quasi-cyclic LDPC codes" by S. Myung, K. Yang and J. Kim published in June 2006, pp. 489-497 are disclosed in detail.

먼저, 준순환 LDPC 부호는 순환 순열 행렬(circulant permutation matrix)들에 기반하여 정의될 수 있는데, 여기서 Z x Z 크기를 가지는 순환 순열 행렬 P = (Pij), (Pij는 i번째 행, j번째 열의 원소)는 다음 수학식 1과 같이 정의될 수 있다.First, the quasi-cyclic LDPC code may be defined based on circulant permutation matrices, where P = (P ij ), (P ij is the i-th row, j having a size of Z x Z) element in the th column) may be defined as in Equation 1 below.

[수학식 1][Equation 1]

Figure 112018075159235-pat00005
Figure 112018075159235-pat00005

일반적으로 준순환 LDPC 부호의 패리티 검사 행렬은 하기 수학식 2와 같이 표현될 수 있다.In general, the parity check matrix of the quasi-cyclic LDPC code can be expressed as in Equation 2 below.

[수학식 2][Equation 2]

Figure 112018075159235-pat00006
Figure 112018075159235-pat00006

상기 수학식 2에서, Vij 값(i,j는 자연수)은 통상적으로 {-1, 0, 1, 2, ...} 범위에서 정의되는 정수인데, Vij >= 0에 대해서 PVij는 Z x Z 크기의 항등 행렬(identity matrix)의 각 원소를 오른쪽 방향으로 Vij만큼 순환 시프트(circular shirt) 시킨 순환 순열 행렬과 동일함을 알 수 있다. 또한, 본 발명에서 P-1은 Z x Z 크기의 영행렬(zero matrix)을 의미한다.In Equation 2, the V ij value (i, j is a natural number) is typically an integer defined in the range {-1, 0, 1, 2, ...}, for V ij >= 0, P Vij is It can be seen that it is the same as a circular permutation matrix in which each element of an identity matrix having a size of Z x Z is circularly shifted by V ij in the right direction. In addition, in the present invention, P -1 means a zero matrix having a size of Z x Z.

본 발명에서는 설명의 편의상 상기 수학식 2에서 하나의 Z x Z 부분 블록이 하나의 순환 순열 행렬에 대응되는 경우를 중심으로 설명하지만, 일반적으로 하나의 Z x Z 부분 블록이 복수개의 순환 순열 행렬들에 대응되는 경우도 본 발명의 기술사상이 동일하게 적용될 수 있다. 참고로, 복수 개의 순환 순열 행렬들로 구성된 Z x Z 부분 블록은 일반적으로 순환 행렬(circulant matrix)로 간주할 수 있으며, 이러한 순환 행렬 또는 순환 순열 행렬들로 수학식 2와 같이 구성된 LDPC 부호의 패리티 검사 행렬은 통상적으로 준순환 LDPC 부호로 취급된다.In the present invention, for convenience of description, in Equation 2, one Z x Z sub-block corresponds to one cyclic permutation matrix, but in general, one Z x Z sub-block includes a plurality of cyclic permutation matrices. In a case corresponding to , the technical idea of the present invention can be equally applied. For reference, a Z x Z partial block composed of a plurality of cyclic permutation matrices may be generally regarded as a circulant matrix, and the parity of the LDPC code composed of the circulant matrix or the cyclic permutation matrices as shown in Equation 2 The check matrix is usually treated as a quasi-cyclic LDPC code.

상기 수학식 2는 총 mb개의 행 블록(row block)들과 nb개의 열 블록(column block)들로 이루어진 준순환 LDPC 부호를 나타내는 패리티 검사 행렬이다. 따라서, 총 부호어의 길이는 nbZ임을 알 수 있으며, 만일 상기 패리티 검사 행렬이 최대 랭크(full rank)를 가지는 경우, kb = nb - mb라고 할 때, 정보어의 길이가 kbZ임을 알 수 있다.Equation 2 is a parity check matrix representing a quasi-cyclic LDPC code comprising a total of m b row blocks and n b column blocks. Accordingly, it can be seen that the length of the total codeword is n b Z, and if the parity check matrix has a full rank, when k b = n b - m b , the length of the information word is k It can be seen that b is Z.

상기 수학식 2의 패리티 검사 행렬에서 Z x Z 크기의 순환 순열 행렬을 원소 '1'로 가지며, Z x Z 크기의 영행렬을 원소 '0'으로 가지는 mb X nb 크기의 이진(binary) 행렬을 기본 그래프(basic graph), 기본 행렬(base matrix) 또는 모행렬(mother matrix)이라 할 수 있다.In the parity check matrix of Equation 2, a binary permutation matrix having a size of Z x Z as an element '1' and a zero matrix having a size of Z x Z as an element '0' is a binary (binary) of size m b X n b A matrix may be referred to as a basic graph, a base matrix, or a mother matrix.

도 1 및 도 2는 기본 그래프에 상응하는 이진 행렬들의 예들을 나타낸 도면들이다.1 and 2 are diagrams illustrating examples of binary matrices corresponding to a basic graph.

도 1 및 도 2에 도시된 예에서, 행렬 D는 대각 행렬(diagonal matrix)이고, 행렬 Z는 영행렬일 수 있다.1 and 2 , the matrix D may be a diagonal matrix, and the matrix Z may be a zero matrix.

도 1에 도시된 예에서, 이진 행렬은 46 x 68 행렬이고, Z는 4 x 42 영행렬이고, D는 42 x 42 대각 행렬이고, A는 0 또는 1을 원소로 갖는 4 x 22행렬이고, B는 첫 번째 행의 원소들이 1, 1, 0, 0, 두 번째 행의 원소들이 1, 1, 1, 0, 세 번째 행의 원소들이 0, 0, 1, 1, 및 네 번째 행의 원소들이 1, 0, 0, 1인 4 x 4 행렬이고, C는 0또는 1을 원소로 갖는 42 x 26 행렬일 수 있다. 이와 같은 구조의 기본 그래프를 BG#1 유형이라 할 수 있다.In the example shown in Figure 1, the binary matrix is a 46 x 68 matrix, Z is a 4 x 42 zero matrix, D is a 42 x 42 diagonal matrix, A is a 4 x 22 matrix with elements 0 or 1, B is the elements of the first row are 1, 1, 0, 0, the elements of the second row are 1, 1, 1, 0, the elements of the third row are 0, 0, 1, 1, and the elements of the fourth row is a 4 x 4 matrix in which s are 1, 0, 0, and 1, and C may be a 42 x 26 matrix having 0 or 1 as an element. A basic graph with such a structure can be called the BG#1 type.

도 2에 도시된 예에서, 이진 행렬은 42 x 52 행렬이고, Z는 4 x 38 영행렬이고, D는 38 x 38 대각 행렬이고, A는 0 또는 1을 원소로 갖는 4 x 10행렬이고, B는 첫 번째 행의 원소들이 1, 1, 0, 0, 두 번째 행의 원소들이 0, 1, 1, 0, 세 번째 행의 원소들이 1, 0, 1, 1, 및 네 번째 행의 원소들이 1, 0, 0, 1인 4 x 4 행렬이고, C는 0또는 1을 원소로 갖는 38 x 14 행렬일 수 있다. 이와 같은 구조의 기본 그래프를 BG#2 유형이라 할 수 있다.In the example shown in Figure 2, the binary matrix is a 42 x 52 matrix, Z is a 4 x 38 zero matrix, D is a 38 x 38 diagonal matrix, A is a 4 x 10 matrix with elements 0 or 1, B is the elements of the first row are 1, 1, 0, 0, the elements of the second row are 0, 1, 1, 0, the elements of the third row are 1, 0, 1, 1, and the elements of the fourth row are 1, 0, 0, and 1 in a 4 x 4 matrix, and C may be a 38 x 14 matrix having 0 or 1 as an element. A basic graph with such a structure can be called the BG#2 type.

도 1 및 도 2를 통해 설명한 기본 그래프 예들은 하기 표 1과 같이 '1'을 원소로 가지는 행과 열의 위치만을 나타내는 표에 상응할 수 있다. 이 때, 0에 상응하는 i 및 j는 각각 첫 번째 행과 첫 번째 열을 나타낸다.The basic graph examples described with reference to FIGS. 1 and 2 may correspond to tables showing only the positions of rows and columns having '1' as an element, as shown in Table 1 below. In this case, i and j corresponding to 0 indicate the first row and the first column, respectively.

Row
index (i)
Row
index (i)
Column indices (j) of every element of value 1 for BG#1Column indices (j) of every element of value 1 for BG#1 Column indices (j) of every element of value 1 for BG#2Column indices (j) of every element of value 1 for BG#2
00 0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 230, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 23 0, 1, 2, 3, 6, 9, 10, 110, 1, 2, 3, 6, 9, 10, 11 1One 0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23, 240, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23, 24 0, 3, 4, 5, 6, 7, 8, 9, 11, 120, 3, 4, 5, 6, 7, 8, 9, 11, 12 22 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24, 250, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24, 25 0, 1, 3, 4, 8, 10, 12, 130, 1, 3, 4, 8, 10, 12, 13 33 0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 250, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 25 1, 2, 4, 5, 6, 7, 8, 9, 10, 131, 2, 4, 5, 6, 7, 8, 9, 10, 13 44 0, 1, 260, 1, 26 0, 1, 11, 140, 1, 11, 14 55 0, 1, 3, 12, 16, 21, 22, 270, 1, 3, 12, 16, 21, 22, 27 0, 1, 5, 7, 11, 150, 1, 5, 7, 11, 15 66 0, 6, 10, 11, 13, 17, 18, 20, 280, 6, 10, 11, 13, 17, 18, 20, 28 0, 5, 7, 9, 11, 160, 5, 7, 9, 11, 16 77 0, 1, 4, 7, 8, 14, 290, 1, 4, 7, 8, 14, 29 1, 5, 7, 11, 13, 171, 5, 7, 11, 13, 17 88 0, 1, 3, 12, 16, 19, 21, 22, 24, 300, 1, 3, 12, 16, 19, 21, 22, 24, 30 0, 1, 12, 180, 1, 12, 18 99 0, 1, 10, 11, 13, 17, 18, 20, 310, 1, 10, 11, 13, 17, 18, 20, 31 1, 8, 10, 11, 191, 8, 10, 11, 19 1010 1, 2, 4, 7, 8, 14, 321, 2, 4, 7, 8, 14, 32 0, 1, 6, 7, 200, 1, 6, 7, 20 1111 0, 1, 12, 16, 21, 22, 23, 330, 1, 12, 16, 21, 22, 23, 33 0, 7, 9, 13, 210, 7, 9, 13, 21 1212 0, 1, 10, 11, 13, 18, 340, 1, 10, 11, 13, 18, 34 1, 3, 11, 221, 3, 11, 22 1313 0, 3, 7, 20, 23, 350, 3, 7, 20, 23, 35 0, 1, 8, 13, 230, 1, 8, 13, 23 1414 0, 12, 15, 16, 17, 21, 360, 12, 15, 16, 17, 21, 36 1, 6, 11, 13, 241, 6, 11, 13, 24 1515 0, 1, 10, 13, 18, 25, 370, 1, 10, 13, 18, 25, 37 0, 10, 11, 250, 10, 11, 25 1616 1, 3, 11, 20, 22, 381, 3, 11, 20, 22, 38 1, 9, 11, 12, 261, 9, 11, 12, 26 1717 0, 14, 16, 17, 21, 390, 14, 16, 17, 21, 39 1, 5, 11, 12, 271, 5, 11, 12, 27 1818 1, 12, 13, 18, 19, 401, 12, 13, 18, 19, 40 0, 6, 7, 280, 6, 7, 28 1919 0, 1, 7, 8, 10, 410, 1, 7, 8, 10, 41 0, 1, 10, 290, 1, 10, 29 2020 0, 3, 9, 11, 22, 420, 3, 9, 11, 22, 42 1, 4, 11, 301, 4, 11, 30 2121 1, 5, 16, 20, 21, 431, 5, 16, 20, 21, 43 0, 8, 13, 310, 8, 13, 31 2222 0, 12, 13, 17, 440, 12, 13, 17, 44 1, 2, 321, 2, 32 2323 1, 2, 10, 18, 451, 2, 10, 18, 45 0, 3, 5, 330, 3, 5, 33 2424 0, 3, 4, 11, 22, 460, 3, 4, 11, 22, 46 1, 2, 9, 341, 2, 9, 34 2525 1, 6, 7, 14, 471, 6, 7, 14, 47 0, 5, 350, 5, 35 2626 0, 2, 4, 15, 480, 2, 4, 15, 48 2, 7, 12, 13, 362, 7, 12, 13, 36 2727 1, 6, 8, 491, 6, 8, 49 0, 6, 370, 6, 37 2828 0, 4, 19, 21, 500, 4, 19, 21, 50 1, 2, 5, 381, 2, 5, 38 2929 1, 14, 18, 25, 511, 14, 18, 25, 51 0, 4, 390, 4, 39 3030 0, 10, 13, 24, 520, 10, 13, 24, 52 2, 5, 7, 9, 402, 5, 7, 9, 40 3131 1, 7, 22, 25, 531, 7, 22, 25, 53 1, 13, 411, 13, 41 3232 0, 12, 14, 24, 540, 12, 14, 24, 54 0, 5, 12, 420, 5, 12, 42 3333 1, 2, 11, 21, 551, 2, 11, 21, 55 2, 7, 10, 432, 7, 10, 43 3434 0, 7, 15, 17, 560, 7, 15, 17, 56 0, 12, 13, 440, 12, 13, 44 3535 1, 6, 12, 22, 571, 6, 12, 22, 57 1, 5, 11, 451, 5, 11, 45 3636 0, 14, 15, 18, 580, 14, 15, 18, 58 0, 2, 7, 460, 2, 7, 46 3737 1, 13, 23, 591, 13, 23, 59 10, 13, 4710, 13, 47 3838 0, 9, 10, 12, 600, 9, 10, 12, 60 1, 5, 11, 481, 5, 11, 48 3939 1, 3, 7, 19, 611, 3, 7, 19, 61 0, 7, 12, 490, 7, 12, 49 4040 0, 8, 17, 620, 8, 17, 62 2, 10, 13, 502, 10, 13, 50 4141 1, 3, 9, 18, 631, 3, 9, 18, 63 1, 5, 11, 511, 5, 11, 51 4242 0, 4, 24, 640, 4, 24, 64 4343 1, 16, 18, 25, 651, 16, 18, 25, 65 4444 0, 7, 9, 22, 660, 7, 9, 22, 66 4545 1, 6, 10, 671, 6, 10, 67

또한, 상기 수학식 2의 패리티 검사 행렬에서 순환 순열 행렬의 지수 또는 영행렬을 나타내는 지수 Vij 값으로 이루어진 하기 수학식 3과 같은 mb x nb 크기의 정수 행렬 V = (Vij)을 지수 행렬(exponent matrix), 시프트 행렬(shift matrix) 또는 시프트 값 행렬(shift value matrix)이라 한다.In addition, in the parity check matrix of Equation 2, an integer matrix V = (V ij ) having a size of m b x n b as in Equation 3 below, which consists of an exponent V ij representing an exponent or a zero matrix of a cyclic permutation matrix, is converted to an exponential matrix (exponent matrix), shift matrix (shift matrix), or shift value matrix (shift value matrix).

[수학식 3][Equation 3]

Figure 112018075159235-pat00007
Figure 112018075159235-pat00007

일반적으로 지수 행렬과, 지수 행렬에 대응되는 순환 순열 행렬의 크기 Z값을 알면 LDPC 부호의 패리티 검사 행렬을 정확히 알 수 있다. 다시 말해, 순환 순열 행렬의 크기 Z x Z를 알면 지수 행렬에 기반하여 LDPC 부호의 부호화 및 복호화를 수행할 수 있다. 이하에서 Z는 순환 순열 행렬의 크기 또는 블록 크기라 한다.In general, the parity check matrix of the LDPC code can be accurately known if the exponential matrix and the size Z value of the cyclic permutation matrix corresponding to the exponential matrix are known. In other words, if the size Z x Z of the cyclic permutation matrix is known, encoding and decoding of the LDPC code can be performed based on the exponential matrix. Hereinafter, Z is referred to as the size or block size of the cyclic permutation matrix.

LDPC 부호의 패리티 검사 행렬을 저장하는 방법은 지수 행렬을 저장하는 방법뿐만 아니라 다양한 방법이 이용될 수 있다. 예를 들어, 주어진 LDPC 부호의 기분 행렬과 상기 수학식 3에서 -1이 아닌 원소 Vij 값만 알고 있어도 LDPC 부호의 패리티 검사 행렬을 정확히 알 수 있다. 이와 같이, 경우에 따라서는 LDPC 부호의 기본 행렬과 지수 행렬에 대응되는 원소 Vij 값들에 대응되는 LDPC 수열 및 순환 순열 행렬의 크기 Z만 저장하고 있어도 LDPC 부호의 패리티 검사 행렬 전체를 저장하는 것과 동일한 효과를 얻을 수 있다. 결과적으로, 패리티 검사 행렬을 저장하는 방법은 대수적으로 동일한 효과를 가지는 다양한 방법이 있을 수 있다.As a method of storing the parity check matrix of the LDPC code, various methods as well as a method of storing an exponential matrix may be used. For example, the parity check matrix of the LDPC code can be accurately known even if only the mood matrix of the given LDPC code and the value of the element V ij other than -1 in Equation 3 are known. As described above, in some cases, even if only the size Z of the LDPC sequence and cyclic permutation matrix corresponding to the element V ij values corresponding to the basic matrix and the exponential matrix of the LDPC code is stored, it is the same as storing the entire parity check matrix of the LDPC code. effect can be obtained. As a result, there may be various methods for storing the parity check matrix that have the same logarithmic effect.

상기 수학식 3과 같이 주어진 하나의 지수 행렬 또는 LDPC 수열로부터 다양한 길이의 LDPC 부호를 생성하기 위해, 리프팅 방법이 사용될 수 있다. 예를 들어, 수학식 3과 같은 지수 행렬 V = (Vij)이 주어져 있다고 할 때, 각 원소 Vij를 블록 크기 Z에 대해 vij(Z) = Vij mod Z와 같이 변환한 다음 상기 vij(Z) 값에 대해 하기 수학식 4와 같이 Z x Z 크기의 순환 순열 행렬에 기반한 패리티 검사 행렬을 정의하여 LDPC 부호화 및 복호화에 사용할 수 있다.A lifting method may be used to generate LDPC codes of various lengths from one exponential matrix or LDPC sequence given as in Equation 3 above. For example, given the exponential matrix V = (V ij ) as in Equation 3, each element V ij is transformed for the block size Z as v ij (Z) = V ij mod Z, and then v For the ij (Z) value, a parity check matrix based on a cyclic permutation matrix having a size of Z x Z may be defined as shown in Equation 4 below and used for LDPC encoding and decoding.

[수학식 4][Equation 4]

Figure 112018075159235-pat00008
Figure 112018075159235-pat00008

주어진 하나의 지수 행렬의 원소 Vij에 대해 블록 크기 Z에 따라 vij(Z) = Vij mod Z와 같이 각 원소를 vij(Z)로 변환하여 새로운 지수 행렬로 사용하는 경우에는 V = (Vij)와 지원 가능한 Z 값만 알고 있으면 매우 다양한 지수 행렬을 저장하는 것과 동일한 효과를 얻을 수 있다. 따라서, LDPC 부호화 및 복호화 구현시 필요한 저장 효율성을 극대화할 수 있다.For an element V ij of one given exponential matrix, depending on the block size Z , V = ( V ij ) and supportable Z values are the same as storing a very diverse exponential matrix. Accordingly, it is possible to maximize the storage efficiency required for implementing LDPC encoding and decoding.

예를 들어, 하기 수학식 5와 같이 블록 크기들을 8개의 그룹으로 구분하여 각 블록 크기 그룹에 따라 서로 다른 지수 행렬을 적용할 수 있다. 하기 수학식 5의 블록 크기 그룹에 포함된 블록 크기들은 시스템에서 모두 사용될 수도 있고, 그 일부만이 사용될 수도 있다.For example, as shown in Equation 5 below, block sizes may be divided into eight groups, and different exponential matrices may be applied to each block size group. All of the block sizes included in the block size group in Equation 5 below may be used in the system, or only some of them may be used.

[수학식 5][Equation 5]

Figure 112018075159235-pat00009
Figure 112018075159235-pat00009

도 3 및 도 4는 각각 도 1 및 도 2에 도시된 기본 그래프에 상응하는 지수 행렬들의 예들을 나타낸 도면들이다.3 and 4 are diagrams illustrating examples of exponential matrices corresponding to the basic graphs shown in FIGS. 1 and 2 , respectively.

도 3 및 도 4를 참조하면, 도 3은 도 1의 기본 그래프에 상응하는 지수 행렬을 나타내고, 도 4는 도 2의 기본 그래프에 상응하는 지수 행렬을 나타낸다. 도 1 및 도 2에 도시된 행렬의 '0'은 도 3 및 도 4에 도시된 행렬에서 '-1'로 바뀌고, 도 1 및 도 2에 도시된 행렬의 '1'은 도 3 및 도 4에 도시된 행렬에서 {0, 1, 2, ...} 범위에서 정의되는 정수로 바뀐다. 특히, 도 1 및 도 2의 대각 행렬 D의 '1'들은 모두 도 3 및 도 4에 도시된 행렬에서 D'의 '0'들로 바뀐다.3 and 4 , FIG. 3 shows an exponential matrix corresponding to the basic graph of FIG. 1 , and FIG. 4 shows an exponential matrix corresponding to the basic graph of FIG. 2 . '0' in the matrix shown in FIGS. 1 and 2 is changed to '-1' in the matrix shown in FIGS. 3 and 4, and '1' in the matrix shown in FIGS. 1 and 2 is shown in FIGS. 3 and 4 In the matrix shown in , it is changed to an integer defined in the range {0, 1, 2, ...}. In particular, all '1's of the diagonal matrix D of FIGS. 1 and 2 are changed to '0's of D' in the matrix shown in FIGS. 3 and 4 .

도 3 및 도 4에 도시된 예에서, 행렬 D'는 대각 행렬(diagonal matrix)인 행렬 D의 원소 '0'을 '-1'로 대체하고, 대각 행렬인 행렬 D의 원소 '1'을 원소 '0'으로 대체한 행렬이다. 즉, 행렬 D'는 좌상단에서 우하단으로 향하는 대각선 원소들은 0이고, 나머지 원소들은 -1인 정사각 행렬일 수 있다. 도 3 및 도 4에 도시된 예에서 행렬 Z'는 영행렬인 행렬 Z의 원소 '0'을 '-1'로 대체한 행렬이다. 즉, 행렬 Z'는 모든 원소들이 -1인 행렬일 수 있다.3 and 4, the matrix D' replaces element '0' of matrix D, which is a diagonal matrix, with '-1', and element '1' of matrix D, which is a diagonal matrix, replaces element It is a matrix replaced with '0'. That is, the matrix D' may be a square matrix in which diagonal elements from the upper left to the lower right are 0 and the remaining elements are -1. In the examples shown in FIGS. 3 and 4 , the matrix Z' is a matrix in which the element '0' of the zero matrix Z is replaced with '-1'. That is, the matrix Z' may be a matrix in which all elements are -1.

도 3에 도시된 예에서, 지수 행렬은 46 x 68 행렬이고, Z'는 모든 원소가 '-1'인 4 x 42 행렬이고, D'는 좌상단에서 우하단으로 향하는 대각선 원소들은 '0'이고 나머지 원소들은 모두 '-1'인 42 x 42 행렬이고, A'는 {-1, 0, 1, 2, ...} 범위에서 정의되는 정수를 원소로 갖는 4 x 22행렬이고, B'는 {-1, 0, 1, 2, ...} 범위에서 정의되는 정수를 원소로 갖는 4 x 4 행렬이고, C'는 {-1, 0, 1, 2, ...} 범위에서 정의되는 정수를 원소로 갖는 42 x 26 행렬일 수 있다. 이와 같은 구조의 지수 행렬를 BG#1 유형이라 할 수 있다.In the example shown in Fig. 3, the exponential matrix is a 46 x 68 matrix, Z' is a 4 x 42 matrix in which all elements are '-1', D' is a diagonal element from top left to bottom right is '0', The remaining elements are all 42 x 42 matrix with '-1', A' is a 4 x 22 matrix with integers defined in the range {-1, 0, 1, 2, ...}, and B' is A 4 x 4 matrix whose elements are integers defined in the range {-1, 0, 1, 2, ...}, where C' is defined in the range {-1, 0, 1, 2, ...} It can be a 42 x 26 matrix with integers as elements. An exponential matrix having such a structure may be referred to as a BG#1 type.

도 4에 도시된 예에서, 지수 행렬은 42 x 52 행렬이고, Z'는 모든 원소가 '-1'인 4 x 38 행렬이고, D'는 좌상단에서 우하단으로 향하는 대각선 원소들은 '0'이고 나머지 원소들은 모두 '-1'인 38 x 38 행렬이고, A'는 {-1, 0, 1, 2, ...} 범위에서 정의되는 정수를 원소로 갖는 4 x 10행렬이고, B'는 {-1, 0, 1, 2, ...} 범위에서 정의되는 정수를 원소로 갖는 4 x 4 행렬이고, C'는 {-1, 0, 1, 2, ...} 범위에서 정의되는 정수를 원소로 갖는 38 x 14 행렬일 수 있다. 이와 같은 구조의 지수 행렬을 BG#2 유형이라 할 수 있다.In the example shown in Fig. 4, the exponential matrix is a 42 x 52 matrix, Z' is a 4 x 38 matrix in which all elements are '-1', D' is a diagonal element from top left to bottom right is '0', The remaining elements are all 38 x 38 matrix with '-1', A' is a 4 x 10 matrix with integers defined in the range {-1, 0, 1, 2, ...}, and B' is A 4 x 4 matrix whose elements are integers defined in the range {-1, 0, 1, 2, ...}, where C' is defined in the range {-1, 0, 1, 2, ...} It may be a 38 x 14 matrix with integers as elements. An exponential matrix having such a structure can be called a BG#2 type.

한편, 기본 그래프를 알고 있다는 가정하에서, 수학식 3의 지수 행렬은 요구되는 저장 메모리를 줄이거나 저장 효율을 높이기 위해서 -1이 아닌 지수 값들만을 저장할 수도 있다. 이 때, 컬럼-바이-컬럼(column-by-column)으로 -1이 아닌 지수 값들을 읽어서 저장할 수도 있고, 로-바이-로(row-by-row)로 -1이 아닌 지수 값들을 읽어서 저장할 수도 있다.Meanwhile, on the assumption that the basic graph is known, the exponential matrix of Equation 3 may store only exponential values other than -1 in order to reduce required storage memory or increase storage efficiency. At this time, exponent values other than -1 can be read and stored in column-by-column, or exponent values other than -1 can be read and stored row-by-row. may be

예를 들어, 상기 표 1의 BG#1, 도 1 및 도 3에 상응하는 지수 행렬은 아래와 같은 형태로 표현될 수 있다.For example, the exponential matrix corresponding to BG#1 of Table 1 and FIGS. 1 and 3 may be expressed in the following form.

[BG#1 - Set 1 의 효율적 저장 형태 (row-by-row)][BG#1 - Efficient storage format of Set 1 (row-by-row)]

Value of V = [250 69 226 159 100 10 59 229 110 191 9 195 23 190 35 239 31 1 0 2 239 117 124 71 222 104 173 220 102 109 132 142 155 255 28 0 0 0 106 111 185 63 117 93 229 177 95 39 142 225 225 245 205 251 117 0 0 121 89 84 20 150 131 243 136 86 246 219 211 240 76 244 144 12 1 0 157 102 0 205 236 194 231 28 123 115 0 183 22 28 67 244 11 157 211 0 220 44 159 31 167 104 0 112 4 7 211 102 164 109 241 90 0 103 182 109 21 142 14 61 216 0 98 149 167 160 49 58 0 77 41 83 182 78 252 22 0 160 42 21 32 234 7 0 177 248 151 185 62 0 206 55 206 127 16 229 0 40 96 65 63 75 179 0 64 49 49 51 154 0 7 164 59 1 144 0 42 233 8 155 147 0 60 73 72 127 224 0 151 186 217 47 160 0 249 121 109 131 171 0 64 142 188 158 0 156 147 170 152 0 112 86 236 116 222 0 23 136 116 182 0 195 243 215 61 0 25 104 194 0 128 165 181 63 0 86 236 84 6 0 216 73 120 9 0 95 177 172 61 0 221 112 199 121 0 2 187 41 211 0 127 167 164 159 0 161 197 207 103 0 37 105 51 120 0 198 220 122 0 167 151 157 163 0 173 139 149 0 0 157 137 149 0 167 173 139 151 0 149 157 137 0 151 163 173 139 0 139 157 163 173 0 149 151 167 0]Value of V = [250 69 226 159 100 10 59 229 110 191 9 195 23 190 35 239 31 1 0 2 239 117 124 71 222 104 173 220 102 109 132 142 155 255 28 0 0 0 106 111 185 63 117 93 229 177 95 39 142 225 225 245 205 251 117 0 0 121 89 84 20 150 131 243 136 86 246 219 211 240 76 244 144 12 1 0 157 102 0 205 236 194 231 28 123 115 0 183 22 28 67 244 11 157 211 0 220 44 159 31 167 104 0 112 4 7 211 102 164 109 241 90 0 103 182 109 21 142 14 61 216 0 98 149 167 160 49 58 0 77 41 83 182 78 252 22 0 160 42 21 32 234 7 0 177 248 151 185 62 0 206 55 206 127 16 229 0 40 96 65 63 75 179 0 64 49 49 51 154 0 7 164 59 1 144 0 42 233 8 155 147 0 60 73 72 127 224 0 151 186 217 47 160 0 249 121 109 131 171 0 64 142 188 158 0 156 147 170 152 0 112 86 236 116 222 0 23 136 116 182 0 195 243 215 61 0 25 104 194 0 128 165 181 63 0 86 236 84 6 0 216 73 120 9 0 95 177 172 61 0 221 112 199 121 0 2 187 41 211 0 127 167 164 159 0 161 197 207 103 0 37 105 51 120 0 198 220 122 0 167 151 157 163 0 173 139 149 0 0 157 137 149 0 16 7 173 139 151 0 149 157 137 0 151 163 173 139 0 139 157 163 173 0 149 151 167 0]

상기 예뿐만 아니라, 다른 지수 행렬들도 위와 같은 시퀀스 형태로 저장될 수 있다.In addition to the above example, other exponential matrices may be stored in the above sequence form.

본 발명에서 제안하고자 하는 패리티 검사 행렬의 변환 방법을 설명하기 위해서 수학식 5에 대한 각각의 블록 크기에 대해 적용하고자 하는 지수 행렬의 구조가 하기 수학식 6 내지 9의 4가지 중 하나와 같다고 하자.In order to describe the method of transforming the parity check matrix proposed by the present invention, it is assumed that the structure of the exponential matrix to be applied to each block size of Equation 5 is the same as one of four of Equations 6 to 9 below.

[수학식 6][Equation 6]

Figure 112018075159235-pat00010
Figure 112018075159235-pat00010

[수학식 7][Equation 7]

Figure 112018075159235-pat00011
Figure 112018075159235-pat00011

[수학식 8][Equation 8]

Figure 112018075159235-pat00012
Figure 112018075159235-pat00012

[수학식 9][Equation 9]

Figure 112018075159235-pat00013
Figure 112018075159235-pat00013

상기 수학식 6 내지 9의 지수 행렬들은 모두 도 3 또는 도 4의 구조를 갖는다. 즉, 수학식 6 내지 9의 첫 번째 행의 (kb+1)번째 열부터 (kb+4)번째 열의 요소들, 두 번째 행의 (kb+1)번째 열부터 (kb+4)번째 열의 요소들, 세 번째 행의 (kb+1)번째 열부터 (kb+4)번째 열의 요소들 및 네 번째 행의 (kb+1)번째 열부터 (kb+4)번째 열의 요소들로 이루어진 4 x 4 행렬은 도 3 및 도 4의 B'에 해당한다.All of the exponential matrices of Equations 6 to 9 have the structure of FIG. 3 or FIG. 4 . That is, the elements of the (k b +1)-th column to the (k b +4)-th column of the first row of Equations 6 to 9, and the (k b +1)-th column of the second row (k b +4) )th column elements, the (k b +1)th to (k b +4)th columns of the third row, and the (k b +1 ) th column to the (k b +4)th column of the fourth row A 4 x 4 matrix composed of column elements corresponds to B' in FIGS. 3 and 4 .

상기 수학식 6 내지 9에서, a는 1 <= a <= (Zmax -1)을 만족하는 정수이다(Zmax는 최대 블록 크기). 이 때, Zmax는 상기 지수 행렬 V = (Vij)를 적용하기 위해 정의된 블록 크기 그룹 내에서 가장 큰 블록의 크기를 의미할 수 있다.In Equations 6 to 9, a is an integer satisfying 1 <= a <= (Z max -1) (Z max is the maximum block size). In this case, Z max may mean the size of the largest block in the block size group defined to apply the exponential matrix V = (V ij ).

이 때, 수학식 6 및 7과 같이 지수 행렬의 (kb+1)번째 열블록의 첫 4개 원소가 "한 개의 a, 한 개의 -1, 두 개의 0"으로 구성된 지수 행렬들은 타입 A로 분류하고, 수학식 8 및 9와 같이 지수 행렬의 (kb+1)번째 열블록의 첫 4개 원소가 "두 개의 a, 한 개의 -1, 한 개의 0"으로 구성된 지수 행렬들은 타입 B로 분류될 수 있다.At this time, as shown in Equations 6 and 7, the exponential matrices in which the first four elements of the (k b +1)-th column block of the exponential matrix are composed of "one a, one -1, two zeros" are type A As shown in Equations 8 and 9, the exponential matrices in which the first four elements of the (k b +1)-th column block of the exponential matrix are composed of "two a, one -1, one 0" are type B. can be classified.

도 3에 도시된 도 1에 상응하는 지수 행렬의 경우, B' 매트릭스의 첫 번째 열의 세 번째 요소가 -1이므로 수학식 6 또는 수학식 8의 지수 행렬 구조에 상응할 수 있고, 도 4에 도시된 도 2에 상응하는 지수 행렬의 경우, B' 매트릭스의 두 번째 요소가 -1이므로 수학식 7 또는 수학식 9의 지수 행렬 구조에 상응할 수 있다.In the case of the exponential matrix corresponding to FIG. 1 shown in FIG. 3, since the third element of the first column of the B' matrix is -1, it may correspond to the exponential matrix structure of Equation 6 or Equation 8, as shown in FIG. In the case of the exponential matrix corresponding to FIG. 2, since the second element of the B' matrix is -1, it may correspond to the exponential matrix structure of Equation 7 or 9. FIG.

결국, 도 3 및 도 4에 도시된 구조를 갖는 지수 행렬들은 타입 A 또는 타입 B 둘 중의 하나의 타입으로 분류될 수 있다.As a result, exponential matrices having the structures shown in FIGS. 3 and 4 may be classified into either type A or type B.

본 발명의 일실시예에 따르면, 서로 다른 포맷(타입)을 가지는 LDPC 부호의 패리티 검사 행렬을 변환하여 하나의 포맷의 패리티 검사 행렬들로 통합될 수 있다. 이 때, 패리티 검사 행렬의 포맷은 패리티 검사 행렬의 패리티에 대응되는 부분 행렬의 구조를 의미하는데, 패리티에 대응되는 부분 행렬의 구조가 동일한 경우에는 LDPC 부호의 부호화/복호화 과정을 동일하게 적용할 수 있다.According to an embodiment of the present invention, parity check matrices of LDPC codes having different formats (types) may be converted and integrated into one format parity check matrices. In this case, the format of the parity check matrix means the structure of a partial matrix corresponding to the parity of the parity check matrix. If the structures of the partial matrix corresponding to the parity are the same, the encoding/decoding process of the LDPC code can be equally applied. have.

본 발명의 일실시예에 따르면, 상기 수학식 8 또는 9의 포맷(타입 B)을 갖는 지수 행렬들은 상기 수학식 6 또는 7의 포맷(타입 A)을 갖는 지수 행렬들로 변환된다. 이하에서는 설명의 편의를 위해, 수학식 8의 포맷을 갖는 지수 행렬을 수학식 6의 포맷을 갖는 지수 행렬로 변환하는 과정을 예로 들어 상세히 설명한다.According to an embodiment of the present invention, exponential matrices having the format (type B) of Equation 8 or 9 are converted into exponential matrices having the format (type A) of Equation 6 or 7 above. Hereinafter, for convenience of explanation, a process of converting an exponential matrix having the format of Equation 8 into an exponential matrix having the format of Equation 6 will be described in detail as an example.

마찬가지로, 본 발명에 따르면 수학식 6의 포맷을 갖는 지수 행렬을 수학식 8의 포맷을 갖는 지수 행렬로 변환하는 것도 가능하다.Similarly, according to the present invention, it is also possible to convert an exponential matrix having the format of Equation 6 into an exponential matrix having the format of Equation 8.

뿐만 아니라, 유사한 과정을 적용하여 수학식 9와 수학식 7은 상호 변환이 가능하다.In addition, by applying a similar process, Equation 9 and Equation 7 can be mutually converted.

패리티 검사 행렬에서 컬럼 퍼뮤테이션(column permutation)은 부호어 비트의 순서만 재정렬하는 효과를 의미하기 때문에 이를 적용하여도 부호의 성능에는 변화가 없다. 따라서, 어떠한 컬럼 퍼뮤테이션을 적용해도 패리티 검사 행렬의 대수적인 특성이 변화되지는 않는다. 본 발명에서는 준순환 LDPC 부호에 기반한 부호화 및 복호화 방법 및 장치를 고려하고 있기 때문에 컬럼 퍼뮤테이션도 준순환 LDPC 부호의 특성을 이용하여 적용할 수 있다.Since column permutation in the parity check matrix refers to the effect of rearranging only the order of codeword bits, there is no change in code performance even if this is applied. Therefore, the logarithmic characteristic of the parity check matrix does not change even if any column permutation is applied. In the present invention, since the encoding and decoding method and apparatus based on the quasi-cyclic LDPC code are considered, column permutation can also be applied using the characteristics of the quasi-cyclic LDPC code.

수학식 8의 (kb+1)번째 열블록에 대한 지수에 모두 -a를 적용한 후, Zmax에 대한 모듈로(modulo) 연산을 수행하면, 패리티 검사 행렬에서의 순환 컬럼 퍼뮤테이션(circular column permutation)을 적용하는 것과 같은 효과를 나타내며, 이는 하기 수학식 10과 같이 표현될 수 있다.If -a is applied to all exponents of the (k b +1)-th column block in Equation 8 and modulo operation is performed on Z max , circular column permutation in the parity check matrix permutation), which can be expressed as in Equation 10 below.

[수학식 10][Equation 10]

Figure 112018075159235-pat00014
Figure 112018075159235-pat00014

이 때, V'ij는 컬럼 퍼뮤테이션된 지수 행렬의 요소이고, Vij는 제1 지수 행렬의 요소이고, mod는 모듈레이션 연산자이고, Zmax는 최대 블록 크기이고, a는 0보다 큰 자연수이다.In this case, V' ij is an element of the column permuted exponential matrix, V ij is an element of the first exponential matrix, mod is a modulation operator, Z max is the maximum block size, and a is a natural number greater than 0.

상기 수학식 10은 (kb+1)번째 열블록에만 적용된다.Equation 10 is applied only to the (k b +1)-th column block.

이 때, Vij=-1은 영행렬을 의미하므로, 해당 행렬에 어떤 컬럼 퍼뮤테이션을 적용하여도 그 결과는 항상 영행렬이다. 즉, Vij=-1에는 어떤 지수 값을 더하거나 빼주어도 항상 그대로 Vij=-1이다. 결국, 수학식 8의 (kb+1)번째 열블록에 대한 지수값 중 -1이 아닌 지수값들에 -a를 적용한 후, Zmax에 대한 모듈로(modulo) 연산을 적용한 결과는 하기 수학식 11과 같이 표현될 수 있다.At this time, since V ij =-1 means a zero matrix, the result is always a zero matrix no matter what column permutation is applied to the corresponding matrix. In other words, V ij =-1 is always the same no matter what exponent value is added or subtracted to V ij =-1. As a result, after applying -a to the exponent values other than -1 among the exponent values for the (k b +1)-th column block in Equation 8, the result of applying the modulo operation to Z max is obtained by the following equation It can be expressed as Equation 11.

[수학식 11][Equation 11]

Figure 112018075159235-pat00015
Figure 112018075159235-pat00015

본 발명에서는 수학식 5와 사전에 결정되어 있는(predetermined) 블록 크기 그룹에 대한 LDPC 부호화 및 복호화를 고려하고 있으며, 수학식 5의 각 블록 그룹에 포함되어 있는 블록 크기들은 서로 배수 관계에 있기 때문에, 상기 수학식 10과 같이 Zmax에 대한 모듈로 연산을 적용하여도 대수적 특성에는 변함이 없다.In the present invention, Equation 5 and LDPC encoding and decoding for a predetermined block size group are considered. Even if the modulo operation for Z max is applied as in Equation 10 above, the algebraic characteristic is not changed.

이후, 수학식 11과 같이 변환된 지수 행렬 V' = (V'ij)에 하기 수학식 12를 적용하여 Vw = (Wij)를 생성한다.Thereafter, Vw = (W ij ) is generated by applying Equation 12 below to the exponential matrix V' = (V' ij ) transformed as in Equation 11.

[수학식 12][Equation 12]

Figure 112018075159235-pat00016
Figure 112018075159235-pat00016

이 때, Wij는 제2 지수 행렬의 요소이고, V'ij는 컬럼 퍼뮤테이션된 지수 행렬의 요소이고, Zmax는 상기 최대 블록 크기이다.In this case, W ij is an element of the second exponential matrix, V' ij is an element of the column permutated exponential matrix, and Z max is the maximum block size.

상기 수학식 12에서도 Zmax는 상기 지수 행렬을 적용하기 위해 정의된 블록 크기 그룹 내에서 가장 큰 블록 크기를 나타낼 수 있다.Also in Equation 12, Z max may represent the largest block size within a block size group defined to apply the exponential matrix.

최종적으로 생성된 Vw = (Wij)은 하기 수학식 13과 같이 표시될 수 있다. The finally generated Vw = (W ij ) may be expressed as in Equation 13 below.

[수학식 13][Equation 13]

Figure 112018075159235-pat00017
Figure 112018075159235-pat00017

수학식 13의 구조를 살펴보면, Vw = (Wij)의 (kb+1)번째 열블록의 첫 4개 원소들이 0, a, -1, 0으로, 수학식 6의 지수 행렬의 (kb+1)번째 열블록의 첫 4개 원소들과 동일하다. 즉, 수학식 8의 타입 B 지수 행렬이, 수학식 6의 타입 A 지수 행렬로 변환된 것을 알 수 있다.Looking at the structure of Equation 13, the first four elements of the (k b +1)-th column block of Vw = (W ij ) are 0, a, -1, 0, and (k b of the exponential matrix of Equation 6) +1) Same as the first 4 elements of the first column block. That is, it can be seen that the type B exponent matrix of Equation 8 is transformed into the type A exponent matrix of Equation 6 .

이상에서 설명한 본 발명의 일실시예를 적용하면, 수학식 6의 지수 행렬(타입 A)은 수학식 8의 지수 행렬(타입 B)과 상호변환되고, 수학식 7의 지수 행렬(타입 A)은 수학식 9의 지수 행렬(타입 B)과 상호변환됨을 알 수 있다.When one embodiment of the present invention described above is applied, the exponential matrix (type A) of Equation 6 is inter-transformed with the exponential matrix (type B) of Equation 8, and the exponential matrix (type A) of Equation 7 is It can be seen that it is inter-transformed with the exponential matrix (type B) of Equation 9.

전술한 바와 같이, 기본 그래프를 알고 있다는 가정 하에서, 수학식 13의 지수 행렬은 요구되는 저장 메모리를 줄이거나 저장 효율을 높이기 위해 -1이 아닌 지수값들만을 저장하는 방식으로 저장될 수 있다. 이 때, 컬럼-바이-컬럼(column-by-column)으로 -1이 아닌 지수 값을 읽어서 저장할 수도 있고, 로-바이-로(row-by-row) 방향으로 -1이 아닌 지수 값을 읽어서 저장할 수도 있다.As described above, on the assumption that the basic graph is known, the exponential matrix of Equation 13 may be stored in such a way that only exponential values other than -1 are stored in order to reduce required storage memory or increase storage efficiency. At this time, you can read and store an exponent value other than -1 in the column-by-column direction, or read an exponent value other than -1 in the row-by-row direction. You can also save it.

예를 들어, 전술한 표 1의 BG#1, 도 1 및 도 3에 상응하는 로-바이-로(row-by-row)로 저장된 지수 행렬이 상기 수학식 10 및 수학식 12를 이용하여 변환된 지수 행렬이 컬럼-바이-컬럼(column-by-column)으로 저장되면 아래와 같은 형태로 표현될 수 있다.For example, the exponential matrix stored in row-by-row corresponding to BG#1 of Table 1 and FIGS. 1 and 3 is transformed using Equations 10 and 12 above. If the exponential matrix is stored as a column-by-column, it can be expressed in the form below.

[BG#1 - Set 1의 변환 결과의 효율적 저장 형태 (column-by-column)][BG#1 - Efficient storage format of the conversion result of Set 1 (column-by-column)]

Value of V W = [6 254 150 135 99 51 73 36 144 153 179 96 79 50 216 249 196 105 192 144 61 128 40 35 129 219 89 99 107 117 187 145 167 154 20 212 252 74 158 215 214 160 192 214 183 7 100 233 231 170 161 254 95 58 83 89 105 107 30 17 71 107 109 13 69 97 139 172 62 249 8 207 70 170 117 83 132 193 236 97 89 20 41 91 99 156 185 139 135 246 163 106 234 120 152 59 105 34 27 125 225 96 105 184 140 79 89 107 99 152 79 13 89 207 129 62 119 197 83 161 39 105 117 93 27 217 120 228 147 235 191 32 86 183 99 89 146 36 170 189 235 224 207 209 140 215 65 154 10 25 45 173 201 23 114 144 49 93 247 114 37 12 114 22 193 248 68 136 36 147 31 45 152 198 92 74 20 57 151 61 124 31 50 195 92 205 233 114 16 228 154 74 129 197 147 93 101 11 180 245 242 240 255 98 97 107 66 51 12 99 195 249 181 101 104 172 136 105 83 221 1 5 92 109 75 0 17 139 112 45 40 71 205 125 225 228 244 133 147 178 27 112 85 193 45 0 1 0 142 16 5 103 97 35 85 154 84 0 0 234 194 134 0 0 166 247 135 119 0 0 77 250 195 117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]Value of V W = [6 254 150 135 99 51 73 36 144 153 179 96 79 50 216 249 196 105 192 144 61 128 40 35 129 219 89 99 107 117 187 145 167 154 20 212 252 74 158 215 214 160 192 214 183 7 100 233 231 170 161 254 95 58 83 89 105 107 30 17 71 107 109 13 69 97 139 172 62 249 8 207 70 170 117 83 132 193 236 97 89 20 41 91 99 156 185 139 135 246 163 106 234 120 152 59 105 34 27 125 225 96 105 184 140 79 89 107 99 152 79 13 89 207 129 62 119 197 83 161 39 105 117 93 27 217 120 228 147 235 191 32 86 183 99 89 146 36 170 189 235 224 207 209 140 215 65 154 10 25 45 173 201 23 114 144 49 93 247 114 37 12 114 22 193 248 68 136 36 147 31 45 152 198 92 74 20 57 151 61 124 31 50 195 92 205 233 114 16 228 154 74 129 197 147 93 101 11 180 245 242 240 255 98 97 107 66 51 12 99 195 249 181 101 104 172 136 105 83 221 1 5 92 109 75 0 17 139 112 45 40 71 205 125 225 228 244 133 147 178 27 112 85 193 45 0 1 0 142 16 5 103 97 35 85 154 84 0 0 234 194 134 0 0 166 247 135 119 0 0 77 250 195 117 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

또는, 전술한 표 1의 BG#1, 도 1 및 도 3에 상응하는 로-바이-로(row-by-row)로 저장된 지수 행렬이 상기 수학식 10 및 수학식 12를 이용하여 변환된 지수 행렬이 로-바이-로(row-by-row)로 저장되면 아래와 같은 형태로 표현될 수 있다.Alternatively, the exponent matrix stored in row-by-row corresponding to BG#1 of Table 1 and FIGS. 1 and 3 is an exponent converted using Equations 10 and 12 above. When a matrix is stored as row-by-row, it can be expressed in the form below.

[BG#1 - Set 1의 변환 결과의 효율적 저장 형태 (row-by-row)][BG#1 - Efficient storage format of the conversion result of Set 1 (row-by-row)]

Value of V W = [6 187 30 97 156 246 197 27 146 65 247 61 233 66 221 17 225 0 0 254 17 139 132 185 34 152 83 36 154 147 124 114 101 1 228 1 0 0 150 145 71 193 139 163 27 79 161 217 114 31 31 11 51 5 139 0 0 135 167 172 236 106 125 13 120 170 10 37 45 16 180 12 112 244 0 0 99 154 0 51 20 62 25 228 133 142 0 73 234 228 189 12 245 99 45 0 36 212 97 225 89 152 0 144 252 249 45 154 92 147 16 166 0 153 74 147 235 114 242 195 40 0 158 107 89 96 207 198 0 179 215 173 74 178 5 234 0 96 214 235 224 22 249 0 79 8 105 71 194 0 50 201 50 129 240 27 0 216 160 191 193 181 77 0 192 207 207 205 103 0 249 92 197 255 112 0 214 23 248 101 109 0 196 183 184 129 32 0 105 70 39 209 97 0 7 135 147 125 85 0 192 114 68 98 0 100 109 86 104 0 144 170 20 140 35 0 233 120 140 74 0 61 13 41 195 0 231 152 62 0 128 91 75 193 0 170 20 172 250 0 40 183 136 247 0 161 79 85 195 0 35 144 57 135 0 254 69 215 45 0 129 89 92 97 0 95 59 49 154 0 219 151 205 136 0 58 36 134 0 89 105 99 93 0 83 117 107 0 0 99 119 107 0 89 83 117 105 0 107 99 119 0 105 93 83 117 0 117 99 93 84 0 107 105 89 0]Value of V W = [6 187 30 97 156 246 197 27 146 65 247 61 233 66 221 17 225 0 0 254 17 139 132 185 34 152 83 36 154 147 124 114 101 1 228 1 0 0 150 145 71 193 139 163 27 79 161 217 114 31 31 11 51 5 139 0 0 135 167 172 236 106 125 13 120 170 10 37 45 16 180 12 112 244 0 0 99 154 0 51 20 62 25 228 133 142 0 73 234 228 189 12 245 99 45 0 36 212 97 225 89 152 0 144 252 249 45 154 92 147 16 166 0 153 74 147 235 114 242 195 40 0 158 107 89 96 207 198 0 179 215 173 74 178 5 234 0 96 214 235 224 22 249 0 79 8 105 71 194 0 50 201 50 129 240 27 0 216 160 191 193 181 77 0 192 207 207 205 103 0 249 92 197 255 112 0 214 23 248 101 109 0 196 183 184 129 32 0 105 70 39 209 97 0 7 135 147 125 85 0 192 114 68 98 0 100 109 86 104 0 144 170 20 140 35 0 233 120 140 74 0 61 13 41 195 0 231 152 62 0 128 91 75 193 0 170 20 172 250 0 40 183 136 247 0 161 79 85 195 0 35 144 57 135 0 254 69 215 45 0 129 89 92 97 0 95 59 49 154 0 219 151 205 136 0 58 36 134 0 89 105 99 93 0 83 117 107 0 0 99 119 107 0 89 83 117 105 0 107 99 119 0 105 93 83 117 0 117 99 93 84 0 107 105 89 0]

상기 수학식 13의 지수 행렬에 블록 크기(Z)에 따른 리프팅 기법을 적용하면, 다양한 블록 크기들에 대해 적절한 패리티 검사 행렬을 생성하여 LDPC 부호화 및 복호화에 적용할 수 있다.When a lifting technique according to the block size (Z) is applied to the exponential matrix of Equation 13, an appropriate parity check matrix for various block sizes can be generated and applied to LDPC encoding and decoding.

[수학식 14][Equation 14]

Figure 112018075159235-pat00018
Figure 112018075159235-pat00018

이 때, Z는 블록 크기를 나타낸다.In this case, Z represents the block size.

최종적으로, 패러티 검사 행렬은 하기 수학식 15와 같이 표현될 수 있다.Finally, the parity check matrix may be expressed as Equation 15 below.

[수학식 15][Equation 15]

Figure 112018075159235-pat00019
Figure 112018075159235-pat00019

이 때, P는 순환 순열 행렬을 나타내고, I는 항등 행렬을 나타내고, O은 영행렬을 나타낼 수 있다.In this case, P may represent a cyclic permutation matrix, I may represent an identity matrix, and O may represent a zero matrix.

도 5는 본 발명의 일실시예에 따른 채널 코딩/디코딩 방법을 나타낸 동작 흐름도이다.5 is an operation flowchart illustrating a channel coding/decoding method according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 일실시예에 따른 채널 코딩/디코딩 방법은 제1 지수 행렬을 로드한다(S510).Referring to FIG. 5 , in the channel coding/decoding method according to an embodiment of the present invention, a first exponential matrix is loaded ( S510 ).

또한, 본 발명의 일실시예에 따른 채널 코딩/디코딩 방법은 상기 제1 지수 행렬을 제2 지수 행렬로 변환한다(S520).In addition, the channel coding/decoding method according to an embodiment of the present invention converts the first exponential matrix into a second exponential matrix ( S520 ).

이 때, 단계(S520)는 상기 제1 지수 행렬의 하나의 열에 대하여 순환 컬럼 퍼뮤테이션(circular column permutation)을 수행하여 컬럼 퍼뮤테이션된 지수 행렬을 생성하는 단계(수학식 10); 및 상기 컬럼 퍼뮤테이션된 지수 행렬의 0보다 큰 요소(element)에 대한 변환값을 생성하고, 상기 변환값을 이용하여 상기 제2 지수 행렬을 생성하는 단계(수학식 12)를 포함할 수 있다.In this case, step S520 may include generating a column permutated exponential matrix by performing circular column permutation on one column of the first exponential matrix (Equation 10); and generating a transform value for an element greater than 0 of the column permutated exponent matrix, and generating the second exponential matrix by using the transform value (Equation 12).

이 때, 하나의 열은 상기 제1 지수 행렬의 (kb+1)번째 열(kb는 상기 제1 지수 행렬의 열의 수에서 행의 수를 뺀 자연수)일 수 있다.In this case, one column may be a (k b +1)-th column of the first exponential matrix (k b is a natural number obtained by subtracting the number of rows from the number of columns of the first exponential matrix).

이 때, 상기 제1 지수 행렬( V = (Vij)) 및 제2 지수 행렬( V' = (V'ij))은 상기 제1 지수 행렬의 (kb+1)번째 열의 첫 4개의 원소들(elements)에 따라 제1 유형(타입 A) 및 제2 유형(타입 B)의 두 가지 유형으로 구분될 수 있다.In this case, the first exponential matrix ( V = (V ij )) and the second exponential matrix ( V' = (V' ij )) are the first four elements of the (k b +1)-th column of the first exponential matrix According to the elements (elements), it may be divided into two types: a first type (type A) and a second type (type B).

이 때, 상기 제1 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수(a)를 한 개만 포함하고, 상기 제2 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수(a)를 두 개 포함할 수 있다.In this case, the first type includes only one natural number (a) in which the first four elements are greater than zero, and the second type includes two natural numbers (a) in which the first four elements are greater than zero. can

이 때, 제1 지수 행렬이 상기 제1 유형인 경우, 상기 제2 지수 행렬은 상기 제2 유형이고, 상기 제1 지수 행렬이 상기 제2 유형인 경우, 상기 제2 지수 행렬은 상기 제1 유형일 수 있다.In this case, when the first exponential matrix is the first type, the second exponential matrix is the second type, and when the first exponential matrix is the second type, the second exponential matrix is the first type can

이 때, 순환 컬럼 퍼뮤테이션은 상기 0보다 큰 자연수(a)를 이용하여 수행될 수 있다.In this case, the recursive column permutation may be performed using the natural number (a) greater than 0.

이 때, 순환 컬럼 퍼뮤테이션은 상기 수학식 10을 이용하여 수행될 수 있다.In this case, the cyclic column permutation may be performed using Equation (10).

이 때, 상기 변환값은 상기 최대 블록 크기(Zmax)에서 상기 컬럼 퍼뮤테이션된 지수 행렬의 0보다 큰 요소(element)를 감산하여 생성될 수 있다.In this case, the transform value may be generated by subtracting an element greater than 0 of the column permutated exponential matrix from the maximum block size Z max .

이 때, 제2 지수 행렬은 상기 수학식 12를 이용하여 생성될 수 있다.In this case, the second exponential matrix may be generated using Equation (12).

또한, 본 발명의 일실시예에 따른 채널 코딩/디코딩 방법은 상기 제2 지수 행렬을 이용하여 필요한 블록 크기에 상응하는 패리티 검사 행렬을 생성한다(S530).Also, in the channel coding/decoding method according to an embodiment of the present invention, a parity check matrix corresponding to a required block size is generated using the second exponential matrix ( S530 ).

이 때, 단계(S530)는 상기 수학식 14를 이용하여 상기 패리티 검사 행렬을 생성할 수 있고, 그 결과 생성된 패리티 검사 행렬은 상기 수학식 15와 같을 수 있다.In this case, in step S530, the parity check matrix may be generated using Equation 14, and the resultant parity check matrix may be the same as Equation 15 above.

또한, 본 발명의 일실시예에 따른 채널 코딩/디코딩 방법은 상기 패리티 검사 행렬을 이용하여 LDPC 부호화/복호화를 수행한다(S540).Also, in the channel coding/decoding method according to an embodiment of the present invention, LDPC encoding/decoding is performed using the parity check matrix ( S540 ).

도 6은 본 발명의 일실시예에 따른 통신 시스템을 나타낸 블록도이다.6 is a block diagram illustrating a communication system according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일실시예에 따른 통신 시스템에서 송신기(10)와 수신기(30)가 물리적 채널(20)을 매개로 통신을 수행하는 것을 알 수 있다.Referring to FIG. 6 , it can be seen that in the communication system according to an embodiment of the present invention, the transmitter 10 and the receiver 30 communicate via the physical channel 20 .

송신기(10)는 k비트의 정보 비트들(information bits; 11)을 채널 인코더(13)에서 부호화(encoding)하여 n비트의 코드워드(codeword)를 생성한다. 코드워드는 변조기(15)에 의해 변조되어 안테나(17)를 통해 전송된다. 물리적 채널(20)을 통해 전송된 신호는 수신기(30)의 안테나(31)를 통해 수신되고, 수신기(30)에서는 송신기(10)에서 일어났던 과정의 역과정을 거친다. 즉, 수신된 데이터가 복조기(33)에 의해 복조되고, 채널 디코더(35)에 의해 복호되어 최종적으로 정보 비트들을 복원할 수 있다.The transmitter 10 encodes k-bit information bits 11 in the channel encoder 13 to generate an n-bit codeword. The codeword is modulated by a modulator (15) and transmitted via an antenna (17). A signal transmitted through the physical channel 20 is received through the antenna 31 of the receiver 30 , and the receiver 30 undergoes a reverse process of the process that occurred in the transmitter 10 . That is, the received data may be demodulated by the demodulator 33 and decoded by the channel decoder 35 to finally recover information bits.

전술한 바와 같은 송/수신 과정은 본 발명의 특징을 설명하기 위해 필요한 최소한의 범위 내에서 설명된 것으로 이외에도 데이터 전송을 위해 필요한 많은 과정이 추가될 수 있음은 당업자에게 자명하다.It is apparent to those skilled in the art that, in addition to the above-described transmission/reception process being described within the minimum range necessary to describe the characteristics of the present invention, many processes necessary for data transmission may be added.

특히, 도 6에 도시된 채널 인코더 및 채널 디코더는 주어진 LDPC 부호의 패리티 검사 행렬을 변환하여 유사한 대수적 특성을 가지는 새로운 패리티 검사 행렬을 생성할 수 있고, 이와 같은 변환을 이용하여 효율적으로 LDPC 인코딩/디코딩을 수행할 수 있다.In particular, the channel encoder and the channel decoder shown in FIG. 6 can transform the parity check matrix of a given LDPC code to generate a new parity check matrix having similar algebraic characteristics, and use such a transform to efficiently encode/decode the LDPC. can be performed.

도 7은 도 6에 도시된 채널 인코더(또는 채널 디코더)의 일 예를 나타낸 블록도이다.7 is a block diagram illustrating an example of the channel encoder (or channel decoder) shown in FIG. 6 .

도 7을 참조하면, 채널 인코더(또는 채널 디코더)의 일 예는 컴퓨터 시스템(700)에서 구현될 수 있다. 도 7에 도시된 바와 같이, 컴퓨터 시스템(700)은 버스(720)를 통해 상호 통신하는, 하나 이상의 프로세서(710), 메모리(730), 사용자 인터페이스 입력 장치(740), 사용자 인터페이스 출력 장치(750) 및 스토리지(760)를 포함할 수 있다. 컴퓨터 시스템(700)은 네트워크(780)에 연결된 네트워크 인터페이스(770)를 더 포함할 수 있다. 각 프로세서(710)는 메모리(730)나 스토리지(760)에 저장된 실행 인스트럭션들(processing instructions)을 처리하기 위한 중앙 처리 장치(CPU)나 반도체 장치일 수 있다. 각각의 메모리(730) 및 스토리지(760)는 다양한 타입들의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리(730)는 읽기-전용 메모리(ROM)(731)나 랜덤 액세스 메모리(RAM)(732)를 포함할 수 있다.Referring to FIG. 7 , an example of a channel encoder (or channel decoder) may be implemented in a computer system 700 . As shown in FIG. 7 , computer system 700 includes one or more processors 710 , memory 730 , user interface input device 740 , and user interface output device 750 that communicate with each other via bus 720 . ) and storage 760 . Computer system 700 may further include a network interface 770 coupled to network 780 . Each processor 710 may be a central processing unit (CPU) or a semiconductor device for processing execution instructions stored in the memory 730 or storage 760 . Each memory 730 and storage 760 may be various types of volatile or non-volatile storage media. For example, memory 730 may include read-only memory (ROM) 731 or random access memory (RAM) 732 .

이 때, 메모리(730)는 기존 패리티 검사 행렬에 상응하는 제1 지수 행렬에 관한 데이터를 저장할 수 있다.In this case, the memory 730 may store data regarding the first exponential matrix corresponding to the existing parity check matrix.

이 때, 프로세서(710)는 상기 제1 지수 행렬을 변환하여 생성되는 제2 지수 행렬에 상응하는 패리티 검사 행렬을 생성하고, 생성된 상기 패리티 검사 행렬을 이용하여 LDPC 부호화(또는 LDPC 복호화)를 수행할 수 있다.In this case, the processor 710 generates a parity check matrix corresponding to a second exponential matrix generated by transforming the first exponential matrix, and performs LDPC encoding (or LDPC decoding) using the generated parity check matrix. can do.

이 때, 제2 지수 행렬은 컬럼 퍼뮤테이션된 지수 행렬의 0보다 큰 요소(element)에 대한 변환값을 이용하여 생성되고, 상기 컬럼 퍼뮤테이션된 지수 행렬은 상기 제1 지수 행렬의 하나의 열에 대하여 순환 컬럼 퍼뮤테이션(circular column permutation)을 수행하여 생성될 수 있다.In this case, the second exponent matrix is generated by using a transform value for an element greater than 0 of the column permutated exponent matrix, and the column permuted exponent matrix is generated for one column of the first exponent matrix. It may be generated by performing circular column permutation.

이 때, 하나의 열은 제1 지수 행렬의 (kb+1)번째 열(kb는 상기 제1 지수 행렬의 열의 수에서 행의 수를 뺀 자연수)일 수 있다.In this case, one column may be a (k b +1)-th column of the first exponential matrix (k b is a natural number obtained by subtracting the number of rows from the number of columns of the first exponential matrix).

이 때, 제1 지수 행렬 및 제2 지수 행렬은 상기 제1 지수 행렬의 (kb+1)번째 열의 첫 4개의 원소들(elements)에 따라 제1 유형 및 제2 유형의 두 가지 유형으로 구분될 수 있다.In this case, the first exponential matrix and the second exponential matrix are divided into two types, a first type and a second type, according to the first four elements of the (k b +1)-th column of the first exponential matrix. can be

이 때, 상기 제1 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수(a)를 한 개만 포함하고, 상기 제2 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수(a)를 두 개 포함할 수 있다.In this case, the first type includes only one natural number (a) in which the first four elements are greater than zero, and the second type includes two natural numbers (a) in which the first four elements are greater than zero. can

이 때, 상기 제1 지수 행렬이 상기 제1 유형인 경우, 상기 제2 지수 행렬은 상기 제2 유형이고, 상기 제1 지수 행렬이 상기 제2 유형인 경우, 상기 제2 지수 행렬은 상기 제1 유형일 수 있다.In this case, when the first exponential matrix is the first type, the second exponential matrix is the second type, and when the first exponential matrix is the second type, the second exponential matrix is the first may be of any type.

이 때, 상기 순환 컬럼 퍼뮤테이션은 상기 0보다 큰 자연수(a)를 이용하여 수행될 수 있다.In this case, the recursive column permutation may be performed using the natural number (a) greater than 0.

이 때, 순환 컬럼 퍼뮤테이션은 상기 수학식 10을 이용하여 수행될 수 있다.In this case, the cyclic column permutation may be performed using Equation (10).

이 때, 제2 지수 행렬은 상기 수학식 12를 이용하여 생성될 수 있다.In this case, the second exponential matrix may be generated using Equation 12 above.

따라서, 본 발명의 실시예는 컴퓨터로 구현되는 방법이 기록되거나, 컴퓨터 실행 가능한 명령어들이 기록된 비 일시적인 컴퓨터 판독가능한 기록매체로서 구현될 수 있다. 프로세서에 의해 컴퓨터 실행가능한 명령어들이 실행될 때, 명령어들은 본 발명의 적어도 하나의 양상에 따른 방법을 수행할 수 있다.Accordingly, the embodiment of the present invention may be implemented as a non-transitory computer-readable recording medium in which a computer-implemented method is recorded or computer-executable instructions are recorded. When the computer-executable instructions are executed by a processor, the instructions may perform a method according to at least one aspect of the present invention.

표 2는 도 1에 도시된 행렬 A, B, C의 일 예를 나타내고, 표 3은 도 2에 도시된 행렬 A, B, C의 일 예를 나타낸다.Table 2 shows an example of the matrices A, B, and C shown in FIG. 1 , and Table 3 shows an example of the matrices A, B, and C shown in FIG. 2 .

즉, 표 2에 표시된 행렬 우측에 도 1에 도시된 행렬 Z 및 D가 부가되어 기본 그래프가 되고, 표 3에 표시된 행렬 우측에 도 2에 도시된 행렬 Z 및 D가 부가되어 기본 그래프가 될 수 있다.That is, the matrices Z and D shown in FIG. 1 are added to the right of the matrix shown in Table 2 to become a basic graph, and the matrices Z and D shown in FIG. 2 are added to the right of the matrix shown in Table 3 to become a basic graph. have.

Figure 112018075159235-pat00020
Figure 112018075159235-pat00020

Figure 112018075159235-pat00021
Figure 112018075159235-pat00021

표 4 내지 표 11은 도 3에 도시된 행렬 A', B', C'의 예들을 나타낸다.Tables 4 to 11 show examples of matrices A', B', and C' shown in FIG. 3 .

즉, 표 4 내지 표 11 중 어느 하나에 표시된 행렬 우측에 도 3에 도시된 행렬 Z' 및 D'가 부가되어 지수 행렬이 될 수 있다.That is, the matrices Z' and D' shown in FIG. 3 may be added to the right side of the matrix shown in any one of Tables 4 to 11 to form an exponential matrix.

표 4 내지 표 11을 참조하면, 도 1에서 1의 위치들에 0보다 크거나 같은 자연수들이 위치하는 것을 알 수 있다.Referring to Tables 4 to 11, it can be seen that natural numbers greater than or equal to 0 are located at positions of 1 in FIG. 1 .

표 4는 상기 수학식 5의 Set 1에 해당하고, 표 5는 상기 수학식 5의 Set 2에 해당하고, 표 6은 상기 수학식 5의 Set 3에 해당하고, 표 7은 상기 수학식 5의 Set 4에 해당하고, 표 8은 상기 수학식 5의 Set 5에 해당하고, 표 9는 상기 수학식 5의 Set 6에 해당하고, 표 10은 상기 수학식 5의 Set 7에 해당하고, 표 11은 상기 수학식 5의 Set 8에 해당할 수 있다.Table 4 corresponds to Set 1 of Equation 5, Table 5 corresponds to Set 2 of Equation 5, Table 6 corresponds to Set 3 of Equation 5, and Table 7 corresponds to Equation 5 Corresponds to Set 4, Table 8 corresponds to Set 5 of Equation 5, Table 9 corresponds to Set 6 of Equation 5, Table 10 corresponds to Set 7 of Equation 5, Table 11 may correspond to Set 8 of Equation 5 above.

표 4 내지 표 11의 맨 오른쪽 상단의 4 x 4 행렬의 맨 왼쪽 열에서 0보다 큰 자연수(a)의 개수를 참조하면, 표 4는 타입 B이고, 표 5는 타입 B이고, 표 6은 타입 B이고, 표 7은 타입 B이고, 표 8은 타입 B이고, 표 9는 타입 B이고, 표 10은 타입 A이고, 표 11은 타입 B임을 알 수 있다.Referring to the number of natural numbers (a) greater than 0 in the leftmost column of the 4 x 4 matrix at the top right of Tables 4 to 11, Table 4 is type B, Table 5 is type B, and Table 6 is type B, Table 7 is Type B, Table 8 is Type B, Table 9 is Type B, Table 10 is Type A, and Table 11 is Type B.

Figure 112018075159235-pat00022
Figure 112018075159235-pat00022

Figure 112018075159235-pat00023
Figure 112018075159235-pat00023

Figure 112018075159235-pat00024
Figure 112018075159235-pat00024

Figure 112018075159235-pat00025
Figure 112018075159235-pat00025

Figure 112018075159235-pat00026
Figure 112018075159235-pat00026

Figure 112018075159235-pat00027
Figure 112018075159235-pat00027

Figure 112018075159235-pat00028
Figure 112018075159235-pat00028

Figure 112018075159235-pat00029
Figure 112018075159235-pat00029

표 12 내지 표 19는 도 4에 도시된 행렬 A', B', C'의 예들을 나타낸다.Tables 12 to 19 show examples of matrices A', B', and C' shown in FIG. 4 .

즉, 표 12 내지 표 19 중 어느 하나에 표시된 행렬 우측에 도 4에 도시된 행렬 Z' 및 D'가 부가되어 지수 행렬이 될 수 있다.That is, the matrices Z' and D' shown in FIG. 4 may be added to the right side of the matrix shown in any one of Tables 12 to 19 to form an exponential matrix.

표 12 내지 표 19를 참조하면, 도 2에서 1의 위치들에 0보다 크거나 같은 자연수들이 위치하는 것을 알 수 있다.Referring to Tables 12 to 19, it can be seen that natural numbers greater than or equal to 0 are located at positions of 1 in FIG. 2 .

표 12는 상기 수학식 5의 Set 1에 해당하고, 표 13은 상기 수학식 5의 Set 2에 해당하고, 표 14는 상기 수학식 5의 Set 3에 해당하고, 표 15는 상기 수학식 5의 Set 4에 해당하고, 표 16은 상기 수학식 5의 Set 5에 해당하고, 표 17은 상기 수학식 5의 Set 6에 해당하고, 표 18은 상기 수학식 5의 Set 7에 해당하고, 표 19는 상기 수학식 5의 Set 8에 해당할 수 있다.Table 12 corresponds to Set 1 of Equation 5, Table 13 corresponds to Set 2 of Equation 5, Table 14 corresponds to Set 3 of Equation 5, and Table 15 corresponds to Equation 5 Corresponds to Set 4, Table 16 corresponds to Set 5 of Equation 5, Table 17 corresponds to Set 6 of Equation 5, Table 18 corresponds to Set 7 of Equation 5, Table 19 may correspond to Set 8 of Equation 5 above.

표 12 내지 표 19의 맨 오른쪽 상단의 4 x 4 행렬의 맨 왼쪽 열에서 0보다 큰 자연수(a)의 개수를 참조하면, 표 12는 타입 A이고, 표 13은 타입 A이고, 표 14는 타입 A이고, 표 15는 타입 B이고, 표 16은 타입 A이고, 표 17은 타입 A이고, 표 18은 타입 A이고, 표 19는 타입 B임을 알 수 있다.Referring to the number of natural numbers (a) greater than 0 in the leftmost column of the 4 x 4 matrix at the top right of Tables 12 to 19, Table 12 is type A, Table 13 is type A, and Table 14 is type It can be seen that A, Table 15 is Type B, Table 16 is Type A, Table 17 is Type A, Table 18 is Type A, and Table 19 is Type B.

Figure 112018075159235-pat00030
Figure 112018075159235-pat00030

Figure 112018075159235-pat00031
Figure 112018075159235-pat00031

Figure 112018075159235-pat00032
Figure 112018075159235-pat00032

Figure 112018075159235-pat00033
Figure 112018075159235-pat00033

Figure 112018075159235-pat00034
Figure 112018075159235-pat00034

Figure 112018075159235-pat00035
Figure 112018075159235-pat00035

Figure 112018075159235-pat00036
Figure 112018075159235-pat00036

Figure 112018075159235-pat00037
Figure 112018075159235-pat00037

표 20 내지 27은 각각 표 4 내지 11에 상응하는 지수 행렬(제1 지수 행렬들)들이 변환된 지수 행렬들(제2 지수 행렬들)에 상응하는 행렬 A', B', C'를 나타낸다.Tables 20 to 27 show matrices A', B', and C' corresponding to exponential matrices (second exponential matrices) in which the exponential matrices (first exponential matrices) corresponding to Tables 4 to 11 are transformed, respectively.

즉, 표 20 내지 표 27 중 어느 하나에 표시된 행렬 우측에 도 3에 도시된 행렬 Z' 및 D'가 부가되어 변환된 지수 행렬이 될 수 있다(변환 후에도 Z' 및 D'는 그대로 유지).That is, the matrix Z' and D' shown in FIG. 3 may be added to the right side of the matrix shown in any one of Tables 20 to 27 to become a transformed exponential matrix (Z' and D' are maintained even after transformation).

Figure 112018075159235-pat00038
Figure 112018075159235-pat00038

Figure 112018075159235-pat00039
Figure 112018075159235-pat00039

Figure 112018075159235-pat00040
Figure 112018075159235-pat00040

Figure 112018075159235-pat00041
Figure 112018075159235-pat00041

Figure 112018075159235-pat00042
Figure 112018075159235-pat00042

Figure 112018075159235-pat00043
Figure 112018075159235-pat00043

Figure 112018075159235-pat00044
Figure 112018075159235-pat00044

Figure 112018075159235-pat00045
Figure 112018075159235-pat00045

표 28 내지 35는 각각 표 12 내지 19에 상응하는 지수 행렬(제1 지수 행렬들)들이 변환된 지수 행렬들(제2 지수 행렬들)에 상응하는 행렬 A', B', C'를 나타낸다.Tables 28 to 35 show matrices A', B', and C' corresponding to exponential matrices (second exponential matrices) in which the exponential matrices (first exponential matrices) corresponding to Tables 12 to 19 are transformed, respectively.

즉, 표 28 내지 표 35 중 어느 하나에 표시된 행렬 우측에 도 4에 도시된 행렬 Z' 및 D'가 부가되어 변환된 지수 행렬이 될 수 있다(변환 후에도 Z' 및 D'는 그대로 유지).That is, the matrix Z' and D' shown in FIG. 4 may be added to the right side of the matrix shown in any one of Tables 28 to 35 to become a transformed exponential matrix (Z' and D' are maintained even after transformation).

Figure 112018075159235-pat00046
Figure 112018075159235-pat00046

Figure 112018075159235-pat00047
Figure 112018075159235-pat00047

Figure 112018075159235-pat00048
Figure 112018075159235-pat00048

Figure 112018075159235-pat00049
Figure 112018075159235-pat00049

Figure 112018075159235-pat00050
Figure 112018075159235-pat00050

Figure 112018075159235-pat00051
Figure 112018075159235-pat00051

Figure 112018075159235-pat00052
Figure 112018075159235-pat00052

Figure 112018075159235-pat00053
Figure 112018075159235-pat00053

이상에서와 같이 본 발명에 따른 채널 코딩/디코딩 방법 및 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, in the channel coding/decoding method and apparatus according to the present invention, the configuration and method of the embodiments described above are not limitedly applicable, but the embodiments are each embodiment so that various modifications can be made. All or part of them may be selectively combined and configured.

10: 송신기
20: 물리적 채널
30: 수신기
10: transmitter
20: physical channel
30: receiver

Claims (20)

삭제delete 삭제delete 제1 지수 행렬을 로드하는 단계;
상기 제1 지수 행렬을 제2 지수 행렬로 변환하는 단계;
상기 제2 지수 행렬을 이용하여 필요한 블록 크기에 상응하는 패리티 검사 행렬을 생성하는 단계; 및
상기 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행하는 단계를 포함하고,
상기 제1 지수 행렬을 상기 제2 지수 행렬로 변환하는 단계는
상기 제1 지수 행렬의 하나의 열에 대하여 순환 컬럼 퍼뮤테이션(circular column permutation)을 수행하여 컬럼 퍼뮤테이션된 지수 행렬을 생성하는 단계; 및
상기 컬럼 퍼뮤테이션된 지수 행렬의 0보다 큰 요소(element)에 대한 변환값을 생성하고, 상기 변환값을 이용하여 상기 제2 지수 행렬을 생성하는 단계를 포함하고,
상기 하나의 열은
상기 제1 지수 행렬의 (kb+1)번째 열(kb는 상기 제1 지수 행렬의 열의 수에서 행의 수를 뺀 자연수)인 것을 특징으로 하는 채널 코딩 방법.
loading a first exponential matrix;
transforming the first exponential matrix into a second exponential matrix;
generating a parity check matrix corresponding to a required block size using the second exponential matrix; and
performing LDPC encoding using the parity check matrix;
Transforming the first exponential matrix into the second exponential matrix includes:
generating a column permutated exponential matrix by performing circular column permutation on one column of the first exponential matrix; and
generating a transform value for an element greater than 0 of the column permutated exponent matrix, and generating the second exponent matrix by using the transform value,
The one column is
The channel coding method, characterized in that the (k b +1)-th column of the first exponential matrix (k b is a natural number obtained by subtracting the number of rows from the number of columns of the first exponential matrix).
청구항 3에 있어서,
상기 제1 지수 행렬 및 제2 지수 행렬은
상기 제1 지수 행렬의 (kb+1)번째 열의 첫 4개의 원소들(elements)에 따라 제1 유형 및 제2 유형의 두 가지 유형으로 구분되는 것을 특징으로 하는 채널 코딩 방법.
4. The method of claim 3,
The first exponential matrix and the second exponential matrix are
The channel coding method, characterized in that the first type and the second type are divided into two types according to the first four elements of the (k b +1)-th column of the first exponential matrix.
청구항 4에 있어서,
상기 제1 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수를 한 개만 포함하고, 상기 제2 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수를 두 개 포함하는 것을 특징으로 하는 채널 코딩 방법.
5. The method according to claim 4,
The first type includes only one natural number in which the first four elements are greater than zero, and the second type includes two natural numbers in which the first four elements are greater than zero.
청구항 5에 있어서,
상기 제1 지수 행렬이 상기 제1 유형인 경우, 상기 제2 지수 행렬은 상기 제2 유형이고, 상기 제1 지수 행렬이 상기 제2 유형인 경우, 상기 제2 지수 행렬은 상기 제1 유형인 것을 특징으로 하는 채널 코딩 방법.
6. The method of claim 5,
When the first exponential matrix is of the first type, the second exponential matrix is the second type, and when the first exponential matrix is the second type, the second exponential matrix is the first type Channel coding method characterized in that.
청구항 6에 있어서,
상기 순환 컬럼 퍼뮤테이션은
상기 0보다 큰 자연수를 이용하여 수행되는 것을 특징으로 하는 채널 코딩 방법.
7. The method of claim 6,
The cyclic column permutation is
A channel coding method, characterized in that it is performed using the natural number greater than 0.
청구항 7에 있어서,
상기 순환 컬럼 퍼뮤테이션은
하기 수학식을 이용하여 수행되는 것을 특징으로 하는 채널 코딩 방법.
[수학식]
Figure 112018075159235-pat00054

(V'ij는 상기 컬럼 퍼뮤테이션된 지수 행렬의 요소, Vij는 상기 제1 지수 행렬의 요소, mod는 모듈레이션 연산자, Zmax는 최대 블록 크기, a는 상기 0보다 큰 자연수)
8. The method of claim 7,
The cyclic column permutation is
A channel coding method, characterized in that it is performed using the following equation.
[Equation]
Figure 112018075159235-pat00054

(V' ij is an element of the column permuted exponential matrix, V ij is an element of the first exponential matrix, mod is a modulation operator, Z max is the maximum block size, a is a natural number greater than 0)
청구항 8에 있어서,
상기 변환값은
상기 최대 블록 크기에서 상기 컬럼 퍼뮤테이션된 지수 행렬의 0보다 큰 요소(element)를 감산하여 생성되는 것을 특징으로 하는 채널 코딩 방법.
9. The method of claim 8,
The conversion value is
and generated by subtracting an element greater than zero of the column permutated exponential matrix from the maximum block size.
청구항 9에 있어서,
상기 제2 지수 행렬은
하기 수학식을 이용하여 생성되는 것을 특징으로 하는 채널 코딩 방법.
[수학식]
Figure 112018075159235-pat00055

(Wij는 상기 제2 지수 행렬의 요소, V'ij는 상기 컬럼 퍼뮤테이션된 지수 행렬의 요소, Zmax는 상기 최대 블록 크기)
10. The method of claim 9,
The second exponential matrix is
A channel coding method, characterized in that it is generated using the following equation.
[Equation]
Figure 112018075159235-pat00055

(W ij is an element of the second exponential matrix, V' ij is an element of the column permuted exponential matrix, and Z max is the maximum block size)
삭제delete 삭제delete 기존 패리티 검사 행렬에 상응하는 제1 지수 행렬에 관한 데이터를 저장하는 메모리; 및
상기 제1 지수 행렬을 변환하여 생성되는 제2 지수 행렬에 상응하는 패리티 검사 행렬을 생성하고, 생성된 상기 패리티 검사 행렬을 이용하여 LDPC 부호화를 수행하는 프로세서를 포함하고,
상기 제2 지수 행렬은
컬럼 퍼뮤테이션된 지수 행렬의 0보다 큰 요소(element)에 대한 변환값을 이용하여 생성되고,
상기 컬럼 퍼뮤테이션된 지수 행렬은 상기 제1 지수 행렬의 하나의 열에 대하여 순환 컬럼 퍼뮤테이션(circular column permutation)을 수행하여 생성되고,
상기 하나의 열은
상기 제1 지수 행렬의 (kb+1)번째 열(kb는 상기 제1 지수 행렬의 열의 수에서 행의 수를 뺀 자연수)인 것을 특징으로 하는 채널 인코더.
a memory for storing data on a first exponential matrix corresponding to an existing parity check matrix; and
a processor that generates a parity check matrix corresponding to a second exponential matrix generated by transforming the first exponential matrix, and performs LDPC encoding using the generated parity check matrix,
The second exponential matrix is
It is generated using a transform value for an element greater than zero of the column permutated exponential matrix,
The column permutated exponential matrix is generated by performing circular column permutation on one column of the first exponential matrix,
The one column is
The channel encoder, characterized in that the (k b +1)-th column of the first exponential matrix (k b is a natural number obtained by subtracting the number of rows from the number of columns of the first exponential matrix).
청구항 13에 있어서,
상기 제1 지수 행렬 및 제2 지수 행렬은
상기 제1 지수 행렬의 (kb+1)번째 열의 첫 4개의 원소들(elements)에 따라 제1 유형 및 제2 유형의 두 가지 유형으로 구분되는 것을 특징으로 하는 채널 인코더.
14. The method of claim 13,
The first exponential matrix and the second exponential matrix are
The channel encoder according to claim 1, wherein the first type and the second type are classified according to the first four elements of the (k b +1)-th column of the first exponential matrix.
청구항 14에 있어서,
상기 제1 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수를 한 개만 포함하고, 상기 제2 유형은 상기 첫 4개의 원소들이 0보다 큰 자연수를 두 개 포함하는 것을 특징으로 하는 채널 인코더.
15. The method of claim 14,
The first type includes only one natural number in which the first four elements are greater than zero, and the second type includes two natural numbers in which the first four elements are greater than zero.
청구항 15에 있어서,
상기 제1 지수 행렬이 상기 제1 유형인 경우, 상기 제2 지수 행렬은 상기 제2 유형이고, 상기 제1 지수 행렬이 상기 제2 유형인 경우, 상기 제2 지수 행렬은 상기 제1 유형인 것을 특징으로 하는 채널 인코더.
16. The method of claim 15,
When the first exponential matrix is of the first type, the second exponential matrix is the second type, and when the first exponential matrix is the second type, the second exponential matrix is the first type Characterized by a channel encoder.
청구항 16에 있어서,
상기 순환 컬럼 퍼뮤테이션은
상기 0보다 큰 자연수를 이용하여 수행되는 것을 특징으로 하는 채널 인코더.
17. The method of claim 16,
The cyclic column permutation is
A channel encoder, characterized in that it is performed using the natural number greater than 0.
청구항 17에 있어서,
상기 순환 컬럼 퍼뮤테이션은
하기 수학식을 이용하여 수행되는 것을 특징으로 하는 채널 인코더.
[수학식]
Figure 112018075159235-pat00056

(V'ij는 상기 컬럼 퍼뮤테이션된 지수 행렬의 요소, Vij는 상기 제1 지수 행렬의 요소, mod는 모듈레이션 연산자, Zmax는 최대 블록 크기, a는 상기 0보다 큰 자연수)
18. The method of claim 17,
The cyclic column permutation is
A channel encoder, characterized in that it is performed using the following equation.
[Equation]
Figure 112018075159235-pat00056

(V' ij is an element of the column permuted exponential matrix, V ij is an element of the first exponential matrix, mod is a modulation operator, Z max is the maximum block size, a is a natural number greater than 0)
청구항 18에 있어서,
상기 제2 지수 행렬은
하기 수학식을 이용하여 생성되는 것을 특징으로 하는 채널 인코더.
[수학식]
Figure 112018075159235-pat00057

(Wij는 상기 제2 지수 행렬의 요소, V'ij는 상기 컬럼 퍼뮤테이션된 지수 행렬의 요소, Zmax는 상기 최대 블록 크기)
19. The method of claim 18,
The second exponential matrix is
A channel encoder, characterized in that it is generated using the following equation.
[Equation]
Figure 112018075159235-pat00057

(W ij is an element of the second exponential matrix, V' ij is an element of the column permuted exponential matrix, and Z max is the maximum block size)
기존 패리티 검사 행렬에 상응하는 제1 지수 행렬에 관한 데이터를 저장하는 메모리; 및
상기 제1 지수 행렬을 변환하여 생성되는 제2 지수 행렬에 상응하는 패리티 검사 행렬을 생성하고, 생성된 상기 패리티 검사 행렬을 이용하여 LDPC 복호화를 수행하는 프로세서
를 포함하고,
상기 제2 지수 행렬은
컬럼 퍼뮤테이션된 지수 행렬의 0보다 큰 요소(element)에 대한 변환값을 이용하여 생성되고,
상기 컬럼 퍼뮤테이션된 지수 행렬은 상기 제1 지수 행렬의 하나의 열에 대하여 순환 컬럼 퍼뮤테이션(circular column permutation)을 수행하여 생성되고,
상기 하나의 열은
상기 제1 지수 행렬의 (kb+1)번째 열(kb는 상기 제1 지수 행렬의 열의 수에서 행의 수를 뺀 자연수)인 것을 특징으로 하는 채널 디코더.
a memory for storing data on a first exponential matrix corresponding to an existing parity check matrix; and
A processor that generates a parity check matrix corresponding to a second exponential matrix generated by transforming the first exponential matrix, and performs LDPC decoding using the generated parity check matrix
including,
The second exponential matrix is
It is generated using a transform value for an element greater than zero of the column permutated exponential matrix,
The column permutated exponential matrix is generated by performing circular column permutation on one column of the first exponential matrix,
The one column is
The channel decoder, characterized in that the (k b +1)-th column of the first exponential matrix (k b is a natural number obtained by subtracting the number of rows from the number of columns of the first exponential matrix).
KR1020180088550A 2017-08-11 2018-07-30 Method of channel coding for communication systems and apparatus using the same KR102424942B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/100,268 US10756762B2 (en) 2017-08-11 2018-08-10 Method of channel coding for communication systems and apparatus using the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170102013 2017-08-11
KR1020170102013 2017-08-11

Publications (2)

Publication Number Publication Date
KR20190017652A KR20190017652A (en) 2019-02-20
KR102424942B1 true KR102424942B1 (en) 2022-07-26

Family

ID=65562103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180088550A KR102424942B1 (en) 2017-08-11 2018-07-30 Method of channel coding for communication systems and apparatus using the same

Country Status (1)

Country Link
KR (1) KR102424942B1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170075627A (en) * 2015-12-23 2017-07-03 삼성전자주식회사 Apparatus and method for encoding and decoding in communication or broadcasting system

Also Published As

Publication number Publication date
KR20190017652A (en) 2019-02-20

Similar Documents

Publication Publication Date Title
CN107888198B (en) Quasi-cyclic LDPC (low density parity check) coding and decoding method and device and LDPC coder and decoder
JP5996659B2 (en) Data transmission / reception apparatus and method in communication / broadcasting system
CN109417392B (en) Coding and decoding method and system of LDPC code
CN109314600B (en) System and method for rate matching when using generic polarization codes
JP5506878B2 (en) Parity check matrix generation method for low density parity check code
CN109314524B (en) System and method for rate matching through heterogeneous kernels using common polar codes
KR102343780B1 (en) Data encoding method and device, storage medium, and processor
KR102276721B1 (en) Information processing methods, devices and communication devices
CN108234064B (en) Quasi-cyclic LDPC code data processing device and method
US10848185B2 (en) Coding and decoding of polar codes extended to lengths which are not powers of two
JP2020504932A (en) Data transmission method, transmission device, reception device, and communication system
KR20190112124A (en) High rate long LDPC code
KR102616481B1 (en) Receiver and signal processing method thereof
US8312344B2 (en) Communication method and apparatus using LDPC code
CN107733440B (en) Polygonal structured LDPC processing method and device
US11190210B2 (en) Method for encoding based on parity check matrix of LDPC code in wireless communication system and terminal using this
KR101503656B1 (en) Apparatus and method for channel encoding and decoding in communication system using low-density parity-check codes
EP2211470B1 (en) Generating an exponent table for coding and decoding LDPC codewords of different lengths
CN111771336B (en) Apparatus and method for generating polarization code
KR102424942B1 (en) Method of channel coding for communication systems and apparatus using the same
KR102159242B1 (en) Transmitter and signal processing method thereof
KR20090093778A (en) Apparatus and method for channel encoding and decoding in communication system using low-density parity-check codes
US10756762B2 (en) Method of channel coding for communication systems and apparatus using the same
CN112511173A (en) Low density parity check coding, decoding method, coding, decoding device and medium
KR101192920B1 (en) Apparatus and method for channel encoding and decoding in communication system using low-density parity-check codes

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant