KR101267654B1 - Method for encoding and decoding irregular repeat multiple-state accumulate codes supportig variable length codeword and apparatuses using the same - Google Patents

Method for encoding and decoding irregular repeat multiple-state accumulate codes supportig variable length codeword and apparatuses using the same Download PDF

Info

Publication number
KR101267654B1
KR101267654B1 KR1020120014282A KR20120014282A KR101267654B1 KR 101267654 B1 KR101267654 B1 KR 101267654B1 KR 1020120014282 A KR1020120014282 A KR 1020120014282A KR 20120014282 A KR20120014282 A KR 20120014282A KR 101267654 B1 KR101267654 B1 KR 101267654B1
Authority
KR
South Korea
Prior art keywords
matrix
state
bit
bits
encoding
Prior art date
Application number
KR1020120014282A
Other languages
Korean (ko)
Inventor
정규혁
Original Assignee
단국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 단국대학교 산학협력단 filed Critical 단국대학교 산학협력단
Priority to KR1020120014282A priority Critical patent/KR101267654B1/en
Application granted granted Critical
Publication of KR101267654B1 publication Critical patent/KR101267654B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6312Error control coding in combination with data compression
    • H03M13/6318Error control coding in combination with data compression using variable length codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

PURPOSE: An irregular repetition multiphase accumulation coding and decoding method and a device for the same are provided to remarkably reduce a requirement of memory capacity. CONSTITUTION: A coding device(1200) includes a data bit string input unit(1210), a pattern matrix storage unit(1220), a coding matrix decision unit(1230) and a coding unit(1240). The data bit string input unit receives data bit string being a decoding subject. The pattern matrix storage unit includes a fundamental pattern coding matrix corresponding to a fundamental code word length. A coding matrix decision unit generates an extension coding matrix by extending the pattern coding matrix stored in the pattern matrix storage unit according to the ratio of the required code word length to the fundamental code word length. The coding unit outputs an irregular repetition multiphase accumulation code word by irregular repetition multiphase accumulation coding the input data bit string in the data bit string input unit using the extension coding matrix decided in the coding matrix decision unit. [Reference numerals] (1210) Data bit string input unit; (1220) Pattern matrix storage unit; (1230) Coding matrix decision unit; (1240) Coding unit; (AA) Data bit string; (BB) Selected data bits; (CC) Extension coding matrix; (DD) Required length of code word; (EE) Code word

Description

가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치{METHOD FOR ENCODING AND DECODING IRREGULAR REPEAT MULTIPLE-STATE ACCUMULATE CODES SUPPORTIG VARIABLE LENGTH CODEWORD AND APPARATUSES USING THE SAME}A method for irregularly repeating polyphase accumulation and decoding that supports variable codeword lengths and a device therefor

본 발명은 채널 부호화(channel coding)에 관한 것으로, 더욱 상세하게는 불규칙 반복 다상 누산 코드(IRmA; Irregular Repeat Multiple-State Accumulate Codes) 부호화에 관한 것으로서, 가변적인 부호어의 길이를 지원 가능한 불규칙 반복 다상 누산 코드 부호화/복호화 방법 및 이를 위한 부호화/복호화 장치에 관한 것이다.The present invention relates to channel coding, and more particularly, to Irregular Repeat Multiple-State Accumulate Codes (IRmA) coding, which can support variable codeword lengths. An accumulation code encoding / decoding method and an encoding / decoding apparatus therefor.

통신에 있어서 채널 부호화(channel coding)는 송신 측에서 송신한 데이터 신호가 통신 채널을 통하여 전송되는 과정에서 발생하는 신호의 일그러짐, 손실 등에 의한 오류에도 불구하고 수신 측에서 원래의 데이터를 복원할 수 있도록 하기 위해 송신 측에서 데이터를 처리하는 과정을 의미한다. 원래의 데이터의 크기를 줄여서 전송과 저장 등을 용이하게 하는 소스 부호화(source coding)와 구분되는 기술이다.In communication, channel coding is used to recover original data in spite of errors caused by distortion, loss, etc. of the data signal transmitted from the transmitting side through the communication channel. This refers to a process of processing data at the sender in order to do so. It is a technology that is distinguished from source coding that reduces the size of original data to facilitate transmission and storage.

한편, 복호화(decoding)는 부호화되어 송신된 신호를 수신 측에서 원래의 데이터로 복원하는 과정이다. 이때, 부호화를 한다는 것은 통상 길이 K의 정보 시퀀스(정보 비트들)를 길이 N의 부호어(codeword)로 만드는 것이다. 신호 전송경로가 불안정한 무선 랜(LAN)이나 이동통신의 경우 부호어의 길이 N을 정보시퀀스 길이 K 보다 상당히 크게 만든다. 즉, 부호화된 부호어에는 전송되어야 할 데이터가 상당히 중복(redundant)되어 있다. 양방향 통신에서, 정보 시퀀스를 포함하는 데이터를 전송함에 있어서 수신 측이 데이터를 복원하지 못하게 되면 송신 측은 데이터를 다시 전송한다. 이러한 데이터의 재전송은 전송속도를 떨어트리게 되므로, 이러한 반복 전송을 줄일 수 있는 채널 부호화 기술들이 연구되어 왔다.
On the other hand, decoding is a process of restoring the encoded and transmitted signal to the original data at the receiving side. In this case, the encoding is to make an information sequence (information bits) of length K into a codeword of length N in general. In wireless LAN or mobile communication where the signal transmission path is unstable, the length N of the codeword is made significantly larger than the information sequence length K. That is, the data to be transmitted is considerably redundant in the coded codeword. In two-way communication, if a receiving side fails to recover data in transmitting data including an information sequence, the transmitting side transmits the data again. Since retransmission of such data causes a drop in transmission speed, channel coding techniques for reducing such repetitive transmission have been studied.

채널 부호화 기술은 블록 부호화(block coding)와 콘볼루션 부호화(convolutional coding)로 크게 나누어진다. Channel coding techniques are largely divided into block coding and convolutional coding.

블록 부호화는 K비트의 입력 정보(data sequences)를 N비트의 출력부호(codes)로 만들어내는 것이다. 콘볼루션 부호화는 코드화시킬 때 현재 입력되는 신호에 과거의 일부 신호를 함께 활용하는 방식이다. Block coding produces K-bit data sequences as N-bit output codes. Convolutional coding is a method in which some signals from the past are used together with the current input signal when coding.

또한, 터보 코드(turbo codes)는 콘볼루션 부호를 기반으로 병렬 부호화와 인터리빙(interleaving)을 통해 성능을 더욱 발전시킨 것으로서, 통신 채널의 비트 오류 확률(probability)을 최소로 유지하는 사상에 기반을 둔 오류 정정 부호 (ECC: error correction code)의 하나이다. 터보 코드는 1993년 Berrou 등이 제안한 것으로 비교적 간단한 구조를 가지면서도 매우 우수한 오류 정정 성능을 제공하므로 고성능의 오류 정정 부호 방식이 요구되는 통신 시스템에 널리 적용되고 있다.
In addition, turbo codes further improve performance through parallel encoding and interleaving based on convolution codes, and are based on the idea of keeping bit error probabilities of communication channels to a minimum. One of error correction codes (ECC). The turbo code, proposed by Berrou et al. In 1993, has a relatively simple structure and provides excellent error correction performance, and thus is widely applied to a communication system requiring a high performance error correction code method.

한편, 최근에는 저밀도 패리티 검사(LDPC: low-density parity-check) 코드가 통신 시스템에 적용되기 시작하였다. LDPC 코드는 길이 K의 정보시퀀스를 길이 N의 부호어(codeword)로 만든다. 이때, 부호어 중 정보 시퀀스를 제외한 (N-K) 길이의 패리티 비트는 패리티 검사 행렬 (parity-check matrix) H를 사용하여 만들 수 있다. 패리티 검사 행렬 H는 크기가 (N-K) x N 이고, 1보다는 0이 많은 저밀도의 성질을 갖고 있다.On the other hand, low-density parity-check (LDPC) codes have recently been applied to communication systems. The LDPC code makes an information sequence of length K into a codeword of length N. In this case, a parity bit having a length of (N-K) excluding an information sequence among codewords may be generated using a parity-check matrix H. The parity check matrix H is (N-K) x N in size, and has a low density property with more zeros than one.

LDPC 코드를 이용한 부호화 방법에서는 패리티 검사 행렬 H을 어떻게 만드는지가 가장 중요한 요소이다. 통상, 불규칙(irregular) LDPC 코드들은 규칙(regular) LDPC 코드들보다 양호한 성능을 제공한다. 여기서 규칙적이라는 것은 LDPC 코드를 위하여 이용되는 패리티 검사 행렬 H의 모든 행들(rows)이 동일한 수의 1들을 가지고 H의 모든 열들(columns)이 동일한 수의 1들을 가진다는 것을 의미하며, 그렇지 않으면 LDPC 코드는 불규칙인 것으로 간주된다. 여기서 행 또는 열에서 1들의 수는 행 또는 열의 무게(weight)라 칭한다. 블록 길이 104이상의 불규칙 LDPC(low-density parity-check) 코드는 터보 코드(turbo codes)보다 나은 성능을 보이는 것이 입증되었다.
In the encoding method using the LDPC code, how to make the parity check matrix H is the most important factor. Typically, irregular LDPC codes provide better performance than regular LDPC codes. Regular here means that all rows of parity check matrix H used for LDPC code have the same number of 1s and all columns of H have the same number of 1s, otherwise LDPC code Is considered to be irregular. The number of ones in a row or column is referred to herein as the weight of the row or column. Irregular low-density parity-check (LDPC) codes with block lengths greater than 10 4 have been shown to perform better than turbo codes.

그러나, 패리티 검사 행렬 H는 대략 1000×2000 이상의 크기를 갖기 때문에 부호화 및 복호화 과정에서 많은 연산이 요구되고, 구현이 매우 복잡하며, 많은 저장 공간을 요구하는 문제점이 있다. 다시 말해, 데이터 블록의 크기가 증가하면LDPC의 오류정정 능력은 강해지지만, 프로세서가 처리해야 하는 연산량 및 요구하는 저장 공간 또한 증가한다는 문제점이 있다. However, since the parity check matrix H has a size of about 1000 × 2000 or more, many operations are required in the encoding and decoding process, implementation is very complicated, and requires a lot of storage space. In other words, as the size of the data block increases, the error correction capability of the LDPC becomes stronger, but there is a problem that the amount of computation and processing space required by the processor also increases.

상술된 LDPC 코드의 문제점들을 개선하기 위한 새로운 채널 부호화 기술로서 불규칙 반복 누산 코드(IRA: Irregular Repeat Accumulate Code)가 존재한다. 불규칙 반복 누산 코드는 터보 코드 또는 LDPC 코드의 일종으로 분류되며 비교적 간단한 형태이면서도 용량한계에 근접하는 성능을 보인다. 불규칙 반복 누산(IRA) 코드는 불규칙 LDPC 코드보다 다소 성능이 떨어지지만 부호화가 간단하다는 장점이 있다. IRA 코드에서 사용되는 에러 정정 코드인 누산 코드(Accumulate Code)는 누산기를 이용하여 간단한 인코딩이 가능하게 한다. 그러나, 누산 코드를 이용하는 경우에도, 블록의 크기가 매우 크면 연산이 복잡하다는 문제가 여전히 존재한다. 따라서, 종래의 부호화 방법에 비하여 연산 속도 및 오류 정정 성능을 향상시킬 수 있도록 하는 불규칙 반복 누산 코드의 개선이 필요하다.Irregular Repeat Accumulate Code (IRA) exists as a new channel coding technique for improving the problems of the LDPC codes described above. Irregularly repeated accumulating codes are classified as turbo codes or LDPC codes and have a relatively simple form and have a capacity approaching capacity limits. Irregular Repeated Accumulation (IRA) codes are somewhat inferior to irregular LDPC codes, but have the advantage of simple coding. An Accumulate Code, an error correction code used in an IRA code, enables simple encoding using an accumulator. However, even when the accumulation code is used, there is still a problem that the operation is complicated when the block size is very large. Accordingly, there is a need for an improvement of an irregular iterative accumulating code that can improve computation speed and error correction performance as compared to conventional coding methods.

그 일환으로, 본 출원인은 불규칙 반복 다상 누산 코드(IRmA; Irregular Repeat Multiple-State Accumulate Codes)에 관한 대한민국 특허출원 제2011-0107780호 및 대한민국 특허출원 제2011-0122204호를 이미 출원한 바 있다. As part of this, the applicant has already filed Korean Patent Application No. 2011-0107780 and Korean Patent Application No. 2011-0122204 regarding Irregular Repeat Multiple-State Accumulate Codes (IRmA).

한편, 채널 부호화 기술에서는 시스템의 특성이나 채널의 특성에 따라 요구되는 부호어(codeword)의 길이 등이 변화하기 때문에, 부호화 장치 및 복호화 장치는 다양한 부호어의 길이를 지원할 수 있어야 한다. 그러나, 다양한 부호어의 길이를 지원하기 위해서는 이를 위한 부호화 및 복호화 행렬을 저장하기 위한 하드웨어의 사이즈가 커지거나, 복잡도가 증가한다는 문제점이 있다.On the other hand, in the channel encoding technique, the length of a codeword required according to the characteristics of the system or the characteristics of the channel changes, so that the encoding apparatus and the decoding apparatus should be able to support various codeword lengths. However, in order to support various codeword lengths, there is a problem in that a size of hardware for storing encoding and decoding matrices for the codeword is increased or complexity increases.

상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 불규칙 반복 다상 누산 코드 부호화 방법에 있어서, 필요한 메모리 용량을 줄이면서도 가변적인 부호어 길이를 지원할 수 있는 불규칙 반복 다상 누산 코드 부호화 방법을 제공하는 것이다. SUMMARY OF THE INVENTION An object of the present invention for solving the above problems is to provide an irregular repetitive polyphase accumulating code encoding method capable of supporting a variable codeword length while reducing a required memory capacity in an irregular repetitive polyphase accumulating code encoding method. .

상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 불규칙 반복 다상 누산 코드 부호화 장치에 있어서, 필요한 메모리 용량을 줄이면서도 가변적인 부호어 길이를 지원할 수 있는 불규칙 반복 다상 누산 코드 부호화 장치를 제공하는 것이다.Another object of the present invention for solving the above problems is to provide an irregular repetitive polyphase accumulating code encoding apparatus capable of supporting a variable codeword length while reducing a required memory capacity in an irregular repetitive polyphase accumulating code encoding apparatus. will be.

상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, 가변적 부호어 길이를 가지는 불규칙 반복 다상 누산 코드 부호화 방법을 이용하여 부호화된 부호화 신호를 수신하여, 이를 복호화하는 불규칙 반복 다상 누산 코드 복호화 방법으로서, 필요한 메모리 용량을 줄이면서도 가변적인 부호어 길이를 지원할 수 있는 방법을 제공하는 것이다.Another object of the present invention for solving the above problems is an irregular repetitive polyphase accumulating code decoding method for receiving an encoded signal encoded using an irregular repetitive polyphase accumulating code encoding method having a variable codeword length and decoding the same. The present invention provides a method capable of supporting variable codeword lengths while reducing required memory capacity.

상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, 가변적 부호어 길이를 가지는 불규칙 반복 다상 누산 코드 부호화 방법을 이용하여 부호화된 부호화 신호를 수신하여, 이를 복호화하는 불규칙 반복 다상 누산 코드 복호화 장치로서, 필요한 메모리 용량을 줄이면서도 가변적인 부호어 길이를 지원할 수 있는 장치를 제공하는 것이다.Another object of the present invention for solving the above problems is an irregular repetitive polyphase accumulating code decoding apparatus for receiving and decoding encoded signals encoded using an irregular repetitive polyphase accumulating code encoding method having a variable codeword length. To provide a device capable of supporting a variable codeword length while reducing the required memory capacity.

상기 목적을 달성하기 위한 본 발명의 일 측면은, 가변 길이를 가지는 부호어를 생성하는 불규칙 반복 다상 누산 코드 부호화 방법으로서, 기본 부호어 길이에 대응되고, 상기 부호화 방법을 실현하기 위한 기본 패턴 부호화 행렬을 구비하는 단계(a), 상기 기본 부호어의 길이와 요구되는 부호어의 길이의 비율에 따라 상기 기본 패턴 부호화 행렬을 확장한 확장 부호화 행렬을 생성하는 단계(b) 및 생성된 확장 부호화 행렬을 이용하여 불규칙 반복 다상 누산 코드 부호화를 수행하는 단계(c)를 포함하여 구성될 수 있다.One aspect of the present invention for achieving the above object is an irregular repetitive polyphase accumulating code encoding method for generating a codeword having a variable length, which corresponds to a basic codeword length and is a basic pattern coding matrix for realizing the coding method. (B) generating an extended coding matrix extending the basic pattern coding matrix according to a ratio of the length of the basic codeword to the length of the required codeword, and generating the extended coding matrix. And performing step (c) of irregular iterative multiphase accumulation code encoding.

여기에서, 상기 단계(b)는, 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성하는 단계(b-1) 및 상기 기본 패턴 부호화 행렬의 '1' 값을 가진 원소(element)의 위치에 상기 부분 행렬을 할당하고, 상기 기본 패턴 부호화 행렬의 '0' 값을 가진 원소의 위치에 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 영 행렬을 할당하여, 상기 기본 패턴 부호화 행렬이 확장된 확장 부호화 행렬을 생성하도록 구성될 수 있다.Here, the step (b) includes the step (b-1) of generating a partial matrix having a row and a column equal to the ratio of the basic codeword length and the required codeword length, and '1 of the basic pattern coding matrix. Assigns the partial matrix to a position of an element having a value, and a row equal to the ratio of the basic codeword length to the required codeword length at a position of an element having a value of '0' of the basic pattern coding matrix. The base pattern coding matrix may be configured to generate an extended coding matrix by allocating a zero matrix having over columns.

이때, 상기 부분 행렬은 적어도 하나의 단위 행렬(identity matrix) 및/또는 적어도 하나의 회전 단위 행렬(rotated identity matrix)이 결합된 결합 행렬일 수 있다.In this case, the partial matrix may be a combining matrix in which at least one identity matrix and / or at least one rotated identity matrix are combined.

여기에서, 상기 단계(c)는, 부호화 대상이 되는 정보 비트열을 입력받는 단계(c-1), 상기 확장 부호화 행렬의 i행(i는 행렬의 첫번째 행을 지시하는 값부터 시작)에 기초하여 상기 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 단계(c-2) 및 상기 결정된 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 단계(c-3)를 포함하고, 상기 i를 증가시켜 상기 확장 부호화 행렬의 마지막 행까지 상기 단계(c-2) 내지 (c-3)를 반복한 다음, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하는 단계(c-4)를 포함하여 구성될 수 있다.Here, the step (c) is based on the step (c-1) of receiving an information bit string to be encoded, i row of the extended coding matrix (i starting from a value indicating the first row of the matrix). Selecting input bits among information bits constituting the information bit string, determining an encoding state according to the selected input bits (c-2), and parity bits of the i-rows based on the determined encoding state (C-3), repeating the steps (c-2) to (c-3) until the last row of the extended coding matrix by increasing i, and generating the information bit stream And combining the parity bits to generate a codeword (c-4).

이때, 상기 단계(c-2)는, 상기 선택된 입력 비트들 중 이전에 입력되지 않은 어느 하나의 비트를 입력받아, 상기 입력받은 비트에 따라 현재 부호화 상태를 천이(transition)시키고, 상기 어느 하나의 비트를 입력받는 과정과 현재 부호화 상태의 천이 과정을 상기 입력 비트들의 숫자만큼 반복하여 마지막 반복에서 천이된 부호화 상태를 상기 부호화 상태로 결정할 수 있다.In this case, the step (c-2) receives any one of the selected input bits that have not been previously input, transitions a current encoding state according to the received bits, The process of receiving a bit and the process of transitioning from a current encoding state may be repeated by the number of the input bits to determine the encoding state transitioned at the last iteration as the encoding state.

이때, 상기 단계(c-3)는 상기 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 값을 가지는 비트들을 상기 패리티 비트들로 결정하며, 바람직하기로는 상기 미리 설정된 상태는 제0 상태(zero state)일 수 있다.
In this case, the step (c-3) determines the bits having a value for converging the encoding state to a preset state as the parity bits, preferably, the preset state is a zero state. Can be.

상기 다른 목적을 달성하기 위한 본 발명의 일 측면은, 가변 길이를 가지는 부호어를 생성하는 불규칙 반복 다상 누산 코드 부호화 장치로서, 부호화 대상이 되는 정보 비트열을 입력받는 정보 비트열 입력부, 기본 부호어 길이에 대응되고, 상기 부호화를 실현하기 위한 기본 패턴 부호화 행렬을 구비하는 패턴 행렬 저장부, 기본 부호어 길이와 요구되는 부호어의 길이의 비율에 따라, 상기 패턴 행렬 저장부에 저장된 상기 패턴 부호화 행렬을 확장하여, 확장 부호화 행렬을 생성하는 부호화 행렬 결정부 및 상기 부호화 행렬 결정부에서 결정한 확장 부호화 행렬을 이용하여, 상기 정보 비트열 입력부에서 입력된 정보 비트열을 불규칙 반복 다상 누산 코드 부호화하여, 불규칙 반복 다상 누산 코드 부호어를 출력하는 부호화부를 포함하여 구성될 수 있다.One aspect of the present invention for achieving the above object is an irregular repetitive polyphase accumulating code encoding apparatus for generating a codeword having a variable length, an information bit string input unit for receiving an information bit string to be encoded, basic codeword A pattern matrix storage section corresponding to a length and having a basic pattern coding matrix for realizing the coding, the pattern coding matrix stored in the pattern matrix storage section in accordance with a ratio of a length of a basic codeword to a required codeword By using a coding matrix determination unit for generating an extended coding matrix and an extended coding matrix determined by the coding matrix determination unit, irregularly repeating polyphase accumulating code encoding of the information bit string input from the information bit string input unit And an encoding unit for outputting a repeating polyphase accumulated code codeword. .

여기에서, 상기 부호화 행렬 결정부는, 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성하고, 상기 기본 패턴 부호화 행렬의 '1' 값을 가진 원소의 위치에 상기 부분 행렬을 할당하며, 상기 기본 패턴 부호화 행렬의 '0' 값을 가진 원소의 위치에 영 행렬을 할당하여, 상기 기본 패턴 부호화 행렬이 확장된 확장 부호화 행렬을 생성하도록 구성될 수 있다.Here, the coding matrix determiner generates a partial matrix having rows and columns equal to the ratio of the basic codeword length and the required codeword length, and positions the elements having a value of '1' of the basic pattern coding matrix. The partial matrix may be assigned to, and a zero matrix may be assigned to a position of an element having a value of '0' of the basic pattern coding matrix to generate an extended coding matrix in which the basic pattern coding matrix is extended.

이때, 상기 부분 행렬은 적어도 하나의 단위 행렬(identity matrix) 및/또는 적어도 하나의 회전 단위 행렬(rotated identity matrix)이 결합된 결합 행렬일 수 있다.In this case, the partial matrix may be a combining matrix in which at least one identity matrix and / or at least one rotated identity matrix are combined.

여기에서, 상기 부호화부는 상기 부호화 행렬 결정부에서 결정한 확장 부호화 행렬의 i(i는 행렬의 첫번째 행을 지시하는 값부터 시작) 행을 이용하여, 상기 정보 비트열 입력부에서 입력된 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 부호화 상태 결정부, 상기 결정된 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 패리티 비트 결정부 및 상기 i를 증가시켜 상기 확장 부호화 행렬의 마지막 행까지 상기 부호화 상태 결정부와 상기 패리티 비트 결정부의 동작을 반복하도록 제어하고, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하는 부호어 생성부를 포함하여 구성될 수 있다.Here, the encoding unit configures an information bit string input from the information bit string input unit by using the i (i starting from a value indicating a first row of the matrix) row of the extended encoding matrix determined by the encoding matrix determiner. An encoding state determiner which selects input bits from among information bits, and determines an encoding state according to the selected input bits, a parity bit determiner that determines parity bits of the i row based on the determined encoding state; a code that increases i to control to repeat the operation of the encoding state determiner and the parity bit determiner until the last row of the extended encoding matrix, and generates a codeword by combining the information bit stream and the generated parity bits It can be configured to include a generator.

이때, 상기 부호화 상태 결정부는 상기 부호화 상태를 나타내는 비트들을 저장하는 레지스터 및 상기 선택된 입력 비트들 중 입력되는 비트와 상기 부호화 상태를 나타내는 비트들 중 적어도 하나의 비트간의 배타적 논리합(XOR) 연산을 수행하는 연산부를 포함하고, 상기 레지스터는 상기 부호화 상태 결정부에 비트가 입력될 때마다 저장된 비트들이 한 비트씩 하위 비트 자리로 이동하고, 상기 연산부에서 수행되는 연산 결과가 최상위 비트 자리로 입력되어 상기 부호화 상태를 나타내는 비트들을 갱신하는 순환 쉬프트 레지스터(Recursive Shift Register)일 수 있다. In this case, the encoding state determiner performs an exclusive logical sum (XOR) operation between a register storing bits representing the encoding state and at least one bit among the input bits among the selected input bits and bits representing the encoding state. And a register, wherein the register shifts the stored bits one bit into the lower bit position whenever a bit is input to the encoding state determining unit, and the result of the operation performed by the calculating unit is input to the most significant bit position so as to encode the encoding state. It may be a recursive shift register for updating the bits indicating.

여기에서, 상기 패리티 비트 결정부는 상기 부호화 상태 결정부에서 결정한 최종 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 값을 가지는 비트들을 상기 패리티 비트들로 결정하며, 바람직하기로는 상기 미리 설정된 상태는 제0 상태(zero state)일 수 있다.
Herein, the parity bit determiner determines the bits having values for converging the final encoding state determined by the encoding state determiner to a preset state, preferably, the preset state is a zero state. (zero state).

상기 또 다른 목적을 달성하기 위한 본 발명의 일 측면은, 가변 길이를 가지는 불규칙 반복 다상 누산 코드 부호화 신호를 복호화하는 불규칙 반복 다상 누산 코드 복호화 방법으로서, 기본 부호어 길이에 대응되고, 상기 복호화를 실현하기 위한 기본 패턴 복호화 행렬을 구비하는 단계(a), 정보 비트들이 패리티 비트들과 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신하는 단계(b), 기본 부호어 길이와 상기 부호화 신호에 적용된 부호어의 길이의 비율에 따라 상기 기본 패턴 복호화 행렬을 확장한 확장 복호화 행렬을 생성하는 단계(c) 및 상기 생성된 확장 복호화 행렬을 이용하여 상기 불규칙 반복 다상 누산 코드 복호화를 수행하는 단계(d)를 포함하여 구성될 수 있다.One aspect of the present invention for achieving the above object is an irregular repetitive polyphase accumulating code decoding method for decoding an irregular repetitive polyphase accumulating code coded signal having a variable length, which corresponds to a basic codeword length and realizes the decoding. (A) receiving an irregular repetitive polyphase accumulated code coded signal in which information bits are combined with parity bits, and (b) a basic codeword length and a codeword applied to the coded signal. (C) generating an extended decoding matrix obtained by extending the basic pattern decoding matrix according to a ratio of lengths and performing (d) the irregular repeated polyphase accumulating code decoding using the generated extended decoding matrix. It can be configured.

여기에서, 상기 확장 복호화 행렬을 생성하는 단계(c)는, 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성하는 단계(c-1) 및 상기 기본 패턴 복호화 행렬의 '1' 값을 가진 원소(element)의 위치에 상기 부분 행렬을 할당하고, 상기 기본 패턴 복호화 행렬의 '0' 값을 가진 원소의 위치에 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 영 행렬을 할당하여, 상기 기본 패턴 복호화 행렬이 확장된 확장 복호화 행렬을 생성하는 단계(c-2)를 포함하여 구성될 수 있다.In the generating of the extended decoding matrix, the generating of the extended decoding matrix may include generating the partial matrix having the number of rows and columns equal to the ratio of the basic codeword length and the required codeword length, and the basic. The sub-matrix is assigned to a position of an element having a value of '1' of a pattern decoding matrix, and the base codeword length and a required codeword at a position of an element having a value of '0' of the basic pattern decoding matrix. (C-2) generating an extended decoding matrix in which the basic pattern decoding matrix is extended by allocating a zero matrix having rows and columns corresponding to a ratio of lengths.

이때, 상기 부분 행렬은 적어도 하나의 단위 행렬(identity matrix) 및/또는 적어도 하나의 회전 단위 행렬(rotated identity matrix)이 결합된 결합 행렬일 수 있다.In this case, the partial matrix may be a combining matrix in which at least one identity matrix and / or at least one rotated identity matrix are combined.

여기에서, 상기 불규칙 반복 다상 누산 코드 복호화를 수행하는 단계(d)는, 상기 확장 복호화 행렬에 따라, 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하는 단계(d-1), 상기 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 단계(d-2), 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR(Bahl, Cocke, Jelinek and Raviv) 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 단계(d-3), 새로이 산출되는 상기 제1 메시지의 값들 및 상기 제2 메시지의 값들을 이용하여 상기 단계(d-2) 및 상기 단계(d-3)를 수행함을 반복하는 단계(d-4) 및 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 단계(d-5)를 포함하여 구성될 수 있다.In the performing of the irregular repetitive polyphase accumulating code decoding, the coded bits included in the coded signal may be grouped into G (G is an integer of 2 or more) groups according to the extended decoding matrix. Step (d-1), for each bit included in the coded signal, based on the likelihood of each bit provided from a plurality of groups containing each bit (the value of a first message hereinafter) Estimating the likelihood (hereinafter, the value of the second message) of each bit that each bit provides to a plurality of groups including each bit (d-2), and a bit representing an encoding state transition. By using a two-dimensional BCJR (Bahl, Cocke, Jelinek and Raviv) algorithm based on release, the values of the first message are updated based on the values of the second message provided by the G groups. Providing to D) repeating performing the step d-2 and the step d-3 using the newly calculated values of the first message and the values of the second message d And (d-5) determining the value of each bit according to the likelihood of each bit estimated based on the values of the first message calculated in the last iteration.

이때, 상기 단계(d-3)는, i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하되, 상기 산출하는 과정은, 상기 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계 및 k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하는 단계를 포함하여 구성될 수 있다.
At this time, the step (d-3) is based on the values of the second message for the bits included in the i-th group (where i is 1≤i≤G) to the bits included in the i-th group. Calculating values of the first message for each group, wherein the calculating includes calculating forward state metrics and backward state metrics based on the values of the second message, and k-th forward. And calculating a value of a first message for a k th bit of the i th group of bits based on the product of the state metric and the k + 1 th backward state metric.

상기 또 다른 목적을 달성하기 위한 본 발명의 일 측면은, 가변 길이를 가지는 불규칙 반복 다상 누산 코드 부호화 신호를 복호화하는 불규칙 반복 다상 누산 코드 복호화 장치로서, 복호화 대상이 되는 정보 비트들과 패리티 비트들이 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신하는 부호화 신호 수신부, 기본 부호어 길이에 대응되고, 상기 복호화를 실현하기 위한 기본 패턴 복호화 행렬을 구비하는 패턴 행렬 저장부, 기본 부호어 길이와 상기 부호화 신호에 적용된 부호어의 길이의 비율에 따라, 상기 패턴 행렬 저장부에 저장된 상기 기본 패턴 복호화 행렬을 확장한 확장 복호화 행렬을 생성하는 복호화 행렬 결정부 및 상기 복호화 행렬 결정부에서 결정한 확장 복호화 행렬을 이용하여, 상기 부호화 신호 수신부에서 수신된 부호화 신호를 대상으로 불규칙 반복 다상 누산 코드 복호화하여, 상기 부호화 신호에 포함된 정보 비트열을 출력하는 복호화부를 포함하여 구성될 수 있다.One aspect of the present invention for achieving the above object is an irregular repeating polyphase accumulating code decoding apparatus for decoding an irregular repeating polyphase accumulating coded signal having a variable length, wherein information bits and parity bits to be decoded are combined. A coded signal receiver for receiving a randomly repeated polyphase accumulated code coded signal, a pattern matrix storage unit corresponding to a basic codeword length, and having a basic pattern decoding matrix for realizing the decoding, a basic codeword length and the coded signal According to the ratio of the length of the codeword applied, by using the decoding matrix determiner for generating an extended decoding matrix extending the basic pattern decoding matrix stored in the pattern matrix storage unit and the extended decoding matrix determined by the decoding matrix determiner, Coded signal received by the coded signal receiver And a decoder configured to output an information bit string included in the coded signal by irregularly repeating multiphase accumulated code decoding.

여기에서, 상기 복호화 행렬 결정부는, 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성하고, 상기 기본 패턴 복호화 행렬의 '1' 값을 가진 원소(element)의 위치에 상기 부분 행렬을 할당하고, 상기 기본 패턴 복호화 행렬의 '0' 값을 가진 원소의 위치에 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 영 행렬을 할당하여, 상기 기본 패턴 복호화 행렬이 확장된 확장 복호화 행렬을 생성하도록 구성될 수 있다.Here, the decoding matrix determiner generates a partial matrix having rows and columns equal to the ratio of the basic codeword length and the required codeword length, and has an element having a value of '1' of the basic pattern decoding matrix. Assigns the sub-matrix at position), and a zero matrix having rows and columns equal to the ratio of the basic codeword length to the required codeword length at the position of the element having a value of '0' of the basic pattern decoding matrix. By assigning, the basic pattern decoding matrix may be configured to generate an extended decoding matrix.

이때, 상기 부분 행렬은 적어도 하나의 단위 행렬(identity matrix) 및/또는 적어도 하나의 회전 단위 행렬(rotated identity matrix)이 결합된 결합 행렬일 수 있다.In this case, the partial matrix may be a combining matrix in which at least one identity matrix and / or at least one rotated identity matrix are combined.

여기에서, 상기 복호화부는, 상기 확장 복호화 행렬에 따라, 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하며, 상기 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 과정과 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정의 수행을 반복하여, 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하도록 구성될 수 있다.Here, the decoding unit groups the coded bits included in the coded signal into groups of G (the G is an integer of 2 or more) according to the extended decoding matrix, and for each bit included in the coded signal, Based on the likelihood of each bit (hereinafter, the value of the first message) provided from the plurality of groups containing each bit, the respective bits are provided to the plurality of groups containing each bit. The second message provided by the G groups by using a two-dimensional BCJR algorithm based on a trellis representing an encoding state transition and a process of estimating the likelihood (hereinafter, the value of the second message) of each bit Based on the values of, repeating the process of updating the values of the first message and providing them to the respective bits, and repeats the values of the first message calculated in the last iteration. Depending on the available bits of each even second which is estimated it may be configured to determine the value of the respective bits.

이때, 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정은, i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하되, 상기 산출하는 과정은, 상기 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하고, k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하도록 구성될 수 있다.In this case, updating the values of the first message and providing the bits to the respective bits based on the values of the second message may be performed on bits included in the i th group (where i is 1≤i≤G). Computing the values of the first message for the bits included in the i-th group for each group based on the values of the second message for the group, the calculating process, the values of the second message Calculate forward state metrics and backward state metrics based on the product of the first message for the k th bit of the i th group based on the product of the k th forward state metric and the k + 1 th forward state metric; Can be configured to yield a value.

상기와 같은 본 발명에 따른 부호화 방법과 장치, 복호화 방법과 장치를 이용할 경우에는 메모리 용량의 요구 수준을 낮추면서도 성능 향상을 얻을 수 있으며, 가변적인 길이를 가지는 부호어를 지원할 수 있다. When the encoding method, the device, the decoding method, and the device according to the present invention are used as described above, performance can be improved while lowering a required level of memory capacity, and a codeword having a variable length can be supported.

즉, 요구되는 부호어의 길이를 지원하기 위한 부호화 및 복호화 행렬을 기본 패턴 부호화 및 복호화 행렬을 이용하여 생성함으로써 부호화 행렬 및 복호화 행렬을 저장하기 위한 메모리 용량의 요구 수준을 획기적으로 낮출 수 있다.That is, by generating the encoding and decoding matrix for supporting the required length of the codeword by using the basic pattern encoding and decoding matrix, the required level of the memory capacity for storing the encoding matrix and the decoding matrix can be significantly reduced.

도 1은 본 발명의 불규칙 반복 다상 누산 코드 부호화 방법을 설명하기 위한 순서도이다.
도 2는 개시된 기술의 일 실시예에 따라, 부호화 상태가 변경되는 과정 및 패리티 비트들이 결정되는 과정을 설명하기 위한 트렐리스 다이어그램이다.
도 3은 본 발명에 따른 불규칙 반복 다상 누산 코드 부호화 방법에서 부호화 행렬의 개념을 설명하기 위한 개념도이다.
도 4는 본 발명에 따른 불규칙 반복 다상 누산 코드 부호화 신호의 복호화 방법을 설명하기 위한 순서도이다.
도 5는 본 발명에 따른 불규칙 반복 다상 누산 코드 복호화 방법에서 제1 메시지 값을 갱신하기 위한 2차원 BCJR 알고리즘을 설명하기 위한 순서도이다.
도 6은 본 발명에 따른 불규칙 반복 다상 누산 코드 복호화 방법에서 제1 메시지 값을 갱신하기 위한 2차원 BCJR 알고리즘을 설명하기 위한 개념도이다.
도 7은 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 부호화 방법을 설명하기 위한 순서도이다.
도 8은 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 부호화 방법에서 확장 부호화 행렬을 생성하는 방법의 일 실시예를 설명하기 위한 순서도이다.
도 9는 단위 행렬 I0과 1-우회전된 단위 행렬 I1과 1-좌회전된 단위 행렬 I1을 예시한 개념도이다.
도 10은 단위 행렬과 회전 단위 행렬이 결합된 결합 행렬을 예시한 개념도이다.
도 11은 기본 패턴 부호화 행렬을 이용하여 확장 부호화 행렬을 생성하는 개념을 설명하기 위한 개념도이다.
도 12는 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 부호화 장치의 구성을 설명하기 위한 블록도이다.
도 13는 본 발명에 따른 부호화 장치의 부호화부 구성예를 설명하기 위한 블록도이다.
도 14는 본 발명에 따른 부호화 장치에 적용되는 부호화 상태 결정부의 구성을 설명하기 위한 회로도이다.
도 15는 개시된 기술의 일 실시예에 따라, 부호화 상태 수가 4인 경우 부호화 상태 결정부의 구성을 설명하기 위한 회로도이다.
도 16은 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 복호화 방법은 설명하기 위한 순서도이다.
도 17은 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 복호화 방법에서 확장 복호화 행렬을 생성하는 방법의 일 실시예를 설명하기 위한 순서도이다.
도 18은 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 복호화 장치의 구성을 설명하기 위한 블록도이다.
1 is a flowchart illustrating a method for encoding an irregular repetitive polyphase accumulated code of the present invention.
2 is a trellis diagram for explaining a process of changing an encoding state and a process of determining parity bits according to an embodiment of the disclosed technology.
3 is a conceptual diagram illustrating a concept of a coding matrix in an irregular repetitive polyphase accumulating code encoding method according to the present invention.
4 is a flowchart illustrating a decoding method of an irregular repetitive polyphase accumulated code coded signal according to the present invention.
FIG. 5 is a flowchart illustrating a two-dimensional BCJR algorithm for updating a first message value in an irregular repetitive polyphase accumulated code decoding method according to the present invention.
FIG. 6 is a conceptual diagram illustrating a two-dimensional BCJR algorithm for updating a first message value in an irregular iterative multiphase accumulated code decoding method according to the present invention.
7 is a flowchart illustrating a method for encoding an irregular repetitive polyphase accumulating code supporting a variable codeword length according to the present invention.
8 is a flowchart illustrating an embodiment of a method of generating an extended coding matrix in an irregular repetitive polyphase accumulating code encoding method supporting variable codeword lengths according to the present invention.
FIG. 9 is a conceptual diagram illustrating a unit matrix I 0 and a 1-right rotated unit matrix I 1 and a 1-left rotated unit matrix I 1 .
10 is a conceptual diagram illustrating a coupling matrix in which a unit matrix and a rotation unit matrix are combined.
FIG. 11 is a conceptual diagram illustrating a concept of generating an extended coding matrix using a basic pattern coding matrix.
12 is a block diagram illustrating a configuration of an irregular repetitive polyphase accumulating code encoding apparatus supporting a variable codeword length according to the present invention.
13 is a block diagram illustrating an example of a configuration of an encoding unit of an encoding apparatus according to the present invention.
14 is a circuit diagram for explaining a configuration of an encoding state determination unit applied to an encoding apparatus according to the present invention.
FIG. 15 is a circuit diagram illustrating a configuration of an encoding state determiner when the encoding state number is 4, according to an embodiment of the disclosed technology.
16 is a flowchart illustrating a method of decoding an irregular repetitive polyphase accumulating code supporting a variable codeword length according to the present invention.
17 is a flowchart illustrating an embodiment of a method of generating an extended decoding matrix in an irregular repetitive polyphase accumulating code decoding method supporting variable codeword lengths according to the present invention.
18 is a block diagram illustrating a configuration of an irregular repetitive polyphase accumulator code decoding apparatus supporting a variable codeword length according to the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

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

불규칙 반복 Irregular repetition 다상Polyphase -- 누산Accumulation 코드 부호화 방법 Code coding method

LDPC 코드는 블록 길이가 104이상인 경우에는 터보 코드보다 향상된 성능을 보이지만, 구현이 매우 복잡하며, 많은 저장 공간을 필요로 하는 등 여러 가지 문제점을 가지고 있다.The LDPC code shows better performance than the turbo code when the block length is 10 4 or more, but there are various problems such as the implementation is very complicated and requires a lot of storage space.

본 발명의 기반이 되는 불규칙 반복 다상 누산 코드 부호화 방법은 종래의 LDPC 코드보다 향상된 오류 정정 성능을 보이면서도 연산속도가 빠르고, 병렬 프로세싱이 용이한 부호화 방식으로서, 기존의 패리티-체크 개념에 대응되는 상태-체크 개념을 새로이 도입한 부호화 방식이다. 이하에서 설명되는 본 발명의 불규칙 반복 다상 누산 코드(IRmA; Irregular Repeat multiple-state Accumulate code) 부호화 및 복호화 방법은 본 출원인의 대한민국 특허출원 제2011-0107780호와 제2011-0122219호에 포함된 내용으로 본 발명의 내용에 포함된다. 이하, 도면을 참조하여 간략하게 불규칙 반복 다상 누산 코드 부호화 및 복호화 방법이 설명된다.
An irregular iterative polyphase accumulating code encoding method, which is the basis of the present invention, is an encoding method that exhibits improved error correction performance compared to a conventional LDPC code, and has a fast operation speed and easy parallel processing. It is a new coding scheme that introduces the concept of check. Irregular Repeat Multiple-State Accumulate Code (IRmA) encoding and decoding methods of the present invention described below are described in Korean Patent Application Nos. 2011-0107780 and 2011-0122219 of the applicant. It is included in the content of the present invention. Hereinafter, a method for irregularly repeating multiphase accumulated code encoding and decoding will be described with reference to the accompanying drawings.

도 1은 본 발명의 불규칙 반복 다상 누산 코드 부호화 방법을 설명하기 위한 순서도이다.1 is a flowchart illustrating a method for encoding an irregular repetitive polyphase accumulated code of the present invention.

부호화기는 불규칙 반복(Irregular Repetition: 이하, IR) 코드를 이용하여 정보 비트열 bk로부터 정보 비트 블록을 생성한 뒤, 생성된 정보 비트 블록으로부터 다상 누산 코드를 이용하여 정보 비트열 bk에 패리티 비트들 bp가 부가된 부호어(codeword)를 생성한다. 이를 본 발명에서는 "불규칙 반복 다상 누산 코드 부호화(IRmA; Irregular Repeat Multiple-State Accumulate Code)"라 명칭한다.The encoder generates an information bit block from the information bit string b k using an Irregular Repetition (IR) code, and then uses a polyphase accumulation code from the generated information bit block to parity bits in the information bit string b k . s and p b is created the added codewords (codeword). This is called "irregular repeat multiple-state accumulate code" (IRmA) in the present invention.

부호화기는 입력된 정보 비트들과 누적하여 생성된 패리티 비트들을 함께 전송함으로써 정보 비트들의 전송 오류를 정정할 수 있도록 한다. 이와 같은 다상-누산 코드를 이용하면 효율적으로 부호화를 할 수 있다는 장점이 있다. 즉, 개시된 기술에 따르면 종래의 부호화 방법에 비하여 부호화 속도를 향상시킬 수 있으며 오류 정정 성능이 향상된다는 장점이 있다. 한 번에 결정되는 패리티 비트들의 수(NP)는 2 이상의 정수로서, 오류정정 성능, 부호화 속도, 연산 속도, 필요로 하는 저장 공간 등을 고려하여 적절한 수로 결정될 수 있다. 이하, NP의 수가 2이고, 상태수 NS가 4인 4상-누산 코드의 경우를 중심으로 설명하나, 이에 한정되는 것은 아니며 NP는 3, 4등의 정수가 될 수 있으며, 이 경우 NS는 8, 16등의 정수가 될 수 있다.The encoder can correct transmission errors of the information bits by transmitting the input information bits together with the parity bits generated cumulatively. The use of such a polyphase-accumulated code has the advantage of being able to encode efficiently. That is, according to the disclosed technology, coding speed can be improved and error correction performance can be improved as compared with the conventional coding method. The number of parity bits (N P ) determined at one time is an integer of 2 or more, and may be determined as an appropriate number in consideration of error correction performance, encoding speed, arithmetic speed, required storage space, and the like. Hereinafter, a description will be given of a four-phase accumulation code in which the number of N P is 2 and the state number N S is 4, but the present invention is not limited thereto, and N P may be an integer such as 3 or 4, in which case N S can be an integer such as 8 or 16.

이하, 도 1을 참조하여, 하나의 정보 비트열 bk를 부호화하는 방법을 예로서 설명한다.Hereinafter, a method of encoding one information bit string b k will be described as an example with reference to FIG. 1.

S110 단계에서 부호화기는 정보 비트열에 포함된 각 정보 비트들을 복수 회 반복하고, 복수 회 반복 된 정보 비트들의 순서를 섞는다(interleaving). 정보 비트열에 포함된 각 정보 비트 bj가 반복되는 횟수 q(j)는 불규칙적으로 각 비트에 따라 다를 수 있다. 복수 회 반복된 정보 비트들은 하나의 정보 비트 블록을 구성한다. 이때, 정보 비트 블록의 길이 L은

Figure 112012011359804-pat00001
이다. 여기서, K는 정보 비트열 bk의 길이이다. 다음에 부호화기는 정보 비트 블록의 정보 비트들의 순서를 섞는다.In step S110, the encoder repeats each information bit included in the information bit string a plurality of times and interleaving the order of the information bits repeated a plurality of times. The number of times q (j) of repeating each information bit b j included in the information bit string may vary randomly for each bit. The information bits repeated a plurality of times constitute one information bit block. In this case, the length L of the information bit block is
Figure 112012011359804-pat00001
to be. Here, K is the length of the information bit string b k . The encoder then shuffles the information bits of the information bit block.

S120 단계에서 부호화기는 부호화 상태를 초기화 한다. 일 실시예에 따라, 부호화기는 한 정보 비트 블록, 즉 한 정보 비트열을 부호화 할 때마다 부호화 상태를 초기화 할 수 있다. 일례로, 부호화기는 부호화 상태를 상태 0(Zero State)으로 초기화할 수 있다.In step S120, the encoder initializes the encoding state. According to an embodiment, the encoder may initialize the encoding state every time one information bit block, that is, one information bit string is encoded. In one example, the encoder may initialize the coding state to zero state.

S130 단계에서 부호화기는 섞어진(interleaved) 정보 비트들 중 일부 정보 비트들을 선택 한다. 부호화기는 S130 단계 내지 S150 단계를 미리 설정된 횟수(이하, 예를 들어 G회라 함)만큼 반복하는데, 매 반복 마다, 정보 비트 블록의 섞어진 정보 비트들 중 이전에 선택되지 않은 정보 비트들을 선택한다. G회 반복 중 i번째 반복에서 선택되는 정보 비트들의 수를 Ki라 한다. 일 실시예에 따라, 부호화기는 정보 비트 그룹을 구성하는 L개의 정보 비트들을 G개의 그룹들로 나눈 뒤, 나뉘어진 그룹들 중 어느 하나의 그룹에 포함된 정보 비트들을 상기 일부 정보 비트들로서 선택할 수 있다. i번째 그룹 Gi가 포함하는 정보 비트들의 수는 Ki가 된다. 일례로, 매 반복마다, 부호화기는 G개의 그룹들 중 하나의 그룹을 순차적으로 선택하는 방식으로 일부 정보 비트들을 선택할 수 있다.In step S130, the encoder selects some information bits of the interleaved information bits. The encoder repeats steps S130 to S150 a predetermined number of times (hereinafter, referred to as G times), and for each iteration, selects previously unselected information bits among the mixed information bits of the information bit block. The number of information bits selected in the i th iteration of the G iterations is called K i . According to an embodiment, the encoder may divide the L information bits constituting the information bit group into G groups, and then select information bits included in any one of the divided groups as the some information bits. . The number of information bits included in the i th group G i becomes K i . In one example, at each iteration, the encoder may select some information bits in a manner that sequentially selects one of the G groups.

S140 단계에서 부호화기는 선택된 복수의 정보 비트들에 따라 부호화 상태를 변경한다. 부호화기는 선택된 정보 비트들을 하나씩 입력 받을 때마다 부호화 상태가 변경된다. 일 실시예에 따라, 부호화기는 S142 단계 및 S144 단계를 반복하면서 부호화 상태를 변경할 수 있다.In step S140, the encoder changes the encoding state according to the selected plurality of information bits. The encoder changes the encoding state every time the selected information bits are input one by one. According to an embodiment, the encoder may change an encoding state while repeating steps S142 and S144.

S142 단계에서 부호화기는 선택된 복수의 정보 비트들 중 이전에 입력되지 않은 어느 하나의 비트를 입력 받는다. S144 단계에서 입력 받는 비트에 따라 부호화 상태가 현재 상태에서 다음 상태로 변경된다. 선택된 비트들이 모두 입력될 때까지 부호화기는 S142 단계 및 S144 단계를 반복하여 수행한다. 즉, i번째 수행되는 S140 단계에서, 부호화기는 S142 단계 및 S144 단계를 Ki번 반복한다.In step S142, the encoder receives one of the selected plurality of information bits that has not been previously input. The encoding state is changed from the current state to the next state according to the bit received in step S144. The encoder repeats steps S142 and S144 until all selected bits are input. That is, in step S140 performed at the i th time, the encoder repeats steps S142 and S144 K i times.

부호화 상태가 가질 수 있는 상태 수는 NS 이다. 현재 상태는 이전에 입력된 비트들을 기초로 NS 개의 상태들 중 어느 하나의 상태로 결정된다. 현재 상태는, 첫 번째 그룹의 첫 번째 반복에서는 예컨대 상태 0으로 초기화 되며, 그 이후의 반복에서는 이전 반복에서 변경된 상태가 현재 상태가 된다. 다음 상태는, 현재 상태와 현재 입력되는 비트에 따라 결정된다. 다음 상태는 현재 상태에 상응하는 두 개의 상태들 중 현재 입력되는 비트에 따라 결정되는 어느 하나의 상태가 된다. 일 실시예에 따라, NS가 4인 경우 입력 비트들에 따라 부호화 상태가 변경되는 과정이 도 2에 예시되어 있다. 도 2의 실시 예에서는 현재 상태가 상태 0일 때(S=0), 다음 상태는 상태 0 또는 상태 2(S=0 or S=2)가 될 수 있는데, 입력 비트가 0인 경우 다음 상태는 상태 0, 입력 비트가 1인 경우 다음 상태는 상태 2가 된다. 즉, 현재 상태에 따라, 다음 상태가 될 수 있는 두 개의 상태가 있고, 부호화기는 현재 상태에 상응하는 두 개의 상태들 중 입력 받는 비트에 따라 결정되는 하나의 상태로 천이한다.The number of states that an encoding state can have is N S. The current state is determined as one of the N S states based on the previously input bits. The current state is initialized, for example, to state 0 on the first iteration of the first group, and on subsequent iterations the state changed from the previous iteration becomes the current state. The next state is determined by the current state and the currently input bit. The next state becomes one of the two states corresponding to the current state, which is determined according to the currently input bit. According to an embodiment, a process of changing an encoding state according to input bits when N S is 4 is illustrated in FIG. 2. In the embodiment of FIG. 2, when the current state is state 0 (S = 0), the next state may be state 0 or state 2 (S = 0 or S = 2). If state 0 and the input bit is 1, the next state is state 2. That is, according to the current state, there are two states that can be the next state, and the coder transitions to one state determined according to the input bit among two states corresponding to the current state.

Ki번의 반복 중 k번째 반복에서의 현재 상태(Sk)와 다음 상태(k+1 번째 반복에서의 상태, Sk +1)가 수학식 1과 같이 표현될 때, 현재 상태와 다음 상태 간에는 실시 예에 따라, 수학식 2 또는 수학식 3과 같은 관계가 성립될 수 있다.
When the current state (S k ) and the next state (state at k + 1 iteration, S k +1 ) of the k iterations of K i iterations are expressed as in Equation 1, between the current state and the next state According to an embodiment, a relationship such as Equation 2 or Equation 3 may be established.

Figure 112012011359804-pat00002
Figure 112012011359804-pat00002

Sk의 값이 N개의 비트로 표현될 때, dN -1,k는 N개의 비트 중 최상위 비트를, d0,k는 N개의 비트 중 최하위 비트를 나타낸다. 마찬가지로, Sk +1의 값이 N개의 비트로 표현될 때, dN -1,k+ 1는 N개의 비트 중 최상위 비트를, d0 ,k+ 1는 N개의 비트 중 최하위 비트를 나타낸다.
When the value of S k is represented by N bits, d N -1, k represents the most significant bit of the N bits, and d 0, k represents the least significant bit of the N bits. Similarly, when the value of S k +1 is represented by N bits, d N −1, k + 1 represents the most significant bit of the N bits, and d 0 , k + 1 represents the least significant bit of the N bits.

Figure 112012011359804-pat00003
Figure 112012011359804-pat00003

ik는 k번째 반복에서 입력 받은 정보 비트,

Figure 112012011359804-pat00004
는 배타적 논리합(exclusive OR, XOR) 연산을 의미하고, dk 는 d0 ,k 내지 dN -1,k중 선택되는 적어도 하나의 비트를 XOR 연산한 결과 값을 나타낸다. 일례로, dk 는 d0 ,k 내지 dN -1,k 비트들을 모두 XOR 연산한 결과일 수 있으며, 다른 일례로, dk 는 d0 ,k 내지 dN -1,k 비트들 중 d0 ,k, d2 ,k 등 홀수 번째 비트들을 XOR 연산한 결과일 수 있다.
i k is the information bit received in the k th iteration,
Figure 112012011359804-pat00004
Denotes an exclusive OR (XOR) operation, and d k represents a result of performing an XOR operation on at least one bit selected from d 0 , k to d N −1, k . For example, d k may be the result of performing an XOR operation on all of the bits d 0 , k to d N −1, k , and as another example, d k is d of d 0 , k to d N −1, k bits. This may be a result of performing an XOR operation on odd bits such as 0 , k , d 2 , and k .

Figure 112012011359804-pat00005
Figure 112012011359804-pat00005

이때, a1 내지 aN -1은 0 또는 1의 값을 가지고, d0 ,k의 계수는 항상 1이다. a1 내지 aN -1 값은 구현 예에 따라, 모두 1의 값을 가질 수도 있으며, 일부(예컨대, 홀수 번째 값)는 0 나머지 (예컨대, 짝수 번째)는 1의 값을 가지도록 할 수도 있다.At this time, a 1 to a N -1 have a value of 0 or 1 , and the coefficient of d 0 , k is always 1. a 1 The values a to N −1 may all have a value of 1, and some (eg, odd-numbered values) may have a value of 1 in the remainder (eg, even-numbered values).

보다 구체적으로, 상태 수(NS)가 4인 경우 중에서 도 2의 실시 예와 같이 상태가 천이되는 경우를 예를 들어 설명한다. k번째 반복에서의 현재 상태가 두 개의 비트 [d1 ,k d0 ,k]로 표현되고, 그 다음 상태가 [d1 ,k+1 d0 ,k+1]로 표현될 때, 각 상태를 나타내는 비트들 간의 관계는 수학식 4와 같이 나타낼 수 있다.
More specifically, the case where the state transitions as in the embodiment of FIG. 2 among the case where the state number N S is 4 will be described with an example. When the current state at the k th iteration is represented by two bits [d 1 , k d 0 , k ], and the next state is represented by [d 1 , k + 1 d 0 , k + 1 ], each state The relationship between the bits representing may be represented by Equation 4.

Figure 112012011359804-pat00006
Figure 112012011359804-pat00006

이때, 현재 상태 값이 0[00]이라면, 다음 상태 값은 입력 비트가 0인 경우 0[00], 입력 비트가 1인 경우 2[10]가 된다. 현재 상태 값이 1[01]이라면, 다음 상태 값은 입력 비트가 0인 경우 2[10], 입력 비트가 1인 경우 0[00]이 된다. 현재 상태 값이 2[10]이라면, 다음 상태 값은 입력 비트가 0인 경우 3[11], 입력 비트가 1인 경우 1[01]이 된다. 마지막으로, 현재 상태 값이 3[11]이라면, 다음 상태 값은 입력 비트가 0인 경우 1[01], 입력 비트가 1인 경우 3[11]이 된다.At this time, if the current state value is 0 [00], the next state value is 0 [00] when the input bit is 0 and 2 [10] when the input bit is 1. If the current state value is 1 [01], the next state value is 2 [10] when the input bit is 0, and 0 [00] when the input bit is 1. If the current state value is 2 [10], the next state value is 3 [11] when the input bit is 0 and 1 [01] when the input bit is 1. Finally, if the current state value is 3 [11], the next state value is 1 [01] when the input bit is 0 and 3 [11] when the input bit is 1.

상태 수(NS)가 4인 경우 중에서, 다른 일 실시예에 따른 상태 천이 규칙은 수학식 5와 같이 나타낼 수 있다.
Among the cases where the state number N S is 4, the state transition rule according to another embodiment may be represented by Equation 5.

Figure 112012011359804-pat00007
Figure 112012011359804-pat00007

미리 설정된 횟수만큼 S142 단계 및 S144 단계가 반복된 후에는, S150 단계에서 부호화기는 마지막 반복에 의하여 변경된 부호화 상태에 기반하여 패리티 비트들을 결정한다. 예컨대, i번째 반복의 경우, 부호화기는 Ki번째 입력된 비트에 의해 Ki번째 변경된 부호화 상태에 기반하여 i번째 패리티 비트들을 결정한다.After step S142 and step S144 are repeated a predetermined number of times, in step S150 the encoder determines the parity bits based on the coding state changed by the last iteration. For example, in the case of the i-th iteration, an encoder, based on the K i second modified coding state by the K i-th input bit determines the i th parity bit.

일 실시예에 따라, 부호화기는 변경된 부호화 상태가 미리 설정된 상태(예를 들어, 초기화 상태)로 수렴하도록 하는 입력 비트들의 값을 패리티 비트들로 결정 한다. 예컨대, i번째 반복의 경우, Ki번째 변경된 부호화 상태가 초기화 상태(예를 들어, 상태 0)로 수렴하도록 하는 입력 비트들의 값이 i번째 패리티 비트들이 될 수 있다. 보다 구체적으로, 상태 수 NS가 4이고, 패리티 비트들의 수 NP가 2이며, 수학식 4와 같이 상태가 천이하는 도 2의 경우, i번째 반복에서의 패리티 비트들은 다음과 같이 결정된다. Ki번째 변경된 부호화 상태의 값이 상태 0인 경우 [00], Ki번째 변경된 부호화 상태의 값이 상태 1인 경우 [10], Ki번째 변경된 부호화 상태의 값이 상태 2인 경우 [11], Ki번째 변경된 부호화 상태의 값이 상태 3인 경우 [01]이 패리티 비트들이 된다. 도 2를 참조하면, 결정된 i번째 패리티 비트들이 Ki번째 반복 이후에 입력 비트로 들어간다고 가정했을 때, Ki번째 변경된 부호화 상태가 결국 미리 설정된 상태인 상태 0으로 수렴하여 상태 천이가 종료하는 것을 확인할 수 있다(220). 도 2 및 위에서 설명한 예에서는 상태 0으로 수렴하는 경우를 설명하였으나, 수렴되는 상태는 이에 한정되는 것은 아니며 다른 상태로 수렴하는 것으로 결정하여도 무관하다. 한편, 상태 수가 NS인 경우, 패리티 비트들의 비트 수 NP는 log2NS이 된다. 한 번에 결정되는 패리티 비트들의 수 NP는 2 이상의 정수로서, 오류정정 성능, 부호화 속도, 연산 속도, 필요로 하는 저장 공간 등을 고려하여 적절한 수로 결정될 수 있다. 이하, NP의 수가 2이고, 상태수 NS가 4인 4상-누산 코드의 경우를 중심으로 설명하나, 이에 한정되는 것은 아니며 NP는 3, 4 등의 정수가 될 수 있으며, NS는 8, 16등의 정수가 될 수 있다.According to one embodiment, the encoder determines the values of the input bits as parity bits that cause the changed encoding state to converge to a preset state (eg, an initialization state). For example, in the i-th iteration, the value of the input bits for causing the K i -th changed coding state to converge to an initialization state (eg, state 0) may be the i-th parity bits. More specifically, in FIG. 2 in which the state number N S is 4, the number N P of parity bits is 2, and the state transitions as shown in Equation 4, the parity bits in the i th iteration are determined as follows. When the value of the K i th changed encoding state is state 0 [00], when the value of the K i th changed encoding state is State 1 [10], and the value of the K i th changed encoding state is State 2 [11] When the value of the K i -th changed encoding state is state 3, the parity bits become [01]. 2, a predetermined i-th parity bits can see that time, the convergence state of state 0 is K i second modified coding state after all previously set by the state transition is completed, assuming the input bits deuleogandago after K i th iteration 220. In FIG. 2 and the above-described example, the case of convergence to state 0 has been described, but the converged state is not limited thereto and may be determined to converge to another state. On the other hand, when the number of states is N S , the number of bits N P of the parity bits is log 2 N S. The number of parity bits N P determined at one time is an integer of 2 or more, and may be determined in an appropriate number in consideration of error correction performance, encoding speed, arithmetic speed, required storage space, and the like. Hereinafter, a description will be given of a four-phase accumulation code in which the number of N P is 2 and the state number N S is 4, but the present invention is not limited thereto, and N P may be an integer such as 3 or 4, and N S Can be an integer such as 8 or 16.

부호화기는 섞어진 정보 비트들(즉, 정보 비트 블록의 비트들) 중 이전에 선택되지 않은 복수의 정보 비트들을 일부 선택하여, S130 단계 내지 S150 단계를 수행함을 적어도 1회 반복한다. 예컨대, 부호화기는 정보 비트 블록을 G개의 그룹으로 나눈 경우, 각 그룹에 대하여 순차적으로, S130 단계 내지 S150 단계를 수행함을 G회 반복할 수 있다. S130 단계 내지 S150 단계가 반복될 때에는 부호화 상태의 초기화를 수행하지 않으므로, i+1번째 반복에서의 초기 부호화 상태는 i번째 반복에서의 마지막 부호화 상태(Ki번째 변경된 부호화 상태)와 동일하다. S130 단계 내지 S150 단계를 G회 반복되면, NP개의 패리티 비트 그룹이 G개 생성된다.The encoder selects a plurality of previously unselected information bits among the mixed information bits (that is, bits of the information bit block), and repeats steps S130 to S150 at least once. For example, when the encoder divides the information bit block into G groups, the encoder may sequentially perform steps S130 to S150 for each group G times. Since the initialization of the encoding state is not performed when the steps S130 to S150 are repeated, the initial encoding state in the i + 1 th iteration is the same as the last encoding state (K i th changed encoding state) in the i th iteration. When the steps S130 to S150 step G-repeated, the N P parity bit group G is generated more.

S160 단계에서 부호화기는 정보 비트열 및 S150 단계에서 결정된 패리티 비트들을 기반으로 부호어를 생성한다. 일례로, 부호어는 c=[bk bp]와 같이, 정보 비트열 bk와 패리티 비트들이 G개 결합된 비트열 bp이 결합되어 생성될 수 있다. 일 실시예에 따라, bp는 [bK +1,bK +2,...,bK + Np (i-1)+1,...,bK + Np (G-1)+ Np] 이며, bK + Np (i-1)+ 1는 i번째 반복에서 생성된 패리티 비트들 중 첫 번째 비트를 의미한다. 패리티 비트들을 G회 반복하여 생성한 경우, 부호율은 K/(K+NP×G)이 된다.
In step S160, the encoder generates a codeword based on the information bit string and the parity bits determined in step S150. For example, the codeword may be generated by combining the information bit string b k and the bit string b p in which G parity bits are combined, such as c = [b k b p ]. According to one embodiment, b p is [b K +1 , b K +2 , ..., b K + Np (i-1) +1 , ..., b K + Np (G-1) + Np ], and b K + Np (i-1) + 1 means the first bit of the parity bits generated in the i-th iteration. When the parity bits are generated by repeating G times, the code rate is K / (K + N P × G).

도 2는 개시된 기술의 일 실시예에 따라, 부호화 상태가 변경되는 과정 및 패리티 비트들이 결정되는 과정을 설명하기 위한 트렐리스 다이어그램이다. 도 2는 앞에서 언급한 바와 같이 NS가 4이고, NP가 2이며, 수학식 4와 같이 상태가 천이되는 경우의 트렐리스(trellis) 다이어그램이다. 2 is a trellis diagram for explaining a process of changing an encoding state and a process of determining parity bits according to an embodiment of the disclosed technology. FIG. 2 is a trellis diagram when N S is 4, N P is 2, and a state transitions as shown in Equation 4 as described above.

도 2에는 정보 비트가 입력됨에 따라 상태가 천이하는 반복적인 과정이 시간 흐름에 따라 펼쳐져 있다. 트렐리스 다이어그램은 가지들(branches) 및 상태들(states)을 포함한다. 가지들은 부호화 신호, 또는 부호화 신호에 따른 상태 천이를 나타낸다. 상태들은 부호화 신호에 대응하여 시간에 따라 천이하는 부호화 상태를 나타낸다. 도 2에서, 정보 비트의 입력에 따른 부호화 상태는 원형으로 표시되고, 각 상태 간을 연결하는 화살표 중 실선 화살표는 비트 0이 입력된 경우를, 점선 화살표는 비트 1이 입력된 경우를 나타낸다. 한 블록에 대한 부호화가 시작될 때 마다 부호화 상태는 상태 0으로 초기화된다. 이후, 정보 비트가 입력되면, 현재 상태 및 입력되는 비트의 값에 따라 다음 상태로 천이된다.In FIG. 2, an iterative process of transitioning states as information bits are input is unfolded over time. Trellis diagrams include branches and states. The branches represent a coded signal or a state transition in accordance with the coded signal. The states represent encoding states that transition with time in correspondence with the encoded signal. In FIG. 2, the encoding states according to the input of the information bits are displayed in a circle, and a solid line arrow indicates a case where bit 0 is input and a dotted line arrow indicates a case where bit 1 is input. Each time the encoding for one block starts, the encoding state is initialized to state zero. Then, when the information bit is input, it is transitioned to the next state according to the current state and the value of the input bit.

t=(i,l)은 i번째 선택된 정보 비트들(이하, i번째 그룹이라 함) 중 l번째 정보 비트가 입력되는 시간을 나타낸다. t=(1,1)에서, 현재 상태 값은 초기화 값인 상태 0이다. 이후, 0이 입력되는 경우 상태 0으로, 1이 입력되는 경우 상태 2로 천이한다. 1이 입력되었다고 가정하는 경우, t=(1,2)에서의 현재 상태 값은 상태 2가 된다. 이후, 마찬가지로 0이 입력되는 경우 상태 3으로, 1이 입력되는 경우 상태 1로 천이된다. 만약 0이 입력되었다고 가정하면, t=(1,3)에서의 현재 상태 값은 상태 3이 된다. 이와 같이 정보 비트들이 입력됨에 따라 상태 천이가 반복된다. 한 그룹에 대하여 미리 설정된 횟수, 예컨대 첫 번째 그룹의 경우 K1번 만큼 정보 비트들이 입력되면 K1번째 반복에서 변경된 부호화 상태 St(이때, t=(1,K1+1))에 따라 NP 비트의 패리티 비트들을 결정한다. 예를 들어, t=(1,K1+1)에서의 상태 값이 2인 경우, 패리티 비트들은 [11]이 된다. 패리티 비트들은 K1 번째 반복에서 변경된 부호화 상태 St(이때, t=(1,K1+1))의 상태 값을 특정 상태, 예컨대, 상태 0으로 수렴하게 만드는 입력 비트들의 값으로 결정된다. t = (i, l) indicates the time at which the first information bit of the i th selected information bits (hereinafter referred to as the i th group) is input. At t = (1,1), the current state value is state 0, which is an initialization value. Thereafter, when 0 is inputted, the state transitions to 0, and when 1 is inputted, state 2 is entered. Assuming 1 is entered, the current state value at t = (1,2) is state 2. Thereafter, the state transitions to state 3 when 0 is input, and to state 1 when 1 is input. If 0 is entered, the current state value at t = (1,3) is state 3. As the information bits are input as described above, the state transition is repeated. When information bits are input as many as a preset number for one group, for example, K 1 for the first group, N according to the encoding state S t (where t = (1, K 1 +1)) changed in the K 1st iteration. Determine the parity bits of the P bit. For example, if the state value at t = (1, K 1 +1) is 2, the parity bits are [11]. The parity bits are determined by the values of the input bits that make the state value of the encoded state S t (where t = (1, K 1 +1)) changed at the K 1 iteration to converge to a particular state, for example state 0.

도 2를 참조하면, K1 번째 반복에서 변경된 부호화 상태가 상태 2인 경우, 비트 1이 입력되면 상태 1이 되고, 상태 1에서 다시 비트 1이 입력되면 상태 0(zero state)이 되는 것을 확인할 수 있다. 첫 번째 그룹에 대한 패리티 비트들이 결정되면, 두 번째 그룹의 정보 비트들을 순차적으로 입력 받으면서 전술한 과정을 반복한다. 이때, 첫 번째 그룹의 마지막 정보 비트의 입력에 의해 변경된 부호화 상태가 두 번째 그룹의 초기 부호화 상태가 된다. 두 번째 패리티 비트들이 결정되면, 마찬가지로 이후의 모든 그룹들에 대하여 전술한 과정이 반복된다. 이와 같이, 각 그룹의 정보 비트들이 하나씩 입력됨에 따라 변경되는 부호화 상태를 기반으로 패리티 비트 값이 결정되므로, 수신 측에서는 반대로 패리티 비트들을 이용하여 전송된 데이터의 오류가 있는지 여부를 판단할 수 있다.
Referring to FIG. 2, when the coding state changed in the K 1 iteration is state 2, it can be confirmed that when bit 1 is inputted, state 1 is input, and when bit 1 is inputted again from state 1, it becomes state 0 (zero state). have. When the parity bits for the first group are determined, the above-described process is repeated while sequentially receiving the information bits of the second group. At this time, the encoding state changed by the input of the last information bit of the first group becomes the initial encoding state of the second group. Once the second parity bits are determined, the above process is repeated for all subsequent groups as well. As described above, since a parity bit value is determined based on an encoding state changed as one information bit of each group is input, the receiving side can determine whether there is an error of transmitted data by using the parity bits.

한편, 앞서 설명된 불규칙 반복 다상 누산 코드 부호화 방법은 G행 N열(N은 부호어의 길이로서, 정보 비트열 bk의 길이와 패리티 비트 길이 G×NP의 합)의 행렬(이하 "부호화 행렬")을 통하여 구조적으로 설명될 수 있다.On the other hand, the above-described irregular iterative multi-phase accumulation code encoding method is a matrix of G rows N columns (where N is the length of the codeword and the sum of the length of the information bit string b k and the parity bit length G × N P ) (hereinafter, referred to as “encoding”). Matrix ").

상술된 부호화 행렬은 후술될 본 발명에 따른 가변적 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 부호화 방법을 설명하기 위해서 반드시 필요한 개념이다. 또한, 부호화 행렬은 복호화 쪽에서는 복호화 행렬로서 설명이 될 수가 있다. 즉, 부호화 과정에서 이용된 부호화 행렬과 동일한 행렬이 복호화 과정에서는 복호화 행렬로서 이용된다.The above-described coding matrix is a concept necessary to describe a method of encoding an irregular repetitive polyphase accumulating code supporting a variable codeword length according to the present invention. The coding matrix can also be described as a decoding matrix on the decoding side. That is, the same matrix as the coding matrix used in the encoding process is used as the decoding matrix in the decoding process.

도 3은 본 발명에 따른 불규칙 반복 다상 누산 코드 부호화 방법에서 부호화 행렬의 개념을 설명하기 위한 개념도이다. 3 is a conceptual diagram illustrating a concept of a coding matrix in an irregular repetitive polyphase accumulating code encoding method according to the present invention.

도 3은 G행 N 열의 불규칙 반복 다상 누산 코드 부호화 행렬(A)을 나타낸 것으로, 행렬 A는 불규칙 반복 다상 누산 코드 부호화 방법을 이용하여 정보 비트열을 부호화 하는 과정을 구조적으로 표현할 수 있다. 즉, 불규칙 반복 다상 누산 코드 부호화 방법의 불규칙 반복에 의해서 정보 비트열이 반복되는 특성 또한 부호화 행렬 A를 통하여 표현이 가능하다. 3 shows an irregular repeating polyphase accumulating code encoding matrix A of G rows N columns, and matrix A may structurally represent a process of encoding an information bit string using an irregular repeating polyphase accumulating code encoding method. That is, the characteristic that the information bit string is repeated by irregular repetition of the irregular repetitive polyphase accumulation code encoding method can also be expressed through the coding matrix A. FIG.

행렬 A는 LDPC 코드에서 생성 행렬(generator matrix)의 역할을 수행할 수 있다. The matrix A may serve as a generator matrix in the LDPC code.

G번의 반복 중 i번째 반복에서 정보 비트열 bk에서 선택되는 비트의 수는 m(i)라 하고, 정보 비트열 bk을 구성하는 K개의 비트 중 j번째 비트가 반복하여 선택되는 수를 q(j)라 한다. 행렬 A는 이진(binary) 행렬로서, 행렬의 구성요소 ai ,j의 값은 ai ,π(l)를 제외하고 모두 0값을 가진다. π(l)은 i번째 반복에서 선택된 m(i)개의 비트들 중 l번째 선택된 비트의 열 인덱스 j를 의미한다. j= π(l)인 ai,j(즉, ai ,π(l))의 값은 1이다.The number of bits selected from the information bit string b k in the i iterations of the G repetitions is m (i), and the number of repeatedly selected jth bits of the K bits constituting the information bit string b k is q. It is called (j). The matrix A is a binary matrix, and the values of the components a i and j of the matrix have all zero values except a i and pi (l) . π (l) means the column index j of the l-th selected bit among the m (i) bits selected in the i-th iteration. The value of a i, j (ie, a i , π (l) ) with j = π (l) is 1.

도 3에서는 10 by 40 행렬 A가 예시되어 있다. 도 3에 도시된 행렬 A는 G=10으로, S130 단계 내지 S150 단계를 10번 반복한다. K=20으로, 정보 비트열 bk의 비트 수는 20이다. 패리티 비트들의 비트 수 NP은 2이다. 패리티 비트들을 결정하는 과정이 10번 반복되므로 총 결정되는 패리티 비트 블록의 길이는 20이다. In FIG. 3, a 10 by 40 matrix A is illustrated. The matrix A shown in FIG. 3 repeats the steps S130 to S150 ten times with G = 10. With K = 20, the number of bits in the information bit string b k is 20. The number of bits N P of the parity bits is two. Since the process of determining the parity bits is repeated 10 times, the total length of the parity bit block determined is 20.

한편, 행렬 A에서 회색 음영 부분은 모두 0값을 가진다. 첫 번째 행에서 3, 4, 9, 14, 16, 17 번째 열이 1 값을 가지므로, 첫 번째 반복에서는 정보 비트열 bk의 정보 비트들 중 3, 4, 9, 14, 16, 17 번째 비트들이 선택되어 S140 단계가 수행된다. 나머지 열도 마찬가지로 해석될 수 있다.
On the other hand, the gray shaded portions of the matrix A all have zero values. In the first row, the 3rd, 4th, 9th, 14th, 16th, 17th column has a value of 1, so in the first iteration, the 3rd, 4th, 9th, 14th, 16th, 17th bits of the information bits of the information bit string bk. Are selected, and step S140 is performed. The remaining columns can be interpreted as well.

한편, 여기에서 부호화 행렬은 본 발명에 따른 불규칙 반복 다상 누산 코드 부호화 방법을 구조적으로 설명하기 위한 수단일뿐, 이하에 설명되는 행렬에 대한 조작들은 행렬 조작들에 의해서 부호화 과정을 제어하는 기술적 사상으로서 이해되어야 하며, 이러한 기술적 사상이 반드시 완전한 행렬 연산에 의해서 이루어지는 것은 아님이 이해되어야 한다. 예컨대, 행렬의 원소들이 0과 1의 값들만을 가지며, 1의 값을 가지는 원소의 밀도가 낮은 것을 이용하여 메모리 효율적인 저장 방법이 이용될 수 있을 것이다. 또한, 메모리 효율적인 저장 방법이 이용될 경우에, 이하에 설명되는 가변적 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 부호화를 위한 행렬 조작 또한 메모리 효율적인 방식으로 이루어질 수 있을 것이다.
On the other hand, the coding matrix here is only a means for structurally explaining the method of encoding the irregular repetitive polyphase accumulating code according to the present invention, the operations of the matrix described below are understood as a technical idea of controlling the coding process by matrix operations. It should be understood that this idea is not necessarily made by full matrix operations. For example, a memory efficient storage method may be used by using elements of a matrix having only values of 0 and 1, and having a low density of an element having a value of 1. In addition, when a memory efficient storage method is used, matrix manipulation for irregular repetitive polyphase accumulating code encoding supporting variable codeword lengths described below may also be performed in a memory efficient manner.

불규칙 irregular 다상Polyphase 누산Accumulation 코드 복호화 방법 Code decryption method

상술된 불규칙 다상 누산 코드 부호화 방법에 의해서 부호화된 부호어를 유무선 채널을 통하여 수신한 부호화 신호는 다양한 복호화 알고리즘에 의해서 복호화될 수 있다. 예컨대, 종래 LDPC 코드가 패리티 체크를 위해 tanh 규칙을 사용하였던 것을 대신하여, 2차원 BCJR(Bahl, Cocke, Jelinek, Raviv) 알고리즘이 불규칙 반복 다상 누산 코드 부호화된 부호화 신호를 복호하는데 이용될 수 있다.The coded signal received through the wired / wireless channel with the codeword encoded by the above-described irregular polyphase accumulation code encoding method may be decoded by various decoding algorithms. For example, instead of the conventional LDPC code using the tanh rule for parity check, a two-dimensional BCJR (Bahl, Cocke, Jelinek, Raviv) algorithm can be used to decode a randomly iterative multiphase accumulated code encoded coded signal.

이하에서는, 이해를 돕기 위해서 본 발명에 따른 복호화 방법에 의해서 도 2의 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여 수신 데이터를 복호화하는 과정을 설명하기로 한다. 본 실시예와 관련하여 LDPC 복호화 방식이 동일하게 적용될 수 있는 부분은 간단히 언급되거나 생략될 수 있다.Hereinafter, for the sake of understanding, a process of decoding received data by using the two-dimensional BCJR algorithm based on the trellis of FIG. 2 by the decoding method according to the present invention will be described. In the context of the present embodiment, parts to which the LDPC decoding scheme is equally applicable may be simply mentioned or omitted.

도 3을 통하여 설명된 부호화 행렬(A)은 부호화 과정에서 사용되는 한편, 복호화 과정에서도 사용될 수 있다. 따라서, 행렬 A는 부호화 과정에서는 생성 매트릭스(generator matrix)로서 역할하지만 복호화 과정에서는 패리티 체크 매트릭스(parity check matrix)로 역할한다. 즉, 복호화 과정에서 행렬 A는 LDPC 코드를 이용한 복호화에서 패리티 체크 매트릭스와 같은 역할을 수행한다. The encoding matrix A described with reference to FIG. 3 may be used in the encoding process and may also be used in the decoding process. Therefore, the matrix A serves as a generator matrix in the encoding process but serves as a parity check matrix in the decoding process. That is, in the decoding process, the matrix A plays the same role as the parity check matrix in decoding using the LDPC code.

IRmA 코드는 태너 그래프(Tanner Graph), 즉, 양 측으로 나뉘어진 노드들과 한 측의 노드에서 타 측의 노드로 연결된 가지(edge)들로 표현될 수 있다. 양 측의 노드들 중 한 측의 노드들은 부호어의 각 비트들을 의미하는 변수 노드들(variable nodes)이며, 타 측의 노드들은 각 그룹들을 의미하는 그룹 노드들이다. The IRmA code may be represented by a Tanner Graph, that is, nodes divided into two sides and edges connected from one node to another node. Nodes on either side of the nodes on both sides are variable nodes meaning each bit of the codeword, and nodes on the other side are group nodes meaning each group.

가지를 따라 한 측의 노드에서 타 측의 노드로 메시지를 전달하고, 전달 받은 메시지를 기초로 전달할 메시지를 갱신하는 과정을 반복하는 것으로 복호화 과정을 설명할 수 있다. 메시지 전달 및 갱신 과정이 반복될수록 복호화의 정확도가 높아지며, 통상적으로 최대 반복 한계 횟수를 미리 정하고 최대 반복 한계 횟수 이내에서 복호화가 성공하면 반복을 중단하게 된다.The decoding process can be described by repeating a process of transmitting a message from one node to another node along the branch and updating a message to be delivered based on the received message. As the message delivery and update process is repeated, the accuracy of decryption becomes higher. Typically, the maximum number of iterations is determined in advance, and if the decoding succeeds within the maximum number of iterations, the iteration is stopped.

이때, 메시지는 부호화 신호 중 해당하는 비트의 가능도(likelihood)에 관한 정보를 포함한다. 가능도는 해당 비트가 1 또는 0 값을 가질 가능성의 정도를 의미한다. 가능도를 표현하는 지표로, 대수 가능도 비(Log Likelihood Ratio: LLR)가 사용되는 경우를 예를 들어 설명하나, 이에 제한되는 것은 아니다. 그룹 노드들에서는 2차원 BCJR 알고리즘을 이용하여 각 변수 노드에 전달하는 메시지를 갱신한다. In this case, the message includes information on the likelihood of the corresponding bit in the coded signal. Likelihood refers to the degree of likelihood that a bit has a value of 1 or 0. As an index representing the likelihood, a case in which a log likelihood ratio (LLR) is used will be described as an example, but is not limited thereto. Group nodes update the message delivered to each variable node using the two-dimensional BCJR algorithm.

도 4는 본 발명에 따른 불규칙 반복 다상 누산 코드 부호화 신호의 복호화 방법을 설명하기 위한 순서도이다.4 is a flowchart illustrating a decoding method of an irregular repetitive polyphase accumulated code coded signal according to the present invention.

S410 단계에서, 복호화기는 정보 비트들과 패리티 비트들을 포함하는 부호화 신호를 수신한다. S420 단계에서, 복호화기는 부호화 신호에 포함된 부호화 비트들을 G(G는 2 이상의 정수)개의 그룹들로 그룹화한다. 예컨대, 복호화기는 부호화 비트들을 G개의 그룹들 중 적어도 하나의 그룹과 매칭시킬 수 있다. 어느 하나의 그룹은 복수의 부호화 비트들을 포함하며, 또한, 어느 하나의 부호화 비트는 복수의 그룹들에 포함될 수 있다. i번째 그룹에 포함된 비트들의 수를 m(i)라 한다. m(i)개의 부호화 비트들은 Ki개의 정보 비트들과 NP개의 패리티 비트들로 구성될 수 있다. 부호화 비트들은 LDPC 코드에서 패리티 체크 행렬 H를 이용하는 것과 마찬가지로, 복호화 행렬을 이용하여, 부호화 과정에서의 반복(repetition) 및 인터리빙(interleaving) 과정을 표현할 수 있으며, 복호화기는 이러한 복호화 행렬을 이용하여, 부호화 비트들을 그룹화 할 수 있다. 각 부호화 비트들을 나타내는 변수 노드들은 각 그룹들을 나타내는 그룹 노드 중 자신과 상응하는 적어도 하나의 그룹 노드와 연결된다.In operation S410, the decoder receives an encoded signal including information bits and parity bits. In step S420, the decoder groups the coded bits included in the coded signal into G (G is an integer of 2 or more) groups. For example, the decoder may match the encoded bits with at least one of the G groups. One group may include a plurality of encoded bits, and any one encoded bit may be included in the plurality of groups. The number of bits included in the i th group is called m (i). The m (i) coding bits may be composed of K i information bits and N P parity bits. The encoding bits may represent a repetition and interleaving process in the encoding process using a decoding matrix, similarly to using the parity check matrix H in the LDPC code, and the decoder uses the decoding matrix to encode You can group bits. The variable nodes representing each encoding bit are connected with at least one group node corresponding to itself among the group nodes representing each group.

변수 노드들은 부호어의 길이 N개 만큼 있을 수 있으며, 그룹 노드들은 그룹들의 수 G 개 만큼 있을 수 있다. 여기서, N개의 변수 노드들의 순서는 j로 표시하고, G개의 그룹 노드들의 순서는 i로 표시한다. G개의 그룹 노드들 중 i번째 그룹 노드와 연결되는 변수 노드들의 수(i번째 그룹이 포함하는 부호화 비트의 수)를 m(i)라 한다. 즉, m(i)개의 변수 노드들 중 l번째 노드는, N개의 변수 노드들 중 j=π(l)번째 노드에 해당한다. 마찬가지로, N개의 변수 노드들 중 j번째 변수 노드와 연결되는 그룹 노드들의 수, 즉, j번째 부호화 비트가 포함된 그룹들의 수를 q(j)라 한다. q(j)개의 그룹 노드들의 순서를 k라 표현했을 때, k와 i의 관계는 i=σ(k)로 표시한다. 즉, q(j)개의 그룹 노드들 중 k번째 노드는, G개의 그룹 노드들 중 i=σ(k)번째 노드에 해당한다.The variable nodes may have as many as N lengths of codewords, and the group nodes may have as many as G groups. Here, the order of the N variable nodes is denoted by j, and the order of the G group nodes is denoted by i. The number of variable nodes (the number of coding bits included in the i-th group) connected to the i-th group node among the G group nodes is m (i). That is, the l th node among the m (i) variable nodes corresponds to the j = π (l) th node among the N variable nodes. Similarly, the number of group nodes connected to the j th variable node among the N variable nodes, that is, the number of groups including the j th encoding bit is referred to as q (j). When the order of q (j) group nodes is expressed as k, the relationship between k and i is represented by i = σ (k). That is, the k th node among the q (j) group nodes corresponds to the i = σ (k) th node among the G group nodes.

부호화 비트들이 그룹화되면, 복호화기는 수신된 부호화 신호를 기초로 부호화 신호의 각 비트들의 가능도 L 및 제1 메시지 U를 초기화 할 수 있다. Lj는 N 비트의 부호화 신호 중 j번째 비트(bj)의 LLR을 의미한다. 제1 메시지 U는 그룹 노드가 변수 노드에 제공하는 메시지이다. Ui ,j는 i번째 그룹 노드가 j번째 변수 노드에 제공하는 메시지로, i번째 그룹 노드가 추정한 bj의 LLR을 값으로 가진다. U0 ,j는 수신된 부호화 신호 값을 기초로 추정된 bj의 관측 LLR 값이다. U0 ,j를 제외한 Ui ,j는 모두 0으로 초기화되고, Lj값은 U0 ,j 값으로 초기화된다.When the coded bits are grouped, the decoder may initialize the likelihood L and the first message U of each bit of the coded signal based on the received coded signal. L j means the LLR of the j th bit (b j ) of the N-bit encoded signal. The first message U is a message provided by the group node to the variable node. U i , j is a message provided by the i-th group node to the j-th variable node and has a value of LLR of b j estimated by the i-th group node. U 0 , j is an observed LLR value of b j estimated based on the received coded signal value. U 0, U i, j except for j is initialized to 0, the value L j is initialized to U 0, j values.

S430 단계에서, 복호화기는 부호화 비트들 중 각 비트에 대하여, 각 비트가 포함된 복수의 그룹들로부터 제공되는 각 비트의 가능도(likelihood, 이하 제1메시지의 값)들에 기반하여, 각 변수 노드가 복수의 그룹 노드들에 제공하는 각 비트의 가능도(이하, 제2메시지의 값)들을 추정한다. 일 실시예에 따라, j번째 변수 노드에서는 j번째 변수 노드와 연결된 q(j)개의 그룹 노드들로부터 제공되는 q(j)개의 제1 메시지 Uσ(k),j(이때, k는 1부터 q(j)사이의 정수)들을 기초로 q(j)개의 제2메시지 V들이 산출된다. 산출되는 제2 메시지 Vj ,σ(k)(이때, k는 1부터 q(j)사이의 정수)들은 j번째 변수 노드가 q(j)개의 그룹 노드들 각각에 제공하는 bj의 LLR값을 나타낸다. 그 중 σ(n)=i번째 그룹 노드에 제공하는 제2 메시지 Vj,σ(n)=Vj,i는, 일 실시예에 따라 수학식 6과 같이 산출될 수 있다. 이때, σ(0)=0으로 정의한다.
In operation S430, the decoder determines each variable node based on likelihood of each bit provided from a plurality of groups including each bit, for each bit among encoded bits. Estimates the likelihood (hereinafter, the value of the second message) of each bit provided to the plurality of group nodes. According to an embodiment, in the j th variable node, q (j) first messages U σ (k), j provided from q (j) group nodes connected with the j th variable node, where k is from 1 q (j) second messages V are calculated based on the integers between q (j). The calculated second messages V j , σ (k) , where k is an integer between 1 and q (j), are LLR values of b j that the j th variable node provides to each of q (j) group nodes. Indicates. Among them, the second message Vj, σ (n) = Vj, i provided to σ (n) = i-th group node may be calculated as shown in Equation 6 according to an embodiment. At this time, it is defined as σ (0) = 0.

Figure 112012011359804-pat00008
Figure 112012011359804-pat00008

j번째 변수 노드가 제공하는 제2 메시지는 j번째 변수 노드와 연결된 그룹 노드들이 j번째 변수 노드에 제공하는 bj의 LLR 값(Uσ(k),j)들 및 U0 ,j의 합으로 산출될 수 있는데, 이때, i번째 그룹 노드에 제공하는 제2 메시지 Vj ,i는 i번째 그룹 노드로부터 제공 받은 제1 메시지 Ui ,j의 값은 제외하고 합산된 값으로 결정된다.The second message provided by the jth variable node is the sum of the LLR values (U σ (k), j ) of b j and U 0 , j provided by the group nodes connected to the jth variable node to the jth variable node. In this case, the second message V j , i provided to the i-th group node is determined as a sum value except for the value of the first message U i , j provided from the i-th group node.

S440 단계에서, 복호화기는 제2 메시지의 값들을 기초로 제1 메시지의 값들을 갱신한다. 일 실시예에 따라, 복호화기는 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여, G개의 그룹 노드들이 제공받은

Figure 112012011359804-pat00009
개의 제2 메시지의 값들을 기초로, 제1 메시지의 값들을 갱신하여 각 변수 노드에 제공한다. 제1 메시지의 값은 각 그룹 노드들이 각 그룹 노드와 연결된 비트들에 대하여 추정하는 각 비트들의 가능도로서, 각 비트의 주변 비트들의 가능도에 기반하여 추정된다. 예컨대, Ui ,j는 i번째 그룹 노드가 j번째 변수 노드에 제공하는 제1 메시지의 값으로, G개의 그룹들이 제공받은 개의 제2 메시지의 값들 중 j번째 변수 노드가 i번째 그룹 노드에 제공한 제2 메시지 Vj ,i를 제외한 제2 메시지들을 기초로 추정되는 값이다. 이때, 복호화기는 2차원 BCJR 알고리즘을 이용하여 제1 메시지 값을 갱신할 수 있다. 복호화기가 제1 메시지 값을 갱신하는 과정은 도 5를 참조하여 후술한다.In step S440, the decoder updates the values of the first message based on the values of the second message. According to an embodiment, the decoder uses a two-dimensional BCJR algorithm based on trellis representing the encoding state transition, so that the G group nodes are provided.
Figure 112012011359804-pat00009
Based on the values of the two second messages, the values of the first message are updated and provided to each variable node. The value of the first message is the likelihood of each bit that each group node estimates for the bits associated with each group node and is estimated based on the likelihood of the surrounding bits of each bit. For example, U i , j is the value of the first message provided by the i-th group node to the j-th variable node, and the j-th variable node among the values of the second message provided by the G groups is provided to the i-th group node. A value estimated based on the second messages except for the second message V j , i . In this case, the decoder may update the first message value by using the 2D BCJR algorithm. The process of updating the first message value by the decoder will be described later with reference to FIG. 5.

S450단계에서, 복호화기는 S430 단계 및 S440 단계의 수행을 반복한다. 복호화기는 이전의 반복에서 산출된 제1 메시지를 이용하여 제2 메시지를 산출하고, 새로이 산출된 제2 메시지를 이용하여 제1메시지를 갱신하는 과정을 미리 설정된 횟수만큼 반복한다.In step S450, the decoder repeats the operations of steps S430 and S440. The decoder calculates a second message by using the first message calculated in the previous iteration, and repeats the process of updating the first message by using the newly calculated second message by a preset number of times.

S460 단계에서, 복호화기는 마지막 반복에서 갱신된 제1 메시지 값들을 기초로 추정되는 각 비트(bj)의 가능도에 따라 각 비트(bj)의 값을 결정한다. 일 실시예에 따라 bj의 LLR값인 Lj는 수학식 7과 같이 산출될 수 있다.
In step S460, the decoder determines the value of each bit b j according to the likelihood of each bit b j estimated based on the first message values updated in the last iteration. According to an embodiment, L j, which is an LLR value of b j , may be calculated as shown in Equation 7 below.

Figure 112012011359804-pat00010
Figure 112012011359804-pat00010

복호화기는 Lj의 값이 1보다 작은지 또는 1보다 큰지에 따라 bj의 값이 1인지 또는 0인지 여부를 결정한다.
The decoder determines whether the value of b j is 1 or 0 depending on whether the value of L j is less than 1 or greater than 1.

도 5는 본 발명에 따른 불규칙 반복 다상 누산 코드 복호화 방법에서 제1 메시지 값을 갱신하기 위한 2차원 BCJR 알고리즘을 설명하기 위한 순서도이다. FIG. 5 is a flowchart illustrating a two-dimensional BCJR algorithm for updating a first message value in an irregular repetitive polyphase accumulated code decoding method according to the present invention.

도 5에서 설명하는 2차원 BCJR 알고리즘을 이용한 복호화 방법에 따르면, 복호화기는 제2 메시지들을 기반으로 하여, 인워드 상태 메트릭을 산출한 뒤, 이를 기초로 포워드 상태 메트릭 및 백워드 상태 메트릭을 산출하고, 마지막으로 아웃워드 상태 메트릭을 산출한다. 상태 메트릭들이 산출되면, 복호화기는 인워드, 포워드, 백워드, 아웃워드 상태 메트릭을 이용하여 제1 메시지를 갱신할 수 있다. 한편, 설명의 편의를 위하여 부호화 신호 중 i번째 그룹 노드가 제공 받은 m(i)개의 제2 메시지들 중 l번째 제2메시지인 Vπ(l),i에 상응하는 시간 t를 2차원적 시간 인덱스인 t=(i,l)로 표시한다. 또한, 시간 t=(i,l)는 i번째 그룹의 l번째 비트에 상응하는 시간이다. 이때, 각 i에 대하여 t=(i,1),...,t=(i,Ki)는 정보 비트에 상응하는 시간이며, t=(i,Ki+1),...,t=(i,m(i))은 패리티 비트에 상응하는 시간이다.According to the decoding method using the two-dimensional BCJR algorithm described in FIG. 5, the decoder calculates an forward state metric based on the second messages, and then calculates a forward state metric and a backward state metric based on the second message. Finally, calculate the outward status metric. Once the status metrics are calculated, the decoder can update the first message using the forward, forward, backward, and outward status metrics. Meanwhile, for convenience of description, the time t corresponding to Vπ (l), i, which is the l-th second message, of the m (i) second messages provided by the i-th group node of the coded signals is a two-dimensional time index. T = (i, l). Further, time t = (i, l) is a time corresponding to the lth bit of the i th group. In this case, for each i t = (i, 1), ..., t = (i, K i ) is the time corresponding to the information bits, t = (i, K i + 1), ..., t = (i, m (i)) is the time corresponding to the parity bit.

부호화된 신호는, 도 2의 트렐리스 다이어그램과 같은 상태 천이 및 패리티 비트 생성 규칙에 따라 생성된 패리티 비트들이 정보 비트들과 결합되어 생성된 신호라 가정한다. 도 2의 천이 규칙은 송신 측과 수신 측이 공통적으로 알고 있는 정보이므로, 수신 측에서도 도 2와 같은 트렐리스를 동일하게 구성할 수 있다.
The coded signal is assumed to be a signal generated by combining parity bits generated according to state transition and parity bit generation rules as shown in the trellis diagram of FIG. 2 with information bits. Since the transition rule of FIG. 2 is information that the transmitting side and the receiving side have in common, the receiving side can have the same trellis as shown in FIG.

도 2의 트렐리스를 기반으로, 복호화기는 G개의 그룹 노드들이 제공받은

Figure 112012011359804-pat00011
개의 제2 메시지들에 2차원 BCJR 알고리즘을 적용하여
Figure 112012011359804-pat00012
개의 제1 메시지들을 갱신한다. 도 2의 트렐리스는 일반적인 트렐리스와 달리, 정보 비트들이 입력됨에 따른 부호화 상태 천이를 나타내는 메인 가지들(210)과 패리티 비트들이 입력됨에 따른 부호화 상태 천이를 나타내는 보조 가지들(220)을 포함한다. 보조 가지들(220)은 시간 t=(i, Ki+1)인 때마다 메인 가지들(210)로부터 분기된다. 즉, 도 2에서, i번째 보조 가지가 메인 가지와 분기되는 분기 상태의 시점은 t=(i, Ki+1)로 나타낼 수 있으며, i번째 보조 가지의 최종 상태의 시점은 t=(i, m(i)+1)로 나타낼 수 있다. 경우에 따라, Ki는 m(i)-NP로 표현될 수도 있다.Based on the trellis of FIG. 2, the decoder receives the G group nodes.
Figure 112012011359804-pat00011
Two-dimensional BCJR algorithm to two second messages
Figure 112012011359804-pat00012
First messages Unlike the general trellis, the trellis of FIG. 2 includes main branches 210 indicating the encoding state transition as information bits are input and auxiliary branches 220 indicating the encoding state transition as parity bits are input. . The auxiliary branches 220 branch off from the main branches 210 whenever time t = (i, K i +1). That is, in FIG. 2, the time point of the branched state where the i-th auxiliary branch branches from the main branch may be represented by t = (i, K i +1), and the time point of the final state of the i-th auxiliary branch may be t = (i , m (i) +1). In some cases, Ki may be represented by m (i) -N P.

기존 BCJR 알고리즘에 따르면 수신 비트열을 기반으로 사후 확률을 계산하여 전송 비트의 연판정(soft decision)값을 얻을 수 있다. 시간 t에서의 사후 확률은 시간 t에서의 사후 천이 확률들의 합으로 계산될 수 있다. 시간 t에서의 사후 확률은 수학식 8과 같다.
According to the conventional BCJR algorithm, a soft decision value of a transmission bit may be obtained by calculating a post probability based on a received bit string. The posterior probability at time t may be calculated as the sum of the posterior transition probabilities at time t. The posterior probability at time t is expressed by Equation 8.

Figure 112012011359804-pat00013
Figure 112012011359804-pat00013

여기서, 사후 확률 P(dt=d)는 시간 t에서의 전송 비트 값이 d(d는 0또는 1)일 확률이다. σ(st,st +1)는 시간 t에서의 사후 천이 확률로, σ(st=a,st +1=b)는 시간 t에서의 상태(st)가 상태 a이고, 시간 t+1에서의 상태(st +1)가 상태 b일 확률을 의미한다. 이때, 상태 b는, 시간 t에서의 상태가 상태 a이고, 시간 t에서의 전송 비트 값이 d일 때 시간 t+1에서 천이된 상태 값이다. st는 상태 수 NS 만큼 주어진 부호화 상태들 중 어느 하나의 값을 가진다. 본 실시예에서 St는 상태 0, 상태 1, 상태 2, 상태 3 중 어느 하나의 값을 가진다.Here, the posterior probability P (d t = d) is a probability that the transmission bit value at time t is d (d is 0 or 1). σ (s t , s t +1 ) is the probability of post-transition at time t, σ (s t = a, s t +1 = b) is that state at time t (s t ) is state a, and It means the probability that the state s t +1 at t + 1 is the state b. At this time, state b is a state value transitioned at time t + 1 when the state at time t is state a and the transmission bit value at time t is d. s t has a value of any one of coding states given by the state number N S. In the present embodiment, S t has a value of any one of state 0, state 1, state 2, and state 3.

개시된 기술에서 제안하는 2차원 BCJR 복호 알고리즘에 따르면, 메인 가지에 서의 사후 천이 확률과 보조 가지에서의 사후 천이 확률은 서로 다른 값을 기초로 산출된다. 서의 사후 천이 확률과 보조 가지에서의 사후 천이 확률은 서로 다른 값을 기초로 산출된다.
According to the two-dimensional BCJR decoding algorithm proposed in the disclosed technique, the post-transition probability in the main branch and the post-transition probability in the auxiliary branch are calculated based on different values. The post-transition probability of the west and the post-transition probability of the secondary branches are calculated based on different values.

Figure 112012011359804-pat00014
Figure 112012011359804-pat00014

여기서, α(st)는 시간 t에서의 상태 st의 포워드 상태 메트릭, β(st +1)는 시간 t+1 에서의 상태 st +1의 백워드 상태 메트릭, γ(st, st +1)는 st와 st +1 사이를 연결하는 가지의 가지 메트릭이다. 포워드 상태 메트릭 및 백워드 상태 메트릭은 정보 비트들을 나타내는 가지, 즉 메인 가지와 연결된 상태에서만 정의된다. γ(st, st+1)는 시간 t에서의 가지 메트릭으로, 수학식 9에서는 시간 t에서의 가지 메트릭으로, 수학식 9에서는 메인 가지에서의 가지 메트릭만이 사용된다. 시간 t에서의 가지 메트릭의 값은 시간 t에 상응하는 제2 메시지의 값을 기초로 결정될 수 있다.
Here, α (s t) is the state at time t-forward state metric of s t, in the β (t +1 s) of time t + 1 is the backward state metric of the state s t at +1, γ (t s, s t +1 ) is the branch metric that links between s t and s t +1 . The forward state metric and the backward state metric are defined only in the branch representing the information bits, ie in the state associated with the main branch. γ (s t , s t + 1 ) is a branch metric at time t, a branch metric at time t in equation (9), and only a branch metric at main branch in equation (9). The value of the branch metric at time t may be determined based on the value of the second message corresponding to time t.

여기서, μ(st)와 λ(st +1)는 패리티 비트를 나타내는 가지와 연결된 상태에 관한 상태 메트릭으로 각각 시간 t에서의 아웃워드 상태 메트릭, 시간 t+1에서의 인워드 상태 메트릭이라 한다. 아웃워드 상태 메트릭과 인워드 상태 메트릭은 패리티 비트들을 나타내는 가지, 즉 보조 가지와 연결된 상태에서만 정의된다. γ(st,st +1)는 시간 t에서의 가지 메트릭으로, 수학식 10에서는 보조 가지에서의 가지 메트릭만이 사용된다. 또한, 시간 t에서의 가지 메트릭의 값은 시간 t에 상응하는 제2 메시지의 값을 기초로 결정될 수 있다. 아웃워드 상태 메트릭은 메인 가지에서 보조 가지가 분기하는 각 시점에서부터 이전 상태의 아웃워드 상태 메트릭을 기초로 순차적으로 산출된다. 분기 시점에서의 초기 아웃워드 상태 메트릭은 포워드, 백워드 상태 메트릭을 기초로 산출될 수 있다. 인워드 상태 메트릭은 각 보조 가지의 마지막 상태에서부터, 다음 상태의 인워드 상태 메트릭을 기초로 역순으로 산출된다.Here, μ (s t ) and λ (s t +1 ) are state metrics relating to a state associated with a branch representing a parity bit, and are an out state state metric at time t and an inward state metric at time t + 1, respectively. do. The forward state metric and the forward state metric are defined only in a branch representing parity bits, i. γ (s t , s t +1 ) is a branch metric at time t. In Equation 10, only the branch metric at the secondary branch is used. Further, the value of the branch metric at time t may be determined based on the value of the second message corresponding to time t. The outward state metric is calculated sequentially based on the outward state metric of the previous state from each time the secondary branch branches in the main branch. The initial outward state metric at the time of branching may be calculated based on the forward and backward state metrics. The forward status metric is calculated in reverse order based on the forward status metric of the next state, from the last state of each auxiliary branch.

수학식 9 및 수학식 10과 같이 트렐리스 상의 모든 가지에 대하여 사후 천이 확률을 구하면 시간 t에 상응하는 제1 메시지의 값은 수학식 9에 따라 산출되는 사후 확률에 따라 결정된다.When the post-transition probability is obtained for all the branches on the trellis as shown in Equations 9 and 10, the value of the first message corresponding to the time t is determined according to the post-probability calculated according to Equation 9.

도 6은 본 발명에 따른 불규칙 반복 다상 누산 코드 복호화 방법에서 제1 메시지 값을 갱신하기 위한 2차원 BCJR 알고리즘을 설명하기 위한 개념도이다.FIG. 6 is a conceptual diagram illustrating a two-dimensional BCJR algorithm for updating a first message value in an irregular iterative multiphase accumulated code decoding method according to the present invention.

도 6은 도 2의 트렐리스를 단순화하여 표현한 도면으로서, 도 2의 다이어그램은 각 시간 t까지 입력될 수 있는 비트들의 모든 경우와, 시간 t까지 입력된 비트들에 따라 시간 t에서 부호화 상태가 가질 수 있는 모든 상태를 표시하였다.FIG. 6 is a simplified representation of the trellis of FIG. 2, and the diagram of FIG. 2 illustrates an encoding state at time t according to all cases of bits that may be input until each time t and bits input until time t. All the states you can have are shown.

도 6의 다이어그램에서, 각 시간 t까지 입력되는 비트와 시간 t에서의 부호화 상태는 각각 하나의 화살표와 하나의 원으로 간단히 표시된다. 도 6의 화살표는 0 또는 1의 값을 가지며, 각각의 원은 상태 0에서 상태 3까지의 값을 가질 수 있다. 도 6에 표시된 바와 같이, 개시된 기술에 따른 2차원 BCJR 알고리즘에서는 인워드 반복 연산(inward recursion), 포워드 반복연산(forward recursion), 백워드 반복연산(backward recursion), 아웃워드 반복연산(outward recursion) 순으로 복호화를 진행한다. 이때, 실시예에 따라, 포워드 반복연산과 백워드 반복연산의 순서는 바뀔 수 있다. 인워드 반복연산은 각 보조 가지의 최종 상태에서부터 인워드 상태 메트릭 값을 역순으로 산출하는 과정이다. 포워드 반복연산은 메인 가지의 첫 번째 상태에서부터 포워드 상태 메트릭 값을 순차적으로 산출하되, 분기 상태에서는 인워드 상태 메트릭의 값을 반영하여 포워드 상태 메트릭을 산출하는 과정이다. 백워드 반복연산은 포워드 반복연산과 반대의 순서로 백워드 상태 메트릭 값을 산출하되, 포워드 반복연산과 마찬가지로, 분기 상태에서는 인워드 상태 메트릭의 값을 반영하여 백워드 상태 메트릭을 산출하는 과정이다. 아웃워드 반복연산은 메인 가지와 보조 가지가 분기되는 시점의 분기 상태에서부터 인워드 반복 연산과 반대의 순서로 아웃워드 상태 메트릭 값을 순차적으로 산출하는 과정이다. 이와 같은 순서에 따라 각 상태 메트릭을 산출하는 방법을 구체적으로 설명한다.In the diagram of FIG. 6, the bits input up to each time t and the coding state at time t are simply represented by one arrow and one circle, respectively. The arrows in FIG. 6 may have a value of 0 or 1, and each circle may have a value from state 0 to state 3. As shown in FIG. 6, in the two-dimensional BCJR algorithm according to the disclosed technique, inward recursion, forward recursion, backward recursion, and outward recursion are performed. Decoding proceeds in order. In this case, according to an embodiment, the order of the forward iteration and the backward iteration may be changed. Inward iteration is a process of calculating the inward state metric value in the reverse order from the final state of each auxiliary branch. In the forward iteration operation, the forward state metric is sequentially calculated from the first state of the main branch, but in the branch state, the forward state metric is calculated by reflecting the forward state metric. In the backward iteration operation, the backward state metric value is calculated in the reverse order of the forward iteration operation. Similar to the forward iteration operation, in the branched state, the backward state metric is calculated by reflecting the value of the inward state metric. The outward iteration operation is a process of sequentially calculating the outward state metric values in the reverse order of the inward iteration operation from the branch state at the time when the main branch and the auxiliary branch are branched. A method of calculating each state metric in this order will be described in detail.

각 상태 메트릭을 산출하기에 앞서, 복호화기는 도 2 또는 도 6의 트렐리스 다이어그램에 기반하여, 제2 메시지로부터 각 가지들에 상응하는 가지 메트릭들을 산출한다. 가지 메트릭이 산출되면, 복호화기는 전술한 바와 같은 순서로 각 상태 메트릭을 산출한다. 각 상태 메트릭 값들이 산출되면, 이를 기초로 복호화기는 제1 메시지를 갱신할 수 있다. 다만, 본 실시예에서는 상술한 2차원 BCJR을 적용하되, 자신의 LLR 값을 추정하는 과정에서 자기 이외의 비트들의 LLR 값(extrinsic information)만을 반영하기 때문에, 사후 천이 확률을 산출함에 있어, 수학식 10, 11과 달리 가지 메트릭의 값을 곱하지 않는다.Prior to calculating each state metric, the decoder calculates branch metrics corresponding to each branch from the second message, based on the trellis diagram of FIG. 2 or 6. Once the branch metrics are calculated, the decoder calculates each state metric in the order as described above. When each state metric value is calculated, the decoder may update the first message based on the state metric values. However, in the present embodiment, the above-described two-dimensional BCJR is applied, and since only the LLR values (extrinsic information) of bits other than the self are reflected in the process of estimating the LLR value thereof, in calculating the post-transition probability, the equation Unlike 10 and 11, do not multiply the values of the branches metric.

일 실시예에 따라, 복호화기는 제2 메시지 Vπ(l),i값을 기초로 t=(i,l)에서의 가지 메트릭의 값을 결정한다. 제2 메시지 Vπ(l),i는 i번째 그룹 노드가 i번째 그룹 노드와 연결된 m(i)개 변수 노드들 중 l번째 변수 노드로부터 제공받은 메시지 값이다. 이때, 제2 메시지의 값들은 2차원 BCJR 알고리즘의 입력 값으로, BCJR 알고리즘에서 각 전송 비트들의 사전 LLR 값에 상응한다. 예컨대, 시간 t=(i,l)에서의 가지 메트릭들 중 bit 0에 상응하는 가지의 메트릭은 Vπ(l),i값으로부터 시간 t=(i,l)에서의 비트 값이 0일 확률로 결정되며, bit 1에 상응하는 가지의 메트릭 또한, Vπ(l),i값으로부터 시간 t=(i,l)에서의 비트 값이 1일 확률로 결정된다.According to one embodiment, the decoder determines the value of the branch metric at t = (i, l) based on the second message V pi (l), i value. The second message V π (l), i is a message value provided from the l th variable node among m (i) variable nodes connected to the i th group node by the i th group node. At this time, the values of the second message are input values of the two-dimensional BCJR algorithm, and correspond to the prior LLR values of the respective transmission bits in the BCJR algorithm. For example, the branch metric corresponding to bit 0 of the branch metrics at time t = (i, l) is the probability that the bit value at time t = (i, l) is 0 from the value of V π (l), i. The metric of the branch corresponding to bit 1 is also determined by the probability that the bit value at time t = (i, l) is 1 from the value of V pi (l), i .

이를 수식으로 표현하면 수학식 11과 같다.
If this is expressed as an equation, Equation 11 is obtained.

Figure 112012011359804-pat00016
Figure 112012011359804-pat00016

가지 메트릭이 산출되면, 복호화기는 다음과 같이 각 상태 메트릭을 순차적으로 산출한다.When the branch metric is calculated, the decoder sequentially calculates each state metric as follows.

S510 단계에서, 복호화기는 G개의 그룹들이 포함하는 전체 부호화 비트들 중 패리티 비트들에 상응하는 가지 메트릭의 값들을 기초로 인워드 상태 메트릭들을 산출한다. 인워드 상태 메트릭은 보조 가지와 연결된 상태에 대한 상태 메트릭으로, 다음 상태의 인워드 상태 메트릭을 기초로 역순으로 산출된다. 인워드 상태 메트릭은 패리티 비트들을 나타내는 각 보조 가지 별로 산출된다. 인워드 상태 메트릭은 각 보조 가지의 최종 수렴 상태 바로 이전의 상태 s(i.l)(이때, l=m(i))에서부터 메인 가지와 보조 가지가 분기되는 시점에서의 분기 상태 s(i,l)(이때, l=Ki+1 또는 l=m(i)-NP+1)까지 수학식 12와 같이 역순으로 산출된다.
In operation S510, the decoder calculates inward state metrics based on values of a branch metric corresponding to parity bits among all encoded bits included in the G groups. The forward status metric is a status metric for the state associated with the auxiliary branch, which is calculated in the reverse order based on the forward status metric of the next state. The inward status metric is calculated for each secondary branch representing parity bits. The inward status metric is the branch state s (i, l) at the point where the main branch and the secondary branch branch from the state s (il) (where l = m (i)) just before the final convergence state of each secondary branch. In this case, l = K i +1 or l = m (i) -N P +1 is calculated in the reverse order as in Equation 12.

Figure 112012011359804-pat00017
Figure 112012011359804-pat00017

각 보조 가지는 특정 상태, 예를 들어 상태 0으로 수렴한다고 가정하면, s(i,m(i)+1)는 상태 0 값을 가진다. 따라서, λ(s(i,m(i)+1))는 s(i,m(i)+1)가 상태 0일 때, 1값을, s(i,m(i)+1)가 나머지 상태에서는 0값을 가진다.Assuming that each auxiliary branch converges to a specific state, for example state 0, s (i, m (i) +1) has a state 0 value. Thus, λ (s (i, m (i) +1) ) is a value of 1 when s (i, m (i) +1) is state 0, and s (i, m (i) +1) is In the other state, it has a value of zero.

모든 보조 가지들에 대하여 인워드 상태 메트릭을 산출한 뒤, S520 단계에서, 복호화기는 G개의 그룹들이 포함하는 부호화 비트들 중 정보 비트들에 상응하는 가지 메트릭의 값들 및 인워드 상태 메트릭들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출한다. 포워드 상태 메트릭은 메인 가지(210)와 연결된 상태에 대한 상태 메트릭으로, 이전 상태의 포워드 상태 메트릭을 기초로 순차적으로 산출된다. 백워드 상태 메트릭은 메인 가지(210)와 연결된 상태에 대한 상태 메트릭으로, 다음 상태의 백워드 상태 메트릭을 기초로 역순으로 산출된다. 포워드 상태 메트릭은 포워드 반복 연산에 의하여 t=(i,1)에서부터 t=(i,Ki+1)까지 각 상태에 대하여 순차적으로 계산된다. 또한, i값이 1인 때부터 i값이 G일 때까지 i가 하나씩 증가하며 계산이 반복된다. 각 정보 비트 그룹의 첫 번째 비트에 상응하는 상태인 s(i,1)의 포워드 상태 메트릭은 수학식 13과 같은 조건을 이용하여 산출할 수 있다.
After calculating the forward state metric for all the auxiliary branches, in step S520, the decoder forwards the values based on the branch metric values and the forward state metrics corresponding to the information bits among the coded bits included in the G groups. Calculate state metrics and backward state metrics. The forward state metric is a state metric for the state connected to the main branch 210 and is sequentially calculated based on the forward state metric of the previous state. The backward state metric is a state metric for the state connected to the main branch 210 and is calculated in the reverse order based on the backward state metric of the next state. The forward state metric is computed sequentially for each state from t = (i, 1) to t = (i, K i +1) by a forward iteration operation. Further, i is incremented one by one until the i value is 1 and the i value is G, and the calculation is repeated. The forward state metric of s (i, 1), which is a state corresponding to the first bit of each information bit group , may be calculated using a condition as shown in Equation 13.

Figure 112012011359804-pat00018
Figure 112012011359804-pat00018

이때, Sinit은 부호화 상태의 초기 값이다. Sinit이 상태 0이라 가정하면, α(s(1,1))는 s(1,1)가 상태 0일 때 1값을, s(1,1)가 나머지 상태일 때에는 0값을 가진다. 또한, t=(i,1)에서의 상태는 t=(i-1,Ki -1+1)에서의 상태와 동일하므로,

Figure 112012011359804-pat00019
이다.In this case, S init is an initial value of the encoding state. Assuming that S init is state 0, α (s (1,1) ) has a value of 1 when s (1,1) is state 0 and a value of 0 when s (1,1) is the other state. Also, since the state at t = (i, 1) is the same as the state at t = (i-1, K i -1 +1),
Figure 112012011359804-pat00019
to be.

각 정보 비트 그룹에서 분기 상태를 제외한, 이후의 포워드 상태 메트릭은 수학식 14와 같이 산출된다. 즉, α(st=a)는 임의의 상태 값을 가지는 st -1로부터 상태 값이 a인 st로 향하는 모든 가지에 대하여, 각 가지에 해당하는 가지 메트릭과 해당하는 st -1의 포워드 상태 메트릭의 곱들의 합으로 산출된다. 이때, t는 매 i에 대하여 (i,2),...,(i,Ki) 값을 가질 수 있다.
Subsequent to the branch state in each group of information bits, the forward state metric is calculated as shown in Equation 14. That is, α (s t = a) is a s t -1, which for all the branches leading to the state s t s t -1 a from the value of having a random state value, and the branch metric for each of It is calculated as the sum of the products of the forward state metric. In this case, t may have a value of (i, 2), ..., (i, K i ) for every i.

Figure 112012011359804-pat00020
Figure 112012011359804-pat00020

마지막으로, 각 정보 비트 그룹에서 분기 상태의 포워드 상태 메트릭은 수학식 15와 같이 인워드 상태 메트릭의 값이 반영되어 산출된다. 즉, 분기 상태는 보조 가지와 메인 가지가 교차하는 지점이므로, 분기 상태에서 포워드 상태 메트릭은 보조 가지로부터 산출되어온 인워드 상태 메트릭 값과 메인 가지로부터 산출되어온 포워드 상태 메트릭 값을 곱한 값으로 산출된다.
Finally, the forward state metric of the branch state in each information bit group is calculated by reflecting the value of the forward state metric as shown in Equation 15. That is, since the branch state is a point where the auxiliary branch and the main branch cross each other, the forward state metric is calculated by multiplying the forward state metric value calculated from the auxiliary branch and the forward state metric value calculated from the main branch.

Figure 112012011359804-pat00021
Figure 112012011359804-pat00021

이때, 분기 시점인 t는 t=(i,Ki+1), 또는, Ki=m(i)-NP 이므로 t=(i,m(i)-NP+1) 이다. 마찬가지로, t-1=(i,Ki) 또는 (i,m(i)-NP)이다. At this time, t, which is the branching time point, is t = (i, K i +1) or, since K i = m (i) -N P , t = (i, m (i) -N P +1). Similarly, t-1 = (i, K i ) or (i, m (i) -N P ).

백워드 상태 메트릭은 백워드 반복 연산에 의하여 t=(i,Ki+1)에서부터 t=(i,1) 까지 각 상태에 대하여 역순으로 계산된다. 또한, i값이 G인 때부터 i값이 1일때까지 i가 하나씩 감소하며 상기 계산이 반복된다. 각 정보 비트 그룹의 마지막 비트에 따라 변경된 상태인 t=(i,Ki+1)에서의 상태에 대한 백워드 상태 메트릭은 수학식 16과 같은 조건을 이용하여 산출할 수 있다.
The backward state metric is calculated in reverse order for each state from t = (i, K i +1) to t = (i, 1) by a backward iteration operation. Further, i decreases one by one from the value of i to G until the value of i is 1 and the calculation is repeated. The backward state metric for the state at t = (i, K i +1), which is changed according to the last bit of each information bit group, may be calculated using a condition as in Equation 16 below.

Figure 112012011359804-pat00022
Figure 112012011359804-pat00022

따라서, t=(i,Ki+1)에서의 상태는 t=(i+1,1)에서의 상태와 동일하므로,

Figure 112012011359804-pat00023
이다. 각 정보 비트 그룹에서 분기 상태를 제외한, 나머지 백워드 상태 메트릭은 수학식 17과 같이 산출된다. 즉, β(st=a)는 임의의 상태 값을 가지는 st +1로부터 상태 값이 a인 st로 향하는 모든 역방향 가지에 대하여, 각 가지에 해당하는 가지 메트릭과 해당하는 st +1의 백워드 상태 메트릭의 곱들의 합으로 산출된다. 이때, t는 매 i에 대하여 (i,Ki),...,(i,2) 값을 가질 수 있다.
Therefore, the state at t = (i, Ki + 1) is the same as the state at t = (i + 1,1),
Figure 112012011359804-pat00023
to be. Except for the branch state in each group of information bits, the remaining backward state metrics are calculated as shown in Equation 17. That is, β (s t = a) is s t +1 that for all of the reverse leading to the state s t a value of from s t +1 having an arbitrary state value, and the branch metric for each of Is computed as the sum of the products of the backward state metric. In this case, t may have a value of (i, K i ), ..., (i, 2) for every i.

Figure 112012011359804-pat00024
Figure 112012011359804-pat00024

마지막으로, 각 정보 비트 그룹에서 분기 상태의 포워드 상태 메트릭은 수학식 18과 같이 인워드 상태 메트릭의 값이 반영되어 산출된다. 즉, 분기 상태는 보조 가지와 메인 가지가 교차하는 지점이므로, 분기 상태에서 백워드 상태 메트릭은 보조 가지로부터 산출되어온 인워드 상태 메트릭 값과 메인 가지로부터 산출되어온 백워드 상태 메트릭 값을 곱한 값으로 산출된다.
Finally, the forward state metric of the branch state in each group of information bits is calculated by reflecting the value of the forward state metric as shown in Equation 18. That is, since the branch state is the point where the secondary branch and the main branch cross each other, the backward state metric in the branch state is calculated by multiplying the inward state metric value calculated from the secondary branch and the backward state metric value calculated from the main branch. do.

Figure 112012011359804-pat00025
Figure 112012011359804-pat00025

S530 단계에서, 복호화기는 G개의 그룹들이 포함하는 부호화 비트들 중 상기 패리티 비트들에 상응하는 가지 메트릭의 값들을 기초로 아웃워드 상태 메트릭들을 산출한다. 아웃워드 상태 메트릭은 보조 가지(220)와 연결된 상태에 대한 상태 메트릭으로, 이전 상태의 아웃워드 상태 메트릭 및 패리티 비트들에 상응하는 가지 메트릭들을 기초로 순차적으로 산출된다.In operation S530, the decoder calculates outward state metrics based on values of branch metrics corresponding to the parity bits among encoding bits included in the G groups. The outward state metric is a state metric for a state connected with the auxiliary branch 220 and is sequentially calculated based on the branch state corresponding to the outward state metric and parity bits of the previous state.

아웃워드 상태 메트릭은 인워드 상태 메트릭과 마찬가지로 패리티 비트들을 나타내는 각 보조 가지 별로 산출하되, 인워드 상태 메트릭과 반대 방향으로 수행된다. 아웃워드 상태 메트릭은 메인 가지와 보조 가지가 분기되는 각각의 시점에서의 분기 상태 s(i,l)(이때, l=Ki+1 또는 l=m(i)-NP+1)에서부터 각 보조 가지의 최종 상태 바로 이전의 상태 s(i.l)(이때, l=m(i))까지 순차적으로 산출된다.Like the inward status metric, the outward status metric is calculated for each auxiliary branch representing parity bits, but is performed in the opposite direction to the inward status metric. The outward status metric is calculated from the branch status s (i, l) at each time the main and secondary branches branch, where l = K i +1 or l = m (i) -N P +1. It is calculated sequentially up to the state s (il) , where l = m (i), just before the final state of the auxiliary branch.

각 분기 상태에서의 아웃워드 상태 메트릭은 각 분기 상태에서의 포워드 상태 메트릭과 백워드 상태 메트릭의 곱과 같다. 이를 수식으로 표현하면 수학식 19와 같다.
The forward state metric in each branch state is equal to the product of the forward state metric and the backward state metric in each branch state. This may be expressed as an equation (19).

Figure 112012011359804-pat00026
Figure 112012011359804-pat00026

분기 상태 다음 상태부터의 아웃워드 상태 메트릭은 수학식 20과 같이 순차적으로 산출된다.
The outward state metrics from the state following the branch state are sequentially calculated as shown in Equation 20.

Figure 112012011359804-pat00027
Figure 112012011359804-pat00027

상태 메트릭들이 산출되면, 복호화기는 정보 비트들 또는 패리티 비트들에 상응하는 변수 노드로 향하는 제1 메시지의 값들을 갱신할 수 있다(S540). 복호화기는 포워드 상태 메트릭들 및 백워드 상태 메트릭들의 값을 기초로 정보 비트들에 상응하는 변수 노드로 향하는 제1 메시지의 값들을 갱신하고, 인워드 상태 메트릭들 및 아웃워드 상태 메트릭들의 값을 기초로 패리티 비트들에 상응하는 변수 노드로 향하는 제1 메시지의 값들을 갱신한다.Once the state metrics are calculated, the decoder can update the values of the first message directed to the variable node corresponding to the information bits or parity bits (S540). The decoder updates the values of the first message directed to the variable node corresponding to the information bits based on the values of the forward state metrics and the backward state metrics, and based on the values of the forward state metrics and outward state metrics. Update the values of the first message directed to the variable node corresponding to the parity bits.

다만, 위에서 언급한 바와 같이, 각 비트들에 대한 제1 메시지의 값들은 자신 이외의 비트들의 LLR 값(extrinsic information)만을 반영하여 갱신되기 때문에, 사후 천이 확률을 산출함에 있어, 수학식 9, 10과 달리 가지 메트릭의 값을 곱하지 않는다. 즉, 제1 메시지 값들을 갱신하는데 사용되는 사후 천이 확률은 수학식 21 및 수학식 22와 같이 산출된다. 일 실시예에 따라, i번째 그룹 노드가 j=π(n)번째 변수 노드(이때, n은 1≤n≤m(i) 인 정수)에 제공하는 제1 메시지 Ui ,π(n) 의 값은 j=π(n)번째 변수 노드가 정보 비트에 대응되는 경우, 수학식 21와 같이, j=π(n)번째 변수 노드가 패리티 비트에 대응되는 경우, 수학식 22와 같이 산출되는 사후 천이 확률들의 합으로 산출될 수 있다. 제1 메시지 Ui ,π(n)의 값은, 2차원 BCJR 알고리즘에서 수학식 11 및 수학식 7에 따라 산출되는 t=(i,n)에 상응하는 비트의 사후 확률 P(dt)을 LLR로 변환한 값으로 결정될 수 있다.
However, as mentioned above, since values of the first message for each bit are updated to reflect only LLR values (extrinsic information) of bits other than itself, in calculating a post-transition probability, Equations 9 and 10 Unlike multiply the values of the branches metric. That is, the post-transition probability used to update the first message values is calculated as in Equations 21 and 22. According to an embodiment, the first message U i , π (n) of the i-th group node provides to the j = π (n) -th variable node, where n is an integer of 1 ≦ n ≦ m (i ) . The value is calculated as shown in Equation 21 when the j = π (n) th variable node corresponds to the information bit, and is calculated as shown in Equation 22 when the j = π (n) th variable node corresponds to the parity bit. It can be calculated as the sum of the transition probabilities. The value of the first message U i , π (n ) is LLR after the posterior probability P (dt) of the bit corresponding to t = (i, n) calculated according to Equations 11 and 7 in the two-dimensional BCJR algorithm. It can be determined by the value converted into.

Figure 112012011359804-pat00028
Figure 112012011359804-pat00028

Figure 112012011359804-pat00029
Figure 112012011359804-pat00029

이와 같이, 제1 메시지의 값들은 2차원 BCJR 알고리즘의 출력 값으로, 수학식 21 및 22와 같이 산출되는 사후 천이 확률들을 기반으로 결정되므로, 본 실시예에서 사후 천이 확률의 의미를 수식으로 표현하면 수학식 23과 같다.
As such, the values of the first message are output values of the two-dimensional BCJR algorithm, and are determined based on post-transition probabilities calculated as Equations 21 and 22. Equation 23 is shown.

Figure 112012011359804-pat00030
Figure 112012011359804-pat00030

본 발명에 따른 가변 Variable according to the invention 부호어Codeword 길이를 지원하는  Supporting length IRmAIRmA 코드 부호화 방법 Code coding method

도 7은 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 부호화 방법을 설명하기 위한 순서도이다.7 is a flowchart illustrating a method for encoding an irregular repetitive polyphase accumulating code supporting a variable codeword length according to the present invention.

도 7을 참조하면, 본 발명에 따른 부호화 방법은, 가변 길이를 가지는 부호어를 생성하는 불규칙 반복 다상 누산 코드 부호화 방법으로서, 기본 부호어 길이에 대응되고, 상기 부호화 방법을 실현하기 위한 기본 패턴 부호화 행렬을 구비하는 단계(S710), 상기 기본 부호어의 길이와 요구되는 부호어의 길이의 비율에 따라 상기 기본 패턴 부호화 행렬을 확장한 확장 부호화 행렬을 생성하는 단계(S720) 및 생성된 확장 부호화 행렬을 이용하여 불규칙 반복 다상 누산 코드 부호화를 수행하는 단계(S730)를 포함하여 구성될 수 있다.Referring to FIG. 7, the encoding method according to the present invention is an irregular repetitive polyphase accumulating code encoding method for generating a codeword having a variable length, which corresponds to a basic codeword length, and performs basic pattern encoding for realizing the encoding method. Comprising: a matrix (S710), generating an extended coding matrix extending the basic pattern coding matrix according to the ratio of the length of the basic codeword and the length of the required codeword (S720) and the generated extended coding matrix It may be configured to include a step (S730) to perform irregular iterative multi-phase accumulated code encoding using.

먼저, 단계(S710)에서 기본 패턴 부호화 행렬은 도 3을 통해 앞서 설명된 부호화 행렬로서 기본 부호어 길이를 지원하는 부호화 행렬을 의미하는 것으로, LDPC 부호화에서의 생성 매트릭스와 같은 역할을 수행한다. 이때, 기본 부호어 길이는 통상적으로 본 발명에 따른 부호화 방법에서 선택할 수 있는 가장 짧은 부호어 길이에 해당될 수 있다.First, in step S710, the basic pattern coding matrix refers to a coding matrix supporting the length of a basic codeword as the coding matrix described above with reference to FIG. 3, and serves as a generation matrix in LDPC coding. In this case, the basic codeword length may generally correspond to the shortest codeword length selectable in the encoding method according to the present invention.

여기에서, '기본 패턴 부호화 행렬'이라는 용어가 사용되는 이유는 부호화하여 출력하고자 하는 부호어의 길이가 기본 부호어의 길이인 경우는, 상기 기본 패턴 부호화 행렬 자체가 부호화 행렬로서 이용되지만, 부호화하여 출력하고자 하는 부호어의 길이가 기본 부호어의 길이보다 큰 경우에는 기본 패턴 부호화 행렬이 확장 부호화 행렬을 생성하기 위한 기본 패턴(pattern)의 역할만을 수행하기 때문이다.The term 'basic pattern coding matrix' is used here because, when the length of a codeword to be coded and output is the length of the basic codeword, the basic pattern coding matrix itself is used as a coding matrix. If the length of the codeword to be output is larger than the length of the basic codeword, the basic pattern coding matrix plays a role of only a basic pattern for generating the extended coding matrix.

다만, 이하에서 설명되는 부호화 행렬 및 복호화 행렬은 도 3에서 설명된 부호화 행렬에서 패리티 비트 부분(도 3의 N-K 부분)을 제거한 행렬을 의미한다. 불규칙 반복 다상 누산 코드 부호화 방법에서 부호화 행렬의 패리티 비트 부분은 일정한 규칙성을 가지고 배열되므로(도 3을 참조), 확장 부호화 행렬을 생성하는 과정에서는 생략될 수 있다. 또한, 불규칙 반복 다상 누산 코드 부호화 방법의 복호화 과정에서도 복호화 행렬의 패리티 비트 부분은 일정한 규칙성을 가지고 배열되므로 확장 부호화 행렬을 생성하는 과정에서는 생략된 채 설명될 수 있다. 즉, 이하에서 설명되는 기본 패턴 부호화 행렬 및 복호화 행렬은 도 3에서 설명된 부호화 및 복호화 행렬의 패리티 비트 부분을 제거한 것으로, 이를 통해 확장 부호화 행렬 및 복호화 행렬을 생성함을 의미한다. 그러나, 실제 복호화 과정에서는 생성된 확장 복호화 행렬에 일정한 규칙성을 가지고 배열되는 패리티 비트 부분을 추가하여 실제 복호화 과정을 수행하도록 구성될 수 있다.However, the encoding matrix and the decoding matrix described below refer to a matrix from which a parity bit portion (N-K portion of FIG. 3) is removed from the encoding matrix described in FIG. 3. Since the parity bit portions of the coding matrix are arranged with a certain regularity (see FIG. 3) in the randomly iterative multiphase accumulation code encoding method, the process of generating the extended coding matrix may be omitted. Also, since the parity bit portions of the decoding matrix are arranged with a regularity even in the decoding process of the irregular repetitive polyphase accumulation code encoding method, the parity bit portions of the decoding matrix may be omitted while generating the extended coding matrix. That is, the basic pattern coding matrix and the decoding matrix described below remove the parity bit portions of the coding and decoding matrix described in FIG. 3, thereby generating an extended coding matrix and a decoding matrix. However, the actual decoding process may be configured to add a parity bit portion arranged with a certain regularity to the generated extended decoding matrix to perform the actual decoding process.

다음으로, 단계(S720)는 상기 기본 부호어의 길이와 요구되는 부호어의 길이의 비율에 따라 상기 기본 패턴 부호화 행렬을 확장한 확장 부호화 행렬을 생성하는 단계이다.Next, step S720 is a step of generating an extended coding matrix extending the basic pattern coding matrix according to a ratio of the length of the basic codeword and the length of the required codeword.

도 8은 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 부호화 방법에서 확장 부호화 행렬을 생성하는 방법의 일 실시예를 설명하기 위한 순서도이다. 8 is a flowchart illustrating an embodiment of a method of generating an extended coding matrix in an irregular repetitive polyphase accumulating code encoding method supporting variable codeword lengths according to the present invention.

도 8을 참조하면, 단계(S720)의 일 예는 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성하는 단계(S721)와 상기 기본 패턴 부호화 행렬의 '1' 값을 가진 원소의 위치에 상기 부분 행렬을 할당하고, 상기 기본 패턴 부호화 행렬의 '0' 값을 가진 원소의 위치에 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 영 행렬을 할당하여, 상기 기본 패턴 부호화 행렬이 확장된 확장 부호화 행렬을 생성하는 단계(S722)를 포함하여 구성될 수 있다. 여기에서, '1'과 '0'은 행렬 원소의 값을 구분하기 이진값(binary)의 의미일뿐 부분 행렬과 영 행렬이 할당되는 위치를 구분하기 위해서 이용될 수 있는 미리 약속된 값이 이용될 수도 있다. 예를 들면, '0'의 값을 가진 원소의 위치에 부분 행렬을 할당하고, '1'의 값을 가진 원소의 위치에 영 행렬을 할당하는 것도 가능하다. Referring to FIG. 8, an example of operation S720 may include generating a partial matrix having a row and a column corresponding to a ratio of the basic codeword length and the required codeword length (S721) and the basic pattern coding matrix. Assigning the partial matrix to a position of an element having a value of '1', and adding a row equal to the ratio of the basic codeword length to a required codeword length at a position of an element having a value of '0' of the basic pattern coding matrix; A step S722 may be generated by assigning a zero matrix having columns to generate an extended coding matrix from which the basic pattern coding matrix is extended. Here, '1' and '0' are only binary meanings for distinguishing the values of the matrix elements, and pre-defined values that can be used to distinguish the positions where the partial and zero matrices are assigned are used. It may be. For example, it is also possible to assign a partial matrix to the position of an element with a value of '0' and to assign a zero matrix to the position of an element with a value of '1'.

단계(S721)에서 부분 행렬은 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가지도록 생성될 수 있다. 예컨대, 기본 부호어의 길이가 20이며, 요구되는 부호어의 길이가 100이라면, 부분 행렬은 100/20=5의 행과 열을 가진 5×5 행렬이 된다. 따라서, 단계(S722)는 기본 패턴 부호화 행렬의 각 원소(element) 위치에 5×5의 크기를 가진 부분 행렬 또는 영 행렬로 할당하는 것에 의해서 원하는 크기만큼 기본 패턴 부호화 행렬을 확장하는 과정으로 설명될 수 있다.In step S721, the partial matrix may be generated to have as many rows and columns as the ratio of the basic codeword length to the required codeword length. For example, if the length of the basic codeword is 20 and the length of the required codeword is 100, the partial matrix is a 5x5 matrix with rows and columns of 100/20 = 5. Therefore, step S722 may be described as a process of extending the basic pattern coding matrix by a desired size by assigning each element position of the basic pattern coding matrix to a partial matrix or a zero matrix having a size of 5 × 5. Can be.

이때, 상기 부분 행렬의 예로는 적어도 하나의 단위 행렬(identity matrix) 및/또는 적어도 하나의 회전 단위 행렬(rotated identity matrix)이 결합된 결합 행렬이 이용될 수 있다. 한편, 영 행렬은 모든 행렬 원소의 값이 0인 행렬을 의미한다. 이하에서는 부분 행렬로 이용될 수 있는 결합 행렬의 일 예를 설명한다.In this case, as an example of the partial matrix, a combining matrix in which at least one identity matrix and / or at least one rotated identity matrix are combined may be used. On the other hand, a zero matrix refers to a matrix of which the values of all matrix elements are zero. Hereinafter, an example of a coupling matrix that can be used as a partial matrix will be described.

도 9는 단위 행렬 I0과 1-우회전된 단위 행렬 I1과 1-좌회전된 단위 행렬 I1을 예시한 개념도이다.FIG. 9 is a conceptual diagram illustrating a unit matrix I 0 and a 1-right rotated unit matrix I 1 and a 1-left rotated unit matrix I 1 .

즉, 회전 단위 행렬은 주어진 k (0=k=n-1) 에 대해 n×n 단위 행렬 I0 의 j 번째 열을 Ik 의 mod(j+k, n)(mod(j-k, n)) 번째 열에 위치시키는 것이다. 여기서 mod(a,b) 는 a를 b로 나눈 나머지를 의미한다.That is, the rotation unit matrix replaces the j th column of the n × n unit matrix I 0 for a given k (0 = k = n-1) with mod (j + k, n) (mod (jk, n)) of I k . In the first column. Where mod (a, b) is the remainder of a divided by b.

도 10은 단위 행렬과 회전 단위 행렬이 결합된 결합 행렬을 예시한 개념도이다.10 is a conceptual diagram illustrating a coupling matrix in which a unit matrix and a rotation unit matrix are combined.

결합 행렬 Vijkl은 네 개의 단위 행렬 및 회전 단위 행렬(Ii, Ij, Ik, Il)을 순서대로 결합한 2n×2n 행렬을 의미한다.The coupling matrix V ijkl means a 2n × 2n matrix in which four unit matrices and rotation unit matrices I i , I j , I k , and I l are combined in order.

결합 행렬의 예시로서, 도 10에서는 단위 행렬과 회전 단위 행렬이 모두 포함된 결합 행렬을 예시하고 있으나, 단위 행렬로만 결합 행렬을 구성할 수도 있으며, 회전 단위 행렬들만으로 결합 행렬을 구성할 수 있을 것이다.
As an example of the coupling matrix, FIG. 10 illustrates a coupling matrix including both the unit matrix and the rotation unit matrix, but the coupling matrix may be configured only with the unit matrix, and the coupling matrix may be configured only with the rotation unit matrices.

도 11은 기본 패턴 부호화 행렬을 이용하여 확장 부호화 행렬을 생성하는 개념을 설명하기 위한 개념도이다.FIG. 11 is a conceptual diagram illustrating a concept of generating an extended coding matrix using a basic pattern coding matrix.

도 11을 참조하면, 기본 패턴 부호화 행렬(1100)의 '1' 값을 가진 원소들의 위치에 상기 생성된 부분 행렬(예컨대, 단위 행렬과 회전 단위 행렬이 원하는 크기만큼 결합된 결합 행렬)을 할당하고, 상기 기본 패턴 부호화 행렬의 '0' 값을 가진 원소들의 위치에는 영 행렬을 할당하여, 상기 기본 패턴 부호화 행렬이 확장된 확장 부호화 행렬(1110)을 생성하는 과정이 설명된다.Referring to FIG. 11, the generated partial matrix (eg, a coupling matrix in which a unit matrix and a rotation unit matrix are combined by a desired size) is allocated to positions of elements having a value of '1' of the basic pattern coding matrix 1100. The process of generating an extended coding matrix 1110 in which the basic pattern coding matrix is extended by assigning a zero matrix to positions of elements having a value of '0' of the basic pattern coding matrix is described.

즉, 본 발명에 따른 확장 부호화 행렬의 확장 방법은, 기본 패턴 부호화 행렬의 원소들의 위치마다 원하는 크기의 부분 행렬 또는 영 행렬을 원소들의 값에 따라 할당함으로써 기본 패턴 부호화 행렬의 불규칙성을 유지하면서 원하는 부호어 길이에 대응된 확장 부호화 행렬을 생성할 수 있다.That is, according to the method of extending the extended coding matrix, a desired code is maintained while maintaining the irregularity of the basic pattern coding matrix by allocating a partial matrix or a zero matrix having a desired size for each position of the elements of the basic pattern coding matrix according to the values of the elements. An extended coding matrix corresponding to the length may be generated.

마지막으로, 단계(S730)에서는 상기 단계(S720)에서 생성된 확장 부호화 행렬을 이용하여 불규칙 반복 다상 누산 코드 부호화를 수행하게 된다.Finally, in step S730, irregular repeated polyphase accumulating code encoding is performed using the extension coding matrix generated in step S720.

단계(S730)에서의 불규칙 반복 다상 누산 코드 부호화는 도 1을 통하여 상술된 불규칙 반복 다상 누산 코드 부호화 방법이 이용될 수 있다. In the irregular repeated polyphase accumulating code encoding in operation S730, the irregular repeated polyphase accumulating code encoding method described above with reference to FIG. 1 may be used.

즉, 단계(S730)의 불규칙 반복 다상 누산 코드 부호화는, 부호화 대상이 되는 정보 비트열을 입력 받는 단계, 상기 확장 부호화 행렬의 i행(i는 행렬의 첫번째 행을 지시하는 값부터 시작)에 기초하여 상기 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 단계 및 상기 결정된 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 단계를 포함하고, 상기 i를 증가시켜 상기 확장 부호화 행렬의 마지막 행까지 상기 부호화 상태를 결정하는 단계와 패리티 비트들을 결정하는 단계를 반복한 다음, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하도록 구성될 수 있다.
That is, the irregular repetitive polyphase accumulation code encoding in step S730 is based on a step of receiving an information bit string to be encoded, and i rows (i starting from a value indicating a first row of the matrix) of the extension coding matrix. Selecting input bits among information bits constituting the information bit string, determining an encoding state according to the selected input bits, and determining parity bits of the i row based on the determined encoding state; And repeating the step of determining the encoding state and increasing the parity bits until the last row of the extended coding matrix by increasing i, and then combining the information bit stream and the generated parity bits to form a codeword. Can be configured to generate

본 발명에 따른 가변 Variable according to the invention 부호어Codeword 길이를 지원하는  Supporting length IRmAIRmA 코드 부호화 장치 Code encoding device

도 12는 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 부호화 장치의 구성을 설명하기 위한 블록도이다.12 is a block diagram illustrating a configuration of an irregular repetitive polyphase accumulating code encoding apparatus supporting a variable codeword length according to the present invention.

도 12를 참조하면, 본 발명에 따른 부호화 장치(1200)는 정보 비트열 입력부(1210), 패턴 행렬 저장부(1220), 부호화 행렬 결정부(1230) 및 부호화부(1240)를 포함하여 구성될 수 있다.Referring to FIG. 12, the encoding apparatus 1200 according to the present invention may include an information bit string input unit 1210, a pattern matrix storage unit 1220, an encoding matrix determiner 1230, and an encoder 1240. Can be.

먼저, 정보 비트열 입력부(1210)는 부호화 대상이 되는 정보 비트열(bk)을 입력 받도록 구성된다. 정보 비트열 입력부(1210)는 상위 계층으로부터 전송이 될 정보 비트열을 입력 받게 된다.First, the information bit string input unit 1210 is configured to receive an information bit string b k to be encoded. The information bit string input unit 1210 receives an information bit string to be transmitted from a higher layer.

다음으로, 패턴 행렬 저장부(1220)는 기본 부호어 길이에 대응되고 불규칙 반복 다상 누산 코드 부호화를 실현하기 위한 기본 패턴 부호화 행렬을 구비하여 저장하고 있는 구성요소이다. 이때, 기본 부호어 길이는 통상적으로 본 발명에 따른 부호화 방법에서 선택할 수 있는 가장 짧은 부호어 길이에 해당될 수 있다.Next, the pattern matrix storage unit 1220 is a component corresponding to a basic codeword length and having a basic pattern coding matrix for storing irregular repeated polyphase accumulated code coding. In this case, the basic codeword length may generally correspond to the shortest codeword length selectable in the encoding method according to the present invention.

앞서 언급된 바와 같이, 기본 패턴 부호화 행렬은 부호화 장치가 출력하고자 하는 출력하고자 하는 부호어의 길이가 기본 부호어의 길이인 경우는, 그 자체로서 부호화 행렬로서 이용되지만, 부호화하여 출력하고자 하는 부호어의 길이가 기본 부호어의 길이보다 큰 경우에는 기본 패턴 부호화 행렬은 확장 부호화 행렬을 생성하기 위한 기본 패턴(pattern)의 역할을 수행한다.As mentioned above, the basic pattern coding matrix is used as an encoding matrix itself when the length of the codeword to be output by the coding apparatus is the length of the basic codeword, but is a codeword to be encoded and output. If the length of P is greater than the length of the basic codeword, the basic pattern coding matrix serves as a basic pattern for generating the extended coding matrix.

다음으로, 부호화 행렬 결정부(1230)는 패턴 행렬 저장부(1220)에 저장된 기본 패턴 부호화 행렬을 요구되는 부호어 길이에 따라 확장하여 확장 부호화 행렬을 생성하는 구성요소이다. Next, the encoding matrix determiner 1230 is a component that extends the basic pattern encoding matrix stored in the pattern matrix storage unit 1220 according to a required codeword length to generate an extended encoding matrix.

부호화 행렬 결정부(1230)가 확장 부호화 행렬을 생성하는 방법은 앞서 도 8을 통하여 설명된 방법과 같다.The method of generating the extended coding matrix by the coding matrix determiner 1230 is the same as the method described above with reference to FIG. 8.

즉, 부호화 행렬 결정부(1230)는 요구하는 부호어의 길이에 대응되는 확장 부호화 행렬을 얻기 위해서, 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성하고, 상기 기본 패턴 부호화 행렬의 '1' 값을 가진 원소의 위치에 상기 부분 행렬을 할당하고, 상기 기본 패턴 부호화 행렬의 '0' 값을 가진 원소의 위치에 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 영 행렬을 할당하여, 상기 기본 패턴 부호화 행렬이 확장된 확장 부호화 행렬을 생성하도록 구성될 수 있다.That is, the encoding matrix determiner 1230 generates a partial matrix having rows and columns corresponding to the ratio of the basic codeword length to the required codeword length in order to obtain an extended coding matrix corresponding to the length of the codeword. And assigning the partial matrix to the position of the element having the value of '1' of the basic pattern coding matrix, and the basic codeword length and the required code to the position of the element having the value of '0' of the basic pattern coding matrix. The base pattern coding matrix may be configured to generate an extended coding matrix by allocating a zero matrix having rows and columns corresponding to a ratio of the lengths.

이때, 상기 부분 행렬의 예로는 적어도 하나의 단위 행렬(identity matrix) 및/또는 적어도 하나의 회전 단위 행렬(rotated identity matrix)이 결합된 결합 행렬이 이용될 수 있음은 앞서 도 9 및 도 10을 통하여 설명된 바와 같다.In this case, as an example of the partial matrix, a combination matrix of at least one identity matrix and / or at least one rotated identity matrix may be used. As described.

또한, 기본 패턴 부호화 행렬의 원소 위치에 부분 행렬 또는 영 행렬을 할당하여 확장 부호화 행렬을 생성하는 개념은 도 11을 통하여 설명된 바와 같다.In addition, the concept of generating an extended coding matrix by allocating a partial matrix or a zero matrix at element positions of the basic pattern coding matrix is as described with reference to FIG. 11.

다음으로, 부호화부(1240)는 부호화 행렬 결정부에서 생성한 확장 부호화 행렬을 이용하여, 정보 비트열 입력부에서 입력된 정보 비트열들을 불규칙 반복 다상 누산 코드 부호화하는 구성요소이다. Next, the encoder 1240 is an element that irregularly repeats multiphase accumulative code encoding of the information bit strings input from the information bit string input unit by using the extension coding matrix generated by the encoding matrix determiner.

도 13는 본 발명에 따른 부호화 장치의 부호화부 구성예를 설명하기 위한 블록도이다.13 is a block diagram illustrating an example of a configuration of an encoding unit of an encoding apparatus according to the present invention.

도 13을 참조하면, 부호화부(1240)는 부호화 상태 결정부(1241), 패리티 비트 결정부(1242) 및 부호어 생성부(1243)를 포함하여 구성될 수 있다.Referring to FIG. 13, the encoder 1240 may include an encoding state determiner 1241, a parity bit determiner 1242, and a codeword generator 1243.

먼저, 부호화 상태 결정부(1241)는 상기 부호화 행렬 결정부에서 결정한 확장 부호화 행렬의 i(i는 행렬의 첫번째 행을 지시하는 값부터 시작) 행을 이용하여, 상기 정보 비트열 입력부에서 입력된 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 구성요소이다. 즉, 부호화 상태 결정부는 도 1을 통하여 설명된 단계(S120) 내지 단계(S140)까지의 단계들을 수행하는 구성요소이다. 부호화 상태 결정부(1241)의 일 구성예는 도 14를 통하여 후술된다. First, the encoding state determiner 1241 uses the i (i is a value starting from a value indicating the first row of the matrix) row of the extended encoding matrix determined by the encoding matrix determiner to input information input from the information bit string input unit. Among the information bits constituting the bit string, the input bits are selected and an encoding state is determined according to the selected input bits. That is, the encoding state determiner is a component that performs the steps from step S120 to step S140 described with reference to FIG. 1. An example of the configuration of the encoding state determination unit 1241 will be described later with reference to FIG. 14.

패리티 비트 결정부(1242)는 상기 부호화 상태 결정부에서 결정한 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 구성요소이다. 즉, 패리티 비트 결정부(1242)는 부호화 상태 결정부(1241)에서 마지막으로 결정된 부호화 상태가 미리 설정된 상태(예컨대, zero state)로 수렴하도록 하는 값을 가지는 비트들을 패리티 비트들로 결정하도록 구성될 수 있다.The parity bit determiner 1242 is a component that determines parity bits of the i row based on the encoding state determined by the encoding state determiner. That is, the parity bit determiner 1242 may be configured to determine, as parity bits, bits having a value that causes the encoding state determined by the encoding state determiner 1241 to converge to a preset state (eg, zero state). Can be.

마지막으로, 부호어 생성부(1243)는 상술된 부호화 상태 결정부와 패리티 비트 결정부의 동작을 전체적으로 제어하고, 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(coreword)를 생성하는 구성요소이다.Lastly, the codeword generator 1243 controls the operations of the encoding state determiner and the parity bit determiner as described above, and generates a codeword by combining the information bit string and the generated parity bits.

즉, 부호어 생성부(1243)는 상기 i를 증가시켜 상기 확장 부호화 행렬의 마지막 행까지 상기 부호화 상태 결정부와 상기 패리티 비트 결정부의 동작을 반복하도록 제어하고, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하는 역할을 수행한다.That is, the codeword generator 1243 increases the i to control to repeat the operation of the encoding state determiner and the parity bit determiner until the last row of the extended coding matrix, and controls the information bit stream and the generated parity bits. Combine to generate codewords.

도 14는 본 발명에 따른 부호화 장치에 적용되는 부호화 상태 결정부의 구성을 설명하기 위한 회로도이다.14 is a circuit diagram for explaining a configuration of an encoding state determination unit applied to an encoding apparatus according to the present invention.

부호화 상태 결정부(1241)는 레지스터(1410) 및 연산부(1420)를 포함하여 부호화 상태를 결정할 수 있다. 레지스터(1410)는 부호화 상태를 나타내는 비트들을 저장한다. 연산부(1420)는 부호화 상태 결정부(1241)로 입력되는 입력 비트(i) 및 부호화 상태를 나타내는 비트들(즉, 레지스터에 값이 저장된 비트들, d0, d1,...)중 적어도 하나의 비트 간의 XOR(배타적 논리합) 연산을 수행한다. The encoding state determiner 1241 may include a register 1410 and an operation unit 1420 to determine an encoding state. The register 1410 stores bits representing an encoding state. The calculating unit 1420 may include at least one of an input bit i input to the encoding state determining unit 1241 and bits representing an encoding state (that is, bits stored in a register, d 0 , d 1 ,...) Performs an XOR operation between one bit.

일례로, 레지스터(1410)에 저장된 모든 비트들과 입력 비트 간 XOR 연산할 수도 있으며, 다른 일례로 D0 레지스터에 저장된 비트와 입력 비트 간 XOR 연산할 수도 있다. 즉, 레지스터(1410)의 각 저장공간 D0 내지 DN -1은 선택적으로 연산부(1420)와 연결되어 저장된 비트 값을 연산부(1420)에 제공한다. 이때, 일 실시 예에 따라, 레지스터(1410)는 부호화 상태 결정부(1441)에 정보 비트가 입력될 때마다 저장된 비트들이 한 비트씩 하위 비트 자리로 이동하고, 연산부(1420)에서 수행되는 연산 결과가 최상위 비트 자리로 입력됨으로써 부호화 상태를 나타내는 비트들을 갱신하는 순환 시프트 레지스터(Recursive Shift Register)일 수 있다. For example, an XOR operation may be performed between all bits stored in the register 1410 and an input bit. In another example, an XOR operation may be performed between an input bit and a bit stored in the D 0 register. That is, each of the storage spaces D 0 to D N -1 of the register 1410 is selectively connected to the operation unit 1420 to provide the stored bit value to the operation unit 1420. In this case, according to an embodiment of the present disclosure, each time an information bit is input to the encoding state determiner 1441, the register 1410 moves the stored bits to the lower bit positions by one bit, and the calculation result performed by the operation unit 1420. May be a recursive shift register for updating bits indicating an encoding state by being input to the most significant bit digit.

레지스터(1410) 및 연산부(1420)의 동작은 수학식 2 또는 수학식 3과 같이 표현될 수 있다.The operation of the register 1410 and the operation unit 1420 may be expressed as Equation 2 or Equation 3 below.

도 15는 개시된 기술의 일 실시예에 따라, 부호화 상태 수가 4인 경우 부호화 상태 결정부를 설명하기 위한 도면이다. 부호화 상태 수 NS가 4 인 경우 패리티 비트수 NP 및 부호화 상태를 나타내는 비트 수는 2이므로 레지스터(1410)는 두 개의 저장 공간 D1, D0를 가진다. 연산부(1420)는 입력 비트(i) 및 부호화 상태를 나타내는 비트들, 즉, 레지스터 D1, D0에 값이 저장된 비트들(d1, d0)중 적어도 하나의 비트 간의 XOR(배타적 논리합) 연산을 수행한다. FIG. 15 is a diagram for describing an encoding state determiner when the encoding state number is 4 according to an embodiment of the disclosed technology. When the coded state number N S is 4, the parity bit number N P and the number of bits representing the coded state are 2, so the register 1410 has two storage spaces D 1 and D 0 . The operation unit 1420 may perform an XOR (exclusive OR) between at least one bit among the bits representing the input bit i and the encoding state, that is, bits d 1 and d 0 in which values are stored in registers D 1 and D 0 . Perform the operation.

일례로 도 15의 (a)는 입력 비트 i, 레지스터에 저장된 비트 값들인 d1, d0 세 비트의 XOR 연산을 수행한다. 이를 수학식으로 나타내면 수학식 4와 같다. 다른 일례로 도 15의 (b)는 입력 비트 i와 레지스터에 저장된 비트 값인 d0 간의 XOR 연산을 수행한다. 이를 수학식으로 나타내면 수학식 5와 같다.
For example, (a) of FIG. 15 performs an XOR operation of input bits i and three bits d 1 and d 0 which are bit values stored in a register. This is represented by Equation 4 below. As another example, FIG. 15B performs an XOR operation between input bit i and d 0 , a bit value stored in a register. This is represented by Equation 5 below.

본 발명에 따른 가변 Variable according to the invention 부호어Codeword 길이를 지원하는  Supporting length IRmAIRmA 코드 복호화 방법 Code decryption method

도 16은 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 복호화 방법을 설명하기 위한 순서도이다.16 is a flowchart illustrating a method for decoding an irregular repetitive polyphase accumulating code supporting variable codeword lengths according to the present invention.

도 16을 참조하면, 본 발명에 따른 가변 부호어 길이를 지원하는 IRmA 코드 복호화 방법은, 기본 부호어 길이에 대응되고, 상기 복호화를 실현하기 위한 기본 패턴 복호화 행렬을 구비하는 단계(S1610), 정보 비트들이 패리티 비트들과 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신하는 단계(S1620), 기본 부호어 길이와 상기 부호화 신호에 적용된 부호어의 길이의 비율에 따라 상기 기본 패턴 복호화 행렬을 확장한 확장 복호화 행렬을 생성하는 단계(S1630) 및 상기 생성된 확장 복호화 행렬을 이용하여 상기 불규칙 반복 다상 누산 코드 복호화를 수행하는 단계(S1640)를 포함하여 구성될 수 있다.Referring to FIG. 16, in the IRmA code decoding method supporting variable codeword lengths according to the present invention, a step corresponding to a basic codeword length and including a basic pattern decoding matrix for realizing the decoding (S1610), information Receiving an irregular repetitive polyphase accumulating coded code signal in which bits are combined with parity bits (S1620), and extending the base pattern decoding matrix according to a ratio of a base codeword length and a length of a codeword applied to the coded signal. Generating a decoding matrix (S1630) and performing the irregular repetitive polyphase accumulating code decoding using the generated extended decoding matrix (S1640).

단계(S1610)에서 기본 패턴 복호화 행렬은 도 3을 통하여 앞서 설명된 복호화 행렬을 의미하는 것이며, 기본 부호어 길이는 통상적으로 본 발명에 따른 복호화 방법에서 선택할 수 있는 가장 짧은 부호어 길이에 해당될 수 있다. 기본 패턴 복호화 행렬은 앞서 설명된 부호화 방법 및 장치에서 기본 패턴 부호화 행렬로 설명된 행렬과 동일하므로, 추가적인 설명은 생략한다.In operation S1610, the basic pattern decoding matrix means the decoding matrix described above with reference to FIG. 3, and the basic codeword length may generally correspond to the shortest codeword length selectable in the decoding method according to the present invention. have. Since the basic pattern decoding matrix is the same as the matrix described as the basic pattern coding matrix in the above-described encoding method and apparatus, further description thereof will be omitted.

단계(S1620)에서는 정보 비트들이 패리티 비트들과 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신한다. 즉, 부호화 신호는 송신 측에서 본 발명에 따른 부호화 방법에 의하여 부호화된 부호어가 유무선 채널을 통하여 수신 측에 전달된 신호를 의미한다.In step S1620, an irregular repetitive polyphase accumulating coded signal having information bits combined with parity bits is received. That is, the coded signal refers to a signal in which a codeword coded by a coding method according to the present invention is transmitted from a transmitting side to a receiving side through a wired or wireless channel.

단계(S1630)는 기본 부호어의 길이와 단계(S1620)에서 수신된 부호화 신호에 적용되어 있는 부호어의 길이의 비율에 따라 상기 기본 패턴 복호화 행렬을 확장한 확장 복호화 행렬을 생성하는 단계이다.In operation S1630, an extended decoding matrix is generated by extending the basic pattern decoding matrix according to a ratio of the length of the basic codeword to the length of the codeword applied to the coded signal received in step S1620.

도 17은 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 복호화 방법에서 확장 복호화 행렬을 생성하는 방법의 일 실시예를 설명하기 위한 순서도이며, 도 8에서 예시된 과정과 유사하다. FIG. 17 is a flowchart illustrating an embodiment of a method for generating an extended decoding matrix in an irregular repetitive polyphase accumulating code decoding method supporting variable codeword lengths according to the present invention, and is similar to the process illustrated in FIG. 8.

도 17을 참조하면, 단계(S1630)의 일 예는 상기 기본 부호어 길이와 수신된 부호화 신호에 적용되어 있는 부호어의 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성하는 단계(S1631)와 상기 기본 패턴 복호화 행렬의 '1' 값을 가진 원소의 위치에 상기 부분 행렬을 할당하고, 상기 기본 패턴 복호화 행렬의 '0' 값을 가진 원소의 위치에 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 영 행렬을 할당하여, 상기 기본 패턴 복호화 행렬이 확장된 확장 복호화 행렬을 생성하는 단계(S1632)를 포함하여 구성될 수 있다.Referring to FIG. 17, an example of operation S1630 includes generating a partial matrix having rows and columns corresponding to a ratio between the basic codeword length and a length of a codeword applied to a received coded signal in operation S1631. And assigning the partial matrix to a position of an element having a value of '1' of the basic pattern decoding matrix, and a codeword length and a required codeword at a position of an element having a value of '0' of the basic pattern decoding matrix. The method may further include generating an extended decoding matrix in which the basic pattern decoding matrix is extended by assigning a zero matrix having rows and columns corresponding to a ratio of lengths (S1632).

단계(S1631)에서 부분 행렬은 기본 부호어 길이와 수신된 부호화 신호에 적용되어 있는 부호어의 길이의 비에 상응하는 행과 열을 가지도록 생성될 수 있다. 예컨대, 기본 부호어의 길이가 20이며, 요구되는 부호어의 길이가 100이라면, 부분 행렬은 100/20=5의 행과 열을 가진 5×5 행렬이 된다. 따라서, 단계(S1632)는 기본 패턴 복호화 행렬의 각 원소(element) 위치에 5×5의 크기를 가진 부분 행렬 또는 영 행렬로 할당하는 것에 의해서 원하는 크기만큼 기본 패턴 복호화 행렬을 확장하는 과정으로 설명될 수 있다.In operation S1631, the partial matrix may be generated to have a row and a column corresponding to a ratio of the length of the basic codeword and the length of the codeword applied to the received coded signal. For example, if the length of the basic codeword is 20 and the length of the required codeword is 100, the partial matrix is a 5x5 matrix with rows and columns of 100/20 = 5. Therefore, step S1632 may be described as a process of extending the basic pattern decoding matrix by a desired size by assigning each element position of the basic pattern decoding matrix to a partial matrix or a zero matrix having a size of 5 × 5. Can be.

이때, 상기 부분 행렬의 예로는 적어도 하나의 단위 행렬(identity matrix) 및/또는 적어도 하나의 회전 단위 행렬(rotated identity matrix)이 결합된 결합 행렬이 이용될 수 있음은 앞서 설명된 바와 같다.In this case, as an example of the partial matrix, a combining matrix in which at least one identity matrix and / or at least one rotated identity matrix are combined may be used.

따라서, 본 발명에 따른 확장 복호화 행렬의 생성 방법은, 기본 패턴 복호화 행렬의 원소들의 위치마다 원하는 크기의 부분 행렬 또는 영 행렬을 원소들의 값에 따라 할당함으로써 기본 패턴 복호화 행렬의 불규칙성을 유지하면서 원하는 부호어 길이에 대응된 확장 복호화 행렬을 생성할 수 있다.Accordingly, in the method of generating an extended decoding matrix according to the present invention, a desired code is maintained while maintaining the irregularity of the basic pattern decoding matrix by allocating a partial matrix or a zero matrix having a desired size for each position of elements of the basic pattern decoding matrix according to the values of the elements. An extended decoding matrix corresponding to the length may be generated.

단계(S1640)에서 복호화를 수행하는 과정은 도 4를 통하여 이미 상술된 것으로 자세한 설명은 생략된다. 즉, 단계(S1640)는 상기 확장 복호화 행렬에 따라, 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하는 단계(d-1), 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 단계(d-2), 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR(Bahl, Cocke, Jelinek and Raviv) 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 단계(d-3), 새로이 산출되는 상기 제1 메시지의 값들 및 상기 제2 메시지의 값들을 이용하여 상기 단계(d-2) 및 상기 단계(d-3)를 수행함을 반복하는 단계(d-4) 및 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 단계(d-5)를 포함하여 구성될 수 있다.The process of performing decryption in step S1640 has already been described above with reference to FIG. 4, and a detailed description thereof will be omitted. That is, step S1640 includes grouping the coded bits included in the coded signal into groups of G (the G is an integer of 2 or more) according to the extended decoding matrix (d-1). For bits, based on the likelihood of each bit provided from a plurality of groups in which each bit is included (the value of a first message hereinafter), each bit is a plurality of bits in which each bit is included. Estimating the likelihood (hereinafter, the value of the second message) of each bit provided to the groups (d-2), a two-dimensional BCJR based on trellis representing the encoding state transition (Bahl, Cocke, Jelinek and (D-3) updating and providing values of the first message to each bit based on values of the second message provided by the G groups using a Raviv algorithm; Values of a first message and the second message Repeating performing the step (d-2) and the step (d-3) using the values of the message (d-4) and the estimated value based on the values of the first message calculated in the last iteration. And determining the value of each bit according to the likelihood of each bit (d-5).

이때, 단계(d-2) 및 단계(d-3)의 메시지 전달 및 갱신 과정이 반복될수록 복호화의 정확도가 높아지게 된다.At this time, as the message transfer and update processes of steps (d-2) and (d-3) are repeated, the accuracy of decryption increases.

따라서, 미리 주어진 반복 횟수만큼 상기 제1 및 제2 메시지의 갱신과 전달 과정을 반복하고, 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하도록 구성될 수 있다.Accordingly, the update and delivery processes of the first and second messages are repeated as many times as a predetermined number of repetitions, and the respective bits according to the likelihood of the respective bits estimated based on the values of the first message calculated in the last repetition. It can be configured to determine the value of.

또한, 미리 설정된 반복 횟수의 한계치 이내에서 상기 제1 및 제2 메시지의 갱신과 전달 과정을 반복하면서, 매 반복 마다 산출된 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하고, 복호화가 성공한 것으로 판단된 경우에는 반복을 중단하도록 구성될 수도 있다.In addition, while repeating the update and transfer process of the first and second messages within a preset threshold number of repetitions, the probability of each bit estimated based on the values of the first message calculated for each repetition. The value of each bit may be determined, and the repetition may be stopped when the decoding is determined to be successful.

단계(d-3)는, 2차원 BCJR 알고리즘으로서 설명될 수 있는데, i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하는 것으로 설명될 수 있는데, 그 산출하는 과정은, 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계 및k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하는 단계를 포함하여 구성될 수 있다.
Step (d-3) may be described as a two-dimensional BCJR algorithm, where the i-th is based on the values of the second message for the bits included in the i-th group, where i is 1≤i≤G. The process of calculating the values of the first message for the bits included in the group may be described as performing for each group, the calculating of the forward state metrics and the back based on the values of the second message. Calculating word status metrics and calculating a value of a first message for a kth bit of the i-th group of bits based on the product of the kth forward state metric and the k + 1th backward state metric; Can be configured.

본 발명에 따른 가변 Variable according to the invention 부호어Codeword 길이를 지원하는  Supporting length IRmAIRmA 복호화 장치 Decryption device

도 18은 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 복호화 장치의 구성을 설명하기 위한 블록도이다.18 is a block diagram illustrating a configuration of an irregular repetitive polyphase accumulator code decoding apparatus supporting a variable codeword length according to the present invention.

도 18을 참조하면, 본 발명에 따른 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 코드 복호화 장치(1800)는 부호화 수신부(1810), 패턴 행렬 저장부(1820), 복호화 행렬 결정부(1830) 및 복호화부(1840)를 포함하여 구성될 수 있다.Referring to FIG. 18, an irregular repetitive polyphase accumulating code decoding apparatus 1800 supporting a variable codeword length according to the present invention includes an encoding receiver 1810, a pattern matrix storage 1820, a decoding matrix determiner 1830, and the like. The decoder 1840 may be configured to be included.

본 발명에 따른 복호화 장치(1800)는 일반적으로 데이터 수신 장치에 위치되어, 수신된 부호화 신호를 복호하여 부호화 신호에서 정보 비트열을 추출하여 상위 계층으로 전달하는 역할을 수행한다. 데이터 수신 장치는 일반적으로, 데이터 송신 측으로부터 부호화 신호에 적용된 부호어 길이에 대한 정보를 명시적(explicitly) 또는 암시적(implicitly)으로 수신하여 인지하게 된다.The decoding apparatus 1800 according to the present invention is generally located in a data receiving apparatus, decodes a received coded signal, extracts an information bit string from the coded signal, and delivers the information to a higher layer. In general, a data receiving apparatus receives and recognizes information about a codeword length applied to an encoded signal from a data transmitting side explicitly or implicitly.

먼저, 부호화 신호 수신부(1810)는 복호화 대상이 되는, 정보 비트들과 패리티 비트들이 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신한다. 여기에서 부호어 대신에 부호화 신호라는 용어가 이용되는 이유는, 비트값(0 or 1)으로 판정(decision)을 내리기 전의 수신 신호이기 때문이다.First, the coded signal receiver 1810 receives an irregular repetitive polyphase accumulating coded coded signal having a combination of information bits and parity bits, which are to be decoded. The term coded signal is used here instead of codeword because it is a received signal before a decision is made with a bit value (0 or 1).

다음으로, 패턴 행렬 저장부(1820)는 기본 부호어 길이에 대응되고, 상기 복호화를 실현하기 위한 기본 패턴 복호화 행렬을 구비하여 저장하고 있는 구성요소이다. 기본 패턴 복호화 행렬은 기본 부호어 길이에 대응되는 복호화 행렬로서, 부호화 방법 및 장치에서는 기본 패턴 부호화 행렬로 설명된 행렬이다. Next, the pattern matrix storage unit 1820 is a component corresponding to the basic codeword length and having a basic pattern decoding matrix for storing the decoding. The basic pattern decoding matrix is a decoding matrix corresponding to the basic codeword length, and in the encoding method and apparatus, the matrix is described as the basic pattern coding matrix.

다음으로, 복호화 행렬 결정부(1830)는 기본 부호어 길이와 상기 부호화 신호에 적용된 부호어의 길이의 비율에 따라, 상기 패턴 행렬 저장부에 저장된 상기 기본 패턴 복호화 행렬을 확장한 확장 복호화 행렬을 생성하는 구성요소이다. Next, the decoding matrix determiner 1830 generates an extended decoding matrix extending the basic pattern decoding matrix stored in the pattern matrix storage unit according to a ratio of a length of a basic codeword to a length of a codeword applied to the coded signal. It is a component.

복호화 행렬 결정부(1830)는 일 실시예로 기본 부호어 길이와 수신된 부호화 신호에 적용되어 있는 부호어의 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성한 다음, 기본 패턴 복호화 행렬의 '1' 값을 가진 원소의 위치에 상기 부분 행렬을 할당하고, 상기 기본 패턴 복호화 행렬의 '0' 값을 가진 원소의 위치에 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 영 행렬을 할당하여, 상기 기본 패턴 복호화 행렬이 확장된 확장 복호화 행렬을 생성하도록 구성될 수 있다.In an embodiment, the decoding matrix determiner 1830 generates a partial matrix having a row and a column corresponding to a ratio of the length of the basic codeword and the length of the codeword applied to the received coded signal, and then Assigning the partial matrix to a position of an element having a value of '1', and a row equal to the ratio of the basic codeword length to a required codeword length at a position of an element having a value of '0' of the basic pattern decoding matrix; By assigning a zero matrix with columns, the basic pattern decoding matrix can be configured to generate an extended decoding matrix.

이때, 부분 행렬은 기본 부호어 길이와 수신된 부호화 신호에 적용되어 있는 부호어의 길이의 비에 상응하는 행과 열을 가지도록 생성될 수 있다. 예컨대, 기본 부호어의 길이가 20이며, 요구되는 부호어의 길이가 100이라면, 부분 행렬은 100/20=5의 행과 열을 가진 5×5 행렬이 된다. 따라서, 복호화 행렬 결정부(1830)의 동작은 기본 패턴 복호화 행렬의 각 원소(element) 위치에 5×5의 크기를 가진 부분 행렬 또는 영 행렬로 할당하는 것에 의해서 원하는 크기만큼 기본 패턴 복호화 행렬을 확장하는 과정으로 설명될 수 있다.In this case, the partial matrix may be generated to have a row and a column corresponding to the ratio of the length of the basic codeword and the length of the codeword applied to the received coded signal. For example, if the length of the basic codeword is 20 and the length of the required codeword is 100, the partial matrix is a 5x5 matrix with rows and columns of 100/20 = 5. Accordingly, the operation of the decoding matrix determiner 1830 extends the basic pattern decoding matrix by a desired size by assigning each element position of the basic pattern decoding matrix to a partial matrix or a zero matrix having a size of 5 × 5. It can be described as a process.

이때, 상기 부분 행렬의 예로는 적어도 하나의 단위 행렬(identity matrix) 및/또는 적어도 하나의 회전 단위 행렬(rotated identity matrix)이 결합된 결합 행렬이 이용될 수 있음은 앞서 설명된 바와 같다.In this case, as an example of the partial matrix, a combining matrix in which at least one identity matrix and / or at least one rotated identity matrix are combined may be used.

마지막으로, 복호화부(1840)는 복호화 행렬 결정부(1830)에서 결정한 확장 복호화 행렬을 이용하여, 상기 부호화 신호 수신부(1810)에서 수신된 부호화 신호를 대상으로 불규칙 반복 다상 누산 코드 복호화를 수행하여, 부호화 신호에 포함된 정보 비트열을 출력하는 구성요소이다. Finally, the decoder 1840 performs irregular repetitive polyphase accumulation code decoding on the coded signal received by the coded signal receiver 1810 using the extended decoding matrix determined by the decoding matrix determiner 1830. It is a component that outputs an information bit string included in an encoded signal.

복호화부(1840)의 구체적인 동작은 도 4 내지 도 6을 통하여 설명된 복호화 방법을 수행하는 것으로 설명될 수 있으며, 이미 상술되었으므로 이하에서는 간략한 설명만을 하도록 한다.A detailed operation of the decoder 1840 may be described as performing the decoding method described with reference to FIGS. 4 to 6, and since the above is already described above, only a brief description thereof will be provided.

즉, 복호화부(1340)는 상기 확장 복호화 행렬에 따라, 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하며, 상기 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 과정과 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정의 수행을 반복하여, 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하도록 구성될 수 있다.That is, the decoder 1340 groups the coded bits included in the coded signal into groups of G (the G is an integer of 2 or more) according to the extended decoding matrix, and for each bit included in the coded signal. Based on the likelihood of each bit (hereinafter, the value of the first message) provided from the plurality of groups containing each bit, wherein each bit is assigned to a plurality of groups containing each bit. The second group provided by the G groups by using a two-dimensional BCJR algorithm based on a trellis representing an encoding state transition and a process of estimating the likelihood (hereinafter, the value of the second message) of each of the bits provided. Based on the values of the message, the process of updating the values of the first message and providing them to the respective bits is repeated, and based on the values of the first message calculated in the last iteration. It may be configured to determine the value of each bit according to the likelihood of each bit being determined.

이때, 메시지 전달 및 갱신 과정이 반복될수록 복호화의 정확도가 높아지게 된다. 따라서, 미리 주어진 반복 횟수만큼 상기 제1 및 제2 메시지의 갱신과 전달 과정을 반복하고, 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하도록 구성될 수 있다.At this time, as the message transfer and update process is repeated, the accuracy of decryption increases. Accordingly, the update and delivery processes of the first and second messages are repeated as many times as a predetermined number of repetitions, and the respective bits according to the likelihood of the respective bits estimated based on the values of the first message calculated in the last repetition. It can be configured to determine the value of.

또한, 미리 설정된 반복 횟수의 한계치 이내에서 상기 제1 및 제2 메시지의 갱신과 전달 과정을 반복하면서, 매 반복 마다 산출된 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하고, 복호화가 성공한 것으로 판단된 경우에는 반복을 중단하도록 구성될 수도 있다.In addition, while repeating the update and transfer process of the first and second messages within a preset threshold number of repetitions, the probability of each bit estimated based on the values of the first message calculated for each repetition. The value of each bit may be determined, and the repetition may be stopped when the decoding is determined to be successful.

이때, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정은, i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하는 것으로 설명될 수 있는데, 그 산출하는 과정은, 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계 및k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하도록 구성될 수 있다.
In this case, based on the values of the second message provided by the G groups, updating the values of the first message and providing the bits to the respective bits may include the i th (where i is 1 ≦ i ≦ G). It may be described that performing a process for each group of calculating values of the first message for the bits included in the i-th group based on the values of the second message for the bits included in the group. The calculating process includes calculating forward state metrics and backward state metrics based on the values of the second message and the i th group based on the product of the k th forward state metric and the k + 1 th forward state metric. And calculate a value of the first message for the k th bit of the bits.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

1200: 부호화 장치
1210: 정보 비트열 입력부 1220: 패턴 행렬 저장부
1230: 부호화 행렬 결정부 1240: 부호화부
1200: encoding device
1210: information bit string input unit 1220: pattern matrix storage unit
1230: encoding matrix determiner 1240: encoder

Claims (22)

가변 길이를 가지는 부호어를 생성하는 불규칙 반복 다상 누산 코드 부호화 방법으로서,
기본 부호어 길이에 대응되고, 상기 부호화 방법을 실현하기 위한 기본 패턴 부호화 행렬을 구비하는 단계(a);
상기 기본 부호어의 길이와 요구되는 부호어의 길이의 비율에 따라 상기 기본 패턴 부호화 행렬을 확장한 확장 부호화 행렬을 생성하는 단계(b); 및
생성된 확장 부호화 행렬을 이용하여 불규칙 반복 다상 누산 코드 부호화를 수행하는 단계(c)를 포함하고,
상기 단계(c)는
부호화 대상이 되는 정보 비트열을 입력받는 단계(c-1);
상기 확장 부호화 행렬의 i행(i는 행렬의 첫번째 행을 지시하는 값부터 시작)에 기초하여 상기 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 단계(c-2); 및
상기 결정된 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 단계(c-3)를 포함하고,
상기 i를 증가시켜 상기 확장 부호화 행렬의 마지막 행까지 상기 단계(c-2) 내지 (c-3)를 반복한 다음, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하는 단계(c-4)를 포함하는 불규칙 반복 다상 누산 코드 부호화 방법.
An irregular repetitive polyphase accumulating code encoding method for generating a codeword having a variable length,
(A) corresponding to a basic codeword length and including a basic pattern coding matrix for realizing the coding method;
Generating an extended coding matrix extending the basic pattern coding matrix according to a ratio of the length of the basic codeword to the length of the required codeword; And
(C) performing irregular iterative multiphase accumulation code encoding using the generated extended encoding matrix,
Step (c) is
Receiving an information bit string to be encoded (c-1);
An input bit is selected from among information bits constituting the information bit string based on row i of the extension coding matrix (i is a value starting from a value indicating a first row of the matrix), and an encoding state is selected according to the selected input bits. Determining (c-2); And
(C-3) determining parity bits of the i row based on the determined encoding state;
Repeating the steps (c-2) to (c-3) until the last row of the extended coding matrix by increasing i, and then combining the information bit stream and the generated parity bits to generate a codeword An irregular repetitive polyphase accumulation code encoding method comprising the step (c-4).
청구항 1에 있어서,
상기 단계(b)는,
상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성하는 단계(b-1); 및
상기 기본 패턴 부호화 행렬의 '1' 값을 가진 원소(element)의 위치에 상기 부분 행렬을 할당하고, 상기 기본 패턴 부호화 행렬의 '0' 값을 가진 원소의 위치에 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 영 행렬을 할당하여, 상기 기본 패턴 부호화 행렬이 확장된 확장 부호화 행렬을 생성하는 단계(b-2)를 포함한 불규칙 반복 다상 누산 코드 부호화 방법.
The method according to claim 1,
The step (b)
(B-1) generating a partial matrix having rows and columns equal to the ratio of the basic codeword length to the required codeword length; And
The partial matrix is assigned to a position of an element having a value of '1' of the basic pattern coding matrix, and the length of the basic codeword is required to a position of an element having a value of '0' of the basic pattern coding matrix. And (b-2) assigning a zero matrix having rows and columns equal to a ratio of codeword lengths to generate an extended coding matrix from which the basic pattern coding matrix is extended.
청구항 2에 있어서
상기 부분 행렬은 적어도 하나의 단위 행렬(identity matrix)과 적어도 하나의 회전 단위 행렬(rotated identity matrix) 중 적어도 하나가 결합된 결합 행렬인 것을 특징으로 하는 불규칙 반복 다상 누산 코드 부호화 방법.
Claim 2
And the partial matrix is a combined matrix in which at least one of an identity matrix and at least one rotated identity matrix is combined.
삭제delete 청구항 1에 있어서,
상기 단계(c-2)는,
상기 선택된 입력 비트들 중 이전에 입력되지 않은 어느 하나의 비트를 입력받아, 상기 입력받은 비트에 따라 현재 부호화 상태를 천이(transition)시키고, 상기 어느 하나의 비트를 입력받는 과정과 현재 부호화 상태의 천이 과정을 상기 입력 비트들의 숫자만큼 반복하여 마지막 반복에서 천이된 부호화 상태를 상기 부호화 상태로 결정하는 것을 특징으로 하는 불규칙 반복 다상 누산 코드 부호화 방법.
The method according to claim 1,
Step (c-2) is,
Receiving any one of the selected input bits that has not been previously input, transitions the current encoding state according to the received bits, and receives the one bit and the transition of the current encoding state And repeating the process by the number of input bits to determine the coding state transitioned at the last iteration as the coding state.
청구항 1에 있어서,
상기 단계(c-3)는 상기 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 값을 가지는 비트들을 상기 패리티 비트들로 결정하며, 바람직하기로는 상기 미리 설정된 상태는 제0 상태(zero state)인 것을 특징으로 하는 불규칙 반복 다상 누산 코드 부호화 방법.
The method according to claim 1,
In the step (c-3), the bits having a value for converging the encoding state to a preset state are determined as the parity bits, and preferably, the preset state is a zero state. An irregular repetitive polyphase accumulation code encoding method.
가변 길이를 가지는 부호어를 생성하는 불규칙 반복 다상 누산 코드 부호화 장치로서,
부호화 대상이 되는 정보 비트열을 입력받는 정보 비트열 입력부;
기본 부호어 길이에 대응되고, 상기 부호화를 실현하기 위한 기본 패턴 부호화 행렬을 구비하는 패턴 행렬 저장부;
기본 부호어 길이와 요구되는 부호어의 길이의 비율에 따라, 상기 패턴 행렬 저장부에 저장된 상기 패턴 부호화 행렬을 확장하여, 확장 부호화 행렬을 생성하는 부호화 행렬 결정부; 및
상기 부호화 행렬 결정부에서 결정한 확장 부호화 행렬을 이용하여, 상기 정보 비트열 입력부에서 입력된 정보 비트열을 불규칙 반복 다상 누산 코드 부호화하여, 불규칙 반복 다상 누산 코드 부호어를 출력하는 부호화부를 포함하고,
상기 부호화부는
상기 부호화 행렬 결정부에서 결정한 확장 부호화 행렬의 i(i는 행렬의 첫번째 행을 지시하는 값부터 시작) 행을 이용하여, 상기 정보 비트열 입력부에서 입력된 정보 비트열을 구성하는 정보 비트들 중, 입력 비트들을 선택하고, 선택된 입력 비트들에 따라 부호화 상태를 결정하는 부호화 상태 결정부;
상기 결정된 부호화 상태에 기반하여 상기 i행의 패리티 비트들을 결정하는 패리티 비트 결정부; 및
상기 i를 증가시켜 상기 확장 부호화 행렬의 마지막 행까지 상기 부호화 상태 결정부와 상기 패리티 비트 결정부의 동작을 반복하도록 제어하고, 상기 정보 비트열과 생성된 패리티 비트들을 결합하여 부호어(codeword)를 생성하는 부호어 생성부를 포함하는 불규칙 반복 다상 누산 코드 부호화 장치.
An irregular repeating polyphase accumulating code encoding apparatus for generating a codeword having a variable length,
An information bit string input unit for receiving an information bit string to be encoded;
A pattern matrix storage section corresponding to a length of a basic codeword and having a basic pattern coding matrix for realizing the encoding;
An encoding matrix determiner for generating an extended encoding matrix by extending the pattern encoding matrix stored in the pattern matrix storage unit according to a ratio between a basic codeword length and a required codeword length; And
And an encoding unit configured to output an irregular repetitive polyphase accumulating code codeword by using an extended encoding matrix determined by the encoding matrix determiner, to output an irregular repetitive polyphase accumulating code codeword.
The encoder is
Among the information bits constituting the information bit string input from the information bit string input unit by using the i (i starting from a value indicating the first row of the matrix) row of the extended coding matrix determined by the coding matrix determination unit, An encoding state determiner which selects input bits and determines an encoding state according to the selected input bits;
A parity bit determiner that determines parity bits of the i row based on the determined encoding state; And
Increasing i to control to repeat the operation of the encoding state determiner and the parity bit determiner until the last row of the extended encoding matrix, and generate a codeword by combining the information bit stream and the generated parity bits. An irregular repetitive polyphase accumulating code encoding device including a codeword generator.
청구항 7에 있어서,
상기 부호화 행렬 결정부는,
상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성하고, 상기 기본 패턴 부호화 행렬의 '1' 값을 가진 원소의 위치에 상기 부분 행렬을 할당하며, 상기 기본 패턴 부호화 행렬의 '0' 값을 가진 원소의 위치에 영 행렬을 할당하여, 상기 기본 패턴 부호화 행렬이 확장된 확장 부호화 행렬을 생성하는 것을 특징으로 하는 불규칙 반복 다상 누산 코드 부호화 장치.
The method of claim 7,
The coding matrix determination unit,
Generate a partial matrix having rows and columns equal to the ratio of the basic codeword length to the required codeword length, and assign the partial matrix to a position of an element having a value of '1' of the basic pattern coding matrix; And assigning a zero matrix to a position of an element having a value of '0' of a basic pattern coding matrix, thereby generating an extended coding matrix in which the basic pattern coding matrix is extended.
청구항 8에 있어서,
상기 부분 행렬은 적어도 하나의 단위 행렬(identity matrix)과 적어도 하나의 회전 단위 행렬(rotated identity matrix) 중 적어도 하나가 결합된 결합 행렬인 것을 특징으로 하는 불규칙 반복 다상 누산 코드 부호화 장치.
The method according to claim 8,
And the partial matrix is a combined matrix of at least one of an identity matrix and at least one rotated identity matrix.
삭제delete 청구항 7에 있어서,
상기 부호화 상태 결정부는
상기 부호화 상태를 나타내는 비트들을 저장하는 레지스터; 및
상기 선택된 입력 비트들 중 입력되는 비트와 상기 부호화 상태를 나타내는 비트들 중 적어도 하나의 비트간의 배타적 논리합(XOR) 연산을 수행하는 연산부를 포함하고,
상기 레지스터는 상기 부호화 상태 결정부에 비트가 입력될 때마다 저장된 비트들이 한 비트씩 하위 비트 자리로 이동하고, 상기 연산부에서 수행되는 연산 결과가 최상위 비트 자리로 입력되어 상기 부호화 상태를 나타내는 비트들을 갱신하는 순환 쉬프트 레지스터(Recursive Shift Register)인 것을 특징으로 하는 불규칙 반복 다상 누산 코드 부호화 장치.
The method of claim 7,
The encoding state determination unit
A register for storing bits representing the encoding state; And
An operation unit configured to perform an exclusive OR operation between an input bit among the selected input bits and at least one bit among the bits indicating the encoding state;
Whenever a bit is input to the encoding state determination unit, the register moves the stored bits to the lower bit position by one bit, and the operation result performed by the operation unit is input to the most significant bit position to update the bits indicating the encoding state. An irregular repetitive polyphase accumulating code encoding device, characterized in that a recursive shift register.
청구항 7에 있어서,
상기 패리티 비트 결정부는
상기 부호화 상태 결정부에서 결정한 최종 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 값을 가지는 비트들을 상기 패리티 비트들로 결정하며, 바람직하기로는 상기 미리 설정된 상태는 제0 상태(zero state)인 것을 특징으로 하는 불규칙 반복 다상 누산 코드 부호화 장치.
The method of claim 7,
The parity bit determiner
The bits having a value for converging the final encoding state determined by the encoding state determiner to a preset state are determined as the parity bits, and preferably, the preset state is a zero state. An irregular repetition multiphase accumulation code encoding apparatus.
가변 길이를 가지는 불규칙 반복 다상 누산 코드 부호화 신호를 복호화하는 불규칙 반복 다상 누산 코드 복호화 방법으로서,
기본 부호어 길이에 대응되고, 상기 복호화를 실현하기 위한 기본 패턴 복호화 행렬을 구비하는 단계(a);
정보 비트들이 패리티 비트들과 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신하는 단계(b);
기본 부호어 길이와 상기 부호화 신호에 적용된 부호어의 길이의 비율에 따라 상기 기본 패턴 복호화 행렬을 확장한 확장 복호화 행렬을 생성하는 단계(c); 및
상기 생성된 확장 복호화 행렬을 이용하여 상기 불규칙 반복 다상 누산 코드 복호화를 수행하는 단계(d)를 포함하고,
상기 불규칙 반복 다상 누산 코드 복호화를 수행하는 단계(d)는,
상기 확장 복호화 행렬에 따라, 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하는 단계(d-1);
상기 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 단계(d-2);
부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR(Bahl, Cocke, Jelinek and Raviv) 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 단계(d-3);
새로이 산출되는 상기 제1 메시지의 값들 및 상기 제2 메시지의 값들을 이용하여 상기 단계(d-2) 및 상기 단계(d-3)를 수행함을 반복하는 단계(d-4); 및
마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 단계(d-5)를 포함하는 불규칙 반복 다상 누산 코드 복호화 방법.
An irregular repetitive polyphase accumulating code decoding method for decoding an irregular repetitive polyphase accumulating coded signal having a variable length,
(A) corresponding to a basic codeword length and including a basic pattern decoding matrix for realizing the decoding;
(B) receiving an irregular repeating polyphase accumulating coded signal having information bits combined with parity bits;
(C) generating an extended decoding matrix extending the basic pattern decoding matrix according to a ratio of a length of a basic codeword to a length of a codeword applied to the coded signal; And
(D) performing the irregular repetitive polyphase accumulating code decoding by using the generated extended decoding matrix,
(D) performing the irregular repetitive polyphase accumulating code decoding includes:
Grouping coded bits included in the coded signal into groups G (the G is an integer of 2 or more) according to the extended decoding matrix (d-1);
For each bit included in the coded signal, each bit is based on the likelihood (hereinafter, the value of the first message) of each bit provided from a plurality of groups containing each bit. Estimating a likelihood (hereinafter, the value of the second message) of each bit provided to the plurality of groups each bit is included in (d-2);
The value of the first message, based on the values of the second message provided by the G groups, using a 2D BCJR (Bahl, Cocke, Jelinek and Raviv) algorithm based on a trellis representing an encoding state transition. Updating and providing each bit to each bit (d-3);
(D-4) repeating performing the step (d-2) and the step (d-3) by using the newly calculated values of the first message and the values of the second message; And
And determining (d-5) the value of each bit according to the likelihood of each bit estimated based on the values of the first message calculated in the last iteration.
청구항 13에 있어서,
상기 확장 복호화 행렬을 생성하는 단계(c)는
상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성하는 단계(c-1); 및
상기 기본 패턴 복호화 행렬의 '1' 값을 가진 원소(element)의 위치에 상기 부분 행렬을 할당하고, 상기 기본 패턴 복호화 행렬의 '0' 값을 가진 원소의 위치에 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 영 행렬을 할당하여, 상기 기본 패턴 복호화 행렬이 확장된 확장 복호화 행렬을 생성하는 단계(c-2)를 포함한 불규칙 반복 다상 누산 코드 복호화 방법.
The method according to claim 13,
Generating the extended decoding matrix (c)
Generating a partial matrix having rows and columns equal to the ratio of the basic codeword length to the required codeword length (c-1); And
The partial matrix is allocated to a position of an element having a value of '1' of the basic pattern decoding matrix, and the length of the basic codeword is required at a position of an element having a value of '0' of the basic pattern decoding matrix. And (c-2) generating an extended decoding matrix in which the basic pattern decoding matrix is extended by allocating a zero matrix having rows and columns corresponding to a ratio of codeword lengths.
청구항 14에 있어서
상기 부분 행렬은 적어도 하나의 단위 행렬(identity matrix)과 적어도 하나의 회전 단위 행렬(rotated identity matrix) 중 적어도 하나가 결합된 결합 행렬인 것을 특징으로 하는 불규칙 반복 다상 누산 코드 복호화 방법.
Claim 14
And the partial matrix is a combined matrix of at least one of an identity matrix and at least one rotated identity matrix.
삭제delete 청구항 13에 있어서,
상기 단계(d-3)는, i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하되, 상기 산출하는 과정은,
상기 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계; 및
k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하는 단계를 포함하는 불규칙 반복 다상 누산 코드 복호화 방법.
The method according to claim 13,
The step (d-3) is based on the values of the bits included in the i-th group based on the values of the second message for the bits included in the i-th group, where i is 1≤i≤G. 1 The process of calculating the values of the message is performed for each group, the process of calculating,
Calculating forward state metrics and backward state metrics based on the values of the second message; And
calculating a value of a first message for a k th bit of the i th group of bits based on a product of the k th forward state metric and the k + 1 th backward state metric; .
가변 길이를 가지는 불규칙 반복 다상 누산 코드 부호화 신호를 복호화하는 불규칙 반복 다상 누산 코드 복호화 장치로서,
복호화 대상이 되는, 정보 비트들과 패리티 비트들이 결합된 불규칙 반복 다상 누산 코드 부호화 신호를 수신하는 부호화 신호 수신부;
기본 부호어 길이에 대응되고, 상기 복호화를 실현하기 위한 기본 패턴 복호화 행렬을 구비하는 패턴 행렬 저장부;
기본 부호어 길이와 상기 부호화 신호에 적용된 부호어의 길이의 비율에 따라, 상기 패턴 행렬 저장부에 저장된 상기 기본 패턴 복호화 행렬을 확장한 확장 복호화 행렬을 생성하는 복호화 행렬 결정부; 및
상기 복호화 행렬 결정부에서 결정한 확장 복호화 행렬을 이용하여, 상기 부호화 신호 수신부에서 수신된 부호화 신호를 대상으로 불규칙 반복 다상 누산 코드 복호화하여, 상기 부호화 신호에 포함된 정보 비트열을 출력하는 복호화부를 포함하고,
상기 복호화부는,
상기 확장 복호화 행렬에 따라, 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하며,
상기 부호화 신호에 포함된 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여, 상기 각 비트가 상기 각 비트가 포함된 복수의 그룹 들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 과정과 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정의 수행을 반복하여,
마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 것을 특징으로 하는 불규칙 반복 다상 누산 코드 복호화 장치.
An irregular repeating polyphase accumulating code decoding apparatus for decoding an irregular repeating polyphase accumulating coded signal having a variable length,
An encoded signal receiving unit configured to receive an irregular repetitive polyphase accumulating coded coded signal including information bits and parity bits, which are to be decoded;
A pattern matrix storage section corresponding to a basic codeword length and having a basic pattern decoding matrix for realizing the decoding;
A decoding matrix determining unit generating an extended decoding matrix extending the basic pattern decoding matrix stored in the pattern matrix storage unit according to a ratio of a length of a basic codeword to a length of a codeword applied to the coded signal; And
And a decoding unit configured to output an information bit string included in the encoded signal by irregularly repeating multiphase accumulation code decoding of the encoded signal received by the encoded signal receiver using the extended decoding matrix determined by the decoding matrix determiner. ,
Wherein the decoding unit comprises:
According to the extension decoding matrix, the coded bits included in the coded signal are grouped into G groups (G is an integer of 2 or more),
For each bit included in the coded signal, each bit is based on the likelihood (hereinafter, the value of the first message) of each bit provided from a plurality of groups containing each bit. Using a process of estimating the likelihood (hereinafter, the value of the second message) of each bit provided to a plurality of groups including each bit and a trellis based trellis representing the encoding state transition, Based on the values of the second message provided by the G groups, the process of updating the values of the first message and providing the bits to the respective bits is repeated.
And determining a value of each bit according to the likelihood of each bit estimated based on the values of the first message calculated in the last iteration.
청구항 18에 있어서,
상기 복호화 행렬 결정부는,
상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 부분 행렬을 생성하고, 상기 기본 패턴 복호화 행렬의 '1' 값을 가진 원소(element)의 위치에 상기 부분 행렬을 할당하고, 상기 기본 패턴 복호화 행렬의 '0' 값을 가진 원소의 위치에 상기 기본 부호어 길이와 요구되는 부호어 길이의 비만큼의 행과 열을 가진 영 행렬을 할당하여, 상기 기본 패턴 복호화 행렬이 확장된 확장 복호화 행렬을 생성하는 불규칙 반복 다상 누산 코드 복호화 장치.
19. The method of claim 18,
The decoding matrix determination unit,
Generate a partial matrix having rows and columns equal to the ratio of the basic codeword length to the required codeword length, and assign the partial matrix to a position of an element having a value of '1' of the basic pattern decoding matrix; And a zero matrix having a row and a column equal to the ratio of the basic codeword length and the required codeword length to a position of an element having a value of '0' of the basic pattern decoding matrix. An irregular repeat polyphase accumulating code decoding apparatus generating an extended extended decoding matrix.
청구항 19에 있어서,
상기 부분 행렬은 적어도 하나의 단위 행렬(identity matrix)과 적어도 하나의 회전 단위 행렬(rotated identity matrix) 중 적어도 하나가 결합된 결합 행렬인 것을 특징으로 하는 불규칙 반복 다상 누산 코드 복호화 장치.
The method of claim 19,
And the partial matrix is a combined matrix of at least one of an identity matrix and at least one rotated identity matrix.
삭제delete 청구항 18에 있어서,
상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 과정은,
i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 상기 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행하되,
상기 산출하는 과정은, 상기 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하고, k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하는 것을 특징으로 하는 불규칙 반복 다상 누산 코드 복호화 장치.
19. The method of claim 18,
Based on the values of the second message, updating and providing the values of the first message to each bit,
calculating values of the first message for the bits included in the i-th group based on values of the second message for the bits included in the i-th group (where i is 1≤i≤G) For each group,
The calculating includes calculating forward state metrics and backward state metrics based on the values of the second message, and based on the product of a k th forward state metric and a k + 1 th backward state metric. And calculating a value of a first message for a k-th bit among the bits of the.
KR1020120014282A 2012-02-13 2012-02-13 Method for encoding and decoding irregular repeat multiple-state accumulate codes supportig variable length codeword and apparatuses using the same KR101267654B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120014282A KR101267654B1 (en) 2012-02-13 2012-02-13 Method for encoding and decoding irregular repeat multiple-state accumulate codes supportig variable length codeword and apparatuses using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120014282A KR101267654B1 (en) 2012-02-13 2012-02-13 Method for encoding and decoding irregular repeat multiple-state accumulate codes supportig variable length codeword and apparatuses using the same

Publications (1)

Publication Number Publication Date
KR101267654B1 true KR101267654B1 (en) 2013-05-24

Family

ID=48666893

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120014282A KR101267654B1 (en) 2012-02-13 2012-02-13 Method for encoding and decoding irregular repeat multiple-state accumulate codes supportig variable length codeword and apparatuses using the same

Country Status (1)

Country Link
KR (1) KR101267654B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006087792A1 (en) 2005-02-17 2006-08-24 Fujitsu Limited Encoding apparatus and encoding method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006087792A1 (en) 2005-02-17 2006-08-24 Fujitsu Limited Encoding apparatus and encoding method

Similar Documents

Publication Publication Date Title
US10326478B2 (en) Apparatus and method for encoding and decoding data in twisted polar code
JP4545793B2 (en) Apparatus and method for encoding / decoding block low density parity check code
JP4389373B2 (en) Decoder for iterative decoding of binary cyclic code
KR100594818B1 (en) A Decoding Apparatus of Low-Density Parity-Check Codes Using Sequential Decoding, and a method thereof
JP4519902B2 (en) Apparatus and method for encoding / decoding block low density parity check code having variable block length
US20050149840A1 (en) Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
US20040093549A1 (en) Encoding method using a low density parity check code with a column weight of two
KR100941680B1 (en) Apparatus and method for generating of quasi-cyclic low density parity check codes
KR20050118056A (en) Method and apparatus for channel encoding and decoding in mobile communication systems using multi-rate block ldpc codes
JP2000508849A (en) Method and apparatus for convolutional coding of data block and corresponding decoding method and apparatus
WO2005020500A1 (en) Apparatus and method for coding/decoding block low density parity check code in a mobile communication system
JP2009177775A (en) Low-density parity-check convolutional code (ldpc-cc) encoder and ldpc-cc decoder
US8103945B2 (en) Decoding method and decoding apparatus as well as program
WO2007034870A1 (en) Decoding device, and receiving device
KR101147768B1 (en) Apparatus and method for decoding using channel code
US20130007568A1 (en) Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
Grinchenko et al. Improving performance of multithreshold decoder over binary erasure channel
JP5523064B2 (en) Decoding apparatus and method
KR101267756B1 (en) Method for encoding and decoding rate-compatible irregular repeat multiple-state accumulate codes and apparatuses using the same
KR101267654B1 (en) Method for encoding and decoding irregular repeat multiple-state accumulate codes supportig variable length codeword and apparatuses using the same
JP2003152556A (en) Error-correcting and decoding device
KR101268061B1 (en) Encoing and decoding method using multiple state accumulate code
Gaurihar et al. Design and implementation of ldpc codes and turbo codes using fpga
Zolotarev et al. Usage of divergence within concatenated multithreshold decoding convolutional codes
KR101218658B1 (en) Encoing and decoding method using irregular repeat multiple state accumulate code

Legal Events

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

Payment date: 20160325

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180411

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee