KR20130043723A - Encoing and decoding method using multiple state accumulate code - Google Patents

Encoing and decoding method using multiple state accumulate code Download PDF

Info

Publication number
KR20130043723A
KR20130043723A KR1020110107780A KR20110107780A KR20130043723A KR 20130043723 A KR20130043723 A KR 20130043723A KR 1020110107780 A KR1020110107780 A KR 1020110107780A KR 20110107780 A KR20110107780 A KR 20110107780A KR 20130043723 A KR20130043723 A KR 20130043723A
Authority
KR
South Korea
Prior art keywords
state
metric
bits
bit
branch
Prior art date
Application number
KR1020110107780A
Other languages
Korean (ko)
Other versions
KR101268061B1 (en
Inventor
정규혁
Original Assignee
단국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 단국대학교 산학협력단 filed Critical 단국대학교 산학협력단
Priority to KR1020110107780A priority Critical patent/KR101268061B1/en
Publication of KR20130043723A publication Critical patent/KR20130043723A/en
Application granted granted Critical
Publication of KR101268061B1 publication Critical patent/KR101268061B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • 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
    • 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

Landscapes

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

Abstract

PURPOSE: An encoding and decoding method using a multiphase accumulation code is provided to increase an encoding and decoding calculation processing speed and to improve error correction performance. CONSTITUTION: An encoder initializes an encoding state whenever an encoding process about data bits of a single block starts(S110). The encoder modifies an encoding state according to the data bits inputted about each group(S120). If the data bits are inputted, the encoder determines i-th parity bits based on the Ki-th modified encoding state by the Ki-th inputted bit(S130). The encoder repeats the S120 stage and the S130 stage for the next group by increasing i-value(S140). The encoder generates a code word based on the data bits inputted in the S120 stage and the parity bits determined in the S130 stage. [Reference numerals] (AA) Start; (BB) Repeat count is over Ki?; (CC) End; (S110) Initialize an encoding state, Initialize i value(i=0); (S122) Input one of data bits in an i-th group; (S124) Change the encoding state according to the input bit; (S130) Determine i-th parity bits according to the changed encoding state; (S140) Increase the i value by one; (S150) Generate a code word by combining the data bits and the parity bits

Description

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

개시된 기술은 데이터의 부호화(encoding) 방법에 관한 것으로서, 보다 상세하지만 제한됨 없이는, 다상 누산 코드(multiple state accumulate code)를 이용한 부호화 방법 및 복호화 방법에 관한 것이다.본 명세서에서 새로이 제안하는 다상-누산 코드는 부호화(encoding) 및 복호화(decoding) 연산 처리 속도를 빠르게 할 수 있고, 오류 정정 성능을 향상시킬 수 있다는 장점이 있다. 본 명세서에 개시된 기술은 다양한 범위에 응용될 수 있지만, 특히 강화된 프로세서를 가진 통신 단말기에서 병렬 프로세스를 통한 연산속도 향상, 및 저장 공간을 효율적으로 사용하는 데 활용될 수 있다.The disclosed technique relates to a method of encoding data, and more particularly, but not limited to, an encoding method and a decoding method using a multiple state accumulate code. A polyphase-accumulated code newly proposed herein. Has the advantage that the encoding and decoding operation processing speed can be increased, and error correction performance can be improved. 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).

불규칙 반복 누산(Irregular-Repeat-Accumulate: IRA) 코드는 터보코드 또는 LDPC 코드의 일종으로 분류되며 비교적 간단한 형태이면서도 용량한계에 근접하는 성능을 보인다. 불규칙 반복 누산(IRA) 코드는 불규칙 LDPC 코드보다 다소 성능이 떨어지지만 부호화가 간단하다는 장점이 있다. IRA 코드에서 사용되는 에러 정정 코드인 누산 코드(Accumulate Code)는, 누산기(accumulator)를 이용하여 간단한 인코딩을 가능하게 한다. 그러나 Accumulate 코드를 사용하는 경우에도, 블록의 크기가 매우 크면, 연산이 복잡하다는 문제가 여전히 존재한다. 따라서, 종래의 부호화 방법에 비하여 연산 속도 및 오류 정정 성능을 향상시킬 수 있는 새로운 오류 정정 코드가 요구된다.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. An Accumulate Code, an error correction code used in an IRA code, enables simple encoding using an accumulator. However, even when using Accumulate code, there is still a problem that the operation is complicated if the block size is very large. Therefore, a new error correction code that can improve the operation speed and error correction performance as compared to the conventional coding method is required.

개시된 기술이 이루고자 하는 기술적 과제는 연산 속도 및 성능을 향상시킬 수 있는 부호화 방법 및 복호화 방법을 제공하는 데 있다. 또한, 병렬연산을 활용하면 연산 처리속도를 높일 수 있으므로, 개시된 기술에서는 병렬 연산에 적합한 코드를 제공하고자 한다.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) 상기 부호화 상태에 기반하여 패리티 비트들을 결정하는 단계; (d) 새로이 입력되는 정보 비트들을 이용하여 상기 (b) 단계 및 상기 (c) 단계를 수행함을 적어도 1회 반복하는 단계; 및 (e) 상기 (b) 단계 내지 상기 (d) 단계에서 입력된 정보 비트들 및 결정된 패리티 비트들을 기반으로 부호어를 생성하는 단계를 포함하는 부호화 방법을 제공한다.In order to achieve the above technical problem, a first aspect of the disclosed technology comprises: (a) initializing a coding state; (b) changing the encoding state according to the input information bits; (c) determining parity bits based on the encoding state; (d) repeating steps (b) and (c) at least once using newly input information bits; And (e) generating a codeword based on the information bits and the parity bits determined in the steps (b) to (d).

상기의 기술적 과제를 이루기 위하여 개시된 기술의 제2 측면은 (a)정보 비트들과 패리티 비트들을 포함하는 비트 그룹이 복수 개 결합된 부호화 신호를 수신하는 단계; (b)상기 부호화 신호를 나타내는 가지들(branches) 및 상기 부호화 신호에 대응하여 시간에 따라 천이하는 부호화 상태를 나타내는 상태들(states)을 포함하는 트렐리스에 기반하여, 수신된 신호로부터 가지 메트릭(metric)을 산출하는 단계; (c)상기 부호화 신호 중 상기 패리티 비트들에 상응하는 가지 메트릭들을 기초로 인워드 상태 메트릭들을 산출하는 단계; (d)상기 부호화 신호 중 상기 정보 비트들에 상응하는 가지 메트릭들 및 상기 인워드 상태 메트릭들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계; 및 (e)상기 가지 메트릭들, 포워드 상태 메트릭들 및 백워드 상태 메트릭들의 값을 기초로 상기 정보 비트들의 값을 결정하는 단계를 포함하는 복호화 방법을 제공한다.In order to achieve the above technical problem, a second aspect of the disclosed technology comprises: (a) receiving an encoded signal having a plurality of bit groups including information bits and parity bits; (b) a branch metric from a received signal, based on a trellis comprising branches representing the coded signal and states representing a coded state that transitions in time corresponding to the coded signal calculating a metric; (c) calculating inward state metrics based on branch metrics corresponding to the parity bits in the coded signal; (d) calculating forward state metrics and backward state metrics based on branch metrics corresponding to the information bits of the coded signal and the forward state metrics; And (e) determining a value of the information bits based on values of the branch metrics, forward state metrics, and backward state metrics.

개시된 기술의 실시 예들은 다음의 장점들을 포함하는 효과를 가질 수 있다. 다만, 개시된 기술의 실시 예들이 이를 전부 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다. 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.

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

도 1은 개시된 기술의 일 실시예에 따라, 부호기(encoder)가 다상 누산 코드를 이용하여 부호화하는 방법을 설명하기 위한 순서도이다.
도 2는 개시된 기술의 일 실시예에 따라, 부호화 상태가 변경되는 과정 및 패리티 비트들이 결정되는 과정을 설명하기 위한 도면이다.
도 3은 개시된 기술의 일 실시예에 따라 부호기의 레지스터 값이 변경되는 과정을 설명하기 위한 도면이다.
도 4는 개시된 기술의 일 실시예에 따라, 부호화 상태 수가 4인 경우 상태 결정부를 설명하기 위한 도면이다.
도 5는 개시된 기술의 일 실시예에 따라, 다상-누산 코드를 이용하여 복호화 하는 방법을 설명하기 위한 순서도이다.
도 6은 트렐리스 다이어그램에 기반하여 복호화를 수행하는 순서를 설명하기 위한 도면이다.
1 is a flowchart illustrating a method of encoding by an encoder using a polyphase accumulating 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 diagram illustrating a process of changing a register value of an encoder according to an embodiment of the disclosed technology.
4 is a diagram for describing a state determiner when the number of encoded states is 4 according to an embodiment of the disclosed technology.
5 is a flowchart for describing a method of decoding using a polyphase-accumulated code, according to an embodiment of the disclosed technology.
FIG. 6 is a diagram for describing an order of decoding based on a trellis diagram.

개시된 기술에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 개시된 기술의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 개시된 기술의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.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. .

종래의 부호화 및 복호화 방법은 많은 연산이 필요하고, 구현이 매우 복잡하며, 많은 저장 공간을 필요로 한다는 등 여러 가지 문제점을 가지고 있다. 개시된 기술에서는 종래의 누산(Accumulate) 코드보다 향상된 오류 정정 성능을 보이면서도 연산속도가 빠르고, 병렬 프로세싱이 용이한 부호화 방식으로, 다상-누산 코드를 이용한 부호화 방법을 제안한다. 또한 개시된 기술에서는, 새로이 제안된 부호화 방식에 따른 코드를 복호화하는 방법으로, 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. The disclosed technology proposes an encoding method using a polyphase-accumulated code as an encoding method that exhibits an improved error correction performance than a conventional accumulate code and has a faster operation speed and easier parallel processing. In addition, in the disclosed technology, a two-dimensional BCJR decoding method is newly proposed as a method of decoding a code according to a newly proposed coding scheme. Hereinafter, an encoding and decoding method proposed by the disclosed technology will be described with reference to the drawings.

도 1은 개시된 기술의 일 실시예에 따라, 부호기(encoder)가 다상 누산 코드를 이용하여 부호화하는 방법을 설명하기 위한 순서도이다. 설명의 편의를 위하여, 본 명세서에서는 부호기가 블록 단위로 정보 비트들을 부호화하되, 한 블록의 정보 비트들에 대한 패리티 비트들을 생성하기 위해 부호기에 입력되는 정보 비트들은 G개의 그룹으로 나뉘어져 있으며 각 그룹에 포함된 정보 비트들이 순차적으로 부호기에 입력된다고 가정한다. i번째 그룹에 포함된 정보 비트들의 수는 Ki로 표시한다. 부호기는 각 그룹에 포함된 Ki개의 정보 비트들이 모두 입력될 때마다 NP개의 패리티 비트들을 생성한다. 한 블록은 G개의 그룹을 포함하므로 부호기는 Ki개의 정보 비트들을 입력 받아 NP개의 패리티 비트들을 생성하는 과정을 G회 반복한다. i번째 그룹의 l번째 정보 비트가 입력되는 시간 t는 편의상 t=(i,l)로 표시한다. 한 블록의 정보 비트들에 대한 부호화 과정을 수행할 때 마다 입력되는 정보 비트의 수 K는

Figure pat00001
개 이고, 한 블록에 대하여 누적 생성되는 패리티 비트들의 수는
Figure pat00002
개이다. 이러한 경우, 다상 누산 코드의 부호율은
Figure pat00003
이 된다. 부호기는 입력된 정보 비트들과 누적하여 생성된 패리티 비트들을 함께 전송함으로써 정보 비트들의 전송 오류를 정정할 수 있도록 한다. 이와 같은 다상-누산 코드를 이용하면 효율적으로 부호화를 할 수 있다는 장점이 있다. 즉, 개시된 기술에 따르면 종래의 부호화 방법에 비하여 부호화 속도를 향상시킬 수 있으며 오류 정정 성능이 향상된다는 장점이 있다. 한 번에 결정되는 패리티 비트들의 수(NP)는 2 이상의 정수로서, 오류정정 성능, 부호화 속도, 연산 속도, 필요로 하는 저장 공간 등을 고려하여 적절한 수로 결정될 수 있다. 이하, NP의 수가 2이고, 상태수 Ns가 4인 4상-누산 코드의 경우를 중심으로 설명하나, 이에 한정되는 것은 아니며 NP는 3, 4 등의 정수가 될 수 있으며, Ns는 8, 16등의 정수가 될 수 있다.
1 is a flowchart illustrating a method of encoding by an encoder using a polyphase accumulating code according to an embodiment of the disclosed technology. For convenience of description, in the present specification, the encoder encodes the information bits in units of blocks, but the information bits input to the encoder to generate parity bits for the information bits of one block are divided into G groups. It is assumed that the included information bits are sequentially input to the encoder. The number of information bits included in the i-th group is denoted by K i . The encoder generates N P parity bits whenever all K i information bits included in each group are input. Since a block includes G groups, the encoder repeats the process of generating N P parity bits by receiving K i information bits. The time t at which the l-th information bit of the i-th group is input is represented by t = (i, l) for convenience. The number K of information bits input each time the encoding process on the information bits of one block is performed is
Figure pat00001
, And the number of parity bits cumulatively generated for one block is
Figure pat00002
Dog. In this case, the code rate of the multiphase accumulation code is
Figure pat00003
. The encoder can correct the transmission error of the information bits by transmitting the input information bits together with the parity bits generated cumulatively. The use of such a polyphase-accumulated code has the advantage of being able to encode efficiently. That is, according to the disclosed technology, coding speed can be improved and error correction performance can be improved as compared with the conventional coding method. The number of parity bits (N P ) determined at one time is an integer of 2 or more, and may be determined as an appropriate number in consideration of error correction performance, encoding speed, arithmetic speed, required storage space, and the like. Hereinafter, a description will be given of a four-phase-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.

도 1을 참조하여 부호기가 한 그룹의 정보 비트들을 부호화 하는 과정을 구체적으로 설명한다. 부호기는 한 블록의 정보 비트들에 대한 부호화 과정이 시작될 때 마다, 즉, t=(1,1)일 때 마다 부호화 상태를 초기화 한다(S110). 부호기는 한 블록에 대하여 첫 번째 그룹의 첫 비트가 입력될 때에만 부호화 상태를 초기화한다. 부호기는 두 번째 그룹의 첫 비트가 입력될 때부터는 부호화 상태를 초기화 하지 않고 이전 그룹의 마지막 비트의 입력에 따른 부호화 상태를 그대로 유지한다. 일례로, 부호기는 부호화 상태를 상태 0(Zero State)로 초기화 할 수 있다. A process of encoding a group of information bits by an encoder will be described in detail with reference to FIG. 1. The encoder initializes the encoding state whenever the encoding process for the information bits of one block is started, that is, whenever t = (1,1) (S110). The encoder initializes the encoding state only when the first bit of the first group is input for one block. When the first bit of the second group is input, the encoder does not initialize the encoding state but maintains the encoding state according to the input of the last bit of the previous group. As an example, the encoder may initialize the coding state to zero state.

부화기는 각 그룹에 대하여 입력되는 정보 비트들에 따라 부호화 상태를 변경한다(S120). 일 실시예에 따라, S122 단계에서, 부호기는 해당 그룹에 포함된 정보 비트들 중 이전에 입력되지 않은 어느 하나의 비트를 입력 받는다. 도 1에서 확인할 수 있듯이 i번째 그룹의 경우, S122 단계는 S124 단계와 함께 Ki만큼 반복되는데, 매 반복마다 i번째 그룹의 정보 비트들이 순차적으로 입력될 수 있다. S122 단계에서 입력 받은 비트에 따라, 부호기의 부호화 상태가 현재 상태에서 다음 상태로 변경된다(S124). 부호화 상태가 가질 수 있는 상태 수는 Ns 이다. 현재 상태는 이전에 입력된 비트들을 기초로 Ns 개의 상태들 중 어느 하나의 상태로 결정된다. 현재 상태는, 첫 번째 그룹의 첫 번째 반복에서는 예컨대 상태 0으로 초기화 되며, 그 이후의 반복에서는 이전 반복에서 변경된 상태가 현재 상태가 된다. 다음 상태는, 현재 상태와 현재 입력되는 비트에 따라 결정된다. 다음 상태는 현재 상태에 상응하는 두 개의 상태들 중 현재 입력되는 비트에 따라 결정되는 어느 하나의 상태가 된다. 일 실시 예에 따라, Ns가 4인 경우 입력 비트들에 따라 부호화 상태가 변경되는 과정이 도 2에 예시되어 있다. 도 2의 실시 예에서는 현재 상태가 상태 0일 때(S=0), 다음 상태는 상태 0 또는 상태 2(S=0 or S=2)가 될 수 있는데, 입력 비트가 0인 경우 다음 상태는 상태 0, 입력 비트가 1인 경우 다음 상태는 상태 2가 된다. 즉, 현재 상태에 따라, 다음 상태가 될 수 있는 두 개의 상태가 있고, 부호기는 현재 상태에 상응하는 두 개의 상태들 중 입력 받는 비트에 따라 결정되는 하나의 상태로 천이한다. The incubator changes the encoding state according to the information bits input for each group (S120). According to an embodiment, in step S122, the encoder receives any one of bits previously not input among information bits included in the corresponding group. As shown in FIG. 1, in the case of the i-th group, step S122 is repeated as much as K i together with step S124, and information bits of the i-th group may be sequentially input in each iteration. According to the bit input in step S122, the encoding state of the encoder is changed from the current state to the next state (S124). 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 pat00004
Figure pat00004

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 pat00005
Figure pat00005

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

Figure pat00006
는 배타적 논리합(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 pat00006
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 pat00007
Figure pat00007

이때, 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, 패리티 비트의 수(NP)가 2인 경우 중에서 도 2의 실시 예와 같이 상태가 천이되는 경우를 예를 들어 설명한다. k번째 반복에서의 현재 상태가 두 개의 비트 [d1 , kd0 ,k]로 표현되고, 그 다음 상태가 [d1 ,k+1d0 ,k+1]로 표현될 때, 각 상태를 나타내는 비트들 간의 관계는 수학식 4와 같이 나타낼 수 있다.More specifically, a case in which the state transitions as in the embodiment of FIG. 2 from the case where the state number N s is 4 and the number of parity bits N P is 2 will be described as 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 pat00008
Figure pat00008

이때, 현재 상태 값이 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, 패리티 비트의 수(NP)가 2인 경우 중에서, 다른 일 실시예에 따른 상태 천이 규칙은 수학식 5와 같이 나타낼 수 있다. Among the cases where the number of states N s is 4 and the number of parity bits N P is 2, the state transition rule according to another embodiment may be expressed by Equation 5.

Figure pat00009
Figure pat00009

S122 단계 및 S124 단계는 i번째 그룹인 경우 미리 설정된 횟수인 Ki회 만큼 반복한다. Ki개의 정보 비트들이 입력되면, 부호기는 Ki번째 입력된 비트에 의해 Ki번째 변경된 부호화 상태 St(이때, t=(i,Ki+1))에 기반하여 i번째 패리티 비트들을 결정한다(S130). 일 실시예에 따라, 부호기는 Ki번째 변경된 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 입력 비트들의 값을 i번째 패리티 비트들로 결정한다. 예컨대, Ki번째 변경된 부호화 상태가 초기화 상태(예를 들어, 초기화 상태는 상태 0, S=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이 된다.In the case of the i-th group, steps S122 and S124 are repeated as many times as K i , which is a preset number. When the K i information bits are input, the encoder determines the i th parity bits based on the K i th changed encoding state S t (where t = (i, K i +1)) by the K i th input bits. (S130). According to one embodiment, the encoder determines the value of the input bits so as to converge in a state where K i second modified coding state preset by the i th parity bit. For example, the values of the input bits that cause the K i -th changed encoding state to converge to an initialization state (eg, the initialization state is state 0, S = 0) become the i-th parity bits. More specifically, in FIG. 2 where N S is 4, N P is 2, and the state transitions as shown in Equation 4, the i th parity bits 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] [01] when the value of the K i- th changed encoding state is state 3. 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 .

부호기는 새로이 입력되는 정보 비트들을 이용하여 S120 및 S130을 복수 회 반복한다. 예컨대, 부호기는 i값을 하나씩 증가시키면서 다음 그룹에 대하여 S120 단계 및 S130 단계를 G회 반복한다(S140). S120 단계 및 S130 단계가 반복될 때에는 부호화 상태의 초기화를 수행하지 않으므로, i+1번째 반복에서의 초기 상태는 i번째 반복에서의 마지막 상태(Ki번째 변경된 부호화 상태)와 동일하다. S120 단계 및 S130 단계를 G회 반복되면, Np개의 패리티 비트 그룹이 G개 생성된다. 한 블록의 정보 비트들을 부호화 하기 위하여 부호기에 입력되는 전체 비트 수는 부호화할 정보 비트들의 수(Kd)와 같을 수도 있으며, 부호화할 정보 비트들의 수에 임의의 정수를 곱한 수(n×Kd)와 같을 수도 있다. 예컨대, Kd개의 부호화할 정보 비트들이 임의의 수 n만큼 반복된 비트들이 G개의 그룹으로 나뉘어 부호기에 입력될 수도 있다.The encoder repeats S120 and S130 a plurality of times using newly input information bits. For example, the encoder repeats steps S120 and S130 G times for the next group while increasing the value of i by one (S140). Since the initialization of the coding state is not performed when steps S120 and S130 are repeated, the initial state in the i + 1 iteration is the same as the last state in the i-th iteration (K i- th changed coding state). When the steps S120 and S130 step G-repeated, the N p parity bits are generated group G one. The total number of bits input to the encoder for encoding the information bits of one block may be equal to the number of information bits to be encoded (K d ), and the number of information bits to be encoded is multiplied by an arbitrary integer (n × K d). May be equivalent to For example, bits in which K d information bits to be encoded are repeated by an arbitrary number n may be divided into G groups and input to the encoder.

패리티 비트들이 결정되면, 부호기는 S120 단계에서 입력된 정보 비트들 및 S130 단계에서 결정된 패리티 비트들을 기반으로 부호어를 생성한다(S150). 부호기는 S120 단계에서 반복하여 입력되는 정보 비트들 중 적어도 일부 비트들과 S130 단계에서 결정되는 패리티 비트들을 결합하여 부호어를 생성할 수 있다. 일례로, 부호기는 S120 단계 및 S130 단계가 반복됨에 따라, S120 단계에서 새로이 입력되는 정보 비트들의 그룹 뒤에 S130 단계에서 새로이 결정되는 패리티 비트들의 그룹을 결합하는 과정을 반복하여 부호어를 생성할 수 있다.
If the parity bits are determined, the encoder generates a codeword based on the information bits input in step S120 and the parity bits determined in step S130 (S150). The encoder may generate a codeword by combining at least some bits of the information bits repeatedly input in step S120 and parity bits determined in step S130. For example, the encoder may generate a codeword by repeating a process of combining a group of parity bits newly determined in step S130 with a group of newly input information bits in step S120 as steps S120 and S130 are repeated. .

도 2는 개시된 기술의 일 실시예에 따라, 부호화 상태가 변경되는 과정 및 패리티 비트들이 결정되는 과정을 설명하기 위한 도면이다. 도 2는 앞에서 언급한 바와 같이 NS가 4이고, NP가 2이며, 수학식 4와 같이 상태가 천이되는 경우의 트렐리스(trellis) 다이어그램이다. 도 2에는 정보 비트가 입력됨에 따라 상태가 천이하는 반복적인 과정이 시간 흐름에 따라 펼쳐져 있다. 트렐리스 다이어그램은 가지들(branches) 및 상태들(states)을 포함한다. 가지들은 부호화 신호, 또는 부호화 신호에 따른 상태 천이를 나타낸다. 상태들은 부호화 신호에 대응하여 시간에 따라 천이하는 부호화 상태를 나타낸다. 도 2에서, 정보 비트의 입력에 따른 부호화 상태는 원형으로 표시되고, 각 상태 간을 연결하는 화살표 중 실선 화살표는 비트 0이 입력된 경우를, 점선 화살표는 비트 1이 입력된 경우를 나타낸다. 한 블록에 대한 부호화가 시작될 때마다 부호화 상태는 상태 0으로 초기화된다. 이후, 정보 비트가 입력되면, 현재 상태 및 입력되는 비트의 값에 따라 다음 상태로 천이 된다. 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 is started, the encoding state is initialized to state zero. Then, when the information bit is input, the state transition to the next state according to the current state and the value of the input bit. 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은 개시된 기술의 일 실시예에 따라 부호기의 레지스터 값이 변경되는 과정을 설명하기 위한 도면이다. 부호기의 레지스터에 저장된 값이 부호화 상태를 나타낸다. 레지스터(310)는 부호화 상태를 나타내는 비트들을 저장한다. 연산부(320)는 부호기에 어느 하나의 비트가 입력되면, 부호기로 입력되는 비트(information bit, i) 및 부호화 상태를 나타내는 비트들(즉, 레지스터에 값이 저장된 비트들, do, d1,... 중 적어도 하나의 비트 간의 XOR(배타적 논리합) 연산을 수행한다. 일례로, 레지스터(310)에 저장된 모든 비트들과 입력 비트 간 XOR 연산할 수도 있으며, 다른 일례로 D0 레지스터에 저장된 비트와 입력 비트 간 XOR 연산할 수도 있다. 즉, 레지스터(310)의 각 저장공간 D0 내지 DN -1은 선택적으로 연산부(320)와 연결되어 저장된 비트 값을 연산부(320)에 제공한다. 일 실시 예에 따라, 레지스터(310)는 순환 시프트 레지스터(Recursive Shift Register)로서, 부호기에 정보 비트가 입력될 때마다 저장된 비트들이 한 비트씩 하위 비트 자리로 이동하고, 연산부(320)에서 수행되는 연산 결과가 최상위 비트 자리로 입력됨으로써 부호화 상태를 나타내는 비트들을 갱신할 수 있다. 레지스터(310) 및 연산부(320)의 동작은 수학식 2 또는 수학식 3과 같이 표현될 수 있다. 3 is a diagram illustrating a process of changing a register value of an encoder according to an embodiment of the disclosed technology. The value stored in the register of the encoder indicates the encoding state. The register 310 stores bits representing the coding state. When any one bit is input to the encoder, the operation unit 320 may include an information bit (i) input to the encoder and bits indicating an encoding state (that is, bits having a value stored in a register, d o , d 1 , Performs an XOR operation between at least one of the bits, etc. For example, an XOR operation may be performed between all bits stored in the register 310 and an input bit, and as another example, a bit stored in the 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 310. D N -1 is selectively connected to the operation unit 320 to provide the stored bit value to the operation unit 320. According to an embodiment, the register 310 is a recursive shift register. When the information bits are input to the encoder, the stored bits are shifted by one bit to the lower bit positions, and the operation unit 320 performs the operation. By inputting the operation result into the most significant bit digit, the bits indicating the encoding state may be updated. The operation of the register 310 and the operation unit 320 may be expressed as Equation 2 or Equation 3 below.

도 4는 개시된 기술의 일 실시예에 따라, 부호화 상태 수가 4인 경우 상태 결정부를 설명하기 위한 도면이다. 부호화 상태 수 NS가 4 인 경우 패리티 비트 수 NP 및 부호화 상태를 나타내는 비트 수는 2이므로 레지스터는 두 개의 저장 공간 D1, D0를 가진다. 연산부는 입력 비트(i) 및 부호화 상태를 나타내는 비트들, 즉, 레지스터 D1, D0에 값이 저장된 비트들(d1, d0)중 적어도 하나의 비트 간의 XOR(배타적 논리합) 연산을 수행한다. 일례로 도 4의 (a)는 입력 비트 i, 레지스터에 저장된 비트 값들인 d1, d0 세 비트의 XOR 연산을 수행한다. 이를 수학식으로 나타내면 수학식 4와 같다. 다른 일례로 도 4의 (b)는 입력 비트 i와 레지스터에 저장된 비트 값인 d0 간의 XOR 연산을 수행한다. 이를 수학식으로 나타내면 수학식 5와 같다.
4 is a diagram for describing a state determiner when the number of encoded states is 4 according to an embodiment of the disclosed technology. If the coded state number N S is 4, the parity bit number N P and the number of bits representing the coded state are 2, so the register has two storage spaces D 1 and D 0 . The calculation unit performs an XOR operation between at least one bit among the bits representing the input bit i and the encoding state, that is, the bits d 1 and d 0 in which values are stored in the registers D 1 and D 0 . do. For example, (a) of FIG. 4 performs an XOR operation of input bits i and three bits d 1 and d 0 which are bit values stored in a register. This is represented by Equation 4 below. As another example, FIG. 4B performs an XOR operation between input bit i and d 0 , a bit value stored in a register. This is represented by Equation 5 below.

도 5는 개시된 기술의 일 실시예에 따라, 다상-누산 코드를 이용하여 복호화 하는 방법을 설명하기 위한 순서도이다. IRA 코드에서 Accumulate 코드의 패리티 체크를 위해 tanh 규칙을 사용하였던 것과 달리, 개시된 기술에 따른 다상-누산 코드는, BCJR 알고리즘을 사용하여 복호화할 수 있다. 개시된 기술에서는 다상-누산 코드의 복호화 방법으로 2차원 BCJR 알고리즘을 새로이 제안한다. 이하, 이해를 돕기 위하여 복호기가 도 2의 트렐리스 다이어그램에 따른 다상-누산 코드를 이용하여 부호화된 신호를 수신한 경우 복호화하는 과정을 예를 들어 설명한다.5 is a flowchart for describing a method of decoding using a polyphase-accumulated code, according to an embodiment of the disclosed technology. Unlike using the tanh rule for parity check of the Accumulate code in the IRA code, the multiphase-accumulated code according to the disclosed technique can be decoded using the BCJR algorithm. In the disclosed technique, a two-dimensional BCJR algorithm is newly proposed as a method of decoding a polyphase-accumulated code. Hereinafter, for the sake of understanding, a process of decoding the decoder when it receives a signal encoded using the polyphase-accumulation code according to the trellis diagram of FIG. 2 will be described as an example.

S510 단계에서, 복호기는 복수의 정보 비트 그룹들에 포함된 정보 비트들과 정보 비트 그룹들 각각에 상응하는 패리티 비트 그룹들에 포함된 패리티 비트들이 결합된 부호화 신호를 수신한다. 수신된 신호는 수학식 6과 같이 표시될 수 있다.In operation S510, the decoder receives an encoded signal including information bits included in the plurality of information bit groups and parity bits included in the parity bit groups corresponding to each of the information bit groups. The received signal may be represented as shown in Equation 6.

Figure pat00010
Figure pat00010

편의상 수신된 신호를 G개의 그룹으로 나누고, i번째 그룹에 포함된 비트들의 수를 m(i)라 한다. 일 실시예에 따라 각 그룹에는 Ki개의 정보 비트들과 NP개의 패리티 비트들이 차례로 포함될 수 있다. 이때, Ki와 NP의 합은 m(i)와 같다. 또한, 설명의 편의를 위하여 부호화 신호 중 i번째 그룹의 l번째 비트가 입력된 시간 t를 2차원적 시간 인덱스인 t=(i,l)로 표시한다. 각 i에 대하여 t=(i,1),...,t=(i,Ki)는 정보 비트가 입력된 시간이며, t=(i,Ki+1),...,t=(i,m(i))은 패리티 비트가 입력된 시간이다. For convenience, the received signal is divided into G groups, and the number of bits included in the i-th group is referred to as m (i). According to an embodiment, each group may include K i information bits and N P parity bits in sequence. In this case, the sum of K i and N P is equal to m (i). Also, for convenience of description, the time t at which the l-th bit of the i-th group of the coded signals is input is represented by t = (i, l), which is a two-dimensional time index. For each i, t = (i, 1), ..., t = (i, K i ) is the time when the information bits were entered, and t = (i, K i +1), ..., t = (i, m (i)) is the time when the parity bit is input.

부호화된 신호는, 도 2의 트렐리스 다이어그램와 같은 상태 천이 및 패리티 비트 생성 규칙에 따라 생성된 패리티 비트들이 정보 비트들과 결합되어 생성된 신호이다. 이때, 부호기는 일례로 도 4의 (a)와 같은 RSR(Recursive Shift Register)를 이용하여 구현되었을 수 있다. 도 2의 천이 규칙, 또는 도 4와 같은 구조는 송신 측과 수신 측이 공통적으로 알고 있는 정보이므로, 수신 측에서도 도 2와 같은 트렐리스를 동일하게 구성할 수 있다. The coded signal is 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. In this case, the encoder may be implemented using an RSR (Recursive Shift Register) as shown in FIG. Since the transition rule of FIG. 2 or the structure shown in FIG. 4 is information commonly known to the transmitting side and the receiving side, the receiving side can also have the same trellis as shown in FIG.

복호기는 도 2의 트렐리스를 기반으로 수신 신호에 2차원 BCJR 알고리즘을 적용하여 수신 신호를 복호화한다. 도 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로 표현될 수도 있다.The decoder decodes the received signal by applying a two-dimensional BCJR algorithm to the received signal based on the trellis of FIG. 2. 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에서의 사후 확률은 수학식 7과 같다.  According to the 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 7.

Figure pat00011
Figure pat00011

여기서, 사후 확률 P(dt=d)는 시간 t에서의 전송 비트 값이 d(d는 0또는 1)일 확률이다. σ(st,d)는 시간 t에서의 사후 천이 확률로, σ(st=j,d)는 시간 t에서의 상태(st)가 상태 j이고, 시간 t에서의 전송 비트(dt)가 d일 확률을 의미한다. 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 , d) is the probability of post-transition at time t, σ (s t = j, d) is the state at time t (s t ) is state j, and the transmission bit at time t (d t Is the probability that d 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일 때, 메인 가지에서의 사후 천이 확률은 수학식 8과 같이 산출되고, 보조 가지에서의 사후 천이 확률은 수학식 12와 같이 산출될 수 있다. 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 shown in Equation 8, and the post-transition probability in the auxiliary branch may be calculated as shown in Equation 12.

Figure pat00012
Figure pat00012

여기서, α(st)는 시간 t에서의 부호화 상태인 st의 포워드 상태 메트릭으로, 수학식 9와 같이 정의된다. Here, α (s t ) is a forward state metric of s t which is an encoding state at time t, and is defined as in Equation (9).

Figure pat00013
Figure pat00013

α(st=j)는 시간 t 이전의 수신 신호가 주어졌을 때, 시간 t에서 부호화 상태가 상태 j에 머물러 있을 확률을 나타낸다. 포워드 상태 메트릭은 정보 비트들을 나타내는 가지, 즉 메인 가지와 연결된 상태에서만 정의된다. α (s t = j) is the time t Given the previous received signal, it represents the probability that the coding state stays in state j at time t. The forward state metric is defined only in the state associated with the branch representing the information bits, ie the main branch.

β(st +1)는 시간 t+1에서의 부호화 상태인 st +1의 백워드 상태 메트릭으로, 수학식 10과 같이 정의된다. β (s t +1 ) is a backward state metric of s t +1 , which is an encoding state at time t + 1, and is defined as in Equation 10.

Figure pat00014
Figure pat00014

β(st +1=j)은 시간 t+1 이후의 수신 신호가 주어졌을 때, 시간 t+1에서 부호화 상태가 상태 j에 머물러 있을 확률을 나타낸다. 백워드 상태 메트릭 또한 마찬가지로 정보 비트들을 나타내는 가지와 연결된 상태에서만 정의된다. γ(st, st +1)는 관점에 따라, γ(st,d)라고 표현할 수도 있는데, 시간 t에서의 가지 메트릭으로 수학식 11과 같이 정의된다.β (s t + 1 = j) represents the probability that the coding state stays in state j at time t + 1 when a received signal after time t + 1 is given. The backward state metric is likewise defined only in the state associated with the branch representing the information bits. γ (s t , s t +1 ) may be expressed as γ (s t , d) according to a viewpoint, and is defined as Equation 11 as a branch metric at time t.

Figure pat00015
Figure pat00015

가지 메트릭은 수신 신호가 주어졌을 때, 정보 비트가 각 가지와 같을 확률을 나타낸다. 예컨대, γ(st=i, st +1=j)는 시간 t에서 상태 i이고 시간 t+1에서 상태 j일 확률을 나타낸다. γ(st=i,d)는 시간 t에서 상태 i이고 시간 t에서 입력되는 전송 비트가 d일 확률이다. 이때, 전송 비트 d는 st=i로부터 st=j로 천이되도록 하는 비트 값으로서, st=i일때, 입력 비트가 d이면, st +1=j가 되는 관계가 있다. 즉, γ(st, st +1) 또는 γ(st,d)는 동일한 가지 메트릭을 나타낸다. 수학식 8과 같이 정보 비트들을 나타내는 모든 가지에 대하여 사후 천이 확률을 구하면 각 가지에 해당하는 시간 t에서의 전송 비트 값(정보 비트 값)은 수학식 7에 따라 산출되는 사후 확률에 따라 결정된다. The branch metric represents the probability that an information bit is equal to each branch when a received signal is given. For example, γ (s t = i, s t + 1 = j) represents the probability of state i at time t and state j at time t + 1. γ (s t = i, d) is the probability that state i at time t and the transmission bit input at time t is d. At this time, the transmission bit d is a bit value for transitioning from s t = i to s t = j. When s t = i, if the input bit is d, there is a relationship that s t +1 = j. That is, γ (s t , s t +1 ) or γ (s t , d) represents the same branch metric. When the post-transition probability is obtained for all the branches representing the information bits as shown in Equation 8, the transmission bit value (information bit value) at time t corresponding to each branch is determined according to the post probability calculated according to Equation 7.

수학식 12는 보조 가지에서의 사후 천이 확률을 산출하는 수식이다.Equation 12 is a formula for calculating the post-transition probability in the auxiliary branch.

Figure pat00016
Figure pat00016

패리티 비트를 나타내는 보조 가지에서의 사후 천이 확률이 산출되면, 각 가지에 해당하는 시간 t에서의 전송 비트 값(패리티 비트 값)은 수학식 7에 따라 산출되는 사후 확률에 따라 결정된다. 여기서, μ(st)와 λ(st +1)는 패리티 비트를 나타내는 가지와 연결된 상태에 관한 상태 메트릭으로 각각 시간 t에서의 아웃워드 상태 메트릭, 시간 t+1에서의 인워드 상태 메트릭이라 한다. 아웃워드 상태 메트릭은 수학식 13에, 인워드 상태 메트릭에 대한 정의는 수학식14에 표시된다. When the post-transition probability in the auxiliary branch representing the parity bit is calculated, the transmission bit value (parity bit value) at time t corresponding to each branch is determined according to the post-probability calculated according to Equation (7). 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 outward status metric is shown in equation 13, and the definition of the forward status metric is shown in equation 14.

Figure pat00017
Figure pat00017

Figure pat00018
Figure pat00018

아웃워드 상태 메트릭과 인워드 상태 메트릭은 패리티 비트들을 나타내는 가지, 즉 보조 가지와 연결된 상태에서만 정의된다. i번째 보조 가지에서 산출되는 아웃워드 상태 메트릭 μ(s(i,l)=j)는 전체 수신 열에서 t=(i,l)부터 t=(i,m(i))까지의 수신 열을 제외한 수신 신호가 주어졌을 때, t=(i,l)에서 상태 j에 머물러 있을 확률을 나타낸다. 아웃워드 상태 메트릭은 이전 상태의 아웃워드 상태 메트릭을 기초로 순차적으로 산출된다. 인워드 상태 메트릭 λ(s(i,l)=j)은 t=(i,l)부터 t=(i,m(i))까지의 수신 신호가 주어졌을 때, t=(i,l)에서 상태 j에 머물러 있을 확률을 나타낸다. 인워드 상태 메트릭은 다음 상태의 인워드 상태 메트릭을 기초로 역순으로 산출된다. 수학식 12에서의 γ(st, st +1) 또는 γ(st,d)는 패리티 비트를 나타내는 가지에서의 가지 메트릭이며, 수신 신호가 주어졌을 때, 패리티 비트가 각 가지와 같을 확률을 나타낸다.The forward state metric and the forward state metric are defined only in a branch representing parity bits, i. The outward state metric μ (s (i, l) = j), computed from the i secondary branch, receives the received columns from t = (i, l) to t = (i, m (i)) in the entire receive column. Given the excluded signal, it represents the probability of staying in state j at t = (i, l). The outward status metric is calculated sequentially based on the outward status metric of the previous state. The forward state metric λ (s (i, l) = j) is given by the received signal from t = (i, l) to t = (i, m (i)), where t = (i, l) Denotes the probability of staying in state j. The inward status metric is calculated in the reverse order based on the inward status metric of the next state. Γ (s t , s t +1 ) or γ (s t , d) in Equation 12 is a branch metric in a branch representing a parity bit, and given a received signal, the probability that the parity bit is equal to each branch Indicates.

트렐리스 다이어그램에 기반하여 복호화를 수행하는 순서를 도 6을 참조하여 설명한다. 도 6은 도 2의 트렐리스를 단순화하여 표현한 도면이다. 도 2의 다이어그램은 각 시간 t까지 입력될 수 있는 정보 비트들의 모든 경우와, 시간 t까지 입력된 정보 비트들에 따라 시간 t에서 부호화 상태가 가질 수 있는 모든 상태를 표시하였다. 도 6의 다이어그램은 각 시간 t까지 입력되는 정보 비트와 시간 t에서의 부호화 상태를 각각 하나의 화살표와 하나의 원으로 간단히 표시하였다. 도 6의 화살표는 0 또는 1의 값을 가지며, 각각의 원은 상태 0에서 상태 3까지의 값을 가질 수 있다. 도 6에 표시된 바와 같이, 개시된 기술에 따른 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. 6. FIG. 6 is a simplified representation of the trellis of FIG. 2. The diagram of FIG. 2 shows all cases of information bits that can be input until each time t and all states that an encoding state can have at time t according to the information bits input until time t. In the diagram of FIG. 6, the information bits input up to each time t and the encoding state at the time t are simply represented by one arrow and one circle, respectively. The arrows in FIG. 6 may have a value of 0 or 1, and each circle may have a value from state 0 to state 3. As shown in FIG. 6, in the two-dimensional BCJR algorithm according to the disclosed technique, inward recursion, forward recursion, backward recursion, and outward recursion are performed. Decoding proceeds in order. In this case, according to an embodiment, the order of the forward iteration and the backward iteration may be changed. Inward iteration is a process of calculating the inward state metric value in the reverse order from the final state of each auxiliary branch. In the forward iteration operation, the forward state metric is sequentially calculated from the first state of the main branch, but in the branch state, the forward state metric is calculated by reflecting the forward state metric. In the backward iteration operation, the backward state metric value is calculated in the reverse order of the forward iteration operation. Similar to the forward iteration operation, in the branched state, the backward state metric is calculated by reflecting the value of the inward state metric. The outward iteration operation is a process of sequentially calculating the outward state metric values in the reverse order of the inward iteration operation from the branch state at the time when the main branch and the auxiliary branch are branched. A method of calculating each state metric in this order will be described in detail.

각 상태 메트릭을 산출하기에 앞서, 복호기는 도 2 또는 도 6의 트렐리스 다이어그램에 기반하여, 수신된 신호로부터 각 가지들에 상응하는 가지 메트릭들을 산출한다. 가지 메트릭 γ(st=i,d)은 사전 확률과 전송 비트가 d일 때 수신 신호의 확률밀도함수를 이용하여 산출된다. 예컨대, 도 2에서 가지 메트릭 γ(st=i,d)는, dt=0일 확률과 dt=1일 확률이 모두 0.5이고, st가 각 부호화 상태에 있을 확률이 모두 동일하다고 가정하면, 주어진 확률밀도함수에서의 수신신호에 상응하는 값으로 산출될 수 있다.Prior to calculating each state metric, the decoder calculates branch metrics corresponding to each branch from the received signal, based on the trellis diagram of FIG. 2 or 6. The branch metric γ (s t = i, d) is calculated using the probability density function of the received signal when the prior probability and the transmission bit are d. For example, even in two metric γ (s t = i, d) is, d t = a 0 probability and d t = 1 probability are both 0.5, s t is assumed to be all the same probability to each coding state In this case, it can be calculated as a value corresponding to the received signal at a given probability density function.

가지 메트릭이 산출되면, 복호기는 전술한 바와 같은 순서로 각 상태 메트릭을 산출한다. 우선 인워드 상태 메트릭을 산출하는 방법은 다음과 같다. 인워드 상태 메트릭은 패리티 비트들을 나타내는 각 보조 가지 별로 산출된다. 인워드 상태 메트릭은 각 보조 가지의 최종 수렴 상태 바로 이전의 상태 s(i.l)(이때, l=m(i))에서부터 메인 가지와 보조 가지가 분기되는 시점에서의 분기 상태 s(i,l)(이때, l=Ki+1 또는 l=m(i)-NP+1)까지 수학식 15와 같이 역순으로 산출된다. Once the branch metrics are calculated, the decoder calculates each state metric in the order as described above. First, the method of calculating the inward status metric is as follows. 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 . At this time, l = K i +1 or l = m (i) -N P +1 is calculated in the reverse order as in Equation 15.

Figure pat00019
Figure pat00019

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

모든 보조 가지들에 대하여 인워드 상태 메트릭을 산출한 뒤, 복호기는 정보 비트들에 상응하는 가지 메트릭들 및 인워드 상태 메트릭들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출한다.After calculating the inward state metric for all auxiliary branches, the decoder calculates forward state metrics and backward state metrics based on the branch metrics and the forward state metrics corresponding to the information bits.

포워드 상태 메트릭은 포워드 반복 연산에 의하여 t=(i,1)에서부터 t=(i,Ki+1)까지 각 상태에 대하여 순차적으로 계산된다. 또한, i값이 1인 때부터 i값이 G일 때 까지 i가 하나씩 증가하며 상기 계산이 반복된다. 각 정보 비트 그룹의 첫 번째 비트에 상응하는 상태인 s(i,1)의 포워드 상태 메트릭은 수학식 16과 같은 조건을 이용하여 산출할 수 있다.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 increased by one from the value of i to 1 until the value of i 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 in Equation 16.

Figure pat00020
Figure pat00020

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

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

마지막으로, 각 정보 비트 그룹에서 분기 상태의 포워드 상태 메트릭은 수학식 18과 같이 인워드 상태 메트릭의 값이 반영되어 산출된다. 즉, 분기 상태는 보조 가지와 메인 가지가 교차하는 지점이므로, 분기 상태에서 포워드 상태 메트릭은 보조 가지로부터 산출되어온 인워드 상태 메트릭 값과 메인 가지로부터 산출되어온 포워드 상태 메트릭 값을 곱한 값으로 산출된다.Finally, the forward state metric of the branch state in each group of information bits is calculated by reflecting the value of the forward state metric as shown in Equation 18. That is, since the branch state is 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 pat00023
Figure pat00023

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

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

Figure pat00024
Figure pat00024

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

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

각 정보 비트 그룹에서 분기 상태를 제외한, 나머지 백워드 상태 메트릭은 수학식 20과 같이 산출된다. 즉, β(st=j)는 임의의 상태 값을 가지는 st +1로부터 상태 값이 j인 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 20. That is, β (s t = j) is +1 for t s for all of the reverse leading to the state s t s t from the value j +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 pat00026
Figure pat00026

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

아웃워드 상태 메트릭은 패리티 비트들에 상응하는 가지 메트릭들을 기초로 산출된다. 아웃워드 상태 메트릭은 인워드 상태 메트릭과 마찬가지로 패리티 비트들을 나타내는 각 보조 가지 별로 산출하되, 인워드 상태 메트릭과 반대 방향으로 수행된다. 아웃워드 상태 메트릭은 메인 가지와 보조 가지가 분기되는 각각의 시점에서의 분기 상태 s(i,l)(이때, l=Ki+1 또는 l=m(i)-NP+1)에서부터 각 보조 가지의 최종 상태 바로 이전의 상태 s(i.l)(이때, l=m(i))까지 순차적으로 산출된다. The outward status metric is calculated based on the branch metrics corresponding to the parity bits. 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.

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

Figure pat00028
Figure pat00028

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

Figure pat00029
Figure pat00029

가지 메트릭 및 상태 메트릭들이 산출되면 정보 비트들 또는 패리티 비트들에 해당하는 전송 비트의 값을 결정할 수 있다. 일 실시 예에 따라, 정보 비트들은 수학식 7과 수학식 8에 따라 가지 메트릭, 포워드 상태 메트릭 및 백워드 상태 메트릭의 곱을 기초로 결정될 수 있다. 다른 일 실시 예에 따라, 패리티 비트들은 수학식 7과 수학식 12에 따라 가지 메트릭과 아웃워드 상태 메트릭, 인워드 상태 메트릭의 곱을 기초로 결정될 수 있다.
When the branch metric and the state metrics are calculated, the value of the transmission bit corresponding to the information bits or the parity bits may be determined. According to an embodiment, the information bits may be determined based on a product of a branch metric, a forward state metric, and a backward state metric according to Equations 7 and 8. According to another embodiment, the parity bits may be determined based on a product of a branch metric, an outward state metric, and an inward state metric according to Equations 7 and 12.

이러한 개시된 기술인 시스템 및 장치는 이해를 돕기 위하여 도면에 도시된 실시 예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 개시된 기술의 진정한 기술적 보호범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.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 (24)

(a) 부호화 상태를 초기화 하는 단계;
(b) 입력되는 정보 비트들에 따라 상기 부호화 상태를 변경하는 단계;
(c) 상기 부호화 상태에 기반하여 패리티 비트들을 결정하는 단계;
(d) 새로이 입력되는 정보 비트들을 이용하여 상기 (b) 단계 및 상기 (c) 단계를 수행함을 적어도 1회 반복하는 단계; 및
(e) 상기 (b) 단계 내지 상기 (d) 단계에서 입력된 정보 비트들 및 결정된 패리티 비트들을 기반으로 부호어를 생성하는 단계를 포함하는 부호화 방법.
(a) initializing a coding state;
(b) changing the encoding state according to the input information bits;
(c) determining parity bits based on the encoding state;
(d) repeating steps (b) and (c) at least once using newly input information bits; And
(e) generating a codeword based on the information bits and parity bits determined in the steps (b) to (d).
제1항에 있어서, 상기 (b) 단계는,
(b1) 이전에 입력되지 않은 어느 하나의 비트를 입력 받는 단계;
(b2) 상기 입력 받는 비트에 따라 상기 부호화 상태가 현재 상태에서 다음 상태로 변경되는 단계;
(b3) 상기 입력 받는 단계 및 상기 변경되는 단계를 적어도 1회 반복하는 단계를 포함하는 부호화 방법.
According to claim 1, wherein step (b),
(b1) receiving any one bit not previously input;
(b2) changing the encoding state from a current state to a next state according to the input bit;
(b3) encoding the input step and repeating the changing step at least once.
제1항에 있어서, 상기 (e) 단계는,
상기 (b) 단계에서 입력되는 정보 비트들 중 적어도 일부 비트들과 상기 (c) 단계에서 결정되는 패리티 비트들을 결합하는 부호화 방법.
The method of claim 1, wherein step (e)
At least some of the information bits input in step (b) and the parity bits determined in step (c).
제1항에 있어서, 상기 (e) 단계는,
상기 (b) 단계 및 상기 (c) 단계가 반복됨에 따라, 상기 (b) 단계에서 새로이 입력되는 정보 비트들의 그룹 및 상기 (c) 단계에서 새로이 결정되는 패리티 비트들의 그룹을 번갈아 결합하는 과정을 반복하여 상기 부호어를 생성하는 부호화 방법.
The method of claim 1, wherein step (e)
As steps (b) and (c) are repeated, the process of alternately combining a group of newly input information bits in step (b) and a group of parity bits newly determined in step (c) is repeated. Encoding to generate the codeword.
제1항에 있어서, 상기 (c) 단계는,
상기 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 입력 비트들의 값을 상기 패리티 비트들로 결정하는 부호화 방법.
The method of claim 1, wherein the step (c)
And determining the values of the input bits as the parity bits to cause the encoding state to converge to a preset state.
제1항에 있어서, 상기 (c) 단계는,
상기 부호화 상태가 초기 부호화 상태로 수렴하도록 하는 입력 비트들의 값을 상기 패리티 비트들로 결정하는 부호화 방법.
The method of claim 1, wherein the step (c)
And determining the values of the input bits as the parity bits to cause the encoding state to converge to an initial encoding state.
제2항에 있어서, 상기 (b2) 단계는,
상기 부호화 상태가 상기 현재 상태에 상응하는 두 개의 상태들 중 상기 입력 받는 비트에 따라 결정되는 어느 하나의 상태로 변경되는 단계인 부호화 방법.
The method of claim 2, wherein step (b2),
And the encoding state is changed to one of two states corresponding to the current bit among two states corresponding to the current state.
제2항에 있어서, 상기 (b) 단계가 한 번 수행되는 동안 k번째 수행되는 상기 (b2) 단계에서,
상기 현재 상태가 N 개의 비트 [dN -1,k…d0 ,k]로 표현될 때, 상기 다음 상태는,
dn ,k+1=dn +1,k (여기서, n=0,...,N-2)
Figure pat00030
(여기서, ik는 현재의 반복에서 입력 받은 정보 비트,
Figure pat00031
는 배타적 논리합(exclusive OR, XOR) 연산을 의미하고, dk 는 d0 ,k 내지 dN -1,k중 선택되는 적어도 하나의 비트를 XOR 연산한 결과 값을 나타냄)에 따라 결정된 N 개의 비트 [dN -1,k+1…d0 ,k+1]로 표현되는 부호화 방법.
The method of claim 2, wherein in step (b2), wherein step k is performed while step (b) 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 pat00030
Where i k is the information bit received in the current iteration,
Figure pat00031
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 ].
제2항에 있어서, 상기 (b) 단계가 한 번 수행되는 동안 k번째 수행되는 상기 (b2) 단계에서,
상기 복수 회 반복 중 k번째 반복에서의 상기 현재 상태가 N 개의 비트 [dN -1,k…d0 ,k]로 표현될 때,
dn ,k+1=dn +1,k (여기서, n=0,...,N-2)
Figure pat00032
(여기서, ik는 현재의 반복에서 입력 받은 정보 비트,
Figure pat00033
는 배타적 논리합(exclusive OR, XOR) 연산을 의미하고, a1 내지 aN -1은 0 또는 1의 값을 가짐)에 따라 결정된 N 개의 비트 [dN -1,k+1…d0 ,k+1]로 표현되는 부호화 방법.
The method of claim 2, wherein in step (b2), wherein step k is performed while step (b) 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 pat00032
Where i k is the information bit received in the current iteration,
Figure pat00033
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 ].
제2항에 있어서, 상기 (b2) 단계는,
상기 어느 하나의 비트가 입력되면, 상기 입력 받는 비트 및 상기 현재 상태를 나타내는 비트들 중 적어도 하나의 비트 간의 XOR(배타적 논리합) 연산을 수행하는 단계; 및
레지스터에 저장되는 상기 현재 상태를 나타내는 비트들을, 한 비트씩 하위 비트 자리로 이동시키고, 상기 XOR 연산의 결과를 최상위 비트 자리에 저장하여 상기 레지스터의 값을 상기 다음 상태를 나타내는 비트의 값으로 갱신하는 단계를 포함하는 부호화 방법.
The method of claim 2, wherein step (b2),
Performing an XOR operation between the input bit and at least one of the bits representing the current state when the bit is input; And
Shifting the bits representing the current state stored in the register to the lower bit position by one bit, and storing the result of the XOR operation in the most significant bit position to update the value of the register with the value of the bit representing the next state. An encoding method comprising the steps.
(a)정보 비트들과 패리티 비트들을 포함하는 비트 그룹이 복수 개 결합된 부호화 신호를 수신하는 단계;
(b)상기 부호화 신호를 나타내는 가지들(branches) 및 상기 부호화 신호에 대응하여 시간에 따라 천이하는 부호화 상태를 나타내는 상태들(states)을 포함하는 트렐리스에 기반하여, 수신된 신호로부터 가지 메트릭(metric)을 산출하는 단계;
(c)상기 부호화 신호 중 상기 패리티 비트들에 상응하는 가지 메트릭들을 기초로 인워드 상태 메트릭들을 산출하는 단계;
(d)상기 부호화 신호 중 상기 정보 비트들에 상응하는 가지 메트릭들 및 상기 인워드 상태 메트릭들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계; 및
(e)상기 가지 메트릭들, 포워드 상태 메트릭들 및 백워드 상태 메트릭들의 값을 기초로 상기 정보 비트들의 값을 결정하는 단계를 포함하는 복호화 방법.
(a) receiving a coded signal in which a plurality of bit groups including information bits and parity bits are combined;
(b) a branch metric from a received signal, based on a trellis comprising branches representing the coded signal and states representing a coded state that transitions in time corresponding to the coded signal calculating a metric;
(c) calculating inward state metrics based on branch metrics corresponding to the parity bits in the coded signal;
(d) calculating forward state metrics and backward state metrics based on branch metrics corresponding to the information bits of the coded signal and the forward state metrics; And
(e) determining the value of the information bits based on the value of the branch metrics, forward state metrics and backward state metrics.
제11항에 있어서, 상기 인워드 상태 메트릭은,
상기 상태들 중 상기 패리티 비트들을 나타내는 가지와 연결된 상태에 대한 상태 메트릭이되, 상기 인워드 상태 메트릭은 다음 상태의 인워드 상태 메트릭을 기초로 역순으로 산출되는 상태 메트릭인 복호화 방법.
The method of claim 11, wherein the inward status metric,
And a state metric for a state associated with a branch indicating the parity bits among the states, wherein the inward state metric is a state metric calculated in reverse order based on the inward state metric of a next state.
제11항에 있어서, 상기 인워드 상태 메트릭은,
(여기서, λ(s(i,l))는 시간 (i,l)에서의 인워드 상태 메트릭, s(i,l)는 시간 (i,l)에서의 상태, m(i)는 i번째 비트 그룹에 포함된 비트들의 수,
Figure pat00035
, 시간 (i,l)은 i번째 그룹의 l번째 비트가 입력된 시간, l은 Ki+1 이상 m(i) 이하의 정수, Ki는 i번째 비트 그룹에 포함된 정보 비트들의 수를 나타냄)인 복호화 방법.
The method of claim 11, wherein the inward status metric,
Where λ (s (i, l) is the inward state metric at time (i, l), s (i, l) is the state at time (i, l), and m (i) is the i th The number of bits in the bit group,
Figure pat00035
, Time (i, l) is the time when the l-th bit of the i-th group is input, l is an integer greater than or equal to K i +1 and less than m (i), and K i is the number of information bits included in the i-th bit group. Decoding method.
제11항에 있어서,
(f)상기 부호화 신호 중 상기 패리티 비트들에 상응하는 가지 메트릭들을 기초로 아웃워드 상태 메트릭들을 산출하는 단계; 및
(g)상기 가지 메트릭들, 상기 인워드 상태 메트릭들 및 상기 아웃워드 상태 메트릭들의 값을 기초로 상기 패리티 비트들의 값을 결정하는 단계를 더 포함하는 복호화 방법.
The method of claim 11,
calculating outward state metrics based on branch metrics corresponding to the parity bits in the coded signal; And
(g) determining a value of the parity bits based on the value of the branch metrics, the inward state metrics, and the outward state metrics.
제14항에 있어서, 상기 아웃워드 상태 메트릭은,
상기 상태들 중 상기 패리티 비트들을 나타내는 가지와 연결된 상태에 대한 상태 메트릭이되, 상기 아웃워드 상태 메트릭은 이전 상태의 아웃워드 상태 메트릭을 기초로 순차적으로 산출되는 상태 메트릭인 복호화 방법.
15. The method of claim 14, wherein the outward status metric is
And a state metric for a state associated with a branch indicating the parity bits among the states, wherein the outward state metric is a state metric sequentially calculated based on an outward state metric of a previous state.
제11항에 있어서, 상기 아웃워드 상태 메트릭은,
Figure pat00036
(여기서, μ(s(i,l))는 시간 (i,l)에서의 인워드 상태 메트릭, s(i,l)는 시간 (i,l)에서의 상태, ,
Figure pat00038
, m(i)는 i번째 비트 그룹에 포함된 비트들의 수, 시간 (i,l)은 i번째 그룹의 l번째 비트가 입력된 시간, l은 Ki+1 이상 m(i) 이하의 정수, Ki는 i번째 비트 그룹에 포함된 정보 비트들의 수를 나타냄)인 복호화 방법.
The method of claim 11, wherein the outward status metric,
Figure pat00036
Where μ (s (i, l) is the inward state metric at time (i, l), s (i, l) is the state at time (i, l), ,
Figure pat00038
, m (i) is the number of bits included in the i-th bit group, time (i, l) is the time when the l-th bit of the i-th group is input, l is an integer equal to or more than K i +1 and less than m (i) , K i represents the number of information bits included in the i-th bit group.
제11항에 있어서, 상기 (c) 단계는,
Figure pat00039
(이때, λ(s)는 상태 s의 인워드 상태 메트릭, s(i,l)는 시간 (i,l)에서의 상태, s(i,l+1)는 s(i,l)의 다음 상태, γ(s(i,l), s(i,l+1))은 상태 s(i,l)와 s(i,l+1)를 연결하는 가지의 가지 메트릭, 시간 (i,l)은 i번째 그룹의 l번째 비트가 입력된 시간, l은 m(i)부터 m(i)-NP+1까지의 정수, m(i)는 i번째 비트 그룹에 포함된 비트들의 수, NP는 i번째 비트 그룹에 포함된 패리티 비트들의 수를 나타냄)에 따라 인워드 상태 매트릭들을 산출하는 단계를 포함하는 복호화 방법.
The method of claim 11, wherein step (c) comprises:
Figure pat00039
Where λ (s) is the inward state metric of state s, s (i, l) is the state at time (i, l), and s (i, l + 1) is next to s (i, l) The state, γ (s (i, l) , s (i, l + 1) ) is a branch metric that connects states s (i, l) and s (i, l + 1) , time (i, l ) Is the time when the lth bit of the i th group is input, l is an integer from m (i) to m (i) -N P +1, m (i) is the number of bits included in the i th bit group, N P represents the number of parity bits included in the i th bit group).
제11항에 있어서, 상기 (d) 단계는,
Figure pat00040
(이때, α(s)는 상태 s의 포워드 상태 메트릭, s(i,1)는 t=(i,1)에서의 상태,
Figure pat00041
는 t=(i-1,Ki -1+1)에서의 상태, Ki는 i번째 비트 그룹에 포함된 정보 비트들의 수, i는 1보다 큰 정수를 나타냄)에 따라 상태 s(i.1)의 포워드 상태 메트릭을 산출하는 단계를 포함하는 복호화 방법.
The method of claim 11, wherein step (d)
Figure pat00040
Where α (s) is the forward state metric of state s, s (i, 1) is the state at t = (i, 1),
Figure pat00041
Is the state at t = (i-1, K i -1 +1), K i is the number of information bits included in the i-th bit group, i represents an integer greater than one, and state s (i. Calculating a forward state metric of 1) .
제11항에 있어서, 상기 (d) 단계는,
Figure pat00042
(이때, α(st)는 상태 st의 포워드 상태 메트릭, λ(st)는 상태 st의 인워드 상태 메트릭, γ(st -1,st)는 st - 1와 st를 연결하는 가지의 가지 메트릭, t=(i,Ki+1), t-1=(i,Ki), Ki는 i번째 비트 그룹에 포함된 정보 비트들의 수를 나타냄)에 따라 정보 비트들을 나타내는 메인 가지들에서 패리티 비트들을 나타내는 보조 가지들이 분기되는 시점에서의 포워드 상태 메트릭을 산출하는 단계를 포함하는 복호화 방법.
The method of claim 11, wherein step (d)
Figure pat00042
Where α (s t ) is the forward state metric of state s t , λ (s t ) is the forward state metric of state s t , and γ (s t -1 , s t ) is s t - 1 and s t Information according to the branch metric, t = (i, K i +1), t-1 = (i, K i ), where K i represents the number of information bits included in the i th bit group) Calculating a forward state metric at the time the auxiliary branches representing parity bits branch in the main branches representing bits.
제11항에 있어서, 상기 (d) 단계는,
Figure pat00043
(이때, β(s)는 상태 s의 백워드 상태 메트릭,
Figure pat00044
는 t=(i,Ki+1)에서의 상태, s(i+1,1)는 t=(i+1,1)에서의 상태, Ki는 i번째 비트 그룹에 포함된 정보 비트들의 수를 나타냄)에 따라 i번째 비트 그룹의 마지막 정보 비트에 의해 천이된 상태의 백워드 상태 매트릭을 산출하는 단계를 포함하는 복호화 방법.
The method of claim 11, wherein step (d)
Figure pat00043
Where β (s) is the backward state metric of state s,
Figure pat00044
Is the state at t = (i, K i +1), s (i + 1,1) is the state at t = (i + 1,1), and K i is the information bits included in the i th bit group. Calculating a backward state metric of a state transitioned by the last information bit of the i-th group of bits.
제11항에 있어서, 상기 (d) 단계는,
Figure pat00045
(이때, β(st)는 상태 st의 백워드 상태 메트릭, λ(st)는 상태 st의 인워드 상태 메트릭, γ(st,st +1)는 st와 st + 1를 연결하는 가지의 가지 메트릭, t=(i,1), t+1=(i,2)를 나타냄)에 따라 정보 비트들을 나타내는 메인 가지들에서 패리티 비트들을 나타내는 보조 가지들이 분기되는 시점에서의 백워드 상태 메트릭을 산출하는 단계를 포함하는 복호화 방법.
The method of claim 11, wherein step (d)
Figure pat00045
Where β (s t ) is the backward state metric of state s t , λ (s t ) is the inward state metric of state s t , and γ (s t , s t +1 ) is s t and s t + At the time of branching of the auxiliary branches representing parity bits in the main branches representing the information bits according to the branch metric of the branch connecting 1 , t = (i, 1), t + 1 = (i, 2)). Calculating a backward state metric of the < RTI ID = 0.0 >
제14항에 있어서, 상기 (f) 단계는,
l=Ki+1인 경우,
Figure pat00046

l값이 Ki+2 이상 m(i) 이하의 정수인 경우,
Figure pat00047
(이때, μ(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)를 연결하는 가지의 가지 메트릭, Ki는 i번째 그룹의 정보 비트들의 수를 나타냄)에 따라 아웃워드 상태 매트릭들을 산출하는 단계를 포함하는 복호화 방법.
The method of claim 14, wherein step (f) comprises:
If l = K i +1,
Figure pat00046

If l is an integer greater than or equal to K i +2 and less than or equal to m (i),
Figure pat00047
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 at time (i, l), γ (s (i, l-1) , s (i, l) ) is the state s (i, l-1 ) and decoding method for s (i, l) of different metrics, of connecting the K i is a step of calculating the metric in accordance with the status-out word indicates the number of the i-th group of information bits).
제11항에 있어서, 상기 (e) 단계는,
Figure pat00048
(이때, σ(st ,st +1)는 상태 st에서 상태 st+1로의 사후 천이 확률, α(st)는 상태 st의 포워드 상태 메트릭, β(st +1)는 상태 st +1의 백워드 상태 메트릭, γ(st, st +1)은 상태 st과 st + 1를 연결하는 가지의 가지 메트릭을 의미함)에 따라 산출되는 사후 천이 확률을 기초로 시간 t에서의 정보 비트 값을 결정하는 단계를 포함하는 복호화 방법.
The method of claim 11, wherein step (e)
Figure pat00048
Where σ (s t , s t +1 ) is the post-transition probability from state s t to state s t + 1 , α (s t ) is the forward state metric of state s t , and β (s t +1 ) Based on the post-transition probability computed according to the backward state metric of state s t +1 , γ (s t , s t +1 ) means the branch metric of the branch connecting state s t and s t + 1 Determining an information bit value at a time t.
제14항에 있어서, 상기 (f) 단계는,
Figure pat00049
(이때, σ(st ,st +1)는 상태 st에서 상태 st+1로의 사후 천이 확률, μ(st)는 상태 st의 아웃워드 상태 메트릭, λ(st +1)는 상태 st +1의 인워드 상태 메트릭, γ(st, st +1)은 상태 st과 st + 1를 연결하는 가지의 가지 메트릭을 의미함)에 따라 산출되는 사후 천이 확률을 기초로 시간 t에서의 패리티 비트 값을 결정하는 단계를 포함하는 복호화 방법.
The method of claim 14, wherein step (f) comprises:
Figure pat00049
Where σ (s t , s t +1 ) is the probability of post-transition from state s t to state s t + 1 , μ (s t ) is the forward state metric of state s t , λ (s t +1 ) Denotes the post-transition probability calculated according to the inward state metric of state s t +1 , γ (s t , s t +1 ) represents the branch metric of the branch connecting state s t and s t + 1 Determining a parity bit value at time t based on the determination.
KR1020110107780A 2011-10-21 2011-10-21 Encoing and decoding method using multiple state accumulate code KR101268061B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110107780A KR101268061B1 (en) 2011-10-21 2011-10-21 Encoing and decoding method using multiple state accumulate code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110107780A KR101268061B1 (en) 2011-10-21 2011-10-21 Encoing and decoding method using multiple state accumulate code

Publications (2)

Publication Number Publication Date
KR20130043723A true KR20130043723A (en) 2013-05-02
KR101268061B1 KR101268061B1 (en) 2013-05-28

Family

ID=48656387

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110107780A KR101268061B1 (en) 2011-10-21 2011-10-21 Encoing and decoding method using multiple state accumulate code

Country Status (1)

Country Link
KR (1) KR101268061B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160109184A (en) 2015-03-10 2016-09-21 주식회사 셀모티브 Method for manufacturing metallic substrate having metal foam layer on the surface and metallic substrate manufactured thereby

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5948101A (en) 2000-05-03 2001-11-12 Univ Southern California Reduced-latency soft-in/soft-out module
JP5011116B2 (en) * 2004-10-26 2012-08-29 エージェンシー フォー サイエンス,テクノロジー アンド リサーチ Method and system for performing information encoding and decoding using modulation constraints and error control
KR100794790B1 (en) 2005-10-21 2008-01-21 삼성전자주식회사 Trellis encoding device for encoding dual tranmission stream and method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160109184A (en) 2015-03-10 2016-09-21 주식회사 셀모티브 Method for manufacturing metallic substrate having metal foam layer on the surface and metallic substrate manufactured thereby

Also Published As

Publication number Publication date
KR101268061B1 (en) 2013-05-28

Similar Documents

Publication Publication Date Title
US10326478B2 (en) Apparatus and method for encoding and decoding data in twisted polar code
JP5203717B2 (en) Encoder, decoder, encoding method, and decoding method
JP4389373B2 (en) Decoder for iterative decoding of binary cyclic code
JP5354979B2 (en) Low density parity check convolutional code (LDPC-CC) encoder and LDPC-CC decoder
KR101730277B1 (en) Transmission apparatus and transmission method
US20040093549A1 (en) Encoding method using a low density parity check code with a column weight of two
CN102412847A (en) Method and apparatus for decoding low density parity check code using united node processing
US8103945B2 (en) Decoding method and decoding apparatus as well as program
WO2018179246A1 (en) Check bit concatenated polar codes
JP4832447B2 (en) Decoding apparatus and method using channel code
KR101657912B1 (en) Method of Decoding Non-Binary Low Density Parity Check Codes
US8392792B2 (en) Method for encoding low density parity check codes using result of checking previously specified parity bits
US20100185913A1 (en) Method for decoding ldpc code and the circuit thereof
US20170288697A1 (en) Ldpc shuffle decoder with initialization circuit comprising ordered set memory
KR101268061B1 (en) Encoing and decoding method using multiple state accumulate code
JP4202161B2 (en) Encoding device and decoding device
JP5523064B2 (en) Decoding apparatus and method
KR101267756B1 (en) Method for encoding and decoding rate-compatible irregular repeat multiple-state accumulate codes and apparatuses using the same
KR101218658B1 (en) Encoing and decoding method using irregular repeat multiple state accumulate code
JP5385944B2 (en) Decoder
KR101268060B1 (en) Method for encoing and decoding using unitive state-check code
KR101257776B1 (en) Method and apparatus for encoing using state-check code
KR101267654B1 (en) Method for encoding and decoding irregular repeat multiple-state accumulate codes supportig variable length codeword and apparatuses using the same
KR101221062B1 (en) Encoding and decoding method using variable length usc code
JP5490931B2 (en) Encoder, decoder, encoding method, and decoding method

Legal Events

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

Payment date: 20160325

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180411

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee