KR19990013245A - Adaptive channel coding method and apparatus - Google Patents

Adaptive channel coding method and apparatus Download PDF

Info

Publication number
KR19990013245A
KR19990013245A KR1019970060101A KR19970060101A KR19990013245A KR 19990013245 A KR19990013245 A KR 19990013245A KR 1019970060101 A KR1019970060101 A KR 1019970060101A KR 19970060101 A KR19970060101 A KR 19970060101A KR 19990013245 A KR19990013245 A KR 19990013245A
Authority
KR
South Korea
Prior art keywords
interleaving
frame
input
equation
information bits
Prior art date
Application number
KR1019970060101A
Other languages
Korean (ko)
Other versions
KR100454952B1 (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
Priority to KR1019970036365A priority Critical patent/KR19990012821A/en
Application filed by 윤종용, 삼성전자 주식회사 filed Critical 윤종용
Priority to CA002295791A priority patent/CA2295791C/en
Priority to ES98935383T priority patent/ES2290990T3/en
Priority to RU2000102353A priority patent/RU2193276C2/en
Priority to EP05016017A priority patent/EP1601109B1/en
Priority to BR9811299-6A priority patent/BR9811299A/en
Priority to CN 02147194 priority patent/CN1256812C/en
Priority to CNB988073528A priority patent/CN1150680C/en
Priority to DE69838451T priority patent/DE69838451T2/en
Priority to PCT/KR1998/000232 priority patent/WO1999007076A2/en
Priority to EP98935383A priority patent/EP0997031B1/en
Priority to JP2000505687A priority patent/JP3492632B2/en
Priority to DE69841631T priority patent/DE69841631D1/en
Priority to ES05016017T priority patent/ES2344299T3/en
Priority to US09/126,250 priority patent/US6289486B1/en
Publication of KR19990013245A publication Critical patent/KR19990013245A/en
Priority to JP2003278667A priority patent/JP3730238B2/en
Application granted granted Critical
Publication of KR100454952B1 publication Critical patent/KR100454952B1/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/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques

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

길쌈 부호를 병렬 또는 직렬 구조로 연결한 채널 부호기를 사용하는 통신 시스템의 부호화 장치에 있어서, 입력되는 정보 비트를 부호화하는 제1 부호기와 입력되는 정보 비트를 설정된 규칙에 따라 정보 비트의 순서를 바꾸기 위하여 메모리 및 인덱스 발생기로 구성되는 인터리버와, 인터리버의 출력을 부호화하는 제2 부호기와, 제1 부호기 및 제2 부호기의 입력 및 출력 정보 비트의 프레임을 종단시켜주는 제1 종단 장치 및 제2 종단 장치와, 프레임의 종단에 사용된 테일 비트를 저장하고 출력하는 테일 비트 저장 장치와, 이러한 과정을 제어하기 위한 제어기 및 스위치로 구성된다.A coding apparatus of a communication system using a channel encoder in which convolutional codes are connected in a parallel or serial structure, the encoding apparatus comprising: a first encoder for encoding input information bits and an input information bit according to a set rule to change the order of the information bits; An interleaver composed of a memory and an index generator, a second encoder for encoding the output of the interleaver, a first terminator and a second terminator for terminating frames of input and output information bits of the first encoder and the second encoder; And a tail bit storage device for storing and outputting tail bits used at the end of the frame, and a controller and a switch for controlling this process.

Description

적응형 채널 부호화 방법 및 장치Adaptive channel coding method and apparatus

본 발명은 통신 시스템의 채널 부호화 방법 및 장치에 관한 것으로, 특히 음성 및 데이터 전송을 위한 적응형 채널 부호화 방법 및 장치에 관한 것이다.The present invention relates to a channel encoding method and apparatus for a communication system, and more particularly, to an adaptive channel encoding method and apparatus for voice and data transmission.

터보 부호기(turbo encoder)는 N 정보 비트의 프레임(frame)으로 이루어진 입력을 두 개의 간단한 구성 부호기(constituent encoder)를 이용하여 패리티 심볼(parity symbol)을 만드는 시스템으로써, 병렬 및 직렬 구조로 구성할 수 있다. 그리고 상기 터보 부호기의 구성 부호는 순환 체계적 길쌈 부호(Recursive Systematic Convolutional code)를 이용한다.A turbo encoder is a system that creates a parity symbol using two simple constituent encoders, which is composed of a frame of N information bits, and can be configured in parallel and serial structures. have. The constituent code of the turbo encoder uses a recursive systematic convolutional code.

도 1은 종래의 병렬 구조를 갖는 터보 부호기의 구성을 도시하는 도면으로, Berrou에 의해 발명된 미합중국 특허 제 5,446,747호에 게시되어 있다. 상기 도 1과 같은 구성을 갖는 터보 부호기는 제 1 구성 부호기 11과 제 2 구성 부호기 13 사이에 인터리버 12가 연결된다. 그리고 상기 인터리버 12는 입력되는 정보 비트의 프레임 길이 N과 동일한 크기를 가지며, 상기 제 2 구성 부호기 13에 입력되는 정보 비트의 순서를 바꿈으로써, 정보 비트들 사이의 상관(correlation)을 줄여주게 된다. 도 2는 종래의 직렬 구조를 터보 부호기의 구조를 도시하는 도면으로,제 1 구성 부호기 11과 제 2 구성 부호기 13 사이에 인터리버 12이 연결되는 구조를 갖는다.1 is a diagram showing a configuration of a turbo encoder having a conventional parallel structure, which is disclosed in US Pat. No. 5,446,747, which was invented by Berrou. The turbo encoder having the configuration as shown in FIG. 1 is connected to the interleaver 12 between the first component encoder 11 and the second component encoder 13. The interleaver 12 has the same size as the frame length N of the input information bits and reduces the correlation between the information bits by changing the order of the information bits input to the second component encoder 13. 2 is a diagram illustrating a structure of a turbo encoder in a conventional serial structure, in which an interleaver 12 is connected between a first component encoder 11 and a second component encoder 13.

상기와 같은 구조를 갖는 터보 부호기는 우주 공간 통신에 사용되어 온 터보 부호에 사용되며, 상기 구성 부호기 11 및 13은 구속장(K)이 K=9인 종래의 길쌈 부호에 비해서 구속장의 길이는 작으나, 인터리버 12에 사용되는 메모리는 매우 크다. 따라서 복호시 걸리는 시간 지연 또한 매우 클 수 밖에 없다.The turbo coder having the above structure is used for the turbo code that has been used in space-space communication, and the constituent encoders 11 and 13 have a smaller length than the conventional convolutional code having a K length of K = 9. For example, the memory used for interleaver 12 is very large. Therefore, the time delay during decoding is also very large.

상기 도 1과 같은병렬 구조의 터보 부호기에 출력을 복호하는 터보 복호기는 도 3과 같은 구성을 가지며, 상기 Berrou에 의해 발명된 미합중국 특허 제 5,446,747호에 게시되어 있다. 그리고 상기 도 2와 같은 직렬 구조의 터보 부호기의 출력을 복호하는 터보 복호기는 도 4와 같은 구성을 가지며, Benedetto가 발표한 논문에 게시되어 있다.(IEEE Electronics Letters, June 1996, Vol. 32 No. 13)A turbo decoder which decodes an output to a turbo encoder having a parallel structure as shown in FIG. 1 has the configuration as shown in FIG. 3 and is disclosed in US Pat. No. 5,446,747 invented by Berrou. The turbo decoder which decodes the output of the turbo encoder of the serial structure as shown in FIG. 2 has the configuration as shown in FIG. 4 and is published in a paper published by Benedetto. (IEEE Electronics Letters, June 1996, Vol. 13)

상기 도 3의 병렬 구조의 터보 복호기의 동작을 살펴보면, 상기 도3에 도시된 바와 같이, 수신된 프레임 단위로 반복 복호 알고리듬을 이용하여 복호를 반복함으로써, 반복 복호 횟수의 증가에 따라 오류율(Bit Error Rate: BER) 성능이 점점 향상되는 장점이 있다. 그리고 상기 인터리버 323은 제 1 복호기 319에서 정정되지 않은 연집 오류 패턴(error pattern)을 분산시킨 후, 제 2 복호기 327에서 정정이 이루어지도록 하여 오류 정정 능력을 향상시킨다.Referring to the operation of the turbo decoder of the parallel structure of FIG. 3, as shown in FIG. 3, by repeating the decoding using the iterative decoding algorithm on a frame-by-frame basis, an error rate is increased according to an increase in the number of repeated decoding. Rate (BER) performance has the advantage of gradually improving. The interleaver 323 distributes an uncorrected error pattern that is not corrected in the first decoder 319 and then corrects the error in the second decoder 327 to improve the error correction capability.

상기 반복 복호란 복호된 심볼을 이용하여 다시 복호를 하는 것으로, 특정한 규칙을 가지고 복호된 심볼 및 파생되는 부가 정보를 이용하여 반복 복호를 하면 우수한 성능을 얻을 수 있다. 상기 반복 복호를 하기 위한 알고리듬으로는 복호된 값이 연판정된 값을 가지는 SOVA(Soft-Output Viterbi Algorithm)와 MAP(Maximum A Posteriori Probability) 알고리듬이 있다. (SOVA: Proceedings of IEEE Vehnicular Technology Conference, pp 941-944. May 1993, MAP: IEEE Transactions on Information Theory, pp 429-445, Vol. 42 No. 2 March 1996) 상기 SOVA 알고리듬은 비터비(Viterbi) 알고리듬에서 연판정 값을 출력할 수 있도록 변형한 것으로, 부호어의 오류를 최소화할 수 있다. 반면에 상기 MAP 알고리듬은 심볼 오류를 최소화할 수 있는 알고리듬으로써, 상기 SOVA 알고리듬 보다는 더 낮은 심볼 오류 확률을 얻을 수 있다.The iterative decoding is decoding again by using the decoded symbols. When the iterative decoding is performed by using the decoded symbols and additional information derived with a specific rule, excellent performance can be obtained. Algorithms for iterative decoding include SOVA (Soft-Output Viterbi Algorithm) and MAP (Maximum A Posteriori Probability) algorithms, in which the decoded value has a soft-determined value. (SOVA: Proceedings of IEEE Vehnicular Technology Conference, pp 941-944. May 1993, MAP: IEEE Transactions on Information Theory, pp 429-445, Vol. 42 No. 2 March 1996) The SOVA algorithm is a Viterbi algorithm. Modified to output soft decision value in, it can minimize error of codeword. On the other hand, the MAP algorithm is an algorithm capable of minimizing symbol error, thereby obtaining a lower symbol error probability than the SOVA algorithm.

상기 도 3에서 복호기는 수신된 패리티 심볼 yk가 도 1의 병렬 구조 터보 부호기의 제 1 구성 부호기 11에 의해 부호화된 값일 때에는 y1k=yk, y2k=0 으로 하고, yk가 도 1의 병렬 구조 터보 부호기의 제 2 구성 부호기 13에 의해 부호화된 값일 때에는 y1k=0, y2k=yk로 한다. 그리고 zk+1은 반복 복호 알고리듬으로 연판정된 값으로 다음 반복 복호의 입력으로 이용된다. 최종 복호 단계에서 상기 zk+1를 경판정한 값이 최종적으로 원하는 d^k가 된다. 상기 터보 부호의 성능은 인터리버의 크기, 인터리버의 구조 및 반복 복호 횟수에 따라 성능이 결정된다.In FIG. 3, when the received parity symbol y k is a value encoded by the first component encoder 11 of the parallel turbo encoder of FIG. 1, y 1k = y k , y 2k = 0, and y k is FIG. 1. When the value is encoded by the second constituent encoder 13 of the parallel structure turbo encoder, y 1k = 0, y 2k = y k . Z k + 1 is a soft decision value using an iterative decoding algorithm and is used as an input for the next iterative decoding. In the final decoding step, the hard decision value of z k + 1 becomes the final desired d ^ k . The performance of the turbo code is determined according to the size of the interleaver, the structure of the interleaver and the number of iterative decoding.

상기 도 1에 도시된 바와 같이 터보 부호기의 내부에는 인터리버 12를 구비한다. 상기 인터리버 12는 터보 부호를 부호화 및 복호화할 시, 프레임 단위로 보호화 및 복호화를 수행하도록 한다. 따라서 상기 도 3에 도시된 바와 같이 제 1 반복 복호기 319 및 제 2 반복 복호기 327에 필요한 메모리의 프레임 크기와 구성 부호기 11 및 13의 구성 부호의 상태수의 곱에 비례한다. 상기 터보 부호에서는 일반적으로 매우 큰 프레임을 사용하고 있기 때문에 음성 및 데이터의 전송에는 적용하기가 매우 어려웠다. 인터리버의 크기를 줄이기 위해서 상기 터보 부호기의 구성 부호의 상태수를 증가시키면 인터리버에 필요한 메모리 크기는 줄지만 상기 도 3의 제 1 및 제 2 복호기의 복잡도는 그만큼 증가하게 된다.As shown in FIG. 1, an interleaver 12 is provided inside the turbo encoder. The interleaver 12 performs encoding and decoding on a frame-by-frame basis when encoding and decoding a turbo code. Therefore, as shown in FIG. 3, the frame size of the memory required for the first iteration decoder 319 and the second iterative decoder 327 is proportional to the product of the number of states of the component codes 11 and 13. Since the turbo code generally uses a very large frame, it is very difficult to apply to the transmission of voice and data. Increasing the number of states of the constituent codes of the turbo encoder to reduce the size of the interleaver reduces the memory size required for the interleaver, but increases the complexity of the first and second decoders of FIG. 3.

상기 도 3과 같은 구조를 갖는 복호기에서 연집 오류가 발생하였을 경우, 상기 제 1 반복 복호기 319의 출력은 상관(correlation)을 가지게 되고, 다음 단계의 복호 과정에서 두 번째 복호기인 제 2 반복 복호기 327는 상관된 입력으로 인해 올바른 복호를 할 수 없게 된다. 따라서 전체 블록은 오류가 존재하며, 이것은 다음 반복 복호 과정에서도 정정할 수 없게 된다. 그러므로 반복 복호를 수행하는 부호에서는 한 프레임 내의 연집 오류를 상관이 없도록 잘 분산 시킬 수 있는 인터리버 및 디인터리버(도 1의 12, 도 2의 12, 도 3의 323, 도 3의 331, 도 3의 335, 도 4의 12, 도 4의 13)를 사용하는 것이 필수적이다.When a concatenation error occurs in the decoder having the structure as shown in FIG. 3, the output of the first iteration decoder 319 has a correlation, and in the decoding process of the next step, the second iterative decoder 327 which is the second decoder is Correlated inputs prevent correct decoding. Therefore, there is an error in the entire block, which cannot be corrected in the next iterative decoding process. Therefore, in the code for performing the iterative decoding, the interleaver and the deinterleaver (12 in FIG. 1, 12 in FIG. 2, 323 in FIG. 3, 331 in FIG. 3, and 3 in FIG. 335, 12 of FIG. 4, and 13 of FIG. 4 are essential.

따라서 상관이 매우 작게 만드는 랜덤 인터리버(random interleaver)를 사용하면 터보 부호는 매우 우수한 성능을 보인다. 그러나 프레임의 크기가 크지 않은 경우에는 랜덤 인터리버를 사용한다하더라도 연집 오류를 상관이 없도록 충분히 분리 시키기 힘들고, 랜덤 인터리버에 필요한 룩업 테이블도 필요하다. 따라서 음성 전송이나 전송율이 낮은 데이터 전송과 같은 경우에는 구성 부호의 상태수가 작으면서도 시간 지연을 최소로 할 수 있는 프레임 크기 및 구조화된 인터리버를 사용하여야 한다. 그러므로 종래의 터보 부호에서 사용하는 구성 부호의 구속장과 인터리버를 가지고는 상기와 같은 음성 및 데이터 전송이 매우 힘들다. 그러나 상기 터보 부호가 가지는 장점들을 이용하여 통신 시스템의 부호기 및 복호기를 구현하려는 노력이 증가하는 추세이다.Therefore, the turbo code shows very good performance by using a random interleaver that makes the correlation very small. However, if the size of the frame is not large, even if the random interleaver is used, it is difficult to separate the error so that the collection error is irrelevant, and the lookup table necessary for the random interleaver is needed. Therefore, in the case of voice transmission or data transmission with low transmission rate, a frame size and a structured interleaver that can minimize time delay while having a small number of configuration codes should be used. Therefore, the above-mentioned voice and data transmission is very difficult with the constrained length and interleaver of the component code used in the conventional turbo code. However, efforts to implement an encoder and a decoder of a communication system have been increasing by using the advantages of the turbo code.

종래의 통신 시스템에서 사용하는 길쌈 부호와 성능이 비슷하거나 우수한 성능을 가지면서도 복잡도가 높지 않은 터보 부호기를 구현하기 위해서는 구성 부호의 상태수가 작으면서 시간 지연을 최소로 하면서도 우수한 성능을 가지는 인터리버를 사용하여야 한다. 일반적으로 터보 부호기에 사용되는 인터리버 도 1의 12나 도 2의 12의 크기가 클수록 우수한 성능을 가진다. 그러나 터보 부호에서는 프레임 크기를 증가시키는 데에는 한계가 있다. 이런 경우에는 터보 부호를 블록 부호의 관점에서 보아 터보 부호의 최소 해밍 거리(minimun Hamming distance)가 최대가 되도록 만들어 주는 인터리버를 사용하는 것이 유리하다. 프레임의 크기가 작은 경우에는 구조적 인터리버를 사용하므로써 이런 문제를 해결할 수 있다.In order to implement a turbo encoder that has similar or superior performance to that of the convolutional code used in the conventional communication system and has no high complexity, an interleaver having a high performance while minimizing time delay and having a small number of configuration codes should be used. do. In general, the larger the size of the interleaver 12 of FIG. 1 or 12 of FIG. 2, the better the performance. However, there is a limit in increasing the frame size in the turbo code. In such a case, it is advantageous to use an interleaver that makes the turbo code the minimum Hamming distance of the turbo code in terms of block code. In the case of small frames, this problem can be solved by using a structural interleaver.

따라서 본 발명의 목적은 통신 시스템에서 음성 및 낮은 전송율의 데이터를 부호화할 수 있는 터보 부호화 방법 및 장치를 제공함에 있다.Accordingly, an object of the present invention is to provide a turbo encoding method and apparatus capable of encoding voice and low data rate in a communication system.

본 발명의 다른 목적은 통신 시스템에서 입력되는 데이터 프레임의 크기에 상관없이 인터리빙을 할 수 있는 대각 인터리버를 이용하는 병렬 구조 혹은 직렬 구조의 터보 부호화 방법 및 장치를 제공함에 있다.Another object of the present invention is to provide a parallel or serial turbo encoding method and apparatus using a diagonal interleaver capable of interleaving regardless of the size of a data frame input in a communication system.

본 발명의 또 다른 목적은 입력되는 데이터 프레임의 크기에 상관없이 인터리빙을 할 수 있는 순환 인터리버를 이용하는 병렬 구조 혹은 직렬 구조의 터보 부호화 방법 및 장치를 제공함에 있다.Another object of the present invention is to provide a parallel encoding method or an apparatus for turbo encoding using a cyclic interleaver capable of interleaving regardless of the size of an input data frame.

본 발명의 또 다른 목적은 음성 및 데이터 신호를 터보 부호로 부호화하는 장치에서 테일 비트와 테일 비트에 의해 생성되는 패리티 비트들을 채널로 전송할 수 있는 방법 및 장치를 제공함에 있다.It is still another object of the present invention to provide a method and apparatus for transmitting a parity bit generated by tail bits and tail bits to a channel in an apparatus for encoding a voice and data signal using a turbo code.

본 발명의 또 다른 목적은 음성 및 데이타 신호를 터보 부호로 부호화하는 장치에서 데이타 및 패리티 정보를 천공하여 데이타 전송율을 조정할 수 있는 방법 및 장치를 제공함에 있다.It is still another object of the present invention to provide a method and apparatus for adjusting a data rate by puncturing data and parity information in an apparatus for encoding a voice and a data signal with a turbo code.

상기 목적을 달성하기 위한 본 발명의 실시예에 따른 통신 시스템의 부호화 장치가 입력되는 정보비트를 부호화하는 적어도 두개의 구성부호기들과, 입력 정보의 프레임 크기에 대응되는 행렬 정보를 구비하며 상기 입력 정보의 프레임의 행렬 정보에 따라 입력 정보를 대각 인터리빙한 후 상기 부호기들 중 적어도 한 부호기의 입력단에 연결하는 대각 인터리버로 구성된 것을 특징으로 한다.In order to achieve the above object, an encoding apparatus of a communication system according to an embodiment of the present invention includes at least two component encoders for encoding input bits and matrix information corresponding to a frame size of the input information. And diagonally interleaving the input information according to the matrix information of the frame and connecting the input information to at least one input terminal of the encoder.

또한 상기 목적을 달성하기 위한 본 발명의 실시예에 따른 통신 시스템의 부호화 장치가 입력되는 정보 비트를 부호화하는 적어도 두개의 구성부호기들과, 입력 데이타의 크기에 대응하는 홉 변수 정보를 구비하며 상기 홉 변수에 따라 입력정보를 순환 인터리빙한 후 상기 부호기들 중 적어도 한 구성 부호기의 입력단에 연결하는 순환 인터리버로 구성된 것을 특징으로 한다.In addition, the encoder of the communication system according to an embodiment of the present invention for achieving the above object comprises at least two encoders for encoding the information bits input, hop variable information corresponding to the size of the input data and the hop And a cyclic interleaver which cyclically interleaves the input information according to a variable and then connects to the input terminal of at least one constituent encoder of the encoders.

또한 상기 목적을 달성하기 위한 본 발명의 실시예에 따른 통신 시스템의 부호화 장치가 입력되는 정보 비트를 부호화하는 적어도 두개의 구성부호기들과, 입력 정보를 인터리빙한 후 상기 부호기들 중 적어도 한 구성 부호기의 출력단에 연결하는 인터리버와, 상기 구성부호기들의 입출력단에 연결되며 프레임 데이타 종료시 스위칭되어 구성 부호기들을 종단시키기 위한 테일 비트를 생성하여 상기 대응되는 구성 부호기에 각각 입력시키는 테일비트 생성기들로 구성된 것을 특징으로 한다.In addition, at least two component encoders for encoding the information bits inputted by the encoding apparatus of the communication system according to an embodiment of the present invention for achieving the above object, and after interleaving the input information of at least one of the encoders An interleaver connected to an output terminal, and tail bit generators connected to the input / output terminals of the component encoders and switched at the end of frame data to generate tail bits for terminating the component encoders and input the tail bits generators to the corresponding component encoders, respectively. do.

또한 상기 목적을 달성하기 위한 본 발명의 실시예에 따라 반복 복호 알고리듬을 사용하는 복호기를 구비하는 통신 시스템의 부호화 장치가 입력되는 정보 비트를 부호화하는 적어도 두개의 구성 부호기들과, 입력 정보를 인터리빙한 후 상기 부호기들 중 적어도 한 구성 부호기의 출력단에 연결하는 인터리버와, 상기 입력 정보 및 패리티 심볼의 전송율을 조정하기 위하여 상기 입력 정보를 천공하는 천공기로 구성된 것을 특징으로 한다.In addition, according to an embodiment of the present invention for achieving the above object, an encoding apparatus of a communication system having a decoder using an iterative decoding algorithm interleaves input information and at least two component encoders for encoding input information bits. And an interleaver connected to an output terminal of at least one of the encoders, and a puncturer for puncturing the input information to adjust transmission rates of the input information and the parity symbol.

또한 상기 목적을 달성하기 위한 본 발명의 실시예에 따른 터보 부호화 장치가; 입력되는 정보 비트를 부호화하는 제 1 구성 부호기와; 상기 정보 비트를 설정된 규칙에 따라 인터리빙하여 정보 비트의 순서를 바꾸는 인터리버와; 상기 터보 부호기 출력의 전송율을 가변할 수 있는 천공기와; 상기 인터리버의 출력을 부호화하는 제 2 구성 부호기와 상기 제 1 구성 부호기 및 제 2 구성 부호기의 입력단에 연결되는 제 1 스위치 및 제 2 스위치와 테일 비트 발생기를 구비하며; 테일 비트 발생기의 테일 비트들을 전송 채널로 전송하기 위한 테일 비트 저장 장치 및 제 3 스위치와; 상기 테일 비트 발생기가 상기 제 1 구성 부호기를 종단시키기 위한 테일 비트를 생성하여 상기 제 1 구성 부호기에 입력시키는 제 1 테일 비트 생성기와; 상기 테일 비트 발생기가 상기 제 1 구성 부호기를 종단 시키기 위한 테일 비트를 생성하여 상기 제 2 구성 부호기에 입력시키는 제 2 테일 비트 생성기와; 상기 인터리버 및 디인터리버에서 입력되는 데이터의 순서를 바꾸어 주기 위해 인터리버 및 디인터리버에 입력되는 데이터를 저장하는 메모리 장치와 인터리빙 및 디인터리빙된 데이터를 저장하는 메모리 장치 및 인덱스 발생기 및 이러한 과정을 제어하는 제어기로 구성된 것을 특징으로 한다.In addition, a turbo encoding apparatus according to an embodiment of the present invention for achieving the above object; A first constituent encoder for encoding input information bits; An interleaver for interleaving the information bits according to a set rule to change the order of the information bits; A perforator capable of varying the transmission rate of the turbo encoder output; A second constituent encoder for encoding an output of the interleaver, a first switch, a second switch, and a tail bit generator connected to input terminals of the first constituent encoder and the second constituent encoder; A tail bit storage device and a third switch for transmitting tail bits of the tail bit generator to a transmission channel; A first tail bit generator for generating a tail bit for terminating the first component encoder and inputting the tail bit to the first component encoder; A second tail bit generator for generating a tail bit for terminating the first component encoder and inputting the tail bit to the second component encoder; A memory device for storing data input to the interleaver and deinterleaver, a memory device for storing interleaved and deinterleaved data, and a controller for controlling the process. Characterized in that consisting of.

도 1은 종래의 병렬 쇄상 순환 구조적 부호기의 구성을 도시하는 도면BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a diagram showing the configuration of a conventional parallel chain circular structural encoder

도 2는 종래의 직렬 쇄상 순환 구조적 부호기의 구성을 도시하는 도면Fig. 2 is a diagram showing the configuration of a conventional serial chain cyclic structural coder.

도 3은 종래의 병렬 쇄상 순환 구조적 복호기의 구성을 도시하는 도면3 is a diagram showing the configuration of a conventional parallel chain cyclic structural decoder.

도 4는 종래의 직렬 쇄상 순환 구조적 복호기의 구성을 도시하는 도면4 is a diagram showing the configuration of a conventional serial chain cyclic structural decoder.

도 5는 본 발명의 제 1 실시예에 따른 쇄상 순환 구조적 부호기의 도시하는 도면5 is a diagram showing a chain circular structural encoder according to the first embodiment of the present invention.

도 6은 본 발명의 제 2 실시예에 따른 쇄상 순환 구조적 부호기의 도시하는 도면6 is a diagram showing a chain circular structural encoder according to a second embodiment of the present invention.

도 7은 본 발명의 제 1 실시예에 따른 터보 부호기에서 대각 인터리버의 구조를 도시하는 도면7 illustrates the structure of a diagonal interleaver in a turbo encoder according to a first embodiment of the present invention.

도 8은 도 7과 같은 구성을 갖는 대각 인터리버의 구조에서 본 발명의 실시예에 따른 제 1 대각 인터리빙 동작 과정을 도시하는 흐름도8 is a flowchart illustrating a first diagonal interleaving operation process according to an embodiment of the present invention in the structure of a diagonal interleaver having the configuration as shown in FIG.

도 7은 본 발명의 제 2 실시예에 따른 터보 부호기에서 순환 인터리버의 구조를 도시하는 도면7 illustrates the structure of a cyclic interleaver in a turbo encoder according to a second embodiment of the present invention.

도 10은 도 7과 같은 구성을 갖는 인터리버의 구조에서 본 발명의 실시예에 따른 제 1 순환 인터리빙 동작 과정을 도시하는 흐름도10 is a flowchart illustrating a first cyclic interleaving operation procedure according to an embodiment of the present invention in the structure of an interleaver having the configuration as shown in FIG.

도 11은 도 7과 같은 구성을 갖는 인터리버의 구조에서 본 발명의 실시예에 따른 제 2 순환 인터리빙 동작 과정을 도시하는 흐름도11 is a flowchart illustrating a second cyclic interleaving operation process according to an embodiment of the present invention in the structure of an interleaver having the configuration as shown in FIG.

도 12는 랜덤 인터리빙 방식 및 블럭 인터리빙 방식을 사용한 터보 부호기와 본 발명의 제 2 실시예에 따른 순환 인터리빙 방식을 사용한 터보 부호기의 특성을 도시하는 도면12 is a diagram showing characteristics of a turbo encoder using a random interleaving method and a block interleaving method and a turbo encoder using a cyclic interleaving method according to a second embodiment of the present invention.

도 13은 본 발명의 실시예에 따른 터보 부호기에서 테일 비트 생성 및 천공 동작을 설명하는 구성을 도시하는 도면13 is a diagram illustrating a configuration for explaining tail bit generation and puncturing operations in a turbo encoder according to an embodiment of the present invention.

본 발명의 실시예에서는 설명의 편의를 위해 병렬 쇄상 순환 구조를 갖는 터보 부호기의 구성을 예로들어 설명하기로 한다. 도 5 및 도 6은 본 발명의 실시예에 따른 터보 부호기의 구성을 도시하는 도면으로서, 제 1 부호기 412 및 414는 구성 부호기를 사용하는 것으로 가정하며, 상기 부호기 412 및 414는 상기 도 1 및 도 2의 구성 부호기와 같이 수신되는 정보 비트 dk를 부호화하여 패리티 심볼 Yk를 생성한다. 또한 대각 인터리버(helcial interleaver) 432와 순환 인터리버(circular shifting interleaver) 434는 본 발명의 제 1 및 제 2 실시예에 따른 인터리버이며, 이하 설명의 편의를 위하여 특정 인터리버를 칭하지 않는 경우에는 인터리버 430으로 칭하기로 한다.In the embodiment of the present invention, a configuration of a turbo encoder having a parallel chain circulation structure will be described as an example for convenience of description. 5 and 6 are diagrams illustrating a configuration of a turbo encoder according to an embodiment of the present invention. It is assumed that the first encoders 412 and 414 use a component encoder, and the encoders 412 and 414 are shown in FIGS. Parity symbol Y k is generated by encoding the received information bit d k as in the configuration coder of 2. In addition, the diagonal interleaver 432 and the circular shifting interleaver 434 are interleavers according to the first and second embodiments of the present invention. It will be called.

상기 도 5 및 도 6을 참조하면, 상기 정보 비트 dk는 제 1 구성 부호기 410에 입력되는 동시에 인터리버 430에 입력되어 정보 비트의 순서가 바뀌어져서 제 2 구성 부호기 420에 입력된다. 상기 인터리버 430은 최적의 인터리빙을 할 경우에 입력 정보 비트 dk가 부호화 된 후 출력되는 시퀀스(Xk, Yk)의 최소 해밍 거리(minimum Hamming distance)가 최대가 되는 인터리버를 사용한다. 또한 채널 부호기에 입력되는 데이터의 프레임 크기는 순수한 데이터 뿐만 아니라 CRC 비트 및 기타 제어 비트의 추가로 인하여 일정하지가 않다. 만일 강제로 입력 데이터 프레임의 크기를 고정시키려면 인터리버 크기와의 차이 만큼 더미 비트(dummy bit)를 추가해야 한다. 이러한 상기 더미 비트는 시스템의 성능 개선과는 무관한 것이기 때문에 적으면 적을 수록 좋다. 따라서 인터리버 430은 성능이 우수함과 동시에 입력 데이터 프레임 크기와 관계가 있는 파라메타의 변화와는 상관없이 잘 동작되는 것이어야 한다.5 and 6, the information bit d k is input to the first component encoder 410 and simultaneously to the interleaver 430 so that the order of the information bits is changed and input to the second component encoder 420. When the interleaver 430 performs optimal interleaving, the interleaver 430 uses an interleaver whose maximum Hamming distance of the sequence X k and Y k is output after the input information bit d k is encoded. In addition, the frame size of data input to the channel encoder is not constant due to the addition of CRC bits and other control bits as well as pure data. If forcibly fixing the size of the input data frame, dummy bits should be added as much as the interleaver size. Since the dummy bits have nothing to do with improving the performance of the system, fewer are better. Therefore, the interleaver 430 should have good performance and operate well regardless of the parameter change related to the input data frame size.

도 7은 도 5 및 도 6에 도시된 대각 인터리버 432 및 순환 인터리버 434의 구성을 도시하고 있다. 상기 대각 인터리버 432 및 순환 인터리버 434는 가변 크기의 프레임 크기를 갖는 정보 비트가 입력될 시 해당 프레임 크기를 분석하고, 프레임 크기 분석 결과에 따라 시스템 제어부로부터 인터리버 관련 파라메타를 전달받아 최적의 인터리빙 동작을 수행하게 된다. 본 발명의 실시예에서는 상기 대각 인터리버 432 및 순환 인터리버 434를 하나의 인터리버로 구현한 예를 들어 설명하기로 한다. 그러나 터보 부호기에서 상기 인터리빙 방식이 대각 인터리빙 또는 순환 인터리빙 방식 중 하나로 선택하여 사용되는 경우에는 하나로 구성할 수도 있다. 여기서 상기 대각 인터리버 432 및 순환 인터리버 434는 인터리버 430으로 표기하기로 한다.FIG. 7 shows the configuration of the diagonal interleaver 432 and the cyclic interleaver 434 shown in FIGS. 5 and 6. The diagonal interleaver 432 and the cyclic interleaver 434 analyze the corresponding frame size when an information bit having a variable sized frame is input and perform an interleaver operation by receiving interleaver-related parameters from the system controller according to the frame size analysis result. Done. In the embodiment of the present invention, the diagonal interleaver 432 and the cyclic interleaver 434 will be described as an example of implementing one interleaver. However, when the interleaving method is selected from the diagonal interleaving or the cyclic interleaving method in the turbo encoder, it may be configured as one. Here, the diagonal interleaver 432 and the cyclic interleaver 434 will be referred to as interleaver 430.

상기 도 7을 참조하면, 레지스터 511은 도시하지 않은 시스템 제어부(system controller)에서 출력되는 프레임 크기신호(frame size)와 인터리버 형태신호(interleaver type)를 입력하여 저장한다. 대각 인터리빙 테이블 513은 대각 인터리빙 기능을 수행할 시 정보 비트의 프레임 크기에 따라 최적의 대각 인터리빙 특성을 가질 수 있는 행 및 열의 값 M 및 N들을 저장하는 테이블이다. 즉, 가변적인 프레임 크기로 수신되는 정보 비트를 대각 인터리빙할 시 최적의 대각 인터리빙 효과를 갖는 M 및 N들을 실험적으로 측정하여 대각 인터리빙 테이블 513에 저장한다. 상기 대각 인터리빙 테이블 513은 상기 레지스터 511에서 출력되는 프레임 크기 신호에 대응되는 M 및 N 값을 출력한다. 대각 인터리빙 제어기 517은 상기 대각 인터리빙 테이블 513에서 출력되는 M 및 N 값을 입력한 후, 설정된 대각 인터리빙 방식으로 정보 비트를 인터리빙 출력하기 위한 리드 어드레스를 발생한다. 순환 인터리빙 테이블 515는 순환 인터리빙 기능을 수행할 시 정보 비트의 프레임 크기에 따라 최적의 순환 인터리빙 특성을 가질 수 있는 홉 변수 및 스텝 변수 값 p 및 STEP들을 저장하는 테이블이다. 즉, 가변적인 프레임 크기로 수신되는 정보 비트를 순환 인터리빙할 시 최적의 순환 인터리빙 효과를 갖는 p 및 STEP 변수들을 실험적으로 측정하여 순환 인터리빙 테이블 515에 저장한다. 상기 순환 인터리빙 테이블 513은 상기 레지스터 511에서 출력되는 프레임 크기신호에 대응되는 p 및 STEP 값을 출력한다. 순환 인터리빙 제어기 519는 상기 순환 인터리빙 테이블 515에서 출력되는 p 및 STEP 값을 입력한 후, 설정된 순환 인터리빙 방식으로 정보 비트를 인터리빙 출력하기 위한 리드 어드레스를 발생한다. 멀티플렉서 521은 상기 대각 인터리빙 제어기 517 및 순환 인터리빙 제어기 519에서 출력되는 리드 어드레스를 입력하며, 상기 레지스터 511에서 출력되는 인터리버 형태신호에 의해 대응되는 인터리빙 방식의 어드레스를 선택하여 리드어드레스로 출력한다. 메모리 523은 상기 정보 비트를 순차적으로 입력하며, 상기 멀티플렉서 521에서 출력되는 리드 어드레스에 의해 저장된 정보 비트를 인터리빙 출력한다. 상기 메모리 523은 가변적으로 입력되는 정보 비트에서 최대 프레임 크기의 정보 비트를 저장할 수 있는 크기로 설정한다.Referring to FIG. 7, the register 511 receives and stores a frame size signal and an interleaver type signal output from a system controller (not shown). The diagonal interleaving table 513 is a table for storing values M and N of rows and columns which may have optimal diagonal interleaving characteristics according to the frame size of the information bit when performing the diagonal interleaving function. That is, when diagonally interleaving information bits received with a variable frame size, M and N having an optimal diagonal interleaving effect are experimentally measured and stored in the diagonal interleaving table 513. The diagonal interleaving table 513 outputs M and N values corresponding to the frame size signal output from the register 511. The diagonal interleaving controller 517 inputs M and N values output from the diagonal interleaving table 513 and then generates a read address for interleaving and outputting information bits in a set diagonal interleaving scheme. The cyclic interleaving table 515 is a table for storing hop variable and step variable values p and STEPs which may have optimal cyclic interleaving characteristics according to the frame size of information bits when performing the cyclic interleaving function. That is, when cyclic interleaving information bits received with a variable frame size, p and STEP variables having an optimal cyclic interleaving effect are experimentally measured and stored in the cyclic interleaving table 515. The cyclic interleaving table 513 outputs p and STEP values corresponding to the frame size signal output from the register 511. The cyclic interleaving controller 519 inputs p and STEP values output from the cyclic interleaving table 515 and then generates a read address for interleaving and outputting information bits in a cyclic interleaving scheme. The multiplexer 521 inputs a read address output from the diagonal interleaving controller 517 and the cyclic interleaving controller 519, and selects an address of an interleaving scheme corresponding to the interleaver type signal output from the register 511 and outputs the read address to the read address. The memory 523 sequentially inputs the information bits, and interleaves the information bits stored by the read address output from the multiplexer 521. The memory 523 is set to a size capable of storing information bits having a maximum frame size from information bits that are variably input.

상기 도 7의 구성에서 대각 인터리버 432를 단독으로 구현하는 경우, 레지스터 511, 대각 인터리빙 테이블 513, 대각 인터리빙 제어기 517 및 메모리 523으로 구성될 수 있으며, 이때 멀티플렉서 및 상기 인터리버 형태신호를 사용하지 않는다. 또한 상기 도 7의 구성에서 순환 인터리버 434를 단독으로 구현하는 경우, 레지스터 511, 순환 인터리빙 테이블 515, 순환 인터리빙 제어기 519 및 메모리 523으로 구성될 수 있으며, 여기서도 멀티 플렉서 및 상기 인터리버 형태 신호는 사용하지 않는다.In the configuration of FIG. 7, the diagonal interleaver 432 may be implemented alone, and may include a register 511, a diagonal interleaving table 513, a diagonal interleaving controller 517, and a memory 523. In this case, the multiplexer and the interleaver type signal are not used. In addition, when the cyclic interleaver 434 is implemented solely in the configuration of FIG. 7, the cyclic interleaver 434 may be configured as a register 511, a cyclic interleaving table 515, a cyclic interleaving controller 519, and a memory 523. The multiplexer and the interleaver type signal are not used here. Do not.

상기 도 7의 구성에서 대각 인터리빙 테이블 513 및 순환 인터리빙 테이블 515는 롬 및 램을 사용하여 구현할 수 있으며, 또한 논리 소자들을 결합하여 구현할 수도 있다. 또한 상기 대각 인터리빙 제어기 517 및 순환 인터리빙 제어기 519는 논리 소자들을 결합하여 구현할 수 있으며, 또한 디지탈 신호 처리 기능을 이용하여 구현할 수 있다.In the configuration of FIG. 7, the diagonal interleaving table 513 and the cyclic interleaving table 515 may be implemented using a ROM and a RAM, or may be implemented by combining logic elements. In addition, the diagonal interleaving controller 517 and the cyclic interleaving controller 519 may be implemented by combining logic elements, and may be implemented using a digital signal processing function.

하기에서 설명될 도 8 및 도 9는 대각 인터리빙 방식의 구현 예를 도시하고 있으며, 도 10 및 도 11은 순환 인터리빙 방식의 구현 예를 도시하고 있다. 또한 하기에서 설명되는 인터리버는 입력버퍼를 구비한 예를 들어 설명하고 있다.8 and 9, which will be described below, illustrate an implementation of the diagonal interleaving scheme, and FIGS. 10 and 11 illustrate an implementation of the cyclic interleaving scheme. In addition, the interleaver described below is described with an example having an input buffer.

상기 도 7과 같은 인터리버 430의 구성을 참조하여 제 1 대각 인터리빙 - 제 3 대각 인터리빙 동작을 살펴본다.A first diagonal interleaving to a third diagonal interleaving operation will be described with reference to the configuration of the interleaver 430 as shown in FIG. 7.

먼저 도 8은 제 1 대각 인터리빙의 동작을 나타내는 흐름도이다. 상기 도 8을 참조하면, 제 1 대각 인터리빙은 입력 비트의 시퀀스를 M*N 행렬로 보고 데이터를 읽고 쓰는 방식이다. 제 1 대각 인터리빙을 살펴보면, 먼저 정보 비트 dk가 입력되면, 611단계에서 입력되는 정보 비트를 메모리 523에 순차적으로 저장하기 위한 어드레스 old_addr[k]에 정보를 저장하고 프레임 데이타의 크기(k)를 설정한다. 여기서 상기 k는 입력되는 프레임 데이타의 크기를 나타내는 변수이다. 이후 613단계에서 대각 인터리빙을 하기 위한 데이타 프레임의 행 및 열 변수(M*N)를 결정한다. 즉, 대각 인터리빙을 수행하기 위하여, 상기 입력 프레임 데이타 크기 변수 k를 참조하여 상기 대각 인터리빙 테이블에서 상기 M 및 N 값을 설정한다. 룩업 테이블에 M, N 값을 저장하고 있다가 입력 프레임의 크기(K)에 따라 결정할 수도 있으며, 입력 프레임의 크기(K)에 따라 최적의 M, N을 계산할 수도 있다. 그리고 615단계에서 상기 M 및 N 값의 최대 공약수가 1[gcd(M,N)=1)]인가 검사한다. 이때 상기 M 및 N의 최대 공약수가 1인 경우에는 617단계에서 하기 수학식 1과 같은 방법으로 제 1 대각 인터리빙의 어드레스를 연산한다.First, FIG. 8 is a flowchart illustrating an operation of first diagonal interleaving. Referring to FIG. 8, the first diagonal interleaving is a method of reading and writing data by viewing a sequence of input bits as an M * N matrix. Referring to the first diagonal interleaving, when the information bit d k is first input, the information is stored in the address old_addr [k] for sequentially storing the information bits input in step 611 in the memory 523, and the size k of the frame data is changed. Set it. Where k is a variable representing the size of input frame data. Thereafter, in step 613, the row and column variables (M * N) of the data frame for diagonal interleaving are determined. That is, in order to perform diagonal interleaving, the M and N values are set in the diagonal interleaving table with reference to the input frame data size variable k. The M and N values may be stored in the lookup table, and may be determined according to the size K of the input frame, and the optimal M and N may be calculated according to the size K of the input frame. In operation 615, the maximum common divisor of the M and N values is 1 [gcd (M, N) = 1)]. In this case, when the greatest common divisor of M and N is 1, the address of the first diagonal interleaving is calculated in the same manner as in Equation 1 in operation 617.

[수학식 1][Equation 1]

for(k=0; kM*N-1; k++)for (k = 0; kM * N-1; k ++)

new addr[k] = (M-1-(kmodN)*N+(kmod N)new addr [k] = (M-1- (kmodN) * N + (kmod N)

상기 수학식 1과 같이 출력 버퍼의 어드레스를 지정하여 상기 입력 버퍼에 저장된 입력 정보 비트를 인터리빙하여 출력 버퍼에 저장한다.As shown in Equation 1, the address of the output buffer is specified to interleave the input information bits stored in the input buffer and stored in the output buffer.

그러나 상기 615단계에서 상기 M 및 N의 최대 공약수가 1이 아니면[gcd(M, N)≠1]이 아니면, 619단계에서 제 1 대각 인터리빙의 동작을 중단하고 종료한다.However, if the greatest common divisor of M and N is not 1 (gcd (M, N) ≠ 1) in step 615, the operation of the first diagonal interleaving is stopped and terminated in step 619.

상기 제 1 대각 인터리빙의 예를 살펴본다. 먼저 최초 상기 입력 버퍼의 old_addr[k]에 저장되어 있는 M=6, N=5인 시퀀스를 예로 들면, old_addr[k]={0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29}일 때, 제 1 대각 인터리빙을 한 후에 출력 버퍼 new_addr[k]에 저장되는 시퀀스는 new_addr[k]={25 21 17 13 9 0 26 22 18 14 5 1 27 23 19 10 6 2 28 24 15 11 7 3 29 20 16 12 8 4}가 된다.An example of the first diagonal interleaving will be described. First, for example, when M = 6 and N = 5 stored in old_addr [k] of the input buffer, old_addr [k] = {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29}, the sequence stored in the output buffer new_addr [k] after the first diagonal interleaving is new_addr [k] = {25 21 17 13 9 0 26 22 18 14 5 1 27 23 19 10 6 2 28 24 15 11 7 3 29 20 16 12 8 4}.

위의 저장된 값을 M*N 행렬로 표현하면, 입력된 데이타와 제 1 대각 인터리빙 한 후 출력되는 데이타는 표 1과 같다.When the above stored values are expressed in an M * N matrix, the data output after the first diagonal interleaving with the input data are shown in Table 1.

[표 1]TABLE 1

그러나, 위의 제 1 대각 인터리빙은 최대 공약수(M, N)=1 인 경우에만 만들 수 있다. 그러나 최대 공약수(M, N)≠1인 M=6, N=6인 경우를 가정하면, 하기 표 2와 같이 인터리빙이 전혀 되지 않고 동일한 주소에 데이터를 덮어 쓴 결과를 얻게되는 단점이 있다.However, the above first diagonal interleaving can be made only if the greatest common factor (M, N) = 1. However, assuming the case of M = 6 and N = 6 where the greatest common divisor (M, N) ≠ 1, there is a disadvantage in that interleaving is not performed at all and data is overwritten at the same address as shown in Table 2 below.

[표 2]TABLE 2

제 2 대각 인터리빙 방식 및 제 3 대각 인터리빙 방식은 입력 정보 비트의 시퀀스를 M*N 행렬로 보고 데이터를 읽고 쓰는 방식이나, 최대 공약수(M, N)=1인 경우 뿐만 아니라, 최대 공약수(M, N)≠1인 경우에도 인터리빙을 할 수 있는 구조이다.The second diagonal interleaving method and the third diagonal interleaving method view a sequence of input information bits as an M * N matrix, and read and write data, but not only when the greatest common factor (M, N) = 1, but also the maximum common factor (M, Even if N) ≠ 1, interleaving is possible.

두번째로 도 9는 제 2 대각 인터리빙의 동작을 나타내는 흐름도이다. 상기 도 9를 참조하면, 제 2 대각 인터리빙은 입력 비트의 시퀀스를 M*N 행렬로 보고 데이터를 읽고 쓰는 방식으로써, M과 N의 최대 공약수가 1인 경우와 1이 아닌 경우에 모두 적용할 수 있는 대각 인터리빙 방식이다. 제 2 대각 인터리빙을 살펴보면, 먼저 정보 비트 dk가 입력되면, 631단계에서 입력버퍼의 어드레스 old_addr[k]에 정보를 저장하고 프레임 데이타의 크기(k)를 설정한다. 여기서 상기 k는 입력되는 프레임 데이타의 크기를 나타내는 변수이다. 이후 633 단계에서 대각 인터리빙을 하기 위한 데이타 프레임의 행 및 열 변수(M*N)를 결정한다. 상기 M 및 N을 설정한 후 635단계에서 하기 수학식 2와 같은 방법으로 제 2 대각 인터리빙의 어드레스를 연산한다. 하기 수학식 2에서 M 및 N은 열 및 행의 변수 정보이며, j는 1부터 M까지 증가시키는 변수이고, i는 1부터 N까지 증가시키는 변수를 의미한다.9 is a flowchart illustrating the operation of the second diagonal interleaving. Referring to FIG. 9, the second diagonal interleaving is a method of viewing an input bit sequence as an M * N matrix and reading and writing data, which can be applied to a case where the maximum common divisor of M and N is 1 and not 1. Diagonal interleaving. Referring to the second diagonal interleaving, when the information bit dk is input, in step 631, the information is stored in the address old_addr [k] of the input buffer and the size k of the frame data is set. Where k is a variable representing the size of input frame data. Thereafter, in step 633, the row and column variables (M * N) of the data frame for diagonal interleaving are determined. After setting M and N, in step 635, an address of the second diagonal interleaving is calculated in the same manner as in Equation 2 below. In Equation 2, M and N are variable information of columns and rows, j is a variable increasing from 1 to M, and i is a variable increasing from 1 to N.

[수학식 2][Equation 2]

for(j=0; jM; j++)for (j = 0; jM; j ++)

for(i=0; iN; i++)for (i = 0; iN; i ++)

new addr[i+j+N] = i+(M-1-(i+j)mod M))*Nnew addr [i + j + N] = i + (M-1- (i + j) mod M)) * N

상기 수학식 2과 같이 출력 버퍼의 어드레스를 지정하여 상기 입력 버퍼에 저장된 입력 정보 비트를 인터리빙하여 출력 버퍼에 저장한다.As shown in Equation 2, the address of the output buffer is designated to interleave the input information bits stored in the input buffer and stored in the output buffer.

상기 제 2 대각 인터리빙 방식을 사용하여 최대 공약수(M, N)=1인 M=6, N=5의 경우를 보면 하기 표 3와 같다.Using the second diagonal interleaving method, M = 6 and N = 5 having the greatest common divisor (M, N) = 1 are shown in Table 3 below.

[표 3]TABLE 3

또한, 최대 공약수(M, N)≠1인 M=6, N=6인 경우에도 하기 표 4와 인터리빙이 제대로 이루어짐을 알 수 있다.In addition, it can be seen that interleaving with Table 4 below is performed even when M = 6 and N = 6 where the greatest common divisor (M, N) ≠ 1.

[표 4]TABLE 4

세번째로 제 3 대각 인터리빙 방식의 경우, 대각 인터리빙 제어기 517은 하기와 같은 수학식 3과 같이 구현할 수 있다.Third, in the case of the third diagonal interleaving scheme, the diagonal interleaving controller 517 may be implemented as Equation 3 below.

[수학식 3][Equation 3]

for(j=0; jM; j++)for (j = 0; jM; j ++)

for(i=0; iN; i++)for (i = 0; iN; i ++)

new addr[i+j+N] = i+((i+j)mod M)*Nnew addr [i + j + N] = i + ((i + j) mod M) * N

위의 대각 인터리버 432를 이용하여 입력 시퀀스를 맵핑(mapping)되는 메모리 주소에 저장한 다음 행으로 혹은 열로 순차적으로 데이터를 읽거나, 입력 시퀀스를 행 혹은 열로 순차적으로 메모리에 저장한 다음 대각 인터리빙 발생기에 의한 주소에서부터 하나씩 데이터를 읽는 방법을 이용하여 인터리빙을 할 수 있다.Using the diagonal interleaver 432, the input sequence is stored in a mapped memory address, and then data is read sequentially in rows or columns, or the input sequence is sequentially stored in memory in rows or columns, and then stored in the diagonal interleaving generator. Interleaving can be done by reading data one by one from an address.

디인터리빙은 수신된 데이터를 인터리버에서 사용한 방법의 역순으로 하면 된다.Deinterleaving may be performed in the reverse order of the method used by the interleaver.

도 10은 상기 도 7과 같은 순환 인터리버 434를 이용하여 입력 정보 비트를 제 1 순환 인터리빙하는 동작을 도시하는 흐름도이다. 본 발명의 실시예에 따른 제 1 순환 인터리빙 방법은 입력 시퀀스를 하나의 원으로 보고 일정 간격마다 데이터를 읽고 쓰는 방법으로써 임의의 길이를 가지는 입력 시퀀스에 대하여 인터리빙을 할 수 있다.FIG. 10 is a flowchart illustrating an operation of first cyclic interleaving of input information bits using the cyclic interleaver 434 as shown in FIG. 7. In the first cyclic interleaving method according to an embodiment of the present invention, the input sequence is viewed as a single circle, and data can be read and written at regular intervals, thereby interleaving an input sequence having an arbitrary length.

상기 도 10을 참조하여 제 1 순환 인터리빙 동작을 살펴보면, 먼저 정보 비트 dk가 입력되면, 711단계에서 입력버퍼의 어드레스 old_addr[k]에 정보를 저장하고 프레임 데이타의 크기(SIZE)를 설정한다. 이후 713단계에서 P변수 및 STEP 변수를 설정한다. 여기서 상기 P 변수는 홉(hop) 간격 변수로써, 순환 인터리버의 성능을 좌우한다. 따라서 상기 P 변수는 최적의 효과를 가질 수 있도록 실험적으로 구한다. 또한 상기 STEP 변수는 상기 P 변수에 의해 호핑(hopping)되는 위치에서 좌측 또는 우측으로 쉬프트시키는 변수이다. 여기서 상기 STEP 변수는 정수가 된다. 상기와 같이 p변수 및 STEP 변수를 구한 후, 715단계에서 상기 홉변수 P와 STEP 변수의 최대 공약수가 1[gcd(P, SIZE=1)]인가 검사한다. 이때 상기 P와 SIZE 변수의 최대공약수가 1인 경우에는 717단계에서 제 1 순환 인터리빙 어드레스를 하기 수학식 4와 연산한다.Referring to the first cyclic interleaving operation with reference to FIG. 10, first, when the information bit d k is input, the information is stored in the address old_addr [k] of the input buffer in step 711 and the size (SIZE) of the frame data is set. In step 713, the P and STEP variables are set. Herein, the P variable is a hop interval variable and determines the performance of the cyclic interleaver. Therefore, the P variable is experimentally determined to have an optimal effect. In addition, the STEP variable is a variable that shifts to the left or right at the position hopping by the P variable. Here, the STEP variable is an integer. After the p variable and the STEP variable are obtained as described above, in step 715, the maximum common factor of the hop variable P and the STEP variable is 1 [gcd (P, SIZE = 1)]. In this case, when the greatest common factor of the P and SIZE variables is 1, the first cyclic interleaving address is calculated with Equation 4 below.

[수학식 4][Equation 4]

for(i=0; iSIZE; i++)for (i = 0; iSIZE; i ++)

new addr[i] = (p*i+STEP)mod SIZEnew addr [i] = (p * i + STEP) mod SIZE

상기 수학식 4에서 i 변수는 입력 프레임 데이타 크기의 수를 나타내는 변수로써, 0에서 SIZE 수(어드레스 갯수) 까지 변하는 변수이다. 또한 상기 SIZE는 인터리버의 크기이고, p는 최대 공약수(SIZE, p)=1을 만족하는 임의의 자연수이며, STEP은 정수이다.In Equation 4, the i variable is a variable representing the number of input frame data sizes, and is a variable that varies from 0 to SIZE (address number). The SIZE is the size of the interleaver, p is any natural number satisfying the greatest common divisor (SIZE, p) = 1, and STEP is an integer.

여기서 최초 입력 버퍼 old_addr[k]에 저장되어 있는 SIZE=30인 시퀀스를 예로 들면, old_addr[k]={0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29}일 때, p=11이고, STEP=0인 제 1 순환 인터리빙을 한 후에 버퍼 new_addr[k]에 저장된 시퀀스는 new_addr[k]={0 11 22 3 14 25 6 17 28 9 20 1 12 23 4 15 26 7 18 29 10 21 2 13 24 5 16 27 8 19}가 된다. 위의 저장된 값을 M*N 행렬로 표현하면, 하기 표 5와 같다.Here, for example, a sequence having SIZE = 30 stored in the first input buffer old_addr [k] old_addr [k] = {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29}, after first circular interleaving with p = 11 and STEP = 0, the sequence stored in buffer new_addr [k] is equal to new_addr [k] = {0 11 22 3 14 25 6 17 28 9 20 1 12 23 4 15 26 7 18 29 10 21 2 13 24 5 16 27 8 19}. When the stored values are expressed as M * N matrices, they are shown in Table 5.

[표 5]TABLE 5

그러나, 최대 공약수(SIZE, p)≠1인 p=6을 이용할 경우, 상기 도 10과 같은 제 1 순환 인터리빙을 하면 인터리빙이 되지는 않고, 동일한 주소에 데이터를 덮어 쓰는 오류가 생기게 된다.However, when using p = 6 having a maximum common divisor (SIZE, p) ≠ 1, if the first cyclic interleaving as shown in FIG. 10 is not interleaved, an error of overwriting data at the same address occurs.

여기서 최초 메모리의 순차적인 어드레스 old_addr[k]에 저장되어 있는 SIZE=30인 시퀀스가 입력되며, p=11이고, STEP=0인 경우를 가정하면, 상기 도 10과 같은 제 1 순환 인터리빙 방식으로 방식 입력 시퀀스를 인터리빙한 결과를 M*N 행렬로 표현하면 하기 표 6과 같다.Herein, assuming that a sequence of SIZE = 30 stored in the sequential address old_addr [k] of the first memory is input, and p = 11 and STEP = 0, the first cyclic interleaving scheme as shown in FIG. Interleaving result of the input sequence is expressed as M * N matrix as shown in Table 6 below.

[표 6]TABLE 6

상기와 같은 제 1 순환 인터리빙 방식이 갖는 단점을 보완하기 위하여 최대공약수(SIZE, p)≠1인 경우에도 인터리빙을 할 수 있는 제 2 순환 인터리방식이 도 11에 도시되어 있다. 상기 도 11에 도시된 제 2 순환 인터리빙 방식은 입력 시퀀스를의 행렬로 보고, 열로는 제 1 순환 인터리빙 방법을 사용하고 행으로는 블록 인터리빙 방법을 사용하는 방식이다.In order to compensate for the disadvantages of the first cyclic interleaving scheme as described above, a second cyclic interleaving scheme capable of interleaving even when the greatest common factor (SIZE, p) ≠ 1 is illustrated in FIG. 11. The second cyclic interleaving scheme illustrated in FIG. 11 represents an input sequence. In the matrix, the first cyclic interleaving method is used as a column, and the block interleaving method is used as a row.

두번째로 도 11은 제 2 순환 인터리빙의 동작을 나타내는 흐름도로써, P와 STEP 변수의 최대 공약수가 1인 경우와 1이 아닌 경우에 모두 적용할 수 있는 순환 인터리빙 방식이다. 제 2 순환 인터리빙 동작을 살펴보면, 먼저 정보 비트 dk가 입력되면, 721단계에서 메모리의 순차 어드레스 old_addr[k]에 정보를 저장하고 프레임 데이타의 크기 SIZE를 설정한다. 여기서 상기 SIZE는 입력되는 프레임 데이타의 크기를 나타내는 변수이다. 이후 723단계에서 순환 인터리빙을 하기 위한 홉 변수 P 및 STEP 변수를 결정한다. 상기 P 및 STEP 변수를 설정한 후 725단계에서 하기 수학식 5와 같은 방법으로 제 2 순환 인터리빙의 어드레스를 연산한다. 하기 수학식 5에서 i 및 k 변수는 0에서 SIZE 까지의 수를 나타내는 변수이다. j는 어드레스 변수로써 j는 0에서 d까지의 수를 나타낸다. P는 순환 인터리빙을 실행하기 위한 홉 변수를 나타낸다. STEP은 상기 홉 변수 P에 의해 결정된 위치에서 STEP 변수 만큼 좌측 혹은 우측으로 쉬프트하여 시작 시점을 정하기 위한 변수이다.Second, FIG. 11 is a flowchart illustrating the operation of the second cyclic interleaving, and is a cyclic interleaving scheme applicable to both the case where the maximum common factor of the P and STEP variables is 1 and not 1. Referring to the second cyclic interleaving operation, when the information bit dk is input, in step 721, the information is stored in the sequential address old_addr [k] of the memory and the size SIZE of the frame data is set. Here, the SIZE is a variable representing the size of input frame data. In step 723, hop variables P and STEP variables for cyclic interleaving are determined. After setting the P and STEP variables, in step 725, the address of the second cyclic interleaving is calculated in the same manner as in Equation 5 below. In Equation 5 below, the i and k variables represent variables ranging from 0 to SIZE. j is an address variable and j is a number from 0 to d. P represents a hop variable for performing cyclic interleaving. STEP is a variable for determining a start time by shifting left or right by the STEP variable at the position determined by the hop variable P.

[수학식 5][Equation 5]

d=gcd(P, SIZE);d = gcd (P, SIZE);

for(k-j=0; jd; j++)for (k-j = 0; jd; j ++)

for(i=0; iSIZE/d; i++, k++)for (i = 0; iSIZE / d; i ++, k ++)

new addr[k] = ((P*i+STEP)+j)mod SIZEnew addr [k] = ((P * i + STEP) + j) mod SIZE

상기 수학식 5에서 (P*i+STEP)는 순환 인터리빙 동작을 나타내며, j는 블럭 인터리빙을 동작을 나타낸다. 상기에서 SIZE는 입력 데이터 프레임의 크기이고, p는 임의의 자연수이며, STEP은 정수이다.In Equation 5, (P * i + STEP) represents a cyclic interleaving operation, and j represents a block interleaving operation. Where SIZE is the size of the input data frame, p is any natural number, and STEP is an integer.

여기서 SIZE=30이고, p=11인 제 2 순환 인터리빙 결과를 M*N 행렬로 나타내면, 하기 표 7과 같다.Here, the second cyclic interleaving result of SIZE = 30 and p = 11 is represented by the M * N matrix, as shown in Table 7 below.

[표 7]TABLE 7

상기 표 7의 결과는 제 1 순환 인터리빙의 결과와 동일하다. 그러나 최대 공약수(SIZE, p)≠인 p=15의 경우를 살펴보면 아래와 같다.The result of Table 7 is the same as the result of the first cyclic interleaving. However, the case of p = 15 with the greatest common divisor (SIZE, p) ≠ is as follows.

[표 8]TABLE 8

위의 순환 인터리빙 발생기를 이용하여 입력 시퀀스를 맵핑되는 메모리 주소에 저장한 다음, 행으로 혹은 열로 순차적으로 데이터를 읽거나, 입력 시퀀스를 행 혹은 열로 순차적으로 메모리에 저장한 다음 순환 인터리빙 발생기에 의한 주소에서부터 하나씩 데이터를 읽는 방법을 이용하여 인터리빙을 할 수 있다.Using the above cyclic interleaving generator, store the input sequence in the mapped memory address, and then read the data sequentially in rows or columns, or sequentially store the input sequence in memory in rows or columns, and then address the cyclic interleaving generator. Interleaving can be done by reading data one by one.

디인터리빙은 수신된 데이터를 인터리버에서 사용한 방법의 역순으로 하면 된다.Deinterleaving may be performed in the reverse order of the method used by the interleaver.

도 12는 병렬 쇄상 구조에 대하여 본 발명의 실시예에서 사용한 순환 인터리버의 성능을 도시하는 도면으로, 구성 부호의 구속장 K=3이고, 입력 프레임 크기는 104비트, 반복 복호 횟수는 8회, BPSK 변조 방식, AWGN(Additive White Gaussian Noise)환경에서의 시뮬레이션 결과에 대한 BER(Bit Error Rate) 특성을 도시하고 있다. 일반적으로 널리 이용되는 블록 인터리버 및 랜덤 인터리버의 시뮬레이션 결과와 비교를 하였다. 상기 도 12에 도시된 바와 같이 10-5BER에서 순환 인터리버의 Eb/No가 3dB 정도이고, 블럭 인터리버는 3.4dB가 됨을 알 수 있으며, 따라서 상기 10-5BER에서 순환 인터리버가 블록 인터리버보다 약 0.4dB 정도 성능이 개선되었음을 알 수 있다.Fig. 12 is a diagram showing the performance of the cyclic interleaver used in the embodiment of the present invention with respect to the parallel chain structure, with the constraint length K = 3 of the configuration code, the input frame size is 104 bits, the number of repetitive decoding times, and the BPSK. It shows the BER (Bit Error Rate) characteristics of the simulation results in the modulation method, AWGN (Additive White Gaussian Noise) environment. Compared with the simulation results of generally used block interleaver and random interleaver. As shown in FIG. 12, the Eb / No of the cyclic interleaver is about 3 dB at 10 −5 BER, and the block interleaver is 3.4 dB. Therefore, the cyclic interleaver is about 0.4 than the block interleaver at 10 −5 BER. It can be seen that the performance is improved by dB.

도 13은 본 발명의 실시예에 따라 터보 부호기의 구체적인 실시예의 구성을 도시하고 있다.13 shows the configuration of a specific embodiment of a turbo encoder according to an embodiment of the present invention.

상기 도 13을 참조하면, 제 1 구성 부호기 410은 입력되는 정보 비트를 부호화하여 출력하며, 구속장이 K=3인 경우를 예로들고 있다. 인터리버 430은 상기 정보비트를 설정된 규칙에 따라 인터리빙하여 정보 비트의 순서를 바꾸는 기능을 수행한다. 여기서는 상기 도 7과 같이 구성할 수 있으며, 이런 경우 상기 제 1 - 제 3 대각 인터리빙 방식 또는 제 1 - 제 2 순환 인터리빙 방식으로 구현할 수 있다. 제 2 구성 부호기 420은 상기 인터리버 430의 출력을 부호화하여 출력하며, 구속장이 K=3인 경우를 예로 들고 있다.Referring to FIG. 13, the first constituent encoder 410 encodes and outputs an input information bit, and exemplifies a case where the constraint length is K = 3. The interleaver 430 interleaves the information bits according to a set rule to change the order of the information bits. 7 may be configured as shown in FIG. 7, and in this case, the first to third diagonal interleaving or the first to second cyclic interleaving may be implemented. The second constituent encoder 420 encodes and outputs the output of the interleaver 430, and illustrates a case where the constraint length is K = 3.

제 1 테일비트 생성기 450은 상기 제 1 구성 부호기 410의 입력단에 연결되는 제 1 스위치 455와, 상기 제 1 구성 부호기 410의 메모리소자 412 및 413의 출력을 배타적 논리합하는 익스클루시브 오아케이트 451과, 상기 익스클루시브 오아게이트 451의 출력에 따라 상기 제 1 구성 부호기 410의 메모리를 초기화 및 프레임 종단신호를 발생하여 상기 제 1 스위치 455에 인가하는 비트발생기 453으로 구성된다. 상기 제 1 테일비트 생성기 450은 프레임 종료시 상기 제 1 스위치 455가 제 1 구성 부호기 410과 연결되어 상기 제 1 구성 부호기 410의 메모리소자들을 초기화시키는 동시에 프레임 종단신호를 발생한다. 제 2 테일비트 생성기 460은 상기 제 1 구성 부호기 420의 입력단에 연결되는 제 2 스위치 465와, 상기 제 1 구성 부호기 420의 메모리소자 422 및 423의 출력을 배타적 논리합하는 익스클루시브 오아게이트 461과, 상기 익스클루시브 오아게이트 461의 출력에 따라 상기 제 1 구성 부호기 420의 메모리를 초기화 및 프레임 종단신호를 발생하여 상기 제 2 스위치 465에 인가하는 비트발생기 463으로 구성된다. 상기 제 1 테일비트 생성기 460은 프레임 종료시 상기 제 1 스위치 465가 제 2 구성 부호기 420과 연결되어 상기 제 2 구성 부호기 420의 메모리소자들을 초기화시키는 동시에 프레임 종단신호를 발생한다.The first tail bit generator 450 may include: a first switch 455 connected to an input terminal of the first constituent encoder 410; an exclusive ocate 451 for exclusively ORing the outputs of the memory elements 412 and 413 of the first constituent encoder 410; The bit generator 453 initializes the memory of the first component encoder 410 and generates a frame termination signal according to the output of the exclusive oragate 451 and applies it to the first switch 455. When the frame ends, the first tail bit generator 450 generates a frame termination signal while initializing the memory elements of the first component encoder 410 by connecting the first switch 455 to the first component encoder 410. The second tail bit generator 460 includes: a second switch 465 connected to an input terminal of the first constituent encoder 420; an exclusive oragate 461 for exclusively ORing the outputs of the memory elements 422 and 423 of the first constituent encoder 420; The bit generator 463 initializes the memory of the first component encoder 420 and generates a frame termination signal to be applied to the second switch 465 according to the output of the exclusive oragate 461. When the frame ends, the first tail bit generator 460 is connected to the second component encoder 420 to initialize the memory elements of the second component encoder 420 and generates a frame termination signal.

제 1 천공기 470은 상기 정보 비트를 천공한다. 제 2 천공기 480은 상기 제 1 구성 부호기 410 및 제 2 구성 부호기 420의 출력을 입력하며, 상기 부호화된 데이타를 천공한다. 상기 제 1 천공기 470 및 제 2 천공기 480은 데이타의 전송율을 조정하기 위한 기능을 수행한다. 멀티플렉서 491은 상기 비트발생기 453 및 463의 출력을 입력하며, 두 출력을 멀티플렉싱하여 출력한다. 제 3 스위치 493은 프레임 종료시 상기 멀티플렉서 491에서 멀티플렉싱되어 출력되는 테일 비트들을 전송 채널에 스위칭 연결한다.The first puncturer 470 punctures the information bits. The second puncturer 480 inputs the outputs of the first constituent encoder 410 and the second constituent encoder 420 and punctures the encoded data. The first puncturer 470 and the second puncturer 480 perform a function for adjusting the data rate. The multiplexer 491 inputs the outputs of the bit generators 453 and 463 and multiplexes both outputs. The third switch 493 switches the tail bits multiplexed and output from the multiplexer 491 to the transmission channel at the end of the frame.

따라서 상기 제 1 테일 비트 생성기 450은 상기 제 1 구성 부호기 410을 종단 시키기 위한 테일 비트를 생성하며, 상기 제 2 테일비트 생성기 460은 상기 제 2 구성 부호기 420을 종단시키기 위한 테일 비트를 생성한다. 또한 제 1 천공기 470 및 제 2 천공기 480은 전송율을 정형화된 상태로 조정하여 출력하기 위한 기능을 수행한다.Accordingly, the first tail bit generator 450 generates tail bits for terminating the first component encoder 410, and the second tail bit generator 460 generates tail bits for terminating the second component encoder 420. In addition, the first puncturer 470 and the second puncturer 480 perform a function for adjusting and outputting the transmission rate in a standardized state.

병렬 구조 터보 부호기의 구성으로 가정한 상기 도 13을 참조하면, 터보 부호는 구성 부호기 410 및 420을 종단 시키기 위해 테일 비트를 사용한다. 이때 상기 터보 부호의 구성 부호는 조직형 부호이기 때문에 비조직형 길쌈 부호와 같이 0을 계속 입력한다고 해서, 구성 부호기 410 및 420의 메모리 412-413 및 422-423이 초기화되지 않는다. 그러나 구성 부호기 410 및 420은 입력에서 가장 가까운 메모리를 계속 0로 만드는 것은 피드백되는 값들의 합과 동일한 값을 테일 비트 발생기를 이용하여 입력으로 넣어주면 된다. 따라서 터보 부호기에는 각 구성 부호의 메모리 수 만큼의 테일 비트가 필요하다. 도 13에서 상기 제 1 구성 부호기 410의 입력단에 연결되는 스위치 455 및 제 2 구성 부호기 420의 입력단에 연결되는 스위치 465는 테일 비트 생성 시점에서 스위칭된다. 이후 상기 제 1 구성 부호기 410 및 제 2 구성 부호기 420에 출력되는 테일 비트에 의한 패리티 비트는 상기 제 2 천공기 480으로 출력되고, 테일 비트 생성기에서 생성한 테일 비트는 상기 제 3 스위치 493에 의해 스위치되어 정보 비트 Xk로 출력된다.Referring to FIG. 13, which is assumed to be a configuration of a parallel turbo encoder, the turbo code uses tail bits to terminate component encoders 410 and 420. At this time, since the constituent code of the turbo code is an organization code, the continuous input of 0 like the unstructured convolutional code does not initialize the memories 412-413 and 422-423 of the constituent encoders 410 and 420. However, the constituent encoders 410 and 420 keep the memory closest to the input to 0 by inputting a value equal to the sum of the feedback values to the input using the tail bit generator. Therefore, the turbo encoder requires as many tail bits as the number of memories of each component code. In FIG. 13, the switch 455 connected to the input terminal of the first component encoder 410 and the switch 465 connected to the input terminal of the second component encoder 420 are switched at the time of generating the tail bit. Thereafter, the parity bits of the tail bits output to the first component encoder 410 and the second component encoder 420 are output to the second puncturer 480, and the tail bits generated by the tail bit generator are switched by the third switch 493. Outputted with information bit Xk.

하드웨어 제작시 복잡도를 줄이기 위해 전송율을 2의 지수숭으로 만들어 주는 것이 좋다. 그러나 예를 들어 384kbps와 같은 데이터 전송율의 경우에는 부호율이 1/2인 터보 부호를 사용하면 전송율을 2의 지수승으로 만들 수 없다. 따라서 이러한 경우에는 부호율이 1/2인 터보 부호를 천공(puncturing)하여 만든 부호율이 3/8인 터보 부호를 사용하면 가능하다. 특히 144kbps 전송율의 경우에는 부호율이 1/2인 터보 부호를 천공하여 부호율을 9/16으로 만들어 준다. 여기서 하기 표 9 및 표 10은 9/16 천공 매트릭스의 예를 도시하고 있다.In order to reduce the complexity of the hardware production, it is good to make the transmission rate of two. However, in the case of a data rate such as 384 kbps, using a turbo code with a code rate of 1/2 cannot make the data rate an exponential power of two. Therefore, in such a case, it is possible to use a turbo code having a code rate of 3/8, which is formed by punching a turbo code having a code rate of 1/2. Especially for the 144kbps data rate, the turbo code with 1/2 code rate is punctured to make the code rate 9/16. Tables 9 and 10 below show examples of 9/16 perforation matrices.

[표 9]TABLE 9

[표 10]TABLE 10

상기 표 9 및 표 10에서 정보 비트는 입력되는 정보 비트 dk에 해당하며 제 1 천공기 470에 인가되며, RSC1은 제 1 구성 부호기 410에서 출력되는 패리티 비트로써 제 2 천공기 480에 인가된다. 이때 상기 표 9는 구성 부호기 410 및 420에서 출력하는 패리티 비트를 천공한 예를 도시하는 것으로, 이런 경우 패리티 비트에 해당하는 부분에서 연속적으로 0으로 나타나는 곳이 여러곳에 존재한다. 즉, 전송율을 맞추기 위해 패리티 비트를 천공하면 상기 표 9의 밑줄친 부분과 같이 패리티 비트에 해당하는 부분에서 연속적으로 0이 나타나는 곳이 존재한다. 그러나 본 발명의 실시예에서는 상기 구성 부호기 410 및 420은 메모리가 2개 뿐이기 때문에 패리티 비트를 연속적으로 두 개 이상 전송하지 않으면 치명적인 오류가 발생할 수 있다. 따라서 본 발명의 실시예에서는 상기 표 10과 같이 정보 비트를 천공한다. 상기 표 10은 상기 표 9와 동일한 9/16 천공 매트릭스이지만, 연속하여 두 개 이상의 패리티 비트를 전송하지 않는 경우가 없다. 그러나 정보 비트를 천공하였기 때문에 반복 복호 횟수가 작을 경우에는 성능이 좋지 않다. 하지만 반복 복호 횟수를 많이 하면 부가 정보를 이용하여 천공한 정보 비트를 거의 정확하게 예측할 수 있다.In Tables 9 and 10, the information bits correspond to the input information bits dk and are applied to the first puncturer 470, and RSC1 is applied to the second puncturer 480 as parity bits output from the first configuration encoder 410. In this case, Table 9 shows an example of puncturing the parity bits output from the constituent encoders 410 and 420. In this case, there are several places where zeros are continuously displayed in the portion corresponding to the parity bits. That is, when the parity bit is punctured to match the transmission rate, there is a place where zero appears continuously in the part corresponding to the parity bit as shown in the underlined part of Table 9. However, in the embodiment of the present invention, since the configuration encoders 410 and 420 have only two memories, a fatal error may occur if two or more parity bits are not transmitted consecutively. Therefore, in the embodiment of the present invention, the information bits are punctured as shown in Table 10 above. Table 10 is the same 9/16 puncturing matrix as Table 9, but does not transmit two or more parity bits in succession. However, since the information bits are punctured, the performance is not good when the number of iteration decoding is small. However, if the number of iterative decoding is large, the information bits can be predicted almost accurately using additional information.

상술한 바와 같이 본 발명의 실시예에 따른 터보 부호기의 내부에 존재하는 인터리버의 크기를 줄이고 터보 부호에 우수한 성능을 가지는 인터리버를 제시함으로써 시간 지연의 제약 때문에 통신 시스템의 음성 및 데이터 전송에 적용하지 못했던 터보 부호를 음성 및 데이터 전송에 이용할 수 있다. 또한 성능이 우수한 인터리버를 이용함으로써 상기 터보 부호기의 구성 부호기의 상태수를 줄임으로써 복호기의 복잡도를 줄일 수 있다.As described above, by reducing the size of the interleaver existing in the turbo encoder according to the embodiment of the present invention and presenting an interleaver having excellent performance in the turbo code, it is not applicable to voice and data transmission of a communication system due to the limitation of time delay. Turbo codes can be used for voice and data transmission. In addition, by using an interleaver with excellent performance, the complexity of the decoder can be reduced by reducing the number of states of the constituent encoder of the turbo encoder.

Claims (16)

가변 프레임 크기에 각각 대응되는 인터리빙의 행 및 열 정보들을 저장하는 테이블을 구비하여 입력되는 정보 비트를 대각 인터리빙하는 방법에 있어서,A method of diagonally interleaving input information bits having a table for storing row and column information of interleaving respectively corresponding to a variable frame size, the method comprising: 상기 정보 비트 입력시 대응되는 프레임 크기신호를 입력하는 과정과, 상기 테이블에서 입력 프레임 크기에 대응되는 행 및 열 정보를 결정하는 과정과,Inputting a frame size signal corresponding to the input of the information bit; determining row and column information corresponding to an input frame size in the table; 상기 행 및 열 정보에 따라 대응되는 프레임의 정보 비트들을 대각 인터리빙하여 출력하는 과정으로 이루어짐을 특징으로 대각 인터리빙 방법.Diagonally interleaving and outputting information bits of a corresponding frame according to the row and column information. 제 1 항에 있어서, 상기 대각 인터리빙하는 과정이 하기 수학식 1에 의해 수행되는 것을 특징으로 하는 대각 인터리빙 방법.The diagonal interleaving method of claim 1, wherein the diagonal interleaving is performed by Equation 1 below. [수학식 1][Equation 1] for(k=0; kM*N-1; k++)for (k = 0; kM * N-1; k ++) new addr[k] = (M-1-(kmodN)*N+(kmod N)new addr [k] = (M-1- (kmodN) * N + (kmod N) 상기 수학식 1에서 M 및 N은 프레임의 행 및 열 정보이고, k(=M*N)는 프레임 크기임.In Equation 1, M and N are row and column information of a frame, and k (= M * N) is a frame size. 제 1 항에 있어서, 상기 대각 인터리빙하는 과정이 하기 수학식 2에 의해 수행되는 것을 특징으로 하는 대각 인터리빙 방법.The method of claim 1, wherein the diagonal interleaving is performed by Equation 2. [수학식 2][Equation 2] for(j=0; jM; j++)for (j = 0; jM; j ++) for(i=0; iN; i++)for (i = 0; iN; i ++) new addr[i+j+N] = i+(M-1-(i+j)mod M))*Nnew addr [i + j + N] = i + (M-1- (i + j) mod M)) * N 상기 수학식 2에서 M 및 N은 프레임의 행 및 열 정보이고, M*N은 프레임 크기임.In Equation 2, M and N are row and column information of a frame, and M * N is a frame size. 제 1 항에 있어서, 상기 대각 인터리빙하는 과정이 하기 수학식 3에 의해 수행되는 것을 특징으로 하는 대각 인터리빙 방법.The method of claim 1, wherein the diagonal interleaving is performed by Equation 3 below. [수학식 3][Equation 3] for(j=0; jM; j++)for (j = 0; jM; j ++) for(i=0; iN; i++)for (i = 0; iN; i ++) new addr[i+j+N] = i+((i+j)mod M)*Nnew addr [i + j + N] = i + ((i + j) mod M) * N 상기 수학식 3에서 M 및 N은 프레임의 행 및 열 정보이고, M*N은 프레임 크기임.In Equation 3, M and N are row and column information of a frame, and M * N is a frame size. 가변 프레임 크기에 각각 대응되는 인터리빙의 홉 변수 및 스텝 변수 정보들을 저장하는 테이블을 구비하여 입력되는 정보 비트를 순환 인터리빙하는 방법에 있어서,A method of circularly interleaving an input information bit having a table storing hop variable and step variable information of interleaving corresponding to a variable frame size, respectively, 상기 정보 비트 입력시 대응되는 프레임 크기신호를 입력하는 과정과,Inputting a frame size signal corresponding to the information bit input; 상기 테이블에서 프레임 크기에 대응되는 홉 및 스텝 값을 결정하는 과정과,Determining hop and step values corresponding to the frame size in the table; 상기 결정된 홉 및 스텝 값에 따라 입력되는 프레임 정보 비트들을 호핑 및 쉬프팅 시켜 순환 인터리빙 출력하는 순환 인터리빙 방법.The cyclic interleaving method according to the determined hop and step value to hop and shift the input frame information bits to output the cyclic interleaving. 제 5 항에 있어서, 순환 인터리빙하는 과정이 하기 수학식 4에 의해 수행됨을 특징으로 하는 순환 인터리빙 방법.6. The cyclic interleaving method according to claim 5, wherein the cyclic interleaving process is performed by Equation 4. [수학식 4][Equation 4] for(i=0; iSIZE; i++)for (i = 0; iSIZE; i ++) new addr[i] = (p*i+STEP)mod SIZEnew addr [i] = (p * i + STEP) mod SIZE 상기 수학식 4에서 SIZE는 프레임 크기이고 p는 순환 인터리빙을 하기 위한 홉 변수이고 STEP는 호핑된 위치에서 쉬프팅시키기 위한 스텝 변수로서 정수임.In Equation 4, SIZE is a frame size, p is a hop variable for cyclic interleaving, and STEP is an integer as a step variable for shifting at a hopped position. 제 5 항에 있어서, 순환 인터리빙하는 과정이 하기 수학식 5에 의해 수행됨을 특징으로 하는 순환 인터리빙 방법.6. The cyclic interleaving method according to claim 5, wherein the cyclic interleaving process is performed by Equation 5. [수학식 5][Equation 5] d=gcd(P, SIZE);d = gcd (P, SIZE); for(k-j=0; jd; j++)for (k-j = 0; jd; j ++) for(i=0; iSIZE/d; i++, k++)for (i = 0; iSIZE / d; i ++, k ++) new addr[k] = ((P*i+STEP)+j)mod SIZEnew addr [k] = ((P * i + STEP) + j) mod SIZE 상기 수학식 5에서 SIZE는 프레임 크기이고 p는 순환 인터리빙을 하기 위한 홉 변수이고 STEP는 호핑된 위치에서 쉬프팅시키기 위한 스텝 변수로서 정수임.In Equation 5, SIZE is a frame size, p is a hop variable for cyclic interleaving, and STEP is an integer as a step variable for shifting at a hopped position. 터보 부호화 장치에 있어서,In the turbo encoding device, 적어도 2개 이상 구비하며, 입력 정보 비트를 부호화하는 구성 부호기들과, 가변 프레임 크기에 각각 대응되는 행 및 열 정보를 저장하는 테이블을 구비하며, 전송되는 프레임 크기에 대응되는 행 및 열 정보를 설정한 후 상기 행 및 열 정보에 따라 대응되는 프레임의 정보 비트들을 대각 인터리빙하여 상기 적어도 한 구성 부호기의 입력단에 연결하는 대각 인터리버로 구성된 것을 특징으로 하는 터보 부호화 장치.At least two components, comprising constituent encoders encoding input information bits, a table for storing row and column information corresponding to variable frame sizes, and setting row and column information corresponding to a transmitted frame size. And a diagonal interleaver configured to diagonally interleave information bits of a corresponding frame according to the row and column information, and connect the information bits to an input terminal of the at least one component encoder. 제 8 항에 있어서, 상기 대각 인터리버가,The method of claim 8, wherein the diagonal interleaver, 입력 정보 비트의 프레임 크기에 대응되어 대각 인터리빙하기 위한 행 및 열 정보를 저장하는 대각 인터리빙 테이블과,A diagonal interleaving table for storing row and column information for diagonal interleaving corresponding to the frame size of the input information bits; 상기 행 및 열 정보에 따라 대응되는 프레임의 정보 비트들을 하기 수학식 6에 의해 대각 인터리빙하기 위한 리드 어드레스를 발생하는 대각 인터리빙 제어기와,A diagonal interleaving controller for generating a read address for diagonally interleaving information bits of a corresponding frame according to the row and column information according to Equation 6 below; 상기 입력 정보 비트들을 순차적으로 저장하며, 상기 리드 어드레스에 의해 저장 정보 비트들을 대각 인터리빙 출력하는 메모리로 구성된 것을 특징으로 하는 터보 부호화 장치.And a memory configured to sequentially store the input information bits and to diagonally interleave the stored information bits by the read address. [수학식 6][Equation 6] for(k=0; kM*N-1; k++)for (k = 0; kM * N-1; k ++) new addr[i] = (M-1-(kmodN)*N+(kmod N)new addr [i] = (M-1- (kmodN) * N + (kmod N) 상기 수학식 6에서 M 및 N은 프레임의 행 및 열 정보이고, k(=M*N)는 프레임 크기임.In Equation 6, M and N are row and column information of a frame, and k (= M * N) is a frame size. 제 8 항에 있어서, 상기 대각 인터리버가,The method of claim 8, wherein the diagonal interleaver, 입력 정보 비트의 프레임 크기에 대응되어 대각 인터리빙하기 위한 행 및 열 정보를 저장하는 대각 인터리빙 테이블과,A diagonal interleaving table for storing row and column information for diagonal interleaving corresponding to the frame size of the input information bits; 상기 행 및 열 정보에 따라 대응되는 프레임의 정보 비트들을 하기 수학식 7에 의해 대각 인터리빙하기 위한 리드 어드레스를 발생하는 대각 인터리빙 제어기와,A diagonal interleaving controller for generating a read address for diagonally interleaving information bits of a corresponding frame according to the row and column information according to Equation 7 below; 상기 입력 정보 비트들을 순차적으로 저장하며, 상기 리드 어드레스에 의해 저장 정보 비트들을 대각 인터리빙 출력하는 메모리로 구성된 것을 특징으로 하는 터보 부호화장치.And a memory configured to sequentially store the input information bits and to diagonally interleave the stored information bits by the read address. [수학식 7][Equation 7] for(j=0; jM; j++)for (j = 0; jM; j ++) for(i=0; iN; i++)for (i = 0; iN; i ++) new addr[i+j+N] = i+(M-1-(i+j)mod M))*Nnew addr [i + j + N] = i + (M-1- (i + j) mod M)) * N 상기 수학식 7에서 M 및 N은 프레임의 행 및 열 정보이고, k(=M*N)는 프레임 크기임.In Equation 7, M and N are row and column information of a frame, and k (= M * N) is a frame size. 제 8 항에 있어서, 상기 대각 인터리버가,The method of claim 8, wherein the diagonal interleaver, 입력 정보 비트의 프레임 크기에 대응되어 대각 인터리빙하기 위한 행 및 열 정보를 저장하는 대각 인터리빙 테이블과,A diagonal interleaving table for storing row and column information for diagonal interleaving corresponding to the frame size of the input information bits; 상기 행 및 열 정보에 따라 대응되는 프레임의 정보 비트들을 하기 수학식 8 의해 대각 인터리빙하기 위한 리드 어드레스를 발생하는 대각 인터리빙 제어기와,A diagonal interleaving controller for generating a read address for diagonally interleaving the information bits of a corresponding frame according to the row and column information; 상기 입력 정보 비트들을 순차적으로 저장하며, 상기 리드 어드레스에 의해 저장 정보 비트들을 대각 인터리빙 출력하는 메모리로 구성된 것을 특징으로 하는 터보 부호화장치.And a memory configured to sequentially store the input information bits and to diagonally interleave the stored information bits by the read address. [수학식 8][Equation 8] for(j=0; jM; j++)for (j = 0; jM; j ++) for(i=0; iN; i++)for (i = 0; iN; i ++) new addr[i+j+N] = i+((i+j)mod M)*Nnew addr [i + j + N] = i + ((i + j) mod M) * N 상기 수학식 8에서 M 및 N은 프레임의 행 및 열 정보이고, k(=M*N)은 프레임 크기임.In Equation 8, M and N are row and column information of a frame, and k (= M * N) is a frame size. 터보 부호화 장치에 있어서,In the turbo encoding device, 적어도 2개 이상 구비하며, 입력 정보 비트를 부호화하는 구성 부호기들과,At least two component encoders for encoding input information bits; 가변 프레임 크기에 각각 대응되는 홉 및 스텝 정보를 저장하는 테이블을 구비하며, 전송되는 프레임 크기에 대응되는 홉 및 스텝 정보를 설정한 후 상기 홉 및 스텝 정보에 따라 대응되는 프레밍의 정보 비트들을 순환 인터리빙하여 상기 적어도 한 구성 부호기의 입력단에 연결하는 순환 인터리버로 구성된 것을 특징으로 하는 터보 부호화 장치.And a table for storing hop and step information corresponding to the variable frame size, and setting hop and step information corresponding to the transmitted frame size, and then circularly interleaving information bits of corresponding framing according to the hop and step information. And a cyclic interleaver connected to an input of the at least one constituent encoder. 제 12 항에 있어서, 상기 순환 인터리버가,The method of claim 12, wherein the cyclic interleaver, 입력 정보 비트의 프레임 크기에 대응되어 순환 인터리빙하기 위한 홉 및 스텝 정보를 저장하는 순환 인터리빙 테이블과,A cyclic interleaving table for storing hop and step information for cyclic interleaving corresponding to the frame size of the input information bits; 상기 홉 및 스텝 정보에 따라 대응되는 프레임의 정보 비트들을 하기 수학식 9에 의해 순환 인터리빙하기 위한 리드 어드레스를 발생하는 순환 인터리빙 제어기와,A cyclic interleaving controller for generating a read address for cyclic interleaving of information bits of a corresponding frame according to the hop and step information according to Equation (9); 상기 입력 정보 비트들을 순차적으로 저장하며, 상기 리드 어드레스에 의해 저장 정보 비트들을 순환 인터리빙 출력하는 메모리로 구성된 것을 특징으로 하는 터보 부호화 장치.And a memory configured to sequentially store the input information bits and to cyclically interleave the stored information bits by the read address. [수학식 9][Equation 9] for(i=0; iSIZE; i++)for (i = 0; iSIZE; i ++) new addr[k] = (p*i+STEP)mod SIZEnew addr [k] = (p * i + STEP) mod SIZE 상기 수학식 9에서 SIZE는 프레임 크기이고 p는 순환 인터리빙을 하기 위한 홉 변수이고 STEP는 호핑된 위치에서 쉬프팅시키기 위한 스텝 변수로서 정수임.In Equation 9, SIZE is a frame size, p is a hop variable for cyclic interleaving, and STEP is an integer as a step variable for shifting at a hopping position. 제 12 항에 있어서, 상기 순환 인터리버가,The method of claim 12, wherein the cyclic interleaver, 입력 정보 비트의 프레임 크기에 대응되어 순환 인터리빙하기 위한 홉 및 스텝 정보를 저장하는 순환 인터리빙 테이블과,A cyclic interleaving table for storing hop and step information for cyclic interleaving corresponding to the frame size of the input information bits; 상기 홉 및 스텝 정보에 따라 대응되는 프레임의 정보 비트들을 하기 수학식 10에 의해 순환 인터리빙하기 위한 리드 어드레스를 발생하는 순환 인터리빙 제어기와,A cyclic interleaving controller for generating a read address for cyclic interleaving of information bits of a corresponding frame according to the hop and step information according to Equation 10 below; 상기 입력 정보 비트들을 순차적으로 저장하며, 상기 리드 어드레스에 의해 저장 정보 비트들을 순환 인터리빙 출력하는 메모리로 구성된 것을 특징으로 하는 터보 부호화장치.And a memory configured to sequentially store the input information bits and to cyclically interleave the stored information bits by the read address. [수학식 10][Equation 10] d=gcd(P, SIZE);d = gcd (P, SIZE); for(k-j=0; jd; j++)for (k-j = 0; jd; j ++) for(i=0; iSIZE/d; i++, k++)for (i = 0; iSIZE / d; i ++, k ++) new addr[k] = ((P*i+STEP)+j)mod SIZEnew addr [k] = ((P * i + STEP) + j) mod SIZE 상기 수학식 10에서 SIZE는 프레임 크기이고 p는 순환 인터리빙을 하기 위한 홉 변수이고 STEP는 호핑된 위치에서 쉬프팅시키기 위한 스텝 변수로서 정수임.In Equation 10, SIZE is a frame size, p is a hop variable for cyclic interleaving, and STEP is an integer as a step variable for shifting at a hopped position. 터보 부호화 장치에 있어서,In the turbo encoding device, 적어도 2개 이상 구비하며, 입력 정보 비트를 부호화하는 구성 부호기들과,At least two component encoders for encoding input information bits; 전송되는 프레임 크기에 대응되는 프레임의 정보 비트들을 인터리빙하여 상기 적어도 한 구성 부호기의 입력단에 연결하는 인터리버와,An interleaver for interleaving information bits of a frame corresponding to the transmitted frame size and connecting the input bits to the input terminal of the at least one component encoder; 상기 구성 부호기들에 대응되는 수로 구비되며, 상기 프레임 종료시 상기 구성 부호기들의 입력을 차단한 후 상기 구성 부호기들의 메모리소자 값을 분석하여 입력 프레임 데이타의 프레임을 종단시키기 위한 테일 비트를 발생하는 테일비트 생성기들로 구성된 것을 특징으로 하는 터보 부호화 장치.A tail bit generator provided with a number corresponding to the constituent encoders and generating tail bits for terminating the frame of the input frame data by cutting off the input of the constituent encoders at the end of the frame and analyzing a memory element value of the constituent encoders; Turbo coding device, characterized in that consisting of. 터보 부호화 장치에 있어서,In the turbo encoding device, 적어도 2개 이상 구비하며, 입력 정보 비트를 부호화하는 구성 부호기들과,At least two component encoders for encoding input information bits; 전송되는 프레임 크기에 대응되는 프레임의 정보 비트들을 인터리빙하여 상기 적어도 한 구성 부호기의 입력단에 연결하는 인터리버와,An interleaver for interleaving information bits of a frame corresponding to the transmitted frame size and connecting the input bits to the input terminal of the at least one component encoder; 상기 구성 부호기들에 대응되는 수로 구비되며, 상기 프레임 종료시 상기 구성 부호기들의 입력을 차단한 후 상기 구성 부호기들의 메모리소자 값을 분석에 따라 상기 메모리소자들을 초기화시키는 동시에 입력 프레임 데이타의 프레임을 종단시키기 위한 테일비트를 발생하는 테일비트 생성기들과,A number corresponding to the constituent encoders, and after the input of the constituent encoders is interrupted at the end of the frame, the memory elements of the constituent encoders are initialized based on the analysis of the memory element values, and at the same time the terminal of the input frame data is terminated. Tailbit generators generating tailbits, 상기 입력 정보 비트들을 설정된 비율로 천공하며, 상기 프레임 종료시 상기 테일비트 생성기들에서 출력되는 테일비트를 프레임 종단 신호로 삽입하여 출력하는 제 1 천공기와,A first puncturer for puncturing the input information bits at a set ratio, and inserting and outputting tail bits output from the tail bit generators as a frame termination signal at the end of the frame; 상기 구성 부호기들의 출력을 입력한 후 설정된 비율로 천공하여 부호화된 데이타의 전송율을 조정하는 제 2 천공기로 구성된 것을 특징으로 하는 터보 부호화 장치.And a second puncturer configured to adjust the transmission rate of the encoded data by puncturing at a predetermined rate after inputting the outputs of the constituent encoders.
KR1019970060101A 1997-07-30 1997-11-10 Adaptive Channel Coding Method and Apparatus KR100454952B1 (en)

Priority Applications (16)

Application Number Priority Date Filing Date Title
KR1019970036365A KR19990012821A (en) 1997-07-31 1997-07-31 Electromagnetic wave absorber composition and its manufacturing method, electromagnetic wave absorbing coating composition, its manufacturing method and its coating method
EP98935383A EP0997031B1 (en) 1997-07-30 1998-07-30 Adaptive channel encoding method and device
RU2000102353A RU2193276C2 (en) 1997-07-30 1998-07-30 Method and device for adaptive channel coding
EP05016017A EP1601109B1 (en) 1997-07-30 1998-07-30 Adaptive channel encoding method and device
BR9811299-6A BR9811299A (en) 1997-07-30 1998-07-30 Turbo encoder, channel encoding device, and, diagonal interleaving, circular displacement interleaving, and channel encoding processes for use in a channel encoder
CN 02147194 CN1256812C (en) 1997-07-30 1998-07-30 Engine encoder and channel encoding method
CNB988073528A CN1150680C (en) 1997-07-30 1998-07-30 Adaptive channel encoding method and device
DE69838451T DE69838451T2 (en) 1997-07-30 1998-07-30 PROCESS AND SWITCHING FOR ADAPTIVE CHANNEL CODING
CA002295791A CA2295791C (en) 1997-07-30 1998-07-30 Adaptive channel encoding method and device
ES98935383T ES2290990T3 (en) 1997-07-30 1998-07-30 ADAPTIVE CHANNEL CODING METHOD AND DEVICE.
JP2000505687A JP3492632B2 (en) 1997-07-30 1998-07-30 Applicable channel coding method and apparatus
DE69841631T DE69841631D1 (en) 1997-07-30 1998-07-30 Method and apparatus for adaptive channel coding
ES05016017T ES2344299T3 (en) 1997-07-30 1998-07-30 METHOD AND DEVICE FOR ADAPTIVE CHANNEL CODING.
US09/126,250 US6289486B1 (en) 1997-07-30 1998-07-30 Adaptive channel encoding method and device
PCT/KR1998/000232 WO1999007076A2 (en) 1997-07-30 1998-07-30 Adaptive channel encoding method and device
JP2003278667A JP3730238B2 (en) 1997-07-30 2003-07-23 Adaptive channel coding method and apparatus

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR19970036265 1997-07-30
KR1019970036265 1997-07-30
KR1997-36265 1997-07-30

Publications (2)

Publication Number Publication Date
KR19990013245A true KR19990013245A (en) 1999-02-25
KR100454952B1 KR100454952B1 (en) 2005-04-06

Family

ID=66094101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970060101A KR100454952B1 (en) 1997-07-30 1997-11-10 Adaptive Channel Coding Method and Apparatus

Country Status (1)

Country Link
KR (1) KR100454952B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100320220B1 (en) * 2000-02-26 2002-01-10 구자홍 Serially concatenated convolutional encoding method
KR101353094B1 (en) * 2012-04-18 2014-01-17 주식회사 코메스타 Interleaving Method for error correction codes and information transmitter-receiver system using thereof
CN111130572A (en) * 2020-01-06 2020-05-08 西南电子技术研究所(中国电子科技集团公司第十研究所) Turbo code quick realizing method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102265519B (en) 2009-01-09 2014-08-27 Lg电子株式会社 Apparatus for transmitting and receiving signal and method of transmitting and receiving signal

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100320220B1 (en) * 2000-02-26 2002-01-10 구자홍 Serially concatenated convolutional encoding method
KR101353094B1 (en) * 2012-04-18 2014-01-17 주식회사 코메스타 Interleaving Method for error correction codes and information transmitter-receiver system using thereof
CN111130572A (en) * 2020-01-06 2020-05-08 西南电子技术研究所(中国电子科技集团公司第十研究所) Turbo code quick realizing method
CN111130572B (en) * 2020-01-06 2024-04-23 西南电子技术研究所(中国电子科技集团公司第十研究所) Turbo code quick realizing method

Also Published As

Publication number Publication date
KR100454952B1 (en) 2005-04-06

Similar Documents

Publication Publication Date Title
JP3730238B2 (en) Adaptive channel coding method and apparatus
US6289486B1 (en) Adaptive channel encoding method and device
CA2363410C (en) Highly parallel map decoder
JP4298170B2 (en) Partitioned deinterleaver memory for map decoder
US6772391B1 (en) Hybrid interleaver for turbo codes
US6298463B1 (en) Parallel concatenated convolutional coding
WO1998011671A1 (en) An improved system for coding signals
US20040139378A1 (en) Method and apparatus for error control coding in communication systems using an outer interleaver
KR20000074862A (en) Interleaving apparatus and method for serially concatenated convolution code in a mobile telecommunication system
US6434203B1 (en) Memory architecture for map decoder
US6487694B1 (en) Method and apparatus for turbo-code decoding a convolution encoded data frame using symbol-by-symbol traceback and HR-SOVA
CA2346830C (en) Hybrid interleaver for turbo codes
JP2001257600A (en) Encoding method, encoding device, decoding method, decoding device and system using them
KR100454952B1 (en) Adaptive Channel Coding Method and Apparatus
US20020172292A1 (en) Error floor turbo codes
JP2005167513A (en) Decoding device and decoding method
KR100317377B1 (en) Encoding and decoding apparatus for modulation and demodulation system
KR19990017546A (en) Decoder of turbo encoder
EP1347580A2 (en) Hybrid interleaver for turbo codes
Abou-El-Azm et al. Improving the transmission efficiency in the mobile communication systems using turbo codes
KR20010059446A (en) Method for interleaving using magic matrix
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
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120927

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130927

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150925

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 14