KR101218658B1 - Encoing and decoding method using irregular repeat multiple state accumulate code - Google Patents

Encoing and decoding method using irregular repeat multiple state accumulate code Download PDF

Info

Publication number
KR101218658B1
KR101218658B1 KR1020110122204A KR20110122204A KR101218658B1 KR 101218658 B1 KR101218658 B1 KR 101218658B1 KR 1020110122204 A KR1020110122204 A KR 1020110122204A KR 20110122204 A KR20110122204 A KR 20110122204A KR 101218658 B1 KR101218658 B1 KR 101218658B1
Authority
KR
South Korea
Prior art keywords
state
bits
metric
bit
encoding
Prior art date
Application number
KR1020110122204A
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 KR1020110122204A priority Critical patent/KR101218658B1/en
Application granted granted Critical
Publication of KR101218658B1 publication Critical patent/KR101218658B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0043Realisations of complexity reduction techniques, e.g. use of look-up tables
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • 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/27Coding, 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 using interleaving techniques
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized 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/65Purpose and implementation aspects
    • H03M13/6575Implementations based on combinatorial logic, e.g. Boolean circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables

Abstract

PURPOSE: An encoding and decoding method using an irregularity multiple state accumulate code is provided to improve a calculation speed by providing error correction performance more improved a former coding method through an IRmA(Irregular Repeat multiple state Accumulate) code. CONSTITUTION: An encoder interleaves order of information bits repeated plural times(S110). The encoder initializes an encoding state(S120). The encoder initializes the encoding state every time an information bit line is encoded. The encoder selects partial information bits among the interleaved information bits(S130). The encoder changes the encoding state according to the selected information bits(S140). The encoder determines parity bits based on the changed information bits(S150). The encoder generates a code word based on the parity bits and the information bit line(S160). [Reference numerals] (AA) Start; (BB) End; (CC) Inputting all selected information bits?; (DD) Satisfied with the number of repetitions?; (S110) Repeating an information bit line and mixing a sequence; (S120) Initializing an encoding state; (S130) Selecting a part of the information bits among mixed information bits; (S142) Inputting one of the information bits among the selected information bits; (S144) Changing the encoding state according to the input bit; (S150) Determining parity bits according to the changed encoding state; (S160) Generating a code word based on the parity bits and the information bit line

Description

불규칙 반복 다상 누산 코드를 이용한 부호화 방법 및 복호화 방법{ENCOING AND DECODING METHOD USING IRREGULAR REPEAT MULTIPLE STATE ACCUMULATE CODE}ENCOING AND DECODING METHOD USING IRREGULAR REPEAT MULTIPLE STATE ACCUMULATE CODE}

개시된 기술은 데이터의 부호화(encoding) 및 복호화(decoding) 방법에 관한 것으로서, 보다 상세하지만 제한됨 없이는, 불규칙 반복 다상 누산 코드(Irregular Repeat multiple state Accumulate code:이하, IRmA 코드)를 이용한 부호화 방법 및 복호화 방법에 관한 것이다.본 명세서에서 제안하는 IRmA 코드는 부호화(encoding) 및 복호화(decoding) 연산 처리 속도를 빠르게 할 수 있고, 오류 정정 성능을 향상시킬 수 있다는 장점이 있다. 본 명세서에 개시된 기술은 다양한 범위에 응용될 수 있지만, 특히 강화된 프로세서를 가진 통신 단말기에서 병렬 프로세스를 통한 연산속도 향상, 및 저장 공간을 효율적으로 사용하는 데 활용될 수 있다.The disclosed technology relates to a method of encoding and decoding data, and more particularly, without limitation, an encoding method and a decoding method using an Irregular Repeat Multiple State Accumulate Code (hereinafter referred to as IRmA code). The IRmA code proposed in the present specification can speed up encoding and decoding operations, and improve error correction performance. Although the technology disclosed herein can be applied to various ranges, it can be utilized to improve the operation speed through parallel processes and to efficiently use storage space, especially in a communication terminal having an enhanced processor.

통신에 있어서 일반적으로 부호화(encoding)라 함은 송신 측에서 송신된 데이터가 통신 채널을 통하여 전송되는 과정에서 발생하는 신호의 일그러짐, 손실 등에 의한 오류에도 불구하고 수신 측에서 원래의 데이터를 복원할 수 있도록 하기 위해 송신 측에서 데이터를 처리 하는 과정을 의미한다. 원래의 데이터의 크기를 줄여서 전송과 저장 등을 용이하게 하는 소스 부호화(source coding)와 구분하여 이를 채널 부호화(channel coding)라 한다. 복호화(decoding)는 부호화되어 송신된 신호를 수신 측에서 원래의 데이터로 복원하는 과정이다. 부호화를 한다는 것은 통상 길이 K의 정보 시퀀스(정보 비트들)를 길이 N의 코드로 만드는 것이다. 신호 전송경로가 불안정한 무선 랜(LAN)이나 이동통신의 경우 코드의 길이 N을 정보시퀀스 길이 K 보다 상당히 크게 만든다. 즉, 부호화된 코드에는 전송되어야 할 데이터가 상당히 반복되어 있다. 양방향 통신에서, 정보 시퀀스를 포함하는 데이터를 전송함에 있어서 수신 측이 데이터를 복원하지 못하게 되면 송신 측은 데이터를 다시 전송한다. 이러한 데이터의 반복 전송은 전송속도를 떨어트리게 되므로, 이러한 반복 전송을 줄일 수 있는 채널 부호화 기술들이 연구되어 왔다.In communication, encoding is generally used to recover original data at the receiving end despite errors caused by distortion, loss, or the like of the data transmitted from the transmitting side through the communication channel. It means the process of processing the data in the sender to make sure that it is. This is called channel coding, which is distinguished from source coding that reduces the size of original data to facilitate transmission and storage. Decoding is a process of restoring the encoded and transmitted signal to the original data at the receiving side. To encode is usually to make an information sequence of length K (information bits) into a code of length N. In wireless LAN or mobile communication where signal transmission path is unstable, code length N is made significantly larger than information sequence length K. That is, the data to be transmitted is repeatedly repeated in the coded code. 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 repetitive transmission of such data causes a drop in transmission speed, channel coding techniques for reducing such repetitive transmission have been studied.

채널 부호화는 블록부호(block codes)와 콘볼루션 부호(convolution codes)로 크게 나누어진다. 블록부호는 K비트의 입력 정보(data sequences)를 N비트의 출력부호(codes)로 만들어내는 것이다. 콘볼루션 부호는 코드화시킬 때 현재 입력되는 신호에 과거의 일부 신호를 함께 활용하는 방식이다. 콘볼루션 부호를 기반으로 병렬 부호화와 인터리빙(interleaving)을 통해 성능을 더욱 발전시킨 것이 터보코드(turbo codes)이다. 터보코드(turbo codes)는 통신 채널의 비트 오류 확률(probability)을 최소로 유지하는 사상에 기반을 둔 오류 정정 부호 (ECC: error correction code)의 하나이다. 터보코드는 1993년 Berrou 등이 제안한 것으로 비교적 간단한 구조를 가지면서도 매우 우수한 오류 정정 성능을 제공하므로 고성능의 오류 정정 부호 방식이 요구되는 통신 시스템에 적용되고 있다. Channel coding is roughly divided into block codes and convolution codes. The block code generates K bits of data sequences into N bits of output codes. The convolution code is a method of using some signals from the past with the current input signal when coding. Turbo codes are further developed through parallel coding and interleaving based on convolutional codes. Turbo codes are one of error correction codes (ECC) based on the idea of keeping the bit error probability of a communication channel to a minimum. The turbo code, proposed by Berrou et al. In 1993, has a relatively simple structure and provides very good error correction performance, and has been applied to a communication system requiring a high performance error correction code method.

최근에는 저밀도 패리티 검사(LDPC : low-density parity-check) 코드가 통신 시스템에 적용되기 시작하였다. LDPC 코드는 길이 K의 정보시퀀스를 길이 N의 부호어로 만든다. 부호어 중 정보 시퀀스를 제외한 (N-K) 길이의 패리티 비트는 패리티 검사 행렬 (parity-check matrix) H를 사용하여 만들 수 있다. 패리티 검사 행렬 H는 크기가 (N-K) x N 이고, 1보다는 0이 많은 저밀도의 성질을 갖고 있다. LDPC 코드를 이용한 부호화 방법에서는 패리티 검사 행렬 H을 어떻게 만드는지가 가장 중요한 요소이다. 통상, 불규칙 LDPC 코드들은 규칙 LDPC 코드들보다 양호한 성능을 제공한다. 여기서 규칙적이라는 것은 LDPC 코드를 위하여 이용되는 패리티 검사 행렬 H의 모든 행들(rows)이 동일한 수의 1들을 가지고 H의 모든 열들(columns)이 동일한 수의 1들을 가진다는 것을 의미하며, 그렇지 않으면 LDPC 코드는 불규칙인 것으로 간주된다. 여기서 행 또는 열에서 1들의 수는 행 또는 열의 가중치라 칭한다. 블록 길이 104 이상의 불규칙 LDPC (low-density parity-check) 코드는 터보코드(turbo codes)보다 나은 성능을 보이는 것이 입증되었다. Recently, low-density parity-check (LDPC) codes have been applied to communication systems. The LDPC code makes an information sequence of length K a codeword of length N. A parity bit having a length of (NK) excluding an information sequence among codewords may be generated using a parity-check matrix H. The parity check matrix H is (NK) x N in size and has a low density property with more zeros than one. 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. Here the number of 1s in a row or column is referred to 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의 오류정정 능력은 강해지지만, 프로세서가 처리해야 하는 연산량 및 요구하는 저장 공간 또한 증가한다는 문제점이 있다. 이러한 문제점을 해결하기 위한 기술로 대한민국 공개특허 제10-2007-0058438호(무선 통신 시스템에서 저밀도 패리티 체크 코드를 이용한 부호화, 복호화 방법 및 그 장치)가 있다.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 increase. As a technique for solving such a problem, Korean Patent Laid-Open Publication No. 10-2007-0058438 (Encoding, Decoding Method and Apparatus Using Low Density Parity Check Code in a Wireless Communication System).

개시된 기술이 이루고자 하는 기술적 과제는 연산 속도 및 성능을 향상시킬 수 있는 부호화 방법 및 복호화 방법을 제공하는 데 있다. 또한, 병렬연산을 활용하면 연산 처리속도를 높일 수 있으므로, 개시된 기술에서는 병렬 연산에 적합한 코드를 제공하고자 한다.The technical problem to be achieved by the disclosed technology is to provide an encoding method and a decoding method that can improve the operation speed and performance. In addition, since the operation processing speed can be increased by using the parallel operation, the disclosed technology provides a code suitable for parallel operation.

상기의 기술적 과제를 이루기 위하여 개시된 기술의 제1 측면은 (a) 정보 비트열에 포함된 각 정보 비트들을 복수 회 반복하고, 상기 복수 회 반복 된 정보 비트들의 순서를 섞는 단계; (b) 부호화 상태를 초기화 하는 단계; (c) 상기 섞어진(interleaved) 정보 비트들 중 일부 선택된 복수의 정보 비트들에 따라 상기 부호화 상태를 변경하는 단계; (d) 상기 부호화 상태에 기반하여 패리티 비트들을 결정하는 단계; (e) 상기 섞어진 정보 비트들 중 이전에 선택되지 않은 복수의 정보 비트들을 일부 선택하여 상기 (c) 단계 및 상기 (d) 단계를 수행함을 적어도 1회 반복하는 단계; 및 (f) 상기 정보 비트열 및 상기 (d) 단계에서 결정된 패리티 비트들을 기반으로 부호어를 생성하는 단계를 포함하는 부호화 방법을 제공한다.In order to achieve the above technical problem, a first aspect of the disclosed technology comprises: (a) repeating each information bit included in an information bit string a plurality of times, and mixing the order of the repeated information bits; (b) initializing a coding state; (c) changing the encoding state according to some selected plurality of information bits of the interleaved information bits; (d) determining parity bits based on the encoding state; (e) repeating steps (c) and (d) at least once by selecting a plurality of previously unselected information bits among the mixed information bits; And (f) generating a codeword based on the information bit string and the parity bits determined in step (d).

상기의 기술적 과제를 이루기 위하여 개시된 기술의 제2 측면은 정보 비트열을 복수 회 반복하는 반복부; 상기 복수 회 반복 된 정보 비트들의 순서를 섞는 인터리버(interleaver); 부호화 상태를 초기화 하는 초기화부; 상기 인터리버로부터 제공된 정보 비트들 중 일부 정보 비트들을 선택하면서, 상기 선택된 정보 비트들에 따라 상기 부호화 상태를 변경하고, 상기 부호화 상태에 기반하여 패리티 비트들을 결정하는 과정을 반복하는 다상-누산 부호부; 및 상기 정보 비트열 및 상기 다상-누산 부호부로부터 제공되는 패리티 비트들을 기반으로 부호어를 생성하는 부호어 생성부를 포함하는 부호화 장치를 제공한다.A second aspect of the disclosed technology to achieve the above technical problem is a repeating unit for repeating the information bit string a plurality of times; An interleaver for mixing the information bits repeated the plurality of times; An initialization unit for initializing an encoding state; A polyphase-accumulated coder for selecting some of the information bits provided from the interleaver, changing the encoding state according to the selected information bits, and repeating the process of determining parity bits based on the encoding state; And a codeword generator that generates a codeword based on the parity bits provided from the information bit string and the polyphase-accumulated coder.

상기의 기술적 과제를 이루기 위하여 개시된 기술의 제3 측면은 (a) 정보 비트들과 패리티 비트들을 포함하는 부호화 신호를 수신하는 단계; (b) 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하는 단계; (c) 상기 부호화 비트들 중 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여 상기 각 비트가 상기 복수의 그룹들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 단계; (d) 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 단계; (e) 상기 (c) 단계 및 상기 (d) 단계를 수행함을 반복하는 단계; 및 (f) 마지막 반복에서 갱신된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 단계를 포함하는 복호화 방법을 제공한다.A third aspect of the disclosed technology to achieve the above technical problem comprises the steps of: (a) receiving an encoded signal comprising information bits and parity bits; (b) grouping coded bits included in the coded signal into G (G is an integer of 2 or more) groups; (c) for each bit of the encoded bits, 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 the likelihood (hereinafter, the value of a second message) of each bit provided to the plurality of groups; (d) updating the values of the first message based on the values of the second message provided by the G groups by using a two-dimensional BCJR algorithm based on a trellis representing an encoding state transition. Providing to; (e) repeating steps (c) and (d); And (f) determining the value of each bit according to the likelihood of each bit estimated based on the values of the first message updated in the last iteration.

개시된 기술의 실시 예들은 다음의 장점들을 포함하는 효과를 가질 수 있다. 다만, 개시된 기술의 실시 예들이 이를 전부 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다. Embodiments of the disclosed technique may have effects that include the following advantages. It should be understood, however, that the scope of the disclosed technology is not to be construed as limited thereby, since the embodiments of the disclosed technology are not meant to include all such embodiments.

개시된 기술의 일 실시 예에 따른 IRmA 코드는 종래의 코딩 방식(예컨대, IRA 코드)보다 향상된 오류 정정 성능을 보이면서도 연산속도가 빠르다는 장점이 있다. 또한, IRmA 코드를 이용한 부호화 또는 복호화 방법은 필요로 하는 저장 공간이 종래에 비하여 작으며, 병렬 프로세싱이 용이하여 하드웨어 구현에 유리하다는 장점이 있다.IRmA code according to an embodiment of the disclosed technology has an advantage that the operation speed is faster while improving the error correction performance than the conventional coding scheme (eg, IRA code). In addition, the encoding or decoding method using the IRmA code has the advantage that the storage space required is smaller than the conventional, and parallel processing is easy to be advantageous in the hardware implementation.

도 1은 개시된 기술의 일 실시예에 따라, 부호기(encoder)가 IRmA 코드를 이용하여 부호화하는 방법을 설명하기 위한 순서도이다.
도 2는 개시된 기술의 일 실시예에 따라, 부호화 상태가 변경되는 과정 및 패리티 비트들이 결정되는 과정을 설명하기 위한 도면이다.
도 3은 개시된 기술의 일 실시예에 따라, IRmA 코드를 이용하여 제공받은 정보 비트열을 부호화 하는 부호기를 설명하기 위한 블록도이다.
도 4는 도 3의 다상-누산 부호부(340)를 구체적으로 설명하기 위한 블록도이다.
도 5는 도 4의 상태 변경부(420)를 설명하기 위한 도면이다.
도 6은 개시된 기술의 일 실시예에 따라, IRmA 코드를 이용하여 복호화 하는 방법을 설명하기 위한 순서도이다.
도 7은 개시된 기술의 일 실시예에 따른 S640 단계를 구체적으로 설명하기 위한 순서도이다.
도 8은 도 2의 트렐리스를 단순화하여 표현한 도면이다.
1 is a flowchart illustrating a method of encoding by an encoder using an IRmA code, according to an embodiment of the disclosed technology.
2 is a diagram for describing 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 block diagram illustrating an encoder for encoding an information bit string provided using an IRmA code, according to an embodiment of the disclosed technology.
4 is a block diagram for describing in detail the polyphase-accumulated coder 340 of FIG. 3.
5 is a view for explaining the state change unit 420 of FIG.
6 is a flowchart illustrating a method of decoding using an IRmA code, according to an embodiment of the disclosed technology.
7 is a flowchart for describing in detail an operation S640 according to an embodiment of the disclosed technology.
FIG. 8 is a simplified representation of the trellis of FIG. 2.

개시된 기술에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 개시된 기술의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 개시된 기술의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.The description of the disclosed technique is merely an example for structural or functional explanation and the scope of the disclosed technology should not be construed as being limited by the embodiments described in the text. That is, the embodiments may be variously modified and may have various forms, and thus the scope of the disclosed technology should be understood to include equivalents capable of realizing the technical idea.

한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of the terms described in the present application should be understood as follows.

“제1”, “제2” 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.The terms " first ", " second ", and the like are used to distinguish one element from another and should not be limited by these terms. For example, 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.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" to another element, it may be directly connected to the other element, but there may be other elements in between. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that there are no other elements in between. On the other hand, other expressions describing the relationship between the components, such as "between" and "immediately between" or "neighboring to" and "directly neighboring to", should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions should be understood to include plural expressions unless the context clearly indicates otherwise, and terms such as "include" or "have" refer to features, numbers, steps, operations, components, parts, or parts thereof described. It is to be understood that the combination is intended to be present, but not to exclude in advance the possibility of the presence or addition of one or more other features or numbers, steps, operations, components, parts or combinations thereof.

각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.Each step may occur differently from the stated order unless the context clearly dictates the specific order. That is, each step may occur in the same order as described, may be performed substantially concurrently, or may be performed in reverse order.

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

종래의 부호화 및 복호화 방법은 많은 연산이 필요하고, 구현이 매우 복잡하며, 많은 저장 공간을 필요로 한다는 등 여러 가지 문제점을 가지고 있다. 불규칙 반복 누산(Irregular-Repeat-Accumulate: IRA) 코드는 터보코드 또는 LDPC 코드의 일종으로 분류되며 비교적 간단한 형태이면서도 용량한계에 근접하는 성능을 보인다. 불규칙 반복 누산(IRA) 코드는 불규칙 LDPC 코드보다 다소 성능이 떨어지지만 부호화가 간단하다는 장점이 있다. 그러나 IRA 코드를 사용하는 경우에도, 블록의 크기가 매우 크면, 연산이 복잡하다는 문제가 여전히 존재한다. 따라서, 종래의 부호화 및 복호화 방법에 비하여 연산 속도 및 오류 정정 성능을 향상시킬 수 있는 새로운 오류 정정 코드가 요구된다. 개시된 기술에서는 종래의 IRA 코드보다 향상된 오류 정정 성능을 보이면서도 연산속도가 빠르고, 병렬 프로세싱이 용이한 부호화 방식으로, IRmA 코드를 이용한 부호화 방법을 제안한다. 또한 개시된 기술에서는, 새로이 제안된 부호화 방식에 따른 코드를 복호화하는 방법으로, 2차원 BCJR 알고리즘을 이용한 복호화 방법을 새로이 제안한다.
Conventional encoding and decoding methods have a variety of problems, such as a lot of operations, implementation is very complicated, and requires a lot of storage space. Irregular-Repeat-Accumulate (IRA) codes are classified as turbo codes or LDPC codes and are relatively simple but show performance close to capacity limits. Irregular Repeated Accumulation (IRA) codes are somewhat inferior to irregular LDPC codes, but have the advantage of simple coding. However, even when using IRA code, there is still a problem that the operation is complicated if the block size is very large. Accordingly, there is a need for a new error correction code that can improve the operation speed and error correction performance as compared to the conventional encoding and decoding methods. The disclosed technology proposes an encoding method using an IRmA code as an encoding method that exhibits improved error correction performance than a conventional IRA code and has a faster operation speed and easier parallel processing. In addition, the disclosed technique newly proposes a decoding method using a two-dimensional BCJR algorithm as a method of decoding a code according to the newly proposed coding scheme.

도 1은 개시된 기술의 일 실시예에 따라, 부호기(encoder)가 IRmA 코드를 이용하여 부호화하는 방법을 설명하기 위한 순서도이다. 개시된 기술에 따르면, 부호기는 불규칙 반복(Irregular Repetition:이하, IR) 코드를 이용하여 정보 비트열 b k 로부터 정보 비트 블록을 생성한 뒤, 다상-누산(multiple state Accumulate:이하, mA) 코드를 이용하여 정보 비트 블록으로부터 정보 비트열 b k 에 패리티 비트들 b p 가 부가된 부호어를 생성한다. 이하, 도 1을 참조하여, 하나의 정보 비트열 b k 를 부호화하는 방법을 예를 들어 설명한다.1 is a flowchart illustrating a method of encoding by an encoder using an IRmA code, according to an embodiment of the disclosed technology. According to the disclosed technique, an encoder generates an information bit block from an information bit string b k using an Irregular Repetition (IR) code, and then uses a multiple state accumulate (mA) code. To generate a codeword having the parity bits b p added to the information bit string b k from the information bit block. Hereinafter, a method of encoding one information bit string b k will be described with reference to FIG. 1.

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

Figure 112011092411496-pat00001
이다. 여기서, K는 정보 비트열 b k 의 길이이다. 부호기는 정보 비트 블록의 정보 비트들의 순서를 섞는다. In step S110, the encoder repeats each information bit included in the information bit string a plurality of times, and shuffles the information bits repeated a plurality of times. The number of times q (j) of repetition of each information bit b j included in the information bit string may vary irregularly 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 112011092411496-pat00001
to be. Here, K is the length of the information bit string b k . The encoder mixes the order of 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. As an 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 of the 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 divides the L information bits constituting the information bit group into G groups, and then selects the 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 coding state each 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 plurality of information bits that have 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 N s states based on 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, when N s is 4, a process of changing an encoding state according to input bits 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 encoder transitions to one state determined according to a bit received from the 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 112011092411496-pat00002
Figure 112011092411496-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 112011092411496-pat00003
Figure 112011092411496-pat00003

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

Figure 112011092411496-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 112011092411496-pat00004
Means 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 d 0 , k to d N −1, k bits. As another example, d k May be the result of performing an XOR operation on odd bits, such as d 0 , k , d 2 , k , among d 0 , k to d N −1, k bits.

Figure 112011092411496-pat00005
Figure 112011092411496-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. The values a 1 to a N -1 may all have a value of 1, depending on the implementation, and some (eg, odd-numbered) may have a value of 0 for the remainder (eg, even-numbered). .

보다 구체적으로, 상태 수(Ns)가 4인 경우 중에서 도 2의 실시 예와 같이 상태가 천이되는 경우를 예를 들어 설명한다. k번째 반복에서의 현재 상태가 두 개의 비트 [d1 , kd0 ,k]로 표현되고, 그 다음 상태가 [d1 ,k+1d0 ,k+1]로 표현될 때, 각 상태를 나타내는 비트들 간의 관계는 수학식 4와 같이 나타낼 수 있다.More specifically, the case where the state transitions as in the embodiment of FIG. 2 from the case where the state number N s is 4 will be described with an example. When the current state in the k iterations 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 112011092411496-pat00006
Figure 112011092411496-pat00006

Figure 112011092411496-pat00007
Figure 112011092411496-pat00007

이때, 현재 상태 값이 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 expressed as in Equation 5 below.

Figure 112011092411496-pat00008
Figure 112011092411496-pat00008

미리 설정된 횟수 만큼 S142 단계 및 S144 단계가 반복된 후에는, S150 단계에서 부호기는 마지막 반복에 의하여 변경된 부호화 상태에 기반하여 패리티 비트들을 결정한다. 예컨대, i번째 반복의 경우, 부호기는 Ki번째 입력된 비트에 의해 Ki번째 변경된 부호화 상태에 기반하여 i번째 패리티 비트들을 결정한다. After the steps S142 and S144 are repeated a predetermined number of times, in step S150, the encoder determines parity bits based on the coding state changed by the last iteration. For example, in the case of the i-th iteration, the encoder on the basis of 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-accumulated code in which the number of N P is 2 and the state number N s is 4. However, 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 plurality of information bits among the mixed information bits (ie, bits of the information bit block), and performs 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. If G steps S130 to S150 are repeated G times, N p parity bit groups are generated.

S160 단계에서 부호기는 정보 비트열 및 S150 단계에서 결정된 패리티 비트들을 기반으로 부호어를 생성한다. 일례로, 부호어는 c=[b k b p ]와 같이, 정보 비트열 b k 와 패리티 비트들이 G개 결합된 비트열 b p 이 결합되어 생성될 수 있다. 일 실시예에 따라, b p 는 [bK +1,bK +2,...,bK + Np (i-1)+1,...,bK + Np (G-1)+ Np] 이며, bK + Np (i-1)+ 1는 i번째 반복에서 생성된 패리티 비트들 중 첫 번째 비트를 의미한다. 패리티 비트들을 G회 반복하여 생성한 경우, 부호율은

Figure 112011092411496-pat00009
이 된다.
In step S160, the encoder generates a codeword based on the information bit string and the parity bits determined in step S150. As an 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 ], b K + Np (i-1) + 1 means the first bit of the parity bits generated in the i-th iteration. If the parity bits are generated by repeating G times, the code rate is
Figure 112011092411496-pat00009
.

도 2는 개시된 기술의 일 실시예에 따라, 부호화 상태가 변경되는 과정 및 패리티 비트들이 결정되는 과정을 설명하기 위한 도면이다. 도 2는 앞에서 언급한 바와 같이 NS가 4이고, NP가 2이며, 수학식 4와 같이 상태가 천이되는 경우의 트렐리스(trellis) 다이어그램이다. 도 2에는 정보 비트가 입력됨에 따라 상태가 천이하는 반복적인 과정이 시간 흐름에 따라 펼쳐져 있다. 트렐리스 다이어그램은 가지들(branches) 및 상태들(states)을 포함한다. 가지들은 부호화 신호, 또는 부호화 신호에 따른 상태 천이를 나타낸다. 상태들은 부호화 신호에 대응하여 시간에 따라 천이하는 부호화 상태를 나타낸다. 도 2에서, 정보 비트의 입력에 따른 부호화 상태는 원형으로 표시되고, 각 상태 간을 연결하는 화살표 중 실선 화살표는 비트 0이 입력된 경우를, 점선 화살표는 비트 1이 입력된 경우를 나타낸다. 한 블록에 대한 부호화가 시작될 때 마다 부호화 상태는 상태 0으로 초기화된다. 이후, 정보 비트가 입력되면, 현재 상태 및 입력되는 비트의 값에 따라 다음 상태로 천이된다. 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으로 수렴하게 만드는 입력 비트들의 값으로 결정된다. 도 2를 참조하면, K1 번째 반복에서 변경된 부호화 상태가 상태 2인 경우, 비트 1이 입력되면 상태 1이 되고, 상태 1에서 다시 비트 1이 입력되면 상태 0(zero state)이 되는 것을 확인할 수 있다. 첫 번째 그룹에 대한 패리티 비트들이 결정되면, 두 번째 그룹의 정보 비트들을 순차적으로 입력 받으면서 전술한 과정을 반복한다. 이때, 첫 번째 그룹의 마지막 정보 비트의 입력에 의해 변경된 부호화 상태가 두 번째 그룹의 초기 부호화 상태가 된다. 두 번째 패리티 비트들이 결정되면, 마찬가지로 이후의 모든 그룹들에 대하여 전술한 과정이 반복된다. 이와 같이, 각 그룹의 정보 비트들이 하나씩 입력됨에 따라 변경되는 부호화 상태를 기반으로 패리티 비트 값이 결정되므로, 수신 측에서는 반대로 패리티 비트들을 이용하여 전송된 데이터의 오류가 있는지 여부를 판단할 수 있다.
2 is a diagram for describing 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. 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) 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. P Determines the parity bits of the 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. 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.

도 3은 개시된 기술의 일 실시예에 따라, IRmA 코드를 이용하여 제공받은 정보 비트열을 부호화 하는 부호기를 설명하기 위한 블록도이다. 도 3의 부호기(300)는 도 1의 부호화 방법에 따라 정보 비트열을 부호화 하는 부호기를 포함하므로 도 1에서 설명된 내용은 본 실시 예에서도 적용될 수 있다. 도 3을 참조하면, 부호기(300)는 반복부(310), 인터리버(320), 초기화부(330), 다상-누산 부호부(340) 및 부호어 생성부(350)를 포함한다. 3 is a block diagram illustrating an encoder for encoding an information bit string provided using an IRmA code, according to an embodiment of the disclosed technology. Since the encoder 300 of FIG. 3 includes an encoder that encodes an information bit string according to the encoding method of FIG. 1, the description of FIG. 1 may also be applied to the present embodiment. Referring to FIG. 3, the encoder 300 includes a repeater 310, an interleaver 320, an initializer 330, a polyphase-accumulated coder 340, and a codeword generator 350.

반복부(310)는 주어진 정보 비트열을 복수 회 반복한다. 일례로, 반복부(310)는 정보 비트열 bk의 i 번째 비트를 q(i)회 반복하는 것을 모든 정보 비트열에 대하여 수행하여 하나의 정보 비트 블록을 생성할 수 있다. 인터리버(320)는 복수 회 반복 된 정보 비트열을 구성하는 정보 비트들의 순서를 섞는다. 일례로, 인터리버(320)는 반복부(310)가 생성한 정보 비트 블록을 구성하는 비트들의 순서를 섞을 수 있다. 초기화부(330)는 부호화 상태를 초기화 한다. The repeater 310 repeats a given information bit string a plurality of times. For example, the repeater 310 may generate one information bit block by repeating the i-th bit of the information bit string b k q (i) times for all the information bit strings. The interleaver 320 mixes the order of the information bits constituting the information bit string repeated a plurality of times. For example, the interleaver 320 may mix the order of the bits constituting the information bit block generated by the repeater 310. The initialization unit 330 initializes the encoding state.

다상-누산 부호부(340)는 인터리버(320)로부터 제공된 정보 비트들 중 일부 정보 비트들을 선택하면서, 선택된 정보 비트들에 따라 부호화 상태를 변경하고, 변경된 부호화 상태에 기반하여 패리티 비트들을 결정하는 과정을 반복한다. 부호어 생성부(350)는 정보 비트열 b k 및 다상-누산 부호부(340)로부터 제공되는 패리티 비트들을 기반으로 부호어를 생성한다. The polyphase-accumulating coder 340 selects some information bits among the information bits provided from the interleaver 320, changes the encoding state according to the selected information bits, and determines parity bits based on the changed encoding state. Repeat. The codeword generator 350 performs information bit strings b k. And a codeword based on the parity bits provided from the polyphase-accumulated coder 340.

도 4는 도 3의 다상-누산 부호부(340)를 구체적으로 설명하기 위한 블록도이다. 일 실시예에 따른 다상-누산 부호부(340)는 그룹화부(410), 상태 변경부(420) 및 패리티 비트 결정부(430)를 포함한다. 그룹화부(410)는 인터리버(320)로부터 제공된 정보 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 나눈다. 상태 변경부(420)는 그룹들 중 순차적으로 선택되는 어느 하나의 그룹에 포함된 정보 비트들을 하나씩 입력 받으면서 부호화 상태를 변경하되, 상기 어느 하나의 그룹에 포함된 정보 비트들이 모두 입력된 때마다 변경된 부호화 상태를 출력한다. 패리티 비트 결정부(430)는 상태 변경부(420)로부터 제공되는 부호화 상태에 기반하여 상기 어느 하나의 그룹에 대한 패리티 비트들을 결정한다.4 is a block diagram for describing in detail the polyphase-accumulated coder 340 of FIG. 3. The polyphase-cumulative encoder 340 according to an embodiment includes a grouping unit 410, a state changing unit 420, and a parity bit determining unit 430. The grouping unit 410 divides the information bits provided from the interleaver 320 into groups of G (where G is an integer of 2 or more). The state changing unit 420 changes the encoding state while receiving the information bits included in any one group selected sequentially among the groups one by one, and changes each time all the information bits included in the one group are input. Output the encoding status. The parity bit determiner 430 determines parity bits for any one group based on the encoding state provided from the state changer 420.

도 5는 도 4의 상태 변경부(420)를 설명하기 위한 도면이다. 일 실시예에 따라, 상태 변경부(420)는 레지스터(510) 및 연산부(520)를 포함할 수 있다. 레지스터(510)는 부호화 상태를 나타내는 비트들을 저장한다. 연산부(520)는 부호기에 어느 하나의 비트가 입력되면, 부호기로 입력되는 비트(information bit, i) 및 부호화 상태를 나타내는 비트들(즉, 레지스터에 값이 저장된 비트들, do, d1,... 중 적어도 하나의 비트 간의 XOR(배타적 논리합) 연산을 수행한다. 일례로, 레지스터(510)에 저장된 모든 비트들과 입력 비트 간 XOR 연산할 수도 있으며, 다른 일례로 D0 레지스터에 저장된 비트와 입력 비트 간 XOR 연산할 수도 있다. 즉, 레지스터(510)의 각 저장공간 D0 내지 DN -1은 선택적으로 연산부(520)와 연결되어 저장된 비트 값을 연산부(520)에 제공한다. 일 실시 예에 따라, 레지스터(510)는 순환 시프트 레지스터(Recursive Shift Register)로서, 부호기에 정보 비트가 하나씩 입력될 때마다 저장된 비트들이 한 비트씩 하위 비트 자리로 이동하고, 연산부(520)에서 수행되는 연산 결과가 최상위 비트 자리로 입력됨으로써 부호화 상태를 나타내는 비트들을 갱신할 수 있다. 레지스터(510) 및 연산부(520)의 동작은 수학식 2 또는 수학식 3과 같이 표현될 수 있다.
5 is a view for explaining the state change unit 420 of FIG. According to an embodiment, the state change unit 420 may include a register 510 and an operation unit 520. The register 510 stores bits representing the coding state. When any one bit is input to the encoder, the operation unit 520 may include bits (information bit i) input to the encoder and bits indicating an encoding state (that is, bits having values stored in a register, d o , d 1 , Performs an XOR (exclusive OR) operation between at least one bit of ... For example, an XOR operation may be performed between all bits stored in the register 510 and an input bit, and as another example, a bit stored in a D 0 register. And an XOR operation between the input bit and the input bit, that is, each storage space D 0 of the register 510. D N -1 is selectively connected to the operation unit 520 and provides the stored bit value to the operation unit 520. According to an embodiment, the register 510 is a recursive shift register. When the information bits are input to the encoder one by one, the stored bits are shifted one bit by one bit, and the operation unit 520 executes the bits. The operation result is input to the most significant bit digit to update the bits indicating the encoding state. The operation of the register 510 and the operation unit 520 may be expressed as Equation 2 or Equation 3 below.

도 6은 개시된 기술의 일 실시예에 따라, IRmA 코드를 이용하여 복호화 하는 방법을 설명하기 위한 순서도이다. IRA 코드에서 패리티 체크를 위해 tanh 규칙을 사용하였던 것과 달리, 개시된 기술에 따른 IRmA 코드는, BCJR 알고리즘을 사용하여 복호화할 수 있다. 개시된 기술에서는 IRmA 코드의 복호화 방법으로 2차원 BCJR 알고리즘을 새로이 제안한다. 이하, 이해를 돕기 위하여 복호기가 도 2의 트렐리스 다이어그램에 따른 IRmA 코드를 이용하여 부호화된 신호를 수신한 경우 복호화하는 과정을 예를 들어 설명한다. 본 실시 예와 관련하여 IRA 복호화 방식이 동일하게 적용될 수 있는 부분은 간단히 언급되거나 생략될 수 있다. 6 is a flowchart illustrating a method of decoding using an IRmA code, according to an embodiment of the disclosed technology. Unlike using the tanh rule for parity check in the IRA code, the IRmA code according to the disclosed technique can be decoded using the BCJR algorithm. In the disclosed technology, a two-dimensional BCJR algorithm is newly proposed as a method of decoding an IRmA code. Hereinafter, for the sake of understanding, a process of decoding the decoder when receiving a signal encoded using the IRmA code according to the trellis diagram of FIG. 2 will be described as an example. In connection with the present embodiment, a part to which the IRA decryption scheme is equally applicable may be simply mentioned or omitted.

IRA의 복호화 과정에서와 같이, IRmA 코드는 Tanner Graph, 즉, 양 측으로 나뉘어진 노드들과 한 측의 노드에서 타 측의 노드로 연결된 가지(edge)들로 표현될 수 있다. 양 측의 노드들 중 한 측의 노드들은 부호어의 각 비트들을 의미하는 변수 노드들(variable nodes)이며, 타 측의 노드들은 각 그룹들을 의미하는 그룹 노드들이다. 가지를 따라 한 측의 노드에서 타 측의 노드로 메시지를 전달하고, 전달 받은 메시지를 기초로 전달할 메시지를 갱신하는 과정을 반복하는 것으로 복호화 과정을 설명할 수 있다. 메시지 전달 및 갱신 과정이 반복될수록 복호화의 정확도가 높아진다. 이때, 메시지는 부호화 신호 중 해당하는 비트의 가능도(likelihood)에 관한 정보를 포함한다. 가능도는 해당 비트가 1 또는 0 값을 가질 가능성의 정도를 의미한다. 가능도를 표현하는 지표로, 대수 가능도 비(Log Likelihood Ratio: LLR)가 사용되는 경우를 예를 들어 설명하나, 이에 제한되는 것은 아니다. 그룹 노드들에서는 2차원 BCJR 알고리즘을 이용하여 각 변수 노드에 전달하는 메시지를 갱신한다. 도 6을 참조하여 IRmA 코드를 이용한 복호화 방법을 설명하면 다음과 같다.As in the decoding process of the IRA, the IRmA code may be represented as 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 increases. 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. A decoding method using an IRmA code will now be described with reference to FIG. 6.

S610 단계에서, 복호기는 정보 비트들과 패리티 비트들을 포함하는 부호화 신호를 수신한다. S620 단계에서, 복호기는 부호화 신호에 포함된 부호화 비트들을 G(G는 2 이상의 정수)개의 그룹들로 그룹화한다. 예컨대, 복호기는 부호화 비트들을 G개의 그룹들 중 적어도 하나의 그룹과 매칭시킬 수 있다. 어느 하나의 그룹은 복수의 부호화 비트들을 포함하며, 또한, 어느 하나의 부호화 비트는 복수의 그룹들에 포함될 수 있다. i번째 그룹에 포함된 비트들의 수를 m(i)라 한다. m(i)개의 부호화 비트들은 Ki개의 정보 비트들과 NP개의 패리티 비트들로 구성될 수 있다. 부호화 비트들은 LDPC 코드에서 패리티 체크 행렬 H를 이용하는 것과 마찬가지로, 행렬을 이용하여, 부호화 과정에서의 반복(repetition) 및 인터리빙(interleaving) 과정을 표현할 수 있으며, 복호기는 이러한 행렬을 이용하여, 부호화 비트들을 그룹화 할 수 있다. 각 부호화 비트들을 나타내는 변수 노드들은 각 그룹들을 나타내는 그룹 노드 중 자신과 상응하는 적어도 하나의 그룹 노드와 연결된다. In step S610, the decoder receives an encoded signal including information bits and parity bits. In step S620, the decoder groups the coded bits included in the coded signal into groups of G (G is an integer of 2 or more). 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 encoded bits may represent a repetition and interleaving process in the encoding process using the matrix, similar to using the parity check matrix H in the LDPC code, and the decoder uses the matrix to encode the encoded bits. Can be grouped 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로 표현했을 때, l과 j의 관계는 j=π(l)로 표시한다. 즉, 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). When the order of m (i) variable nodes is expressed as l, the relationship between l and j is represented by j = π (l). 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, L j values are initialized to the value of U 0, j.

S630 단계에서, 복호기는 부호화 비트들 중 각 비트에 대하여, 각 비트가 포함된 복수의 그룹들로부터 제공되는 각 비트의 가능도(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 step S630, the decoder determines each variable node based on the likelihood of each bit provided from a plurality of groups including each bit, for each bit among the encoded bits. Estimates the likelihood (hereinafter, the value of the second message) of each bit that is 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 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 V j , σ (n) = V j , i provided to σ (n) = i-th group node may be calculated as in Equation 6 according to an embodiment. At this time, it is defined as σ (0) = 0.

Figure 112011092411496-pat00010
Figure 112011092411496-pat00010

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.

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

Figure 112011092411496-pat00011
개의 제2 메시지의 값들을 기초로, 제1 메시지의 값들을 갱신하여 각 변수 노드에 제공한다. 제1 메시지의 값은 각 그룹 노드들이 각 그룹 노드와 연결된 비트들에 대하여 추정하는 각 비트들의 가능도(likelihood)로서, 각 비트의 주변 비트들의 가능도에 기반하여 추정된다. 예컨대, Ui ,j는 i번째 그룹 노드가 j번째 변수 노드에 제공하는 제1 메시지의 값으로, G개의 그룹들이 제공받은
Figure 112011092411496-pat00012
개의 제2 메시지의 값들 중 j번째 변수 노드가 i번째 그룹노드에 제공한 제2 메시지 Vj ,i를 제외한 제2 메시지들을 기초로 추정되는 값이다. 이때, tanh 규칙을 사용하는 IRA 코드와 달리, 복호기는 BCJR 알고리즘을 이용하여 제1 메시지 값을 갱신할 수 있다. 복호기가 제1 메시지 값을 갱신하는 과정은 도 7을 참조하여 후술한다.In step S640, the decoder updates the values of the first message based on the values of the second message. According to an embodiment, the encoder is provided with G group nodes using a two-dimensional BCJR algorithm based on a trellis representing a coding state transition.
Figure 112011092411496-pat00011
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 that the i th group node provides to the j th variable node.
Figure 112011092411496-pat00012
Among the values of the second message, the j th variable node is estimated based on the second messages excluding the second message V j , i provided to the i th group node. In this case, unlike the IRA code using the tanh rule, the decoder may update the first message value using the BCJR algorithm. The process of updating the first message value by the decoder will be described later with reference to FIG. 7.

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

S660 단계에서, 복호기는 마지막 반복에서 갱신된 제1 메시지의 값들을 기초로 추정되는 각 비트(bj)의 가능도에 따라 각 비트(bj)의 값을 결정한다. 일 실시예에 따라, bj의 LLR 값인 Lj는 수학식 7과 같이 산출될 수 있다. In step S660, the decoder determines the value of each bit (b j), depending on also available for each bit (b j) is estimated on the basis of the value of the first update message from 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 112011092411496-pat00013
Figure 112011092411496-pat00013

복호기는 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.

도 7은 개시된 기술의 일 실시예에 따른 S640 단계를 구체적으로 설명하기 위한 순서도이다. 도 7에서 설명하는 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))은 패리티 비트에 상응하는 시간이다.7 is a flowchart for describing in detail an operation S640 according to an embodiment of the disclosed technology. According to the decoding method using the two-dimensional BCJR algorithm described in FIG. 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 , a 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. It is indicated by the 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 112011092411496-pat00014
개의 제2 메시지들에 2차원 BCJR 알고리즘을 적용하여
Figure 112011092411496-pat00015
개의 제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 is provided with G group nodes.
Figure 112011092411496-pat00014
Two-dimensional BCJR algorithm to two second messages
Figure 112011092411496-pat00015
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 branch state where the i-th auxiliary branch branches with 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, K i may be represented by m (i) -N P.

기존 BCJR 알고리즘에 따르면 수신 비트열을 기반으로 사후 확률을 계산하여 전송 비트의 연판정(soft decision)값을 얻을 수 있다. 시간 t에서의 사후 확률은 시간 t에서의 사후 천이 확률들의 합으로 계산될 수 있다. 시간 t에서의 사후 확률은 수학식 9와 같다. 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 9.

Figure 112011092411496-pat00016
Figure 112011092411496-pat00016

여기서, 사후 확률 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 복호 알고리즘에 따르면, 메인 가지에서의 사후 천이 확률과 보조 가지에서의 사후 천이 확률은 서로 다른 값을 기초로 산출된다. 시간 t일 때, 메인 가지에서의 사후 천이 확률은 수학식 10과 같이 산출되고, 보조 가지에서의 사후 천이 확률은 수학식 11과 같이 산출될 수 있다. 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. At time t, the post-transition probability in the main branch may be calculated as in Equation 10, and the post-transition probability in the auxiliary branch may be calculated as in Equation 11.

Figure 112011092411496-pat00017
Figure 112011092411496-pat00017

여기서, α(st)는 시간 t에서의 부호화 상태인 st의 포워드 상태 메트릭이며, β(st +1)는 시간 t+1에서의 부호화 상태인 st +1의 백워드 상태 메트릭이다. γ(st, st+1)는 st와 st+1 사이를 연결하는 가지의 가지 메트릭이다. 포워드 상태 메트릭 및 백워드 상태 메트릭은 정보 비트들을 나타내는 가지, 즉 메인 가지와 연결된 상태에서만 정의된다. γ(st, st +1)는 시간 t에서의 가지 메트릭으로, 수학식 10에서는 메인 가지에서의 가지 메트릭만이 사용된다. 시간 t에서의 가지 메트릭의 값은 시간 t에 상응하는 제2 메시지의 값을 기초로 결정될 수 있다.Here, α (s t ) is a forward state metric of s t which is an encoding state at time t, and β (s t +1 ) is a backward state metric of s t +1 which is an encoding state at time t + 1. . γ (s t , s t + 1 ) is the branch metric of the branch connecting 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. In Equation 10, only the branch metric at the main branch is used. The value of the branch metric at time t may be determined based on the value of the second message corresponding to time t.

Figure 112011092411496-pat00018
Figure 112011092411496-pat00018

여기서, μ(st)와 λ(st +1)는 패리티 비트를 나타내는 가지와 연결된 상태에 관한 상태 메트릭으로 각각 시간 t에서의 아웃워드 상태 메트릭, 시간 t+1에서의 인워드 상태 메트릭이라 한다. 아웃워드 상태 메트릭과 인워드 상태 메트릭은 패리티 비트들을 나타내는 가지, 즉 보조 가지와 연결된 상태에서만 정의된다. γ(st, st+1)는 시간 t에서의 가지 메트릭으로, 수학식 11에서는 보조 가지에서의 가지 메트릭만이 사용된다. 또한, 시간 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 the branch metric at time t, and only the branch metric at the secondary branch is used in Equation (11). 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.

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

트렐리스 다이어그램에 기반하여 복호화를 수행하는 순서를 도 8을 참조하여 설명한다. 도 8은 도 2의 트렐리스를 단순화하여 표현한 도면이다. 도 2의 다이어그램은 각 시간 t까지 입력될 수 있는 비트들의 모든 경우와, 시간 t까지 입력된 비트들에 따라 시간 t에서 부호화 상태가 가질 수 있는 모든 상태를 표시하였다. 도 8의 다이어그램은 각 시간 t까지 입력되는 비트와 시간 t에서의 부호화 상태를 각각 하나의 화살표와 하나의 원으로 간단히 표시하였다. 도 8의 화살표는 0 또는 1의 값을 가지며, 각각의 원은 상태 0에서 상태 3까지의 값을 가질 수 있다. 도 8에 표시된 바와 같이, 개시된 기술에 따른 2차원 BCJR 알고리즘에서는 인워드 반복연산(inward recursion), 포워드 반복연산(forward recursion), 백워드 반복연산(backward recursion), 아웃워드 반복연산(outward recursion) 순으로 복호화를 진행한다. 이때, 실시예에 따라, 포워드 반복연산과 백워드 반복연산의 순서는 바뀔 수 있다. 인워드 반복연산은 각 보조 가지의 최종 상태에서부터 인워드 상태 메트릭 값을 역순으로 산출하는 과정이다. 포워드 반복연산은 메인 가지의 첫 번째 상태에서부터 포워드 상태 메트릭 값을 순차적으로 산출하되, 분기 상태에서는 인워드 상태 메트릭의 값을 반영하여 포워드 상태 메트릭을 산출하는 과정이다. 백워드 반복연산은 포워드 반복연산과 반대의 순서로 백워드 상태 메트릭 값을 산출하되, 포워드 반복연산과 마찬가지로, 분기 상태에서는 인워드 상태 메트릭의 값을 반영하여 백워드 상태 메트릭을 산출하는 과정이다. 아웃워드 반복연산은 메인 가지와 보조 가지가 분기되는 시점의 분기 상태에서부터 인워드 반복 연산과 반대의 순서로 아웃워드 상태 메트릭 값을 순차적으로 산출하는 과정이다. 이와 같은 순서에 따라 각 상태 메트릭을 산출하는 방법을 구체적으로 설명한다.A procedure of performing decoding based on the trellis diagram will be described with reference to FIG. 8. FIG. 8 is a simplified representation of the trellis of FIG. 2. The diagram of FIG. 2 shows all cases of bits that can be input up to each time t and all states that an encoding state can have at time t according to the bits input up to time t. In the diagram of FIG. 8, a bit and an encoding state at a time t inputted to each time t are simply represented by one arrow and one circle, respectively. The arrows in FIG. 8 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. 8, 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 또는 도 8의 트렐리스 다이어그램에 기반하여, 제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 8. Once the branch metrics are calculated, the decoder calculates each state metric in the order as described above. Once 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 메시지의 값들은 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 BCJR algorithm and correspond to the pre-LLR values of 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 .

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

Figure 112011092411496-pat00019
Figure 112011092411496-pat00019

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

S710 단계에서, 복호기는 G개의 그룹들이 포함하는 전체 부호화 비트들 중 패리티 비트들에 상응하는 가지 메트릭의 값들을 기초로 인워드 상태 메트릭들을 산출한다. 인워드 상태 메트릭은 보조 가지와 연결된 상태에 대한 상태 메트릭으로, 다음 상태의 인워드 상태 메트릭을 기초로 역순으로 산출된다. 인워드 상태 메트릭은 패리티 비트들을 나타내는 각 보조 가지 별로 산출된다. 인워드 상태 메트릭은 각 보조 가지의 최종 수렴 상태 바로 이전의 상태 s(i.l)(이때, l=m(i))에서부터 메인 가지와 보조 가지가 분기되는 시점에서의 분기 상태 s(i,l)(이때, l=Ki+1 또는 l=m(i)-NP+1)까지 수학식 13과 같이 역순으로 산출된다. In operation S710, 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 and secondary branches diverge from the state s (il) (where l = m (i)) immediately 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 13.

Figure 112011092411496-pat00020
Figure 112011092411496-pat00020

각 보조 가지는 특정 상태, 예를 들어 상태 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.

모든 보조 가지들에 대하여 인워드 상태 메트릭을 산출한 뒤, S720 단계에서, 복호기는 G개의 그룹들이 포함하는 부호화 비트들 중 정보 비트들에 상응하는 가지 메트릭의 값들 및 인워드 상태 메트릭들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출한다. 포워드 상태 메트릭은 메인 가지(210)와 연결된 상태에 대한 상태 메트릭으로, 이전 상태의 포워드 상태 메트릭을 기초로 순차적으로 산출된다. 백워드 상태 메트릭은 메인 가지(210)와 연결된 상태에 대한 상태 메트릭으로, 다음 상태의 백워드 상태 메트릭을 기초로 역순으로 산출된다. 포워드 상태 메트릭은 포워드 반복 연산에 의하여 t=(i,1)에서부터 t=(i,Ki+1)까지 각 상태에 대하여 순차적으로 계산된다. 또한, i값이 1인 때부터 i값이 G일 때 까지 i가 하나씩 증가하며 계산이 반복된다. 각 정보 비트 그룹의 첫 번째 비트에 상응하는 상태인 s(i,1)의 포워드 상태 메트릭은 수학식 14와 같은 조건을 이용하여 산출할 수 있다.After calculating the forward state metric for all the auxiliary branches, in step S720, the decoder forwards the values of the branch metric corresponding to the information bits among the encoded bits included in the G groups and the forward state metrics. 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. In addition, 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 (14).

Figure 112011092411496-pat00021
Figure 112011092411496-pat00021

이때, 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 112011092411496-pat00022
이다.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 112011092411496-pat00022
to be.

각 정보 비트 그룹에서 분기 상태를 제외한, 이후의 포워드 상태 메트릭은 수학식 15와 같이 산출된다. 즉, α(st=a)는 임의의 상태 값을 가지는 st -1로부터 상태 값이 a인 st로 향하는 모든 가지에 대하여, 각 가지에 해당하는 가지 메트릭과 해당하는 st -1의 포워드 상태 메트릭의 곱들의 합으로 산출된다. 이때, t는 매 i에 대하여 (i,2),...,(i,Ki) 값을 가질 수 있다. The forward state metric after the branch state in each group of information bits is calculated as shown in Equation 15 below. 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 112011092411496-pat00023
Figure 112011092411496-pat00023

마지막으로, 각 정보 비트 그룹에서 분기 상태의 포워드 상태 메트릭은 수학식 16과 같이 인워드 상태 메트릭의 값이 반영되어 산출된다. 즉, 분기 상태는 보조 가지와 메인 가지가 교차하는 지점이므로, 분기 상태에서 포워드 상태 메트릭은 보조 가지로부터 산출되어온 인워드 상태 메트릭 값과 메인 가지로부터 산출되어온 포워드 상태 메트릭 값을 곱한 값으로 산출된다.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 16. 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 112011092411496-pat00024
Figure 112011092411496-pat00024

이때, 분기 시점인 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)에서의 상태에 대한 백워드 상태 메트릭은 수학식 21과 같은 조건을 이용하여 산출할 수 있다.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 shown in Equation 21.

Figure 112011092411496-pat00025
Figure 112011092411496-pat00025

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

Figure 112011092411496-pat00026
이다.Therefore, the state at t = (i, K i +1) is the same as the state at t = (i + 1,1),
Figure 112011092411496-pat00026
to be.

각 정보 비트 그룹에서 분기 상태를 제외한, 나머지 백워드 상태 메트릭은 수학식 18과 같이 산출된다. 즉, β(st=a)는 임의의 상태 값을 가지는 st +1로부터 상태 값이 a인 st로 향하는 모든 역방향 가지에 대하여, 각 가지에 해당하는 가지 메트릭과 해당하는 st +1의 백워드 상태 메트릭의 곱들의 합으로 산출된다. 이때, t는 매 i에 대하여 (i,Ki),...,(i,2) 값을 가질 수 있다. Except for the branch state in each group of information bits, the remaining backward state metrics are calculated as shown in Equation 18. 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 112011092411496-pat00027
Figure 112011092411496-pat00027

마지막으로, 각 정보 비트 그룹에서 분기 상태의 포워드 상태 메트릭은 수학식 19와 같이 인워드 상태 메트릭의 값이 반영되어 산출된다. 즉, 분기 상태는 보조 가지와 메인 가지가 교차하는 지점이므로, 분기 상태에서 백워드 상태 메트릭은 보조 가지로부터 산출되어온 인워드 상태 메트릭 값과 메인 가지로부터 산출되어온 백워드 상태 메트릭 값을 곱한 값으로 산출된다. 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 19. 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 112011092411496-pat00028
Figure 112011092411496-pat00028

S730 단계에서, 복호기는 G개의 그룹들이 포함하는 부호화 비트들 중 상기 패리티 비트들에 상응하는 가지 메트릭의 값들을 기초로 아웃워드 상태 메트릭들을 산출한다. 아웃워드 상태 메트릭은 보조 가지(220)와 연결된 상태에 대한 상태 메트릭으로, 이전 상태의 아웃워드 상태 메트릭 및 패리티 비트들에 상응하는 가지 메트릭들을 기초로 순차적으로 산출된다. In operation S730, the decoder calculates outward state metrics based on values of a branch metric corresponding to the parity bits among the 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.

각 분기 상태에서의 아웃워드 상태 메트릭은 각 분기 상태에서의 포워드 상태 메트릭과 백워드 상태 메트릭의 곱과 같다. 이를 수식으로 표현하면 수학식 20과 같다. 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. If this is expressed as an equation, Equation 20 is obtained.

Figure 112011092411496-pat00029
Figure 112011092411496-pat00029

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

Figure 112011092411496-pat00030
Figure 112011092411496-pat00030

상태 메트릭들이 산출되면, 복호기는 정보 비트들 또는 패리티 비트들에 상응하는 변수 노드로 향하는 제1 메시지의 값들을 갱신할 수 있다(S740). 복호기는 포워드 상태 메트릭들 및 백워드 상태 메트릭들의 값을 기초로 정보 비트들에 상응하는 변수 노드로 향하는 제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 (S740). 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 the outward state metrics. Update the values of the first message directed to the variable node corresponding to the parity bits.

다만, 위에서 언급한 바와 같이, 각 비트들에 대한 제1 메시지의 값들은 자신 이외의 비트들의 LLR 값(extrinsic information)만을 반영하여 갱신되기 때문에, 사후 천이 확률을 산출함에 있어, 수학식 10, 11과 달리 가지 메트릭의 값을 곱하지 않는다. 즉, 제1 메시지 값들을 갱신하는데 사용되는 사후 천이 확률은 수학식 22 및 수학식 23과 같이 산출된다. 일 실시예에 따라, i번째 그룹 노드가 j=π(n)번째 변수 노드(이때, n은 1≤n≤m(i) 인 정수)에 제공하는 제1 메시지 Ui ,π(n)의 값은 j=π(n)번째 변수 노드가 정보 비트에 대응되는 경우, 수학식 22와 같이, j=π(n)번째 변수 노드가 패리티 비트에 대응되는 경우, 수학식 23과 같이 산출되는 사후 천이 확률들의 합으로 산출될 수 있다. 제1 메시지 Ui ,π(n)의 값은, BCJR 알고리즘에서 수학식 12 및 수학식 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 10 and 11 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 Equation 22 and Equation 23. 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 22 when the j = π (n) th variable node corresponds to the information bit, and is calculated as shown in Equation 23 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 the LLR of the posterior probability P (d t ) of the bit corresponding to t = (i, n) calculated according to Equations 12 and 7 in the BCJR algorithm. It can be determined by the converted value.

Figure 112011092411496-pat00031
Figure 112011092411496-pat00031

Figure 112011092411496-pat00032
Figure 112011092411496-pat00032

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

Figure 112011092411496-pat00033
Figure 112011092411496-pat00033

이상, BCJR 알고리즘에 의하여 제2 메시지의 값 V로부터 제1 메시지의 값 U를 산출하는 연산은 간단히 수학식 25와 같이 표현할 수 있다. As described above, an operation of calculating the value U of the first message from the value V of the second message by the BCJR algorithm may be simply expressed as in Equation 25.

Figure 112011092411496-pat00034
Figure 112011092411496-pat00034

이러한 개시된 기술인 시스템 및 장치는 이해를 돕기 위하여 도면에 도시된 실시 예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 개시된 기술의 진정한 기술적 보호범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.While the system and apparatus disclosed herein have been described with reference to the embodiments shown in the drawings for purposes of clarity of understanding, they are illustrative only and various modifications and equivalent embodiments can be made by those skilled in the art. I will understand that. Accordingly, the true scope of protection of the disclosed technology should be determined by the appended claims.

Claims (18)

(a) 정보 비트열에 포함된 각 정보 비트들을 복수 회 반복하고, 상기 복수 회 반복 된 정보 비트들의 순서를 섞는 단계;
(b) 부호화 상태를 초기화 하는 단계;
(c) 상기 섞어진(interleaved) 정보 비트들 중 일부 선택된 복수의 정보 비트들에 따라 상기 부호화 상태를 변경하는 단계;
(d) 상기 부호화 상태에 기반하여 패리티 비트들을 결정하는 단계;
(e) 상기 섞어진 정보 비트들 중 이전에 선택되지 않은 복수의 정보 비트들을 일부 선택하여 상기 (c) 단계 및 상기 (d) 단계를 수행함을 적어도 1회 반복하는 단계; 및
(f) 상기 정보 비트열 및 상기 (d) 단계에서 결정된 패리티 비트들을 기반으로 부호어를 생성하는 단계를 포함하는 부호화 방법.
(a) repeating each information bit included in the information bit string a plurality of times and mixing the order of the repeated information bits;
(b) initializing a coding state;
(c) changing the encoding state according to some selected plurality of information bits of the interleaved information bits;
(d) determining parity bits based on the encoding state;
(e) repeating steps (c) and (d) at least once by selecting a plurality of previously unselected information bits among the mixed information bits; And
(f) generating a codeword based on the information bit string and the parity bits determined in step (d).
제1항에 있어서, 상기 (d) 단계는,
상기 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 입력 비트들의 값을 상기 패리티 비트들로 결정하는 부호화 방법.
The method of claim 1, wherein step (d)
And determining the values of the input bits as the parity bits to cause the encoding state to converge to a preset state.
제1항에 있어서, 상기 (d) 단계는,
상기 부호화 상태가 초기 부호화 상태로 수렴하도록 하는 입력 비트들의 값을 상기 패리티 비트들로 결정하는 부호화 방법.
The method of claim 1, wherein step (d)
And determining the values of the input bits as the parity bits to cause the encoding state to converge to an initial encoding state.
제1항에 있어서, 상기 (c) 단계는,
(c1) 상기 선택된 복수의 정보 비트들 중 이전에 입력되지 않은 어느 하나의 비트를 입력 받는 단계;
(c2) 상기 입력 받는 비트에 따라 상기 부호화 상태가 현재 상태에서 다음 상태로 변경되는 단계;
(c3) 상기 입력 받는 단계 및 상기 변경되는 단계를 반복하는 단계를 포함하는 부호화 방법.
The method of claim 1, wherein the step (c)
(c1) receiving any one of the selected plurality of information bits not previously input;
(c2) changing the encoding state from the current state to the next state according to the received bit;
(c3) an encoding method comprising repeating the receiving step and the changing step.
제4항에 있어서, 상기 (c2) 단계는,
상기 부호화 상태가 상기 현재 상태에 상응하는 두 개의 상태들 중 상기 입력 받는 비트에 따라 결정되는 어느 하나의 상태로 변경되는 단계인 부호화 방법.
The method of claim 4, wherein step (c2) comprises:
And the encoding state is changed to one of two states corresponding to the current bit among two states corresponding to the current state.
제4항에 있어서, 상기 (c) 단계가 한 번 수행되는 동안 k번째 반복하여 수행되는 상기 (c2) 단계에서,
상기 현재 상태가 N 개의 비트 [dN -1,k…d0 ,k]로 표현될 때, 상기 다음 상태는,
dn ,k+1=dn +1,k (여기서, n=0,...,N-2)
Figure 112011092411496-pat00035
(여기서, ik는 현재의 반복에서 입력 받은 정보 비트,
Figure 112011092411496-pat00036
는 배타적 논리합(exclusive OR, XOR) 연산을 의미하고, dk 는 d0 ,k 내지 dN -1,k중 선택되는 적어도 하나의 비트를 XOR 연산한 결과 값을 나타냄)에 따라 결정된 N 개의 비트 [dN -1,k+1…d0 ,k+1]로 표현되는 부호화 방법.
The method of claim 4, wherein in step (c2), the step (c) is performed repeatedly for the kth while the step (c) is performed once.
The current state is N bits [d N -1, k ... d 0 , k ], the next state is
d n , k + 1 = d n + 1, k (where n = 0, ..., N-2)
Figure 112011092411496-pat00035
Where i k is the information bit received in the current iteration,
Figure 112011092411496-pat00036
Means an exclusive OR (XOR) operation, and d k Denotes a value obtained by performing XOR operation on at least one bit selected from d 0 , k to d N -1, k ), wherein N bits [d N −1, k + 1 ... d 0 , k + 1 ].
제4항에 있어서, 상기 (c) 단계가 한 번 수행되는 동안 k번째 반복하여 수행되는 상기 (c2) 단계에서,
상기 복수 회 반복 중 k번째 반복에서의 상기 현재 상태가 N 개의 비트 [dN -1,k…d0 ,k]로 표현될 때,
dn ,k+1=dn +1,k (여기서, n=0,...,N-2)
Figure 112011092411496-pat00037
(여기서, ik는 현재의 반복에서 입력 받은 정보 비트,
Figure 112011092411496-pat00038
는 배타적 논리합(exclusive OR, XOR) 연산을 의미하고, a1 내지 aN -1은 0 또는 1의 값을 가짐)에 따라 결정된 N 개의 비트 [dN -1,k+1…d0 ,k+1]로 표현되는 부호화 방법.
The method of claim 4, wherein in step (c2), the step (c) is performed repeatedly for the kth while the step (c) is performed once.
The current state at the kth iteration of the plurality of iterations is N bits [d N −1, k ... d 0 , k ]
d n , k + 1 = d n + 1, k (where n = 0, ..., N-2)
Figure 112011092411496-pat00037
Where i k is the information bit received in the current iteration,
Figure 112011092411496-pat00038
Denotes an exclusive OR (XOR) operation, wherein a 1 to a N -1 has a value of 0 or 1, and N bits [d N −1, k + 1 ... d 0 , k + 1 ].
정보 비트열을 복수 회 반복하는 반복부;
상기 복수 회 반복 된 정보 비트들의 순서를 섞는 인터리버(interleaver);
부호화 상태를 초기화 하는 초기화부;
상기 인터리버로부터 제공된 정보 비트들 중 일부 정보 비트들을 선택하면서, 상기 선택된 정보 비트들에 따라 상기 부호화 상태를 변경하고, 상기 부호화 상태에 기반하여 패리티 비트들을 결정하는 과정을 반복하는 다상-누산 부호부; 및
상기 정보 비트열 및 상기 다상-누산 부호부로부터 제공되는 패리티 비트들을 기반으로 부호어를 생성하는 부호어 생성부를 포함하는 부호화 장치.
A repeater which repeats the information bit string a plurality of times;
An interleaver for mixing the information bits repeated the plurality of times;
An initialization unit for initializing an encoding state;
A polyphase-accumulated coder for selecting some of the information bits provided from the interleaver, changing the encoding state according to the selected information bits, and repeating the process of determining parity bits based on the encoding state; And
And a codeword generator for generating a codeword based on the parity bits provided from the information bit string and the polyphase-accumulated coder.
제8항에 있어서, 상기 다상-누산 부호부는,
상기 인터리버로부터 제공된 정보 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 나누는 그룹화부;
상기 그룹들 중 순차적으로 선택되는 어느 하나의 그룹에 포함된 정보 비트들을 하나씩 입력 받으면서 부호화 상태를 변경하되, 상기 어느 하나의 그룹에 포함된 정보 비트들이 모두 입력된 때마다 변경된 부호화 상태를 출력하는 상태 변경부; 및
상기 상태 변경부로부터 제공되는 부호화 상태에 기반하여 상기 어느 하나의 그룹에 대한 패리티 비트들을 결정하는 패리티 비트 결정부를 포함하는 부호화 장치.
The method according to claim 8, wherein the polyphase-cumulative code portion,
A grouping unit dividing the information bits provided from the interleaver into G groups (G is an integer of 2 or more);
A state in which the encoding state is changed while receiving the information bits included in any one group selected sequentially among the groups one by one, and outputs a changed encoding state whenever all the information bits included in the one group are input. Change section; And
And a parity bit determiner configured to determine parity bits for the one group based on an encoding state provided from the state changer.
제9항에 있어서, 상기 상태 변경부는,
상기 부호화 상태를 나타내는 비트들을 저장하는 레지스터; 및
입력되는 비트 및 상기 부호화 상태를 나타내는 비트들 중 적어도 하나의 비트 간의 XOR(배타적 논리합) 연산을 수행하는 연산부를 포함하되,
상기 레지스터는 비트가 하나씩 입력될 때마다 저장된 비트들이 한 비트씩 하위 비트 자리로 이동하고, 상기 연산부에서 수행되는 연산 결과가 최 상위 비트 자리로 입력되어 상기 부호화 상태를 나타내는 비트들을 갱신하는 순환 시프트 레지스터(Recursive Shift Register)인 부호화 장치.
The method of claim 9, wherein the state change unit,
A register for storing bits representing the encoding state; And
And an operation unit configured to perform an XOR operation between at least one of the input bits and the bits indicating the encoding state.
When the bits are input one by one, the stored bits move by one bit to the lower bit positions, and the operation result performed by the operation unit is input to the highest bit position to update the bits indicating the encoding state. Encoder that is a (Recursive Shift Register).
(a) 정보 비트들과 패리티 비트들을 포함하는 부호화 신호를 수신하는 단계;
(b) 상기 부호화 신호에 포함된 부호화 비트들을 G(상기 G는 2 이상의 정수)개의 그룹들로 그룹화하는 단계;
(c) 상기 부호화 비트들 중 각 비트에 대하여, 상기 각 비트가 포함된 복수의 그룹들로부터 제공되는 상기 각 비트의 가능도(likelihood, 이하 제1 메시지의 값)들에 기반하여 상기 각 비트가 상기 복수의 그룹들에 제공하는 상기 각 비트의 가능도(이하, 제2 메시지의 값)들을 추정하는 단계;
(d) 부호화 상태 천이를 나타내는 트렐리스에 기반한 2차원 BCJR 알고리즘을 이용하여, 상기 G개의 그룹들이 제공받은 상기 제2 메시지의 값들을 기초로, 상기 제1 메시지의 값들을 갱신하여 상기 각 비트에 제공하는 단계;
(e) 상기 (c) 단계 및 상기 (d) 단계를 수행함을 반복하는 단계; 및
(f) 마지막 반복에서 갱신된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 단계를 포함하는 복호화 방법.
(a) receiving an encoded signal comprising information bits and parity bits;
(b) grouping coded bits included in the coded signal into G (G is an integer of 2 or more) groups;
(c) for each bit of the encoded bits, 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 the likelihood (hereinafter, the value of a second message) of each bit provided to the plurality of groups;
(d) updating the values of the first message based on the values of the second message provided by the G groups by using a two-dimensional BCJR algorithm based on a trellis representing an encoding state transition. Providing to;
(e) repeating steps (c) and (d); And
(f) determining the value of each bit according to the likelihood of each bit estimated based on the values of the first message updated in the last iteration.
제11항에 있어서, 상기 (d) 단계는,
(d1) 상기 G개의 그룹들이 포함하는 부호화 비트들 중 상기 패리티 비트들에 상응하는 제2 메시지의 값들을 기초로 인워드 상태 메트릭들을 산출하는 단계;
(d2) 상기 G개의 그룹들이 포함하는 부호화 비트들 중 상기 정보 비트들에 상응하는 제2 메시지의 값들 및 상기 인워드 상태 메트릭들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계;
(d3) 상기 G개의 그룹들이 포함하는 부호화 비트들 중 상기 패리티 비트들에 상응하는 제2 메시지의 값들을 기초로 아웃워드 상태 메트릭들을 산출하는 단계; 및
(d4) 상기 포워드 상태 메트릭들 및 상기 백워드 상태 메트릭들의 값을 기초로 상기 정보 비트들에 상응하는 제1 메시지의 값들을 갱신하고, 상기 인워드 상태 메트릭들 및 상기 아웃워드 상태 메트릭들의 값을 기초로 상기 패리티 비트들에 상응하는 제1 메시지의 값들을 갱신하는 단계를 포함하는 복호화 방법.
The method of claim 11, wherein step (d)
(d1) calculating inward state metrics based on values of a second message corresponding to the parity bits among the encoded bits included in the G groups;
calculating forward state metrics and backward state metrics based on values of a second message corresponding to the information bits among the encoded bits included in the G groups and the forward state metrics;
(d3) calculating outward state metrics based on values of a second message corresponding to the parity bits among the encoded bits included in the G groups; And
(d4) update values of a first message corresponding to the information bits based on the values of the forward state metrics and the backward state metrics, and determine the values of the forward state metrics and the outward state metrics. Updating values of a first message corresponding to the parity bits on a basis.
제12항에 있어서,
상기 트렐리스는 메인 가지와, 메인 가지에서 분기되는 보조 가지를 포함하며,
상기 인워드 상태 메트릭은 상기 보조 가지와 연결된 상태에 대한 상태 메트릭으로, 다음 상태의 인워드 상태 메트릭을 기초로 역순으로 산출되는 상태 메트릭이고,
상기 포워드 상태 메트릭은 상기 메인 가지와 연결된 상태에 대한 상태 메트릭으로, 이전 상태의 포워드 상태 메트릭을 기초로 순차적으로 산출되는 상태 메트릭이고,
상기 백워드 상태 메트릭은 상기 메인 가지와 연결된 상태에 대한 상태 메트릭으로, 다음 상태의 백워드 상태 메트릭을 기초로 역순으로 산출되는 상태 메트릭이고,
상기 아웃워드 상태 메트릭은 상기 보조 가지와 연결된 상태에 대한 상태 메트릭으로, 이전 상태의 아웃워드 상태 메트릭을 기초로 순차적으로 산출되는 상태 메트릭인 복호화 방법.
The method of claim 12,
The trellis includes a main branch and an auxiliary branch branched from the main branch,
The inward status metric is a status metric for a status associated with the auxiliary branch, and is a status metric calculated in reverse order based on the inward status metric of a next status.
The forward state metric is a state metric for a state connected to the main branch, and is a state metric sequentially calculated based on a forward state metric of a previous state.
The backward state metric is a state metric for a state connected to the main branch, and is a state metric calculated in reverse order based on the backward state metric of a next state.
The outward state metric is a state metric for a state associated with the auxiliary branch, and is a state metric sequentially calculated based on the outward state metric of a previous state.
제12항에 있어서, 상기 (d1) 단계는,
Figure 112011092411496-pat00039
(여기서, λ(s(i,l))는 상태 s(i,l)에 대한 인워드 상태 메트릭, s(i,l)는 i번째 그룹의 l번째 비트에 상응하는 상태, γ(s(i,l), s(i,l+1))은 상태 s(i,l)와 s(i,l+1)를 연결하는 가지의 가지 메트릭으로 i번째 그룹의 l번째 비트로부터 제공받은 제2 메시지의 값에 기반하여 산출됨, l은 m(i)부터 m(i)-NP+1까지의 정수, m(i)는 i번째 그룹에 포함된 비트들의 수, NP는 i번째 그룹에 포함된 패리티 비트들의 수를 나타냄)에 따라 인워드 상태 매트릭들을 산출하는 단계를 포함하는 복호화 방법.
The method of claim 12, wherein the step (d1),
Figure 112011092411496-pat00039
(Where λ (s (i, l) ) is the inward state metric for state s (i, l) , s (i, l) is the state corresponding to the lth bit of the i th group, γ (s ( i, l) , s (i, l + 1) ) is a branch metric that connects states s (i, l) and s (i, l + 1) to the first 2 is calculated based on the value of the message, l is an integer from m (i) to m (i) -N P +1, m (i) is the number of bits in the i-th group, N P is the i-th Calculating the inward status metrics according to the number of parity bits included in the group).
제12항에 있어서, 상기 (d2) 단계는,
l=1인 경우,
Figure 112011092411496-pat00040

l=Ki+1인 경우,
Figure 112011092411496-pat00041
(여기서, α(s(i,l))는 상태 s(i,l)에 대한 포워드 상태 메트릭, s(i,l)는 i번째 그룹의 l번째 비트에 상응하는 상태, Ki는 i번째 그룹에 포함된 정보 비트들의 수, λ(s(i,l))는 상태 s(i,l)에 대한 인워드 상태 메트릭, γ(s(i,l-1),s(i,l))는 s(i,l-1)와 s(i,l)를 연결하는 가지의 가지 메트릭으로 i번째 그룹의 l-1번째 비트로부터 제공받은 제2 메시지의 값에 기반하여 산출됨,)에 따라 각 그룹에서의 첫 번째 포워드 상태 메트릭 및 마지막 포워드 상태 메트릭을 산출하는 단계를 포함하는 복호화 방법.
The method of claim 12, wherein the step (d2),
if l = 1,
Figure 112011092411496-pat00040

If l = K i +1,
Figure 112011092411496-pat00041
(Where α (s (i, l) ) is the forward state metric for state s (i, l) , s (i, l) corresponds to the l-th bit of the i-th group, and K i is the i-th The number of information bits included in the group, λ (s (i, l) ) is an inward state metric for state s (i, l) , γ (s (i, l-1) , s (i, l) ) Is a branch metric that connects s (i, l-1) and s (i, l) , calculated based on the value of the second message provided from the l-1th bits of the i th group, Calculating a first forward state metric and a last forward state metric in each group accordingly.
제12항에 있어서, 상기 (d2) 단계는,
l=Ki+1인 경우,
Figure 112011092411496-pat00042

l=1인 경우,
Figure 112011092411496-pat00043

(이때, β(s(i,l))는 상태 s(i,l)에 대한 백워드 상태 메트릭, s(i,l)는 i번째 그룹의 l번째 비트에 상응하는 상태, Ki는 i번째 그룹에 포함된 정보 비트들의 수, λ(s(i,l))는 상태 s(i,l)에 대한 인워드 상태 메트릭, γ(s(i,l),s(i,l+1))는 s(i,l)와 s(i,l+1)를 연결하는 가지의 가지 메트릭으로 i번째 그룹의 l번째 비트로부터 제공받은 제2 메시지의 값에 기반하여 산출됨)에 따라 i번째 그룹에서의 마지막 백워드 상태 메트릭 및 첫 번째 백워드 상태 메트릭을 산출하는 단계를 포함하는 복호화 방법.
The method of claim 12, wherein the step (d2),
If l = K i +1,
Figure 112011092411496-pat00042

if l = 1,
Figure 112011092411496-pat00043

Where β (s (i, l) is the backward state metric for state s (i, l) , s (i, l) is the state corresponding to the lth bit of the i-th group, and K i is i The number of information bits included in the first group, λ (s (i, l) ) is an inward state metric for state s (i, l) , γ (s (i, l) , s (i, l + 1 ) ) Is a branch metric that connects s (i, l) and s (i, l + 1) and is calculated based on the value of the second message provided from the lth bit of the i th group). Calculating a last backward state metric and a first backward state metric in the first group.
제12항에 있어서, 상기 (d3) 단계는,
l=Ki+1인 경우,
Figure 112011092411496-pat00044

l값이 Ki+2 이상 m(i) 이하의 정수인 경우,
Figure 112011092411496-pat00045
(이때, μ(s(i,l)), α(s(i,l)), β(s(i,l))는 각각 상태 s(i,l)의 아웃워드 상태 메트릭, 포워드 상태 메트릭, 백워드 상태 메트릭, s(i,l)는 i번째 그룹의 l번째 비트에 상응하는 상태, γ(s(i,l-1), s(i,l))은 s(i,l-1)과 s(i,l)를 연결하는 가지의 가지 메트릭으로 i번째 그룹의 l-1번째 비트로부터 제공받은 제2 메시지의 값에 기반하여 산출됨, m(i)는 i번째 그룹에 포함된 비트들의 수, Ki는 i번째 그룹에 포함된 정보 비트들의 수를 나타냄)에 따라 아웃워드 상태 매트릭들을 산출하는 단계를 포함하는 복호화 방법.
The method of claim 12, wherein step (d3),
If l = K i +1,
Figure 112011092411496-pat00044

If l is an integer greater than or equal to K i +2 and less than or equal to m (i),
Figure 112011092411496-pat00045
Where μ (s (i, l) ), α (s (i, l) ), and β (s (i, l) ) are the forward state metric and forward state metric of state s (i, l), respectively. The backward state metric, s (i, l) is the state corresponding to the lth bit of the i-th group, γ (s (i, l-1) , s (i, l) ) is s (i, l- 1) is a branch metric that connects s (i, l) and is calculated based on the value of the second message provided from the l-1 th bit of the i th group, and m (i) is included in the i th group Calculating outward status metrics according to the number of bits, K i represents the number of information bits included in the i th group).
제12항에 있어서, 상기 (d4) 단계는,
상기 정보 비트에 상응하는 제1 메시지의 값들은,
Figure 112011092411496-pat00046
(이때, α(s(i,l))는 상태 s(i,l)에 대한 포워드 상태 메트릭, β(s(i,l+1))는 상태 s(i,l+1)에 대한 백워드 상태 메트릭을 의미함)에 따라 산출되는 외적(extrinsic) 사후 천이 확률 σ을 기초로 갱신되고,
상기 패리티 비트들에 상응하는 제1 메시지의 값들은,
Figure 112011092411496-pat00047
(이때, μ(s(i,l))는 상태 s(i,l)에 대한 아웃워드 상태 메트릭, λ(s(i,l+1))는 상태 s(i,l+1)에 대한 인워드 상태 메트릭을 의미함)에 따라 산출되는 외적(extrinsic) 사후 천이 확률 σ을 기초로 갱신되는 단계를 포함하는 복호화 방법.
The method of claim 12, wherein the step (d4),
The values of the first message corresponding to the information bits are
Figure 112011092411496-pat00046
(At this time, α (s (i, l)) is the state s (i, l) forward state metric, β (s (i, l + 1) on) is back to state s (i, l + 1) The extrinsic post-transition probability σ calculated according to the word state metric),
The values of the first message corresponding to the parity bits are
Figure 112011092411496-pat00047
Where μ (s (i, l) ) is an outward state metric for state s (i, l) , and λ (s (i, l + 1) ) for state s (i, l + 1) Updating based on an extrinsic post-transition probability σ calculated according to an inward state metric).
KR1020110122204A 2011-11-22 2011-11-22 Encoing and decoding method using irregular repeat multiple state accumulate code KR101218658B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110122204A KR101218658B1 (en) 2011-11-22 2011-11-22 Encoing and decoding method using irregular repeat multiple state accumulate code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110122204A KR101218658B1 (en) 2011-11-22 2011-11-22 Encoing and decoding method using irregular repeat multiple state accumulate code

Publications (1)

Publication Number Publication Date
KR101218658B1 true KR101218658B1 (en) 2013-01-04

Family

ID=47841200

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110122204A KR101218658B1 (en) 2011-11-22 2011-11-22 Encoing and decoding method using irregular repeat multiple state accumulate code

Country Status (1)

Country Link
KR (1) KR101218658B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070058438A (en) * 2004-06-24 2007-06-08 엘지전자 주식회사 A method and apparatus for encoding and decoding data using low density parity check code in a wireless communication system
US20080016426A1 (en) 2006-06-29 2008-01-17 Nec Laboratories America, Inc. Low-Complexity High-Performance Low-Rate Communications Codes
US20090083604A1 (en) 2004-04-02 2009-03-26 Wen Tong Ldpc encoders, decoders, systems and methods
US20100287439A1 (en) 2007-09-14 2010-11-11 France Telecom Encoding method and device to determine tldpc codes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083604A1 (en) 2004-04-02 2009-03-26 Wen Tong Ldpc encoders, decoders, systems and methods
KR20070058438A (en) * 2004-06-24 2007-06-08 엘지전자 주식회사 A method and apparatus for encoding and decoding data using low density parity check code in a wireless communication system
US20080016426A1 (en) 2006-06-29 2008-01-17 Nec Laboratories America, Inc. Low-Complexity High-Performance Low-Rate Communications Codes
US20100287439A1 (en) 2007-09-14 2010-11-11 France Telecom Encoding method and device to determine tldpc codes

Similar Documents

Publication Publication Date Title
JP5354979B2 (en) Low density parity check convolutional code (LDPC-CC) encoder and LDPC-CC decoder
US10326478B2 (en) Apparatus and method for encoding and decoding data in twisted polar code
US6751770B2 (en) Decoder for iterative decoding of binary cyclic codes
KR100594818B1 (en) A Decoding Apparatus of Low-Density Parity-Check Codes Using Sequential Decoding, and a method thereof
US7774689B2 (en) Encoding and decoding methods and systems
US20070260772A1 (en) Apparatus and method for transmitting/receiving data in a communication system
US8930793B2 (en) Method of communicating signal data in GNSS using LDPC convolution codes and a system thereof
JP2008035524A (en) Apparatus and method for decoding block of symbols using iterative belief propagation
JP2009170952A (en) Encoder, decoder, encoding method, and decoding method
KR101657912B1 (en) Method of Decoding Non-Binary Low Density Parity Check Codes
JP2009201084A (en) Coder and transmission apparatus
JP4202161B2 (en) Encoding device and decoding device
KR101268061B1 (en) Encoing and decoding method using multiple state accumulate code
KR101218658B1 (en) Encoing and decoding method using irregular repeat multiple state accumulate code
US7392455B2 (en) Error correction coding method using at least twice a same elementary code, coding method, corresponding coding and decoding devices
Ullah et al. Performance improvement of multi-stage threshold decoding with difference register
JP5385944B2 (en) Decoder
KR101267756B1 (en) Method for encoding and decoding rate-compatible irregular repeat multiple-state accumulate codes and apparatuses using the same
KR101268060B1 (en) Method for encoing and decoding using unitive state-check code
KR101257776B1 (en) Method and apparatus for encoing using state-check code
KR101227328B1 (en) Method for encoding and decoding rate-compatible unitive state-check 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
KR102635444B1 (en) Decoder, operating method thereof and memory system including the decoder for decoding non-binary low-density parity check code
KR101221062B1 (en) Encoding and decoding method using variable length usc code
안형배 Partially Information Coupled Polar Codes with Coupling Depth J

Legal Events

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

Payment date: 20151005

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171011

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181108

Year of fee payment: 7