KR20010091388A - Turbo code concatenated by Hamming code and its coding/decoding method and apparatus - Google Patents

Turbo code concatenated by Hamming code and its coding/decoding method and apparatus Download PDF

Info

Publication number
KR20010091388A
KR20010091388A KR1020000013038A KR20000013038A KR20010091388A KR 20010091388 A KR20010091388 A KR 20010091388A KR 1020000013038 A KR1020000013038 A KR 1020000013038A KR 20000013038 A KR20000013038 A KR 20000013038A KR 20010091388 A KR20010091388 A KR 20010091388A
Authority
KR
South Korea
Prior art keywords
hamming
data
turbo
code
outputting
Prior art date
Application number
KR1020000013038A
Other languages
Korean (ko)
Other versions
KR100370780B1 (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 KR10-2000-0013038A priority Critical patent/KR100370780B1/en
Publication of KR20010091388A publication Critical patent/KR20010091388A/en
Application granted granted Critical
Publication of KR100370780B1 publication Critical patent/KR100370780B1/en

Links

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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent codes

Abstract

PURPOSE: A turbo code for concatenating hamming codes and a method and an apparatus for encoding and decoding the same are provided to perform a turbo coding process by substituting hamming coded data for data having a value of 1 from turbo codes for generating codes of low distance. CONSTITUTION: A separator(100) outputs languages of a size K according to a timing control signal(C1) of a timing controller(110) to a hamming coder(102) and a selector(104). The hamming coder(102) performs a hamming coding process for data of k bits output from the separator(100) according to a timing control signal(C2) and outputs data of n bits. The selector(104) is operated by a timing control signal(C4). The selector(104) outputs selectively coded data of the hamming coder(102) to predetermined locations output from a lookup table(106). The selector(104) outputs data of K-k number output from the separator(100) to the remaining locations. A turbo coder(108) receives bits from the selector(104) according to a timing control signal(C5) and codes the bits.

Description

해밍 부호를 연접한 터보 부호 및 그의 부호화/복호화 방법 그리고 그의 부호기/복호기{Turbo code concatenated by Hamming code and its coding/decoding method and apparatus}Turbo code concatenated by Hamming code and its coding / decoding method and apparatus}

본 발명은 해밍 부호를 연접한 터보 부호 및 그의 부호화/복호화 방법 그리고 그의 부호화기/복호화기에 관한 것이다.The present invention relates to a turbo code concatenated with a hamming code, a coding / decoding method thereof, and an encoder / decoder thereof.

터보 부호(turbo code)는 개발자(Berrou)에 의해 사용된 별명으로 병렬 연접 컨볼루셔널 부호(Parallel Concatenated Convolutional Code)라고 불려지기도 한다. 터보 부호의 부호기는 첫 번째 구성 부호기(component encoder)와 두 번째 구성 부호기가 정보어를 임의의 순서로 인터리빙(interleaving)하는 인터리버를 통해 병렬로 연접되는 구조를 갖는다. 구성 부호로는 재귀적 조직형 컨벌루셔널 부호(Recursive Systematic Convolutional Code)를 사용한다. 따라서 터보 부호의 부호화는 첫 번째 구성 부호기에서 부호화하고, 동일한 정보 비트가 인터리버를 통해 인터리빙된 후 두 번째 구성 부호기에서 부호화하여 정보 비트와 첫 번째 구성 부호를 통해 생성된 패리티 비트 그리고 두 번째 구성 부호를 통해 생성된 패리티 비트를 출력한다.The turbo code is an alias used by the developer (Berrou), also called the Parallel Concatenated Convolutional Code. The encoder of the turbo coder has a structure in which a first component encoder and a second component encoder are connected in parallel through an interleaver interleaving information words in an arbitrary order. Recursive Systematic Convolutional Codes are used as constituent codes. Therefore, the encoding of the turbo code is coded by the first component coder, the same information bits are interleaved through the interleaver, and then encoded by the second component coder, thereby parity bits generated through the information bits and the first component code, and the second component code. Outputs the parity bit generated through

터보 부호의 복호는 각 구성 부호의 복호를 통해 만들어진 출력 값의 부가 정보를 다른 구성 복호기에서 입력 값의 사전 정보로 이용하는 반복 복호를 통해 이루어진다. 반복 복호를 위해서는 각 구성 부호의 복호기가 연출력(soft output)을 할 수 있어야 한다. 따라서, 구성 부호의 복호를 위해 연출력하는 MAP(Maximum A Posteriori) 알고리즘과 SOVA(Soft Output Viterbi Algorithm)를 이용한다. 터보 부호를 이용한 선행기술들은 미국 특허 제5,446,747호(Error correction coding method with at least two systematic convolutional codings in parallel, corresponding iterative decoding method, decoding module and decoder),제5,729,560호 (Method and coding means for protected transmission of data on the basis of multi-component coding) 및 제5,721,745(Parallel concatenated tail-biting convolutional code and decoder)에 개시되어 있다.The decoding of the turbo code is performed through iterative decoding using the additional information of the output value generated through the decoding of each component code as dictionary information of the input value in another component decoder. For repeated decoding, the decoder of each component code must be able to perform soft output. Therefore, a maximum output MAP algorithm and a Soft Output Viterbi Algorithm (SOVA) are used for decoding component codes. Prior arts using turbo codes are described in US Pat. No. 5,446,747 (Error correction coding method with at least two systematic convolutional codings in parallel, corresponding iterative decoding method, decoding module and decoder), 5,729,560 (Method and coding means for protected transmission of data on the basis of multi-component coding) and 5,721,745 (Parallel concatenated tail-biting convolutional code and decoder).

이러한 터보 부호는 기존의 오류 정정 부호(Error Correction Code)에 비해 보다 우수한 성능을 나타낸다. 그러나 터보 부호는 낮은 거리의 부호어(codeword)가 존재하므로 높은 신호대잡음비에서 비트오율(Bit Error Rate, BER) 곡선이 완만해지는 현상인 오류 마루가 일어나는 문제점이 있다.This turbo code shows better performance than the existing error correction code. However, since the turbo code has a low distance codeword, an error floor, which is a phenomenon in which a bit error rate (BER) curve is smoothed at a high signal-to-noise ratio, has a problem.

본 발명이 이루고자하는 기술적 과제는 낮은 거리의 부호어를 만드는 터보 부호의 입력에서 1값을 갖는 데이터를 해밍 부호화된 데이터로 교체하여 터보 부호화하는 부호화 방법, 장치 및 그에 의해 부호화된 부호를 제공하는데 있다.SUMMARY OF THE INVENTION An object of the present invention is to provide an encoding method, an apparatus for encoding an turbo, and a code encoded thereby by replacing data having a value of 1 with a Hamming-encoded data at the input of a turbo code that makes a low-word codeword. .

본 발명이 이루고자하는 다른 기술적 과제는 낮은 거리의 부호어를 만드는 터보 부호의 입력에서 1값을 갖는 데이터를 해밍 부호화된 데이터로 교체하여 터보 부호화되고, 채널을 통해 전송된 데이터를 수신하여 복호화하는 복호화 방법 및 장치를 제공하는데 있다.Another technical problem to be solved by the present invention is to turbo-code by replacing data having a value of 1 with a Hamming-encoded data at the input of a turbo code that makes a codeword of a low distance, and to receive and decode data transmitted through a channel. To provide a method and apparatus.

도 1은 본 발명에 따른 해밍 부호를 연접한 터보 부호기에 대한 블록도를 도시한 것이다.1 is a block diagram of a turbo encoder concatenated with a hamming code according to the present invention.

도 2는 종래의 터보 복호기에서 Eb/No가 4.0dB이고 7회 반복 복호하면서 5000개의 오류를 관찰했을 때 각 비트 위치에 축적된 오류 수를 그래프로 도시한 것이다.Figure 2 is a conventional turbo decoder E b / N o is 4.0dB, and shows a graph of the number of errors accumulated in each bit position when the observation error while decoding 5000 7 times repeatedly.

도 3은 본 발명에 따른 해밍 부호를 연접한 터보 복호기에 대한 블록도이다.3 is a block diagram of a turbo decoder concatenated with a Hamming code according to the present invention.

도 4는 종래의 터보 복호기와 본 발명에 따른 해밍 부호 연접 터보 복호기의 Eb/No에 대한 BER을 도시한 것이다.4 shows BER for E b / N o of a conventional turbo decoder and a hamming coded concatenation turbo decoder according to the present invention.

도 5는 도 4에 도시된 실험과 동일한 조건에서 종래 기술과 본 발명의 Eb/No에 대한 프레임 오율 (FER)을 비교하여 도시한 것이다.FIG. 5 shows a comparison of frame error rate (FER) for E b / N o of the prior art and the present invention under the same conditions as the experiment shown in FIG. 4.

상기 기술적 과제를 이루기위한, 본 발명에 따른 부호는 소정 값 이하의 거리를 갖는 부호어를 생성하는 터보 부호의 정보어에서 제1레벨값을 갖는 비트 위치를 적어도 하나 선택하고, 선택된 비트 위치에 상기 정보어의 일부를 해밍 부호화한 데이터를 삽입하여 터보 부호화한 것이다.In order to achieve the above technical problem, a code according to the present invention selects at least one bit position having a first level value from an information word of a turbo code generating a codeword having a distance less than or equal to a predetermined value, Turbo coding is performed by inserting hamming-coded data into a part of the information word.

상기 기술적 과제를 이루기위한, 본 발명에 따른 해밍 부호를 연접한 부호화 방법은 (a) 소정 값 이하의 거리를 갖는 부호어를 생성하는 터보 부호의 정보어중 제1레벨값을 갖는 비트 위치를 적어도 하나 선택하며, 선택된 위치를 저장하는 단계; (c) 입력되는 정보어를 두 블록으로 분리하는 단계; (c) 상기 두 블록중 제1블록의 데이터를 해밍 부호로 부호화하는 단계; (d) 상기 두 블록 중 제2블록의 데이터 시퀀스를 출력하되, 상기 (a)단계에서 저장된 비트 위치에는 상기 (c)단계에서 부호화된 데이터를 삽입하여 출력하는 단계; 및 (e) 상기 (d)단계에서 출력되는 데이터를 터보 부호화하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method of concatenating a hamming code according to the present invention. (A) At least a bit position having a first level value among information words of a turbo code generating a codeword having a distance less than or equal to a predetermined value is generated. Selecting one and storing the selected location; (c) dividing the input information word into two blocks; (c) encoding data of a first block of the two blocks with a Hamming code; (d) outputting a data sequence of a second block of the two blocks, and inserting and outputting the data encoded in the step (c) into the bit position stored in the step (a); And (e) turbo encoding the data output in step (d).

상기 기술적 과제를 이루기위한, 본 발명에 따른 해밍 부호를 연접한 부호화기는 소정 값 이하의 거리를 갖는 부호어를 생성하는 터보 부호의 정보어중 제1레벨 값을 갖는 비트 위치를 적어도 하나 저장하는 저장기; 입력되는 정보어를 두 블록으로 분리하는 분리기; 상기 분리기에서 분리된 블록중 제1블록의 데이터를 해밍 부호화하는 해밍 부호기; 상기 분리기에서 분리되어 입력된 제2블록 데이터를 출력하되, 상기 저장기에 저장된 비트 위치에는 상기 해밍 부호기의 출력 데이터를 선택하여 출력하는 선택기; 및 상기 선택기에서 출력되는 데이터 시퀀스를 터보 부호화하는 터보 부호기를 포함한다.In order to achieve the above technical problem, the coded concatenated hamming code according to the present invention stores at least one bit position having a first level value among information words of a turbo code generating a codeword having a distance less than or equal to a predetermined value. group; A separator for separating the input information word into two blocks; A hamming encoder for hamming and encoding data of a first block among blocks separated by the separator; A selector for outputting second block data separated and input from the separator, and selecting and outputting output data of the hamming encoder at bit positions stored in the storage device; And a turbo encoder for turbo encoding the data sequence output from the selector.

상기 다른 기술적 과제를 이루기위한, 본 발명은 소정 값 이하의 거리를 갖는 부호어를 생성하는 터보 부호의 정보어에서 제1레벨값을 갖는 비트 위치를 적어도 하나 선택하고, 선택된 위치에 상기 정보어의 일부를 해밍부호화한 데이터가 삽입되어 터보 부호화된 데이터가 채널을 통해 수신될 때, 수신된 데이터 시퀀스를복호화하는 방법에 있어서, (a) 상기 선택된 위치가, 한 프레임내에서 상기 제1레벨 값이 군집한 구간에서 상기 제1레벨 값의 비트 위치를 하나의 조로 묶는 경우 상기 해밍 부호화한 데이터의 비트 수만큼 지정된 조에서 하나씩 선택되는 위치일 때, 각 조에 해당하는 비트 위치들을 저장하는 단계; (b) 수신 데이터 시퀀스를 터보 복호화하는 단계; (c) 상기 선택된 위치에서 상기 해밍 부호화 데이터를 분리하고, 나머지 데이터를 출력하는 단계; 및 (d) 분리된 해밍부호화 데이터를 해밍 복호화하면서 오류 발생여부를 판단하고, 오류가 발생한 경우 오류가 발생된 비트 위치를 출력하고, 해당 오류 데이터를 정정하여 출력하는 단계; 및 (e) 상기 나머지 데이터중에서 상기 오류가 발생된 비트 위치와 한 조를 이루는 비트 위치들에 해당하는 데이터를 정정하여 출력하는 단계를 포함한다.In order to achieve the above technical problem, the present invention selects at least one bit position having a first level value from an information word of a turbo code that generates a code word having a distance less than or equal to a predetermined value, A method of decoding a received data sequence when a portion of which has been hamming-encoded data and turbo-encoded data is received through a channel, the method comprising: (a) wherein the selected position is equal to the first level value within a frame; Storing bit positions corresponding to each pair when the bit positions of the first level value are grouped into one pair in a grouped section when the positions are selected one by one from the specified pair by the number of bits of the hamming-encoded data; (b) turbo decoding the received data sequence; (c) separating the Hamming coded data at the selected position and outputting the remaining data; And (d) determining whether an error has occurred while hamming and decoding the separated hamming coded data, and if an error occurs, outputting a bit position where the error has occurred and correcting and outputting the corresponding error data; And (e) correcting and outputting data corresponding to bit positions constituting a pair with the bit position where the error occurs among the remaining data.

상기 다른 기술적 과제를 이루기위한, 본 발명은 소정 값 이하의 거리를 갖는 부호어를 생성하는 터보 부호의 정보어에서 제1레벨값을 갖는 비트 위치를 적어도 하나 선택하고, 선택된 위치에 상기 정보어의 일부를 해밍부호화한 데이터가 삽입되어 터보 부호화된 데이터가 채널을 통해 수신될 때, 수신된 데이터 시퀀스를 복호화하는 복호기에 있어서, 상기 선택된 위치가, 한 프레임내에서 상기 제1레벨 값이 군집한 구간에서 상기 제1레벨 값의 비트 위치를 하나의 조로 묶는 경우 상기 해밍 부호화한 데이터의 비트 수만큼 지정된 조에서 하나씩 선택되는 위치일 때, 각 조에 해당하는 비트 위치들을 저장하는 저장기; 수신 데이터 시퀀스를 터보 복호화하는 터보 복호기; 상기 선택된 위치에서 상기 해밍부호화 데이터를 분리하고, 나머지 데이터를 출력하는 분리기; 분리된 해밍부호화 데이터를 해밍 복호화하면서오류 발생여부를 점검하여, 오류가 발생했다면 오류를 정정하면서 오류가 발생한 비트 위치를 출력하는 해밍 복호기; 상기 해밍 복호기의 출력에 따라 상기 저장기로부터 상기 오류가 발생한 비트 위치와 한 조를 이루는 비트 위치들을 입력받아 상기 분리기로부터 입력된 나머지 데이터중 상기 저장기에서 출력되는 비트 위치들에 해당하는 데이터를 정정하는 인버터; 및 소정 시간차를 두고 상기 해밍 복호기 또는 상기 인버터의 출력중 하나를 선택하는 선택기를 포함한다.In order to achieve the above technical problem, the present invention selects at least one bit position having a first level value from an information word of a turbo code that generates a code word having a distance less than or equal to a predetermined value, In the decoder which decodes a received data sequence when a part of which the ham-coded data is inserted and the turbo-coded data is received through a channel, the selected position is a section in which the first level values are clustered within one frame. A storage unit for storing bit positions corresponding to each pair when the bit positions of the first level value are grouped into one group at a position selected one by one from the specified group by the number of bits of the hamming-encoded data; A turbo decoder for turbo decoding a received data sequence; A separator for separating the hamming coded data at the selected position and outputting the remaining data; A hamming decoder for checking whether an error has occurred while hamming and decoding the separated hamming coded data, and correcting the error if the error has occurred; According to the output of the hamming decoder, the bit positions constituting the pair with the bit position where the error occurs are received from the storage device, and the data corresponding to the bit positions output from the storage device among the remaining data inputted from the separator are corrected. An inverter; And a selector for selecting one of the Hamming decoder or the output of the inverter with a predetermined time difference.

이하에서 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 해밍 부호기를 연접한 터보 부호기에 대한 블록도를 도시한 것이다. 도 1에 따른 부호기는 분리기(100), 해밍 부호기(102), 선택기(104), 룩업 테이블(106), 터보 부호기(108) 및 타이밍 제어기(110)를 포함한다.1 is a block diagram of a turbo encoder concatenated with a hamming encoder according to the present invention. The encoder according to FIG. 1 includes a separator 100, a hamming encoder 102, a selector 104, a lookup table 106, a turbo encoder 108 and a timing controller 110.

분리기(100)는 타이밍 제어기(110)에서 출력되는 타이밍 제어 신호 C1에 따라 크기가 K인 정보어를 시간 0부터 (k-1)까지는 해밍 부호기(102)로 시간 k부터 (K-1)까지는 선택기(104)로 출력한다. 여기서, k는 해밍 부호의 정보어의 크기이다. 해밍 부호기(102)는 타이밍 제어신호 C2에 따라서 분리기(100)에서 출력되는 k비트 데이터를 해밍 부호화하여 n비트 데이터로 출력한다. n은 해밍 부호어의 크기이다. 선택기(104)는 타이밍 제어신호 C4에 따라 동작하며, 룩업 테이블(106)에서 출력되는 소정 위치들에 해밍 부호기(102)에서 부호화된 데이터를 선택하여 출력하고, 나머지 위치에는 분리기(100)에서 출력되는 (K-k)개의 데이터를 출력한다. 터보 부호기(108)는 타이밍 제어신호 C5에 따라 선택기(104)에서 출력되는 비트들을 순차적으로 받아들여 부호화한다.The separator 100 uses a Hamming encoder 102 from time 0 to (k-1) as a Hamming encoder 102 from time 0 to (k-1) according to the timing control signal C1 output from the timing controller 110. Output to selector 104. Where k is the magnitude of the information word of the Hamming code. The hamming encoder 102 Hamming-codes the k-bit data output from the separator 100 according to the timing control signal C2 and outputs the n-bit data. n is the size of the Hamming codeword. The selector 104 operates according to the timing control signal C4, selects and outputs data encoded by the hamming encoder 102 at predetermined positions output from the lookup table 106, and outputs the separator 100 at the remaining positions. Outputs (Kk) data. The turbo encoder 108 sequentially receives and codes the bits output from the selector 104 in accordance with the timing control signal C5.

해밍 부호기(102)는 생성 행렬(Generation Matrix)에 의해 간단한 XOR연산으로 구현될 수 있으며, 일반적으로 입력 비트와 생성 행렬에 의해 계산된 패리티 비트(parity bit)를 출력하는 조직형 해밍 부호를 사용한다.The hamming encoder 102 may be implemented by a simple XOR operation by a generation matrix, and generally uses a structured hamming code that outputs an input bit and a parity bit calculated by the generation matrix. .

룩업 테이블(106)은 타이밍 제어신호 C3에서 동작하며, 저장되어있는 소정 비트 위치를 출력하는데, 저장된 비트 위치들은 실험치로 구할 수 있다. 즉, 터보 부호에서 낮은 거리의 부호어는 낮은 무게를 갖는 정보어에 의해 생성된다는 점을 이용하여 전산실험에 통해 낮은 무게를 갖는 터보 부호의 입력을 찾는다. 이를 보다 상세히 설명하면 다음과 같다. 터보 부호는 선형 블록 부호의 일종이기 때문에 모든 부호어의 해밍 거리(Hamming distance) 특성을 분석함으로써 성능을 예측할 수 있다. 최우(Maximun Likelihood) 복호를 가정했을 때 다음 식과 같은 BER을 나타낸다.The lookup table 106 operates on the timing control signal C3 and outputs a predetermined bit position, which can be obtained as an experimental value. That is, a low-weight codeword is generated by a low-weight information word in the turbo code, and the computation of the low-weight turbo code is found through computational experiments. This will be described in more detail as follows. Since the turbo code is a type of linear block code, performance can be predicted by analyzing the Hamming distance characteristic of all codewords. Assuming maximum likelihood decoding, BER is expressed as

여기서, d는 거리, R은 부호화율, Nd는 d거리를 갖는 부호허의 수, N은 인터리버의 크기,는 d거리의 부호어를 생성하는 정보어의 평균 해밍 무게(Hamming weight)이다. Q()는 가우시안(Gaussian) 분포를 갖는 잡음이 존재할 때 오류율을 계산하는 양이다.Where d is the distance, R is the code rate, N d is the number of codewords with d distance, N is the size of the interleaver, Is the average Hamming weight of the information word that generates the codeword of d distance. Q () is the amount that calculates the error rate when noise with Gaussian distribution exists.

상기 수학식에 따르면, 비트당 에너지대 잡음전력 스펙트럼(Eb/No)이 높아질수록 터보 부호의 성능은 낮은 거리의 부호어에 의해 결정됨을 알 수 있다. 터보 코드에서 낮은 거리의 부호어를 만드는 터보 부호의 입력은 낮은 무게의 입력이므로, 낮은 무게의 터보 부호 입력에 의해 생기는 부호어의 거리를 계산함으로써 높은 Eb/No에서 성능에 영향을 미치는 터보 부호의 거리 특성을 알 수 있다.According to the above equation, it can be seen that the higher the energy-to-bit noise-to-noise power spectrum (E b / N o ), the performance of the turbo code is determined by a lower distance codeword. The turbo code input, which produces a low distance codeword in the turbo code, is a low-weight input, so the turbo affects performance at high E b / N o by calculating the distance of codewords caused by low-weight turbo code input. The distance characteristic of the sign can be known.

한편, 낮은 거리의 부호어를 만드는 정보어의 "1"의 비트 위치에서 오류가 발생할 확률이 높다는 것은 실험적으로 알 수 있다. 다음의 표 1은 하나의 정보 프레임(Information Frame)에서 각각 거리 6, 8 및 9를 만드는 정보어의 "1"의 비트 위치를 나타낸 것이다.On the other hand, it can be seen experimentally that an error is likely to occur at a bit position of " 1 " Table 1 below shows bit positions of " 1 " of information words that make distances 6, 8, and 9, respectively, in one information frame.

거리Street 정보 프레임에서 비트 위치Bit position in the information frame 66 (134,137) (165,168) (179,182) (474,477) (491,494)(134,137) (165,168) (179,182) (474,477) (491,494) 88 (9,18) (16,19) (94,103) (112,115) (171,174) (214,217) (224,233) (243,252)(9,18) (16,19) (94,103) (112,115) (171,174) (214,217) (224,233) (243,252) 99 (88,95,96) (130,131,132)(368,376,378) (453,460,464) (476,478,483)(88,95,96) (130,131,132) (368,376,378) (453,460,464) (476,478,483)

도 2는 종래의 터보 복호기에서 Eb/No가 4.0dB이고 7회 반복 복호하면서 5000개의 오류를 관찰했을 때 각 비트 위치에 축적된 오류 수를 그래프로 도시한 것이다. 도시된 바에 따르면, 표 1에 나타난 비트 위치에 오류가 발생할 확률이 높다고 할 수 있다.Figure 2 is a conventional turbo decoder E b / N o is 4.0dB, and shows a graph of the number of errors accumulated in each bit position when the observation error while decoding 5000 7 times repeatedly. As shown, it can be said that the probability of an error occurring at the bit positions shown in Table 1 is high.

따라서, 표 1에 나타난 바와 같이 한 프레임에서 "1"이 군집한 각 구간에서 "1"의 비트 위치들이 하나의 조로 묶여서 룩업 테이블(106)에 저장된다. 룩업 테이블(106)은 타이밍 제어신호 C3에 따라 각 조에서 지정된 위치, 예를 들어 각 조의첫 번째 위치를 출력하되, 상기 해밍 부호기(102)의 부호어의 크기만큼 지정된 갯수의 조에서 해당 위치를 출력한다. 예를 들어, 해밍 부호기(102)의 부호어가 n=15인 경우 표 1의 여러 조중 처음 15개의 첫 번째 비트 위치를 선택할 수 있다.Accordingly, as shown in Table 1, the bit positions of "1" are stored in the lookup table 106 in one frame in each section where "1" is clustered in one frame. The lookup table 106 outputs a position designated in each pair, for example, the first position of each pair according to the timing control signal C3, and the corresponding position is specified in the number of pairs specified by the size of the codeword of the hamming encoder 102. Output For example, when the codeword of the Hamming encoder 102 is n = 15, it is possible to select the first 15 first bit positions among the various groups of Table 1.

터보 부호기(108)는 재귀적 조직형 컨볼루셔널 부호를 구성 부호로 인터리버를 통해 병렬로 연접하는 구조를 갖는다. 구성 부호기의 수는 제한되어 있지않고 그 종류도 동일할 필요는 없으나, 일반적으로 구성 부호기가 두 개이고 동일한 구성 부호기를 갖는 터보 부호기를 사용한다. 그리고 터보 부호의 부호율을 높히기 위해 천공(puncturing)을 사용한다. 본 발명에서도 이를 따른다.The turbo encoder 108 has a structure in which a recursive organizational convolutional code is concatenated in parallel through an interleaver as a constituent code. The number of constituent encoders is not limited and the types do not have to be the same, but in general, a turbo encoder having two constituent encoders and having the same constituent encoder is used. Punching is used to increase the code rate of the turbo code. This is also followed in the present invention.

Dte를 터보 부호기의 지연시간이라 하면, 해밍 부호기를 연접한 터보 부호기로 입력 데이터를 부호화하는 경우 타이밍 제어기(110)의 출력 신호에 따라서 시간대별 각 구성요소의 동작들은 다음 표 2와 같다.When D te is a delay time of the turbo encoder, when the input data is encoded by the turbo encoder concatenated with the Hamming encoder, the operations of each component for each time zone according to the output signal of the timing controller 110 are shown in Table 2 below.

구성요소/시간대Component / Time Zone 0~(k-1)0 to (k-1) k~(K-1)k ~ (K-1) K~(K+n-k-1)K ~ (K + n-k-1) (K+n-k)~(k+Dte)(K + nk)-(k + D te ) 분리기Separator 인에이블Enable 인에이블Enable 디스에이블Disable 디스에이블Disable 해밍 부호기Hamming encoder 인에이블Enable 인에이블Enable 디스에이블Disable 디스에이블Disable 선택기Selector 디스에이블Disable 인에이블Enable 인에이블Enable 디스에이블Disable 룩업 테이블Lookup table 디스에이블Disable 인에이블Enable 인에이블Enable 디스에이블Disable 터보 부호기Turbo encoder 디스에이블Disable 인에이블Enable 인에이블Enable 인에이블Enable

상기 표 2에 나타난 바와 같이, 0~k+Dte의 시간 주기동안 룩업 테이블(106)에 저장된 위치에 해밍 부호화된 부호어를 첨가하여 전체 N=K+n-k개의 데이터가 터보 부호로 입력되고, 터보 부호화된다.As shown in Table 2, by adding a Hamming-coded codeword to a position stored in the lookup table 106 for a time period of 0 to k + D te , N = K + nk data are input as a turbo code. Turbo coded.

도 3은 본 발명에 따른 해밍 부호를 연접한 터보 복호기에 대한 블록도이다. 도 3에 따른 복호기는 터보 복호기(300), 분리기(302), 제1룩업 테이블(304), 해밍복호기(306), 인버터(308), 제2룩업 테이블(310), 지연기(312), 선택기(314) 및 타이밍 제어기(316)를 포함한다.3 is a block diagram of a turbo decoder concatenated with a Hamming code according to the present invention. The decoder according to FIG. 3 includes a turbo decoder 300, a separator 302, a first lookup table 304, a hamming decoder 306, an inverter 308, a second lookup table 310, a retarder 312, Selector 314 and timing controller 316.

터보 복호기(300)는 수신된 데이터를 타이밍 제어기(110)에서 출력되는 타이밍 제어신호 T1에 따라서 터보 복호한다. 터보 복호기(300)는 각각 구성부호의 복호를 위해 연판정된 값을 갖는 복호 방법인 MAP(Maximum A Posteriori probability) 또는 SOVA(Soft Output Viterbi Algorithm)의 복호를 사용하고 각각의 구성부호의 복호를 통해 생성된 출력의 부가 정보를 다른 구성 복호기 입력의 사전 정보로 이용하여 반복 복호를 한다. 터보 복호기(300)에는 각각의 구성 복호기를 차례로 복호하며, 현재의 구성 복호기에서 생성된 출력의 부가 정보를 다음 구성 복호기의 사전 정보로 이용하는 직렬 복호 알고리즘과 모든 구성 복호기가 동시에 복호를 수행하고 각각의 구성 복호기에서 생성된 출력의 부가 정보를 다른 구성 복호기의 사전 정보로 이용하는 병렬 복호 알고리즘을 사용할 수 있다.The turbo decoder 300 turbo decodes the received data according to the timing control signal T1 output from the timing controller 110. The turbo decoder 300 uses decoding of Maximum A Posteriori probability (MAP) or SOVA (Soft Output Viterbi Algorithm), which is a decoding method each having a soft decision value for decoding a component code, and by decoding each component code. Iterative decoding is performed by using the additional information of the generated output as dictionary information of another component decoder input. The turbo decoder 300 decodes each component decoder in turn, and a serial decoding algorithm using all the additional information of the output generated by the current component decoder as advance information of the next component decoder and all the component decoders simultaneously perform decoding. A parallel decoding algorithm using the additional information of the output generated by the component decoder as dictionary information of another component decoder can be used.

분리기(302)는 타이밍 제어신호 T2에서 동작하며, 제1룩업 테이블(304)에서 출력되는 소정 위치에 따라 터보 복호화된 데이터중 일부를 분리한다. 제1룩업 테이블(304)은 상기 부호화측 룩업 테이블에 저장된 위치와 동일한 위치를 저장하며, 상기 부호화측 룩업 테이블에서 지정되어 출력되는 위치와 동일한 위치를 출력한다.The separator 302 operates on the timing control signal T2 and separates some of the turbo decoded data according to a predetermined position output from the first lookup table 304. The first lookup table 304 stores the same position as the position stored in the encoding side lookup table, and outputs the same position as the position designated and output in the encoding side lookup table.

해밍 복호기(306)는 타이밍 제어신호 T4에서 동작하며, 분리기(302)에서 분리된 데이터를 해밍 복호화한다. 해밍 복호기(306)는 패리티 검사 행렬을 이용하여 신드롬(syndrome)을 계산하고 신드롬의 패턴과 오류가 발생된 경우 그 위치를 저장하고, 저장된 오류 위치를 찾아 정정하는 신드롬 복호 방법으로 복호한다. 복호시, 오류가 발견되면 해밍 복호기(306)는 발견된 오류의 비트 위치를 제2룩업 테이블(310)로 출력하고, 복호가 완료된 데이터를 선택기(314)로 출력한다. 만일 오류가 발견되지 않는다면 해밍 복호기(306)는 오류가 없다는 신호를 제2룩업 테이블(310)로 출력하고, 복호가 완료된 데이터를 선택기(314)로 출력한다.The hamming decoder 306 operates on the timing control signal T4 to hamming and decode the data separated by the separator 302. The hamming decoder 306 calculates a syndrome using a parity check matrix, stores a syndrome pattern and a location when an error occurs, and decodes by a syndrome decoding method of finding and correcting a stored error location. When decoding, if an error is found, the hamming decoder 306 outputs the bit position of the found error to the second lookup table 310 and outputs the decoded data to the selector 314. If no error is found, the hamming decoder 306 outputs a signal indicating that there is no error to the second lookup table 310 and outputs decoded data to the selector 314.

제2룩업 테이블(310)은 제1룩업 테이블(304)과 동일한 데이터를 저장한다. 제2룩업 테이블(310)은 타이밍 제어 신호 T5에서 동작하며, 해밍 복호기(306)에서 오류의 비트 위치가 입력되면, 그와 짝이 되는 위치를 인버터(308)로 출력하고, 해밍 복호기(306)에서 오류가 발견되지 않았다면 오류가 없다는 신호를 인버터(308)로 출력한다.The second lookup table 310 stores the same data as the first lookup table 304. The second lookup table 310 operates at the timing control signal T5, and when an error bit position is input from the hamming decoder 306, the second lookup table 310 outputs a position to be paired with the inverter 308, and the hamming decoder 306. If no error is found in the output, a signal that there is no error is output to the inverter 308.

인버터(308)는 타이밍 제어신호 T6에서 동작하며, 분리기(302)에서 출력되는 터보 복호화된 데이터에 대해, 제2룩업 테이블(310)에서 출력되는 위치에 해당하는 비트 값을 "0"은 "1"로, 혹은 "1"은 "0"으로 변환하여 지연기(312)로 출력한다. 만일 제2룩업 테이블(310)에서 오류가 없다는 신호를 받으면, 인버터(308)는 분리기(302)에서 받을 입력을 그대로 지연기(312)로 출력한다.The inverter 308 operates at the timing control signal T6 and, for the turbo decoded data output from the separator 302, a bit value corresponding to the position output from the second lookup table 310, " 0 " "Or" or "1" is converted to "0" and output to the delay unit 312. If the second lookup table 310 receives a signal that there is no error, the inverter 308 outputs the input received from the separator 302 to the delay unit 312 as it is.

지연기(312)는 타이밍 제어신호 T7에서 동작하며, 해밍 복호기(306)에 의해 복호가 완료될 때까지 인버터(308)로부터 입력된 데이터를 지연시킨다. 선택기(314)는 타이밍 제어신호 T8에서 동작하며, 시간 Dtd+Dnd부터 Dtd+Dnd+k-1까지는 해밍 복호기(306)에서 출력된 데이터를, 시간 Dtd+Dnd+k부터 Dtd+Dnd+K까지는 지연기(312)에서 출력된 데이터를 선택하여 출력한다. 여기서, Dtd는 터보 복호기의 복호 시간이고, Dnd는 해밍 복호기의 복호 시간이다.The delay unit 312 operates at the timing control signal T7 and delays the data input from the inverter 308 until the decoding is completed by the hamming decoder 306. The selector 314 operates at the timing control signal T8, and outputs data output from the hamming decoder 306 from time D td + D nd to D td + D nd + k-1 from time D td + D nd + k. D td + D nd + K selects and outputs data output from the delay unit 312. Here, D td is a decoding time of the turbo decoder, and D nd is a decoding time of the hamming decoder.

다음의 표는 타이밍 제어기(316)에서 출력되는 제어신호에 따른 시간대별 각 구성요소의 동작들을 나타낸 것이다.The following table shows the operation of each component for each time zone according to the control signal output from the timing controller 316.

구성요소/시간대Component / Time Zone 0~(Dtd-1)0 to (D td -1) Dtd~(Dtd+Dnd-1)D td to (D td + D nd -1) (Dtd+Dnd)~(Dtd+Dnd+K-k)(D td + D nd ) ~ (D td + D nd + Kk) 터보 복호기Turbo decoder 인에이블Enable 디스에이블Disable 디스에이블Disable 제1룩업 테이블First lookup table 인에이블Enable 디스에이블Disable 디스에이블Disable 분리기Separator 인에이블Enable 디스에이블Disable 디스에이블Disable 해밍 복호기Hamming Decoder 인에이블Enable 인에이블Enable 디스에이블Disable 제2룩업 테이블Second lookup table 디스에이블Disable 인에이블Enable 디스에이블Disable 인버터inverter 인에이블Enable 인에이블Enable 인에이블Enable 지연기Retarder 디스에이블Disable 인에이블Enable 인에이블Enable 선택기Selector 디스에이블Disable 해밍 복호기 출력 선택Hamming Decoder Output Selection 인버터 출력 선택Inverter output selection

상기 표에 따르면, 해밍 부호를 연접한 터보 부호의 복호기는 0에서 (Dtd+Dnd+K-k) 시간 주기에서 전체 N=K+n-k개의 수신된 심볼을 복호화한다.According to the table, the decoder of the turbo code concatenated with the Hamming code decodes the entire N = K + nk received symbols in a time period from 0 to (D td + D nd + Kk).

도 4는 종래의 터보 복호기와 본 발명에 따른 해밍 부호 연접 터보 복호기의 Eb/No에 대한 BER을 도시한 것이다. 구성 부호로는 부호율이 1/2인 (7,5) 재귀적 조직형 컨벌루셔널 부호 두 개를 크기가 512인 랜덤 인터리버를 통해 병렬 연접하고, 천공을 통해 부호율을 1/2로 만든 터보 부호를 사용하였다. 구성 부호의 복호 방식으로는 MAP을 사용하고, 가산성 백색 가우시안 잡음(AWGN) 채널 환경에서 요구되는 BER이 10-6일 때, Eb/No=4.0dB에서 본 발명은 종래 기술보다 0.75 dB정도의 성능향상을 보인다. 실험에 사용된 해밍 부호는 한 개의 오류정정 능력을 갖는 (n,k)=(63,57) 부호이다.4 shows BER for E b / N o of a conventional turbo decoder and a hamming coded concatenation turbo decoder according to the present invention. The constituent code is a concatenation of two (7,5) recursive organizational convolutional codes with a code rate of 1/2 through a random interleaver of size 512, and a code rate of 1/2 through puncturing. Turbo sign was used. MAP is used as the decoding method of the component code, and when the BER required in the additive white Gaussian noise (AWGN) channel environment is 10 -6 , the present invention is 0.75 dB than the prior art at E b / N o = 4.0 dB. It shows a degree of performance improvement. The Hamming code used in the experiment is (n, k) = (63,57) code with one error correction capability.

도 5는 도 4에 도시된 실험과 동일한 조건에서 AWGN 채널에서 요구되는 조건이 BER=10-4일 때, 종래 기술과 본 발명의 Eb/No에 대한 프레임 오율 (FER)을 비교하여 도시한 것이다. 도시된 바에 따르면, Eb/No=4.0dB에서 본 발명은 종래 기술에 비해 1.00dB 정도의 성능 향상을 보인다.FIG. 5 shows a comparison of the frame error rate (FER) for E b / N o of the prior art and the present invention when the condition required for the AWGN channel is BER = 10 −4 under the same conditions as those shown in FIG. 4. It is. As shown, at E b / N o = 4.0 dB, the present invention shows a performance improvement of about 1.00 dB over the prior art.

한편, 상기한 바와 같은, 본 발명에 따른 해밍 부호를 연접한 터보 부호화 방법 및 해밍 복호를 연접한 터보 복호화 방법은 개인용 또는 서버 컴퓨터급의 컴퓨터내에서 실행되는 프로그램으로 작성 가능하다. 상기 프로그램을 구성하는 프로그램 코드들 및 코드 세그멘트들은 당해 분야의 컴퓨터 프로그래머들에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 컴퓨터 독취가능한 기록매체에 저장될 수 있다. 상기 기록매체는 자기기록매체, 광기록매체 및 전파매체를 포함한다. 또한, 상기 프로그램은 망으로 연결된 기기들내에서 분산되어 저장되고 실행될 수 있다.On the other hand, as described above, the turbo encoding method concatenated with the Hamming code and the turbo decoding method concatenated with the Hamming decoding can be produced by a program executed in a personal or server computer class computer. Program codes and code segments constituting the program can be easily inferred by computer programmers in the art. The program may also be stored in a computer readable recording medium. The recording medium includes a magnetic recording medium, an optical recording medium and a radio wave medium. In addition, the program may be distributed and stored and executed in devices connected by a network.

본 발명에 따르면, 기존의 터보 부호의 성능에 영향을 가장 많이 미치는 낮은 거리의 부호어를 생성하는 터보 부호의 입력에서 오류 발생 확률이 높은 "1"의 값을 갖는 위치중 지정된 위치에 해밍 부호를 삽입하고, 복호시 상기 지정된 위치에서 발생된 오류를 정정함으로써 비교적 높은 Eb/No에서 성능을 향상시킬 수 있다.According to the present invention, a Hamming code is assigned to a designated position among positions having a value of "1" with a high probability of error in the input of a turbo code that generates a low distance codeword that most affects the performance of a conventional turbo code. It is possible to improve performance at a relatively high E b / N o by inserting and correcting errors occurring at the specified positions during decoding.

Claims (12)

소정 값 이하의 거리를 갖는 부호어를 생성하는 터보 부호의 정보어에서 제1레벨값을 갖는 비트 위치를 적어도 하나 선택하고, 선택된 비트 위치에 상기 정보어의 일부를 해밍 부호화한 데이터를 삽입하여 터보 부호화한 부호.At least one bit position having a first level value is selected from an information word of a turbo code that generates a code word having a distance less than a predetermined value, and the data obtained by Hamming-encoding a part of the information word is inserted into the selected bit position. Coded code. 제1항에 있어서, 상기 위치는The method of claim 1, wherein the location is 한 프레임내에서 상기 제1레벨 값이 군집한 구간에서 상기 제1레벨 값의 비트 위치를 하나의 조로 묶을 때, 상기 해밍 부호화한 데이터의 비트 수만큼 지정된 조에서 하나씩 선택되는 부호.The code is selected one by one in a group specified by the number of bits of the hamming-encoded data when the bit positions of the first level value are grouped into one pair in a section in which the first level values are clustered within one frame. (a) 소정 값 이하의 거리를 갖는 부호어를 생성하는 터보 부호의 정보어중 제1레벨값을 갖는 비트 위치를 적어도 하나 선택하며, 선택된 위치를 저장하는 단계;(a) selecting at least one bit position having a first level value among information words of a turbo code that generates codewords having a distance less than or equal to a predetermined value, and storing the selected position; (c) 입력되는 정보어를 두 블록으로 분리하는 단계;(c) dividing the input information word into two blocks; (c) 상기 두 블록중 제1블록의 데이터를 해밍 부호로 부호화하는 단계;(c) encoding data of a first block of the two blocks with a Hamming code; (d) 상기 두 블록 중 제2블록의 데이터 시퀀스를 출력하되, 상기 (a)단계에서 저장된 비트 위치에는 상기 (c)단계에서 부호화된 데이터를 삽입하여 출력하는 단계; 및(d) outputting a data sequence of a second block of the two blocks, and inserting and outputting the data encoded in the step (c) into the bit position stored in the step (a); And (e) 상기 (d)단계에서 출력되는 데이터를 터보 부호화하는 단계를 포함하는 해밍 부호를 연접한 터보 부호화 방법.(e) Turbo encoding method concatenating a Hamming code comprising turbo encoding the data output in step (d). 제3항에 있어서, 상기 (a)단계의 위치는The method of claim 3, wherein the position of step (a) is 한 프레임내에서 상기 제1레벨 값이 군집한 구간에서 상기 제1레벨 값의 비트 위치를 하나의 조로 묶을 때, 상기 해밍 부호화한 데이터의 비트 수만큼 지정된 조에서 하나씩 선택되는 해밍 부호를 연접한 터보 부호화 방법.Turbo concatenating Hamming codes that are selected one by one from the specified pair by the number of bits of the Hamming-encoded data when grouping bit positions of the first level value into one pair in a section in which the first level values are clustered within one frame. Encoding method. 소정 값 이하의 거리를 갖는 부호어를 생성하는 터보 부호의 정보어중 제1레벨 값을 갖는 비트 위치를 적어도 하나 저장하는 저장기;A storage unit for storing at least one bit position having a first level value among information words of a turbo code that generates codewords having a distance less than or equal to a predetermined value; 입력되는 정보어를 두 블록으로 분리하는 분리기;A separator for separating the input information word into two blocks; 상기 분리기에서 분리된 블록중 제1블록의 데이터를 해밍 부호화하는 해밍 부호기;A hamming encoder for hamming and encoding data of a first block among blocks separated by the separator; 상기 분리기에서 분리되어 입력된 제2블록 데이터를 출력하되, 상기 저장기에 저장된 비트 위치에는 상기 해밍 부호기의 출력 데이터를 선택하여 출력하는 선택기; 및A selector for outputting second block data separated and input from the separator, and selecting and outputting output data of the hamming encoder at bit positions stored in the storage device; And 상기 선택기에서 출력되는 데이터 시퀀스를 터보 부호화하는 터보 부호기를 포함하는 해밍 부호를 연접한 터보 부호기.And a turbo coder concatenated with a Hamming code including a turbo coder for turbo coding the data sequence output from the selector. 제5항에 있어서, 상기 저장기에 저장되는 비트 위치는The method of claim 5, wherein the bit position stored in the storage unit is 한 프레임내에서 상기 제1레벨 값이 군집한 구간에서 상기 제1레벨 값의 비트 위치를 하나의 조로 묶을 때, 상기 해밍 부호화한 데이터의 비트 수만큼 지정된조에서 하나씩 선택되는 해밍 부호를 연접한 터보 부호기.Turbo concatenating Hamming codes that are selected one by one from the specified pair by the number of bits of the Hamming-encoded data when grouping bit positions of the first level value into one pair in a section in which the first level values are clustered within one frame. Encoder. 소정 값 이하의 거리를 갖는 부호어를 생성하는 터보 부호의 정보어에서 제1레벨값을 갖는 비트 위치를 적어도 하나 선택하고, 선택된 위치에 상기 정보어의 일부를 해밍부호화한 데이터가 삽입되어 터보 부호화된 데이터가 채널을 통해 수신될 때, 수신된 데이터 시퀀스를 복호화하는 방법에 있어서,Turbo encoding is performed by selecting at least one bit position having a first level value from an information word of a turbo code that generates codewords having a distance less than or equal to a predetermined value, and inserting data Hamming-encoded a portion of the information word into the selected position. A method for decoding a received data sequence when received data is received through a channel, (a) 상기 선택된 위치가, 한 프레임내에서 상기 제1레벨 값이 군집한 구간에서 상기 제1레벨 값의 비트 위치를 하나의 조로 묶는 경우 상기 해밍 부호화한 데이터의 비트 수만큼 지정된 조에서 하나씩 선택되는 위치일 때, 각 조에 해당하는 비트 위치들을 저장하는 단계;(a) when the selected positions group the bit positions of the first level value into one group in a section in which the first level values are clustered in one frame, select one from the specified group by the number of bits of the hamming-encoded data. Storing bit positions corresponding to each pair when the position is a predetermined position; (b) 수신 데이터 시퀀스를 터보 복호화하는 단계;(b) turbo decoding the received data sequence; (c) 상기 선택된 위치에서 상기 해밍 부호화 데이터를 분리하고, 나머지 데이터를 출력하는 단계;(c) separating the Hamming coded data at the selected position and outputting the remaining data; (d) 분리된 해밍부호화 데이터를 해밍 복호화하면서 오류 발생여부를 판단하고, 오류가 발생한 경우 오류가 발생된 비트 위치를출력하고, 해당 오류 데이터를 정정하여 출력하는 단계; 및(d) determining whether an error occurs while hamming and decoding the separated hamming coded data, and if an error occurs, outputting a bit position where an error occurs, correcting and outputting the corresponding error data; And (e) 상기 나머지 데이터중에서 상기 오류가 발생된 비트 위치와 한 조를 이루는 비트 위치들에 해당하는 데이터를 정정하여 출력하는 단계를 포함하는 해밍복호를 연접한 터보 복호화 방법.and (e) correcting and outputting data corresponding to bit positions constituting a pair with the bit position where the error occurs among the remaining data. 제7항에 있어서,The method of claim 7, wherein (f) 상기 (d)단계에서 오류가 발생하지않았다면 해밍 복호화된 데이터를 출력하는 단계; 및(f) outputting hamming-decoded data if an error has not occurred in step (d); And (g) 상기 나머지 데이터를 소정 시간지연을 두고 출력하는 단계를 더 구비하는 해밍 복호를 연접한 터보 복호화 방법.and (g) further outputting the rest of the data with a predetermined time delay. 소정 값 이하의 거리를 갖는 부호어를 생성하는 터보 부호의 정보어에서 제1레벨값을 갖는 비트 위치를 적어도 하나 선택하고, 선택된 위치에 상기 정보어의 일부를 해밍부호화한 데이터가 삽입되어 터보 부호화된 데이터가 채널을 통해 수신될 때, 수신된 데이터 시퀀스를 복호화하는 복호기에 있어서,Turbo encoding is performed by selecting at least one bit position having a first level value from an information word of a turbo code that generates codewords having a distance less than or equal to a predetermined value, and inserting data Hamming-encoded a portion of the information word into the selected position. In the decoder for decoding the received data sequence when the received data is received through the channel, 상기 선택된 위치가, 한 프레임내에서 상기 제1레벨 값이 군집한 구간에서 상기 제1레벨 값의 비트 위치를 하나의 조로 묶는 경우 상기 해밍 부호화한 데이터의 비트 수만큼 지정된 조에서 하나씩 선택되는 위치일 때, 각 조에 해당하는 비트 위치들을 저장하는 저장기;The selected positions are positions that are selected one by one in a pair designated by the number of bits of the hamming-encoded data when the bit positions of the first level values are grouped into one pair in a section in which the first level values are clustered within one frame. A storage for storing bit positions corresponding to each pair; 수신 데이터 시퀀스를 터보 복호화하는 터보 복호기;A turbo decoder for turbo decoding a received data sequence; 상기 선택된 위치에서 상기 해밍부호화 데이터를 분리하고, 나머지 데이터를 출력하는 분리기;A separator for separating the hamming coded data at the selected position and outputting the remaining data; 분리된 해밍부호화 데이터를 해밍 복호화하면서 오류 발생여부를 점검하여, 오류가 발생했다면 오류를 정정하면서 오류가 발생한 비트 위치를 출력하는 해밍 복호기;A hamming decoder for checking whether an error has occurred while hamming and decoding the separated hamming coded data, and correcting the error if the error has occurred and outputting a bit position where the error occurred; 상기 해밍 복호기의 출력에 따라 상기 저장기로부터 상기 오류가 발생한 비트 위치와 한 조를 이루는 비트 위치들을 입력받아 상기 분리기로부터 입력된 나머지 데이터중 상기 저장기에서 출력되는 비트 위치들에 해당하는 데이터를 정정하는 인버터; 및According to the output of the hamming decoder, the bit positions constituting the pair with the bit position where the error occurs are received from the storage device, and the data corresponding to the bit positions output from the storage device among the remaining data inputted from the separator are corrected. An inverter; And 소정 시간차를 두고 상기 해밍 복호기 또는 상기 인버터의 출력중 하나를 선택하는 선택기를 포함하는 해밍 복호를 연접한 터보 복호기.And a selector for selecting one of the Hamming decoder or the output of the inverter with a predetermined time difference. 제9항에 있어서,The method of claim 9, 상기 해밍 복호기는 상기 복호화된 데이터중 오류가 발생하지않았다면 오류가 없다는 신호를 출력하고,The hamming decoder outputs a signal that there is no error if an error does not occur in the decoded data, 상기 인버터는 상기 오류가 없다는 신호에 따라 상기 분리기로부터 입력된 나머지 데이터를 그대로 출력하는 해밍 복호를 연접한 터보 복호기.And said inverter is connected to a Hamming decode for outputting the remaining data inputted from said separator as it is, in response to a signal that there is no error. 제9항 또는 제10항에 있어서, 상기 인버터는The method of claim 9 or 10, wherein the inverter 상기 인버터의 출력 데이터를 상기 해밍 복호기의 동작 시간만큼 지연하여 출력하는 지연기를 더 구비하는 해밍 복호를 연접한 터보 복호기.And a delay decoder configured to delay and output the output data of the inverter by an operation time of the hamming decoder. 제9항에 있어서,The method of claim 9, 각 구성요소들의 동작 순서에 따라 그에 맞는 타이밍 신호를 출력하는 타이밍 제어기를 더 구비하는 해밍 복호를 연접한 터보 복호화기.And a timing controller for outputting a timing signal corresponding to the operation order of each component.
KR10-2000-0013038A 2000-03-15 2000-03-15 Coding/decoding method and apparatus of turbo code concatenated by Hamming code KR100370780B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0013038A KR100370780B1 (en) 2000-03-15 2000-03-15 Coding/decoding method and apparatus of turbo code concatenated by Hamming code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0013038A KR100370780B1 (en) 2000-03-15 2000-03-15 Coding/decoding method and apparatus of turbo code concatenated by Hamming code

Publications (2)

Publication Number Publication Date
KR20010091388A true KR20010091388A (en) 2001-10-23
KR100370780B1 KR100370780B1 (en) 2003-02-05

Family

ID=19655384

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0013038A KR100370780B1 (en) 2000-03-15 2000-03-15 Coding/decoding method and apparatus of turbo code concatenated by Hamming code

Country Status (1)

Country Link
KR (1) KR100370780B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040000059A (en) * 2002-06-21 2004-01-03 엘지전자 주식회사 Symbol coding method and symbol coder

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106788466A (en) * 2016-12-13 2017-05-31 中国电子科技集团公司第二十研究所 Turbo code coding and decoding chip for minimizing communication system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0126067B1 (en) * 1995-06-28 1997-12-24 다쓰노 히로미찌 Oil discharging apparatus
US5996104A (en) * 1996-09-13 1999-11-30 Herzberg; Hanan System for coding system
JP3928311B2 (en) * 1999-09-06 2007-06-13 三菱電機株式会社 Turbo code error correction decoding apparatus and turbo code error correction decoding method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040000059A (en) * 2002-06-21 2004-01-03 엘지전자 주식회사 Symbol coding method and symbol coder

Also Published As

Publication number Publication date
KR100370780B1 (en) 2003-02-05

Similar Documents

Publication Publication Date Title
US6289486B1 (en) Adaptive channel encoding method and device
JP3730238B2 (en) Adaptive channel coding method and apparatus
US6339834B1 (en) Interleaving with golden section increments
US7519895B2 (en) Channel encoding/decoding apparatus and method using a parallel concatenated low density parity check code
US9214958B2 (en) Method and decoder for processing decoding
US6625775B1 (en) Encoder/decoder with serial concatenated structure in communication system
KR100321978B1 (en) Apparatus and method for eterative decoding in telecommunication system
EP0963049B1 (en) Interleaving with golden section increments
EP2102989B1 (en) Turbo-encoding with contention-free qpp interleavers
KR100876735B1 (en) Iterative decoding stop device and method in mobile communication system
KR20050118056A (en) Method and apparatus for channel encoding and decoding in mobile communication systems using multi-rate block ldpc codes
US20020166095A1 (en) Mechanism for turbo decoding when CRC for partial blocks is provided
Argon et al. An efficient Chase decoder for turbo product codes
KR20090127878A (en) Method and apparatus for encoding and decoding data
JP4321394B2 (en) Encoding device, decoding device
EP1317070A1 (en) Method for obtaining from a block turbo-code an error correcting code of desired parameters
KR19990081470A (en) Method of terminating iterative decoding of turbo decoder and its decoder
US6961894B2 (en) Digital transmission method of the error-correcting coding type
KR100738250B1 (en) Apparatus and method for controlling iterative decoding for turbo decoder using compare of LLR's sign bit
KR100370780B1 (en) Coding/decoding method and apparatus of turbo code concatenated by Hamming code
KR101433375B1 (en) Apparatus and method of encoding/decoding block low density parity check codes in a communication system
KR20010092900A (en) Apparatus for stopping recursive decoding and turbo decoder comprising it
CN108476027B (en) Window interleaved TURBO (WI-TURBO) code
CA2273407C (en) Interleaving with golden section increments
KR20030082699A (en) Turbo internal interleaving method and device based on golden sequence

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
LAPS Lapse due to unpaid annual fee