[go: up one dir, main page]

KR100454952B1 - Adaptive Channel Coding Method and Apparatus - Google Patents

Adaptive Channel Coding Method and Apparatus Download PDF

Info

Publication number
KR100454952B1
KR100454952B1 KR1019970060101A KR19970060101A KR100454952B1 KR 100454952 B1 KR100454952 B1 KR 100454952B1 KR 1019970060101 A KR1019970060101 A KR 1019970060101A KR 19970060101 A KR19970060101 A KR 19970060101A KR 100454952 B1 KR100454952 B1 KR 100454952B1
Authority
KR
South Korea
Prior art keywords
bits
encoder
tail
input information
component
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
KR1019970060101A
Other languages
Korean (ko)
Other versions
KR19990013245A (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 EP05016017A priority patent/EP1601109B1/en
Priority to CA002295791A priority patent/CA2295791C/en
Priority to US09/126,250 priority patent/US6289486B1/en
Priority to DE69841631T priority patent/DE69841631D1/en
Priority to JP2000505687A priority patent/JP3492632B2/en
Priority to RU2000102353A priority patent/RU2193276C2/en
Priority to CNB988073528A priority patent/CN1150680C/en
Priority to ES98935383T priority patent/ES2290990T3/en
Priority to CN 02147194 priority patent/CN1256812C/en
Priority to ES05016017T priority patent/ES2344299T3/en
Priority to EP98935383A priority patent/EP0997031B1/en
Priority to BR9811299-6A priority patent/BR9811299A/en
Priority to PCT/KR1998/000232 priority patent/WO1999007076A2/en
Priority to DE69838451T priority patent/DE69838451T2/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
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (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 parallel or in a serial structure, the apparatus comprising: a first component encoder for encoding input information bits and an input information bit according to a set rule; An interleaver composed of a memory and an index generator, a second component encoder for encoding the output of the interleaver, a first terminal device for terminating a frame of input and output information bits of the first component encoder and the second component encoder, A second end device, a tail bit storage device for storing and outputting tail bits used at the end of the frame, and a controller, a switch, and an information bit for controlling this process are punctured to adjust the code rate.

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 Systemic 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. And the recursive systemic convolutional code of the turbo coder is used.

도 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 illustrating a configuration of a turbo encoder having a conventional parallel structure, which is disclosed in US Pat. No. 5,446,747 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 a turbo code that has been used in space-space communication, and the constituent coders 11 and 13 are smaller in length than the convolutional code in which the constraint length K is K = 9, but the interleaver The memory used for 12 is very large. Therefore, the time delay during decoding is also very large.

상기 도1과 같은 병렬 구조의 터보 부호기의 출력을 복호하는 터보 복호기는 도3과 같은 구성을 가지며, 상기 Berrow에 의해 발명된 미합중국 특허 제 5,446,747호에 개시되어 있다. 그리고 상기 도2와 같은 직렬 구조의 터보 부호기의 출력을 복호하는 터보 복호기는 도4와 같은 구성을 가지며, Benedetto가 발표한 논문에 개시되어 있다.(IEEE Electronics Letters, June 1996, Vol.32 No.13)The turbo decoder which decodes the output of the turbo encoder of the parallel structure as shown in FIG. 1 has the configuration as shown in FIG. 3 and is disclosed in US Patent No. 5,446,747 invented by Berrow. 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 disclosed 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) has the advantage of gradually improving performance. In addition, the interleaver 323 distributes the uncorrected congestion error pattern in the first decoder 319 and then makes corrections 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 Vehicular 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 Vehicular 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 modified to output a soft decision value in the Viterbi algorithm, thereby minimizing an error in a 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를 경판정한 값이 최종적으로 원하는

Figure pat00002
가 된다. 상기 터보 부호의 성능은 인터리버의 크기, 인터리버의 구조 및 반복 복호 횟수에 따라 성능이 결정된다.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. 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 is finally desired.
Figure pat00002
Becomes 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 basis when encoding and decoding a turbo code. Therefore, as shown in FIG. 3, the frame size of the memory required for the first repeater 319 and the second repeater 327 is proportional to the product of the number of states of the constituent 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과 같은 구조를 갖는 복호기에서 연집 오류가 발생하였을 경우, 상기 제1 반복 복호기 319의 출력은 상관(correlation)을 가지게 되고, 다음 단계의 복호 과정에서 두 번째 복호기인 제2 반복 복호기 327는 상관된 입력으로 인해 올바른 복호를 할 수 없게 된다. 따라서 전체 블록은 오류가 존재하며, 이것은 다음 반복 복호 과정에서도 정정할 수 없게 된다. 그러므로 반복 복호를 수행하는 부호에서는 한 프레임 내의 연집 오류를 상관이 없도록 잘 분산 시킬 수 있는 인터리버 및 디인터리버(도 1의 12, 도 2의 12, 도 3의 323, 도 3의 331, 도 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 of FIG. 1, 12 of FIG. 2, 323 of FIG. 3, 331 of FIG. 3, and 4 of FIG. 12, 13) of FIG. 4 is 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 does not matter. Therefore, in the case of voice transmission or data transmission with low data rate, a frame size and a structured interleaver with a small number of states of the component code and minimum time delay should be used. Therefore, it is very difficult to transmit voice and multimedia data 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의 크기가 클수록 우수한 성능을 가진다. 그러나 터보 부호에서는 프레임 크기를 증가시키는 데에는 한계가 있다. 이런 경우에는 터보 부호를 블록 부호의 관점에서 보아 터보 부호의 최소 해밍 거리(minimum 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, but does not have high complexity, an interleaver having excellent performance while minimizing time delay and minimizing time delay should be used. 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 this case, it is advantageous to use an interleaver that makes the turbo code the minimum Hamming distance of the turbo code from the point of view of the 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 diagonal interleaver method 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 cyclic interleaver method capable of interleaving regardless of the size of a data frame input in a communication system.

본 발명의 또 다른 목적은 통신 시스템에서 입력되는 데이터 프레임의 크기에 상관없이 인터리빙을 할 수 있는 대각 인터리버를 이용하는 병렬 구조 혹은 직렬 구조의 터보 부호화 방법 및 장치를 제공함에 있다.It is still another object of the present invention 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 a data frame input in a communication system.

본 발명의 또 다른 목적은 음성 및 데이터 신호를 터보 부호로 부호화하는 장치에서 테일 비트와 테일 비트에 의해 생성되는 패리티 비트들을 채널로 전송할 수 있는 방법 및 장치를 제공함에 있다.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 the input terminal of at least one of the constituent 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 And an interleaver connected to an output terminal, and a tail bit generator connected to an input / output terminal of the component encoders and generating tail bits for terminating the component encoders at the end of frame data and inputting the tail bits to the corresponding component encoders, respectively.

또한 상기 목적을 달성하기 위한 본 발명의 실시예에 따라 반복 복호 알고리듬을 사용하는 복호기를 구비하는 통신 시스템의 부호화 장치가 입력되는 정보 비트를 부호화하는 적어도 두개의 구성 부호기들과, 입력 정보를 인터리빙한 후 상기 부호기들 중 적어도 한 구성 부호기의 출력단에 연결하는 인터리버와, 상기 입력 정보 및 패리티 심볼의 전송율을 조정하기 위하여 상기 입력 정보를 천공하는 천공기로 구성된 것을 특징으로 한다.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 스위치와 테일 비트 발생기를 구비하며; 테일 비트 발생기의 테일 비트들을 전송 채널로 전송하기 위한 Ell일 비트 저장 장치 및 제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 component encoder for encoding the 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 component encoder for encoding the output of the interleaver; A first switch and a second switch and a tail bit generator connected to input terminals of the first component encoder and the second component encoder; An all 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 configured to generate tail bits for terminating the first component encoder and input the tail bits to the first component encoder; A second tail bit generator which generates a tail bit for terminating the first component encoder and inputs 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.

본 발명의 실시예에서는 설명의 편의를 위해 병렬 쇄상 순환 구조를 갖는 터보 부호기의 구성을 예로들어 설명하기로 한다. 도 5 및 도 6은 본 발명의 실시예에 따른 터보 부호기의 구성을 도시하는 도면으로서, 부호기 410 및 420은 구성 부호기를 사용하는 것으로 가정하며, 상기 부호기 410 및 420은 상기 도 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 encoders 410 and 420 use a component encoder, and the encoders 410 and 420 of FIG. 1 and FIG. Parity symbol Y k is generated by encoding the received information bit d k together with the constituent encoder. 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. The interleaver 430 uses an interleaver in which a minimum Hamming distance of a sequence (X k , Y k ) output after the input information bit d k is encoded in the case of optimal interleaving is maximized. 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 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 are not related to the improvement of the performance of the system, the fewer are better. Therefore, the interleaver 430 should perform 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 optimal interleaving operation according to the analysis result. 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, in the turbo encoder, when the interleaving method is fixedly used as a diagonal interleaving or a cyclic interleaving method, the interleaving method may be configured separately. The diagonal interleaver 432 and the cyclic interleaver 434 will be referred to as an 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에 저장한다. 상기 순환 인터리빙 테이블515는 상기 레지스터 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 information bits 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 STEP which may have optimal cyclic interleaving characteristics according to the frame size of the information bit 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 515 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 interleaver type signal is not used. In addition, when the cyclic interleaver 434 is implemented alone 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, and the interleaver type signal is not used here.

상기 도 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 or 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 by 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.

상기 도 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 값을 설정한다. 그리고 615단계에서 상기 M 및 N 값의 최대 공약수가 1[gcd (M,N)=1]인가 검사한다. 이때 상기 M 및 N의 최대 공약수가 1인 경우에는 617단계에서 하기 <수학식 1>과 같은 방법으로 제1 대각 인터리빙의 어드레스를 연산한다.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 input, the information is stored in the address old_addr [k] for sequentially storing the information bit 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. 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]

Figure pat00003
Figure pat00003

상기 <수학식 1>과 같이 출력 버퍼의 어드레스를 지정하여 상기 입력 버퍼에 저장된 입력 정보 비트를 인터리빙하여 출력 버퍼에 저장한다.As shown in Equation 1, 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.

그러나 상기 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 is shown in Table 1.

[표 1]TABLE 1

Figure pat00004
Figure pat00004

그러나, 위의 제1 대각 인터리빙은 최대 공약수(M,N)=1 인 경우에만 만들 수 있다. 그러나 최대 공약수(M,N)≠1인 M=6, N=6인 경우를 가정하면, 하기 <표 2>와 같이 인터리빙이 전혀 되지않고 동일한 데이터를 덮어 본 결과를 얻게되는 단점이 있다.However, the above first diagonal interleaving can be made only when the greatest common divisor (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 the same data is obtained 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 both the case where the greatest common divisor of M and N is 1 and not 1. Diagonal interleaving. Referring to the second diagonal interleaving, when the information bit d K 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, the 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]

Figure pat00006
Figure pat00006

상기 <수학식 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

Figure pat00007
Figure pat00007

또한, 최대 공약수(M,N)≠1인 M=6, N=6인 경우에도 하기 <표 4>와 인터리빙이 제대로 이루어짐을 알 수 있다.In addition, it can be seen that interleaving is performed properly with Table 4 below 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 in Equation 3 below.

[수학식 3][Equation 3]

Figure pat00009
Figure pat00009

위의 대각 인터리버 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.

디인터리빙 과정은 수신된 데이터를 인터리버에서 사용한 방법의 역순으로 하면 된다.The deinterleaving process may be performed in the reverse order of the method used in 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. The first cyclic interleaving method according to an embodiment of the present invention is a method of viewing an input sequence as one or more circles and reading and writing data at regular intervals, and 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, when the information bit d K is input, in step 711, information is stored in the address old_addr [k] of the input buffer 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 calculating the p variable and the STEP variable as described above, it is checked in step 715 that 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]

Figure pat00010
Figure pat00010

상기 <수학식 4>에서 i 변수는 인터리빙할 프레임 데이타 크기의 수를 나타내는 변수로써, 0에서 SIZE 수(어드레스 갯수) 까지 변하는 변수이다. 또한 상기 SIZE는 순환크기로써, 전체 데이타 프레임의 크기보다 같거나 작게 설정한다. p는 최대 공약수(SIZE,p)=1을 만족하는 임의의 자연수이며, STEP은 정수이며 초기 시작점이다.In Equation 4, the i variable is a variable representing the number of frame data sizes to be interleaved and varies from 0 to SIZE (address number). In addition, the SIZE is a circular size and is set equal to or smaller than the size of the entire data frame. p is any natural number that satisfies the greatest common divisor (SIZE, p) = 1. STEP is an integer and is the initial starting point.

여기서 최초 입력 버퍼 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]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}, the sequence stored in the buffer new_addr [k] after the first cyclic interleaving with p = 11 and STEP = 0 is set 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}가 된다. 위의 저장된 값을 M*N 행렬로 표현하면, 하기 <표 5>와 같다.= {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 above stored values are expressed in an M * N matrix, they are shown in Table 5 below.

[표 5]TABLE 5

그러나, 최대 공약수(SIZE,p)≠1인 p=6을 이용할 경우, 상기 도 10과 같은 제1순환 인터리빙을 하면 인터리빙이 되지는 않고, 동일한 주소에 데이터를 덮어쓰는 오류가 생기게 된다.However, when using p = 6 having a maximum common divisor (SIZE, p) ≠ 1, the first cyclic interleaving as shown in FIG. 10 does not result in interleaving and 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, a sequence of SIZE = 30 stored in the sequential address old_addr [k] of the first memory is input, and assuming that p = 11 and STEP = 0, the first cyclic interleaving method as shown in FIG. The result of interleaving 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 순환 인터리빙 방식은 입력 시퀀스를

Figure pat00013
의 행렬로 보고, 열로는 제1순환 인터리빙 방법을 사용하고 행으로는 블록 인터리빙 방법을 사용하는 방식이다.In order to compensate for the drawbacks of the first cyclic interleaving scheme as described above, a second cyclic interleaving scheme capable of interleaving even when the maximum common divisor (SIZE, p) ≠ 1 is illustrated in FIG. 11. The second cyclic interleaving scheme illustrated in FIG. 11 uses an input sequence.
Figure pat00013
In the matrix, the first cycle interleaving method is used as a column, and the block interleaving method is used as a row.

두번째로 도 11은 제2 순환 인터리빙의 동작을 나타내는 흐름도로써, P와 SIZE 변수의 최대 공약수가 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 변수 만큼 좌측 우측으로 쉬프트시키기 위한 변수이다.Secondly, 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 SIZE 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. The SIZE is a variable representing the size of input data to be interleaved. 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, i and k are variables representing numbers 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 shifting left and right by the STEP variable at the position determined by the hop variable P.

[수학식 5][Equation 5]

Figure pat00014
Figure pat00014

상기 <수학식 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 data frame to be interleaved, 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 an M * N matrix, as shown in Table 7 below.

[표 7]TABLE 7

Figure pat00015
Figure pat00015

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

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

도 12는 병렬 쇄상 구조에 대하여 본 발명의 실시예에서 사용한 순환 인터리버의 성능을 도시하는 도면으로, 구성 부호의 구속장 K=3이고, 입력 프레임 크기는 104비트, 반복 복호 횟수는 8회, BPSK 변조 방식, AWGN(Additive White Gaussian Noise)환경에서의 시뮬레이션 결과에 대한 BER(Bit Error Rate) 특성을 도시하고 있다. 일반적으로 널리 이용되는 블록 인터리버 및 랜덤 인터리버의 시뮬레이션 결과와 비교를 하였다. 상기 도 12에 도시된 바와 같이 10-5 BER에서 순환 인터리버의 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 about 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 component encoder 410 encodes and outputs an input information bit, and illustrates a case in which a 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 schemes or the first to second cyclic interleaving schemes may be implemented. The second component encoder 420 encodes and outputs the output of the interleaver 430, and exemplifies 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은 프레임 종료시 상기 제2스위치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 component encoder 410, an exclusive oragate 451 for exclusively ORing the outputs of the memory elements 412 and 413 of the first component encoder 410; The bit generator 453 initializes the memory of the first component encoder 410 and generates a frame termination signal to be applied to the first switch 455 according to the output of the exclusion unit oragate 451. At the end of the frame, the first tail bit generator 450 is connected to the first component encoder 410 to initialize the memory elements of the first component encoder 410 and simultaneously generate a frame termination signal. The second tail bit generator 460 includes: a second switch 465 connected to an input terminal of the first component encoder 420, an exclusive ora gate 461 exclusively ORing the outputs of the memory elements 422 and 423 of the first component encoder 420; The bit generator 463 is configured to initialize the memory of the first component encoder 420 and generate a frame termination signal to be applied to the second switch 465 according to the output of the exclusive unit or gate 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 simultaneously 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 component encoder 410 and the second component encoder 420 and punctures the encoded data. The first puncturer 470 and the second puncturer 480 perform a function for adjusting the data transmission rate. The multiplexer 491 inputs the outputs of the bit generators 453 and 463 and multiplexes the two 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 puncher 470 and the second puncher 480 performs a function for adjusting and outputting the transmission rate in a standardized state.

병렬 구조 터보 부호기의 구성으로 가정한 상기 도3을 참조하면, 터보 부호는 구성 부호기 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. 3, which assumes 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 configuration 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 configuration coders 410 and 420. However, the constituent encoders 410 and 420 continue to make 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 data rate a power 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. Here, Tables 9 and 10 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 천공 매트릭스이지만, 연속하여 두 개 이상의 패리티 비트를 전송하지 않는 경우가 없다.Applied to the <Table 9> and <Table 10> In the information bits are applied to and corresponding to an input information bit d K first puncturer 470, RSC1 second perforator as parity bits output from the first constituent encoder 410 480 do. In this case, Table 9 shows an example of puncturing the parity bits output from the component encoders 410 and 420. In this case, there are several places where "0" appears continuously 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 " 0 " appears continuously in the part corresponding to the parity bit as 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. Table 10 is the same 9/16 puncturing matrix as Table 9, but does not transmit two or more parity bits in succession.

상술한 바와 같이 본 발명의 실시예에 따른 터보 부호기의 내부에 존재하는 인터리버의 크기를 줄이고 터보 부호에 우수한 성능을 가지는 인터리버를 제시함으로써 시간 지연의 제약 때문에 통신 시스템의 음성 및 데이터 전송에 적용하지 못했던 터보 부호를 음성 및 데이터 전송에 이용할 수 있다. 또한 성능이 우수한 인터리버를 이용함으로써 상기 터보 부호기의 구성 부호기의 상태수를 줄임으로써 복호기의 복잡도를 줄일 수 있다. 또한 본 발명의 실시예에서 설명한 바와 같이 입력정보를 천공하여 다양한 부호율를 제공할 수 있다.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. In addition, as described in the embodiment of the present invention, the input information may be punctured to provide various code rates.

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

도 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 a first embodiment of the present invention.

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

도 7은 본 발명의 제1실시예에 따른 터보 부호기에서 대각 인터리버 및 순환 인터리버의 구조를 도시하는 도면7 is a diagram showing the structure of a diagonal interleaver and a cyclic 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 an interleaver having the configuration as shown in FIG.

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

도 10은 도 7과 같은 구성을 갖는 인터리버의 구조에서 본 발명의 실시예에 따른 제1 순환 인터리빙 동작 과정을 도시하는 흐름도FIG. 10 is a flowchart illustrating a first 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.

도 11은 도 7과 같은 구성을 갖는 인터리버의 구조에서 본 발명의 실시예에 따른 제2 순환 인터리빙 동작 과정을 도시하는 흐름도FIG. 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 illustrates 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.

Claims (9)

제1구성 부호기와, 제2구성 부호기를 가지는 터보 부호화기에서의 채널 부호화 방법에 있어서,In the channel encoding method in a turbo encoder having a first component encoder and a second component encoder, 가변 입력 정보 비트들을 수신하고, 이를 정보 비트 열로 출력하는 과정과,Receiving the variable input information bits and outputting them to the information bit string; 상기 가변 입력 정보 비트들을 상기 제1구성 부호기로 입력하여 제1패리티 비트 열을 생성하는 과정과,Generating a first parity bit string by inputting the variable input information bits to the first component encoder; 상기 입력 정보 비트들을 인터리빙하는 과정과,Interleaving the input information bits; 상기 인터리빙한 입력 정보 비트들을 상기 제2구성 부호기로 입력하여 제2패리티 비트 열을 생성하는 과정과,Generating a second parity bit string by inputting the interleaved input information bits to the second component encoder; 상기 제1 및 제2구성 부호기 각각의 출력을 입력하고, 상기 입력에 의해 상기 제1 및 제2구성 부호기 각각에 대한 테일 비트들을 생성하는 과정을 포함하며,Inputting an output of each of the first and second constituent encoders, and generating tail bits for each of the first and second constituent encoders by the input, 여기서, 상기 제1 및 제2구성 부호기 각각을 구성하는 내부 메모리들은 상기 테일 비트들에 의해 초기화됨을 특징으로 하는 상기 방법.Wherein the internal memories constituting each of the first and second constituent encoders are initialized by the tail bits. 터보 부호화 장치에 있어서,In the turbo encoding device, 가변 입력 정보 비트들을 수신하는 수신 포트와,A receiving port for receiving variable input information bits; 상기 가변 입력 정보 비트들을 정보 비트 열로 출력하는 출력 포트와,An output port for outputting the variable input information bits to an information bit string; 미리 결정된 수의 지연 메모리들을 가지며, 상기 가변 입력 정보 비트들을 부호화하여 제1패리티 비트 열을 생성하는 제1구성 부호기와,A first component coder having a predetermined number of delay memories, the first component coder encoding the variable input information bits to generate a first parity bit string; 상기 가변 입력 정보 비트들을 인터리빙 하는 인터리버와,An interleaver for interleaving the variable input information bits; 미리 결정된 수의 지연 메모리들을 가지며, 상기 인터리빙된 가변 입력 정보 비트들을 부호화하여 제2패리티 비트 열을 생성하는 제2구성 부호기와,A second component coder having a predetermined number of delay memories, the second component coder encoding the interleaved variable input information bits to generate a second parity bit string; 데이터 전송 율을 조정하기 위해 상기 정보 비트 열과 상기 제1 및 상기 제2 패리티 비트 열들의 일부를 천공하는 천공기와,A perforator for perforating the information bit stream and a portion of the first and second parity bit streams to adjust a data rate; 상기 제1 및 제2구성 부호기 각각의 출력을 입력하고, 상기 입력에 의해 상기 제1 및 제2구성 부호기 각각에 대한 테일 비트들을 생성하는 테일 비트 생성기를 포함하며,A tail bit generator for inputting an output of each of said first and second constituent encoders and generating tail bits for each of said first and second constituent encoders by said input, 여기서 상기 테일 비트의 수는 상기 지연 메모리들의 수와 일치하고, 상기 제1 및 제2구성 부호기들을 구성하는 지연 메모리들은 상기 테일 비트에 의해 초기화되며, 상기 지연 메모리들이 초기화될 시 상기 테일 비트는 프레임 종단신호로써 상기 출력 포트를 통해 출력됨을 특징으로 하는 상기 장치.Wherein the number of tail bits is equal to the number of delay memories, delay memories constituting the first and second constituent encoders are initialized by the tail bits, and the tail bits are framed when the delay memories are initialized. And output through the output port as a termination signal. 가변 입력 정보 비트들을 부호화하여 정보 비트 열과 제1 및 제2패리티 비트 열을 출력하는 터보 부호화기에 있어서,A turbo encoder for encoding variable input information bits and outputting an information bit string and a first and second parity bit strings, 상기 가변 입력 정보 비트들을 부호화하여 제1패리티 비트 열을 생성하는 제1구성 부호기와,A first component encoder for encoding the variable input information bits to generate a first parity bit string; 상기 가변 입력 정보 비트들을 인터리빙 하는 인터리버와,An interleaver for interleaving the variable input information bits; 상기 인터리빙된 입력 정보 비트들을 부호화하여 제2패리티 비트 열을 생성하는 제2구성 부호기와,A second component encoder for encoding the interleaved input information bits to generate a second parity bit string; 상기 제1구성 부호기의 출력을 입력하고, 상기 입력에 의해 상기 제1구성 부호기의 피드-백 값들과 동일한 제1테일 비트들을 생성하는 제1테일 비트 생성기와, 상기 제2구성 부호기의 출력을 입력하고, 상기 입력에 의해 상기 제2구성 부호기의 피드-백 값들과 동일한 제2테일 비트들을 생성하는 제2테일 비트 생성기와,A first tail bit generator for inputting an output of the first constituent encoder and generating first tail bits equal to feed-back values of the first constituent encoder, and an output of the second constituent encoder A second tail bit generator configured to generate second tail bits equal to feed-back values of the second constituent encoder by the input; 프레임 종료 시 상기 입력 정보 비트들의 입력을 차단하고, 상기 제1테일 비트들이 상기 제1구성 부호기로 입력되도록 스위칭하는 제1스위치와,A first switch which blocks input of the input information bits at the end of a frame and switches the first tail bits to be input to the first constituent encoder; 상기 프레임 종료 시 상기 인터리빙된 입력 정보 비트들의 입력을 차단하고, 상기 제2테일 비트들이 상기 제2구성 부호기로 입력되도록 스위칭하는 제2스위치를 포함하며,And a second switch for blocking input of the interleaved input information bits at the end of the frame and switching the second tail bits to be input to the second constituent encoder. 여기서 상기 제1 구성부호기를 구성하는 제1메모리들은 상기 제1메모리들의 수와 일치하는 수의 상기 제1테일 비트들에 의해 초기화되고, 상기 제2구성부호기를 구성하는 제2메모리들은 상기 제2메모리들의 수와 일치하는 수의 상기 제2테일 비트들에 의해 초기화되며,Here, the first memories constituting the first constituent encoder are initialized by the first tail bits of the number corresponding to the number of the first constituents, and the second memories constituting the second constituent encoder are the second memory. Initialized by the second tail bits in a number that matches the number of memories, 상기 제1 및 제2테일 비트들은 상기 제1구성 부호기 및 상기 제2구성 부호기에 의해 상기 제1 및 제2패리티 비트 열로 부호화되고, 상기 제1 및 제2테일 비트은 정보 비트 열로 출력됨을 특징으로 하는 상기 장치.The first and second tail bits are encoded into the first and second parity bit strings by the first and second component encoders, and the first and second tail bits are output as information bit strings. The device. 제3항에 있어서, 상기 제1패리티 비트 열과 상기 제2패리티 비트 열 중 하나를 패리티 비트 열에 대해 천공을 수행하는 천공기를 더 구비함을 특징으로 하는 상기 장치.4. The apparatus of claim 3, further comprising a puncturer for puncturing one of the first parity bit string and the second parity bit string with respect to the parity bit string. 제3항에 있어서, 상기 제1테일 비트들과 상기 제2테일 비트들을 멀티플렉싱하는 멀티플렉서를 더 구비함을 특징으로 하는 상기 장치.4. The apparatus of claim 3, further comprising a multiplexer for multiplexing the first tail bits and the second tail bits. 제1구성 부호기와 제2구성 부호기를 가지는 채널 부호화기에서 가변 입력 정보 비트들을 부호화하여 정보 비트 열과 제1 및 제2패리티 비트 열로 출력하는 채널 부호화 방법에 있어서,A channel encoding method for encoding variable input information bits in a channel encoder having a first component encoder and a second component encoder and outputting the information bits to the information bit stream and the first and second parity bit streams, 상기 가변 입력 정보 비트들을 부호화하여 상기 제1패리티 비트 열을 생성하는 과정과,Generating the first parity bit stream by encoding the variable input information bits; 상기 가변 입력 정보 비트들을 인터리빙 하는 과정과,Interleaving the variable input information bits; 상기 인터리빙된 가변 입력 정보 비트들을 부호화하여 상기 제2패리티 비트 열을 생성하는 과정과,Generating the second parity bit stream by encoding the interleaved variable input information bits; 상기 제1구성 부호기의 출력을 입력하고, 상기 입력에 의해 제1테일 비트들을 생성하는 과정과,Inputting an output of the first component encoder and generating first tail bits by the input; 상기 제2구성 부호기의 출력을 입력하고, 상기 입력에 의해 제2테일 비트들을 생성하는 과정과,Inputting an output of the second constituent encoder and generating second tail bits by the input; 프레임 종료 시 상기 제1구성 부호기의 입력을 상기 가변 입력 정보 비트들에서 상기 제1테일 비트들로 스위칭하고, 상기 제2구성 부호기의 입력을 상기 인터리빙된 가변 입력 정보 비트들에서 상기 제2테일 비트들로 스위칭하는 과정을 포함하며,Switching the input of the first component encoder from the variable input information bits to the first tail bits at the end of the frame, and the input of the second component encoder to the second tail bit in the interleaved variable input information bits The process of switching to 여기서 상기 제1 구성부호기를 구성하는 제1메모리들은 상기 제1메모리들의 수와 일치하는 수의 상기 제1테일 비트들에 의해 초기화되고, 상기 제2구성부호기를 구성하는 제2메모리들은 상기 제2메모리들의 수와 일치하는 수의 상기 제2테일 비트들에 의해 초기화되며,Here, the first memories constituting the first constituent encoder are initialized by the first tail bits of the number corresponding to the number of the first constituents, and the second memories constituting the second constituent encoder are the second memory. Initialized by the second tail bits in a number that matches the number of memories, 상기 제1 및 제2테일 비트들은 상기 제1구성 부호기 및 상기 제2구성 부호기에 의해 상기 제1 및 제2패리티 비트 열로 부호화되고, 상기 제1 및 제2테일 비트들은 상기 정보 비트 열로 출력됨을 특징으로 하는 상기 방법.The first and second tail bits are encoded into the first and second parity bit strings by the first and second component encoders, and the first and second tail bits are output into the information bit string. Said method. 제1항에 있어서, 상기 정보 비트 열과 상기 제1 및 제2패리티 비트 열의 일부를 천공함으로써 데이터 전송율을 조정하는 과정을 더 구비함을 특징으로 하는 상기 방법.2. The method of claim 1, further comprising adjusting a data rate by puncturing the information bit stream and a portion of the first and second parity bit streams. 제1항에 있어서, 상기 테일 비트들의 수는 상기 내부 메모리들의 수와 일치함을 특징으로 하는 상기 방법.The method of claim 1, wherein the number of tail bits coincides with the number of internal memories. 제1항에 있어서, 프레임 종료 시 상기 테일 비트들을 프레임 종단신호로써 상기 정보 비트 열로 출력함을 특징으로 하는 상기 방법.The method as claimed in claim 1, wherein the tail bits are output to the information bit stream as a frame termination signal at the end of a frame.
KR1019970060101A 1997-07-30 1997-11-10 Adaptive Channel Coding Method and Apparatus Expired - Lifetime 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
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
DE69841631T DE69841631D1 (en) 1997-07-30 1998-07-30 Method and apparatus for adaptive channel coding
JP2000505687A JP3492632B2 (en) 1997-07-30 1998-07-30 Applicable channel coding method and apparatus
RU2000102353A RU2193276C2 (en) 1997-07-30 1998-07-30 Method and device for adaptive channel coding
CNB988073528A CN1150680C (en) 1997-07-30 1998-07-30 Adaptive channel coding method and device
ES98935383T ES2290990T3 (en) 1997-07-30 1998-07-30 ADAPTIVE CHANNEL CODING METHOD AND DEVICE.
EP05016017A EP1601109B1 (en) 1997-07-30 1998-07-30 Adaptive channel encoding method and device
CA002295791A CA2295791C (en) 1997-07-30 1998-07-30 Adaptive channel encoding method and device
EP98935383A EP0997031B1 (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
PCT/KR1998/000232 WO1999007076A2 (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
CN 02147194 CN1256812C (en) 1997-07-30 1998-07-30 Turbo coder and channel coding method
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
KR1019970036265 1997-07-30
KR1997-36265 1997-07-30
KR19970036265 1997-07-30

Publications (2)

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

Family

ID=66094101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970060101A Expired - Lifetime 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010079868A1 (en) * 2009-01-09 2010-07-15 Lg Electronics Inc. Apparatus for transmitting and receiving a signal and method of transmitting and receiving a signal

Families Citing this family (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
CN111130572B (en) * 2020-01-06 2024-04-23 西南电子技术研究所(中国电子科技集团公司第十研究所) Turbo code quick realizing method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Electronics Letters, 25권, 22호, 1989.10, E.Dunscombe & F.C.Piper, "Optimal Interleaving scheme for convolutional coding", pp.1517-1518 *
IEEE 45th Vehicular Technology Conference, 2권, 1995.07, P.Jung & M.M.Nasshan, "Comprehensive comparison of turbo-code decoders", pp.624-628 *
IEEE Transactions on Communications, Vol.45, No.2, February 1997, C.Yi & J.H.Lee, "Interleaving and Decoding Scheme a Product Code for a Mobile Data Communication", p.144-147 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010079868A1 (en) * 2009-01-09 2010-07-15 Lg Electronics Inc. Apparatus for transmitting and receiving a signal and method of transmitting and receiving a signal
US8644406B2 (en) 2009-01-09 2014-02-04 Lg Electronics Inc. Apparatus for transmitting and receiving a signal and method of transmitting and receiving a signal
US9647795B2 (en) 2009-01-09 2017-05-09 Lg Electronics Inc. Apparatus for transmitting and receiving a signal and method of transmitting and receiving a signal
US10116416B2 (en) 2009-01-09 2018-10-30 Lg Electronics Inc. Apparatus for transmitting and receiving a signal and method of transmitting and receiving a signal

Also Published As

Publication number Publication date
KR19990013245A (en) 1999-02-25

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
KR100522263B1 (en) Parallel concatenated tail-biting convolutional code and decoder therefor
JP5457535B2 (en) Rate matching and channel interleaving for communication systems
JP4298170B2 (en) Partitioned deinterleaver memory for map decoder
US6772391B1 (en) Hybrid interleaver for turbo codes
US6347385B1 (en) Interleavers for turbo code
WO1998011671A1 (en) An improved system for coding signals
KR20020067382A (en) Code generating and decoding apparatus and method in communication system
EP1119915B9 (en) Hybrid interleaver for turbo codes
KR100454952B1 (en) Adaptive Channel Coding Method and Apparatus
JP2005167513A (en) Decoding device and decoding method
KR100251087B1 (en) Decoder of turbo encoder
KR100645730B1 (en) Interleaving Method Using Magic Matrix
KR100338663B1 (en) Apparatus and method for channel coding and decoding in communication system
KR100317377B1 (en) Encoding and decoding apparatus for modulation and demodulation system
EP1347580A2 (en) Hybrid interleaver for turbo codes
Abou-El-Azm et al. Improving the transmission efficiency in the mobile communication systems using turbo codes
KR20030082699A (en) Turbo internal interleaving method and device based on golden sequence
HK1061473A (en) Hybrid interleaver for turbo codes

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19971111

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20010521

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 19971111

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20030614

Patent event code: PE09021S01D

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20040227

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20040909

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20041021

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20041022

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20070910

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20080903

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20090929

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20100929

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20110929

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20120927

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20120927

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20130927

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20130927

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20140929

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20150925

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20150925

Start annual number: 12

End annual number: 12

PR1001 Payment of annual fee

Payment date: 20160929

Start annual number: 13

End annual number: 13

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 14

PR1001 Payment of annual fee

Payment date: 20170927

Start annual number: 14

End annual number: 14

PC1801 Expiration of term