KR100297739B1 - Turbo codes with multiple tails and their encoding / decoding methods and encoders / decoders using them - Google Patents

Turbo codes with multiple tails and their encoding / decoding methods and encoders / decoders using them Download PDF

Info

Publication number
KR100297739B1
KR100297739B1 KR1019980021766A KR19980021766A KR100297739B1 KR 100297739 B1 KR100297739 B1 KR 100297739B1 KR 1019980021766 A KR1019980021766 A KR 1019980021766A KR 19980021766 A KR19980021766 A KR 19980021766A KR 100297739 B1 KR100297739 B1 KR 100297739B1
Authority
KR
South Korea
Prior art keywords
tail
block
encoder
turbo code
input data
Prior art date
Application number
KR1019980021766A
Other languages
Korean (ko)
Other versions
KR20000001483A (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 KR1019980021766A priority Critical patent/KR100297739B1/en
Publication of KR20000001483A publication Critical patent/KR20000001483A/en
Application granted granted Critical
Publication of KR100297739B1 publication Critical patent/KR100297739B1/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
    • H03M13/296Particular turbo code structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

본 발명은 다중테일 터보코드및 그의 부호화/복호화방법및 그를 이용한 부호기/복호기에 관한 것이다. 본 발명의 다중테일 터보코드 부호기는 각 부호기에서 다중테일을 첨가하여 부호화한다. 즉, 기존 터보코드가 하나의 테일만을 가지는 반면, 본 발명의 터보코드는 입력을 적어도 하나 이상의 블록으로 나눈 후 각 블록마다 테일을 첨가한 다중테일을 갖는다. 다중테일 터보코드의 부호기/복호기는 기존 터보코드의 부호기/복호기의 각 블록들의 동작시간만을 변경시켜 구현한다. 다중테일 터보코드는 복호시 이용할 수 있는 정보가 많기 때문에 더 좋은 성능을 보이지만 기존 터보코드보다 많은 테일을 가지므로, 더 많은 전송 파워를 필요로 하고, 더 넓은 대역폭을 필요로 한다. 그러나 입력 길이가 큰 경우에는 다중테일을 가지는 터보코드와 기존 터보코드의 전송 파워와 대역폭의 차이는 무시할 수 있을 만큼 작다. 기존 터보코드를 복호화하기 위한 MAP복호기는 입력 심볼의 크기와 구성부호의 메모리 갯수에 의해 결정되므로 서비스마다 다른 MAP복호기가 필요하다. 그러나 다중테일을 가지는 터보코드의 경우에는 하나의 MAP복호기를 가지고 입력데이타를 적어도 하나 이상의 블록으로 나눔으로써 입력길이와 관계 없이 모든 서비스를 처리하고, 특히 다중테일 터보코드는 병렬복호가 가능하므로 다수의 MAP복호기를 사용하면 기존의 심각한 복호지연 문제를 해결할 수 있다.The present invention relates to a multi-tailed turbo code, a method of encoding / decoding thereof, and an encoder / decoder using the same. The multi-tail turbo code encoder of the present invention encodes by adding a multi-tail in each encoder. That is, while the conventional turbo code has only one tail, the turbo code of the present invention has a multi-tail having a tail added to each block after dividing an input into at least one block. The encoder / decoder of the multi-tail turbo code is implemented by changing only the operation time of each block of the encoder / decoder of the existing turbo code. Multi-tailed turbocodes perform better because there is more information available for decoding, but they have more tails than conventional turbocodes, requiring more transmission power and more bandwidth. However, when the input length is large, the difference between the transmission power and the bandwidth of a multi-tail turbo cord and a conventional turbo code is negligible. Since the MAP decoder for decoding the existing turbo code is determined by the size of the input symbol and the number of memory of the component code, a different MAP decoder is required for each service. However, in the case of a multi-tail turbo code, all services are processed regardless of the input length by dividing the input data into at least one block with one MAP decoder, and in particular, the multi-tail turbo code is capable of parallel decoding. Using the MAP decoder can solve the existing serious decoding delay problem.

Description

다중테일을 갖는 터보코드및 그의 부호화/복호화 방법 및 그를 이용한 부호기/복호기Turbocode with Multiple Tails and Its Encoding / Decoding Method and Encoder / Decoder Using the Same

도 1은 본 발명에 의한 다중테일을 갖는 터보코드의 부호기의 블록도이다.1 is a block diagram of an encoder of a turbo code having multiple tails according to the present invention.

도 2는 도 1의 구성 부호기의 상세 블록도이다.FIG. 2 is a detailed block diagram of the constituent encoder of FIG. 1.

도 3은 도 1의 테일 생성기의 상세 블록도이다.3 is a detailed block diagram of the tail generator of FIG. 1.

도 4는 본 발명에 의한 다중테일을 갖는 터보코드의 복호기의 블록도이다.4 is a block diagram of a turbo code decoder having multiple tails according to the present invention.

도 5는 일반적인 단일테일 복호 알고리즘을 설명하기 위한 개념도이다.5 is a conceptual diagram illustrating a general single tail decoding algorithm.

도 6은 본 발명의 다중테일 복호알고리즘을 설명하기 위한 개념도이다.6 is a conceptual diagram for explaining a multi-tail decoding algorithm of the present invention.

* 도면의 주요부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

10, 40...제1 및 제2 타이밍콘트롤러, 11, 25...인터리버,10, 40 ... first and second timing controllers, 11, 25 ... interleaver,

12, 15, 18...제1내지 제3선택기, 13,16...제1 및 제2구성부호기,12, 15, 18 ... 1st to 3rd selectors, 13, 16 ... 1st and 2nd component encoders,

14, 17...제1 및 제2 테일생성기, 19...버퍼,14, 17 ... first and second tail generator, 19 ... buffer,

20...어드레스계산기, 21, 30...제1 및 제2 지연기,20 ... address calculator, 21, 30 ... first and second delayers,

22, 23, 26, 27...제4 내지 제7선택기, 24, 28...제1 및 제2MAP디코더,22, 23, 26, 27 ... fourth to seventh selectors, 24, 28 ... first and second MAP decoders,

29...디인터리버, 31...판별기29 deinterleaver, 31 discriminator

본 발명은 다중테일을 갖는 터보코드 및 그의 부호화/복호화방법 및 그를 이용한 부호기/복호기에 관한 것으로, 보다 상세하게는 입력을 적어도 하나 이상의 블록으로 나눈 후, 부호기 및 복호기의 동작시간만을 변경시킴으로써, 각 블록마다 테일을 첨가하는, 다중테일을 갖는 터보코드 및 그의 부호화/복호화방법 및 그를 이용한 부호기/복호기에 관한 것이다.The present invention relates to a turbo code having a multi-tail, an encoding / decoding method thereof, and an encoder / decoder using the same, and more particularly, by dividing an input into at least one or more blocks, and then changing only the operating time of the encoder and the decoder. The present invention relates to a turbo code having multiple tails, a method of encoding / decoding thereof, and an encoder / decoder using the same, in which a tail is added to each block.

터보코드는 개발자(Berrou)가 처음 사용한 일종의 닉네임으로 이미 널리 통용되는 용어이다. 처음에 등장한 정식 명칭은 병렬컨벌루셔널코드, 멀티컴포넨트코드 또는 병렬쇄상 테일비트 컨벌루셔널코드등으로 불리워졌다. 터보코드의 부호화 특성은 도 1의 타이밍콘트롤러를 제외한 도면에 잘 나타나 있다. 즉, 첫번째 부호기(100)와 두 번째 부호기(110)는 입력에 대해서 병렬로 접속되며, 입력이 첫번째 부호기(100)에서 부호화되고, 동일한 입력이 인터리버(11)에서 인터리빙된 후 두번째 부호기(110)에서 부호화된다. 이것을 병렬 쇄상 부호라고 불렀다. 참고로 예전의 (직렬) 쇄상 부호는 첫번째 부호기와 두 번째부호기는 입력에 대해서 직렬로 접속되며, 입력이 첫번째 부호기에서 부호화된 후 첫번째 부호기의 출력이 인터리빙된 후 두번째 부호기에서 부호화된다. 일반적으로 직렬 쇄상 부호에서는 구성부호로 하나는 컨벌루셔널 코드를, 하나는 블록 코드를 사용하는데 반해 병렬쇄상 부호에서는 모든 구성부호들이 컨벌루셔널 코드이다. 터보코드의 복호화 특성은 반복 복호를 수행한다는 점이다. 다시 말해서 터보코드에서는 복호된 결과를 이용하여 다시 복호를 한다. 이것을 위해서 복호기는 소프트아웃트푸트(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)에 개시되어 있으며, 이러한 선행기술들에도 도 1 및 도 4에 도시된 부호기 및 복호기의 블록에서 타이밍콘트롤러들을 제외하고 유사한 블록들이 개시되어 있다.Turbocode is a kind of nickname first used by the developer (Berrou). The first official names appeared were called parallel convolutional code, multi-component code or parallel chain tail bit convolutional code. The encoding characteristics of the turbo code are well illustrated in the drawings except for the timing controller of FIG. 1. That is, the first encoder 100 and the second encoder 110 are connected in parallel with respect to the input, the input is encoded in the first encoder 100, the same input is interleaved in the interleaver 11, and then the second encoder 110 is connected. Is encoded. This was called parallel chain code. For reference, the old (serial) chain code is serially connected to the first encoder and the second encoder to the input. After the input is encoded at the first encoder, the output of the first encoder is interleaved and then encoded at the second encoder. In general, in serial chain codes, one uses a convolutional code and one block code, while in a parallel chain code, all components are convolutional codes. The decoding characteristic of the turbo code is that iterative decoding is performed. In other words, the turbo code decodes again using the decoded result. To do this, the decoder must be able to output a soft output. Turbocode uses either a maximum a posteriori (MAP) algorithm or a soft output viterbi algorithm (SOVA) for decoding. The new code, which includes many of these features, outperformed any code that existed before and was called Turbocode. The current turbocode does not refer to only those described above, but those employing only some of the characteristics of the turbocode are also called turbocodes in a broad sense. Prior arts using such turbo codes, i.e., 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), and these prior art coders and decoders shown in FIGS. Similar blocks are disclosed except for timing controllers in the block of.

이러한 터보코드는 최근에 개발된 채널 오류 정정 부호이며, 기존 오류 정정 부호에 비해 매우 성능이 우수하기 때문에 앞으로 많은 통신 시스템에 오류 정정 부호로써 채택될 것이 예상된다. 그러나, 기존의 터보코드는 복호시 지연되는 문제가 있으며, 기존의 터보코드를 복호화하는 경우 입력심볼의 크기와 구성부호의 메모리갯수에 의해 종속되므로 서비스마다 다른 복호기가 필요한 단점이 있었다.These turbo codes are recently developed channel error correcting codes, and since they are very superior in performance to existing error correcting codes, they are expected to be adopted as error correcting codes in many communication systems in the future. However, the conventional turbo code has a problem in that it is delayed in decoding, and when decoding the conventional turbo code, it is dependent on the size of the input symbol and the number of memory of the component code.

[발명이 이루고자 하는 기술적 과제][Technical problem to be achieved]

본 발명이 이루고자 하는 기술적 과제는 제공하는데 있다.The technical problem to be achieved by the present invention is to provide.

본 발명이 이루고자 하는 기술적 과제는 적어도 하나 이상의 블록으로 나누어진 입력데이타의 각 블록에 테일을 첨가하여 부호화하는 다중테일을 갖는 터보코드를 생성하는 부호화방법을 제공하는 데 있다.An object of the present invention is to provide an encoding method for generating a turbo code having multiple tails by adding a tail to each block of input data divided into at least one block.

본 발명이 이루고자 하는 또 다른 기술적 과제는 상기 다중테일 터보코드 부호기에서 부호화된 다중테일을 갖는 터보코드를 복원하는 복호화방법을 제공하는데 있다.Another object of the present invention is to provide a decoding method for recovering a turbo code having a multi-tail encoded in the multi-tail turbo code encoder.

본 발명이 이루고자 하는 또 다른 기술적 과제는 다중테일을 갖는 터보코드를 생성하는 부호기를 제공하는데 있다.Another object of the present invention is to provide an encoder for generating a turbo code having a multi-tail.

본 발명이 이루고자 하는 또 다른 기술적 과제는 상기 다중테일 터보코드 부호기에서 부호화된 다중테일을 갖는 터보코드를 복원하는 복호기를 제공하는데 있다.Another object of the present invention is to provide a decoder for recovering a turbo code having a multi-tail encoded in the multi-tail turbo code encoder.

[발명의 구성 및 작용][Configuration and Function of Invention]

본 발명은 상기 기술적 과제를 달성하기 위하여, 적어도 하나 이상의 부호기에서, 타이밍제어신호에 따라서 입력데이타를 적어도 하나 이상의 블록으로 나눈 후 각 블록마다 테일을 첨가하여 부호화하는 다중테일을 갖는 터보코드를 생성하는 부호화방법을 제공하는데 있다.In order to achieve the above technical problem, at least one encoder generates a turbo code having a multi-tail for dividing input data into at least one block according to a timing control signal and then adding a tail to each block to encode the same. An encoding method is provided.

본 발명이 이루고자 하는 또 다른 기술적 과제는 적어도 하나 이상의 각 부호기로 입력된 입력데이타를 제1 타이밍제어신호들에 따라서 적어도 하나 이상의 블록으로 나누고 각 블록에 하나의 테일을 첨가하여 생성된 다중테일을 갖는 터보코드를 복호하하는 방법에 있어서, 제2 타이밍제어신호에 따라서 입력데이타 및 테일정보를 선택적으로 복호화하는 단계; 및 상기 복호화된 정보를 인터리빙한 값과 다음 순차 테일정보를 선택적으로 복호화하고 상기 마지막으로 복호화된 정보를 디인터리빙하여 다중테일을 갖는 터보코드를 복원하는 단계;를 포함하는 복호화방법을 제공하는데 있다.Another technical problem to be solved by the present invention is to divide the input data input to at least one encoder into at least one block according to the first timing control signals and to have a multi-tail generated by adding one tail to each block. A method of decoding a turbo code, the method comprising: selectively decoding input data and tail information according to a second timing control signal; And selectively decoding a value obtained by interleaving the decoded information and next sequential tail information, and deinterleaving the last decoded information to restore a turbo code having a multi-tail.

본 발명이 이루고자 하는 또 다른 기술적 과제는 타이밍제어신호에 따라서 입력데이타를 적어도 하나 이상의 블록으로 나눈 후 각 블록에 테일정보를 첨가하여 부호화하고, 상기 입력데이타를 적어도 하나 이상의 블록으로 나눈 후 각 블록마다 순차인터리빙한 후 각 인터리빙된 입력데이타에 각 테일정보를 첨가하여 부호화하는 상기 블록 수에 상당하는 적어도 하나 이상의 부호기들; 상기 입력데이타, 상기 각 테일정보 및 상기 적어도 하나 이상의 부호기들의 출력들을 받아 선택적으로 출력하는 선택수단; 및 상기 적어도 하나 이상의 부호기들 및 상기 선택수단에 타이밍신호를 공급하는 타이밍콘트롤러;를 포함하는 다중테일을 갖는 터보코드를 생성하는 부호기를 제공하는데 있다.Another technical problem to be solved by the present invention is to divide input data into at least one block according to a timing control signal, add tail information to each block, encode the same, and divide the input data into at least one block, and then for each block. At least one encoder corresponding to the number of blocks for sequentially encoding and adding respective tail information to each interleaved input data; Selection means for selectively receiving the input data, the tail information and outputs of the at least one encoder; And a timing controller for supplying a timing signal to the at least one encoder and the selecting means.

본 발명이 이루고자 하는 또 다른 기술적 과제는 적어도 하나 이상의 각 부호기로 입력된 입력데이타를 제1 타이밍콘트롤러의 제1 타이밍제어신호들에 따라서 적어도 하나 이상의 블록으로 나누고 각 블록에 하나의 테일을 첨가하여 생성된 다중테일을 갖는 터보코드를 복호하하는 복호기에 있어서, 제2 타이밍제어신호들에 따라서 입력데이타와 테일정보를 받아 선택적으로 복호화하고, 상기 복호화된 입력데이타를 인터리빙한 후 순차 테일정보와 함께 선택적으로 복호화하는 적어도 하나 이상의 복호기들; 상기 복호된 입력데이타를 디인터리빙하고 판별하여 복원된 데이타를 출력하는 디인터리버/판별수단; 및 상기 적어도 하나 이상의 복호기들 및 상기 디인터리버/판별수단에 상기 제2 타이밍제어신호들을 공급하는 제2 타이밍콘트롤러;를 포함하는 다중테일을 갖는 터보코드를 복원하는 복호기를 제공하는데 있다.Another technical problem to be solved by the present invention is generated by dividing the input data input to at least one encoder into at least one block according to the first timing control signals of the first timing controller and adding one tail to each block. A decoder for decoding a turbo code having multiple tails, wherein the decoder receives input data and tail information according to second timing control signals and selectively decodes the interleaved decoding data. At least one decoder to decode into; Deinterleaver / determination means for deinterleaving and discriminating the decoded input data and outputting recovered data; And a second timing controller configured to supply the second timing control signals to the at least one decoder and the deinterleaver / identification means.

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

도 1은 본 발명에 의한 일 실시예의 다중테일을 갖는 터보코드의 부호기를 나타낸 것으로, 본 실시예에서는 입력데이타를 2개의 블록으로 나누어서 부호화하는 부호기를 설명하나, 본 발명은 블록이 2개이상인 경우에도 동작하는 것으로, 설명의 편이상 2블록인 경우의 다중테일을 갖는 터보코드의 부호기를 설명하기로 한다.1 shows an encoder of a turbo code having a multi-tail according to an embodiment of the present invention. In the present embodiment, an encoder for dividing the input data into two blocks will be described. However, the present invention has two or more blocks. The encoder of the turbo code having multiple tails in the case of two blocks or more will be described.

본 실시예의 부호기는 제1 부호기(인코더)(100), 제1 인터리버(11), 제2 부호기(110), 제1 타이밍콘트롤러(10), 제3 선택기(18), 버퍼(19), 및 어드레스계산기(20)를 구비한다.The encoder of this embodiment includes a first encoder (encoder) 100, a first interleaver 11, a second encoder 110, a first timing controller 10, a third selector 18, a buffer 19, and An address calculator 20 is provided.

길이가 N 비트인 입력 데이타는 제1 선택기(12), 제3 선택기(18) 및 제1 인터리버(11)로 보내진다. 제1 부호기(100)에서 제1 선택기(12)는 입력 데이타와 제1 테일생성기(14)의 출력을 입력으로 가진다. 제1 선택기(12)는 타이밍제어신호(C2)에 따라서, 시간 0 부터 N-1 까지는 입력 데이타를 출력한 뒤, 시간 N 부터 N+M-1 까지는 제1 테일생성기(14)의 출력을 출력한다. 여기서 M은 제1 구성부호기(13)가 가지는 메모리의 개수이다. 제1 구성부호기(13)는 타이밍제어신호(C3)에 따라서 제1 선택기(12)에서 출력되는 비트들을 순차적으로 받아들여 부호화한 후 N + M 비트를 순차적으로 출력한다. 제1 구성부호기(13)의 출력은 제3 선택기(18)로 보내진다. 제1 구성부호기(13)가 부호화하는 방법은 도 2를 참조하여 추후 상세히 설명하기로 한다. 제1 테일생성기(14)는 타이밍제어신호(C4)에 따라서 시간 N 부터 N+M-1 까지 제1 구성부호기(13)에 존재하는 메모리들이 가지는 값들을 입력으로 하여 테일을 생성한다. 제1 테일생성기(14)의 M비트 출력은 제1 선택기(12)와 제3 선택기(18)로 보내진다. 제1 테일생성기(14)가 테일을 생성하는 방법은 도 3을 참조하여 추후 상세히 설명하기로 한다.Input data of length N bits is sent to the first selector 12, the third selector 18, and the first interleaver 11. In the first encoder 100, the first selector 12 has input data and an output of the first tail generator 14 as inputs. The first selector 12 outputs the input data from time 0 to N-1 and then outputs the output of the first tail generator 14 from time N to N + M-1 according to the timing control signal C2. do. M is the number of memories that the first component encoder 13 has. The first component encoder 13 sequentially receives and encodes the bits output from the first selector 12 according to the timing control signal C3 and sequentially outputs N + M bits. The output of the first component encoder 13 is sent to the third selector 18. A method of encoding by the first component encoder 13 will be described in detail later with reference to FIG. 2. The first tail generator 14 generates a tail by inputting values of memories existing in the first component encoder 13 from time N to N + M-1 according to the timing control signal C4. The M bit output of the first tail generator 14 is sent to the first selector 12 and the third selector 18. A method of generating the tail by the first tail generator 14 will be described in detail later with reference to FIG. 3.

제2 부호기(110)의 동작을 설명하면, 인터리버(11)는 타이밍제어신호(C1)에 따라서 N 비트의 입력 데이타를 받은 후 소정의 인터리빙 규칙에 따라 순서를 바꾸어 새로운 N 비트의 데이타를 만든다. 제2 선택기(15)와 제2 구성부호기(16), 제2 테일생성기(17)의 역할은 입력 데이타 대신 인터리버(11)의 출력을 사용하고 타이밍제어신호들(C5, C6, C7)을 이용한다는 점을 제외하면 제1 선택기(12), 제1 구성부호기(13), 제1 테일생성기(14)의 역할들과 동일하다. 제2 선택기(15), 제2 구성부호기(16), 제2 테일생성기(17)는 시간 N+M 부터 2(N+M)-1 까지 동작한다.Referring to the operation of the second encoder 110, the interleaver 11 receives N bits of input data according to the timing control signal C1, and then reverses the order according to a predetermined interleaving rule to generate new N bits of data. The role of the second selector 15, the second component encoder 16, and the second tail generator 17 uses the output of the interleaver 11 instead of the input data and uses the timing control signals C5, C6, C7. Are identical to those of the first selector 12, the first component encoder 13, and the first tail generator 14. The second selector 15, the second component encoder 16, and the second tail generator 17 operate from time N + M to 2 (N + M) −1.

제3 선택기(18)는 입력 데이타, 제1 구성부호기(13), 제1 테일생성기(14), 제2 구성부호기(16), 제2 테일생성기(17)의 출력을 입력으로 가진다. 제3 선택기(18)는 이들을 타이밍제어신호(C8)에 따라서 순차적으로 선택하여 버퍼(19)로 보낸다.The third selector 18 has input data, outputs of the first component encoder 13, the first tail generator 14, the second component encoder 16, and the second tail generator 17 as inputs. The third selector 18 sequentially selects them according to the timing control signal C8 and sends them to the buffer 19.

버퍼(19)는 3N+4M개의 메모리로 구성되어 있다. 제3 선택기(18)의 출력은 타이밍제어신호(C9)에 따라서 어드레스계산기(20)에 의해 계산된 어드레스가 가리키는 버퍼(19)의 메모리에 저장된다.The buffer 19 is composed of 3N + 4M memories. The output of the third selector 18 is stored in the memory of the buffer 19 indicated by the address calculated by the address calculator 20 in accordance with the timing control signal C9.

이런 방법으로 N 비트의 입력 데이타에 대해서 터보코드로의 부호화가 완료되면 버퍼(19)에 저장된 3N + 4M 비트를 다음 단계로 넘겨준다. 버퍼(19)와 어드레스계산기(20)를 생략하고 제3 선택기(18)의 출력을 다음 단계로 직접 넘겨줄 수도 있다.In this way, when the encoding into the turbo code is completed for the N bits of input data, the 3N + 4M bits stored in the buffer 19 are transferred to the next step. The buffer 19 and the address calculator 20 may be omitted and the output of the third selector 18 may be passed directly to the next step.

도 2는 M 개의 메모리를 가지고, 생성 다항식 G1(x) 와 G2(x) 가 다음의 수학식 1과 수학식 2와 같이 정의된 구성부호기(13, 16)의 블록도이다.FIG. 2 is a block diagram of the constituent encoders 13 and 16 having M memories and whose generated polynomials G 1 (x) and G 2 (x) are defined as Equations 1 and 2 below.

[수학식 1][Equation 1]

[수학식 2][Equation 2]

여기서 g1 i와 g2 i는 0 또는 1 의 값을 가진다.Where g 1 i and g 2 i have the value 0 or 1.

즉 G1(x) = x3+ x + 1 일 때는 10112= 13 으로 표현한다.That is, when G 1 (x) = x 3 + x + 1, it is expressed as 1011 2 = 13.

도 2에서는 XOR를 의미하고는 AND를 의미한다. S0부터 SM-1은 한 비트를 저장할 수 있는 메모리이다. 시간 0에서 S0부터 SM-1의 초기값은 모두 0 이고, 테일까지 모두 부호화한 후에는 S0부터 SM-1의 마지막 값은 모두 0 이다.In Figure 2 Means XOR Means AND. S 0 to S M-1 are memories that can store one bit. At time 0, the initial values of S 0 to S M-1 are all 0, and after encoding all the tails, the final values of S 0 to S M-1 are all 0.

도 3은 메모리의 갯수가 M인 테일 생성기의 블록도이다. 여기서는 XOR를 의미하고는 AND를 의미한다. 그리고 G1(x) 는 구성부호기의 G1(x)와 동일하다. 테일생성기의 입력은 구성부호기의 메모리 S0부터 SM-1의 값들이 된다. 테일생성기의 출력을 구성부호기의 입력으로 사용하면, 부호화한 후에 구성부호기의 첫번째 메모리인 S0의 값이 0이 된다. 그러므로 M번 만큼 테일생성기를 작동하면 구성부호기의 모든 메모리를 0으로 만들 수 있다.3 is a block diagram of a tail generator in which the number of memories is M. FIG. here Means XOR Means AND. And G 1 (x) is the same as G 1 (x) of the encoder configuration. The input of the tail generator is the values of the memory S 0 to S M-1 of the component encoder. When the output of the tail generator is used as the input of the component encoder, after encoding, the value of S 0 , which is the first memory of the component encoder, becomes zero. Therefore, operating the tail generator as many times as M can zero all memory in the component encoder.

이하, N을 입력비트수, M을 구성부호기의 메모리갯수라 할 때, 단일테일 터보코드 부호화시 상기 제1 타이밍콘트롤러(10)에서의 제어신호들(C1-C10)에 따라서 시간대별 각 블록의 동작들을 다음의 표 1에서와 같이 나타낸다.Hereinafter, when N is the number of input bits and M is the number of memories of the constituent encoder, each block of each time zone according to the control signals C1-C10 of the first timing controller 10 during single tail turbo code encoding is performed. The operations are shown as in Table 1 below.

[표 1]TABLE 1

상기 표 1을 보면 알 수 있는 것처럼, 본 발명의 제1실시예에 의한 다중테일 터보코드 부호기는 제3 선택기(18)에서 0에서 2N+2M 시간주기에서 하나의 입력블록에 제1 테일과 제2 테일의 2개의 테일을 입력비트에 첨가하여 부호화한다.As can be seen from Table 1, the multi-tail turbo code encoder according to the first embodiment of the present invention has a first tail and a first tail in one input block at a time period from 0 to 2N + 2M in the third selector 18. Two tails of two tails are added to an input bit and encoded.

본 발명의 제2실시예의 부호기에서는 입력비트를 2개의 블록들로 나눈 다음 테일비트를 첨가하기 때문에, 실제로는 테일비트가 4개 첨가된다. 이를 표 2에 도시하기로 한다. 표 2에서 블록의 수는 2, N을 입력비트수, M을 구성부호기의 메모리갯수, 제1 블록은 N0, 제2 블록은 N1이다. 여기서, N0+N1=N이다.Since the encoder of the second embodiment of the present invention divides the input bit into two blocks and then adds a tail bit, four tail bits are actually added. This is shown in Table 2. In Table 2, the number of blocks is 2, N is the number of input bits, M is the number of memories of the component encoder, the first block is N0, and the second block is N1. Here, N0 + N1 = N.

[표 2]TABLE 2

상기 표 2를 보면 알 수 있는 것처럼, 다중테일 터보코드 부호기는 제3 선택기(18)에서 0에서 2N+4M 시간주기에서 분할된 입력블록의 각 서브블록에 제1 테일과 제2 테일의 2개의 테일을 입력비트에 첨가하여 부호화한다.As can be seen from Table 2, the multi-tail turbo code encoder has two first tails and two second tails in each subblock of the input block divided in the 0 to 2N + 4M time periods in the third selector 18. The tail is added to the input bits and encoded.

도 4는 본 발명에 의한 터보코드의 복호기의 블록도이다. 터보코드의 복호기의 입력들은 터보코드의 부호기의 입력에 해당하는 N 개의 입력 심볼들과 제1 구성부호기(13)의 출력에 해당하는 N 개의 제1 패리티심볼들, 제1 구성부호기(13)의 테일 비트에 해당하는 M개의 제1 테일심볼들, 제1 구성부호기(13)의 테일 비트에 대한 출력에 해당하는 M개의 제1 테일 패리티심볼들, 제2 구성부호기(16)의 출력에 해당하는 N개의 제2 패리티심볼들, 제2 구성부호기(16)의 테일 비트에 해당하는 M개의 제2 테일심볼들, 제2 구성부호기(16)의 테일 비트에 대한 출력에 해당하는 M개의 제2 테일 패리티심볼들로 구성되어 있다.4 is a block diagram of a decoder of a turbo code according to the present invention. The inputs of the decoder of the turbo code are N input symbols corresponding to the input of the encoder of the turbo code and the N first parity symbols corresponding to the output of the first component encoder 13 and the first component encoder 13. M first tail symbols corresponding to the tail bits, M first tail parity symbols corresponding to the output of the tail bits of the first component encoder 13, and corresponding to the outputs of the second component encoder 16. N second parity symbols, M second tail symbols corresponding to the tail bits of the second component encoder 16, and M second tails corresponding to the outputs of the tail bits of the second component encoder 16. It is composed of parity symbols.

입력 심볼과 제1 테일심볼은 제4 선택기(22)로 보내진다. 제4 선택기(22)는 제2 타이밍콘트롤러(40)의 타이밍제어신호(T2)에 의하여 시간 0 부터 N-1 까지는 입력 심볼을 출력하고 시간 N 부터 N+M-1 까지는 제1 테일심볼을 출력한다. 제1 패리티심볼과 제1 테일패리트심볼은 제 5 선택기(23)로 보내진다. 제5 선택기(23)는 제2 타이밍콘트롤러(40)의 타이밍제어신호(T3)에 의하여 시간 0 부터 N-1 까지는 제1 테일심볼을 출력하고 시간 N 부터 N+M-1 까지는 제1 테일패리티심볼을 출력한다. 제2 인터리버(25)의 출력과 제2 테일심볼은 제6 선택기(26)로 보내진다. 제6 선택기(26)는 제2 타이밍콘트롤러(40)의 타이밍제어신호(T6)에 의하여 시간 N+M+△부터 2N+M-1+△까지는 인터리버(25)의 출력을 출력하고 시간 2N+M+△부터 2(N+M)-1+△까지는 제2 테일심볼을 출력한다. 여기서 △는 제1 MAP디코더(복호기)(24)가 타이밍제어신호(T4)에 따라서 복호를 완료하는데 필요한 시간으로 제1 지연기(21)가 지연시키는 시간과 동일하다. 제2 패리티심볼과 제2 테일패리트 심볼은 제7 선택기(27)로 보내진다. 제7 선택기(27)는 제2 타이밍콘트롤러(40)의 타이밍제어신호(T7)에 의하여 시간 N+M+△부터 2N+M-1+△까지는 제2 테일심볼을 출력하고 시간 2N+M+△부터 2(N+M)-1+△까지는 제2 테일패리티심볼을 출력한다.The input symbol and the first tail symbol are sent to a fourth selector 22. The fourth selector 22 outputs an input symbol from time 0 to N-1 and a first tail symbol from time N to N + M-1 according to the timing control signal T2 of the second timing controller 40. do. The first parity symbol and the first tail parit symbol are sent to a fifth selector 23. The fifth selector 23 outputs the first tail symbol from time 0 to N-1 and the first tail parity from time N to N + M-1 according to the timing control signal T3 of the second timing controller 40. Print a symbol. The output of the second interleaver 25 and the second tail symbol are sent to a sixth selector 26. The sixth selector 26 outputs the output of the interleaver 25 from time N + M + Δ to 2N + M-1 + Δ according to the timing control signal T6 of the second timing controller 40 and at time 2N + M +. A second tail symbol is output from? To 2 (N + M) -1 + △. Δ is a time required for the first MAP decoder (decoder) 24 to complete decoding in accordance with the timing control signal T4, which is equal to the time delayed by the first delayer 21. The second parity symbol and the second tail parrit symbol are sent to the seventh selector 27. The seventh selector 27 outputs the second tail symbol from the time N + M + △ to 2N + M-1 + △ by the timing control signal T7 of the second timing controller 40 and starts from the time 2N + M + △. Up to 2 (N + M) -1 + Δ, a second tail parity symbol is output.

N 개의 현재 부가 정보는 이전 복호 단계에서 계산된 다음 부가 정보와 동일하게 둔다. 처음 복호를 하는 경우에는 현재 부가 정보를 모두 0 으로 둔다.The N current additional information is set equal to the next additional information calculated in the previous decoding step. In case of the first decoding, all current additional information is set to 0.

제1 MAP 복호기(24)는 제4 선택기(22)의 출력과 현재 부가 정보의 합을 가산기(32)에서 구하여 그 가산결과를 정보 비트에 대한 입력으로 가지고, 제2 선택기(23)의 출력을 패리티 비트에 대한 입력으로 가진다. 제1 MAP 복호기(24)는 터보코드의 부호기의 제1 구성부호기에 해당하는 부분에 대해 복호를 실행한다. 제1 MAP 복호기(24)의 동작은 다음에 자세히 설명한다.The first MAP decoder 24 obtains the sum of the output of the fourth selector 22 and the current additional information from the adder 32, has the addition result as an input for the information bits, and outputs the output of the second selector 23. Has as input to the parity bit. The first MAP decoder 24 decodes a portion corresponding to the first component encoder of the encoder of the turbo code. The operation of the first MAP decoder 24 will be described in detail later.

제1 지연기(21)는 제2 타이밍콘트롤러(40)의 타이밍제어신호(T1)에 의하여 현재 부가 정보를 제1 MAP 복호기(24)가 완전히 복호를 완료할 동안 지연시킨 후 출력한다. 제1 MAP 복호기(24)의 출력과 제1 지연기(21)의 출력의 차를 감산기(33)에서 구하여 그 결과를 제2 인터리버(25)로 보낸다. 제2 인터리버(25)는 터보코드의 부호기에서 사용하는 제1 인터리버와 동일한 인터리버이다. 제2 인터리버(25)는 타이밍제어신호(T5)에 따라서 인터리빙을 수행한다. 제2 MAP 복호기(28)는 제6 선택기(26)의 출력을 정보 비트에 대한 입력으로 가지고 제7 선택기(27)의 출력을 패리티 비트에 대한 입력으로 가진다. 제2 MAP 복호기(28)의 동작 원리는 제1 MAP 복호기(24)의 동작 원리와 동일하다. 다만, 제2MAP복호기(28)는 타이밍제어신호(T8)를 사용한다. 제2 MAP 복호기(28)의 동작 시간과 제1 MAP 복호기(24)의 동작 시간만 다르기 때문에 제2 MAP 복호기(28)는 별도로 구현할 필요없이 제1 MAP 복호기(24)를 재사용할 수 있다. 제2 MAP 복호기(28)의 출력은 디인터리버(29)에 의해 디인터리빙된다. 디인터리버(29)는 타이밍제어신호(T9)에 따라서 인터리버(25)에 의해 순서가 바뀐 데이타를 원래 순서로 만들어주는 역할을 수행한다. 판별기(31)는 제2 타이밍콘트롤러(40)의 타이밍제어신호(T11)에 의하여 디인터리버(29)의 출력이 0 보다 클 때에는 1을 출력하고 0 보다 작을 때에는 0 을 출력한다. 판별기(31)의 출력은 터보코드에 의해 부호화된 데이타를 복호한 값이 된다.The first delayer 21 outputs the current additional information after the first MAP decoder 24 completes the decoding completely by the timing control signal T1 of the second timing controller 40. The difference between the output of the first MAP decoder 24 and the output of the first delayer 21 is obtained by the subtractor 33 and the result is sent to the second interleaver 25. The second interleaver 25 is the same interleaver as the first interleaver used in the encoder of the turbo code. The second interleaver 25 performs interleaving according to the timing control signal T5. The second MAP decoder 28 has the output of the sixth selector 26 as an input for the information bits and the output of the seventh selector 27 as an input for the parity bits. The operating principle of the second MAP decoder 28 is the same as the operating principle of the first MAP decoder 24. However, the second MAP decoder 28 uses the timing control signal T8. Since only the operation time of the second MAP decoder 28 and the operation time of the first MAP decoder 24 are different, the second MAP decoder 28 may reuse the first MAP decoder 24 without separately implementing it. The output of the second MAP decoder 28 is deinterleaved by the deinterleaver 29. The deinterleaver 29 serves to make the data in the original order changed by the interleaver 25 according to the timing control signal T9. The discriminator 31 outputs 1 when the output of the deinterleaver 29 is greater than 0 and 0 when it is less than 0 according to the timing control signal T11 of the second timing controller 40. The output of the discriminator 31 is a value obtained by decoding the data encoded by the turbo code.

제2 지연기(30)는 제2 타이밍콘트롤러(40)의 타이밍제어신호(T10)에 의하여 제1 MAP 복호기(24)의 출력과 제1 지연기(21)의 출력의 차를 제2 MAP 복호기(28)가 완전히 복호를 완료할 동안 지연시킨 후 출력한다. 디인터리버(29)의 출력과 제2 지연기(30)의 출력의 차는 다음 부가 정보가 된다. 다음 부가 정보를 현재 부가 정보로 대체한 후, 처음부터 새로 복호를 수행하면 터보코드의 복호기는 더 많은 오류를 정정할 수 있다. 이런 작업을 반복 복호라고 한다. MAP 복호기는 심볼 오류를 최소화할 수 있는 MAP 알고리듬을 구현한 복호기이다.The second delayer 30 determines the difference between the output of the first MAP decoder 24 and the output of the first delayer 21 according to the timing control signal T10 of the second timing controller 40. Output after delaying while 28 completely completes decoding. The difference between the output of the deinterleaver 29 and the output of the second delay unit 30 becomes the following additional information. If the next additional information is replaced with the current additional information and then newly decoded from the beginning, the decoder of the turbo code may correct more errors. This operation is called repetitive decoding. The MAP decoder is a decoder that implements a MAP algorithm that can minimize symbol errors.

MAP 알고리듬은 다음과 같다.The MAP algorithm is as follows.

단계 1에서, 시간 k=0 부터 k=N+M-1까지 Di(Rk, m)을 아래의 수학식 3과 같이 계산한다.In step 1, D i (R k , m) from time k = 0 to k = N + M−1 is calculated as in Equation 3 below.

[수학식 3][Equation 3]

여기서, i 는 0 또는 1 이고, σ2은 잡음의 분산이다. xk는 시간 k 일 때의 정보 심볼이고, yk는 시간 k 일 때의 패리티 심볼이다. m 은 구성부호기의 상태를 의미하며, 구성 부호의 메모리의 수가 M 일 때는 0 부터 2M-1 까지의 값을 가진다.은 시간 k 일 때, 구성 부호기의 상태가 m 이고 입력 비트가 i 인 경우의 구성 부호기의 출력 비트를 의미한다.Where i is 0 or 1 and sigma 2 is the variance of noise. x k is an information symbol at time k, and y k is a parity symbol at time k. m means the state of the component encoder, and when the number of memory of the component code is M, it has a value from 0 to 2 M -1. Denotes the output bit of the component encoder when the state of the component encoder is m and the input bit is i at time k.

단계 2에서, 테일 비트까지 모두 부호화하면 구성 부호기의 메모리들이 모두 0을 가지므로i=0, 1로 정의하여 두고,m=1,...2M-1로 정의해 둔다. 여기서은 입력이 i 일 때, 구성 부호기의 다음 상태가 m 이 되는 상태를 의미한다.In step 2, if all the tail bits are encoded, the memories of the constituent encoder have all zeros. define i = 0, 1, We define m = 1, ... 2 M -1. here Means that when the input is i, the next state of the constituent encoder is m.

단계 3에서, k=N+M-2 부터 k=0 까지을 아래의 수학식 4와 같이 계산한다.In step 3, k = N + M-2 to k = 0 Is calculated as in Equation 4 below.

[수학식 4][Equation 4]

여기서이다. 그리고은 입력이 i 이고 구성 부호기의 상태가 m 일 때, 구성 부호기의 다음 상태를 의미한다.here to be. And Means the next state of the constituent encoder when the input is i and the state of the constituent encoder is m.

단계 4에서, 시간 k=0에서 구성 부호기의 메모리들의 초기값이 모두 0 이므로 Ai 0=Di(R0, 0), i = 0, 1 로 두고, Ai 0(m) = ∞, i = 0, 1, m = 1, ..., 2M-1 로 둔다.In step 4, the initial values of the memory of the constituent encoder at time k = 0 are all 0, so A i 0 = D i (R 0 , 0), i = 0, 1, and A i 0 (m) = ∞, Let i = 0, 1, m = 1, ..., 2 M -1.

단계 5에서, k=1 부터 k=N+M-1 까지을 아래 수학식 5와 같이 계산한다.In step 5, k = 1 to k = N + M-1 Is calculated as in Equation 5 below.

[수학식 5][Equation 5]

단계 6에서, k=0 부터 k=N-1 까지 L(dk) 를 아래의 수학식 6과 같이 계산한다.In step 6, L (d k ) from k = 0 to k = N-1 is calculated as in Equation 6 below.

[수학식 6][Equation 6]

MAP 복호기의 출력은 N 개의 L(dk), k = 0, ..., N-1 이 된다.The outputs of the MAP decoder are N L (d k ), k = 0, ..., N-1.

상술한 터보코드의 복호 알고리듬인 MAP 알고리듬은 심벌 오류를 최소화할 수 있는 복호 알고리듬이다. MAP 알고리듬의 핵심 단계는 단계 1 부터 단계 6 으로 나누어져 있으며, 이 알고리듬은 단계 3 및 단계 5의 두 개의 핵심 수식을 포함한다. 상기 단계 3 및 단계 5의 두 식은 재귀식이다. 따라서 재귀식으로 계산하기 위해 반드시 초기값이 필요하다. 초기값은 단계 2 및 단계 4에서 설정한다. 초기값을 설정하기 위해서 항상 참인 사실을 이용한다. 즉 부호기의 상태가 처음에는 0 이라는 사실과 테일까지 완전히 부호화한 후의 부호기의 상태가 0 이라는 사실을 이용한다. 이것을 그림으로 나타내면 도 5와 같다.The MAP algorithm, which is the decoding algorithm of the turbo code, is a decoding algorithm that can minimize symbol errors. The key steps of the MAP algorithm are divided into steps 1 through 6, which contain two key equations: step 3 and step 5. The two equations of step 3 and step 5 are recursive. Therefore, an initial value is required to be calculated recursively. Initial values are set in steps 2 and 4. Always use true to set the initial value. In other words, we take advantage of the fact that the state of the encoder is initially 0, and that the state of the encoder after the fully coded tail is 0. This is illustrated in Fig. 5.

도 5에 도시한 바와 같이, MAP 복호기의 출력은 단계 6의 수식으로 계산한다. 여기서 볼 수 있듯이 B를 모두 계산하여 메모리에 저장한 후 A 를 계산하면서 동시에 출력을 계산할 수 있다. 물론 반대도 가능하다. 따라서 MAP 알고리듬에는 프레임의 크기에 비례하는 메모리가 필요하고, 복호 지연도 그만큼 생긴다. 반면에 다중테일 터보코드는 도 6과 같이 표현할 수 있다.As shown in Fig. 5, the output of the MAP decoder is calculated by the formula of step 6. As you can see, we can compute all of B, store it in memory, and compute A while calculating the output. Of course, the opposite is also possible. Therefore, the MAP algorithm requires a memory that is proportional to the size of the frame, and the decoding delay is also large. On the other hand, the multi-tail turbo code can be expressed as shown in FIG.

여기서, FS_i 는 i 번째 블록의 처음 부호기 상태, LS_i 는 i 번째 블록의 마지막 부호기 상태, D_i 는 i 번째 블록의 입력 부분, T_i 는 i 번째 블록의 테일 부분, A_i 는 i 번째 블록의 A 계산, B_i 는 i 번째 블록의 B 계산, L_i 는 i 번째 블록의 출력 계산을 의미한다. 도 6에서는 입력을 세 개의 블록으로 나눈 경우를 예로하여 나타낸 것이다. 각 블록마다 테일이 있기 때문에 FS_i 와 LS_i 가 모두 0 이라는 것을 알 수 있다. 이것을 이용하면 각 블록마다 단계 2 와 단계 4 로 A_i 와 B_i 의 초기화를 할 수 있다. 초기화만 되면 나머지 A_i 와 B_i 는 단계 3 과 단계 5 의 식을 이용하여 계산할 수 있다. A_i 와 B_i 를 계산하는데에 다른 블록에 있는 값들은 전혀 영향을 미치지 않는다. 따라서 각 블록들은 독립적으로 계산될 수 있다. 만약 복호기가 하나라면, 처음에는 A_0 와 B_0 를 계산한 후 L_0 를 출력하고, 다음에는 A_1 과 B_1 을 계산한 후 L_1 을 출력하고, 마지막으로 A_2 와 B_2 를 계산한 후 L_2 를 출력하면 된다. 따라서 여기에 필요한 메모리는 블록의 크기에 비례한다. 만약 세 개의 MAP 복호기가 있다면, 첫번째 복호기는 D_0 부분을, 두번째 복호기는 D_1 부분을, 세번째 디코더는 D_2 부분을 동시에 계산할 수 있다. 이것을 병렬 복호라고 표현한다.Where FS_i is the first encoder state of the i th block, LS_i is the last encoder state of the i th block, D_i is the input portion of the i th block, T_i is the tail portion of the i th block, A_i is the A calculation of the i th block, B_i Denotes the B calculation of the i-th block and L_i denotes the output calculation of the i-th block. 6 illustrates an example in which an input is divided into three blocks. Since each block has a tail, we can see that both FS_i and LS_i are zero. Using this, A_i and B_i can be initialized in steps 2 and 4 for each block. Once initialized, the remaining A_i and B_i can be calculated using the equations of steps 3 and 5. The values in the other blocks have no effect on calculating A_i and B_i. Thus, each block can be calculated independently. If there is only one decoder, first calculate A_0 and B_0 and then output L_0, then calculate A_1 and B_1 and then L_1, and finally calculate A_2 and B_2 and then L_2. Therefore, the memory required for this is proportional to the size of the block. If there are three MAP decoders, the first decoder can calculate the D_0 part, the second decoder can calculate the D_1 part, and the third decoder can calculate the D_2 part at the same time. This is called parallel decoding.

다음, N을 입력비트수, M을 구성부호기의 메모리갯수라 할 때, 다중테일 복호화시 상기 제2 타이밍콘트롤러(40)에서의 타이밍제어신호들(T1-T11)에 따라서 시간대 별 상술한 각 블록의 동작들을 다음의 표 3에서와 같이 나타낸다. 여기서, D는 첫 번째 복호기가 복호화하는데 지연되는 시간이고, D'는 두 번째 복호기가 복호화하는데 지연되는 시간이다.Next, when N is the number of input bits and M is the number of memories of the constituent encoder, each block described above for each time zone according to the timing control signals T1-T11 of the second timing controller 40 during multi-tail decoding. Are shown in Table 3 below. Here, D is a time delay for the first decoder to decode, and D 'is a time delay for the second decoder to decode.

[표 3]TABLE 3

상기 표 3을 보면 알 수 있는 것처럼, 본 발명의 다른 태양에 의한 제1실시예의 다중테일 터보코드 복호기는 제4선택기(22) 및 제5선택기(23)에서 N내지 N+M 시간구간동안 제1테일이 선택되며, 제5선택기(26) 및 제6선택기(27)에서 2N+M+D내지 2N+2M+D 시간구간동안 제2테일이 선택된다.As can be seen from Table 3, the multi-tail turbo code decoder of the first embodiment according to another aspect of the present invention is used for the N to N + M time intervals in the fourth selector 22 and the fifth selector 23. One tail is selected, and the second tail is selected during the 2N + M + D to 2N + 2M + D time intervals in the fifth selector 26 and the sixth selector 27.

본 발명의 다른 태양에 의한 제2실시예의 복호기에서는 실제로는 테일비트가 4개 첨가된 것을 복호화하는 것이므로, 표 4에 도시하기로 한다. 표 4에서 블록의 수는 2, N은 입력비트수, M을 구성부호기의 메모리갯수, 제1 블록은 N0, 제2 블록은 N1이다. 여기서, D는 첫 번째 복호기가 복호화하는데 지연되는 시간이고, D'는 두 번째 복호기가 복호화하는데 지연되는 시간이다.In the decoder of the second embodiment according to another aspect of the present invention, since four tail bits are actually decoded, they are shown in Table 4. In Table 4, the number of blocks is 2, N is the number of input bits, M is the number of memories of the component encoder, the first block is N0, and the second block is N1. Here, D is a time delay for the first decoder to decode, and D 'is a time delay for the second decoder to decode.

[표 4]TABLE 4

상기 표 4를 보면 알 수 있는 것처럼, 다중테일 터보코드 복호기는 구간 N0∼(N0-1) 및 (N+M+D)∼(N+2M+D-1)에서 제1테일을 선택하고, 구간 (N+N0+2M+2D)∼(N+N0+3M+2D-1) 및 (2N+3M+2D+D')∼(2N+4M+2D+D')에서 제2테일을 선택하여 N비트의 입력을 복호화한다.As can be seen from Table 4, the multi-tail turbo code decoder selects the first tail in intervals N0 to (N0-1) and (N + M + D) to (N + 2M + D-1). Select the second tail in the interval (N + N0 + 2M + 2D) to (N + N0 + 3M + 2D-1) and (2N + 3M + 2D + D ') to (2N + 4M + 2D + D'). To decode the N-bit input.

이상으로 본 발명에 의한 다중테일 터보코드의 부호기와 복호기에 대해 설명하였다. 상술한 바와 같이 터보코드의 복호기의 핵심 부분인 MAP 복호기에는 입력 길이 N 과 구성 부호기의 메모리의 갯수인 M 의 합에 비례하는 메모리가 필요하다. 이는 입력 길이가 다른 통신 서비스에서는 다른 종류의 MAP 복호기를 사용하여야 한다는 것을 의미한다.The encoder and decoder of the multi-tail turbo code according to the present invention have been described above. As described above, the MAP decoder, which is a core part of the turbo code decoder, requires a memory proportional to the sum of the input length N and M, the number of memories of the constituent encoder. This means that communication services of different input lengths require the use of different types of MAP decoders.

본 발명은 입력 심볼의 길이가 Nf인 MAP 복호기로 입력 데이타의 길이에 관계 없이 모든 서비스를 처리할 수 있도록 다중테일을 이용하는 것에 관한 것이다.The present invention relates to the use of multitail to process all services irrespective of the length of input data with a MAP decoder having an input symbol length of N f .

입력 데이타의 길이를 N > Nf라고 하자. 먼저 N 비트 입력 데이타를 각 블록의 길이 Ni< Nf가 되도록 K 개의 블록으로 나눈다. 그러면를 만족한다. 기존 터보코드의 부호기가 전체 입력 데이타를 부호화한 후 마지막에 테일을 첨가하는 것에 비해 본 발명에서는 각 블록마다 N_i 개의 데이타를 부호화한 후 테일을 첨가한다. 이것은 도 1의 각 블록들을 동작시키는 시간만을 변화시켜줌으로써 구현할 수 있다. 마찬가지로 다중테일을 가지는 터보코드의 복호기는 도 4의 각 블록들을 동작시키는 시간만을 변화시켜줌으로써 구현할 수 있다.Let the length of the input data be N> N f . First, the N bit input data is divided into K blocks such that the length N i <N f of each block. then Satisfies. In the present invention, a tail is added after encoding N_i data for each block, whereas an encoder of an existing turbo code encodes all input data and adds a tail at the end. This can be implemented by changing only the time for operating each block of FIG. Similarly, the decoder of a turbo-tail having multiple tails can be implemented by changing only the time for operating each block of FIG.

입력 데이타의 길이가 N 이고, 구성 부호의 메모리 갯수가 M 인 기존 터보코드의 부호율은인데 비해 K개의 다중테일을 가지는 터보코드의 부호율은이다. 이것은 입력 비트당 전송 파워를 동일하게 할 경우, 다중테일을 가지는 터보코드로 부호화된 심볼이 기존 터보코드로 부호화된 심볼보다 더 작은 전송 파워를 가지게 됨을 의미한다. 그리고 다중테일을 가지는 터보코드로 부호화할 경우에는 기존 터보코드로 부호화할 경우보다 더 넓은 대역폭을 사용한다는 것을 의미한다. 그러나 N 이 M 에 비해 매우 크기 때문에 다중테일을 가지는 터보코드와 기존 터보코드의 차이는 거의 없다고 할 수 있다.The code rate of an existing turbo code whose length of input data is N and the number of memory of the configuration code is M is The code rate of a turbo code with K multi-tails is to be. This means that when the transmission power per input bit is the same, a symbol coded with a multi-tail turbo code has a smaller transmission power than a symbol coded with a conventional turbo code. In the case of encoding a turbo code having a multi-tail, it means that a wider bandwidth is used than when encoding a conventional turbo code. However, since N is much larger than M, there is little difference between a turbotail having a multiple tail and a conventional turbocode.

통신 시스템에서는 입력 프레임과 전송 프레임의 규격이 다른 경우가 대부분이다. 이런 경우에는 입력 프레임에 더미를 첨가하여 전송 프레임 규격을 맞추어준다. 예를 들어 입력 데이타의 길이 N=104 라고 하자. 구성 부호의 메모리 갯수가 M=2 인 터보코드로 부호화하면 부호화된 데이타의 길이는 3N+4M=320 이 된다. 전송 프레임의 길이가 384 라고 하면 320 개의 비트에 더미로 64 비트를 첨가하여 전송 프레임을 구성한다.In communication systems, the specifications of input frames and transmission frames are often different. In this case, dummy frames are added to the input frame to meet the transmission frame specification. For example, let N = 104 be the length of input data. When the number of memories of the configuration code is encoded by a turbo code of M = 2, the length of the encoded data is 3N + 4M = 320. If the length of the transmission frame is 384, 64 bits are added to the 320 bits in a dummy to form a transmission frame.

전송 프레임의 규격을 맞추기 위해 첨가하는 더미 비트들은 전송 프레임의 규격을 맞춘다는 사실을 제외하면 파워와 대역폭을 낭비하는 역할만 한다. 이런 경우, 더미 비트들 대신 다중테일을 가지는 터보코드를 사용하여 다중테일을 전송하는 방법을 고려할 수 있다. 앞의 예에서는 더미 비트가 64개 있으므로 9개의 다중테일을 가지는 터보코드를 사용하는 것이 가능하다. 이 때는 입력 심볼의 크기가 12 인 MAP 복호기를 사용하여 복호가 가능하다. 따라서 불가피한 더미 비트들 대신 다중테일을 가지는 터보코드를 사용함으로써 낭비되는 재원을 효과적으로 이용할 수 있다.The dummy bits added to match the transmission frame only waste power and bandwidth, except for the fact that the transmission frame is specified. In this case, a method of transmitting a multitail using a turbo code having a multitail instead of dummy bits may be considered. In the previous example, because there are 64 dummy bits, it is possible to use a turbo code having 9 multiple tails. In this case, decoding is possible using a MAP decoder having an input symbol size of 12. Therefore, wasteful resources can be effectively utilized by using a turbo code having multiple tails instead of unavoidable dummy bits.

다중테일을 가지는 터보코드는 하나의 MAP 복호기로 입력 데이타의 크기가 어떤 값을 가지더라도 복호화할 수 있을 뿐만 아니라 복호를 할 때, 기존 터보코드에서는 전체 입력 데이타에 대해 구성 부호의 초기 상태와 마지막 상태가 0 이라는 사실을 이용하는 것에 비해 본원 발명에서는 각 블록마다 구성 부호의 초기 상태와 마지막 상태가 0 이라는 사실을 이용할 수 있으므로 기존 터보코드보다 성능이 우수하다. 그러나 K 가 증가할수록 다중테일을 가지는 터보코드의 거리 분포 특성이 나빠지기 때문에, 어느 정도까지는 K 가 증가할수록 성능이 좋아지지만, 더 이상 K 를 증가시키면 성능이 떨어진다.Turbocodes with multiple tails can be decoded with a single MAP decoder no matter what size the input data has, and when decoding, the existing and final states of the constituent code for the entire input data in conventional turbocodes. Compared to using the fact that is 0, in the present invention, since the initial state and the last state of the component code can be used for each block, the performance is superior to that of the existing turbo code. However, as K increases, the distance distribution characteristic of a multi-tail turbo cord becomes worse. To some extent, the performance increases as K increases, but when K increases, performance decreases.

길이가 104 인 입력 데이타를 구성 부호의 메모리 갯수가 2 인 터보코드로 부호화한 경우, 8 개의 다중테일을 가지는 터보코드는 기존 터보코드에 비해 AWGN 채널에서 요구되는 비트 오류률이 10-4일 때, 0.5 dB 정도 우수하다. 길이가 24 인 경우에는, 4 개의 다중테일을 가지는 터보코드를 사용함으로써 1.0 dB 이상의 성능 개선이 가능하다.When the input data of length 104 is encoded with a turbo code of 2 memory codes, a turbo code having 8 multi-tails has a bit error rate of 10 -4 required in an AWGN channel compared to a conventional turbo code. 0.5 dB is excellent. When the length is 24, performance improvement of 1.0 dB or more is possible by using a turbo cord having four multi-tails.

터보코드는 프레임 단위로 복호하기 때문에 복호 지연이 매우 길다. 따라서 복호 지연이 짧아야만 하는 경우에는 터보코드의 성능이 다른 코드에 비해 우수함에도 불구하고 터보코드를 사용할 수 없다. 그러나, 본 발명의 다중테일을 가지는 터보코드는 블록 단위로 복호가 가능하기 때문에 M 개의 복호기를 사용하면 M 개의 블록들을 동시에 복호할 수 있다. 이런 경우 복호 지연이 1/M 배로 줄기 때문에 다중테일을 가지는 터보코드를 사용하여 병렬 복호를 수행하면 짧은 복호 지연을 요구하는 경우에도 성능이 우수한 터보코드를 사용할 수 있다.Since the turbo code is decoded frame by frame, the decoding delay is very long. Therefore, if the decoding delay must be short, the turbo code cannot be used even though the performance of the turbo code is superior to other codes. However, since the turbo code having the multi-tail of the present invention can be decoded in blocks, M blocks can be decoded simultaneously using M decoders. In this case, since the decoding delay is 1 / M times, parallel decoding using a multi-tailed turbo code can use a turbo code having excellent performance even when a short decoding delay is required.

다중테일 터보코드는 비트오류율의 관점에서 볼 때, 두가지 특성이 있다. 첫번째 특성은 앞에서도 설명한 것과 같이 복호를 할 때, 테일들을 이용하여 여러군데서 초기화를 할 수 있다는 점이다. 복호기에서는 초기화를 제외하면 송신한 신호에 채널에서 발생한 오류가 더해진 값을 가지고 A 와 B 를 계산한다. 예전 터보코드에서는 단 두군데를 제외하고는 부정확한 값을 가지고 A 와 B 를 가지고 계산한다. 하지만 다중테일 터보코드에서는 정확한 값으로 A 와 B 를 계산 (초기화) 하는 부분이 많다. 더군다나 재귀식에서 초기화는 매우 중요한 역할을 한다. 실험 결과 블록의 시작과 끝부분의 비트 오류율은 다른 부분에 비해 1/10 정도까지 줄어든다. 두번째 특성은 자유 해밍 거리가 달라진다는 점이다. 다중테일터보코드의 거리 분포를 살펴보면, 여러 개의 블록으로 나눌수록 자유 해밍 거리가 줄어든다. 이것은 비트 오류율을 증가시키는 원인이 된다. 터보코드 인터리버를 다중테일 터보코드에 맞추어 설계하면 자유 해밍 거리가 줄어드는 것을 어느 정도까지 방비할 수 있다. 이상 살펴보았듯이 다중테일 터보코드에는 비트 오류율을 줄이는 특성과 비트오류율을 증가시키는 특성이 동시에 존재한다. 따라서 적절한 블록으로 나눔으로써 관심있는 비트오류율 (10-3, 10-4, 10-6등)에서 비트 오류율을 줄이는 특성이 더 강하게 나타나도록 만들면 된다.Multi-tailed turbocode has two characteristics in terms of bit error rate. The first characteristic is that when decoding, as described above, the initialization can be performed in several places using tails. Except for initialization, the decoder calculates A and B with the transmitted signal plus the error that occurred in the channel. In older turbocodes, we calculate A and B with inaccurate values except for two. However, many parts of multi-tail turbocode calculate (initialize) A and B with the correct values. Furthermore, in recursion, initialization plays a very important role. Experimental results show that the bit error rate at the beginning and end of the block is reduced by 1/10 compared with other parts. The second characteristic is that the free hamming distance varies. Looking at the distance distribution of the multi-tailed turbo code, the free hamming distance decreases as the block is divided into several blocks. This causes an increase in the bit error rate. Designing the turbocode interleaver for multi-tailed turbocode can help to some extent reduce the free hamming distance. As described above, the characteristics of reducing the bit error rate and increasing the bit error rate exist simultaneously in the multi-tail turbo code. Therefore, by dividing into appropriate blocks, the characteristic of reducing the bit error rate at the bit error rate of interest (10 -3 , 10 -4 , 10 -6, etc.) can be made stronger.

이상에서 살펴본 바와 같이 본 발명은 기존 터보코드의 부호기와 복호기 내의 각 블록들이 동작하는 시간만을 조절하여 구현할 수 있을 뿐만 아니라, 기존 터보코드보다 우수한 복호 성능을 얻을 수 있다. 특히 전송 프레임의 규격을 맞추기 위해 많은 더미 비트를 사용할 경우에는 매우 우수한 성능 개선 효과 및 하드웨어 절감 효과를 얻을 수 있다. 그리고 다중테일을 가지는 터보코드를 사용하면 하나의 MAP 복호기로 다양한 길이를 가지는 서비스들을 처리할 수 있다. 더구나 다중테일을 가지는 터보코드는 병렬 복호를 지원하기 때문에 그 동안 터보코드를 사용할 수 없었던 짧은 복호 지연을 요구하는 서비스에도 사용할 수 있다.As described above, the present invention can be implemented not only by adjusting the operating time of each block in the encoder and the decoder of the existing turbo code, but also can obtain better decoding performance than the existing turbo code. In particular, when a large number of dummy bits are used to match a transmission frame, a very good performance improvement and hardware savings can be obtained. In addition, by using a multi-tailed turbo code, one MAP decoder can process services having various lengths. In addition, since the multi-tailed turbo code supports parallel decoding, it can be used for a service requiring a short decoding delay, in which the turbo code cannot be used.

[발명의 효과][Effects of the Invention]

상술한 바와 같이, 기존의 터보코드 부호기가 입력된 데이터를 하나의 블록으로 처리하지만, 본원 발명은 하나의 입력데이터를 타이밍 콘트롤러를 이용하여 복수의 블록으로 나누고 각 블록마다 테일을 첨가하여 하나의 입력데이터를 복수의 맵디코더로서 병렬로 처리함으로써 보다 빠른 속도로 처리할 수 있는 효과를 제공한다.As described above, the existing turbo code encoder processes the input data into one block, but the present invention divides one input data into a plurality of blocks using a timing controller and adds a tail to each block to add one input. By processing data in parallel as a plurality of map decoders, it is possible to process data at a higher speed.

Claims (5)

적어도 하나 이상의 부호기로 입력데이타를 부호화하는 부호화방법에 있어서, 타이밍제어신호에 따라서, 상기 입력데이타를 적어도 하나 이상의 블록으로 나눈 후 각 블록마다 테일을 첨가하여 부호화하는 다중테일을 갖는 터보코드를 생성하는 부호화방법.An encoding method for encoding input data with at least one encoder, the method comprising: generating a turbo code having multiple tails by dividing the input data into at least one block and adding a tail to each block according to a timing control signal. Encoding Method. 1항에 있어서, 상기 입력데이타를 적어도 하나 이상의 블록으로 나눈 후 각 블록마다 순차인터리빙한 후 각 인터리빙된 입력블록에 각 테일정보를 첨가하여 부호화하는 단계; 및The method of claim 1, further comprising: dividing the input data into at least one block and sequentially interleaving each block, and then adding and encoding respective tail information to each interleaved input block; And 상기 입력데이타, 상기 각 테일정보 및 상기 부호기들의 출력들을 받아 선택적으로 출력하는 단계;를 더 포함하는 것을 특징으로 하는 부호화방법.And receiving and selectively outputting the input data, the tail information and the outputs of the encoders. 적어도 하나 이상의 각 부호기로 입력된 입력데이타를 제1 타이밍제어신호들에 따라서 적어도 하나 이상의 블록으로 나누고 각 블록에 하나의 테일을 첨가하여 생성된 다중테일을 갖는 터보코드를 복호하하는 방법에 있어서,A method of decoding a turbo code having a multi-tail generated by dividing input data input to at least one encoder into at least one block according to first timing control signals and adding one tail to each block, the method comprising: 제2 타이밍제어신호에 따라서, 상기 입력데이타 및 테일정보를 선택적으로 복호화하는 단계, 및Selectively decoding the input data and tail information according to a second timing control signal, and 상기 복호화된 정보를 인터리빙한 값과 다음 순차 테일정보를 선택적으로 복호화하고 마지막으로 복호화된 정보를 디인터리빙하여 출력하는 단계;를 포함하는 다중테일을 갖는 터보코드를 복원하는 복호화방법.Selectively decoding the interleaved value of the decoded information and the next sequential tail information, and deinterleaving the decoded information lastly and outputting the decoded information. 타이밍제어신호에 따라서, 입력데이타를 적어도 하나 이상의 블록으로 나눈 후, 각 블록마다 테일정보를 첨가하여 부호화하고, 상기 입력데이타를 적어도 하나 이상의 블록으로 나눈 후 각 블록마다 순차인터리빙한 후 각 인터리빙된 입력블록에 각 테일정보를 첨가하여 부호화하는 상기 블록 수에 상당하는 적어도 하나 이상의 부호기들;According to the timing control signal, after dividing the input data into at least one block, adding tail information for each block, encoding the input data, dividing the input data into at least one block, sequentially interleaving each block, and then interleaving each input. At least one encoder corresponding to the number of blocks for adding and encoding respective tail information to a block; 상기 입력데이타, 상기 각 테일정보 및 상기 적어도 하나 이상의 부호기들의 출력들을 받아 선택적으로 출력하는 선택수단; 및Selection means for selectively receiving the input data, the tail information and outputs of the at least one encoder; And 상기 적어도 하나 이상의 부호기들 및 상기 선택수단에 타이밍신호를 공급하는 타이밍콘트롤러;를 포함하는 다중테일을 갖는 터보코드를 생성하는 부호기.And a timing controller configured to supply a timing signal to the at least one encoder and the selection means. 적어도 하나 이상의 각 부호기로 입력된 입력데이타를 제1 타이밍콘트롤러의 제1 타이밍제어신호들에 따라서 적어도 하나 이상의 블록으로 나누고 각 블록에 하나의 테일을 첨가하여 생성된 다중테일을 갖는 터보코드를 복호하하는 복호기에 있어서,Decode the turbo code having the multi-tail generated by dividing the input data input to the at least one encoder into at least one block according to the first timing control signals of the first timing controller and adding one tail to each block. Is a decoder, 제2 타이밍제어신호들에 따라서 입력데이타와 테일정보를 받아 선택적으로 복호화하고, 상기 복호화된 입력데이타를 인터리빙한 후 순차 테일정보와 함께 선택적으로 복호화하는 적어도 하나 이상의 복호기들;At least one decoders that selectively receive input data and tail information according to second timing control signals, and interleave the decoded input data and then selectively decode the sequential tail information together; 상기 복호된 입력데이타를 디인터리빙하고 판별하여 복원된 데이타를 출력하는 디인터리버/판별수단; 및Deinterleaver / determination means for deinterleaving and discriminating the decoded input data and outputting recovered data; And 상기 적어도 하나 이상의 복호기들 및 상기 디인터리버/판별수단에 상기 제2 타이밍제어신호들을 공급하는 제2 타이밍콘트롤러;를 포함하는 다중테일을 갖는 터보코드를 복원하는 복호기.And a second timing controller for supplying the second timing control signals to the at least one decoder and the deinterleaver / identifying means.
KR1019980021766A 1998-06-11 1998-06-11 Turbo codes with multiple tails and their encoding / decoding methods and encoders / decoders using them KR100297739B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980021766A KR100297739B1 (en) 1998-06-11 1998-06-11 Turbo codes with multiple tails and their encoding / decoding methods and encoders / decoders using them

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980021766A KR100297739B1 (en) 1998-06-11 1998-06-11 Turbo codes with multiple tails and their encoding / decoding methods and encoders / decoders using them

Publications (2)

Publication Number Publication Date
KR20000001483A KR20000001483A (en) 2000-01-15
KR100297739B1 true KR100297739B1 (en) 2001-10-26

Family

ID=19539071

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980021766A KR100297739B1 (en) 1998-06-11 1998-06-11 Turbo codes with multiple tails and their encoding / decoding methods and encoders / decoders using them

Country Status (1)

Country Link
KR (1) KR100297739B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100845829B1 (en) * 2001-11-23 2008-07-14 엘지전자 주식회사 Turbo decoder and decoding method

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654927B1 (en) * 2000-01-10 2003-11-25 Lg Electronics Inc. Iterative error-correction for turbo code decoding
KR100331686B1 (en) * 2000-01-26 2002-11-11 한국전자통신연구원 Turbo decoder using base 2 log map algorithm
KR100332805B1 (en) * 2000-02-29 2002-04-18 구자홍 Serially concatenated convolutional encoding apparatus and encoding/decoding method
KR20020066556A (en) * 2001-02-12 2002-08-19 주식회사 소프트디에스피 A method and apparatus for implementing TURBO decoder
KR100651847B1 (en) * 2005-09-05 2006-12-01 엘지전자 주식회사 Encoding and decoding apparatuses and methods of turbo code using multiple circular coding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100845829B1 (en) * 2001-11-23 2008-07-14 엘지전자 주식회사 Turbo decoder and decoding method

Also Published As

Publication number Publication date
KR20000001483A (en) 2000-01-15

Similar Documents

Publication Publication Date Title
US6014411A (en) Repetitive turbo coding communication method
US6044116A (en) Error-floor mitigated and repetitive turbo coding communication system
JP3857320B2 (en) Parallel connected tail biting convolution codes and decoders thereof
US6445755B1 (en) Two-step soft output viterbi algorithm decoder using modified trace back
US6028897A (en) Error-floor mitigating turbo code communication method
JP2000216689A (en) Repetitive turbo code decoder and method for optimizing performance of the decoder
US6606724B1 (en) Method and apparatus for decoding of a serially concatenated block and convolutional code
JP2002185336A (en) Turbocoding method using highest minimum distance and system for realizing the same
UA63024C2 (en) Turbo coder; method and device for interleaving data elements
EP0907256B1 (en) Apparatus for convolutional self-doubly orthogonal encoding and decoding
JP2002009633A (en) Decoding circuit and decoding method, and coding circuit and coding method
US6912684B2 (en) Error correction encoding method and apparatus, and error correction decoding method and apparatus
US4293951A (en) Method and apparatus for encoding/decoding a convolutional code to a periodic convolutional code block
EP2339757B1 (en) Power-reduced preliminary decoded bits in viterbi decoder
KR101051933B1 (en) Metric Computation for Map Decoding Using Trellis&#39; Butterfly Structure
JPH0316046B2 (en)
KR100297739B1 (en) Turbo codes with multiple tails and their encoding / decoding methods and encoders / decoders using them
KR100628201B1 (en) Method for Turbo Decoding
KR19990081470A (en) Method of terminating iterative decoding of turbo decoder and its decoder
KR100453605B1 (en) Hybrid interleaver for turbo codes
JP2001257600A (en) Encoding method, encoding device, decoding method, decoding device and system using them
JP2004349901A (en) Turbo decoder and dynamic decoding method used therefor
US6925592B2 (en) Turbo decoder, turbo encoder and radio base station with turbo decoder and turbo encoder
EP1300954A1 (en) Encoding device and method, decoding device and method, providing medium, and method for generating data substitution position information
Benaissa et al. Reconfigurable hardware architectures for sequential and hybrid decoding

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