KR101268060B1 - Method for encoing and decoding using unitive state-check code - Google Patents
Method for encoing and decoding using unitive state-check code Download PDFInfo
- Publication number
- KR101268060B1 KR101268060B1 KR1020110122219A KR20110122219A KR101268060B1 KR 101268060 B1 KR101268060 B1 KR 101268060B1 KR 1020110122219 A KR1020110122219 A KR 1020110122219A KR 20110122219 A KR20110122219 A KR 20110122219A KR 101268060 B1 KR101268060 B1 KR 101268060B1
- Authority
- KR
- South Korea
- Prior art keywords
- state
- bits
- bit
- encoding
- value
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/3905—Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
- H03M13/6505—Memory efficient implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
개시된 기술은 데이터의 부호화(encoding) 방법에 관한 것으로서, 보다 상세하지만 제한됨 없이는, 결합 상태 체크 코드(Unitive State-Check codes, USC 코드)를 이용한 부호화 및 복호화 방법에 관한 것이다. 본 명세서에서 새로이 제안하는 결합 상태-체크 코드는 부호화(encoding) 및 복호화(decoding) 연산 처리 속도를 빠르게 할 수 있고, 필요로 하는 저장 공간을 줄일 수 있으며, 오류 정정 성능을 향상시킬 수 있다는 장점이 있다. 본 명세서에 개시된 기술은 다양한 범위에 응용될 수 있지만, 특히 강화된 프로세서를 가진 통신 단말기에서 병렬 프로세스를 통한 연산속도 향상, 및 저장 공간을 효율적으로 사용하는 데 활용될 수 있다.The disclosed technique relates to a method of encoding data, and more particularly, but without limitation, relates to an encoding and decoding method using unitary state-check codes (USC codes). The new joint state-check code proposed herein can speed up the processing of encoding and decoding operations, reduce the storage space required, and improve error correction performance. have. Although the technology disclosed herein can be applied to various ranges, it can be utilized to improve the operation speed through parallel processes and to efficiently use storage space, especially in a communication terminal having an enhanced processor.
통신에 있어서 일반적으로 부호화(encoding)라 함은 송신 측에서 송신된 데이터가 통신 채널을 통하여 전송되는 과정에서 발생하는 신호의 일그러짐, 손실 등에 의한 오류에도 불구하고 수신 측에서 원래의 데이터를 복원할 수 있도록 하기 위해 송신 측에서 데이터를 처리 하는 과정을 의미한다. 원래의 데이터의 크기를 줄여서 전송과 저장 등을 용이하게 하는 소스 부호화(source coding)와 구분하여 이를 채널 부호화(channel coding)라 한다. 복호화(decoding)는 부호화되어 송신된 신호를 수신 측에서 원래의 데이터로 복원하는 과정이다. 부호화를 한다는 것은 통상 길이 K의 정보 시퀀스(정보 비트들)를 길이 N의 코드로 만드는 것이다. 신호 전송경로가 불안정한 무선 랜(LAN)이나 이동통신의 경우 코드의 길이 N을 정보시퀀스 길이 K 보다 상당히 크게 만든다. 즉, 부호화된 코드에는 전송되어야 할 데이터가 상당히 반복되어 있다. 양방향 통신에서, 정보 시퀀스를 포함하는 데이터를 전송함에 있어서 수신 측이 데이터를 복원하지 못하게 되면 송신 측은 데이터를 다시 전송한다. 이러한 데이터의 반복 전송은 전송속도를 떨어트리게 되므로, 이러한 반복 전송을 줄일 수 있는 채널 부호화 기술들이 연구되어 왔다.In communication, encoding is generally used to recover original data at the receiving end despite errors caused by distortion, loss, or the like of the data transmitted from the transmitting side through the communication channel. It means the process of processing the data in the sender to make sure that it is. This is called channel coding, which is distinguished from source coding that reduces the size of original data to facilitate transmission and storage. Decoding is a process of restoring the encoded and transmitted signal to the original data at the receiving side. To encode is usually to make an information sequence of length K (information bits) into a code of length N. In wireless LAN or mobile communication where signal transmission path is unstable, code length N is made significantly larger than information sequence length K. That is, the data to be transmitted is repeatedly repeated in the coded code. In two-way communication, if a receiving side fails to recover data in transmitting data including an information sequence, the transmitting side transmits the data again. Since repetitive transmission of such data causes a drop in transmission speed, channel coding techniques for reducing such repetitive transmission have been studied.
채널 부호화는 블록부호(block codes)와 콘볼루션 부호(convolution codes)로 크게 나누어진다. 블록부호는 K비트의 입력 정보(data sequences)를 N비트의 출력부호(codes)로 만들어내는 것이다. 콘볼루션 부호는 코드화시킬 때 현재 입력되는 신호에 과거의 일부 신호를 함께 활용하는 방식이다. 콘볼루션 부호를 기반으로 병렬 부호화와 인터리빙(interleaving)을 통해 성능을 더욱 발전시킨 것이 터보코드(turbo codes)이다. 터보코드(turbo codes)는 통신 채널의 비트 오류 확률(probability)을 최소로 유지하는 사상에 기반을 둔 오류 정정 부호 (ECC: error correction code)의 하나이다. 터보코드는 1993년 Berrou 등이 제안한 것으로 비교적 간단한 구조를 가지면서도 매우 우수한 오류 정정 성능을 제공하므로 고성능의 오류 정정 부호 방식이 요구되는 통신 시스템에 적용되고 있다. Channel coding is roughly divided into block codes and convolution codes. The block code generates K bits of data sequences into N bits of output codes. The convolution code is a method of using some signals from the past with the current input signal when coding. Turbo codes are further developed through parallel coding and interleaving based on convolutional codes. Turbo codes are one of error correction codes (ECC) based on the idea of keeping the bit error probability of a communication channel to a minimum. The turbo code, proposed by Berrou et al. In 1993, has a relatively simple structure and provides very good error correction performance, and has been applied to a communication system requiring a high performance error correction code method.
최근에는 저밀도 패리티 검사(LDPC: low-density parity-check) 코드가 통신 시스템에 적용되기 시작하였다. LDPC 코드는 길이 K의 정보시퀀스를 길이 N의 부호어로 만든다. 부호어 중 정보 시퀀스를 제외한 (N-K) 길이의 패리티 비트는 패리티 검사 행렬 (parity-check matrix) H를 사용하여 만들 수 있다. 패리티 검사 행렬 H는 크기가 (N-K) x N 이고, 1보다는 0이 많은 저밀도의 성질을 갖고 있다. LDPC 코드를 이용한 부호화 방법에서는 패리티 검사 행렬 H을 어떻게 만드는지가 가장 중요한 요소이다. 통상, 불규칙 LDPC 코드들은 규칙 LDPC 코드들보다 양호한 성능을 제공한다. 여기서 규칙적이라는 것은 LDPC 코드를 위하여 이용되는 패리티 검사 행렬 H의 모든 행들(rows)이 동일한 수의 1들을 가지고 H의 모든 열들(columns)이 동일한 수의 1들을 가진다는 것을 의미하며, 그렇지 않으면 LDPC 코드는 불규칙인 것으로 간주된다. 여기서 행 또는 열에서 1들의 수는 행 또는 열의 가중치라 칭한다. 블록 길이 104 이상의 불규칙 LDPC (low-density parity-check) 코드는 터보코드(turbo codes)보다 나은 성능을 보이는 것이 입증되었다. Recently, low-density parity-check (LDPC) codes have been applied to communication systems. The LDPC code makes an information sequence of length K a codeword of length N. A parity bit having a length of (NK) excluding an information sequence among codewords may be generated using a parity-check matrix H. The parity check matrix H is (NK) x N in size and has a low density property with more zeros than one. In the encoding method using the LDPC code, how to make the parity check matrix H is the most important factor. Typically, irregular LDPC codes provide better performance than regular LDPC codes. Regular here means that all rows of parity check matrix H used for LDPC code have the same number of 1s and all columns of H have the same number of 1s, otherwise LDPC code Is considered to be irregular. Here the number of 1s in a row or column is referred to as the weight of the row or column. Irregular low-density parity-check (LDPC) codes with block lengths greater than 10 4 have been shown to perform better than turbo codes.
그러나, 패리티 검사 행렬 H는 대략 1000×2000 이상의 크기를 갖기 때문에 부호화 및 복호화 과정에서 많은 연산이 요구되고, 구현이 매우 복잡하며, 많은 저장 공간을 요구하는 문제점이 있다. 다시 말해, 데이터 블록의 크기가 증가하면 LDPC의 오류정정 능력은 강해지지만, 프로세서가 처리해야 하는 연산량 및 요구하는 저장 공간 또한 증가한다는 문제점이 있다. 이러한 문제점을 해결하기 위한 기술로 대한민국 공개특허 제10-2007-0058438호(무선 통신 시스템에서 저밀도 패리티 체크 코드를 이용한 부호화, 복호화 방법 및 그 장치)가 있다.However, since the parity check matrix H has a size of about 1000 × 2000 or more, many operations are required in the encoding and decoding process, implementation is very complicated, and requires a lot of storage space. In other words, as the size of the data block increases, the error correction capability of the LDPC becomes stronger, but there is a problem that the amount of computation and processing space required by the processor also increase. As a technique for solving such a problem, Korean Patent Laid-Open Publication No. 10-2007-0058438 (Encoding, Decoding Method and Apparatus Using Low Density Parity Check Code in a Wireless Communication System).
개시된 기술이 이루고자 하는 기술적 과제는 저장공간을 줄이면서, 연산 속도 및 성능을 향상시킬 수 있는 부호화 방법 및 복호화 방법을 제공하는 데 있다. 또한, 병렬연산을 통하여 연산 처리속도를 높일 수 있으므로, 개시된 기술에서는 병렬 연산에 적합한 코드를 제공하고자 한다.The technical problem to be achieved by the disclosed technology is to provide an encoding method and a decoding method that can improve the operation speed and performance while reducing the storage space. In addition, since the operation processing speed can be increased through parallel operation, the disclosed technology provides a code suitable for parallel operation.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 제1 측면은 (a) 정보 비트열을 구성하는 정보 비트들 중 선택된 정보 비트들에 따라 부호화 상태를 결정하는 단계; (b) 상기 부호화 상태에 기반하여 상태-체크 비트들을 결정하는 단계; (c) 상기 정보 비트열을 구성하는 정보 비트들 중 새로이 선택된 정보 비트들을 이용하여 상기 (a) 단계 및 상기 (b) 단계를 수행함을 적어도 1회 반복하는 단계; 및 (d) 상기 정보 비트열 및 상기 상태-체크 비트들을 결합하여 부호어를 생성하는 단계를 포함하는 부호화 방법을 제공한다.In order to achieve the above technical problem, a first aspect of the disclosed technology comprises: (a) determining an encoding state according to selected information bits among information bits constituting an information bit string; (b) determining state-check bits based on the encoding state; (c) repeating steps (a) and (b) at least once using newly selected information bits of the information bits constituting the information bit string; And (d) combining the information bit string and the state-check bits to generate a codeword.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 제2 측면은 (a) 정보 비트들이 상태-체크 비트들과 결합된 부호화 신호를 수신하는 단계; (b) 제1 메시지의 값-상기 제1 메시지의 값은 상기 부호화 신호의 각 비트의 주변 비트들의 가능도(likelihood)에 기반하여 추정된 상기 각 비트의 가능도를 나타냄-들을 기초로 제2 메시지의 값들을 산출하는 단계; (c) 상기 정보 비트들에 따른 부호화 상태 천이를 나타내는 트렐리스에 기반한 BCJR 알고리즘을 이용하여, 상기 제2 메시지의 값들을 기초로 제1 메시지의 값들을 산출하는 단계; (d) 새로이 산출되는 상기 제1 메시지의 값들 및 상기 제2 메시지의 값들을 이용하여 상기 (b) 단계 및 상기 (c) 단계를 수행함을 반복하는 단계; 및 (e) 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 단계를 포함하는 복호화 방법을 제공한다.A second aspect of the disclosed technology to achieve the above technical problem comprises the steps of: (a) receiving an encoded signal in which information bits are combined with state-check bits; (b) a second value based on the value of the first message, wherein the value of the first message indicates the likelihood of each bit estimated based on the likelihood of the surrounding bits of each bit of the encoded signal. Calculating values of the message; (c) calculating values of the first message based on the values of the second message using a trellis based BCJR algorithm indicating a transition state of encoding according to the information bits; (d) repeating steps (b) and (c) using the newly calculated values of the first message and the values of the second message; And (e) determining the value of each bit according to the likelihood of each bit estimated based on the values of the first message calculated in the last iteration.
개시된 기술의 실시 예들은 다음의 장점들을 포함하는 효과를 가질 수 있다. 다만, 개시된 기술의 실시 예들이 이를 전부 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다. 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.
개시된 기술의 일 실시 예에 따른 상태-체크 코드(State check code: SC 코드)는 한 번의 연산 과정으로 종래의 패리티 비트보다 많은 비트 수를 가지는 상태-체크 비트(State Check 비트: SC 비트)를 생성한다. 이러한 SC 코드를 결합하여 부호화하는 방식인 결합 상태-체크 코드(Unitive State-Check 코드: USC 코드)를 이용한 부호화 방법에서는, 종래 LDPC 코드를 이용한 부호화 방법에서 M(M=N-K, N은 부호어의 길이, K는 정보 블록의 길이)개의 콤포넌트 코드가 필요하던 것과 달리, 개(NSC는 각 SC 비트들의 길이)의 SC 코드만이 필요하다는 장점이 있다. A state check code (SC code) according to an embodiment of the disclosed technology generates a state check bit (SC bit) having a larger number of bits than a conventional parity bit in one operation. do. In a coding method using a unitary state-check code (USC code), which is a method of combining and encoding such SC codes, in the conventional coding method using an LDPC code, M (M = NK, N is a codeword). Unlike the length, K is the length of the information block) component codes, An advantage is that only SC SCs (N SC is the length of each SC bit) are needed.
개시된 기술에 따른 USC 코드를 이용한 부호화 또는 복호화 방법의 경우, 종래의 코딩 방식(예컨대, LDPC 코드)보다 부호화 및 복호화 속도가 빠르다는 장점이 있다. 또한, USC 코드를 이용한 부호화 또는 복호화 방법은 향상된 오류 정정 성능을 보이면서도, 필요로 하는 저장 공간이 종래에 비하여 작으며, 병렬 프로세싱이 용이하다는 장점이 있다.In the encoding or decoding method using the USC code according to the disclosed technology, there is an advantage that the encoding and decoding speed is faster than the conventional coding scheme (for example, LDPC code). In addition, the encoding or decoding method using the USC code has an advantage that the required storage space is small and parallel processing is easy while showing improved error correction performance.
도 1은 개시된 기술의 일 실시예에 따라, 부호화 장치가 USC 코드를 이용하여 부호화하는 방법을 설명하기 위한 순서도이다.
도 2는 개시된 기술의 일 실시예에 따라, 부호화 장치의 상태가 천이 되는 과정 및 SC 비트가 결정되는 과정을 설명하기 위한 도면이다.
도 3은 개시된 기술의 일 실시예에 따라 부호화 장치의 레지스터 값이 변경되는 과정을 설명하기 위한 도면이다.
도 4는 개시된 기술의 일 시시예에 따라 SC 통합 행렬 A를 사용하여 부호화하는 과정을 설명하기 위한 도면이다.
도 5는 개시된 기술의 일 실시예에 따라, USC 코드를 이용하여 복호화하는 방법을 설명하기 위한 도면이다.1 is a flowchart illustrating a method of encoding by a coding apparatus using a USC code, according to an embodiment of the disclosed technology.
2 is a diagram for describing a process of transitioning a state of an encoding apparatus and a process of determining an SC bit, according to an embodiment of the disclosed technology.
3 is a diagram for describing a process of changing a register value of an encoding apparatus according to an embodiment of the disclosed technology.
FIG. 4 is a diagram for describing a process of encoding using SC integration matrix A according to one embodiment of the disclosed technology.
5 is a diagram for describing a method of decoding using a USC code, according to an embodiment of the disclosed technology.
개시된 기술에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 개시된 기술의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 개시된 기술의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.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. .
LDPC 코드는 블록 길이가 104 이상인 경우에는 터보 코드보다 향상된 성능을 보이지만, 부호화 및 복호화 과정에서 많은 연산이 필요하고, 구현이 매우 복잡하며, 많은 저장 공간을 필요로 한다는 등 여러 가지 문제점을 가지고 있다. 개시된 기술에서는 종래의 LDPC 코드보다 향상된 오류 정정 성능을 보이면서도 연산속도가 빠르고, 병렬 프로세싱이 용이한 부호화 및 복호화 방식을 제안한다. 개시된 기술에서는, 기존의 패리티-체크 개념에 대응되는 상태-체크 개념을 새로이 도입하여, 결합 상태-체크 코드(USC 코드)를 이용한 부호화 및 복호화를 수행한다. 이하, 개시된 기술에서 새로이 제안하는 USC 코드를 도면을 참조하여 설명한다. The LDPC code shows better performance than the turbo code when the block length is 10 4 or more, but it has various problems such as requiring a lot of operations in the encoding and decoding process, implementation is very complicated, and requires a lot of storage space. . The disclosed technology proposes an encoding and decoding method that exhibits improved error correction performance compared to the conventional LDPC code and has a faster operation speed and easier parallel processing. In the disclosed technology, a state-check concept corresponding to an existing parity-check concept is newly introduced to perform encoding and decoding using a combined state-check code (USC code). Hereinafter, the USC code newly proposed in the disclosed technology will be described with reference to the drawings.
도 1은 개시된 기술의 일 실시예에 따라, 부호화 장치가 USC 코드를 이용하여 부호화하는 방법을 설명하기 위한 순서도이다. 개시된 기술에 따르면, 부호화기는 부호화 하려는 정보 비트들 중 적어도 일부인 입력 비트들에 따라, 부호화 상태를 결정하고, 결정된 최종 부호화 상태에 따라 SC 비트들을 결정하는 과정을 복수 회 반복하여, 복수 회 출력되는 각각의 SC 비트들을 결합한다. 결합된 SC 비트들은 정보 비트들과 함께 전송됨으로써, 정보 비트들의 전송 오류를 정정할 수 있도록 한다. 각 SC 비트들의 길이, 즉, 비트 수 NSC는 2 이상의 정수로서, 오류정정 성능, 부호화 속도, 연산 속도, 필요로 하는 저장 공간 등을 고려하여 적절한 수로 결정될 수 있다. 이하, NSC의 수가 2인 경우를 중심으로 설명하나, 이에 한정되는 것은 아니며 NSC는 3, 4 등의 정수가 될 수도 있다.1 is a flowchart illustrating a method of encoding by a coding apparatus using a USC code, according to an embodiment of the disclosed technology. According to the disclosed technology, the encoder is configured to determine an encoding state according to input bits that are at least some of the information bits to be encoded, and to repeatedly determine the SC bits according to the determined final encoding state a plurality of times, each outputted a plurality of times. Combine the SC bits of. The combined SC bits are transmitted with the information bits, thereby making it possible to correct a transmission error of the information bits. The length of each SC bit, that is, the number of bits N SC is an integer of 2 or more, and may be determined in an appropriate number in consideration of error correction performance, encoding speed, arithmetic speed, required storage space, and the like. Hereinafter, a description will be given focusing on the case where the number of N SCs is 2, but the present invention is not limited thereto, and the N SCs may be integers such as 3 and 4.
부호화 장치는 우선, 부호화하려는 정보 비트열(b k )의 비트들 중 적어도 일부의 정보 비트들을 선택한다(S110). 도 1에서 확인할 수 있듯이 S110 단계 내지 S140 단계는 설정된 횟수만큼(예컨대, G 회 만큼) 반복되는데, 매 반복마다 정보 비트열의 비트들 중 적어도 일부의 정보 비트들이 새로이 선택되고, 새로이 선택되는 정보 비트들을 이용하여 각 SC 비트들이 결정된다. 또한, 실시 예에 따라, 부호화 장치는 정보 비트들뿐 아니라, 이전의 반복에서 결정된 SC 비트들 중 적어도 일부 비트를 함께 선택하여 이후의 부호화 과정에 사용할 수 있다. 부호화 장치는 각 SC 비트들을 결정할 때마다 부호화 상태를 초기화 한다(S120). 초기화된 부호화 상태는 상태 0(zero state)이라 가정한다. The encoding apparatus first selects at least some information bits among the bits of the information bit string b k to be encoded (S110). As can be seen in FIG. 1, steps S110 to S140 are repeated a predetermined number of times (for example, G times). At each repetition, at least some information bits of the bits of the information bit string are newly selected and newly selected information bits are selected. Each SC bit is determined using. In addition, according to an embodiment, the encoding apparatus may select not only information bits but also at least some of the SC bits determined in the previous repetition together and use them in a subsequent encoding process. The encoding apparatus initializes the encoding state whenever determining each SC bit (S120). It is assumed that the initialized coding state is a zero state.
부호화 장치는 정보 비트열을 구성하는 정보 비트들 중 선택된 정보 비트들에 따라 부호화 상태를 결정한다(S130). 실시예에 따라, S110 단계에서 SC 비트들 중 일부 비트를 선택한 경우, S130 단계에서, 부호화 장치는 선택된 정보 비트들과 선택된 SC 비트들(이하, 선택된 비트들)에 따라 부호화 상태를 결정한다. 부호화 장치는 S132 단계 및 S134 단계를 선택된 비트들의 수만큼 반복하고, 마지막 반복에서의 부호화 장치의 상태를 부호화 상태로 결정할 수 있다.The encoding apparatus determines an encoding state according to the selected information bits among the information bits constituting the information bit stream (S130). According to an embodiment, when some bits of the SC bits are selected in operation S110, in operation S130, the encoding apparatus determines an encoding state according to the selected information bits and the selected SC bits (hereinafter, selected bits). The encoding apparatus may repeat steps S132 and S134 by the number of selected bits, and determine the encoding state as the encoding state in the last iteration.
S132 단계에서, 부호화 장치는 선택된 비트들 중 이전에 입력되지 않은 어느 하나의 비트를 입력받는다. 예컨대, 부호화 장치는 선택된 비트들을 각각 순차적으로 하나씩 입력받을 수 있다. 어느 하나의 비트가 입력되면, 부호화 장치는 입력받은 비트에 따라 현재 상태에서 다음 상태로 천이한다(S134). 부호화 장치가 가질 수 있는 상태 수는 Ns 이다. 현재 상태는 이전에 입력된 비트들을 기초로 Ns 개의 상태들 중 어느 하나의 상태로 결정된다. 현재 상태는, 첫 번째 반복에서는 상태 0으로 초기화되며, 그 이후의 반복에서는 이전 반복에서 천이 된 상태가 현재 상태가 된다. 다음 상태는, 현재 상태에 상응하는 두 개의 상태들 중 현재 입력되는 비트에 따라 결정되는 어느 하나의 상태가 된다. 일 실시 예에 따라, Ns가 4인 경우 입력 비트들에 따라 부호화 상태가 천이 되는 과정이 도 2에 예시되어 있다. 도 2의 실시 예에서는 현재 상태가 상태 0일 때, 다음 상태는 상태 0 또는 상태 2가 될 수 있는데, 입력 비트가 0인 경우 다음 상태는 상태 0, 입력 비트가 1인 경우 다음 상태는 상태 2가 된다. 즉, 현재 상태에 따라, 다음 상태가 될 수 있는 두 개의 상태가 있고, 부호화 장치는 현재 상태에 상응하는 두 개의 상태들 중 입력받는 비트에 따라 결정되는 하나의 상태로 천이한다. In operation S132, the encoding apparatus receives one of the selected bits, which has not been previously input. For example, the encoding apparatus may receive one selected bit in sequence. If any one bit is input, the encoding apparatus transitions from the current state to the next state according to the received bit (S134). The number of states that an encoding device 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 to
현재 상태(k 번째 반복에서의 상태, Sk)와 다음 상태(k+1 번째 반복에서의 상태, Sk +1)가 수학식 1과 같이 표현될 때, 현재 상태와 다음 상태 간에는 실시예에 따라, 수학식 2 또는 수학식 3과 같은 관계가 성립될 수 있다.When the current state (state at the k-th iteration, S k ) and the next state (state at the k + 1 iteration, S k +1 ) are expressed as in
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.
ik는 현재의 반복에서 입력 받은 정보 비트, 는 배타적 논리합(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 current iteration, 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.
이때, 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, SC 비트의 수(NSC)가 2인 경우 중에서 도 2의 실시 예와 같이 상태가 천이 되는 경우를 예를 들어 설명한다. k번째 반복에서의 현재 상태가 두 개의 비트 [d1 , kd0 ,k]로 표현되고, 그 다음 상태가 [d1 ,k+1d0 ,k+1]로 표현될 때, 각 상태를 나타내는 비트들 간의 관계는 수학식 4와 같이 나타낼 수 있다.More specifically, the case where the state transitions as in the embodiment of FIG. 2 from the case where the state number N s is 4 and the number of SC bits N SC 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.
이때, 현재 상태 값이 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, SC 비트의 수(NSC)가 2인 경우 중에서, 다른 일 실시예에 따른 상태 천이 규칙은 수학식 5와 같이 나타낼 수 있다. Among the cases where the number of states N s is 4 and the number of SC bits N SC is 2, the state transition rule according to another embodiment may be expressed by Equation 5 below.
입력 받는 단계(S132) 및 천이하는 단계(S134)는 미리 설정된 횟수만큼 복수 회 반복한다(S136). 미리 설정된 횟수는, 일례로, S110 단계에서 선택된 비트들의 비트 수와 같을 수 있다. 즉, 부호화할 정보 비트열 중 선택된 정보 비트 또는 이전의 반복에서 결정된 SC 비트들 중 선택된 비트가 순차적으로 하나씩 입력되고(S132), 선택된 비트가 하나씩 입력될 때마다, 상태 천이가 수행된다(S134). 정보 비트열 중에서 선택되는 정보 비트들은 전체 정보 비트열을 구성하는 비트 수 보다 매우 작은 것이 바람직하나 반드시 이에 한정되는 것은 아니다.The step of receiving input (S132) and the step of transition (S134) are repeated a plurality of times a predetermined number of times (S136). The preset number of times may be, for example, the same as the number of bits of the bits selected in step S110. That is, the selected information bits of the information bit stream to be encoded or the selected bits of the SC bits determined in the previous iteration are sequentially input one by one (S132), and whenever the selected bits are input one by one, a state transition is performed (S134). . The information bits selected from the information bit strings are preferably smaller than the number of bits constituting the entire information bit string, but are not necessarily limited thereto.
부호화 장치는 선택된 비트들의 입력에 따라, 마지막 반복에서 천이된 상태 값을 기초로 SC 비트들을 결정한다(S140). 일 실시 예에 따라, 부호화 장치는 마지막 반복에서 천이된 상태가 미리 설정된 상태로 수렴하도록 하는 입력 비트들의 값을 SC 비트들로 결정한다. 예컨대, 마지막 반복에서 천이된 상태가 상태 0(Zero State)으로 수렴하도록 하는 입력 비트들의 값이 SC 비트가 된다. 보다 구체적으로, NS가 4이고, NSC가 2이며, 수학식 4와 같이 상태가 천이하는 도 2의 경우, SC 비트는 다음과 같이 결정된다. 마지막 반복에서 천이된 상태의 값이 상태 0인 경우, SC 비트는 [00], 마지막 반복에서 천이된 상태의 값이 상태 1인 경우, SC 비트는 [10], 마지막 반복에서 천이된 상태의 값이 상태 2인 경우, SC 비트는 [11], 마지막 반복에서 천이된 상태의 값이 상태 3인 경우, SC 비트는 [01]이 된다. 도 2를 참조하면, SC 비트가 마지막 반복 이후에 입력 비트로 들어간다고 가정했을 때, 마지막 반복에서의 상태가 결국 미리 설정된 상태인 상태 0으로 수렴하여 상태 천이가 종료하는 것을 확인할 수 있다. 도 2 및 위에서 설명한 예에서는 상태 0으로 수렴하는 경우를 가정하였으나, 수렴되는 상태는 이에 한정되는 것은 아니며 다른 상태로 수렴하는 것으로 결정하여도 무관하다. 한편, 상태 수가 NS인 경우, SC 비트들의 비트 수 NSC는 log2Ns가 된다.The encoding apparatus determines SC bits based on the state value transitioned in the last repetition according to the input of the selected bits (S140). According to an embodiment, the encoding apparatus determines SC bits as values of input bits for converging the state transitioned at the last iteration to a preset state. For example, the value of the input bits, which causes the transitioned state in the last iteration to converge to zero state, becomes the SC bit. More specifically, in the case of FIG. 2 where N S is 4, N SC is 2, and the state transitions as shown in Equation 4, the SC bit is determined as follows. If the value of the transitioned state in the last iteration is
부호화 장치는 미리 설정된 횟수 G 만큼 S110 단계 내지 S140 단계를 반복한다(S150). 부호화 장치는 매 반복마다 정보 비트들을 새로이 선택하며, 매 반복마다 SC 비트들을 결정한다. 각 SC 비트들이 결정되면, 부호화 장치는 복수 개의 각 SC 비트들을 결합한 비트들과 정보 비트열을 결합하여 부호어를 생성한다(S160). 정보 비트들의 비트 수가 K이고, 각 SC 비트들의 비트 수가 NSC이면, USC 코드의 부호 율은 이 된다.
The encoding apparatus repeats steps S110 to S140 as many times as the preset number G (S150). The encoding apparatus newly selects information bits every repetition and determines SC bits every repetition. When each SC bit is determined, the encoding apparatus generates a codeword by combining the bits combining the plurality of SC bits with the information bit string (S160). If the number of bits of information bits is K and the number of bits of each SC bit is N SC , the code rate of the USC code is .
도 2는 개시된 기술의 일 실시예에 따라, 부호화 장치의 상태가 천이되는 과정 및 SC 비트가 결정되는 과정을 설명하기 위한 도면이다. 도 2는 앞에서 언급한 바와 같이 NS가 4이고, NSC가 2이며, 수학식 4와 같이 상태가 천이되는 경우의 트렐리스(trellis) 다이어그램이다. 도 2에는 정보 비트가 입력됨에 따라 상태가 천이하는 반복적인 과정이 시간 흐름에 따라 펼쳐져 있다. 정보 비트의 입력에 따른 부호화 장치의 상태는 원형으로 표시되고, 각 상태 간을 연결하는 화살표 중 실선 화살표는 비트 0이 입력된 경우를, 점선 화살표는 비트 1이 입력된 경우를 나타낸다. 우선, 부호화 상태는 상태 0으로 초기화된다. 이후, 정보 비트가 입력되면, 현재 상태 및 입력되는 비트의 값에 따라 다음 상태로 천이된다. T=t0에서, 현재 상태 값은 초기화 값인 상태 0이다. 이후, 0이 입력되는 경우 상태 0으로, 1이 입력되는 경우 상태 2로 천이한다. 1이 입력되었다고 가정하는 경우, T=t1에서의 현재 상태 값은 상태 2가 된다. 이후, 마찬가지로 0이 입력되는 경우 상태 3으로, 1이 입력되는 경우 상태 1로 천이된다. 만약 0이 입력되었다고 가정하면, T=t2에서의 현재 상태 값은 상태 3이 된다. 이와 같이 정보 비트들이 입력됨에 따라 상태 천이가 반복된다. 부호화 장치는 선택된 비트들이 순차적으로 모두 입력되면, 마지막 반복에서의 상태를 부호화 상태로 결정하고, 부호화 상태에 따라 SC 비트들을 결정한다. 예를 들어, T=tK에서의 부호화 상태가 상태 2인 경우, SC 비트는 [11]이 된다. SC 비트는 마지막 반복에서의 상태를 특정 상태, 즉, 상태 0으로 수렵하게 만드는 입력 비트의 값으로 결정된다. 도 2를 참조하면, 부호화 상태가 상태 2인 경우, 비트 1이 입력되면 상태 1이 되고, 상태 1에서 다시 비트 1이 입력되면 상태 0이 되는 것을 확인할 수 있다. 이와 같이 마지막으로 정보 비트가 입력된 때의 부호화 상태에 따라 SC 비트 값이 결정되므로, 수신 측에서는 반대로 SC 비트를 이용하여 전송된 데이터의 오류가 있는지 여부를 판단할 수 있다.
2 is a diagram for describing a process of transitioning a state of an encoding apparatus and a process of determining an SC bit, according to an embodiment of the disclosed technology. FIG. 2 is a trellis diagram when N S is 4, N SC 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. The state of the encoding apparatus according to the input of the information bits is displayed in a circle, and a solid line arrow indicates a case where
도 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 for describing a process of changing a register value of an encoding apparatus according to an embodiment of the disclosed technology. The value stored in the register of the encoding device indicates the encoding state. The
도 4는 개시된 기술의 일 시시예에 따라 SC 통합 행렬 A를 사용하여 부호화하는 과정을 설명하기 위한 도면이다. 도 4의 행렬 A를 사용하여 정보 비트열을 부호화 하는 과정은, 도 1의 실시 예에 포함되므로 도 1에서 설명한 내용은 본 실시 예에서도 동일하게 적용될 수 있다.FIG. 4 is a diagram for describing a process of encoding using SC integration matrix A according to one embodiment of the disclosed technology. Since the process of encoding the information bit stream using the matrix A of FIG. 4 is included in the embodiment of FIG. 1, the description of FIG. 1 may be equally applied to the embodiment.
도 4의 (a)는 G행 N열의 SC 통합 행렬 A(G by N SC Unifying matrix A)를 나타낸다. 행렬 A는 USC 코드를 이용하여 정보 비트열을 부호화 하는 과정을 구조적으로 표현할 수 있다. 행렬 A는 도 1의 S110 내지 S140 단계를 G회 반복하면서 정보 비트열 b k 에서 정보 비트들을 선택하고(S110), 선택된 비트들을 이용하여 SC 비트들을 결정하는(S140) 과정을 G행의 행렬로 표현한다. 행렬 A는 LDPC 코드에서 생성 행렬(generator matrix)의 역할을 수행할 수 있다. G번의 반복 중 i번째 반복에서 정보 비트열 b k 에서 선택되는 비트의 수는 m(i)라 하고, 정보 비트열 b k 을 구성하는 K개의 비트 중 j번째 비트가 반복하여 선택되는 수를 q(j)라 한다. 행렬 A는 이진(binary) 행렬로서, 행렬의 구성요소 ai ,j의 값은 ai ,π(l)를 제외하고 모두 0값을 가진다. π(l)은 i번째 반복에서 선택된 m(i)개의 비트들 중 l번째 선택된 비트의 열 인덱스 j를 의미한다. j= π(l)인 ai ,j(즉, ai ,π(l))의 값은 1이다. FIG. 4A illustrates a G by N SC Unifying matrix A of G rows N columns. The matrix A may structurally represent a process of encoding an information bit string using a USC code. The matrix A repeats steps S110 to S140 of FIG. 1, selecting information bits from the information bit string b k (S110), and determining SC bits using the selected bits (S140) as a matrix of rows G. FIG. Express. The matrix A may serve as a generator matrix in the LDPC code. The number of bits selected from the information bit string b k in the i iterations of the G repetitions is m (i), and the number of repeatedly selected jth bits of the K bits constituting the information bit string b k is q. It is called (j). The matrix A is a binary matrix, and the values of the components a i and j of the matrix have all zero values except a i and pi (l) . π (l) means the column index j of the l-th selected bit among the m (i) bits selected in the i-th iteration. The value of a i , j (ie a i , π (l) ) with j = π (l) is 1.
도 4의 (a)에는 10 by 40 행렬 A가 도시되어 있다. 도 4의 (a)에 도시된 행렬 A는 G=10으로, S110 단계 내지 S140 단계를 10번 반복한다. K=20으로, 정보 비트열 b k 의 비트 수는 20이고, SC 비트들의 비트 수 NSC는 2이다. SC 비트들을 결정하는 과정이 10번 반복되므로 총 결정되는 SC 비트 블록의 길이 N-K는 20이다. 행렬 A에서 회색 음영 부분은 모두 0값을 가진다. 첫 번째 행에서 3, 4, 9, 14, 16, 17 번째 열이 1 값을 가지므로, 첫 번째 반복에서는 정보 비트열 b k 의 정보 비트들 중 3, 4, 9, 14, 16, 17 번째 비트들이 선택되어 S130 단계가 수행된다. 나머지 열도 마찬가지로 해석될 수 있다. 한편, S110 단계에서는, 일 실시 예에 따라, K개의 정보 비트 열에 이전의 반복에서 결정된 SC 비트들도 포함하여 부호화 장치에 입력될 비트들을 선택할 수 있다. 예컨대, 네 번째 행에서 6, 14, 15, 16, 22 번째 열이 1값을 가지므로, 네 번째 반복에서는 b k 의 정보 비트들 중 6, 14, 15, 16 번째 비트와, 첫 번째 SC 비트들 중 두 번째 비트를 선택하여 S130 단계를 수행한다. 도 4의 (b)는 행렬 A를 이용하여 부호화 하는 과정을 설명한다. 일 실시 예에 따라, 부호화 장치가 생성하는 부호어 c는 [b k b p ]인 길이 N의 비트 열일 수 있다. b p 는 G개의 SC 비트들을 포함하는 G·NSC길이의 SC 비트 열일 수 있다. 부호화 장치가 도 3과 같은 RSR을 포함하여 부호화를 수행한다고 가정한다. 부호화 장치는 SC 비트들을 결정하는 과정을 G회 반복한다. 부호화 장치는 매 반복마다 RSR의 상태를 초기화 한다. 부호화 장치는 매 반복마다, 선택된 m(i)개의 비트들을 순차적으로 RSR에 입력시킨다. 마지막 입력된 비트에 따른 RSR의 부호화 상태에 따라, 부호화 상태가 특정 상태(예컨대, 상태 0)로 수렴하도록 하는 입력 비트들을 SC 비트들로 결정한다. i번째 결정된 SC 비트들은 부호어 C의 K+2i-2, K+2i-1,...번째 비트가 된다. 이와 같은 과정을 G번 반복하면 b P 의 모든 SC 비트들이 결정되며, 부호화 장치는 부호어 C를 출력한다.
In FIG. 4A, a 10 by 40 matrix A is illustrated. The matrix A shown in FIG. 4A is G = 10, and the steps S110 to S140 are repeated 10 times. With K = 20, the number of bits of the information bit string b k is 20, and the number of bits N SC of the SC bits is two. Since the process of determining the SC bits is repeated 10 times, the length NK of the total SC bit block determined is 20. The gray shaded parts of matrix A all have zero values. In the first row, the 3rd, 4th, 9th, 14th, 16th, 17th column has a value of 1, so in the first iteration, the 3rd, 4th, 9th, 14th, 16th, 17th of the information bits of the information bit string b k The bits are selected and step S130 is performed. The remaining columns can be interpreted as well. In operation S110, according to an embodiment, the bits to be input to the encoding apparatus may be selected, including SC bits determined in a previous iteration, in the K information bit streams. For example, in the fourth row, since the sixth, fourteenth, fifteenth, sixteenth, and twenty-second columns have a value of 1, in the fourth iteration, the sixth, fourteenth, fifteenth, sixteenth bits of the information bits of b k , and the first SC bit. The second bit is selected to perform the step S130. 4B illustrates a process of encoding using the matrix A. Referring to FIG. According to an embodiment, the codeword c generated by the encoding apparatus may be a bit string having a length N of [ b k b p ]. b p may be a SC bit string of G · N SC length including G SC bits. It is assumed that the encoding apparatus performs encoding including the RSR shown in FIG. 3. The encoding apparatus repeats the process of determining SC bits G times. The encoding apparatus initializes the state of the RSR every iteration. The encoding apparatus sequentially inputs the selected m (i) bits to the RSR every iteration. According to the encoding state of the RSR according to the last input bit, input bits for causing the encoding state to converge to a specific state (eg, state 0) are determined as SC bits. The i-th determined SC bits become the K + 2i-2, K + 2i-1, ... th bits of the codeword C. Repeating this process G times, all SC bits of b P are determined, and the encoding apparatus outputs codeword C.
도 5는 개시된 기술의 일 실시예에 따라, USC 코드를 이용하여 복호화 하는 방법을 설명하기 위한 도면이다. 개시된 기술에 따른 USC 코드는 종래 LDPC 코드가 패리티 체크를 위해 tanh 규칙을 사용하였던 것과 달리, BCJR 알고리즘을 사용하여 복호화 할 수 있다. 이하, 이해를 돕기 위하여 복호화 장치가 도 2의 트렐리스에 기반한 BCJR 알고리즘을 이용하여 수신 데이터를 복호화하는 과정을 예를 들어 설명한다. 본 실시 예와 관련하여 LDPC 복호화 방식이 동일하게 적용될 수 있는 부분은 간단히 언급되거나 생략될 수 있다.5 is a diagram for describing a method of decoding using a USC code, according to an embodiment of the disclosed technology. The USC code according to the disclosed technique can be decoded using the BCJR algorithm, unlike the conventional LDPC code using the tanh rule for parity check. Hereinafter, for the sake of understanding, a process of decoding the received data using the BCJR algorithm based on the trellis of FIG. 2 will be described as an example. In relation to the present embodiment, a part to which the LDPC decoding scheme is equally applicable may be simply mentioned or omitted.
SC 결합 행렬 A는 도 4에서와 같이 부호화 과정에서 사용되는 한편, 복호화 과정에서도 사용될 수 있다. 복호화 과정에서 행렬 A는 LDPC 코드를 이용한 복호화에서 패리티 체크 매트릭스와 같은 역할을 수행한다. LDPC의 복호화 과정에서와 같이, Tanner Graph에 기반하여, USC코드는 양 측으로 나뉘어진 노드 들과 한 측의 노드에서 타 측의 노드로 연결된 가지(edge)들로 표현될 수 있다. 양 측의 노드들 중 한 측의 노드들은 부호어의 각 비트들을 의미하는 변수 노드들(variable nodes)이며, 타 측의 노드들은 SC 규칙(SC constraints)과 관련된 SC 노드들(state check nodes)이다. 가지를 따라 한 측의 노드에서 타 측의 노드로 메시지를 전달하고, 전달 받은 메시지를 기초로 전달할 메시지를 갱신하는 과정을 반복하는 것으로 복호화 과정을 설명할 수 있다. 메시지 전달 및 갱신 과정이 반복될수록 복호화의 정확도가 높아진다. 이때, 메시지는 부호화 신호 중 해당하는 비트의 가능도(likelihood)에 관한 정보를 포함한다. 가능도는 해당 비트가 1 또는 0 값을 가질 가능성의 정도를 의미한다. 가능도를 표현하는 지표로, 대수 가능도 비(Log Likelihood Ratio: LLR)가 사용되는 경우를 예를 들어 설명하나, 이에 제한되는 것은 아니다. 일 예로, 변수 노드들은 행렬 A의 열(column)의 개수(부호어의 길이 N)만큼 있을 수 있으며, SC 노드들은 행렬 A의 행(row)의 개수(한 부호어에 대한 SC 비트들 생성 횟수 G) 만큼 있을 수 있다. 여기서, N개의 변수 노드들의 순서는 j로 표시하고, G개의 SC 노드들의 순서는 i로 표시한다. 변수 노드들과 SC 노드들은 행렬 A의 원소 ai ,j의 값이 1일 때마다, i번째 SC 노드와 j번째 변수 노드가 가지(edge)로 연결된다. 이때, i번째 SC 노드와 연결되는 변수 노드들의 수를 m(i)라 하며, m(i)개의 변수 노드들의 순서를 l로 표현했을 때, l과 j의 관계는 j=π(l)로 표시한다. 예컨대, m(i)개의 변수 노드들 중 세 번째 변수 노드는 전체 N개의 변수 노드들 중 j=π(3)번째 변수 노드에 해당한다. 도 4의 행렬 A의 경우라면, i가 2인 경우, π(3)인 j값은 7이다. 마찬가지로, j번째 변수 노드와 연결되는 SC 노드들의 수를 q(j)라 하며, q(j)개의 SC 노드들의 순서를 k라 표현했을 때, k와 i의 관계는 i=σ(k)로 표시한다. 즉, q(j)개의 SC 노드들 중 k번째 노드는, G개의 SC 노드들 중 i=σ(k)번째 노드에 해당한다. SC 노드에서는 SC 규칙에 따라 각 SC 노드에서 변수 노드로 전달하는 메시지를 갱신한다. 도 5를 참조하여 USC 코드를 이용한 복호화 방법을 설명하면 다음과 같다. The SC coupling matrix A may be used in the encoding process as shown in FIG. 4 and may also be used in the decoding process. In the decoding process, the matrix A plays the same role as a parity check matrix in decoding using an LDPC code. As in the LDPC decoding process, based on the Tanner Graph, the USC code may be represented by nodes divided into two sides and edges connected from one node to another node. The nodes on one side of the nodes are variable nodes meaning each bit of the codeword, and the nodes on the other side are SC checks related to SC constraints. . The decoding process can be described by repeating a process of transmitting a message from one node to another node along the branch and updating a message to be delivered based on the received message. As the message delivery and update process is repeated, the accuracy of decryption increases. In this case, the message includes information on the likelihood of the corresponding bit in the coded signal. Likelihood refers to the degree of likelihood that a bit has a value of 1 or 0. As an index representing the likelihood, a case in which a log likelihood ratio (LLR) is used will be described as an example, but is not limited thereto. For example, the variable nodes may be as many as the columns of the matrix A (the length of the codeword N), and the SC nodes are the number of rows of the matrix A (the number of SC bits generated for one codeword). G) There can be as many. Here, the order of the N variable nodes is denoted by j, and the order of the G SC nodes is denoted by i. The variable nodes and the SC nodes are connected to the i th SC node and the j th variable node by edges whenever the values of elements a i and j of the matrix A are 1. In this case, the number of variable nodes connected to the i-th SC node is called m (i), and when the order of m (i) variable nodes is expressed as l, the relationship between l and j is j = π (l). Display. For example, the third variable node of the m (i) variable nodes corresponds to the j = π (3) th variable node of the total N variable nodes. In the case of the matrix A of FIG. 4, when i is 2, the j value of π (3) is 7. Similarly, when the number of SC nodes connected to the j th variable node is q (j), and the order of q (j) SC nodes is expressed as k, the relationship k and i is i = σ (k). Display. That is, the k th node among the q (j) SC nodes corresponds to the i = σ (k) th node among the G SC nodes. The SC node updates the message from each SC node to the variable node according to SC rules. The decoding method using the USC code will be described with reference to FIG. 5.
S510 단계에서 복화화 장치는 정보 비트들이 상태-체크 비트들과 결합된 부호화 신호를 수신한다. 일 실시예에 따라, 복호화 장치는 수신된 부호화 신호를 기초로 부호화 신호의 각 비트들의 가능도 L 및 제1 메시지 U를 초기화 할 수 있다(S520). Lj는 N 비트의 부호화 신호 중 j번째 비트(bj)의 LLR을 의미한다. 제1 메시지 U는 SC 노드가 변수 노드에 제공하는 메시지이다. Ui ,j는 i번째 SC 노드가 j번째 변수 노드에 제공하는 메시지로, i번째 SC 노드가 추정한 bj의 LLR을 값으로 가진다. U0 ,j는 수신된 부호화 신호 값을 기초로 추정된 bj의 관측 LLR 값이다. U0 ,j를 제외한 Ui ,j는 모두 0으로 초기화되고, Lj 값은 U0 ,j의 값으로 초기화된다. In operation S510, the decoding apparatus receives an encoded signal in which information bits are combined with state-check bits. According to an embodiment, the decoding apparatus may initialize the likelihood L and the first message U of each bit of the encoded signal based on the received encoded signal (S520). L j means the LLR of the j th bit (b j ) of the N-bit encoded signal. The first message U is a message provided by the SC node to the variable node. U i , j is a message provided by the i th SC node to the j th variable node, and has a value L L of b j estimated by the i th SC node. U 0 , j is an observed LLR value of b j estimated based on the received coded signal value. U 0, U i, j except for j is initialized to 0, L j values are initialized to the value of U 0, j.
S530 단계에서 복화화 장치는 제1 메시지의 값들을 기초로 제2 메시지의 값들을 산출한다. 일 실시 예에 따라, j번째 변수 노드에서는 j번째 변수 노드와 연결된 q(j)개의 SC 노드들로부터 제공되는 q(j)개의 제1 메시지 Uσ(k),j(이때, k는 1부터 q(j)사이의 정수)들을 기초로 제2 메시지 V가 산출된다. 산출되는 q(j)개의 제2 메시지 Vj ,σ(k)(이때, k는 1부터 q(j)사이의 정수)들은 j번째 변수 노드가 q(j)개의 SC 노드들 각각에 제공하는 bj의 LLR 값이다. 그 중 σ(n)=i번째 SC 노드에 제공하는 제2 메시지 Vj ,σ(n)=Vj ,i는, 일 실시예에 따라, 수학식 6과 같이 산출될 수 있다. 이때, σ(0)=0으로 정의한다. In operation S530, the decoding apparatus calculates values of the second message based on the values of the first message. According to an embodiment, in the j th variable node, q (j) first messages U σ (k), j provided from q (j) SC nodes connected with the j th variable node, where k is from 1 a second message V is calculated based on the integers between q (j). The calculated q (j) second messages V j , σ (k) , where k is an integer between 1 and q (j), are provided by the j th variable node to each of the q (j) SC nodes. is the LLR value of b j . Among them, the second message V j , σ (n) = V j , i provided to the σ (n) = i-th SC node may be calculated as in Equation 6 according to an embodiment. At this time, it is defined as σ (0) = 0.
j번째 변수 노드가 제공하는 제2 메시지는 j번째 변수 노드와 연결된 SC 노드들이 j번째 변수 노드에 제공하는 bj의 LLR 값(Uσ(k),j)들 및 U0 ,j의 합으로 산출될 수 있는데, 이때, i번째 SC 노드에 제공하는 제2 메시지 Vj ,i는 i번째 SC 노드로부터 제공 받은 제1 메시지 Ui ,j의 값은 제외하고 합산된 값으로 결정된다. The second message provided by the j-th variable node is the sum of the LLR values (U σ (k), j ) of b j and U 0 , j provided by the SC nodes connected to the j-th variable node to the j-th variable node. In this case, the second message V j , i provided to the i-th SC node is determined as a sum value except for the value of the first message U i , j provided from the i-th SC node.
S540 단계에서, 복화화 장치는 제2 메시지의 값들을 기초로 제1 메시지의 값들을 산출한다. 일 실시예에 따라, 복호화 장치는, i번째(이때, i는 1≤i≤G) 그룹에 포함된 비트들에 대한 제2 메시지의 값들을 기초로 i번째 그룹에 포함된 비트들에 대한 제1 메시지의 값들을 산출하는 과정을 각 그룹에 대하여 수행한다. 여기서, i번째 그룹에 포함된 비트들이란, 행렬 A의 i번째 행에서 1 값을 가지는 열에 상응하는 비트들로, i번째 SC 노드에 연결된 변수 노드들에 상응하는 비트들을 의미한다. 제1 메시지의 값은 각 SC 노드들이 각 SC 노드와 연결된 비트들에 대하여 추정하는 각 비트들의 가능도(likelihood)로서, 각 SC 노드와 연결된 비트들 중 각 비트의 주변 비트들의 가능도에 기반하여 추정된다. 예컨대, Ui ,j는 i번째 SC 노드가 j번째 변수 노드에 제공하는 제1 메시지의 값으로, i번째 SC 노드와 연결된 m(i)개의 변수 노드들로부터 제공되는 제2 메시지들 중 j 번째 변수 노드로부터 제공되는 제2 메시지를 제외한 제2 메시지들을 기초로 추정되는 값이다. 즉, m(i)개의 비트 중 j번째 비트 이외의 비트들의 LLR 값을 기초로 추정되는 bj의 LLR이다. 복호화 장치는 tanh 규칙을 사용하는 LDPC 코드와 달리, BCJR 알고리즘을 이용하여 제1 메시지 값을 산출할 수 있다. 본 실시 예에서 BCJR 알고리즘은 부호화 신호에 따른 부호화 상태 천이를 나타내는 트렐리스(예컨대, 도 2의 트렐리스)에 기반하여 수행된다. BCJR 알고리즘은 트렐리스의 각 상태들에 상응하는 포워드 상태 메트릭(α) 및 백워드 상태 메트릭(β)을 순차적으로 산출한 뒤, 이를 이용하여 사후 확률을 계산하여 전송 비트의 연판정(soft decision)값을 얻을 수 있다. 시간 t에서의 사후 확률은 시간 t에서의 사후 천이 확률들의 합으로 계산될 수 있다. 시간 t에서의 사후 확률은 수학식 7과 같고, 사후 천이 확률은 수학식 8과 같다. In operation S540, the demodulation device calculates values of the first message based on the values of the second message. According to an embodiment of the present disclosure, the decoding apparatus is further configured to perform operations on bits included in the i-th group based on values of the second message for bits included in the i-th group (where i is 1≤i≤G). 1 The process of calculating the values of the message is performed for each group. Here, the bits included in the i-th group are bits corresponding to a column having a value of 1 in the i-th row of the matrix A, and mean bits corresponding to variable nodes connected to the i-th SC node. The value of the first message is the likelihood of each bit that each SC node estimates for the bits associated with each SC node, based on the likelihood of the neighboring bits of each bit of the bits associated with each SC node. It is estimated. For example, U i , j is the value of the first message provided by the i th SC node to the j th variable node, and j j of the second messages provided from m (i) variable nodes connected to the i th SC node. A value estimated based on the second messages except the second message provided from the variable node. That is, L j of b j estimated based on LLR values of bits other than the j th bit among the m (i) bits. Unlike the LDPC code using the tanh rule, the decoding device may calculate the first message value using the BCJR algorithm. In the present embodiment, the BCJR algorithm is performed based on a trellis (eg, the trellis of FIG. 2) indicating a coding state transition according to an encoded signal. The BCJR algorithm sequentially calculates the forward state metric (α) and the backward state metric (β) corresponding to each state of the trellis, and then calculates the posterior probability by using the soft decision of the transmission bit. Value can be obtained. 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, and the post-transition probability is expressed by Equation 8.
여기서, 사후 확률 P(dt=d)는 시간 t에서의 전송 비트 값이 d(d는 0또는 1)일 확률이다. σ(st,st +1)는 시간 t에서의 사후 천이 확률로, σ(st=a,st +1=b)는 시간 t에서의 상태(st)가 상태 a이고, 시간 t+1에서의 상태(st +1)가 상태 b일 확률을 의미한다. 이때, 상태 b는, 시간 t에서의 상태가 상태 a이고, 시간 t에서의 전송 비트 값이 d일 때 시간 t+1에서 천이된 상태 값이다. st는 상태 수 Ns 만큼 주어진 부호화 상태들 중 어느 하나의 값을 가진다. Here, the posterior probability P (d t = d) is a probability that the transmission bit value at time t is d (d is 0 or 1). σ (s t , s t +1 ) is the probability of post-transition at time t, σ (s t = a, s t +1 = b) is that state at time t (s t ) is state a, and It means the probability that the state s t +1 at t + 1 is the state b. At this time, state b is a state value transitioned at time t + 1 when the state at time t is state a and the transmission bit value at time t is d. s t has a value of any one of coding states given by the state number N s .
여기서, α(st)는 시간 t에서의 상태 st의 포워드 상태 메트릭, β(st +1)는 시간 t+1 에서의 상태 st +1의 백워드 상태 메트릭, γ(st, st +1)는 st와 st +1 사이를 연결하는 가지의 가지 메트릭이다. Here, α (s t) is the state at time t-forward state metric of s t, in the β (t +1 s) of time t + 1 is the backward state metric of the state s t at +1, γ (t s, s t +1 ) is the branch metric that links between s t and s t +1 .
본 실시예에서는 종래의 BCJR을 적용하되, 자신의 LLR 값을 추정하는 과정에서 자기 이외의 비트들의 LLR 값(extrinsic information)만을 반영하기 때문에, 사후 천이 확률을 산출함에 있어, 수학식 8과 달리 가지 메트릭의 값을 곱하지 않는다. In the present embodiment, although the conventional BCJR is applied, only the LLR values (extrinsic information) of bits other than the self are reflected in the process of estimating the LLR value thereof. Do not multiply the values of the metric.
일 실시예에 따라, 복호화 장치가 BCJR 알고리즘을 활용하여 제2 메시지의 값들을 기초로 제1 메시지들의 값을 산출하는 과정은 다음과 같다. 설명의 편의를 위하여, i번째 SC 노드에서, i번째 SC 노드가 변수 노드들로부터 제공받은 m(i)개의 제2 메시지들 Vπ(l),i(이때, l은 1부터 m(i)사이의 정수)을 기초로 m(i)개의 제1 메시지들 Ui ,π(l)(이때, l은 1부터 m(i)사이의 정수)의 값을 산출하는 과정을 예를 들어 설명한다. According to an embodiment, the process of the decoding apparatus calculating the values of the first messages based on the values of the second message using the BCJR algorithm is as follows. For convenience of description, in the i th SC node, the m (i) second messages V π (l), i provided by the i th SC node from the variable nodes, where l is from 1 to m (i) A process of calculating the value of m (i) first messages U i , π (l) (where l is an integer between 1 and m (i)) based on an integer between .
우선, 복호화 장치는 제2 메시지의 값들을 기초로 가지 메트릭들의 값을 결정한다. 이때, 제2 메시지의 값들은 BCJR 알고리즘의 입력 값으로, BCJR 알고리즘에서 각 전송 비트들의 사전 LLR 값에 상응한다. 일 실시예에 따라, 시간 t=l에서의 가지 메트릭들은 m(i)개 중 l번째 제2 메시지인 Vπ(l),i값을 기초로 결정될 수 있다. 예컨대, 시간 t=l에서의 가지 메트릭들 중 bit 0에 상응하는 가지의 메트릭은 Vπ(l),i값으로부터 시간 t=l에서의 비트 값이 0일 확률로 결정되며, bit 1에 상응하는 가지의 메트릭 또한, Vπ(l),i값으로부터 시간 t=l에서의 비트 값이 1일 확률로 결정된다.First, the decoding apparatus determines the value of branch metrics based on the values of the second message. At this time, the values of the second message are input values of the BCJR algorithm and correspond to the pre-LLR values of respective transmission bits in the BCJR algorithm. According to an embodiment, the branch metrics at time t = l may be determined based on the value of V pi (l), i , which is the first l-th message of m (i). For example, the metric of the branch corresponding to bit 0 of the branch metrics at time t = l is determined from the value of V π (l), i as a probability that the bit value at time t = l is 0 and corresponds to bit 1 One metric is also determined by the probability that the bit value at time t = l is 1 from the value of V pi (l), i .
이를 수식으로 표현하면 수학식 9와 같다.This may be expressed as an equation (9).
가지 메트릭이 산출되면, 복호화 장치는 수학식 10과 같이 포워드 상태 메트릭을 순착적으로 산출하고, 수학식 11과 같이 백워드 상태 메트릭들을 역순으로 산출한다. When the branch metric is calculated, the decoding apparatus sequentially calculates the forward state metric as shown in Equation 10, and calculates the backward state metrics in the reverse order as shown in
복호화 장치는 t번째 포워드 상태 메트릭 및 t+1번째 백워드 상태 메트릭의 곱에 기초하여 m(i)개 비트들 중 t번째 비트에 대한 제1 메시지의 값을 산출한다. 일 실시예에 따라, t=n번째 변수노드(이때, n은 1≤n≤m(i) 인 정수)에 제공하는 제1 메시지 Ui ,π(n)의 값은 수학식 12와 같이 산출되는 사후 천이 확률들의 합으로 산출될 수 있다. 예컨대, 제1 메시지 Ui ,π(n)의 값은, BCJR 알고리즘에서 수학식 12 및 수학식 7에 따라 산출되는 n번째 전송 비트들의 사후 확률 P(dn)을 LLR로 변환한 값으로 결정될 수 있다.The decoding apparatus calculates a value of the first message for the t th bit among the m (i) bits based on the product of the t th forward state metric and the t + 1 th backward state metric. According to an embodiment, the value of the first message U i , π (n) provided to the t = n-th variable node (where n is an integer of 1 ≦ n ≦ m (i)) is calculated as shown in Equation 12. It can be calculated as the sum of the post-transition probabilities. For example, the value of the first message U i , π (n) may be determined as a value obtained by converting the posterior probability P (d n ) of the n th transmission bits calculated according to Equations 12 and 7 in the BCJR algorithm to LLR. Can be.
t=n에 상응하는, j=π(n)번째 변수노드에 제공하는 제1 메시지의 값 Ui ,π(n)은 j=π(n)번째 변수노드로부터 제공받은 제2 메시지의 값(Vπ(n),i)을 반영하지 않으므로, 수학식 12는 수학식 8과 달리 가지 메트릭이 수식에서 제외된다. The value U i , π (n) of the first message provided to the j = π (n) th variable node corresponding to t = n is the value of the second message provided from the j = π (n) th variable node ( Since it does not reflect V π (n), i ), unlike Equation 8, Equation 12 excludes various metrics from the equation.
이와 같이, 제1 메시지의 값들은 BCJR 알고리즘의 출력 값으로, 수학식 12와 같이 산출되는 사후 천이 확률들을 기반으로 결정되므로, 이를 수식으로 표현하면 수학식 13과 같다. As such, the values of the first message are output values of the BCJR algorithm and are determined based on post-transition probabilities calculated as in Equation 12.
이상, BCJR 알고리즘에 의하여 제2 메시지의 값 V로부터 제1 메시지의 값 U를 산출하는 연산은 간단히 수학식 14와 같이 표현할 수 있다. As described above, an operation of calculating the value U of the first message from the value V of the second message by the BCJR algorithm may be simply expressed as in Equation 14.
이후, 복호화 장치는 새로이 산출되는 제1 메시지의 값들 및 제2 메시지의 값들을 이용하여 S530 단계 및 S540 단계를 수행함을 반복한다(S550). 즉, 복호화 장치는, 이전의 반복에서 산출된 제1 메시지를 이용하여 제2 메시지를 산출하고, 새로이 산출된 제2 메시지를 이용하여 제1 메시지를 갱신하는 과정을 미리 설정된 만큼 반복한다. Thereafter, the decoding apparatus repeats steps S530 and S540 by using the newly calculated values of the first message and the values of the second message (S550). That is, the decoding apparatus calculates a second message using the first message calculated in the previous iteration, and repeats the process of updating the first message using the newly calculated second message by a predetermined amount.
S550 단계에서 복화화 장치는 마지막 반복에서 산출된 제1 메시지의 값들을 기초로 추정되는 각 비트(bj)의 가능도에 따라 각 비트(bj)의 값을 결정한다. 일 실시 예에 따라, bj의 LLR 값인 Lj는 수학식 15와 같이 산출될 수 있다. Screen in step S550 decryption apparatus determines the value of each bit (b j), depending on also available for each bit (b j) is estimated on the basis of the value of the first message determined in a last repetition. According to an embodiment, L j, which is an LLR value of b j , may be calculated as in Equation 15.
복호화 장치는 Lj의 값이 1보다 작은지 또는 1보다 큰지에 따라 bj의 값이 1인지 또는 0인지 여부를 결정한다.
The decoding apparatus determines whether the value of b j is 1 or 0 depending on whether the value of L j is smaller than 1 or larger than 1.
이러한 개시된 기술인 시스템 및 장치는 이해를 돕기 위하여 도면에 도시된 실시 예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 개시된 기술의 진정한 기술적 보호범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.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 (12)
(b) 상기 부호화 상태에 기반하여 상태-체크 비트들을 결정하는 단계;
(c) 상기 정보 비트열을 구성하는 정보 비트들 중 새로이 선택된 정보 비트들을 이용하여 상기 (a) 단계 및 상기 (b) 단계를 수행함을 적어도 1회 반복하는 단계; 및
(d) 상기 정보 비트열 및 상기 상태-체크 비트들을 결합하여 부호어를 생성하는 단계를 포함하는 부호화 방법.(a) determining an encoding state according to selected information bits among information bits constituting the information bit string;
(b) determining state-check bits based on the encoding state;
(c) repeating steps (a) and (b) at least once using newly selected information bits of the information bits constituting the information bit string; And
(d) combining the information bit string and the state-check bits to generate a codeword.
상기 부호화 상태가 미리 설정된 상태로 수렴하도록 하는 입력 비트들의 값을 상기 상태-체크 비트들로 결정하는 부호화 방법.The method of claim 1, wherein the step (b)
And determining the value of the input bits as the state-check bits to cause the encoding state to converge to a preset state.
상기 부호화 상태가 제0 상태(Zero State)로 수렴하도록 하는 입력 비트들의 값을 상기 상태-체크 비트들로 결정하는 부호화 방법.The method of claim 1, wherein the step (b)
And determining the value of the input bits as the state-check bits to cause the coding state to converge to a zero state.
현재 상태 및 현재 입력되는 비트에 따라 상기 현재 상태를 갱신하는 과정을 복수 회 반복하여, 마지막 반복에서 갱신된 상기 현재 상태를 상기 부호화 상태로 결정하는 부호화 방법.The method of claim 1, wherein the step (a)
And encoding the current state updated in the last iteration as the encoded state by repeating the updating of the current state a plurality of times in accordance with a current state and a currently input bit.
(a1) 상기 선택된 정보 비트들 중 이전에 입력되지 않은 어느 하나의 비트를 입력 받는 단계;
(a2) 상기 입력 받는 비트에 따라 현재 상태에서 다음 상태로 천이하는 단계;
(a3) 상기 입력 받는 단계 및 상기 천이하는 단계를 복수 회 반복하는 단계;
(a4) 마지막 반복에서 천이된 상태를 상기 부호화 상태로 결정하는 단계를 포함하는 부호화 방법.The method of claim 1, wherein the step (a)
(a1) receiving any one of the selected information bits not previously input;
(a2) transitioning from a current state to a next state according to the received bit;
(a3) repeating the receiving step and the transitioning step a plurality of times;
(a4) encoding the transition state in the last iteration as the encoding state.
상기 현재 상태에 상응하는 두 개의 상태들 중 상기 입력 받는 비트에 따라 결정되는 하나의 상태로 천이하는 단계인 상태-체크 부호화 방법.The method of claim 5, wherein step (a2) comprises:
And transitioning to a state determined according to the received bit among two states corresponding to the current state.
k번째 반복에서의 상기 현재 상태가 N 개의 비트 [dN -1,k…d0 ,k]로 표현될 때,
dn ,k+1=dn +1,k (여기서, n=0,...,N-2)
(여기서, ik는 현재의 반복에서 입력 받은 정보 비트, 는 배타적 논리합(exclusive OR, XOR) 연산을 의미하고, dk 는 d0 ,k 내지 dN -1,k중 선택되는 적어도 하나의 비트를 XOR 연산한 결과 값을 나타냄)에 따라 결정된 N 개의 비트 [dN -1,k+1…d0 ,k+1]로 표현되는 상기 다음 상태로 천이하는 부호화 방법.The method of claim 5, wherein step (a2) comprises:
The current state in the k-th iteration is N bits [d N -1, k ... d 0 , k ]
d n , k + 1 = d n + 1, k (where n = 0, ..., N-2)
Where i k is the information bit received in the current iteration, 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 ]. A method of transitioning to the next state represented by d.
k번째 반복에서의 상기 현재 상태가 N 개의 비트 [dN -1,k…d0 ,k]로 표현될 때,
dn ,k+1=dn +1,k (여기서, n=0,...,N-2)
(여기서, ik는 현재의 반복에서 입력 받은 정보 비트, 는 배타적 논리합(exclusive OR, XOR) 연산을 의미하고, a1 내지 aN -1은 0 또는 1의 값을 가짐)에 따라 결정된 N 개의 비트 [dN -1,k+1…d0 ,k+1]로 표현되는 상기 다음 상태로 천이하는 부호화 방법.The method of claim 5, wherein step (a2) comprises:
The current state in the k-th iteration is N bits [d N -1, k ... d 0 , k ]
d n , k + 1 = d n + 1, k (where n = 0, ..., N-2)
Where i k is the information bit received in the current iteration, 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 ]. A method of transitioning to the next state represented by d.
상기 어느 하나의 비트가 입력되면, 상기 입력 받는 비트 및 상기 현재 상태를 나타내는 비트들 중 적어도 하나의 비트 간의 XOR(배타적 논리합) 연산을 수행하는 단계; 및
레지스터에 저장되는 상기 현재 상태를 나타내는 비트들을, 한 비트씩 하위 비트 자리로 이동시키고, 상기 XOR 연산의 결과를 최상위 비트 자리에 저장하여 상기 레지스터의 값을 상기 다음 상태를 나타내는 비트의 값으로 갱신하는 단계를 포함하는 부호화 방법.The method of claim 5, wherein step (a2) comprises:
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.
상기 선택된 정보 비트들의 비트 수는 상기 정보 비트열을 구성하는 정보 비트들의 수 보다 작은 부호화 방법.The method of claim 1,
And the number of bits of the selected information bits is smaller than the number of information bits constituting the information bit string.
(b) 제1 메시지의 값-상기 제1 메시지의 값은 상기 부호화 신호의 각 비트의 주변 비트들의 가능도(likelihood)에 기반하여 추정된 상기 각 비트의 가능도를 나타냄-들을 기초로 제2 메시지의 값들을 산출하는 단계;
(c) 상기 정보 비트들에 따른 부호화 상태 천이를 나타내는 트렐리스에 기반한 BCJR 알고리즘을 이용하여, 상기 제2 메시지의 값들을 기초로 제1 메시지의 값들을 산출하는 단계;
(d) 새로이 산출되는 상기 제1 메시지의 값들 및 상기 제2 메시지의 값들을 이용하여 상기 (b) 단계 및 상기 (c) 단계를 수행함을 반복하는 단계; 및
(e) 마지막 반복에서 산출된 상기 제1 메시지의 값들을 기초로 추정되는 상기 각 비트의 가능도에 따라 상기 각 비트의 값을 결정하는 단계를 포함하는 복호화 방법.(a) receiving an encoded signal in which information bits are combined with state-check bits;
(b) a second value based on the value of the first message, wherein the value of the first message indicates the likelihood of each bit estimated based on the likelihood of the surrounding bits of each bit of the encoded signal. Calculating values of the message;
(c) calculating values of the first message based on the values of the second message using a trellis based BCJR algorithm indicating a transition state of encoding according to the information bits;
(d) repeating steps (b) and (c) using the newly calculated values of the first message and the values of the second message; And
(e) determining the value of each bit according to the likelihood of each bit estimated based on the values of the first message calculated in the last iteration.
(c1) 상기 제2 메시지의 값들을 기초로 포워드 상태 메트릭들 및 백워드 상태 메트릭들을 산출하는 단계;
(c2) k번째 포워드 상태 메트릭 및 k+1번째 백워드 상태 메트릭의 곱에 기초하여 i번째 그룹의 비트들 중 k번째 비트에 대한 제1 메시지의 값을 산출하는 단계를 포함하는 복호화 방법.12. The method of claim 11, wherein step (c) comprises: the bits included in the i-th group based on the values of the second message for the bits included in the i-th (where i is 1≤i≤G) group. Computing the values of the first message for each group is performed for each group, the calculating process,
(c1) calculating forward state metrics and backward state metrics based on the values of the second message;
(c2) calculating a value of the first message for the k th bit of the i th group of bits based on the product of the k th forward state metric and the k + 1 th backward state metric.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110122219A KR101268060B1 (en) | 2011-11-22 | 2011-11-22 | Method for encoing and decoding using unitive state-check code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110122219A KR101268060B1 (en) | 2011-11-22 | 2011-11-22 | Method for encoing and decoding using unitive state-check code |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101268060B1 true KR101268060B1 (en) | 2013-05-28 |
Family
ID=48666963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110122219A KR101268060B1 (en) | 2011-11-22 | 2011-11-22 | Method for encoing and decoding using unitive state-check code |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101268060B1 (en) |
-
2011
- 2011-11-22 KR KR1020110122219A patent/KR101268060B1/en not_active IP Right Cessation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5354979B2 (en) | Low density parity check convolutional code (LDPC-CC) encoder and LDPC-CC decoder | |
CN111628785B (en) | Method for generating soft information by decoder in hard selection hard decoding mode | |
KR100958234B1 (en) | Node processors for use in parity check decoders | |
KR100881889B1 (en) | Improvements to a layered decoding approach for low density parity checkldpc codes | |
JP5203717B2 (en) | Encoder, decoder, encoding method, and decoding method | |
US6751770B2 (en) | Decoder for iterative decoding of binary cyclic codes | |
KR20040101743A (en) | Apparatus and method for decoding of ldpc in a communication system | |
WO2007034870A1 (en) | Decoding device, and receiving device | |
KR101657912B1 (en) | Method of Decoding Non-Binary Low Density Parity Check Codes | |
CN112653474B (en) | Design method of compact LDPC-CC decoder for reducing average iteration number | |
JP4202161B2 (en) | Encoding device and decoding device | |
KR101268060B1 (en) | Method for encoing and decoding using unitive state-check code | |
Ullah et al. | Performance improvement of multi-stage threshold decoding with difference register | |
KR101268061B1 (en) | Encoing and decoding method using multiple state accumulate code | |
CN118694379A (en) | Advanced convergence for decoding of LDPC codes | |
JP5385944B2 (en) | Decoder | |
KR101218658B1 (en) | Encoing and decoding method using irregular repeat multiple state accumulate code | |
KR101267756B1 (en) | Method for encoding and decoding rate-compatible irregular repeat multiple-state accumulate codes and apparatuses using the same | |
KR101257776B1 (en) | Method and apparatus for encoing using state-check code | |
KR101221062B1 (en) | Encoding and decoding method using variable length usc code | |
KR101227328B1 (en) | Method for encoding and decoding rate-compatible unitive state-check codes and apparatuses using the same | |
JP5490931B2 (en) | Encoder, decoder, encoding method, and decoding method | |
JP4755238B2 (en) | Decoder | |
CN112470406B (en) | Ordering apparatus and method for basic check node processing for message passing decoding of non-binary codes | |
TWI523437B (en) | Encoding and syndrome computing co-design circuit for bch code and method for deciding the same |
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 |