KR100362557B1 - 2-dimensional interleaving apparatus and method - Google Patents

2-dimensional interleaving apparatus and method Download PDF

Info

Publication number
KR100362557B1
KR100362557B1 KR1020000018037A KR20000018037A KR100362557B1 KR 100362557 B1 KR100362557 B1 KR 100362557B1 KR 1020000018037 A KR1020000018037 A KR 1020000018037A KR 20000018037 A KR20000018037 A KR 20000018037A KR 100362557 B1 KR100362557 B1 KR 100362557B1
Authority
KR
South Korea
Prior art keywords
group
data
interleaver
groups
order
Prior art date
Application number
KR1020000018037A
Other languages
Korean (ko)
Other versions
KR20000071582A (en
Inventor
김병조
김민구
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to KR1020000018037A priority Critical patent/KR100362557B1/en
Publication of KR20000071582A publication Critical patent/KR20000071582A/en
Application granted granted Critical
Publication of KR100362557B1 publication Critical patent/KR100362557B1/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

본 발명은 이차원 인터리빙장치 및 방법에 관한 것이다. 본 발명에 따른, n개의 데이터 열을 m차의 원시 다항식을 사용하여 부호화하는 제1궤환 길쌈부호기와, 상기 n개의 데이터를 k개의 그룹들로 나누어 각 그룹으로부터 각각 취한 n개의 데이터를 인터리빙하여 출력하는 2차원 인터리버와, 상기 인터리버로부터의 상기 인터리빙된 데이터를 m차의 상기 원시 다항식을 사용하여 부호화하는 제2궤환 길쌈부호기를 포함하는 부호화 장치가, 상기 k가 2m-1의 양의 정수배이고, 상기 k개의 그룹들중 특정 하나의 그룹을 선택한후 다시 상기 특정 하나의 그룹을 선택하는 주기가 2m-1의 정수배가 되지 않도록 상기 그룹들의 선택을 제어하는 제어기를 포함하는 것을 특징으로 한다.The present invention relates to a two-dimensional interleaving apparatus and method. According to the present invention, a first feedback convolutional encoder for encoding n data strings using an m-th order raw polynomial and interleaving and outputting n data taken from each group by dividing the n data into k groups And a second feedback convolutional encoder for encoding the interleaved data from the interleaver using the m-th order raw polynomial, wherein k is a positive integer multiple of 2 m −1. And a controller for controlling the selection of the groups such that the period of selecting the particular one group from the k groups and then selecting the particular one group is not an integer multiple of 2 m −1.

Description

이차원 인터리빙 장치 및 방법{2-DIMENSIONAL INTERLEAVING APPARATUS AND METHOD}Two-dimensional interleaving apparatus and method {2-DIMENSIONAL INTERLEAVING APPARATUS AND METHOD}

본 발명은 인터리빙/디인터리빙 장치 및 방법에 관한 것으로, 특히 통신시스템(위성시스템, ISDN, Digital cellular, W-CDMA, IMT-2000, W-ATM)에서 사용되는 터보코더를 위한 2차원 인터리빙/디인터리빙 장치 및 방법에 관한 것이다.The present invention relates to an interleaving / deinterleaving apparatus and method, and more particularly to two-dimensional interleaving / decoding for turbocoders used in communication systems (satellite systems, ISDN, digital cellular, W-CDMA, IMT-2000, W-ATM). An interleaving apparatus and method are disclosed.

일반적으로 터보코더는 디지털 통신 시스템의 신뢰도 향상에 광범위하게 관련된 오류정정부호의 한 종류이다. 현재까지 공개되고 있는 터보코드는 병렬터보코드와 직렬터보코드로 구분될수 있다. 상기 병렬 터보코더(Turbo encoder)는 L개의 정보 비트열의 프레임(frame)으로 이루어진 입력을 두 개의 간단한 병렬 쇄상 부호를 이용하여 패리티 심볼(parity symbol)을 만드는 시스템으로서 구성 부호기(component coder)로는 RSC(Recursive Systematic Convolutional) 부호를 이용한다. 또한 상기 터보코드는 상기 구성부호기 사이에 내부 인터리버를 구비하고 있다.In general, a turbo coder is a type of error correcting code that is widely involved in improving reliability of a digital communication system. The turbo codes disclosed to date can be divided into parallel turbo code and serial turbo code. The parallel turbo encoder is a system that creates a parity symbol using two simple parallel chain codes from an input consisting of frames of L information bit streams. The parallel coder is a RSC (component coder). Recursive Systematic Convolutional) code. The turbo code has an internal interleaver between the component encoders.

상기 인터리버는 일정크기(프레임) 단위로 입력되는 데이타열을 랜덤화(randomization)하고, 코드워드(Code word)의 디스턴스 성질(distance property)을 개선하고자 사용된다. 특히, 최근에 매우 많은 관심을 모으고 있는 IMT-2000(CDMA2000)의 에어 인터페이스(Air interface) 표준화 과정에서 데이터 전송 채널로서 사용되는 부가채널(Supplemental channel)에서 사용된다. 그리고 ETSI(European Telecommunication Standards Institute)에서 추진 중인 UMTS(Universal Mobile Telecommunication System)표준화 과정에서는 사용자 데이터가 전송되는 채널에서 터보코더가 사용될 것이 유력시 되고 있다. 따라서 터보코드를 위한 터보 인터리버의 구체적 구현방식이 절실히 요구되고 있다.The interleaver is used to randomize a data string input in units of a predetermined size (frame) and to improve a distance property of a code word. In particular, it is used in the supplemental channel used as a data transmission channel in the air interface standardization process of IMT-2000 (CDMA2000), which has attracted much attention recently. In addition, in the Universal Mobile Telecommunication System (UMTS) standardization process promoted by the European Telecommunication Standards Institute (ETSI), it is promising that a turbo coder is used in a channel through which user data is transmitted. Therefore, a specific implementation method of the turbo interleaver for the turbo code is urgently required.

도 1은 일반적인 병렬 터보 부호기의 구조를 도시한 도면으로, 터보부호에 대한 특허인 1995년 8월 29일 등록된 미합중국 특허(Patent Number: 5,446,747)에 자세히 개시되어 있다.FIG. 1 is a diagram illustrating a structure of a general parallel turbo coder, which is disclosed in detail in a patent number US Pat. No. 5,446,747, issued on August 29, 1995, which is a patent for a turbo code.

상기 도 1과 같은 구성을 갖는 터보 부호기는 입력 프레임 데이터 열을 부호화 하지 않고 출력하고, 상기 입력프레임을 부호화 하여 출력하는 제1구성 부호기111와, 상기 입력 프레임 데이터 열을 인터리빙 하여 제2구성 부호기 113로 출력하는 인터리버(interleaver) 112 및 상기 인터리버의 출력을 입력하여 부호화 하는 제2구성 부호기 113으로 구성된다. 상기 제1, 제2구성 부호기 112 및 113은 이미 기술 분야에서 잘 알려진 RSC(Recursive Systematic Convolutional)부호기 또는 NSC(NON-Recursive Systematic Convolutional)부호기를 사용할 수 있다. 이러한 구성부호기는 부호화율 이나 유한장 k값 및 생성다항식에 따라서 그 내부 구성이 달라질수 있다. 그리고 상기 인터리버 112는 입력되는 최대 프레임 크기와 동일한 메모리 크기를 가지며, 상기 제2구성 부호기 113에 입력되는 정보 비트의 입력 순서를 바꿈으로써 정보 비트들 사이의 상관(correlation)을 줄여주게 된다.The turbo encoder having the configuration as shown in FIG. 1 outputs the first frame encoder 111 without encoding the input frame data sequence, and encodes and outputs the input frame, and the second component encoder 113 by interleaving the input frame data sequence. It consists of an interleaver 112 for outputting and a second component encoder 113 for inputting and encoding the output of the interleaver. The first and second constituent encoders 112 and 113 may use a recursive systematic convolutional (RSC) encoder or a non-recursive systematic convolutional (NSC) encoder that is well known in the art. Such a constituent encoder may have an internal configuration that depends on the coding rate, the finite length k value, and the generated polynomial. The interleaver 112 has the same memory size as the maximum frame size and reduces the correlation between the information bits by changing the input order of the information bits input to the second component encoder 113.

종래에는 상기 터보코더의 내부 인터리버(internal interleaver) 112로서, PN 랜덤 인터리버(random interleaver), 랜덤 인터리버, 블록 인터리버(Block interleaver), 비선형 인터리버(Non linear interleaver), S-Random interleaver 등 다양한 방식이 제안되었다. 그러나 이러한 인터리버들은 아직까지 구현의 관점보다는 학문적인 연구분야로서 성능개선에 주안점을 두고 설계된 알고리즘들로 볼수 있다. 따라서 실제 시스템의 구현을 고려할 때 하드웨어 구현 복잡도라는 측면에서 재고가 필요한 방식들이라 할수 있다. 이하 종래 터보코더 인터리버에 대한 기술과 성질 그리고 문제점을 설명한다.Conventionally, various methods such as PN random interleaver, random interleaver, block interleaver, non linear interleaver, and S-Random interleaver are proposed as the internal interleaver 112 of the turbo coder. It became. However, these interleavers can be seen as algorithms designed with the focus on performance improvement as an academic field rather than an implementation point of view. Therefore, considering the implementation of the actual system in terms of hardware implementation complexity can be said to be the way to reconsider. Hereinafter, a description will be given of the technology, properties and problems of the conventional turbo coder interleaver.

터보코더는 기본적으로 내부 인터리버 및 구성부호기에 의해서 성능이 좌우된다. 일반적으로 터보코더는 입력 프레임 크기(한 프레임이 포함하는 정보비트의 개수)가 커지면 성능이 증가한다. 그러나 인터리버 크기(size)의 증가에 따라 계산량이 증가하기 때문에 프레임 크기가 매우 크다면 실제 구현이 불가능하다.Turbocoders are basically performance dependent on internal interleaver and component encoder. In general, turbocoders increase performance as the input frame size (the number of information bits in one frame) increases. However, as the interleaver size increases, the amount of computation increases, so if the frame size is very large, the actual implementation is impossible.

실험결과에 의하면 랜덤 인터리버가 일반적으로 사용되는 블록인터리버보다 성능이 우수하다. 그러나 랜덤 인터리버를 설계할 때 발생되는 문제점의 하나는 프레임 크기가 다양하고 커질수록 인터리버의 인덱스(mapping rule, 또는 address)를 저장하기 위한 메모리의 크기가 너무 커진다는 것이다. 즉, 어드레싱을 위한 메모리 공간이 매우 증가하게 된다. 따라서, 하드웨어의 크기가 문제된다면, 인터리버의 인덱스를 저장하는 룩업 테이블(Look-Up Table)방식보다는 인덱스를 발생시키는 일정 규칙(rule)을 사용하여 매 심볼 클럭마다 어드레스를 발생시켜 해당되는 어드레스에 저장된 데이터를 읽어내는 어드레스 계산(enumeration)방식이 요구된다.Experimental results show that the random interleaver outperforms the commonly used block interleaver. However, one of the problems in designing the random interleaver is that as the frame size varies and becomes larger, the size of the memory for storing the interleaver's mapping rule or address becomes too large. That is, the memory space for addressing is greatly increased. Therefore, if the size of the hardware is a problem, an address is generated at every symbol clock by using a certain rule that generates an index rather than a look-up table method of storing an interleaver's index. An address enumeration method of reading data is required.

이를 종합해 볼 때, IMT-2000용이나 UMTS(Universal Mobile Telecommunication System)와 같이 다양한 인터리버 크기가 요구되고 하드웨어 복잡도가 제한받는 경우의 터보 인터리버를 구현하기 위해서는 이러한 제한적 여건들을 고려한 상태에서 최적의 인터리버 성능이 보장되도록 설계되어야 한다. 즉, 요구되는 인터리버는 어드레스를 발생시키는 일정 규칙을 고안한 후 이를 바탕으로 인터리빙/디인터리빙이 이루어지는 것이 요구된다. 또한, 터보 내부 인터리버의 요구되는 성질이 우수할것이 요구된다.Taken together, optimal interleaver performance under these limited conditions is needed to implement a turbo interleaver where various interleaver sizes are required and hardware complexity is limited, such as for IMT-2000 or Universal Mobile Telecommunication System (UMTS). It must be designed to ensure this. That is, the required interleaver is required to devise a certain rule for generating an address and then to perform interleaving / deinterleaving based on this. It is also required that the required properties of the turbo internal interleaver be excellent.

CDMA-2000 표준화 과정이나 UMTS 표준화 과정에서 터보 인터리버로 설계가 간단하면서도 성능이 우수한 인터리버가 제안되어 있지 않다. 현재 CDMA-2000 표준화 스팩에 주어진 순방향 링크(forward link)와 역방향 링크(reverse link)의 경우 논리채널(logical channel)의 종류가 매우 다양하며, 다양한 데이터 레이트에 따른 인터리버 크기 또한 여러 종류로 구성되어 이를 충실히 반영하기 위해서는 많은 양의 메모리가 요구된다. 예로서, CDMA2000 순방향 링크 전송모드의 경우 최소 144bits/frame부터 최대 36864bits/frame까지 매우 다양한 크기의 인터리버가 사용된다. 그리고, 상기 인터리버는 입력프레임 전체를 하나의 영역으로 간주하여 인터리빙하는 1차원 인터리버와 입력프레임을 몇 개의 부분영역으로 나눈 다음 각 영역별로 인터리빙하는 2차원 인터리버로 구분할 수 있다.In the CDMA-2000 standardization process or the UMTS standardization process, there is no proposed interleaver that is simple in design and has excellent performance as a turbo interleaver. In the case of the forward link and the reverse link given in the current CDMA-2000 standard specification, there are various types of logical channels, and various sizes of interleavers according to various data rates are also included. A large amount of memory is required to reflect faithfully. For example, in the CDMA2000 forward link transmission mode, an interleaver having a wide range of sizes ranging from a minimum of 144 bits / frame to a maximum of 36864 bits / frame is used. The interleaver may be classified into a one-dimensional interleaver that interleaves the entire input frame as one region, and a two-dimensional interleaver that divides the input frame into several partial regions and then interleaves each region.

상술한 바와 같이 종래기술의 문제점은 다음과 같이 요약된다.As described above, the problems of the prior art are summarized as follows.

첫째, 기존의 터보코드를 위한 내부 인터리버로서 PN 랜덤 인터리버, 랜덤 인터리버, 블록 인터리버, 비선형 인터리버, S-R 랜덤 인터리버 등 다양한 방식이 제안되었다. 그러나 이러한 인터리버들은 아직까지 구현의 관점보다는 학문적인 연구분야로서 성능개선에 주안점을 두고 설계된 알고리즘들로 볼수 있다. 따라서 실제 시스템의 구현을 고려할 때 상기 명시한 조건과 더불어 하드웨어 구현 복잡도를 반드시 고려해야 하는데 이 부분이 미흡하다.First, various methods such as PN random interleaver, random interleaver, block interleaver, nonlinear interleaver, and S-R random interleaver have been proposed as internal interleaver for conventional turbo codes. However, these interleavers can be seen as algorithms designed with the focus on performance improvement as an academic field rather than an implementation point of view. Therefore, when considering the actual system implementation, in addition to the above-mentioned conditions, hardware implementation complexity must be considered.

둘째, 기존의 인터리빙 방식의 대부분이 룩업 테이블 방식으로 각각의 인터리버 크기에 따른 인터리빙 규칙을 송수신기의 제어부(CPU, HOST)가 저장해 두어야 하므로 인터리버 버퍼 이외에 별도의 저장공간이 CPU 메모리 쪽에 필요하다. 즉, 설계 상의 문제점 중 프레임 사이즈가 다양하고 커질수록 인터리버의 인덱스(매핑 규칙 또는 어드레스)를 저장하기 위한 메모리의 크기가 너무 커진다는 것이다. 즉, 어드레싱을 위한 메모리 공간이 매우 증가하는 문제점이 있다.Second, since most of the existing interleaving methods are lookup table methods, the interleaving rules according to each interleaver size must be stored by the control unit (CPU, HOST) of the transceiver, so that a separate storage space in addition to the interleaver buffer is required on the CPU memory side. That is, as the frame size varies and becomes larger among design problems, the size of the memory for storing the interleaver index (mapping rule or address) becomes too large. That is, there is a problem in that the memory space for addressing is greatly increased.

셋째, 거리 성질과 랜덤 성질을 동시에 만족하는 인터리버의 구현이 쉽지 않다.Third, it is not easy to implement an interleaver that satisfies both distance and random properties.

넷째, 2차원 인터리버를 사용할 때 구성부호기의 주기성을 고려하지 않고 영역들을 선택하였기 때문에 구성부호기의 상태를 리셋시키는 문제가 발생하였다.Fourth, when using the two-dimensional interleaver, since the regions were selected without considering the periodicity of the component encoder, a problem of resetting the state of the component encoder occurred.

따라서 본 발명의 목적은 상기 종래기술의 문제점들을 해결할수 있는 인터리버 장치 및 방법을 제공함에 있다.It is therefore an object of the present invention to provide an interleaver device and method that can solve the problems of the prior art.

본 발명의 다른 목적은 통신시스템에서 터보코더의 특성인 거리특성(distance property)을 최대화할수 있는 인터리빙/디인터리빙 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide an interleaving / deinterleaving apparatus and method capable of maximizing a distance property which is a characteristic of a turbo coder in a communication system.

본 발명의 또 다른 목적은 통신시스템에서 터보코더의 인터리버가 입력 프레임 데이터를 소정 크기로 분할하여 인터리빙하는 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide an apparatus and method for interleaving an input frame data into a predetermined size by an interleaver of a turbo coder in a communication system.

본 발명의 또 다른 목적은 이차원(2-dimensional) 인터리빙 장치에서 특정그룹을 선택하고 다시 상기 특정 그룹을 선택하는 주기가 코더를 구성하는 구성부호기의 주기와 상이하도록 그룹선택을 제어하는 장치 및 방법을 제공함에 있다.It is still another object of the present invention to provide an apparatus and method for controlling group selection such that a period for selecting a specific group in the 2-dimensional interleaving apparatus and again selecting the specific group is different from the period of the component encoder constituting the coder. In providing.

상기 목적들을 달성하기 위한, n개의 데이터 열을 m차의 원시 다항식을 사용하여 부호화하는 제1궤환 길쌈부호기와, 상기 n개의 데이터를 k개의 그룹들로 나누어 각 그룹으로부터 각각 취한 n개의 데이터를 인터리빙하여 출력하는 2차원 인터리버와, 상기 인터리버로부터의 상기 인터리빙된 데이터를 m차의 상기 원시 다항식을 사용하여 부호화하는 제2궤환 길쌈부호기를 포함하는 부호화 장치가, 상기 k가 2m-1의 양의 정수배이고, 상기 k개의 그룹들중 특정 하나의 그룹을 선택한후 다시 상기 특정 하나의 그룹을 선택하는 주기가 2m-1의 정수배가 되지 않도록 상기 그룹들의 선택을 제어하는 제어기를 포함하는 것을 특징으로 한다.In order to achieve the above objects, a first feedback convolutional encoder for encoding n data strings using an m-th order raw polynomial and interleaving n data taken from each group by dividing the n data into k groups And a second feedback convolutional encoder for encoding the interleaved data from the interleaver using the m-th order raw polynomial, wherein k is a positive value of 2 m −1. And a controller for controlling the selection of the groups such that the period of selecting the particular one group from the k groups and then selecting the particular one group is not an integer multiple of 2 m −1. do.

도 1은 일반적인 터보부호기의 블록구성을 도시하는 도면.1 is a block diagram showing a general turbo encoder.

도 2는 본 발명에 따른 통신시스템의 인터리빙 장치의 블록 구성을 도시한 도면.2 is a block diagram of an interleaving apparatus of a communication system according to the present invention;

도 3은 본 발명에 따른 통신시스템의 디인터리빙 장치의 블록 구성을 도시한 도면.3 is a block diagram of a deinterleaving apparatus of a communication system according to the present invention;

도 4는 2차원 터보 인터리버의 일반적인 동작원리를 설명하는 도면.4 is a view for explaining the general operation principle of the two-dimensional turbo interleaver.

도 5는 K=4,NG=7이고 그룹선택을 순차적으로 할 경우, 특정 입력시퀀스에 대한 출력을 도시하는 도면.Fig. 5 is a diagram showing output for a specific input sequence when K = 4, N G = 7 and group selection is performed sequentially.

도 6은 본 발명에 따른 이차원 인터리빙 장치의 그룹선택에 대한 개념도를 도시하는 도면.6 is a diagram illustrating a conceptual diagram for group selection of a two-dimensional interleaving apparatus according to the present invention;

도 7은본 발명의 실시 예에 따른 이차원 인터리빙 장치를 도시하는 도면.7 illustrates a two-dimensional interleaving apparatus according to an embodiment of the present invention.

다양한 프레임 크기에 최적의 성능을 발휘 할 수 있는 터보코더를 찾아내기 위해서는 터보코드의 구성부호기의 메모리 개수(유한장k), 생성다항식 및 최적의 코딩레이트등 고려하여야 할 사항이 너무나 많다. 또한 이러한 모든 요소들이 성능에 어떠한 영향을 미치는지 이론적으로 검증되지 않은 상태에서는 최적의 성능을 발휘하는 터보코더를 실험적으로 찾기란 매우 많은 시간과 노력이 요구된다.To find a turbo coder that can perform optimally for various frame sizes, there are many things to consider such as the number of turbo coders (finite length k), the generation polynomial, and the optimal coding rate. In addition, it is very time and effort to experimentally find a turbo coder that performs optimally without theoretically verifying how all these factors affect performance.

따라서 실제 구현을 위한 방법은 성능에 영향을 주는 몇 가지 기준을 마련하고 그 기준을 최대한 만족시키는 방법으로 인터리버을 구현해야 한다. 이러한 기준이 되는 특성들은 하기와 같다.Therefore, the method for the actual implementation should implement some criteria that affect the performance and implement the interleaver in a way that satisfies the criteria as much as possible. These standard characteristics are as follows.

거리 성질(Distance Properity) : 인접한 코드워드 심볼들간의 거리를 어느 정도 이상 유지해야 한다. 이것은 길쌈부호(Convolutional code)의 코드워드 디스턴스 성질과 동일한 역할을 하므로 동일한 조건에서 가급적 디스턴스가 크도록 설계하는 것이 바람직하다.Distance property: The distance between adjacent codeword symbols must be maintained to some extent. Since this plays the same role as the codeword distance property of the convolutional code, it is preferable to design the distance as large as possible under the same conditions.

웨이트 성질(Weight Properity) : 제로가 아닌 정보어(Non-zero information word)에 대응되는 코드워드의 웨이트가 어느정도 이상 되어야 한다. 이것은 길쌈부호의 최소거리(minimum distance) 성질과 동일한 역할을 하므로 동일한 조건에서 웨이트가 크도록 설계하는 것이 바람직하다.Weight Property: The weight of a codeword corresponding to a non-zero information word should be more than a certain amount. Since it plays the same role as the minimum distance property of the convolutional code, it is desirable to design the weight to be large under the same conditions.

랜덤 성질(Random Properity) : 인터리빙 이전의 원래 입력 정보 심볼(original input information symbol)들간의 상관 계수(correlation factor)에 비하여 인터리빙 이후의 출력 워드 심볼들간의 상관 계수가 매우 낮아야 한다. 즉, 출력 워드 심볼들간에 랜덤화가 충실히 이루어져야 한다. 이는 반복 디코딩에서 발생되는 외부정보 성질(Extrinction information quality)에 직접적인 영향을 주는 요인이다.Random Properity: The correlation coefficient between output word symbols after interleaving should be very low compared to the correlation factor between original input information symbols before interleaving. That is, randomization must be faithfully performed between output word symbols. This is a factor that directly affects extrinction information quality generated in iterative decoding.

이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명은 상술한 터보코더의 인터리버 성질(거리성질, 웨이트 성질, 랜덤성질 등)을 만족할수 있는 최적의 인터리빙/디인터리빙 장치에 대해 상세히 설명한다.The present invention describes in detail an optimal interleaving / deinterleaving apparatus capable of satisfying the above-described interleaver properties (distance property, weight property, random property, etc.) of the turbo coder.

일반적으로 터보코더의 내부 인터리버로는 랜덤 인터리버가 성능이 우수하다. 또한 상기 터보코더는 프레임 크기가 클수록 성능이 우수하다. 따라서 본 발명은 랜덤인터리버의 성능을 만족하면서 복잡도를 개선할수 있도록 2차원(2-dimensional) 인터리버를 제안한다. 상기 2차원 인터리버는 입력 프레임의 크기를 소정 수의 그룹들로 분할하고, 각 그룹별로 특정 인터리빙 규칙(rule)을 적용하여 인터리빙하는 것을 의미한다. 여기서 본 발명은 특정 그룹을 선택하고 상기 특정 그룹을 다시 선택하는 그룹선택주기가 내부 구성부호기의 주기와 어긋나도록 한다. 또한, 본 발명의 실시예에서는 인터리빙을 위해 각 그룹에 PN시퀀스를 생성하는 선형 피드백 쉬프트 레지스터(LFSR;Linear Feedback Shift Register)를 대응시키고 상기 LFSR로부터 생성되는 랜덤수(Random Number)를 독출 어드레스로 사용한다. 그러나, 본 발명이 상기 그룹단위로 인터리빙하는 방법에 한정되는 것은 아니며 각 그룹별로 생성된 어드레스을 선택하는데 있어서 구성부호기의 주기성을 고려하여 그룹선택을 한다는 것이 주 관심사항이다. 또한 본 발명에서 예시하는 터보코드의 제1, 제2구성부호기는 상기 종래기술의 구성부호기로 구성될수 있을 뿐만 아니라 TIA에서 표준화하고 있는 CDMA2000에서 제시하는 구성부호기 및 ETSI에서 표준화 하고 있는 UMTS에서 제시하는 구성부호기를 사용할수 있는 등 특정구성부호기에 의하여 한정되지 않는다. 또한 본 발명의 인터리버는 직렬 터보코드의 내부 인터리버뿐만 아니라 채널인터리버 등에도 적용 가능하다.In general, a random interleaver is excellent as an internal interleaver of a turbo coder. In addition, the turbocoder has a higher performance with a larger frame size. Therefore, the present invention proposes a 2-dimensional interleaver to improve the complexity while satisfying the performance of the random interleaver. The two-dimensional interleaver means dividing the size of the input frame into a predetermined number of groups, and interleaving by applying a specific interleaving rule for each group. In the present invention, the group selection period for selecting a specific group and reselecting the specific group is shifted from that of the internal component encoder. In addition, in the embodiment of the present invention, a linear feedback shift register (LFSR) for generating a PN sequence is mapped to each group for interleaving, and a random number generated from the LFSR is used as a read address. do. However, the present invention is not limited to the method of interleaving in the group unit, and the main concern is to select a group in consideration of the periodicity of the component encoder in selecting addresses generated for each group. In addition, the first and second constituent encoders of the turbo code exemplified in the present invention can be configured not only with the constituent encoders of the prior art but also by the constituent encoders proposed by CDMA2000 standardized by TIA and UMTS standardized by ETSI. It is not limited by the specific constituent encoders, such as the use of constituent encoders. In addition, the interleaver of the present invention can be applied not only to the internal interleaver of serial turbo code but also to a channel interleaver.

도 2 및 도 3은 본 발명에 따른 인터리버 및 디인터리버의 기본 구성을 보여준다.2 and 3 show the basic configuration of the interleaver and deinterleaver according to the present invention.

상기 도 2를 참조하면, 어드레스 생성부(211)는 입력 프레임 데이터 크기 L 및 입력 클럭(clock)에 따라 데이타의 순서를 바꾸기 위한 독출 어드레스를 생성하여 인터리버 메모리(212)로 출력한다. 상기 인터리버 메모리(212)는 쓰기모드시 입력데이타를 순서대로 저장하고, 독출모드시 상기 어드레스 생성부(211)에서 제공되는 어드레스에 따라 데이터를 출력한다. 카운터(213)는 심볼 클럭(Clock)을 입력하며, 상기 인터리버 메모리(212)의 쓰기 어드레스(Write address)으로 출력한다. 상기한 바와 같이 상기 인터리버는 쓰기모드시 입력데이타를 인터리버 메모리(212)에 순서대로 저장하고, 독출모드시 상기 어드레스 생성부(211)에서 발생된 독출 어드레스에 따라 상기 인터리버 메모리(212)에 저장되어 있는 데이터를 출력한다. 다른 예로, 쓰기 모드시 미리 데이터의 순서를 바꿔 인터리버 메모리에 저장하고, 독출모드시 순서대로 데이터를 읽어 제2구성부호기로 출력할 수도 있다.Referring to FIG. 2, the address generator 211 generates a read address for changing data order according to an input frame data size L and an input clock and outputs the read address to the interleaver memory 212. The interleaver memory 212 stores input data in order in the write mode, and outputs data according to the address provided by the address generator 211 in the read mode. The counter 213 inputs a symbol clock and outputs it to a write address of the interleaver memory 212. As described above, the interleaver stores input data in order in the interleaver memory 212 in the write mode, and is stored in the interleaver memory 212 according to the read address generated by the address generator 211 in the read mode. Output the data. As another example, the data may be changed in the interleaver memory in the write mode in advance, and the data may be read out in order in the read mode and output to the second component encoder.

상기 도 3을 참조하여 디인터리버의 구성을 살펴보면, 어드레스 생성부(311)는 입력 프레이 데이터 크기 L, 및 입력클럭에 의하여 데이터의 순서를 원래로 복원하기 위한 쓰기 어드레스를 생성하여 디인터리버 메모리(312)에 제공한다. 상기 디인터리버 메모리(312)는 쓰기모드시 상기 어드레스 생성부(311)에서 제공되는 쓰기 어드레스(write ADDR)에 따라 입력데이타를 저장하고, 독출모드시 저장 데이터를 순서대로 출력한다. 카운터(313)는 심볼 클럭(Clock)을 입력하며, 상기 디인터리버 메모리(312)에서 데이터를 독출하기 위한 독출 어드레스(Read ADDR)를 상기 메모리(312)로 제공한다.Referring to FIG. 3, the deinterleaver memory 312 generates a write address for restoring the data order based on the input frame data size L and the input clock. To provide. The deinterleaver memory 312 stores input data according to the write address (write ADDR) provided by the address generator 311 in the write mode, and sequentially outputs the stored data in the read mode. The counter 313 inputs a symbol clock and provides a read address Read ADDR for reading data from the deinterleaver memory 312 to the memory 312.

상술한 바와 같이, 상기 디인터리버는 인터리버의 역과정으로 구조상 모든부분이 완전히 동일하며, 단지 독출/쓰기 모드에서 입력되는 데이터의 순서가 다를 뿐이다. 따라서 이하 설명은 인터리버를 위주로 설명할 것이다.As described above, the deinterleaver is a reverse process of the interleaver, and all parts of the deinterleaver are completely identical in structure, and only the order of data inputted in the read / write mode is different. Therefore, the following description will focus on the interleaver.

일반적으로, 주어진 입력 프레임의 크기에 있어서 터보코드(Turbo code)의 성능은 구속장(constraint length) K와 터보 인터리버(Turbo interleaver)의 특성에 의해 결정된다. 상기 K의 경우 복호기 설계에 있어서의 복잡도와 성능상의 개선 정도를 감안해서 3 또는 4를 일반적으로 선택한다. 예를 들어 CDMA2000이나 UMTS의 경우 K=4가 주를 이룬다. 이와는 달리 터보 인터리버(=터보코더의 내부 인터리버)의 경우 선택이 매우 어려운데, 그 이유로는 너무나 많은 설계 변수로 인해 최적의 터보 인터리버를 찾는 것은 거의 불가능하기 때문이다. 따라서 최적의 터보 인터리버 대신 sub-optimal한 터보 인터리버 설계에 많은 연구가 진행중이다.In general, the performance of a turbo code for a given input frame size is determined by the constraint length K and the characteristics of the turbo interleaver. In the case of K, 3 or 4 is generally selected in consideration of the complexity in the decoder design and the degree of improvement in performance. For example, in the case of CDMA2000 or UMTS, K = 4 dominates. On the other hand, the turbo interleaver is very difficult to select because it is almost impossible to find the optimal turbo interleaver due to so many design variables. Therefore, much research is underway on sub-optimal turbo interleaver design instead of optimal turbo interleaver.

먼저 길쌈부호(convolutional code)의 성질을 파악하는 것이 필요하다. 일반적인 길쌈부호의 경우 입력 시퀀스 (input sequence) I의 해밍웨이트(Hamming weight)인 W(I)가 낮으면 코드(code)의 웨이트도 낮고, 반대로 W(I)가 높으면 코드의 웨이트도 높다. 이는 feed forward convolutional code의 특성에 기인하는 것이다. Recursive convolutional code를 사용하는 터보코드는 길쌈부호와는 달리 무한 임펄스 응답 시퀀스(infinite impulse response sequence)를 가진다. 즉, K=4인 경우 100000…0인 입력 시퀀스를 입력으로 사용하면 주기가 7인 구성 코드 시퀀스(component code sequence)가 생성된다.First we need to understand the nature of the convolutional code. In the general convolutional code, when W (I), which is a hamming weight of the input sequence I, is low, the code weight is low. On the contrary, when W (I) is high, the code weight is high. This is due to the nature of the feed forward convolutional code. Turbo codes that use recursive convolutional code have an infinite impulse response sequence, unlike convolutional codes. Namely, when K = 4, 100000... Using an input sequence of zero as input generates a component code sequence with a period of seven.

첨부된 도면 도 1은 터보코더의 구성을 도시하고 있다. 도시된 바와 같이, 상기 터보코더 내부에 구비되는 터보 인터리버는 recursive convolutionalencoder를 사용하는 두개의 구성부호기(component encoder)사이에 존재하는데, 상기 인터리버는 첫 번째 부호기로부터 출력되는 코드의 웨이트가 낮을 경우 제2구성부호기에서 웨이트가 높은 코드를 생성할수 있는 데이터를 제공하기 위하여 입력 데이터를 인터리빙하는 역할을 수행한다. 이로인해, 첫 번째 구성부호기에서 출력되는 코드의 웨어트가 낮더라도 두 번째 구성부호기에서 출력되는 코드의 웨이트가 높기 때문에 전체 코드의 웨이트를 증가시키킬수 있다. 예를 들어, 구속장 K=4인 터보코더에 입력 시퀀스 100000..이 입력될 경우, 터보코더의 각 구성부호기의 출력은 주기가 2(K-1)-1= 7인 주기성을 갖는 이진 시퀀스(periodic binary sequence)를 생성하게 된다. 이 시퀀의 구체적 패턴은 터보코더의 생성다항식(generator polynomial)과 관련이 있다. 즉, zero 시퀀스가 아닌 특정 입력 시퀀스에 의해 구성부호기의 상태를 zero 상태로 리셋(reset)함으로써 유한(finite)한 코드 시퀀스를 발생하게 된다.1 shows the configuration of a turbo coder. As shown, a turbo interleaver provided in the turbo coder is present between two component encoders using a recursive convolutionalencoder, wherein the interleaver has a second weight when the weight of the code output from the first encoder is low. The component encoder interleaves the input data to provide data capable of generating a high weight code. As a result, even if the wear of the code output from the first component encoder is low, the weight of the code output from the second component encoder is high, so that the weight of the entire code can be increased. For example, when the input sequence 100000 .. is input to a turbo coder having a restriction length of K = 4, the output of each component coder of the turbo coder is a binary sequence having a periodicity of 2 (K-1) -1 = 7. (periodic binary sequence) will be generated. The specific pattern of this sequence is related to the generator polynomial of the turbocoder. That is, a finite code sequence is generated by resetting the state of the component encoder to a zero state by a specific input sequence rather than a zero sequence.

예를 들어, K=4인 경우 입력 시퀀스가 10000001000000000… 인 시퀀스는 두 번째 1을 코딩한후 제1구성부호기의 상태를 zero 상태로 리셋한다. 또한 주기성 관계로 인해 두개의 1 사이의 거리가 7의 배수인 모든 경우 제1구성부호기의 상태를 마찬가지로 리셋하게 된다. 따라서 그 이후의 코드는 모두 zero가됨으로써 터보코드의 최소거리(minimum distance)를 낮추는 원인이 된다. 이러할 경우 터보 인터리버는 입력 시퀀스의 이러한 패턴(pattern)을 깸으로써 두 번째 구성부호기에서는 보다 높은 코드 웨이트를 가지도록 하여 전체 터보코더의 최소 웨이트를 높여야 한다.For example, if K = 4, the input sequence is 10000001000000000…. The in sequence resets the state of the first component encoder to zero after coding the second 1. In addition, due to the periodic relationship, the state of the first component encoder is similarly reset in all cases where the distance between two 1s is a multiple of 7. Therefore, all subsequent codes become zero, which causes the minimum distance of the turbo code to be lowered. In this case, the turbo interleaver must know this pattern of the input sequence, so that the second component encoder will have a higher code weight to increase the minimum weight of the entire turbocoder.

상기와 같은 역할을 하는 터보 인터리버는 설계 방식을 기준으로 크게 2가지 종류로 나눌 수 있다. 1차원과 2차원 터보 인터리버이다. 상기 1차원 인터리버는 코딩될 프레임을 하나의 대상으로 생각하고 전체를 인터리빙하는 것을 의미한다. 그리고 상기 2차원 인터리버는 전체 프레임을 같은 크기의 서브프레임(sub-frame) 또는 복수개의 그룹들로 분할 한 후 각각의 그룹이 독립적으로 해당하는 인터리빙 규칙(interleaving rule)을 사용하여 인터리빙을 수행하는 것이다. 일반적으로 2차원 터보 인터리버의 성능이 1차원 터보 인터리버에 비해 우수하고 또한 각각의 그룹 단위로 인터리빙 규칙을 가지기 때문에 최적화 과정이 1차원의 경우에 비해 쉽다.Turbo interleaver that serves as described above can be largely divided into two types based on the design method. One and two dimensional turbo interleaver. The one-dimensional interleaver means to consider a frame to be coded as one object and interleave the whole. The two-dimensional interleaver divides an entire frame into sub-frames or a plurality of groups having the same size, and then performs interleaving using an interleaving rule corresponding to each group independently. . In general, the optimization process is easier than the one-dimensional case because the performance of the two-dimensional turbo interleaver is superior to that of the one-dimensional turbo interleaver and has an interleaving rule in each group unit.

도 4는 2차원 터보 인터리버(Turbo interleaver)의 일반적 동작 원리를 설명하기 위한 도면이다.4 is a view for explaining the general operation principle of the two-dimensional turbo interleaver (Turbo interleaver).

상기 도 4를 참조하면, Group0, Group1, Group2, Group3는 입력 프레임을 4개의 그룹들로 분할하였을 때 각각의 그룹을 나타내는 것이다. P0(k)는 상기 Group0의 데이터를 인터리빙하기 위한 인터리빙 규칙(interleaving rule)을 나타내고, P1(k)는 상기 Group1의 데이터를 인터리빙하기 위한 인터리빙 규칙을 나타내며, P2(k)는 상기 Group2의 데이터를 인터리빙하기 위한 인터리빙 규칙을 나태내고, P3(k)는 상기 Group3의 데이터를 인터리빙하기 위한 인터리빙 규칙을 나타낸다. 한편, P0(0),P1(0),P2(0) 및 P3(0)은 상기 k가 '0'일 때 각각의 그룹에서 인터리빙된 데이터들의 어드레스들을 나타내고, P0(1),P1(1),P2(1) 및 P3(1)은 상기 k가 '1'일 때 각각의 그룹에서 인터리빙된 데이터들의 어드레스들을 나타내며, P0(2),P1(2),P2(2) 및 P3(2)은 상기 k가 '2'일 때 각각의 그룹에서 인터리빙된 데이터들의 어드레스들을 나타내고, P0(3),P1(3),P2(3) 및 P3(3)은 상기 k가 '3'일 때 각각의 그룹에서 인터리빙된 데이터들의 어드레스들을 나타낸다. 즉, 매 시점 k에서 각각의 그룹에 해당하는 인터리빙 규칙 Pg(k)에 의해 각각의 그룹에서 하나의 데이터 비트를 독출하는 방식이다. 이러한 방식은 1차원 방식인 그룹수가 1인 경우의 자연스러운 확장이라 볼 수 있다. 물론 위의 예와 같이 그룹들을 선택함에 있어서 순차적(sequential)으로 증가하는 방식과는 달리 어떤 특정 규칙을 줄 수 있을 것이다. 예를 들어 그룹선택을 위의 도 4에서와 같이 0, 1, 2, 3의 순서가 아니라, 0 2 1 3과 같이 가져감으로써 전체 인터리빙 규칙(interleaving rule)을 변경할 수 있다. 즉, 상기 도 4는 상기 입력 프레임의 데이터 비트수가 16개이고, 상기 입력 프레임을 각각 4비트를 가지는 4개의 그룹으로 분할하여 각각의 그룹이 해당되는 인터리빙 규칙에 의해 인터리빙하는 경우에 대해 설명하고 있다.Referring to FIG. 4, Group0, Group1, Group2, and Group3 represent each group when the input frame is divided into four groups. P0 (k) represents an interleaving rule for interleaving the data of Group0, P1 (k) represents an interleaving rule for interleaving the data of Group1, and P2 (k) represents the data of the Group2 An interleaving rule for interleaving is shown, and P3 (k) represents an interleaving rule for interleaving data of Group3. Meanwhile, P0 (0), P1 (0), P2 (0) and P3 (0) represent addresses of interleaved data in each group when k is '0', and P0 (1), P1 (1). ), P2 (1) and P3 (1) represent addresses of interleaved data in each group when k is '1', and P0 (2), P1 (2), P2 (2) and P3 (2). ) Denotes the addresses of interleaved data in each group when k is '2', and P0 (3), P1 (3), P2 (3) and P3 (3) when k is '3'. Represent the addresses of interleaved data in each group. That is, one data bit is read from each group by the interleaving rule Pg (k) corresponding to each group at each time point k. This method can be regarded as a natural extension when the number of groups, which is a one-dimensional method, is one. Of course, unlike the method of increasing sequential in selecting groups as in the above example, it may give a certain rule. For example, the entire interleaving rule may be changed by bringing the group selection as 0 2 1 3 rather than the order of 0, 1, 2, 3 as shown in FIG. 4 above. That is, FIG. 4 illustrates a case in which the number of data bits of the input frame is 16, and the input frame is divided into four groups each having 4 bits, and each group is interleaved by a corresponding interleaving rule.

위와 같은 2차원 터보 인터리빙을 수행할 경우 문제점이 발생할 수 있다. 그것은 그룹수가 정확히 구성부호기의 주기 또는 주기의 배수와 같아진다면 이는 터보코드의 최소 거리(minimum distance)를 크게 저하시키게 된다. 예를 들어, k=4인 경우 주기가 7이므로 그룹의 수를 7혹은 7의 배수로 가져간다면 각각의 구성부호기를 zero 상태로 리셋할 가능성이 매우 높아진다.Problems may occur when performing 2D turbo interleaving as described above. If the number of groups is exactly equal to the period of the component encoder or a multiple of the period, this will greatly reduce the minimum distance of the turbo code. For example, if k = 4, the period is 7, so if you take the number of groups in multiples of seven or seven, the probability of resetting each component encoder to zero is very high.

이러한 현상을 보이기 위해 첨부된 도면 도 5에서 터보코더의 입력 시퀀스가 100000010000..인 경우 인터리빙후에도 상기 입력 시퀀스를 그대로 유지하는 최악의 경우의 예를 보였다. 도시된 바와 같이, 인터리빙된 후에도 기존의 입력 시퀀스의 패턴이 그대로 유지됨을 알 수 있다. 따라서 두 번째 구성부호기 또한 zero 상태에서 리셋됨으로써 터보코드의 웨이트가 매우 낮아짐을 알 수 있다. 이는 그룹수가 7의 배수 인 모든 경우에 해당하나, 최소 거리의 발생은 7 또는 14인 경우가 대부분이 된다. 이렇게 설계된 터보 인터리버는 최소 거리가 매우 낮아서 전체 터보코드(turbo codes)의 BER (Bit Error Rate) 또는 FER(Frame Error Rate) 성능을 저하시키는 요인이 된다.To show this phenomenon, in the accompanying drawings, the worst case of the input sequence of the turbo coder is 100000010000 .. The input sequence is maintained even after interleaving. As shown, it can be seen that the pattern of the existing input sequence is maintained even after interleaving. Therefore, it can be seen that the weight of the turbo code is very low because the second component encoder is also reset in the zero state. This is true for all cases where the number of groups is a multiple of 7, but most occurrences of the minimum distance are 7 or 14. The turbo interleaver designed in this way has a very low minimum distance, which degrades the bit error rate (BER) or frame error rate (FER) performance of the entire turbo codes.

따라서, 본 발명은 2차원 터보 인터리버(Turbo interleaver)를 설계할 때 위와 같은 문제점을 해결하기 위해서 그룹선택 패턴을 다르게 가져감으로써, 특정 그룹을 선택하고 상기 특정 그룹을 선택하는 주기를 터보코더의 구성부호기의 주기와 어긋나게 한다. 즉, 본 발명은 2차원 터보인터리버의 그룹선택에 있어서 코더의 특성을 파악하여 터보코드의 최소거리(minimum distance)를 최대화 하는데 목적이 있다.Therefore, in the present invention, when designing a two-dimensional turbo interleaver (Turbo interleaver) to solve the above problems by bringing the group selection pattern differently, the cycle of selecting a specific group and the specific group to configure the turbo coder Offset the period of the encoder. That is, the present invention aims to maximize the minimum distance of the turbo code by grasping the characteristics of the coder in group selection of the two-dimensional turbo interleaver.

이하 본 발명의 실시 예에 따른 상기 터보코드의 최소거리를 최대화하는 터보 인터리빙 장치에 대해 상세히 설명한다.Hereinafter, a turbo interleaving apparatus for maximizing a minimum distance of the turbo code according to an embodiment of the present invention will be described in detail.

그룹 선택의 주기성을 깨는 방식으로 가장 효율적인 방식은 매 주기마다 처음으로 선택될 그룹의 시작을 다르게 가져가는 방식을 사용할 수 있다. 하기 <표 1>에서 k=4이고 그룹수가 7인 경우, 이러한 방식의 예를 보여준다. 하기 <표 1>에서 그룹선택이 순차적이면서 순환쉬프트(cyclic shift)하는 것을 예로 설명하였지만, 그룹선택이 미리 정해지는 특정패턴을 가지고 랜덤하면서 순환쉬프트하는 것도가능하다.The most efficient way to break the periodicity of group selection is to take a different start of the group to be selected first in every cycle. In the following Table 1, k = 4 and the number of groups is 7, an example of such a scheme is shown. In the following Table 1, group selection is sequential and cyclic shift is described as an example. However, it is also possible to perform random and cyclic shift with a specific pattern in which group selection is predetermined.

shift stepshift step 그룹 선택 순서Group Selection Order 00 01234560123456 01234560123456 01234560123456 01234560123456 01234560123456 01234560123456 01234560123456 01234560123456 1One 01234560123456 12345601234560 23456012345601 34560123456012 45601234560123 56012345601234 60123456012345 01234560123456 22 01234560123456 23456012345601 45601234560123 60123456012345 12345601234560 34560123456012 56012345601234 01234560123456 33 01234560123456 34560123456012 60123456012345 23456012345601 56012345601234 12345601234560 45601234560123 01234560123456 44 01234560123456 45601234560123 12345601234560 56012345601234 23456012345601 60123456012345 34560123456012 01234560123456 55 01234560123456 56012345601234 34560123456012 12345601234560 60123456012345 45601234560123 23456012345601 01234560123456 66 01234560123456 60123456012345 56012345601234 45601234560123 34560123456012 23456012345601 12345601234560 01234560123456

예를들어, 상기 표 1에서 쉬프트스텝(shift step)이 2인 경우, 제1주기에서는 "0123456" 순으로 그룹을 선택하고, 제2주기에서는 그룹선택을 상기 제1주기에서의 선택순서를 2만 쉬프트시켜 "2345601" 순으로 그룹을 선택한다. 즉, 매 선택주기마다 이전 선택주기에서의 그룹선택순서를 2만큼 쉬프트시킨 선택순서를 가지고 그룹을 선택한다. 상기 <표 1>과 같이 순환쉬프트 방식으로 그룹을 선택할 경우 원래의 순서대로 되돌아오는 순서가 7배 멀어지므로 최소거리를 훨씬 크게 가져갈 수 있다. 즉 shift step=0인 경우는 다음 선택주기에서 바로 처음과 같은 선택주기의 그룹 선택 패턴이 발생되지만 shift step=1,2,3,4,5,6인 경우는 훨씬 나중에 처음의 선택 패턴이 발생된다. 즉 코더 주기 단위의 그룹선택순서를 순환쉬프트(cyclic shift)방식으로 이동하며서 터보코더 자체의 주기와 어긋나게 한다.For example, when the shift step is 2 in Table 1, the group is selected in the order of "0123456" in the first period, and the group selection is selected in the first period in the second period. Only shift is selected in order of "2345601". That is, in every selection cycle, a group is selected with the selection sequence shifted by two in the group selection sequence in the previous selection cycle. When the group is selected by the cyclic shift method as shown in Table 1, the order of returning the original order is 7 times farther, so that the minimum distance can be taken much larger. That is, if shift step = 0, the group selection pattern of the same selection period is generated immediately in the next selection period, but if shift step = 1,2,3,4,5,6, the first selection pattern occurs much later. do. In other words, the group selection order in units of coder cycles is shifted by the cyclic shift method, so as to deviate from the cycle of the turbo coder itself.

이러한 순환쉬프트방식의 그룹 선택은 매우 간단하게 구현된다. 각각의 그룹 선택은 하기 수식과 같이 구해진다.This cyclic shift group selection is very simple. Each group selection is obtained by the following formula.

g = (clk%NG+ shift_step*k)%Ngfor clk=0, … ,frame_length-1g = (clk% N G + shift_step * k)% N g for clk = 0,... , frame_length-1

여기서 Ng는 그룹수이며, clk은 비트단위의 데이터 클럭(data clock)을 의미하는 일종의 카운터(counter)이며, k는 매 그룹선택주기(selection cycle)마다 1씩 증가하는 카운터로서 k=0으로 초기화 되어 있으며, 해당 그룹선택주기에서의 처음 선택하는 그룹의 번호를 나타낸다. shift_step은 GCD(2K-1,shift_step)=1를 만족하는 임의의 수로 선택가능하며 구속장(K)에 의존하는 상수이다. 즉, 두개의 카운터와 하나의 어드레스(adder)만으로 순환쉬프트방식을 구현할수 있다.Where N g is the number of groups, clk is a counter that represents the data clock in bits, and k is a counter that increments by 1 for each group selection cycle, with k = 0. It is initialized and shows the number of the first group selected in the group selection period. shift_step is a constant that can be selected to be any number satisfying GCD (2 K-1 , shift_step) = 1 and depends on the constraint field K. That is, a cyclic shift method can be implemented by using only two counters and one address.

예를들어, Ng= 7이고 shift_step = 1이면, clk 는 0,1,2,3,4,5,6,|7,8,9,10,11,12,13,|.... 이 되면, k =0,0,0,0,0,0,0,|1,1,1,1,1,1,1,|...이 되고, 그에 따라 g=0,1,2,3,4,5,6,|1,2,3,4,5,6,0|...이 된다.For example, if N g = 7 and shift_step = 1, clk is 0,1,2,3,4,5,6, | 7,8,9,10,11,12,13, | .... Then k = 0,0,0,0,0,0,0, | 1,1,1,1,1,1,1, | ..., so g = 0,1,2 , 3,4,5,6, | 1,2,3,4,5,6,0 | ...

지금까지는 그룹을 선택함에 있어서 그룹 선택순서가 순차적으로 증가하는 경우의 순환영역쉬프트 방식에 대해 설명하였으나, 앞서 언급했듯이 터보 인터리버의 거리성질(distance property)를 좀 더 크게 가져가게 하기 위해서는 각각의 그룹에서 임의의 인터리빙 어드레스(interleaved address)를 뽑아 낼 때 랜덤하게 가져갈 수도 있다.Until now, the cyclic area shift method in the case of sequentially increasing group selection order in selecting a group has been described. However, as mentioned above, in order to make the distance property of the turbo interleaver larger, It may be taken randomly when extracting any interleaved address.

예를들어, k=4이고 영역수 7인 경우를 가정한다. 이런 경우 어떠한 그룹멀티플렉싱(group multiplexing)방식을 사용한다고 하더라도 상기한 순환쉬프트(cyclic group shift) 없이는 그룹선택의 주기를 깰 수 없기 때문에, 먼저 순환쉬프트에 의해 그룹선택의 주기를 늘이고 난후, 상기 그룹 멀티플렉싱이 소정 패턴에 의해 다시 그룹선택을 랜덤화시킨다. 여기서 상기 그룹 멀티플렉싱이라 함은 특정 패턴에 의해 랜덤하게 그룹을 선택하는 것이다. 여기서, 순환쉬프트에 의해 그룹선택순서가 쉬프트되더라도 그룹들을 랜덤하게 선택하기 위한 특정 패턴은 변하지 않는다는 것이다. 즉, 상기 특정패턴이 쉬프트되면서 그룹선택이 이루어지는 것이다.For example, assume that k = 4 and the number of regions 7. In this case, even if any group multiplexing method is used, the period of group selection cannot be broken without the cyclic group shift described above. Therefore, the group multiplexing is first increased after the cyclic shift. This predetermined pattern causes the group selection to be randomized again. Here, the group multiplexing means selecting a group at random according to a specific pattern. Here, even if the group selection order is shifted by the cyclic shift, the specific pattern for randomly selecting groups does not change. That is, group selection is performed while the specific pattern is shifted.

도 6은 본 발명에 따른 2차원 인터리빙 장치에서 그룹선택을 랜덤화시키는 그룹 멀티플렉싱 오퍼레이션과 그룹선택의 주기를 깨기 위해 매 주기마다 그룹선택순서를 쉬프트시키는 순환쉬프트 오프레이션(poeration)을 함께 구비하는 그룹선택기를 도시하고 있다.FIG. 6 is a group selector including a group multiplexing operation for randomizing group selection and a cyclic shift pore for shifting the group selection order every cycle in order to break a cycle of group selection in the two-dimensional interleaving apparatus according to the present invention. It is shown.

상기 도 6을 참조하면, 먼저 그룹수 NG가 2(K-1)-1의 배수인지를 파악하고 그런 경우 순환쉬프트방식(cyclic group shift operation)에 의해 그룹선택의 주기를 늘린다. 그런 후 그룹멀티플렉서(group multiplexer)가 이들 바탕으로 특정패턴에 의해 그룹들을 랜덤하게 선택한다.Referring to FIG. 6, first, it is determined whether the number of groups N G is a multiple of 2 (K-1) −1, and in this case, the period of group selection is increased by a cyclic group shift operation. A group multiplexer then randomly selects the groups by a specific pattern based on these.

도 7은 본 발명의 실시 예에 따른 2차원 인터리빙을 수행하기 위한 어드레스 생성장치를 도시하고 있다.7 illustrates an address generator for performing two-dimensional interleaving according to an embodiment of the present invention.

상기 도 7를 참조하면, 어드레스 생성기들(711-71N)은 각각 대응되는 그룹의 어드레스 생성영역에서 주어진 인터리빙 규칙에 의해 독출 어드레스를 생성한다. 제어기721은 선택기731의 멀티플렉싱을 제어한다. 상기 선택기731은 상기 제어기721의 제어하에 상기 어드레스 생성기들(711-71N)이 생성한 어드레스를 선택 출력한다. 이렇게 출력되어진 어드레스는 인터리버 메모리212에 순차로 저장되어있는 입력 프레임 데이터를 독출하는데 사용된다. 이와 같이 인터리버 크기를 다수개의 그룹들로 구분하여 각 그룹별로 인터리빙하여 어드레스를 발생하고, 각 그룹별로 발생된 어드레스를 순차적 또는 랜덤하게 선택하여 독출 어드레스로 사용하는 것을 2차원 인터리빙 방식이라 한다. 이 경우, 우수한 인터리빙 성질을 얻고자 할 경우, 상기 선택기의 그룹 선택순서가 중요한데, 본 발명에서는 기본적으로 순환쉬프트방식에 의해 매 주기마다 그룹선택순서를 쉬프트시키는 방식을 제안하고, 부가적으로 인터리버의 거리성질을 좀더 크게 가져가기 위해 그룹선택순서를 랜덤화시키는 방식을 제안한다.Referring to FIG. 7, the address generators 711-71N each generate a read address by a given interleaving rule in the address generation region of the corresponding group. Controller 721 controls the multiplexing of selector 731. The selector 731 selects and outputs addresses generated by the address generators 711-71N under the control of the controller 721. The address thus output is used to read the input frame data sequentially stored in the interleaver memory 212. In this way, the size of the interleaver is divided into a plurality of groups, interleaving is generated for each group, and an address generated for each group is sequentially or randomly selected and used as a read address. In this case, in order to obtain excellent interleaving properties, the group selection order of the selector is important. In the present invention, a method of shifting the group selection order every cycle by a cyclic shift method is basically proposed. In order to bring more distance properties, we propose a method of randomizing group selection order.

상기 도 7의 구성에 근거한 동작을 살펴보면, 우선, 어드레스 생성기들(711-71N)은 각각 대응하는 그룹에서 자신에게 주어진 인터리빙 규칙(interleaving rule)을 가지고 어드레스를 발생한다. 예를들어, 상기어드레스 생성기는 어드레스 생성을 위해 선형 피드백 쉬프트 레지스터(LFSR;Linear Feedback Shift Register)를 사용할수 있다. 그리고 상기 제어기721은 상기 어드레스 생성기들(711-71N)이 발생한 어드레스들을 선택하기 위한 선택신호를 상기 선택기731로 제공한다. 여기서 상기 제어기721은 상기 표 1에서와 같이 순환쉬프트방식에 의한 그룹선택신호를 출력한다. 예들들어, 쉬프트스텝이 2인 경우, 제1주기에서는 0123456, 제2주기에서는 2345601.... 제7주기에서는 5601234 순으로 매 주기마다 그룹선택순서를 '2'만큼 쉬프트시키는 선택신호를 출력한다. 여기서, 상기 제어기721은 인터리버의 거리 성질을 더 좋게 하기 위해서 특정패턴에 의해 그룹들을 랜덤하게 선택하도록 제어할수 있다. 단, 상기 특정패턴은 매 Ng그룹 선택때마다 순서가 쉬프트되어질 뿐 그 순서가 바뀌지는 않는다. 그리고 상기 선택기731은 상기 제어기721로부터의 상기 선택신호에 의해 상기 어드레스생성기들이 생성한 어드레스를 선택 출력한다. 여기서 상기 선택된 어드레스는 인터리버 메모리212에 순차로 저장되어 있는 입력 프레임 데이터를 무작위로 읽어내는데 이용된다.Referring to the operation based on the configuration of FIG. 7, the address generators 711-71N each generate an address with an interleaving rule given to them in the corresponding group. For example, the address generator may use a Linear Feedback Shift Register (LFSR) for address generation. The controller 721 provides the selector 731 with a selection signal for selecting addresses from which the address generators 711-71N have occurred. The controller 721 outputs the group selection signal by the cyclic shift method as shown in Table 1 above. For example, when the shift step is 2, a selection signal for shifting the group selection order by '2' is output every cycle in the order of 0123456 in the first period and 2345601 in the second period. . In this case, the controller 721 may control to randomly select groups by a specific pattern in order to further improve the distance property of the interleaver. However, the specific pattern is shifted only every N g group selection, but the order is not changed. The selector 731 selects and outputs the addresses generated by the address generators based on the selection signal from the controller 721. The selected address is used to randomly read input frame data sequentially stored in the interleaver memory 212.

여기서 상기 그룹선택을 제어하는 제어기721의 일 예를 도 8a에 도시하고, 상기 도 8a의 구성에 따른 타이밍도를 도 8b에 도시하고 있다.An example of the controller 721 controlling the group selection is shown in FIG. 8A, and a timing diagram according to the configuration of FIG. 8A is shown in FIG. 8B.

상기 도 8a를 참조하면, 연산기803은 상기 도 9b의 제2클럭신호(clk2)의 클럭펄스들에 응답하여 mod 7 연산한 값을 카운터801의 사작카운터값으로 제공한다. 그러면, 상기 카운터801은 상기 제1클럭신호(clk1)의 클럭펄스들에 응답하여 상기 연산기803으로부터 제공되는 카운터값을 시작으로 카운팅을 수행하고, 상기 카운터값(counter value)을 그룹선택순서를 저장하고 있는 룩업테이블805의 어드레스로 사용한다. 여기서 상기 카운터801은 [0..6]을 순환(cyclic) 방식으로 카운팅하는 카운터이다.Referring to FIG. 8A, the calculator 803 provides a value calculated by mod 7 in response to clock pulses of the second clock signal clk2 of FIG. 9B as a counter count value of the counter 801. Then, the counter 801 performs counting starting from the counter value provided from the calculator 803 in response to the clock pulses of the first clock signal clk1, and stores the counter value in a group selection order. It is used as the address of the lookup table 805 being used. The counter 801 is a counter for counting [0..6] in a cyclic manner.

도 9a는 상기 제어기721의 다른 예를 도시하고 있고, 도 9b는 상기 도 9a의 구성에 따른 타이밍도를 도시하고 있다.9A shows another example of the controller 721, and FIG. 9B shows a timing diagram according to the configuration of FIG. 9A.

상기 도 9a를 참조하면, 카운터903은 상기 도 9b의 클럭신호(clk)의 클럭펄스들에 응답하여 상기 도 9b의 카운터신호(counter)를 출력한다. 비교기909는 상기 카운터903로부터의 카운터신호와 미리정해진수 '6'을 비교하여 동일할 경우 로드카운터901 및 쉬프트카운터905로 동작펄스(ACT : activation pulse)를 인가한다. 그러면, 상기 쉬프트카운터905는 상기 동작펄스 인가시 상기 도 9b의 카운터신호(shift counter)를 상기 로드카운터901로 출력한다. 그러면, 상기 로드카운터901은 상기 클럭신호의 클럭펄스들에 응답하여 매주기마다 '1'만큼 쉬프트된 상기 도 9b의 카운터값(loadable counter)를 룩업테이블907에 그룹선택순서로 기록한다. 여기서 상기 카운터901은 [0..6]을 순환방식으로 카운팅하는 카운터이다.Referring to FIG. 9A, the counter 903 outputs the counter signal counter of FIG. 9B in response to clock pulses of the clock signal clk of FIG. 9B. The comparator 909 compares the counter signal from the counter 903 with a predetermined number '6' and applies an activation pulse (ACT) to the load counter 901 and the shift counter 905 when they are the same. Then, the shift counter 905 outputs the shift counter of FIG. 9B to the load counter 901 when the operation pulse is applied. Then, the load counter 901 writes the loadable counter of FIG. 9B in the lookup table 907 in the group selection order, shifted by '1' every cycle in response to the clock pulses of the clock signal. The counter 901 is a counter for counting [0..6] in a cyclic manner.

상술한 바와 같이 본 발명에서는 2차원 인터리빙을 수행할 때 인터리버의 거리성질을 만족시킬수 있는 방식을 제안한다. 즉, 본 발명은 2차원 인터리버를 구현할 때 특정 그룹을 선택하는 주기를 터보코더의 주기와 다르게 하여 터보코더 내부에 구비되는 구성부호기가 제로상태에서 리셋트되는 것을 방지하므로서 터보코더의 최소거리(minimum distance)를 최대화 한다.As described above, the present invention proposes a method capable of satisfying the distance quality of the interleaver when performing 2D interleaving. That is, the present invention prevents the component encoder included in the turbo coder from being reset in the zero state by changing the period for selecting a specific group from the turbo coder when implementing the 2D interleaver. distance).

Claims (18)

n개의 데이터 열을 m차의 원시 다항식을 사용하여 부호화하는 제1궤환 길쌈부호기와, 상기 n개의 데이터를 k개의 그룹들로 나누어 각 그룹으로부터 각각 취한 n개의 데이터를 인터리빙하여 출력하는 2차원 인터리버와, 상기 인터리버로부터의 상기 인터리빙된 데이터를 m차의 상기 원시 다항식을 사용하여 부호화하는 제2궤환 길쌈부호기를 포함하는 부호화 장치에 있어서,a first feedback convolutional encoder for encoding n data strings using an order m polynomial, a two-dimensional interleaver for dividing the n data into k groups, and interleaving and outputting n data taken from each group; A coding apparatus comprising a second feedback convolutional encoder for encoding the interleaved data from the interleaver using the m-th order raw polynomial, 상기 k가 2m-1의 양의 정수배이고 상기 데이터 그룹들중 적어도 하나가 특정 데이터 패턴을 가질 때 상기 인터리버의 출력이 상기 특정 데이터 패턴이 되지 않는 데이터를 발생하도록 상기 데이터 그룹들의 선택을 제어하는 제어기를 포함함을 특징으로 하는 장치.Controlling the selection of the data groups such that when the k is a positive integer multiple of 2 m −1 and at least one of the data groups has a specific data pattern, the output of the interleaver generates data that does not become the specific data pattern And a controller. 제1항에 있어서,The method of claim 1, 상기 제어기는 각 선택 사이클(each selection cycle)마다 그룹 선택 순서를 일정하게 쉬프트시킴을 특징으로 하는 장치.And the controller shifts the group selection order constantly for each selection cycle. 제1항에 있어서,The method of claim 1, 상기 특정 데이터 패턴은 두 개의 '1' 사이의 거리가 2m-1의 배수인 시퀀스임을 특징으로 하는 장치.And said specific data pattern is a sequence in which the distance between two '1's is a multiple of 2 m-1 . m개의 메모리를 가지는 궤환부호기와, 2m-1의 정수배의 그룹들을 가지며 각 그룹은 주어진 크기의 어드레스들을 가지는 2차원 인터리버를 포함하는 통신시스템의 인터리빙 방법에 있어서,In the interleaving method of a communication system comprising a feedback encoder having m memories and a two-dimensional interleaver having groups of integer multiples of 2 m −1, each group having addresses of a given size, 각 그룹내의 상기 어드레스들중 하나를 상기 그룹들에 걸쳐 선택하는 그룹 선택 사이클이 2m-1의 정수배가 되지 않도록 어드레스들을 선택하는 과정을 포함하는 것을 특징으로 하는 방법.Selecting addresses so that a group selection cycle of selecting one of the addresses in each group across the groups does not become an integer multiple of 2 m −1. 제4항에 있어서,The method of claim 4, wherein 상기 제어기는 각 선택 사이클마다 그룹 선택 순서를 일정하게 쉬프트시킴을 특징으로 하는 방법.And the controller shifts the group selection order constantly for each selection cycle. n개의 데이터 열을 m차의 원시 다항식을 사용하여 부호화하는 제1궤환 길쌈부호기와, 상기 n개의 데이터를 k개의 그룹들로 나누어 각 그룹으로부터 각각 취한 n개의 데이터를 인터리빙하여 출력하는 2차원 인터리버와, 상기 인터리버로부터의 상기 인터리빙된 데이터를 m차의 상기 원시 다항식을 사용하여 부호화하는 제2궤환 길쌈부호기를 포함하는 부호화 장치에 있어서,a first feedback convolutional encoder for encoding n data strings using an order m polynomial, a two-dimensional interleaver for dividing the n data into k groups, and interleaving and outputting n data taken from each group; A coding apparatus comprising a second feedback convolutional encoder for encoding the interleaved data from the interleaver using the m-th order raw polynomial, 상기 k가 2m-1의 양의 정수배이고, 상기 k개의 그룹들중 특정 하나의 그룹을 선택한후 다시 상기 특정 하나의 그룹을 선택하는 사이클이 상기 궤환길쌈부호기의 주기와 상이하도록 상기 그룹들의 선택을 제어하는 제어기를 포함하는 것을 특징으로 하는 장치.Wherein the k is a positive integer multiple of 2 m −1, and the cycle of selecting a particular one of the k groups and then again selecting the particular one is different from the period of the feedback convolutional encoder Apparatus comprising a controller for controlling the. 제6항에 있어서,The method of claim 6, 상기 제어기는 각 선택 사이클마다 그룹 선택 순서를 일정하게 쉬프트시킴을 특징으로 하는 장치.And the controller shifts the group selection order constantly for each selection cycle. 제6항에 있어서,The method of claim 6, 상기 m은 '3'이고, 상기 궤환길쌈부호기의 주기는 '7'임을 특징으로 하는 장치.M is '3', and the period of the feedback weaving encoder is characterized in that the '7'. n개의 데이터 열을 m차의 원시 다항식을 사용하여 부호화하는 제1궤환 길쌈부호기와, 상기 n개의 데이터를 k개의 그룹들로 나누어 각 그룹으로부터 각각 취한 n개의 데이터를 인터리빙하여 출력하는 2차원 인터리버와, 상기 인터리버로부터의 상기 인터리빙된 데이터를 m차의 상기 원시 다항식을 사용하여 부호화하는 제2궤환 길쌈부호기를 포함하는 부호화 장치에 있어서,a first feedback convolutional encoder for encoding n data strings using an order m polynomial, a two-dimensional interleaver for dividing the n data into k groups, and interleaving and outputting n data taken from each group; A coding apparatus comprising a second feedback convolutional encoder for encoding the interleaved data from the interleaver using the m-th order raw polynomial, 상기 k가 2m-1의 양의 정수배이고, 상기 k개의 그룹들중 특정 하나의 그룹을 선택한후 다시 상기 특정 하나의 그룹을 선택하는 사이클이 2m-1의 정수배가 되지 않도록 상기 그룹들의 선택을 제어하는 제어기를 포함하는 것을 특징으로 하는 장치.Wherein k is 2 m so that the amount of times the integer 1, to select the particular one group of the k groups are cycles in which the re-select a particular one of the group is not a multiple of 2 m -1 selection of the group Apparatus comprising a controller for controlling the. 제9항에 있어서,The method of claim 9, 상기 제어기는 각 선택 사이클마다 그룹 선택 순서를 일정하게 쉬프트시킴을 특징으로 하는 장치.And the controller shifts the group selection order constantly for each selection cycle. 제10에 있어서,The method according to claim 10, 상기 그룹선택순서는 특정 패턴에 의해 랜덤화된 시퀀스임을 특징으로 하는장치.And the group selection order is a sequence randomized by a specific pattern. 제9항에 있어서, 상기 인터리버는,The method of claim 9, wherein the interleaver, 상기 n개의 데이터를 순차로 저장하는 메모리와,A memory for sequentially storing the n pieces of data; 상기 k개의 그룹들의 각각에 대하여 주어진 인터비링 규칙을 가지고 독출 어드레스를 생성하는 어드레스 생성기와,An address generator for generating a read address with a given interfering rule for each of the k groups, 상기 제어기의 제어하에 상기 그룹들을 미리 예정된 순서에 따라 선택하고, 상기 선택된 그룹으로 부터의 독출 어드레스를 선택하는 선택기를 구비하며,And a selector for selecting the groups in a predetermined order under the control of the controller and selecting a read address from the selected group, 상기 선택기로부터의 독출 어드레스를 가지고 상기 메모리에서 상기 n개의 데이터를 출력함을 특징으로 하는 장치.And output the n pieces of data from the memory with a read address from the selector. n개의 데이터 열을 m차의 원시 다항식을 사용하여 부호화하는 제1궤환 길쌈부호기와, 상기 n개의 데이터를 k개의 그룹들로 나누어 각 그룹으로부터 각각 취한 n개의 데이터를 인터리빙하여 출력하는 2차원 인터리버와, 상기 인터리버로부터의 상기 인터리빙된 데이터를 m차의 상기 원시 다항식을 사용하여 부호화하는 제2궤환 길쌈부호기를 포함하는 부호화 장치에서 상기 인터리버의 인터리빙 방법에 있어서,a first feedback convolutional encoder for encoding n data strings using an order m polynomial, a two-dimensional interleaver for dividing the n data into k groups, and interleaving and outputting n data taken from each group; A method of interleaving an interleaver in an encoding apparatus comprising a second feedback convolutional encoder for encoding the interleaved data from the interleaver using the m-th order raw polynomial, 상기 k가 2m-1의 양의 정수배이고, 상기 k개의 그룹들중 특정 하나의 그룹을선택한후 다시 상기 특정 하나의 그룹을 선택하는 사이클이 2m-1의 정수배가 되지 않도록 상기 그룹들의 선택을 제어하는 과정을 포함하는 것을 특징으로 하는 방법.Wherein k is 2 m so that the amount of times the integer 1, to select the particular one group of the k groups are cycles in which the re-select a particular one of the group is not a multiple of 2 m -1 selection of the group The method comprising the step of controlling. 제13항에 있어서,The method of claim 13, 상기 제어과정은 각 선택 사이클마다 그룹 선택 순서를 일정하게 쉬프트시킴을 특징으로 하는 방법.And the control process shifts the group selection order constantly for each selection cycle. 제14에 있어서,The method according to claim 14, 상기 그룹선택순서는 특정 패턴에 의해 랜덤화된 시퀀스임을 특징으로 하는 방법.And the group selection order is a sequence randomized by a specific pattern. n개의 데이터 열을 m차의 원시 다항식을 사용하여 부호화하는 제1궤환 길쌈부호기와, 상기 n개의 데이터를 k개의 그룹들로 나누어 각 그룹으로부터 각각 취한 n개의 데이터를 인터리빙하여 출력하는 2차원 인터리버와, 상기 인터리버로부터의 상기 인터리빙된 데이터를 m차의 상기 원시 다항식을 사용하여 부호화하는 제2궤환 길쌈부호기를 포함하는 부호화 장치에서 상기 인터리버의 인터리빙 방법에 있어서,a first feedback convolutional encoder for encoding n data strings using an order m polynomial, a two-dimensional interleaver for dividing the n data into k groups, and interleaving and outputting n data taken from each group; A method of interleaving an interleaver in an encoding apparatus comprising a second feedback convolutional encoder for encoding the interleaved data from the interleaver using the m-th order raw polynomial, 상기 n개의 입력 데이터를 메모리에 순차로 저장하는 과정과,Sequentially storing the n pieces of input data in a memory; 상기 k개의 그룹들의 각각에 대하여 주어진 인터비링 규칙을 가지고 독출 어드레스를 생성하는 과정과,Generating a read address with a given interfering rule for each of the k groups, 상기 k가 2m-1의 양의 정수배이고, 상기 k개의 그룹들 중 특정 하나의 그룹을 선택한후 다시 상기 특정 하나의 그룹을 선택하는 주기가 2m-1의 정수배가 되지 않도록 상기 그룹들의 선택을 제어하는 과정과,Wherein k is a positive integer of 2 times m -1, so as to select the particular one of the group of the k groups is the period for re-selecting a particular one of the group is not a multiple of 2 m -1 selection of the group To control the process, 상기 선택된 그룹으로부터의 독출 어드레스를 가지고 상기 메모리로부터 상기 입력 데이터를 독출하는 과정을 포함하는 것을 특징으로 하는 방법.Reading the input data from the memory with a read address from the selected group. 제16항에 있어서,The method of claim 16, 상기 제어과정은 각 선택 사이클마다 그룹 선택 순서를 일정하게 쉬프트시키는 것임을 특징으로 하는 방법.The control method is characterized in that for shifting the group selection order constantly for each selection cycle. 제17에 있어서,The method of claim 17, 상기 그룹 선택 순서는 특정 패턴에 의해 랜덤화된 시퀀스임을 특징으로 하는 방법.And the group selection order is a sequence randomized by a specific pattern.
KR1020000018037A 1999-04-06 2000-04-06 2-dimensional interleaving apparatus and method KR100362557B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000018037A KR100362557B1 (en) 1999-04-06 2000-04-06 2-dimensional interleaving apparatus and method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1019990011799 1999-04-06
KR19990011799 1999-04-06
KR1020000018037A KR100362557B1 (en) 1999-04-06 2000-04-06 2-dimensional interleaving apparatus and method

Publications (2)

Publication Number Publication Date
KR20000071582A KR20000071582A (en) 2000-11-25
KR100362557B1 true KR100362557B1 (en) 2002-11-27

Family

ID=26634906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000018037A KR100362557B1 (en) 1999-04-06 2000-04-06 2-dimensional interleaving apparatus and method

Country Status (1)

Country Link
KR (1) KR100362557B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537420A (en) * 1994-05-04 1996-07-16 General Instrument Corporation Of Delaware Convolutional interleaver with reduced memory requirements and address generator therefor
JPH08265177A (en) * 1995-03-22 1996-10-11 Toshiba Corp Interleave data processing unit
JPH09102748A (en) * 1995-10-04 1997-04-15 Matsushita Electric Ind Co Ltd Interleave circuit
KR980012968A (en) * 1996-07-01 1998-04-30 배순훈 Structure of convolutional interleaver using static RAM

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537420A (en) * 1994-05-04 1996-07-16 General Instrument Corporation Of Delaware Convolutional interleaver with reduced memory requirements and address generator therefor
JPH08265177A (en) * 1995-03-22 1996-10-11 Toshiba Corp Interleave data processing unit
JPH09102748A (en) * 1995-10-04 1997-04-15 Matsushita Electric Ind Co Ltd Interleave circuit
KR980012968A (en) * 1996-07-01 1998-04-30 배순훈 Structure of convolutional interleaver using static RAM

Also Published As

Publication number Publication date
KR20000071582A (en) 2000-11-25

Similar Documents

Publication Publication Date Title
JP3574405B2 (en) Two-dimensional interleaving apparatus and method
KR100526512B1 (en) Interleaving apparatus and method for serially concatenated convolution code in a mobile telecommunication system
JP5394410B2 (en) Turbo code interleaver using linear congruence sequence
US6339834B1 (en) Interleaving with golden section increments
KR100346170B1 (en) Interleaving / deinterleaving apparatus and method of communication system
KR100350459B1 (en) Interleaving / deinterleaving apparatus and method of communication system
EP0963049A2 (en) Interleaving with golden section increments
KR20010080157A (en) Coding system having state machine based interleaver
JP2002541710A (en) Apparatus and method for interleaving / deinterleaving in a communication system
WO2002013449A2 (en) Apparatus and method for providing turbo code interleaving in a communications system
JPWO2006087792A1 (en) Encoding apparatus and encoding method
KR100453605B1 (en) Hybrid interleaver for turbo codes
KR100362557B1 (en) 2-dimensional interleaving apparatus and method
KR100330234B1 (en) Turbo interleaving apparatus and method
KR20000071545A (en) Interleaving and deinterleaving apparatus and method for a communication system
KR20040037624A (en) Method and apparatus for deinterleaving an interleaved data stream in communication system
KR100645730B1 (en) Method for interleaving using magic matrix
CA2273407C (en) Interleaving with golden section increments
CN100466479C (en) Block interleaving for turbo coding.
Encoder 3.1 Recursive Systematic Convolutional (RSC) Encoder

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101029

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee