KR100347501B1 - Optimized rate-compatible turbo encoding - Google Patents

Optimized rate-compatible turbo encoding Download PDF

Info

Publication number
KR100347501B1
KR100347501B1 KR1020007011264A KR20007011264A KR100347501B1 KR 100347501 B1 KR100347501 B1 KR 100347501B1 KR 1020007011264 A KR1020007011264 A KR 1020007011264A KR 20007011264 A KR20007011264 A KR 20007011264A KR 100347501 B1 KR100347501 B1 KR 100347501B1
Authority
KR
South Korea
Prior art keywords
rate
code
puncturing
turbo
compatible
Prior art date
Application number
KR1020007011264A
Other languages
Korean (ko)
Other versions
KR20010052246A (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 휴우즈 일렉트로닉스 코오포레이션
Publication of KR20010052246A publication Critical patent/KR20010052246A/en
Application granted granted Critical
Publication of KR100347501B1 publication Critical patent/KR100347501B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0066Parallel concatenated codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • H03M13/6368Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
    • H03M13/6381Rate compatible punctured turbo [RCPT] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0067Rate matching
    • H04L1/0068Rate matching by puncturing
    • H04L1/0069Puncturing patterns
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • 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/63Joint error correction and other techniques
    • H03M13/6306Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy

Abstract

터보 엔코딩 방법 및 장치는 높은 코드 레이트로 최적화되며 유니버셜 구성 코드로부터 유도된 레이트-호환가능 터보 코드의 세트를 이용한다. 터보 코드는 레이트-호환가능 펑처링 패턴을 갖는다. 이 방법은 상위 코드 레이트와 유니버셜한 최상의 레이트 1/2 구성 코드를 사용하여 제1 및 제2 엔코더에서 신호를 엔코드하는 단계 - 상기 제1 엔코더와 상기 제2 엔코더는 각각의 정보 비트에 대해 각각의 복수의 패리티 비트를 발생함-; 상위 레이트의 최상의 펑처링 패턴으로 각각의 엔코더에서 상기 각각의 복수의 패리티 비트를 펑처링하는 단계; 및 하위 레이트의 최상의 펑처링 패턴으로 상기 각각의 엔코더에서 상기 각각의 복수의 패리티 비트를 펑처링하는 단계를 포함한다. 변형에 있어서, 최상의 레이트 1/2 구성 코드는 다항식 1+D2+D3(8진수 13), 및 1+D+D3(8진수 15)의 결합(D는 데이터 비트)을 나타낸다. 터보 엔코더에는 본 발명을 구현하는 하드웨어가 제공된다.The turbo encoding method and apparatus utilizes a set of rate-compatible turbo codes that are optimized at a high code rate and derived from a universal configuration code. The turbo code has a rate-compatible puncturing pattern. The method comprises the steps of encoding a signal at a first encoder and a second encoder using an upper code rate and a universal best rate 1/2 configuration code, the first encoder and the second encoder having And generating a plurality of parity bits of the data; Puncturing each of the plurality of parity bits in each encoder with a best puncturing pattern of the highest rate; And puncturing each of the plurality of parity bits in the respective encoder with the best puncturing pattern of the subrate. In the variant, the best rate 1/2 configuration code represents the combination of polynomials 1 + D 2 + D 3 (octal 13) and 1 + D + D 3 (octal 15) (where D is the data bit). The hardware embodying the invention is provided in a turbo encoder.

Description

최적화 레이트-호환가능 터보 엔코딩{OPTIMIZED RATE-COMPATIBLE TURBO ENCODING}[0001] OPTIMIZED RATE-COMPATIBLE TURBO ENCODING [0002]

신호 감쇄 (자유공간 전파 손실) 및 다중 경로 유입 페이딩을 포함하는 신호 파형 및 스펙트럼 왜곡을 초래하는 RF 전파 채널을 통해 고품질의 통신을 제공하기 위해서는 지상 및 위성 무선 시스템에 포워드 에러 교정(FEC)이 요구된다. 이와 같은 결점들로, 무선 송신 및 수신기 장비의 설계, 변조 포맷, 에러 제어 스킴, 복조 및 디코딩 기술을 선택할 설계 목적, 및 시스템 성능과 구현 복잡성 간에 효율적인 균형을 함께 제공하는 하드웨어 구성요소를 고려하여야만 한다. 지상 및 위성 통신 채널 간과 같이 전파 채널 특성의 차이로, 자연적으로 시스템 설계의 결과가 크게 다르게 된다. 이와 유사하게, 새로운 상위 레이트 또는 보다 충실한 통신 서비스를 위한 증가된 시스템 조건을 충족시키기 위해 기존의 통신 시스템도 계속해서 발전하고 있다.To provide high quality communications over RF propagation channels that result in signal waveforms and spectral distortion, including signal attenuation (free space propagation loss) and multipath inflow fading, forward error correction (FEC) is required for terrestrial and satellite radio systems do. With these drawbacks, it is necessary to consider hardware components that together provide an efficient balance between the design of the radio transmission and receiver equipment, the modulation format, the error control scheme, the design objective to select demodulation and decoding techniques, and the system performance and implementation complexity . Due to differences in propagation channel characteristics, such as between terrestrial and satellite communication channels, the results of system design naturally vary greatly. Similarly, existing communication systems continue to evolve to meet increased system requirements for new higher rates or more robust communication services.

지상 셀룰러 이동 무선 전화의 경우에, 아날로그 이동 전화 시스템(AMPS)은 예시적인 제1세대 시스템이고: U.S. IS-136 및 유럽 GSM 시분할 다중액세스(TDMA) 표준 및 U.S. IS-95 코드 분할 다중액세스(CDMA) 표준은 제2세대 시스템이고; 현재 개발중인 광대역 CDMA 표준(즉, 미국에서는 CDMA 2000 및 유럽에서는 UTRA)은 제3세대 시스템이다.In the case of a terrestrial cellular mobile radiotelephone, the analog mobile telephone system (AMPS) is an exemplary first generation system: IS-136 and European GSM Time Division Multiple Access (TDMA) standards and U.S. The IS-95 Code Division Multiple Access (CDMA) standard is a second generation system; The currently developing broadband CDMA standard (i.e., CDMA 2000 in the US and UTRA in Europe) is a third generation system.

제3세대 시스템에서, 유연성있고, 고속 데이터 통신 서비스의 개발은 중요한 관심이 되고 있다. 바람직한 특징들은 레이트 적응을 수행하고, 다양한 품질 서비스(quality-of-service, QOS) 조건을 만족시키는 능력을 포함한다.In third generation systems, the development of flexible, high-speed data communication services is of major interest. Preferred features include the ability to perform rate adaptation and satisfy various quality-of-service (QOS) conditions.

통신 시스템용의 종래의 포워드 에러 교정(FEC) 스킴은 컨벌류션 코드, 리드-솔로몬 또는 BCH 코드와 같은 블럭 코드, 및/또는 축약 코딩 스킴의 사용을 포함한다.Conventional forward error correction (FEC) schemes for communication systems include the use of convolutional codes, block codes such as Reed-Solomon or BCH codes, and / or reduced coding schemes.

터보 코드(Turbo codes)는 순환 소프트 결정(soft-decision) 디코딩 방법에 의해 이상화된 채널의 중요한 클래스에 대한 이론적인 제한에 근접한 비트 에러 레이트(BER)를 제공하도록 논증되고 있는 비교적 새로운 부류의 블럭 코드이다.Turbo codes are a relatively new class of block codes that have been argued to provide a bit error rate (BER) close to the theoretical limit for an important class of idealized channels by a circular soft-decision decoding method to be.

터보 엔코더는 제1 구성 엔코더에 관련된 제2 구성 엔코더에 대한 정보 비트의 표현 순서를 랜덤화하는 인터리버에 의해 구분된 전형적으로 두개의 시스템적 순환 콘벌루션 코드("구성 코드(constituent codes)")의 병렬 연관으로 구성된다.터보 코드의 성능은 구성 코드, 인터리버, 정보 블럭 크기(일반적으로 높은 데이터 레이트에 따라 증가하는), 및 디코더 반복 회수에 따른다. 구성 코드가 혼합되어 있는 특정 터보 코드의 경우, 성능, 지연 및 구현 복잡성 조건을 절충하기 위해 블럭 크기 및 디코더 반복 회수를 이상적으로 조정할 수 있다. 그러나, 블럭 크기가 변함에 따라, 해당 클럭 크기에 일치하는 새로운 인터리버가 요구된다.The turbo encoder typically includes two systematic cyclic convolutional codes (" constituent codes ") separated by an interleaver that randomizes the representation order of the information bits for the second constituent encoder associated with the first constituent encoder The performance of the turbo code depends on the configuration code, the interleaver, the information block size (which generally increases with the higher data rate), and the number of decoder iterations. For a particular turbo code with mixed configuration codes, the block size and decoder iteration count can ideally be adjusted to compromise performance, delay, and implementation complexity requirements. However, as the block size changes, a new interleaver matching the corresponding clock size is required.

동기화 기지국을 갖는 CDMA 네트워크에서, (기지국에서 사용자 단말으로의) 포워드 링크 채널은 예를 들어, 왈시 하마드 확산 시퀀스를 사용하여 직교하도록 설계될 수 있다. 그러나, 의사 직교인 확산 시퀀스를 사용하여 비동기성으로 동작하는 (사용자 단말에서 기지국으로의) 역 링크 채널의 경우에는, 이는 일반적으로 가능하지 않다. 따라서, 동기성 CDMA 네트워크에서의 역 링크는 전형적으로 간섭이 보다 많게 되며, 따라서 포워드 링크 채널보다 강한 FEC(하위 레이트의 코드를 통한)를 필요로 할 수 있다.In a CDMA network with a synchronization base station, the forward link channel (from the base station to the user terminal) may be designed to be orthogonal using, for example, a Walsh-Hamad spreading sequence. However, in the case of a reverse link channel (from a user terminal to a base station) operating asynchronously using a pseudo-orthogonal spreading sequence, this is generally not possible. Thus, a reverse link in a synchronous CDMA network typically has more interference, and therefore may require a stronger FEC (via a code of the lower rate) than the forward link channel.

비동기성 CDMA 네트워크의 경우, 포워드 및 역 링크 채널은 간섭 레벨의 면에서 다소 유사하여, 두개의 링크 상에서 공통 FEC 스킴(또는 적어도 하나의 유사 FEC 스킴에서)을 사용하는 것이 가능하다.For asynchronous CDMA networks, the forward and reverse link channels are somewhat similar in terms of interference level, so it is possible to use a common FEC scheme (or at least one similar FEC scheme) on the two links.

터보 코드의 유연성과 고성능은 첨단 데이터 통신 서비스에 대해 잠재적으로 유망한 기술이 되고 있다. 따라서, 구현 복잡성을 최소화하면서 다양한 서비스 조건과 각각의 데이터 레이트 및 코딩 레이트를 최적으로 일치시키는 터보 코딩 FEC 스킴 및 터보 코드를 식별하는 것이 바람직하다.The flexibility and high performance of TurboCOD is becoming a potentially promising technology for advanced data communication services. Thus, it is desirable to identify turbo coding FEC schemes and turbo codes that optimally match the various service conditions and the respective data rates and coding rates while minimizing implementation complexity.

본 발명은 장점으로서 유니버셜하게 최적화된 터보 코드 및 레이트-호환 펑처링(puncturings)을 설계하고 사용하여 자동 반복 요청(ARQ)과 같은 점증하는 중복 스킴을 지원하기 위한 방법을 제공함으로써 상기 및 다른 필요성을 시정하고 있다.The present invention benefits from the above and other needs by providing a method for designing and using universally optimized turbo codes and rate-compatible punctures as an advantage to support an incremental redundancy scheme such as automatic repeat request (ARQ) It is correcting.

<발명의 요약>SUMMARY OF THE INVENTION [

가장 기본적인 형태에서, 본 발명은, 데이터를 처리하는 방법으로서의 한 실시예에서, 일단의 레이트-호환 터보 코드가 높은 코드 레이트에서 최적화되어 유니버셜 구성 코드로부터 파생된 데이터 서비스에서 호환 펑처링 패턴을 갖는 터보 코드를 특징으로 하고 있다. 이 방법은 상위 코드 레이트 및 하위 코드 레이트에 따라 유니버셜한 최상의 레이트 1/2 구성 코드를 사용하여 제1 및 제2 엔코더에서 신호를 엔코드하는 단계 - 상기 제1 엔코더와 상기 제2 엔코더는 각각 데이터 비트에 대해 각각의 복수의 패리티 비트를 발생함-; 상위 레이트의 최상의 펑처링 패턴으로 각각의 엔코더에서 상기 각각의 복수의 패리티 비트를 펑처링하는 단계; 및 하위 레이트의 최상의 펑처링 패턴으로 상기 각각의 엔코더에서 상기 각각의 복수의 패리티 비트를 펑처링하는 단계를 포함한다.In a most basic form, the present invention provides, in one embodiment as a method of processing data, a turbo code in which a set of rate-compatible turbo codes are optimized at a high code rate to produce a turbo with a compatible puncturing pattern in a data service derived from universal configuration code Code. The method comprises the steps of encoding a signal at a first encoder and a second encoder using a universal best rate 1/2 configuration code according to an upper code rate and a lower code rate, Generating a plurality of respective parity bits for the bits; Puncturing each of the plurality of parity bits in each encoder with a best puncturing pattern of the highest rate; And puncturing each of the plurality of parity bits in the respective encoder with the best puncturing pattern of the subrate.

변형에서, 최적의 유니버셜 레이트 1/3 구성 코드로부터 유도된 레이트-호환가능 터보 코드(Turbo codes)의 세트 - 상기 터보 코드는 유사한 구성 코드 및 호환가능한 펑처링(puncturing patterns)을 가짐 - 를 사용하여 데이터 서비스 내의 데이터를 처리하는 방법은 제1 및 제2 엔코더에서 최상의 레이트 1/3을 갖는 신호를 엔코드하는 단계 - 상기 각각의 엔코더는 각각의 데이터 비트에 대해 각각의 복수의 패리티 비트를 발생함-; 상위 레이트의 최상의 펑처링 패턴으로 상기 복수의패리티 비트를 펑처링하는 단계; 및 하위 레이트의 최상의 펑처링 패턴으로 상기 복수의 패리티 비트를 펑처링하는 단계를 포함한다.In a variation, a set of rate-compatible turbo codes derived from an optimal universal rate 1/3 configuration code, the turbo code having a similar configuration code and compatible puncturing patterns A method of processing data in a data service includes encoding a signal having a best rate of one third in a first and a second encoder, each encoder generating a respective plurality of parity bits for each data bit -; Puncturing the plurality of parity bits with the highest puncturing pattern of the highest rate; And puncturing the plurality of parity bits with the best puncturing pattern of the sub-rate.

다른 변형에서, 레이트-호환가능 터보 코드의 세트 - 상기 세트는 코드 레이트 1/4에 최적화되고 서로 다른 코드 레이트 및 레이트-호환가능 펑처링 패턴을 갖는 터보 코드를 구비함 - 를 사용한 레이트-호환가능 터보 엔코딩 방법은 상위 코드 레이트 및 하위 코드 레이트와 유니버셜한(universal) 최상의 레이트 1/4 구성 코드를 사용하여 제1 및 제2 엔코더에서 신호를 엔코드하는 단계 - 상기 제1 엔코더와 상기 제2 엔코드는 각각 데이터 비트에 대해 각각의 복수의 패리티 비트를 발생함-; 상위 레이트의 최상의 펑처링 패턴으로 각각의 엔코더에서 상기 각각의 복수의 패리티 비트를 펑처링하는 단계; 및 하위 레이트의 최상의 펑처링 패턴으로 각각의 엔코더에서 상기 각각의 복수의 패리티 비트를 펑처링하는 단계를 포함한다.In another variation, a set of rate-compatible turbo codes, the set being rate-compatible using a code rate 1/4 and having turbo codes with different code rates and rate-compatible puncturing patterns The turbo encoding method comprises the steps of encoding a signal in a first encoder and a second encoder using a top code rate and a sub code rate and a universal best rate 1/4 configuration code, Each generating a respective plurality of parity bits for a data bit; Puncturing each of the plurality of parity bits in each encoder with a best puncturing pattern of the highest rate; And puncturing each of the plurality of parity bits in each encoder with the best puncturing pattern of the subrate.

다른 실시예에서, 엔코딩 시스템은 최상의 유니버셜 레이트 1/2 구성 코드로부터 유도된 레이트-호환가능 터보 코드의 세트 - 상기 세트는 호환가능한 펑처링 패턴을 가짐- 를 사용하고, 상기 엔코딩 시스템은 제1 및 제2 엔코더 - 상기 각각의 엔코더는 복수의 쉬프트 레지스터, 및 상기 최상의 유니버셜 레이트 1/2 구성 코드에 대응하는 구성에서 제1 및 제2 가산기의 선택된 부분에 각각 결합된 제1 및 제2 가산기를 포함함-; 및 상기 제1 및 제2 엔코더가 상기 제1 및 제2 엔코더의 각각으로부터 복수의 데이터 출력을 펑처링하도록 구성된 펑처러(puncturer) - 상기 펑처링은 상기 호환가능 펑처링 패턴의 세트에 따라 소정의 터보 코드 레이트에 의해 결정됨 - 를 구비한다.In another embodiment, the encoding system uses a set of rate-compatible turbo codes derived from the best universal 1/2 configuration code, the set having a compatible puncturing pattern, A second encoder, each encoder comprising a first and a second adder coupled to selected portions of the first and second adders, respectively, in a configuration corresponding to the best universal 1/2 configuration code; box-; And a puncturer configured to cause the first and second encoders to puncture a plurality of data outputs from each of the first and second encoders, wherein the puncturing is performed based on the set of compatible puncturing patterns, Determined by the turbo code rate.

다른 변형에서, 엔코딩 시스템은 최적의 유니버셜 레이트 1/3 구성 코드로부터 유도된 레이트-호환가능 터보 코드의 세트 - 상기 레이트-호환가능 터보 코드는 유사한 구성 코드 및 호환가능한 펑처링 패턴을 가짐- 를 사용하고, 상기 엔코딩 시스템은 제1 및 제2 엔코더 - 상기 각각의 엔코더는 복수의 쉬프트 레지스터, 및 상기 레이트 1/3 구성 코드에 대응하는 구성에서 제1 및 제2 가산기의 선택된 부분에 각각 결합된 제1 및 제2 가산기를 포함함-; 및 상기 제1 및 제2 엔코더가 상기 제1 및 제2 엔코더로부터 복수의 데이터 출력을 펑처링하도록 구성된 펑처러(puncturer) - 상기 펑처링은 상기 호환가능 펑처링 패턴의 세트에 따라 소정의 터보 코드 레이트에 의해 결정됨-를 구비한다.In another variation, the encoding system uses a set of rate-compatible turbo codes derived from an optimal universal 1/3 configuration code, wherein the rate-compatible turbo codes have a similar configuration code and a compatible puncturing pattern And wherein the encoding system comprises a first and a second encoder, each encoder having a plurality of shift registers, and a second encoder coupled to selected portions of the first and second adders in a configuration corresponding to the rate 1/3 configuration code, 1 and a second adder; And a puncturer configured to puncture the plurality of data outputs from the first and second encoders, wherein the puncturing is performed using a predetermined turbo code according to the set of compatible puncturing patterns, Determined by the rate.

시스템의 또 다른 변형은 서로 다른 코드 레이트에 대한 유니버셜 구성 코드(universal constituent code)와 레이트-호환가능 펑처링 패턴을 갖는 레이트-호환가능 터보 코드의 세트를 사용하고, 상기 시스템은 제1 및 제2 엔코더 - 상기 각각의 엔코더는 복수의 쉬프트 레지스터, 및 상기 유니버셜 구성 코드에 대응하는 구성에서 제1 및 제2 가산기의 선택된 부분에 각각 결합된 제1 및 제2 가산기를 포함함-; 및 상기 제1 및 제2 엔코더로부터 복수의 데이터 출력을 펑처링하도록 구성된 펑처러(puncturer) - 상기 펑처링은 상기 호환가능 펑처링 패턴의 세트에 따라 소정의 터보 코드 레이트에 의해 결정됨-를 구비한다.Another variation of the system employs a set of rate-compatible turbo codes having a universal constituent code and a rate-compatible puncturing pattern for different code rates, the system comprising a first and a second Encoder, wherein each encoder comprises a plurality of shift registers and first and second adders respectively coupled to selected portions of the first and second adders in a configuration corresponding to the universal configuration code; And a puncturer configured to puncture a plurality of data outputs from the first and second encoders, the puncturing being determined by a predetermined turbo code rate according to the set of compatible puncturing patterns .

<도면의 간단한 설명>BRIEF DESCRIPTION OF THE DRAWINGS [

본 발명의 상기 및 다른 일면, 특징 및 장점은 다음의 도면과 결합하여 제시된 다음의 보다 상세한 설명으로부터 보다 명확할 것이다.These and other aspects, features, and advantages of the present invention will become more apparent from the following more detailed description, taken in conjunction with the following drawings.

도 1은 코드 분할 다중액세스(CDMA) 디지털 셀룰러 이동 무선 시스템 하드웨어도.1 is a code division multiple access (CDMA) digital cellular mobile radio system hardware diagram.

도 2는 본 발명의 실시예를 구현할수 있는 CDMA 디지털 셀룰러 이동 무선 시스템 하드웨어도.2 is a hardware diagram of a CDMA digital cellular mobile radio system in which embodiments of the present invention may be implemented.

도 3은 본 발명과 함께 사용하도록 변형된 터보 코드 엔코더의 기능 블럭도.3 is a functional block diagram of a turbo-code encoder modified for use with the present invention.

도 4는 전체적인 터보 디코더의 기능 블럭도.4 is a functional block diagram of an overall turbo decoder;

도 5, 6, 7 및 8은 터보 코드가 d(D) 및 n(D)로서 표현된 후보 구성 코드를 사용할 때 인터리버 크기 1000, 512 및 1024 비트의 터보 코드 레이트 1/2 및 레이트 1/3인 경우 신호 대 잡음비(SNR)에 대한 비트 에러 레이트(BER) 성능을 도시하는 도면.Figures 5,6,7 and 8 illustrate that the turbo code uses interleaver sizes 1000, 512 and 1024 bits of turbo code rate 1/2 and rate 1/3 when using the candidate configuration code represented as d (D) and n (D) 0.0 &gt; (BER) &lt; / RTI &gt; performance versus signal-to-noise ratio (SNR)

도 9는 레이트 1/4 터보 코드를 최적화하기 위한 펑처링 스킴(puncturing schemes)을 도시하는 도면.Figure 9 shows puncturing schemes for optimizing rate 1/4 turbo codes.

도 10, 11 및 12는 512 비트의 프레임 크기인 구성 코드 #1-3의 BER/FER 성능을 도시하는 도면.Figures 10, 11 and 12 show the BER / FER performance of configuration code # 1-3, which is a frame size of 512 bits.

도 13은 구성 코드 #1이 1024 비트의 프레임 크기이고, 크기 2048 및 3072 비트에서 각각 일관적인 결과를 구한 구성 코드 #1의 BER/FER 성능을 도시하는 도면.13 is a diagram illustrating the BER / FER performance of configuration code # 1 where configuration code # 1 is a frame size of 1024 bits and consistent results are obtained at sizes 2048 and 3072 bits, respectively.

도 14는 크기 1024, 2048 및 3072 비트에서 각각 일관적인 결과를 구한 프레임 크기 512에서의 선택된 레이트 1/4 터보 코드의 BER/FER 성능을 도시하는 도면.14 shows the BER / FER performance of a selected rate 1/4 turbo code at frame size 512, where a consistent result is obtained for each of the size 1024, 2048 and 3072 bits.

도 15는 프레임 크기 512 비트인 다른 펑처링 스킴에 대한 바람직한 터보 코드 B의 비교도.15 is a comparison of a preferred turbo code B for another puncturing scheme with a frame size of 512 bits.

도 16은 구성 코드가 레이트 1/3을 가질 때 레이트 1/3 및 1/2의 터보 코드에 대한 후보 펑처링 패턴의 레이아웃.16 is a layout of candidate puncturing patterns for rate 1/3 and 1/2 turbo codes when the configuration code has a rate of 1/3.

도 17은 프레임 크기 512 비트에서 레이트 1/3 펑처링 스킴의 비교도.17 is a comparative view of a rate 1/3 puncturing scheme at a frame size of 512 bits;

도 18은 1024, 2048 및 3072 비트에서 각각 일관적인 결과를 구한 프레임 크기 512 비트에서의 레이트 1/2 펑처링 스킴을 도시하는 도면.FIG. 18 shows a rate 1/2 puncturing scheme at 512 bits of frame size that yields consistent results at 1024, 2048, and 3072 bits, respectively. FIG.

도 19는 인터리버 깊이를 변화시키는 코드 레이트 1/2 및 1/3로 최적화된 터보 코드에 대한 바람직한 유니버셜 구성 엔코더의 블럭도.19 is a block diagram of a preferred universal configuration encoder for a turbo code optimized at code rate 1/2 and 1/3 to vary interleaver depth.

도 20은 인터리빙과 펑처링(레이트 1/3, 및 레이트 1/2 사용 유사 처리)을 포함하는 코드 레이트 1/2 및 레이트 1/3로 최적화된 레이트 1/4 터보 코드에 대한 기능 블럭도.20 is a functional block diagram for a rate 1/4 turbo code optimized at code rate 1/2 and rate 1/3, including interleaving and puncturing (rate 1/3 and rate 1/2 use similar processing).

도 21은 레이트 3/8 터보 코드에 대한 펑처링 패턴도.Figure 21 is a puncturing pattern for a rate 3/8 turbo code.

도 22는 결과가 1024, 2048 및 3072 비트 각각에서 지속적인 프레임 크기 512 비트에서 코드 레이트 1/2 및 레이트 1/3로 최적화된 3/8 터보 코드를 도시하는 도면.22 shows a 3/8 turbo code whose result is optimized at code rate 1/2 and rate 1/3 at a constant frame size 512 bits at 1024, 2048 and 3072 bits, respectively.

도 23은 레이트 4/9 터보 코드에 대한 펑처링 패턴도.Figure 23 is a puncturing pattern for a rate 4/9 turbo code.

도 24는 프레임 크기 512 비트를 사용하여 코드 레이트 1/2 및 레이트 1/3로 최적화된 레이트 4/9 터보 코드를 도시하는 도면.Figure 24 shows a rate 4/9 turbo code optimized at code rate 1/2 and rate 1/3 using 512 bits of frame size.

도 25는 코드 레이트 1/4로 최적화된 터보 코드에 대한 바람직한 구성 엔코더의 기능 블럭도.25 is a functional block diagram of a preferred configuration encoder for a turbo code optimized at a code rate of 1/4.

도 26은 인터리빙과 펑처링(레이트 1/3 및 레이트 1/2 사용 유사 처리)을 포함하는 레이트 1/4로 최적화된 레이트 1/4 터보 코드의 기능 블럭도.26 is a functional block diagram of a rate 1/4 turbo code optimized at rate 1/4 including interleaving and puncturing (rate 1/3 and rate 1/2 use similar processing).

도 27은 레이트 2/9 터보 코드에 대한 펑처링 패턴도.Figure 27 is a puncturing pattern for a rate 2/9 turbo code.

도 28은 프레임 크기 512 비트를 사용하여 코드 레이트 1/4로 최적화된 레이트 2/9 터보 코드를 도시하는 도면.Figure 28 shows a rate 2/9 turbo code optimized with a code rate of 1/4 using 512 bits of frame size.

도 29는 레이트 3/8 터보 코드에 대한 초기 펑처링 패턴도.29 is an initial puncturing pattern for a rate 3/8 turbo code;

도 30은 프레임 크기 512 비트를 사용하여 코드 레이트 1/4로 최적화된 레이트 3/8 터보 코드를 도시하는 도면.Figure 30 shows a rate 3/8 turbo code optimized with a code rate of 1/4 using 512 bits of frame size.

도 31은 인터리버 깊이를 가변시키는 레이트 1/2 및 레이트 1/3 터보 코드용의 바람직한 유니버셜 엔코더의 기능 블럭도.31 is a functional block diagram of a preferred universal encoder for a rate 1/2 and rate 1/3 turbo code that varies interleaver depth.

도 32는 1024, 2048 및 3072 비트에서 결과가 일관적인 프레임 크기 512 비트에서 콘벌루션 코드를 갖는 레이트 1/4 FER 최적화 터보 코드의 바람직한 비교도.32 is a preferred comparison of a rate 1/4 FER-optimized turbo code with 1024, 2048, and 3072 bits with convolutional codes at 512 bits of consistent frame size.

부록 A는 도면들의 총체적 집합으로서, 이하 '유사' 도면, 곡선, 또는 시뮬레이션 또는 등가물.Appendix A is a collective set of drawings, which may be referred to as "similar" drawings, curves, or simulations or equivalents.

대응하는 참조 문자는 몇몇 도면에 걸쳐 대응하는 구성요소를 지칭한다.Corresponding reference characters refer to corresponding elements throughout the several views.

본 발명은 데이터 통신에서의 에러 교정에 관한 것으로, 보다 상세하게는 포워드 에러 교정(FEC)에 관한 것이다. 특히, 본 발명은 전송 데이터 레이트, 채널 코딩 레이트, 서비스 측정 품질(즉, 지연, 비트 에러 레이트, 프레임 에러 레이트) 및 구현 복잡성에 관련된 광범위한 시스템 조건을 지원하는데 있어서의 유연성이 매우 소망되는, 떠오르는 3세대 지상(terrestrial) 셀룰러 이동 무선 및 위성 전화 시스템과 같은 고성능 데이터 통신 시스템에서의 최적의 터보 코드(Turbo codes)의 선택 및 사용에 관한 것이다.The present invention relates to error correction in data communication, and more particularly to forward error correction (FEC). In particular, the present invention is based on the emerging 3 &lt; Desc / Clms Page number 3 &gt; approach that is highly flexible in supporting a wide range of system conditions related to transmission data rate, channel coding rate, service measurement quality (i.e., delay, bit error rate, frame error rate) And more particularly to the selection and use of optimal turbo codes in high performance data communication systems such as terrestrial cellular mobile radio and satellite telephone systems.

본 발명의 다음 설명은, 제한하는 의미로 간주되어서는 안되고, 단지 본 발명의 전체적인 원리를 설명하기 위한 것이다. 본 발명의 범위는 특허청구범위를참조하여 판단되어야 한다.The following description of the invention is not to be taken in a limiting sense, but merely to illustrate the general principles of the invention. The scope of the present invention should be determined with reference to the appended claims.

본 발명의 두가지 주요한 특징: 1) 광범위한 정보 블럭 크기와 코드 레이트에 걸쳐 최적에 근접한(near-optimal) 성능을 제공하도록 데모된 특정 "유니버셜" 터보 코드에 기초하여 데이터 서비스를 위한 포워드 에어 교정(FEC), 및 2) 상술한 바람직한 성질을 갖는 특정 터보 코드가 설계될 수 있게 하는 방법이 존재한다.Two major features of the present invention are: 1) Forward Air Calibration (FEC) for data services based on specific " Universal " turbo codes that have been demonstrated to provide near-optimal performance over a wide range of information block sizes and code rates. ), And 2) a method by which a specific turbo code having the above-described desirable properties can be designed.

터보 코드는, 낮은 신호 대 잡음(SNR)비의 뛰어난 에러 교정 능력과, 지연을 처리하기 위해 비트 에러 레이트(BER) 및 프레임 에러 레이트(FER) 성능을 절충하는데 있어서의 유연성 때문에 데이터 적용에 특히 적합하게 되어 있다. 이하에 설명하는 실시예에서 고려되고 있는 데이터 서비스는 개발중인 제3세대 코드 분할 다중액세스(CDMA) 셀룰러 이동 무선 표준과 부합하며, 전형적으로 낮은 레이트의 음성 서비스보다 지연에 강하다.Turbo codes are particularly well-suited for data applications because of their excellent error-correcting capabilities with low signal-to-noise (SNR) ratios and flexibility to trade off bit error rate (BER) and frame error rate (FER) performance to handle delays. . The data service being considered in the embodiments described below conforms to the third generation code division multiple access (CDMA) cellular mobile wireless standard under development and is typically more delay tolerant than the low rate voice service.

그러나, 이하에 명시되는 유니버셜 터보 코드(및 이와 같은 코드를 구하는 방법)는 또한 셀룰러 또는 다른 무선 통신 시스템과 같은 다른 시스템은 물론, 다른 셀룰러 이동 무선 시스템(즉, GSM에 사용되는 유럽 시분할 다중액세스(TDMA) 표준)에서의 데이터 서비스에 적용가능하다. 이들 조건과 관련하여 서로 다른 최적화를 제공하는 몇몇 특정 터보 코드가 확인되고 있다. 다른 코드들이 또한 가능할 것이다.However, the universal turbo codes (and methods for obtaining such codes) specified below may also be used in other cellular mobile radio systems (e. G., European Time Division Multiple Access TDMA) standard). &Lt; / RTI &gt; Several specific turbo codes have been identified that provide different optimizations in relation to these conditions. Other codes will also be possible.

데이터 서비스를 위한 터보 코드의 성능을 최적화하기 위해서는, 다양한 서로 다른 인터리버 깊이와 터보 코드 레이트과 결합하여 최적 또는 거의 최적의 성능을 제공하는 일단의 "유니버셜(universal)" 구성(constituent) 코드를 가져서,특정 터보 코드의 각 최적화를 테일러링(tailoring)하는 것을 피하는 것이 바람직하다.In order to optimize the performance of the turbo codes for data services, it is necessary to have a set of " universal " constituent codes that provide optimal or near optimal performance in combination with various different interleaver depths and turbo code rates, It is desirable to avoid tailoring each optimization of the turbo code.

먼저 도 1을 참조하면, 다이렉트 시퀀스 코드 분할 다중 액세스(CDMA) 이동국 대 기지국(또는 역) 링크를 사용하는 예시적인 종래의 디지털 셀룰러 이동 무선 시스템이 콘벌루션 엔코더와 비터비 디코더를 사용하는 것으로 도시되어 있다. 이와 같은 기본적인 코딩 및 인터리빙은 공지된 GSM 표준에 사용되는 시분할 다중 액세스(TDMA)와 같은 다른 다중 액세스 시스템에도 동등하게 적용될 수 있다.Referring first to Figure 1, an exemplary conventional digital cellular mobile radio system using a direct sequence code division multiple access (CDMA) mobile station to base station (or reverse link) is shown using a convolutional encoder and a Viterbi decoder have. Such basic coding and interleaving is equally applicable to other multiple access systems such as time division multiple access (TDMA) used in the known GSM standard.

도 1은 또한 셀룰러 이동 무선 시스템에서의 기지국 대 이동국(또는 포워드) 링크를 나타낸다. 송신 시스템(100)에서, 시스템은 데이터 터미널 장치(도시않됨)로부터의 사용자 정보 비트를 (레이트 r의) 콘벌루션 엔코더(108)에 입력되는 프레임(106)당 N 비트의 고정 길이 프레임으로 어셈블하는 세그멘테이션 프로세서(104)를 구비한다. 콘벌루션 엔코더(108)는 콘벌루션 엔코더(108)에 결합된 채널 인터리버(112)의 입력에서 N/r 코드 기호(110)를 발생하는 동기화 및 프레이밍 프로세서(104)에 결합되어 있다. 채널 인터리버(112)는 코드 기호(110)의 의사 랜덤 셔플링을 수행하고, 코드 기호(110)를 채널 인터리버(112)에 결합된 확산 스펙트럼 변조기(114)에 출력한다. 확산 스펙트럼 변조기(114)는 확산 스펙트럼 변조기(114)에 결합된 PN 변환기(116)에 의해 발생된 사용자 특정 송신 PN-코드를 사용하여, 이동국 RF 송신기(118)에 RF 캐리어 상으로 반송된 확산 스펙트럼 신호를 발생한다. 이동국 RF 송신기(118)는 또한, 송신 안테나(120)에 결합된 고 전력 증폭기(도시않됨)이 기지국에 신호를 복사하는 확산 스펙트럼 변조기(114)에 결합되어 있다. 확산 스펙트럼 변조 및 RF 송신 기술은 확산 스펙트럼 통신 시스템에 익숙한 기술자에게 공지되어 있다.Figure 1 also shows a base station to mobile (or forward) link in a cellular mobile radio system. In transmission system 100, the system assembles a user information bit from a data terminal device (not shown) into a fixed length frame of N bits per frame 106 that is input to a convolutional encoder 108 And a segmentation processor 104. The convolutional encoder 108 is coupled to a synchronization and framing processor 104 that generates an N / r code symbol 110 at the input of a channel interleaver 112 coupled to the convolutional encoder 108. The channel interleaver 112 performs pseudo-random shuffling of the code symbols 110 and outputs the code symbols 110 to the spread spectrum modulator 114 coupled to the channel interleaver 112. Spread spectrum modulator 114 uses spread spectrum modulator 114 to provide a spread spectrum modulator 114 with a user-specific transmit PN-code generated by PN converter 116 coupled to spread spectrum modulator 114, Signal. The mobile station RF transmitter 118 is also coupled to a spread spectrum modulator 114 in which a high power amplifier (not shown) coupled to transmit antenna 120 copies signals to the base station. Spread-spectrum modulation and RF transmission techniques are known to those skilled in the art of spread-spectrum communication systems.

기지국 수신 안테나(122)에서 수신된 이동국(A이동국 신호)A이동국 신호로부터의 신호는 기지국 RF 수신기(124)에서 증폭되어, 이동국 RF 송신기(118)에 의해 사용되는 동일한 PN 코드를 사용하여 신호를 디스프레드하는 확산 스펙트럼 복조기(128)에서 복조된다. 복조된 기호는 채널 인터리버(130)에 의해 디인터리브되어 비터비 디코더(132)에 입력된다. 디코드된 정보 비트는 수신 데이터 블럭(136)으로 재구성되어, 시스템의 수신 단에서 데이터 터미널 장비로 포워드된다.The mobile station A received by the base station reception antenna 122 ) A Mobile station signal Is demodulated in spread spectrum demodulator 128 that is amplified in base station RF receiver 124 and despreads the signal using the same PN code used by mobile station RF transmitter 118. [ The demodulated symbols are deinterleaved by the channel interleaver 130 and input to the Viterbi decoder 132. The decoded information bits are reconstructed into a received data block 136 and forwarded from the receiving end of the system to the data terminal equipment.

다음에 도 2를 참조하면, 본 발명의 실시예를 실시하는 디지털 셀룰러 이동 무선 시스템용 하드웨어 시스템이 도시된다. 상기와 같이, 비록 동일한 블럭도가 포워드 링크를 도시하지만, 역 링크가 도시되어 있다. 또한, CDMA 시스템이 예로서 사용되지만, 기술분야의 숙련자는 본 발명을 TDMA와 같은 다른 시스템에도 적용하는 것으로 간주할 수 있다.Referring now to Figure 2, a hardware system for a digital cellular mobile radio system embodying an embodiment of the present invention is shown. As described above, although the same block diagram shows the forward link, the reverse link is shown. Also, although a CDMA system is used as an example, one skilled in the art can also consider the present invention to apply to other systems such as TDMA.

데이터 터미널 장비로부터의 송신 데이트 블럭(202)이 세그먼테이션 프로세서(204)에서 고정된 프레임 길이로 세그먼트화되고 프레임되어, 터보 코드 엔코더(208)에 인가된다. 엔코더(208)로부터의 출력은 코드 기호를 의사 랜덤화하기 위해 채널 인터리버(212)에 공급된다. 채널 인터리버(212)는, PN 발생기(216)로부터의 사용자 특정 PN-코드를 사용하여 RF 캐리어 상으로 이동국 RF송신기(218)로 반송되는 확산 스펙트럼을 생성하는 확산 스펙트럼 변조기(214)에 출력을 제공한다. 채널 인터리버(212)는 엔코더(208)의 성분인 터보 코드 인터리버(도시안됨)와는 구별된다. 송신 안테나(220)에 결합된 이동국 RF 송신기(218)는 송신 안테나(220)의 고 전력 증폭기(도시안됨)를 사용하여 기지국에의 신호를 복사한다.The transmission data block 202 from the data terminal equipment is segmented and framed at a fixed frame length in the segmentation processor 204 and applied to the turbo code encoder 208. [ The output from the encoder 208 is supplied to the channel interleaver 212 to pseudo-randomize the code symbols. The channel interleaver 212 provides an output to a spread spectrum modulator 214 that generates a spread spectrum that is carried on the RF carrier to the mobile station RF transmitter 218 using a user specific PN code from the PN generator 216 do. The channel interleaver 212 is distinct from the turbo code interleaver (not shown), which is a component of the encoder 208. The mobile station RF transmitter 218 coupled to the transmit antenna 220 uses the high power amplifier (not shown) of the transmit antenna 220 to copy the signal to the base station.

기지국 안테나(222)에서 수신된 이동국으로부터의 신호는 기지국 RF 수신기(224)에서 증폭되어, 이동국 RF 송신기(218)에 의해 사용되는 것과 동일한 PN-코드를 사용하여 신호를 디스프레드하는 확산 스펙트럼 복조기(228)에서 복조된다. 복조된 기호는 채널 DE-인터리버(230)에 의해 디인터리브되어, 터보 코드 디코더(232)에 입력된다. 터보 코드 디코더(232)로부터의 디코드된 정보 비트는 재구성 프로세서(234)에서 수신 데이터 블럭(236)으로 재구성되어, 수신 단의 데이터 터미널 장치로 포워드된다.The signal from the mobile station received at the base station antenna 222 is amplified at the base station RF receiver 224 and transmitted to a spread spectrum demodulator that is despreading the signal using the same PN code as used by the mobile station RF transmitter 218 228). The demodulated symbols are deinterleaved by the channel DE-interleaver 230 and input to the turbo code decoder 232. The decoded information bits from the turbo code decoder 232 are reconstructed into a received data block 236 at the reconstruction processor 234 and forwarded to the data terminal device at the receiving end.

도 3을 참조하면, 터보 코드의 기본 구조는 엔코더#1(306) 및 엔코더#2(308)에서 두개의 간단한 구성 코드의 병렬 축약에 그 특징이 있다. 두개의 구성 엔코더, 즉 엔코더#1(306) 및 엔코더#2(308)는 동일한 정보 비트 스트림(302)를 처리하지만, 엔코더#2(308)는, 정보 비트들이 엔코더#2(308)(구성 엔코더(308))에 도달하기 전에 인터리버(304)가 이를 재정렬하기 때문에, 엔코더#1(306)가 정보 비트(302)를 처리하는 순서와는 다른 순서로 정보 비트(302)를 처리한다. 이와 같은 구성은 엔코더#1(306)로 하여금 저 해밍 웨이트(low-Hamming weight) 출력(310)을 발생하게 하는 정보 비트(302)의 시퀀스가 또한 엔코더#2(308)로 하여금 터보코드의 뛰어난 성능을 가능하게 하는 출력(314)과 동일하게 하는 가능성을 감소시킨다.Referring to FIG. 3, the basic structure of the turbo code is characterized by parallel reduction of two simple configuration codes in the encoder # 1 306 and the encoder # 2 308. The two constituent encoders, Encoder # 1 306 and Encoder # 2 308, process the same information bit stream 302, while Encoder # 2 308 decodes the information bits to encoder # 2 308 306 processes the information bits 302 in an order different from the order in which the encoder # 1 306 processes the information bits 302 because the interleaver 304 rearranges them before reaching the encoder 308. This configuration allows the sequence of information bits 302 to cause Encoder # 1 306 to generate a low-Hamming weight output 310 also causes Encoder # 2 308 to provide an excellent Thereby reducing the likelihood of equalizing the output 314 enabling performance.

정보 비트(302)(또한 시스템적 비트(302)라고도 함) 이외에, 엔코드(306,308) 모두는 펑처러(puncturer)(312)에 의해 펑처되는 패리티 비트(310,314)를 발생하여 소정의 전체적인 터보 코드 레이트를 달성한다. 또한 이는 시스템적 비트를 펑처할 수 있다.In addition to the information bits 302 (also referred to as systematic bits 302), both the encodings 306 and 308 generate parity bits 310 and 314 punctured by a puncturer 312 to produce a predetermined overall turbo code Rate. It can also puncture systematic bits.

터보 코드의 구성 코드는 사용가능하게 시스템적, 순환 콘벌루션 코드이다. 가장 단순하고 가장 광범위하게 공지된 순환 콘벌루션 코드는 레이트 1/2 및 다음과 같은 전달 함수를 갖는다:The configuration code of the turbo code is a systematic, cyclic convolutional code that is usable. The simplest and most widely known circular convolutional code has a transfer function of rate 1/2 and the following:

G(D) = [1, n(D)/d(D)]G (D) = [1, n (D) / d (D)]

여기서 n(D) 및 d(D)는 각각 엔코더의 피드 포워드 및 피드백 접속을 명시하는 이진 다형식이다.Where n (D) and d (D) are binary multiple formats specifying the feedforward and feedback connections of the encoders, respectively.

터보 코드의 레이트는 펑처링 또는 송신을 위해 출력 비트(310,314)의 선택을 변경함으로서 변경된다. 이하의 모든 경우에서, "1"은 송신을 가리키고, "0"은 펑처링을 가리킨다.The rate of the turbo code is changed by changing the selection of the output bits 310, 314 for puncturing or transmission. In all of the following cases, " 1 " indicates transmission, and " 0 " indicates puncturing.

도 3은 또한 펑처러(312)로부터의 두가지 가능한 펑처링 패턴 결과를 도시한다. 번갈아 엔코더(306와 308) 간의 패리티 비트를 펑처링하게 되면 터보 코드 레이트 r=1/2의 결과가 된다. 두개의 엔코더(306,308)에서의 모든 패리티 비트의 송신은 코드 레이트 r=1/3을 만들게 된다.FIG. 3 also shows two possible puncturing pattern results from the puncturer 312. In turn, puncturing the parity bits between the encoders 306 and 308 results in a turbo code rate r = 1/2. The transmission of all parity bits in the two encoders 306 and 308 will result in a code rate r = 1/3.

구성 엔코더의 수를 증가시키거나 또는 구성 엔코더당 출력 패리티 비트의수를 증가시키지 않고 1/3 이하의 낮은 터보 코드 레이트를 달성하는 것은 가능하지 않다. 후자는 흔히 구현 복잡성을 감소시키기 위해 바람직하다. 이 경우에, 기술분야의 숙련자는 다음과 같은 전달 함수를 갖는 레이트 1/3 시스템적 순환 콘벌루션 코드를 고려한다.It is not possible to achieve a low turbo code rate of 1/3 or less without increasing the number of configuration encoders or increasing the number of output parity bits per configuration encoder. The latter is often desirable to reduce implementation complexity. In this case, one skilled in the art will consider a rate 1/3 systematic cyclic convolutional code with the following transfer function.

G(D) = [1, n1(D)/d(D), n2(D)/d(D)]G (D) = [1, n 1 (D) / d (D), n 2 (D) / d (D)]

이와 같은 두개의 구성 코드를 사용함으로서 펑처링 또는 삭제를 통해 1/5 및 1 간의 임의의 터보 코드 레이트를 제공하게 된다.By using these two configuration codes, puncturing or deleting provides an arbitrary turbo code rate between 1/5 and 1.

터보 코드는 도 4의 블럭도에 도시한 바와 같이 반복 디코딩 방법을 사용하여 디코드된다.The turbo code is decoded using the iterative decoding method as shown in the block diagram of Fig.

각각의 구성 코드는 다른 구성 디코더(406 또는 416)의 유사 추정을 '선험적' 정보로서 사용하여 개별적으로 디코드된다. 구성 디코더(406, 416)는 MAP(Maxium A Posteriori) 알고리즘, SOVA(sub-optimal Soft-Output Viterbi Algorithm) 또는 그 변형과 같은 소프트-입력/소프트-출력 형이어야만 한다. 구성 디코더 모두가 데이터를 처리한 후에, 프로세스가 반복될 수 있다.Each configuration code is individually decoded using similar estimates of the other configuration decoders 406 or 416 as ' a priori ' information. The configuration decoders 406 and 416 must be soft-input / soft-output types such as a MAP (Maxium A Posteriori) algorithm, a sub-optimal Soft-Output Viterbi Algorithm (SOVA) or a variant thereof. After all the configuration decoders process the data, the process can be repeated.

실제로, 터보 디코더(406,416)는 흔히 시스템의 구현 복잡성과 성능 목표에 부합하는 정해진 반복 회수에 제한되어 있다.Indeed, the turbo decoders 406,416 are often limited to a fixed number of iterations to meet the implementation complexity and performance goals of the system.

도 4는 터보 디코더의 전체적인 블럭도이다. 정보 비트(404)에 관련된 소프트 정보, 제1 엔코더(402)용의 패리티 비트, 및 제2 엔코더(402')용의 패리티 비트가 복조기로부터 수신된다. 먼저, 제1 디코더(406)는 수신된 정보(404) 및 수신된패리티 비트(402)를 사용하여 정보 비트에 대한 소프트 결정(408)을 발생한다. 소프트 결정(408)은 그 출력이 소프트 결정(414)인, 인터리버(412)에 의해 인터리브된다. 소프트 결정(414)은 선험적 정보로서 제2 디코더(416)에 공급된다.4 is an overall block diagram of a turbo decoder. Soft information related to the information bits 404, parity bits for the first encoder 402, and parity bits for the second encoder 402 'are received from the demodulator. First, the first decoder 406 generates a soft decision 408 for the information bits using the received information 404 and the received parity bits 402. [ Soft decisions 408 are interleaved by interleaver 412, whose outputs are soft decisions 414. The soft decision 414 is supplied to the second decoder 416 as a priori information.

제2 디코더(416)는 상술한 소프트 결정(414)을 수신하고, 다음에 인터리버(422)에 의해 인터리브되어 선험적 정보로서 제2 디코더(406)에 공급되는, 정보 비트에 대한 향상된 소프트 결정(420)을 만든다. 전체 프로세스가 필요한 회수만큼 반복된다. 제1 또는 제2 디코더의 하드 결정 또는 소프트 결정을 만듦으로서 최종 출력(420)이 얻어진다.The second decoder 416 receives the soft decisions 414 described above and then provides an enhanced soft decision 420 for the information bits 420 interleaved by the interleaver 422 and supplied to the second decoder 406 as a priori information ). The entire process is repeated as many times as necessary. The final output 420 is obtained by making a hard or soft decision of the first or second decoder.

본 발명에 따르면, 단닐 마더(mother) 터보 코드 및 다양한 펑처링 패턴을 구하여 다양한 코드 레이트 및 정보 블럭 크기에 대한 균일한 양호한 코드를 유도할 수 있다.According to the present invention, it is possible to derive a uniform turbo code and various puncturing patterns to obtain a uniform good code for various code rates and information block sizes.

먼저 성능과 구현 복잡성 간의 절충 연구에 따라 가능한 유니버셜 구성 코드의 초기 풀(initial pool)을 제한함으로써 유니버셜 구성 코드를 결정하는 방법론이 개발된다. 본 발명에 따르면, 서로 다른 상태 코드를 이용하는 성능 연구는 8-상태 구성 코드가 양호한 성능 절충을 제공한다는 것을 나타낸다.First, a methodology for determining the universal configuration code is developed by limiting the initial pool of possible universal configuration codes according to a trade-off between performance and implementation complexity. According to the present invention, performance studies using different status codes indicate that the 8-state configuration code provides a good performance trade-off.

유니버셜 구성 코드는 먼저 목표로 하는 적용의 주요 코드 레이트에 따라 최적화된다. 예를 들어, CDMA 데이터 통신의 경우에, 흔히 역 링크가 상위 코딩 이득을 위해 하위 코드 레이트를 필요로 하기 때문에 포워드 및 역 링크에 대해 개별적인 최적화가 수행될 수 있다.The universal configuration code is first optimized according to the main code rate of the target application. For example, in the case of CDMA data communications, individual optimizations may be performed on the forward and reverse links, since the reverse link often requires a lower code rate for higher coding gain.

이하에 보다 상세히 설명되는 다음 단계는 레이트 1/2 및 1/3에 대해 최적화된 터보 코드를 발생하는데 사용된다.The next step, described in more detail below, is used to generate turbo codes optimized for rates 1/2 and 1/3.

1) G(D) = [1, n(D)/d(D)] 형식 (여기서, d(D)는 원시 다항식이고, n(D)는 1로 시작하여 D3으로 끝남)의 전달 함수를 갖는 후보 시스템적 레이트 1/2 구성 엔코더를 선택한다;The transfer function of 1) G (D) = [ 1, n (D) / d (D)] type (where, d (D) is a primitive polynomial, n (D) starting with 1 and ends with D 3) Lt; RTI ID = 0.0 &gt; 1/2 &lt; / RTI &gt;

2) 두개의 레이트 1/2 구성 엔코더에 의해 엔코드된 출력 데이터에 인가하기 위해 터보 코드 레이트 1/2 및 레이트 1/3 테스트 펑처링 패턴을 결정한다;2) determine the turbo code rate 1/2 and rate 1/3 test puncturing pattern to apply to the output data encoded by the two rate 1/2 configuration encoders;

3) 테스트 패턴와 각각의 레이트 1/2 구성 코드를 결합함으로써 가능한 모든 레이트 1/2 및 1/3 터보 코드를 형성한다;3) Combine the test pattern with each rate 1/2 configuration code to form all possible rate 1/2 and 1/3 turbo codes;

4) 고정된 인터리버 길이로 모든 가능한 레이트 1/2 및 1/3 터보 코드의 상대적 BER 성능을 평가한다;4) evaluate the relative BER performance of all possible rate 1/2 and 1/3 turbo codes with fixed interleaver length;

5) 최상의 전체적인 BER 성능에 기초하여, 최적의 터보 코드를 구축하기 위해 마더 쌍의 그룹, 후보 쌍의 서브그룹중에서 선택한다;5) Based on the best overall BER performance, choose from a group of mother pairs, a subgroup of candidate pairs, to build an optimal turbo code;

6) 복수의 다른 인터리버 깊이로 레이트 1/2 및 레이트 1/3 펑처링 패턴으로 펑처링된 후보 쌍들의 서브그룹을 구비하는 터보 코드 그룹의 다른 상대적 BER 성능을 평가한다.6) Evaluate other relative BER performance of a turbo code group having subgroups of candidate pairs punctured in rate 1/2 and rate 1/3 puncturing patterns with a plurality of different interleaver depths.

7) 인터리버 깊이에 대해 다른 최상의 전체적인 상대적 BER을 갖는 터보 코드 그룹, 유니버셜 코드중에서 선택한다; 및7) choose among turbo code groups, universal codes, with best overall overall relative BER for interleaver depth; And

8) 제1 및 제2 엔코더에서 상기 선택된 유니버셜 코드 쌍을 갖는 레이트 1/2 및 레이트 1/3 터보 코드를 갖는 데이터를 엔코드한다 - 유사한 엔코더 및 인터리버는 제2 엔코더에 비트를 공급하고, 비트들은 각각의 엔코더에 진입하기 전에 서로 달리 정렬되어 있슴-.8) Encode data with rate 1/2 and rate 1/3 turbo code with the selected universal code pair in the first and second encoders - Similar encoder and interleaver supply bits to the second encoder, Are aligned differently before entering each encoder.

일단 발생되면, 상기 단계에 의해 결정되는 레이트 1/2 및 1/3 터보 코드와 호환하는, 1/4과 같은 하위 레이트의 최상의 터보 코드가 또한 결정될 수 있다.Once generated, a superior turbo code of a lower rate such as 1/4, which is compatible with the rate 1/2 and the 1/3 turbo code determined by the above step, can also be determined.

레이트 1/2 구성 코드Rate 1/2 configuration code

다음 설명은 레이트 1/2 구성 코드가 한 실시예에서 어떻게 결정되는 지를 설명한다.The following description explains how the rate 1/2 configuration code is determined in one embodiment.

먼저, 후보 8-상태, 레이트 1/2 구성 코드 다항식의 리스트가 결정된다.First, a list of candidate 8-states, rate 1/2 configuration code polynomials is determined.

표 1은 8진법으로 결정된 분모 다항식 d(D) 및 분자 다항식 n(D)을 열거한다. 초기의 검사를 위해 고려되고 있는 12 구성 코두 후보가 존재한다.Table 1 lists the denominator polynomial d (D) and the molecular polynomial n (D) determined by the octal method. There are 12 candidate congruity candidates considered for initial testing.

레이트 1/2의 후보 8-상태 구성 엔코더Rate 1/2 candidate 8-state configuration encoder 분모 다항식 d(D)(8진수)Denominator polynomial d (D) (octal) 분자 다항식 n(D)(8진수)Molecular polynomial n (D) (octal) 1111 1212 1111 1515 1111 1717 1212 1111 1212 1515 1212 1717 1515 1111 1515 1212 1515 1717 1717 1111 1717 1212 1717 1515

열두개(12)의 다항식의 각각은 표 1에서 8진수 형태로 표현되고, 대응하는 이진법 및 다항식을 갖는다. 예를 들어, 8진수 13의 이진 등가물은 이진 1011이다. 이진 1011은 다음 다항식에 대응한다:Each of the twelve (12) polynomials is represented in octal form in Table 1 and has a corresponding binary and polynomial. For example, the binary equivalent of octal number 13 is binary 1011. Binary 1011 corresponds to the following polynomial:

d(D) = D0(1) + D1(0) + D2(1) + d3(1) = 1 + D2+ D3.D (D) = D 0 (1) + D 1 (0) + D 2 (1) + d 3 (1) = 1 + D 2 + D 3 .

다음에, 후보 터보 코드는 1000 비트의 인터리버 크기 및 3개의 디코더 반복으로 시뮬레이트된다. 그 결과가 도 5 및 도 6에 도시되어 있는 예시 검사는 상술하는 바와 같이, 레이트 1/2 및 레이트 1/3의 모든 후보 터보 코드의 비트 에러 레이트(BER) 대 Ebi/No 성능을 평가한다. Ebi/No의 측정은 상대적 SNR과 등가이다.Next, the candidate turbo code is simulated with a 1000 bit interleaver size and three decoder iterations. The exemplary results shown in Figures 5 and 6 assess the bit error rate (BER) vs. Ebi / No performance of all candidate turbo codes at rate 1/2 and rate 1/3, as described above. The measurement of Ebi / No is equivalent to the relative SNR.

도 5 및 도 6의 결과는 여섯개(6) 코드 다항식 쌍을 선택하는데 사용된다. 여섯개(6) 후보 유니버셜 코드 쌍 d(D)-n(D)는 이하의 표 2의 좌측 상에 8진수 표현으로 도시되어 있다.The results in Figures 5 and 6 are used to select six (6) code polynomial pairs. The six (6) candidate universal code pairs d (D) -n (D) are shown in octal representation on the left-hand side of Table 2 below.

다음에, 각각의 레이트 및 인터리버 깊이로 후보 유니버셜 코드를 갖는 시뮬레이트된 데이터를 사용하여 8-상태 터보 코드의 대응하는 성능을 사용하여 표 2를 작성한다. 샘플 성능 연구 또는 시뮬레이션은 레이트 1/2 및 레이트 1/3에 대한 512 비트의 인터리버 깊이의 선택된 터보 코드를 도시하는 도 7 및 8에 도시되어 있다.Table 2 is then generated using the corresponding performance of 8-state turbo codes using simulated data with candidate universal codes at each rate and interleaver depth. Sample performance studies or simulations are shown in Figures 7 and 8 which illustrate selected turbo codes of 512 bit interleaver depth for rate 1/2 and rate 1/3.

이하의 표 2는 레이트 1/2 및 1/3 및 512, 1024, 2048 및 3072 비트의 인터리버 깊이를 사용함으로 인한 시뮬레이트된 데이터에 대한 대략 SNR 손실을 도시한다.Table 2 below shows the approximate SNR loss for the simulated data due to the use of rate 1/2 and 1/3 and interleaver depths of 512, 1024, 2048 and 3072 bits.

비 최적화 코드의 사용으로 인한 대략 SNR 손실Approximate SNR loss due to use of non-optimized code 후보 "유니버셜"코드 d(D)-n(D)Candidate " universal " code d (D) -n (D) 터보 코드 레이트 크기(비트)Turbo code rate size (bits) 1/25121/2512 1/210241/21024 1/220481/22048 1/230721/23072 1/35121/3512 1/210241/21024 1/320481/32048 1/330721/33072 15-1315-13 0.005 dB0.005 dB 0.00 dB0.00 dB 0.00 dB0.00 dB 0.05 dB0.05 dB 0.10 dB0.10 dB 0.05 dB0.05 dB 0.05 dB0.05 dB 0.10 dB0.10 dB 13-1513-15 0.00 dB0.00 dB 0.00 dB0.00 dB 0.00 dB0.00 dB 0.00 dB0.00 dB 0.05 dB0.05 dB 0.05 dB0.05 dB 0.05 dB0.05 dB 0.05 dB0.05 dB 15-1715-17 0.05 dB0.05 dB 0.05 dB0.05 dB 0.00 dB0.00 dB 0.05 dB0.05 dB 0.05 dB0.05 dB 0.05 dB0.05 dB 0.00 dB0.00 dB 0.10 dB0.10 dB 17-1517-15 0.40 dB0.40 dB 0.50 dB0.50 dB 0.00 dB0.00 dB 0.00 dB0.00 dB 0.05 dB0.05 dB 0.00 dB0.00 dB 17-1317-13 0.40 dB0.40 dB 0.50 dB0.50 dB 0.00 dB0.00 dB 0.00 dB0.00 dB 0.00 dB0.00 dB 0.00 dB0.00 dB 13-1713-17 0.05 dB0.05 dB 0.05 dB0.05 dB 0.05 dB0.05 dB 0.00 dB0.00 dB 0.00 dB0.00 dB 0.10 dB0.10 dB 0.00 dB0.00 dB 0.10 dB0.10 dB

16-상태 코드를 사용한 유사한 시뮬레이션에서, 31-33 및 31-27으로서 지칭된 쌍들은 또한 여덟개(8) 디코더 반복을 사용하는 8-상태 코드와의 유사한 복잡성 비교를 제공하기 위해, 각각의 16-상태 코드에 대한 네개(4) 디코더 반복을 사용하여 샘플 도 7 및 8에 도시되어 있다. 8 반복을 갖는 8-상태 코드는 네개의 반복을 갖는 16 상태 코드를 수행한다.In similar simulations using a 16-state code, the pairs referred to as 31-33 and 31-27 are also used to provide a similar complexity comparison with 8-state codes using eight (8) decoder iterations, A sample using four (4) decoder iterations for the status code is shown in Figures 7 and 8. An 8-state code with eight iterations performs a 16 state code with four iterations.

개별적인 시뮬레이션으로서, 상기 여섯개(6) 후보 쌍을 사용하는 서로 다른 인터리버들중의 성능 차이는 0.05 dB 이내인 것으로 관찰된다.As a separate simulation, the performance difference among the different interleavers using the six (6) candidate pairs is observed to be within 0.05 dB.

마지막으로, 표 2의 결과는, 다음 레이트 1/2 구성 코드 쌍이 연구된 레이트 및 인터리버 크기의 범위에 걸쳐 전체적인 최상의 성능을 제공하는 것을 도시한다.Finally, the results in Table 2 show that the following rate 1/2 configuration code pairs provide overall best performance over the range of rates and interleaver sizes studied.

d(D) = 1 + D2+ D3; n(D) = 1 + D + D3.d (D) = 1 + D 2 + D 3; n (D) = 1 + D + D 3 .

이는 8진수 13 및 8진수 15를 각각 나타낸다.This represents an octal number 13 and an octal number 15, respectively.

표로 만들어진 각각의 경우에, 코드 13-15의 성능은 레이트 및 인터리버 크기에 대한 최상의 성능 코드에 대해 0.05 dB이내이다.In each case tabulated, the performance of codes 13-15 is within 0.05 dB for the best performance code for rate and interleaver size.

따라서, 이 구성 코드는 1/2 및 1/3과 같은 상위 코드 레이트가 우세한 터보 코드 설계에 대한 기초로서 선택된다.Thus, this configuration code is chosen as the basis for a turbo code design where superior code rates, such as 1/2 and 1/3, are preferred.

레이트 1/3 구성 코드Rate 1/3 configuration code

이하의 다음은 레이트 1/3 구성 코드가 어떻게 결정되는 지를 설명한다. 레이트 1/12 구성 코드와 유사하게, 거의 최적의 1/4 및 1/5 터보 코드 레이트를 구축하기 위한 이하의 표 3에 레이트 1/3 구성 코드 후보가 확인된다. 이 경우에, 터보 코드용의 구성 코드 후보는 두개(2) 대신에 세개(3) 다항식을 가져야만 한다.The following describes how the rate 1/3 configuration code is determined. Similar to the rate 1/12 configuration code, rate 1/3 configuration code candidates are identified in Table 3 below to establish a near optimal 1/4 and 1/5 turbo code rate. In this case, the configuration code candidate for the turbo code must have three (3) polynomials instead of two (2).

최적의 하위 레이트의 터보 코드를 위한 후보 구성 코드Candidate configuration code for optimal subrate turbo code CC#1 (8진 13-15/17)CC # 1 (Oct. 13-15 / 17) CC#2 (8진 15-13/17)CC # 2 (Oct. 15-13 / 17) CC#3 (8진 17-13/15)CC # 3 (Oct. 17-13 / 15) d(D) = 1 + D2+ D3(8진수 13)n1(D) = 1 + D + D3(8진수 15)n2(D) = 1 + D + D3(8진수 17)d (D) = 1 + D 2 + D 3 (8 decimal 13) n 1 (D) = 1 + D + D 3 (8 decimal 15) n 2 (D) = 1 + D + D 3 (8 hexadecimal 17 ) d(D) = 1 + D + D3(8진수 15)n1(D) = 1 + D2+ D3(8진수 13)n2(D) = 1 + D + D2+ D3(8진수 17)d (D) = 1 + D + D 3 (8 decimal 15) n 1 (D) = 1 + D 2 + D 3 (8 decimal 13) n 2 (D) = 1 + D + D 2 + D 3 ( Octal number 17) d(D) = 1 + D + D2+ D3(8진수 17)n1(D) = 1 + D2+ D3(8진수 13)n2(D) = 1 + D + D3(8진수 15)d (D) = 1 + D + D 2 + D 3 (8 decimal 17) n 1 (D) = 1 + D 2 + D 3 (8 decimal 13) n 2 (D) = 1 + D + D 3 ( Octal 15)

최적의 레이트 1/4 터보 코드Optimal rate 1/4 turbo code

전체적인 레이트 1/4 터보 코드를 구축하기 위해서는, 표 3의 각각의 구성 코드와 결합하여 다양한 펑처링 스킴이 고려되어야만 한다.In order to build the overall rate 1/4 turbo code, various puncturing schemes in combination with the respective configuration codes in Table 3 must be considered.

도 9의 다양한 펑처링 스킴이 먼저 고려된다. 레이트 1/4 코드의 경우, 공통 입력 정보 비트 또는 시스템적 비트가 두개의 엔코더에 의해, 해당 입력 비트에 대해 발생된 네개(4) 패리티 비트중 세개(3)와 함께 하나의 엔코더에 의해 전송된다.The various puncturing schemes of FIG. 9 are considered first. For a rate 1/4 code, the common input information bits or systematic bits are transmitted by two encoders, with three (3) of the four (4) parity bits generated for that input bit, by one encoder .

도 9의 펑처링 패턴, 즉 910, 920, 930 및 940이 명시된 코드 레이트를 충족시키기 위해 이전에 설명한 설계 원리에 기초하여 선택된다.9 are selected based on the previously described design principles to meet the specified code rate.

다음에, 표 3의 세개(3)의 코드 3인조(triad)의 각각이 도 9의 네개(4)의 펑처링 패턴(910,920,930 및 940)과 결합되어, 예를 들어 512의 고정 인터리버 깊이에 대해 도 10 내지 12에 도시된 시뮬레이트된 데이터와 함께 평가될 열두개(12)의 가능한 터보 코드를 발생한다.Next, each of the three (3) code triads of Table 3 is combined with the puncturing patterns 910, 920, 930, and 940 of the four (4) of FIG. 9 to obtain, for example, a fixed interleaver depth of 512 Generates twelve (12) possible turbo codes to be evaluated with the simulated data shown in Figures 10-12.

다음에, 상기 열두개(12)의 터보 코드의 성능을 사용하여 보다 상세한 평가를 위해 세개(3)의 최상의 터보 코드 후보를 선택한다. 도 10 내지 12에 도시된 시물레이션 결과에 기초하여, 열두개(12)중 세개(3)의 최상의 터보 코드 후보는 다음과 같다:Next, the performance of the twelve (12) turbo codes is used to select three (3) best turbo code candidates for a more detailed evaluation. Based on the simulation results shown in Figures 10 to 12, the best turbo code candidates for the three (3) of twelve (12) are:

터보 코드 A - 펑처링 패턴 제2를 갖는 구성 코드 제1;A configuration code having a turbo code A-puncturing pattern second;

터보 코드 B - 펑처링 패턴 제1을 갖는 구성 코드 제2; 및A configuration code having a turbo code B-puncturing pattern first; And

터보 코드 C - 펑처링 패턴 제1을 갖는 구성 코드 제3 (펑처링 패턴은 도 9의 패턴(910,920,930 및 940중에서 선택된다.)A configuration code third with a turbo code C - puncturing pattern first (the puncturing pattern is selected from the patterns 910, 920, 930 and 940 of FIG. 9).

다음에, 다양한 부수적인 인터리버 프레임 크기의 시뮬레이트된 데이터를 사용하여 다른 인터리버 깊이에서 펑처링 패턴이 양호하다는 것을 증명하기 위해 부수적인 평가를 위해 코드 A 내지 C의 터보 코드중의 하나가 선택된다.Next, one of the turbo codes of codes A to C is selected for an appraisal to demonstrate that the puncturing pattern is good at different interleaver depths using simulated data of various ancillary interleaver frame sizes.

기본적인 방법론을 확인하기 위해, 구성 코드 제1 (예를 들면)에 기초한 터보 코드의 성능이 1024,2048 및 3072 비트의 프레임 크기마다 시뮬레이트된다. 1023 비트의 코드#1의 BER/FER 성능에 대한 샘플 결과가 도 13에 도시되어 있고, 이는 기본적인 방법론을 확인한다.To confirm the basic methodology, the performance of the turbo code based on the configuration code first (e.g.) is simulated for each frame size of 1024, 2048 and 3072 bits. Sample results for the BER / FER performance of 1023 bits of code # 1 are shown in FIG. 13, which confirms the basic methodology.

다음에, 도 14는 512 비트의 인터리버 깊이로 세개의 레이트 1/4 터보 코드 후보 A 내지 C를 사용하는 시뮬레이트된 데이터의 BER/FER 성능을 도시한다. 인터리버 크기 1024,2048 및 3072 비트에서 또한 일관된 결과가 달성된다.Next, FIG. 14 shows the BER / FER performance of the simulated data using three rate 1/4 turbo code candidates A through C with a 512 bit interleaver depth. Coherent results are also achieved at interleaver sizes 1024, 2048 and 3072 bits.

다음에, 부록 A에 설명된 것들과 같이, 도 14의 결과가 되는 시뮬레이션 및 유사 도면에서, 모든 인터리버 깊이의 전체적인 최상의 성능을 제공하는 후보 터보 코드 A 내지 C중에서 레이트 1/4 터보 코드 후보가 선택된다. 레이트 1/4 터보 코드의 경우에, BER 성능에 기초한 최적화는 FER 성능에 기초한 최적화와는 다른 결과를 제공한다. 시뮬레이트된 데이터에 대해, 터보 코드 B는 전체적인 최상의 FER 성능을 가지며, 터보 코드 C는 전체적인 최상의 BER 성능을 제공한다. 도 15는 다른 펑처링 스킴과 비교한 터보 코드 C의 성능을 도시한다.Next, in the resulting simulations and similar plots as in Fig. 14, a rate 1/4 turbo code candidate is selected from among the candidate turbo codes A through C providing the overall best performance of all interleaver depths do. In the case of rate 1/4 turbo codes, optimization based on BER performance provides results different from optimization based on FER performance. For simulated data, Turbo code B has the best overall FER performance, and Turbo code C provides the best overall BER performance. Figure 15 shows the performance of a Turbo code C compared to other puncturing schemes.

이와 같이, FER 최적화 터보 코드 B는 FER 성능이 흔히 데이터 서비스에 대해 보다 중요한 기준이기 때문에 설계에 대한 기초로서 선택된다. 한편, 터보 코드 A는, (n2(D) 다항식으로부터 모든 패리티 비트를 펑처링함으로써) 이전에 레이트 1/3에 대해 최적으로 확인된 동일한 유니버셜 터보 코드를 제공하도록 펑처링될 수 있다. 즉, 터보 코드 A는 모든 서로 다른 코드 레이트를 구현하는 단일 유니버셜 마더 코드를 가지기 위해 포워드 링크 레이트 1/4 코드에 대한 바람직한 선택이다.As such, the FER-optimized turbo code B is chosen as the basis for the design because FER performance is often a more important criterion for data services. On the other hand, the turbo code A may be punctured to provide the same universal turbo code that was previously identified optimally for rate 1/3 (by puncturing all parity bits from the n 2 (D) polynomial). That is, turbo code A is the preferred choice for forward link rate 1/4 code to have a single universal mother code that implements all different code rates.

비록 현재의 제3 세대 CDMA 엔코딩이 주로 역 링크에 대한 레이트 1/4 채널 엔코딩에 관한 것이지만, 일부 최고 레이트 데이터 채널을 위해서는 레이트 1/3 및 레이트 1/2 채널 코딩이 요구될 수도 있다. 레이트 1/4, 레이트 1/3 및 레이트1/2를 위한 유니버셜 터보 코드가 설계될 수 있는데, 여기서 하부의 구성 코드는 동일하고, 사용된 펑처링 패턴만이 다르다. 레이트 1/3 구성 코드로부터 상위 레이트 터보 코드를 발생하기 위한 방법은 다음과 같다.Although current third generation CDMA encoding is primarily for rate 1/4 channel encoding for reverse link, rate 1/3 and rate 1/2 channel coding may be required for some highest rate data channels. A universal turbo code for rate 1/4, rate 1/3 and rate 1/2 can be designed where the underlying configuration code is the same and only the puncturing pattern used is different. The method for generating the upper rate turbo code from the rate 1/3 configuration code is as follows.

레이트 1/4로 최적화된 레이트 1/3 터보 코드Rate 1/3 turbo code optimized to 1/4 rate

상기 레이트 1/4 최적화 터보 코드, 즉 터보 코드 B로부터 유도된 구성 코드를 사용하여, 레이트 1/3 및 레이트 1/2 터보 코드가 그에 호환하도록 설계될 수 있다. 따라서, 구성 코드 제2(코드 B로부터)가 기본으로서 사용된다.Using the rate 1/4 optimized turbo code, i.e., the configuration code derived from the turbo code B, rate 1/3 and rate 1/2 turbo codes can be designed to be compatible therewith. Therefore, the configuration code second (from code B) is used as a basis.

도 16은 레이트 1/3 터보 코드 및 네개(4)의 기본 펑처링 패턴을 발생하여 레이트 1/2 터보 코드를 발생하는데 사용될 수 있는 일곱(7)개의 기본 펑처링 패턴을 도시한다. 블럭도(1600)에서 일곱개(7) 레이트 1/3 패턴(1602 내지 1614)은 두개(2)의 엔코더 펑처링 블럭 패턴(1616 및 1618)에 대한, 연속하는 정보 펑처링 비트 패턴(1620,1626) 및 네개(4) 대응하는 행 패리티 비트 펑처링 패턴(1622,1624,1628 및 1630)을 도시한다. 이전과 같이, 행(1620)에 도시한 패턴("1111")은 항상 엔코더1로부터 모든 정보 비트를 송신한다. 행(1626)의 패턴("0000")은 항항 엔코더 제2에 의해 진입하는 정보 비트를 펑처링한다. 그 이유는, 정보 비트를 두번 전송하는데 필요하지 않기 때문이다. 참조번호(1640,1642,1644 및 1646)으로서 도 16에 도시된 네개(4)의 레이트 1/2 펑처링 패턴(1 내지 4)은 동일한 진법을 따른다.Figure 16 shows seven (7) basic puncturing patterns that can be used to generate rate 1/3 turbo codes and four (4) basic puncturing patterns to generate rate 1/2 turbo codes. The seven (7) rate 1/3 patterns 1602 to 1614 in the block diagram 1600 correspond to two (2) encoder puncturing block patterns 1616 and 1618, successive information puncturing bit patterns 1620, 1626, and four (4) corresponding row parity bit puncturing patterns 1622, 1624, 1628, and 1630. As before, the pattern (" 1111 ") shown in row 1620 always transmits all information bits from encoder 1. The pattern (" 0000 ") in row 1626 punctures the information bits entering by the second encoder encoder. This is because it is not necessary to transmit the information bits twice. Four (4) rate 1/2 puncturing patterns 1 to 4 shown in FIG. 16 as reference numerals 1640, 1642, 1644 and 1646 follow the same convolution.

다음에, 도 17에서 인터리버 깊이(512)로 바람직한 구성 코드 제2로 시뮬레이트된 모든 가능한 1/3 터보 코드의 BER 및 FER 성능이 비교된다.Next, the BER and FER performance of all possible 1/3 turbo codes simulated with the preferred configuration code second to the interleaver depth 512 in FIG. 17 are compared.

다음에 두개(2)의 최상의 패턴들이 다음에 고려하기 위해 선택된다. 다음에, 이들 두개(2)의 패턴들의 성능이 부수적인 인터리버 깊이(1024,2048 및 3078) 비트에서 비교된다.The best two (2) patterns are then selected for consideration. Next, the performance of these two (2) patterns is compared at the interleaved depth (1024, 2048 and 3078) bits.

예를 들어, 512 비트의 레이트 1/3 펑처링 패턴을 도시하는 도 17에서, 최상 및 다음 최상의 전체적인 상대적인 FER을 각각 갖는 것으로 곡선(1710 및 1720)에 기초하여 패턴 2 및 5가 선택된다.For example, in FIG. 17, which illustrates a rate 1/3 puncturing pattern of 512 bits, patterns 2 and 5 are selected based on curves 1710 and 1720, respectively, having the best and next best overall relative FER.

다음에 1024, 2048 및 3072 비트에 대한 부수적인 인터리버 크기에서 도 17의 그것과 유사한 부수적인 시뮬레이션으로부터 다양한 인터리버 깊이에 걸쳐 최상의 성능을 갖는 것으로 패턴 2가 선택된다.Pattern 2 is then selected to have the best performance across the various interleaver depths from a side-by-side simulation similar to that of FIG. 17 at a side-by-side interleaver size for 1024, 2048 and 3072 bits.

레이트 1/4로 최적화된 레이트 1/2 터보 코드Rate 1/2 turbo code optimized for rate 1/4

레이트 1/2 코드는 또한 상술한 바와 같이 유사한 호환성을 위해 하위 레이트 코드로 최적화될 수 있다. 도 18은 512 비트의 인터리버 깊이에서 모든 레이트 1/2 터보 코드의 BER 및 FER 시뮬레이트 성능을 비교한다. 도 18은 레이트 1/2 터보 코드에 대해 도 16에 도시딘 네개(4)의 펑처링 패턴과 구성 코드 제2를 사용하여 발생된다. 패턴(1 및 4)은 FER 성능에 대해 시뮬레이트된 곡선(1810 및 1820)에 기초하여 최상이 되도록 결정된다.The rate 1/2 code may also be optimized with a lower rate code for similar compatibility as described above. 18 compares the BER and FER simulated performance of all rate 1/2 turbo codes at a 512 bit interleaver depth. Fig. 18 is generated using the puncturing pattern 4 and the configuration code 2 shown in Fig. 16 (4) for the rate 1/2 turbo code. Patterns 1 and 4 are determined to be best based on simulated curves 1810 and 1820 for FER performance.

레이트 1/4로 최적화된 레이트 1/3 경우에서와 같이, 도 18에 대한 유사한 시뮬레이션 곡선이 1024, 2048 및 3072 비트의 인터리버 깊이에 대해 패턴 1 및 4에 대해 수행된다. 결과로 나타나는 성능/곡선에 기초하여 패턴 1이 FER 성능에 대한 최상의 패턴이 되도록 조정된다.A similar simulation curve for FIG. 18 is performed for patterns 1 and 4 for interleaver depths of 1024, 2048, and 3072 bits, as in the case of rate 1/3 optimized at rate 1/4. Based on the resulting performance / curves, pattern 1 is adjusted to be the best pattern for FER performance.

레이트 1/2 및 1/3에 대해 최적화된 바람직한 유니버셜 터보 코드Preferred universal turbo codes optimized for rates 1/2 and 1/3

도 19는 터보 코드 레이트 1/2 및 1/3에 대해 이전에 설명한 방법에 따라 최적화된 구성 엔코더에 대한 블럭도이다. 도 20은 레이트 1/4로 펑처링된 대응하는 터보 코드에 대한 블럭도를 도시한다.19 is a block diagram for a configuration encoder optimized in accordance with the method previously described for turbo code rates 1/2 and 1/3. Figure 20 shows a block diagram for a corresponding turbo code punctured at a rate of 1/4.

정보 비트 스트림 X(t)(1902)가 스위치(1922)에서 수신되어,두개(2)의 분자 다항식 및 하나의 분모 다항식을 표현하도록 하드와이어된, 몇개의 모듈러 가산기(1904,1908,1920,1910,1914,1918,1919) 및 몇몇 쉬프트 레지스터(1906,1912 및 1916)에 따라 처리된다.A number of modular adders 1904,1908,1920,1910 (1902), which are hardwired to receive information bit stream X (t) 1902 at switch 1922 and to represent two (2) molecular polynomials and one denominator polynomial, , 1914, 1918, 1919) and some shift registers (1906, 1912 and 1916).

도 19에서, 8진수 13으로 표현된 분모 다항식 d(D)는 모듈러 가산기(1920 및 1904)에 복귀 피드백 접속에 의해 하드와이어되어 있다. 연산하기 전에, 세개의 쉬프트 레지스터(1906,1912 및 1916)가 먼저 제로로 된다.In Fig. 19, the denominator polynomial d (D), represented by octal number 13, is hardwired by a return feedback connection to modulo adders 1920 and 1904. [ Before computing, the three shift registers 1906, 1912, and 1916 are first set to zero.

"1101"로 표현된 분모 다항식 위의 제1 분자 다항식은, 제1 비트 W(t)를 생성하기 위해 변조기 가산기(1920)의 결과와 X(t)(1992); 쉬프트 레지스터(1906)의 모듈러 합계(제1 비트)와 변조기 가산기(1908)로부터 W(t); 레지스터(1912)에의 접속의 부재에 의해 표시된 다른 제로 비트(세번째 비트); 및 다른 레지스터(1916)의 모듈러 합계(네번째 비트) 및 모듈러 가산기(1998)로부터의 모듈러 가산기(1908)의 결과를 결합함으로서 출력 Yo(t)를 반환하도록 하드와이어되어 있다. 그 결과는 Yo(t) = W(t) + So(t) + S2(t)이다.The first molecular polynomial on the denominator polynomial expressed as " 1101 " is the result of the modulator adder 1920 and X (t) (1992) to produce the first bit W (t); A modulo sum (first bit) of shift register 1906 and W (t) from modulator adder 1908; Another zero bit (third bit) indicated by the absence of a connection to register 1912; And to return the output Y o (t) by combining the modulo sum (fourth bit) of the other register 1916 and the result of the modulo adder 1908 from the modulo adder 1998. The result is Y o (t) = W (t) + S o (t) + S 2 (t).

도 19에서, "1111"로 표현된 분모 다항식 위의 두번째 분자 다항식은, 제1비트 W(t)를 생성하기 위해 가산기(1920)의 결과와 X(t)(1902)를 결합하고; 모듈러 가산기(1910)(두번째 비트)의 내용과 함께 부수적인 레지스터(1906)의 내용을 W(t)에 더하고; 모듈러 가산기(1914)(세번째 비트)와 함께 가산기(1710)의 결과에 레지스터(1912)의 내용을 더하고; 그리고, 모듈러 가산기(1919)(네번째 비트)와 함께 가산기(1914)의 결과에 다른 레지스터(1916)의 내용을 더함으로써 출력 Y1(t)를 반환하도록 하드와이어되어 있다. 그 결과는 Y1(t) = W(t) + So(t) + S1(t) + S2(t)이다.19, the second molecular polynomial on the denominator polynomial expressed as " 1111 " combines X (t) 1902 with the result of adder 1920 to produce a first bit W (t); Adds the contents of the subsidiary register 1906 to W (t) with the contents of modulo adder 1910 (second bit); Adding the contents of register 1912 to the result of adder 1710 along with modulo adder 1914 (third bit); And, a hard-wire is to be returned to the modular adder 1919 (fourth bit) and the output Y 1 by adding the contents of the adder 1914 is the register 1916 to the other with the result of (t). The result is Y 1 (t) = W (t) + S o (t) + S 1 (t) + S 2 (t).

도 19에서, 분모 다항식 접속은 가산기(1920)에서 레지스터(1902) 내지 레지스터(1906)의 결과를 합계한 다음, 이들 가산기(1904)에서 X(t)에 더한다. 따라서, 만일 모듈러 가산기(1904)가 값 W(t)이면, 레지스터(1906)는 S0(t)를 보유하고, 레지스터(1912)는 S1(t)를 보유하고, 레지스터(1916)는 S2(t)를 보유하고, 가산기(1904)는 W(t) = X(t) + S1(t) + S2(t); Y0(t) = W(t) + So(t) + S2(t); 및 Y1(t)= W(t) + S0(t) + S1(t) + S2(t)를 발생한다. 따라서, 가산이 축적된다.In Fig. 19, the denominator polynomial connection sums the results of registers 1902 to 1906 in adder 1920 and then adds X (t) to these adders 1904. Thus, if modular adder 1904 is a value W (t), register 1906 holds S 0 (t), register 1912 holds S 1 (t), register 1916 holds S 2 (t), adder 1904 holds W (t) = X (t) + S 1 (t) + S 2 (t); Y 0 (t) = W ( t) + S o (t) + S 2 (t); And Y 1 (t) = W (t) + S 0 (t) + S 1 (t) + S 2 (t). Thus, additions are accumulated.

만일 두개 비트가 서로 다르면 모듈러 가산기의 결과는 "1"이고, 만일 두개 비트가 동일하면 "0"이다. 출력 Y0(t)는 분자 다항식 제1 및 분모 다항식으로부터의 출력을 나타낸다. 출력 Y1(t)는 분자 다항식 제2 및 분모 다항식을 나타낸다.If the two bits are different, the result of the modulo adder is "1" and if the two bits are equal, "0". Output Y 0 (t) represents the output from numerator Polynomial No. 1 and the denominator polynomial. Output Y 1 (t) represents a second numerator polynomial and a denominator polynomial.

초기에, S0=S1=S2=0이고, 레지스터(1906, 1912, 1916)의 값은 각각의 클럭 사이클이 증가 후에 좌에서 우로 쉬프트한다. 따라서, S0(t+1)=W(t); S1(t+1)= S0(t) 및 S2(t+1)=S1(t)이다.Initially, S 0 = S 1 = S 2 = 0, and the values of registers 1906, 1912, and 1916 shift left to right after each clock cycle is incremented. Therefore, S 0 (t + 1) = W (t); S 1 (t + 1) = S 0 (t) and S 2 (t + 1) = S 1 (t).

예를 들어, 도 20에 도시한 최적의 펑처링 매트릭스는 송신된 비트에 대해 "1"을 그리고, 펑처링된 비트에 대해 "0"을 도시한다. 예시적인 도 20은 입사 비트 X(t)를 갖는 엔코더(2000), 및 출력 비트 X'(t), 패리티 비트 Y0 1(t) 및 Y1 1(t)를 발생하기 위해 엔코더(2006)에 인터리브된 비트 X'(t)를 전달하는 인터리버(2002)를 도시한다. 인터리브된 비트 X'(t)의 어느것도 레이트 1/4 엔코더(2004)에서, 두번째 레이트 1/4 엔코더(2006)에서만 처리된다. 블럭(2010)은 펑처링 패턴 매트릭스를 도시한다.For example, the optimal puncturing matrix shown in FIG. 20 shows " 1 " for transmitted bits and " 0 " for punctured bits. 20 illustrates an encoder 2000 having an incident bit X (t) and an encoder 2006 for generating an output bit X ' (t), parity bits Y 0 1 (t) and Y 1 1 (t) Lt; RTI ID = 0.0 &gt; X ' (t) &lt; / RTI &gt; Any of the interleaved bits X ' (t) is processed at the rate 1/4 encoder 2004, only at the second rate 1/4 encoder 2006. Block 2010 shows a puncturing pattern matrix.

보다 복잡한 펑처링 패턴이 다른 가능한 코딩 레이트를 달성하는데 사용될 수 있다. 예를 들어, 레이트 1/2 및 1/3로 최적화된 터보 코드에 대항여 레이트 2/8 및 4/9를 달성하고, 본 발명에서 확인된 바람직한 터보 코드를 사용하여 레이트 1/4로 최적화된 터보 코드에 대해 레이트 2/9 및 3/8을 달성하기 위해 최적의 펑처링 패턴을 선택할 수 있다.More complex puncturing patterns may be used to achieve different possible coding rates. For example, it is possible to achieve rates 2/8 and 4/9 against turbo codes optimized for rates 1/2 and 1/3, and to optimize rates &lt; RTI ID = 0.0 &gt; An optimal puncturing pattern can be selected to achieve rates 2/9 and 3/8 for the turbo code.

도 9와 유사하게, 최적의 터보 코드 레이트 3/8에 대한 블럭도는 도 20의 레이트 1/3 마더 구성 코드를 이용한다. 도 20의 구성 코드를 위한 엔코더가 도 19에 도시된다. 도 21에 도시된 레이트 3/8 터보 코드의 펑처링 패턴은 두개의 엔코더로부터 제1 분자 다항식과 연관된 매 6 비트중에서 1을 펑처링하여 레이트 3/8터보 코드를 생성한다.Similar to FIG. 9, the block diagram for the optimal turbo code rate 3/8 uses the rate 1/3 mother configuration code of FIG. An encoder for the configuration code of FIG. 20 is shown in FIG. The puncturing pattern of the rate 3/8 turbo code shown in Figure 21 punctures 1 out of every 6 bits associated with the first molecular polynomial from the two encoders to produce a rate 3/8 turbo code.

제2 패턴은 두개의 구성 엔코드 모두가 동일한 레이트, 즉 6/11을 갖게 하는 제1 패턴의 확장이다. 확장 패턴은 다른 세개(3)의 비트에 대해 동일한 패턴(매트릭스)을 복사하지만, 하나의 엔코더에서 다른 엔코더로 하나의 송신 비트의 위치를 이동. 즉 유사 위치에 있는 다른 엔코더 내의 "0"을 플립하면서 한 엔코더 내의 "1"을 반드시 플립한다.The second pattern is an extension of the first pattern such that both constituent encodings all have the same rate, 6/11. The expansion pattern copies the same pattern (matrix) for the bits of the other three (3), but moves the position of one transmission bit from one encoder to the other. That is, "1" in one encoder while flipping "0" in another encoder in the similar position.

도 22는 512 비트의 인터리버 깊이에서 이들 패턴의 성능을 도시한다. 이들 및 1024, 2048 및 3072 인터리버 깊이에서의 유사 곡선에 기초하여, 패턴 2가 선정되어 레이트 3/8 터보 코드를 구현한다.Figure 22 shows the performance of these patterns at an interleaver depth of 512 bits. Based on these and similar curves at the 1024, 2048 and 3072 interleaver depths, pattern 2 is selected to implement a rate 3/8 turbo code.

도 23은 도 20의 코드의 마더와 함께 사용되는 레이트 4/9 터보 코드에 대해 선택된 펑처링 패넌을 도시한다. 유사하게, 제2 패턴은 두개의 구성 엔코드 모두가 동일한 레이트, 즉 8/13을 갖게 하는 제1의 확장이다.FIG. 23 shows a puncturing puncture selected for a rate 4/9 turbo code used with the mother of the code of FIG. Similarly, the second pattern is the first extension, with both configuration codes having the same rate, i.e. 8/13.

도 24는 대응하는 성능 곡선을 도시한다. 패턴 2가 레이트 4/9 터보 코드를 구현하도록 선정된다.Fig. 24 shows a corresponding performance curve. Pattern 2 is selected to implement a rate 4/9 turbo code.

이와 같이, 터보 코드 레이트 1/2 및 1/3, 및 모든 인터리브된 깊이에 대한 유니버셜에 대해 최적화된 하나의 예시적인 터보 코드 설계는 바람직한 생성기 다항식 d(D)=1+D2+D3, n1(D)=1+D+D3, 및 n2(D)=1+D2+D3를 갖는다.As such, one exemplary turbo code design optimized for the turbo code rates 1/2 and 1/3, and universal for all interleaved depths, is the preferred generator polynomial d (D) = 1 + D 2 + D 3 , n 1 (D) = 1 + D + D 3 , and n 2 (D) = 1 + D 2 + D 3 .

다양한 코드 레이트에 대한 바람직한 펑처링 패턴은 다음과 같다:A preferred puncturing pattern for various code rates is as follows:

1) 레이트 1/4 - 하나의 엔코더로부터의 패리티 비트 n1및 동일한 엔코더로부터의 n2를 번갈아 펑처링함.1) Rate 1/4 - alternately puncturing parity bit n 1 from one encoder and n 2 from the same encoder.

2) 레이트 1/3 - 두개의 엔코더로부터의 패리티 비트 n2를 펑처링함2) rate 1/3 - puncturing parity bit n 2 from two encoders

3) 레이트 1/2 - 패리티 비트 n2를 펑처링하고 두개의 엔코더로부터의 패리티 비트 n1를 번갈아 펑처링함.3) Rate 1/2 - puncturing parity bits n 2 and alternately ringham puncture parity bits n 1 from the two encoders.

4) 레이트 3/8 - 패리티 비트 n2를 펑처링하고 두개의 엔코더로부터의 매 6 패리티 비트 n1중에서 하나를 펑처링함.4) Rate 3/8 - Punctures parity bit n 2 and punctures one of every 6 parity bits n 1 from two encoders.

5) 레이트 4/9 - 패리티 비트 n2를 펑처링하고 두개의 엔코더로부터의 매 8 패리티 비트 n1중에서 균일하게 3개를 펑처링함.5) Rate 4/9 - Punctures parity bit n 2 and punctures 3 equally among every 8 parity bits n 1 from two encoders.

이 코드의 단순화된 버젼은 생성기 다항식 d(D)=1+D2+D3및 N1(D)=1+D+D3를 갖는 두개의 구성 엔코더로 구성된 유니버셜 터보 코드 설계이다. (세번째 다항식 n2(D)는 사용되지 않고, 따라서 대응하는 출력이 발생되지 않으며, 엔코더 블럭도는 대응하는 접속을 제거함으로써 단순화된다) 이 유니버셜 터보 코드 설계는 (1/5 대신에) 1/3과 같은 최소 코드를 지원한다. 펑처링 패턴의 대응하는 바람직한 세트는 다음과 같다:The simplified version of this code is a universal turbo code design consisting of two constituent encoders with generator polynomials d (D) = 1 + D 2 + D 3 and N 1 (D) = 1 + D + D 3 . (The third polynomial n 2 (D) is not used, so no corresponding output is generated, and the encoder block diagram is simplified by eliminating the corresponding connection). This universal turbo code design is 1 / 3, and so on. A corresponding preferred set of puncturing patterns is as follows:

1. 레이트 1/3 - 펑처링 없음1. Rate 1/3 - No Puncturing

2. 레이트 1/2 - 두개의 엔코더로부터의 패리티 비트 n1를 번갈아 펑처링함;2. Rate 1/2 - alternately puncturing parity bit n 1 from two encoders;

3. 레이트 3/8 - 두개의 엔코더로부터의 매 6 패리티 비트 n1중에서 하나를 펑처링함; 및3. Rate 3/8 - puncturing one of every 6 parity bits n 1 from two encoders; And

4. 레이트 4/9 - 두개의 엔코더로부터의 매 8 패리티 비트 n1중에서 3개를 균일하게 펑처링함.4. Rate 4/9 - uniformly punctures 3 out of every 8 parity bits n 1 from the two encoders.

코드 레이트 1/에 대해 최적화된 바람직한 유니버셜 터보 코드A preferred universal turbo code optimized for code rate 1 /

바람직한 구성 엔코더에 대한 기본 블럭도가 도 25에 도시된다.A basic block diagram for a preferred configuration encoder is shown in Fig.

도 26은 바람직한 레이트 1/4 터보 코드에 대한 엔코더 블럭도이다. 이 경우에, 제2 패리티 비트들이 두개의 구성 엔코더에 의해 번갈아 펑처링된다. 다음에 이전 절에서 설명한 바람직한 펑처링 패턴이 인가되어 레이트 1/3 및 레이트 1/2 터보 코드를 발생한다. 부수적인 펑처링 패턴을 식별함으로써 다른 레이트가 또한 지원될 수 있다. 이는 레이트 2/9 및 3/8을 고려함으로써 예시된다.26 is an encoder block diagram for a preferred rate 1/4 turbo code. In this case, the second parity bits are alternately punctured by the two constituent encoders. The preferred puncturing pattern described in the previous section is then applied to generate rate 1/3 and rate 1/2 turbo codes. Different rates can also be supported by identifying additional puncturing patterns. This is illustrated by considering rates 2/9 and 3/8.

도 27은 2/9 역 링크 코드에 대한 펑처링 패턴을 도시한다. 세개(3)의 서로 다른 패턴이 도 28의 성능 곡선과, 예를 들어, 다양한 프레임 인터리버 크기의 성능을 도시하는 부록 A에서 설명된 것과 같은 유사 곡선에 의해 비교된다. 패턴 2 FER 곡선(2810) 및 유사 곡선으로부터, 패턴 제2가 레이트 2/9에 대한 최적의 FER 패턴으로서 선정된다.Figure 27 shows the puncturing pattern for the 2/9 reverse link code. The different patterns of the three (3) are compared with the performance curves of FIG. 28 by, for example, similar curves as described in Appendix A illustrating the performance of various frame interleaver sizes. From pattern 2 FER curve 2810 and pseudo-curve, the pattern second is selected as the optimal FER pattern for rate 2/9.

다음에, 도 29는 레이트 3/8 역 링크 코드를 최적화하기 위한 여섯개(6)의 초기 검사 펑처링 패턴을 도시한다. 이들 패턴들의 성능은 512 비트의 고정 인터리버 길이로 시뮬레이트된다. 이 시뮬레이션에 기초하여, 패턴 5 및 패턴 6이 부수적인 검토를 위한 최적의 펑처링 패턴으로서 선정된다.Next, FIG. 29 shows six (6) initial check puncturing patterns for optimizing the rate 3/8 reverse link code. The performance of these patterns is simulated with a fixed interleaver length of 512 bits. Based on this simulation, Pattern 5 and Pattern 6 are selected as optimal puncturing patterns for incidental review.

상기 패턴 5 및 6의 두개 이상의 확장 패턴 7 및 8은 다른 세개의 정보 비트에 대해 동일한 패턴을 복사하지만, 하나의 엔코더 패턴에서 다른 엔코더 패턴으로 패리티 시퀀스 내의 송신 비트중의 하나의 위치를 이동시킨다. 이 확장은 구성 엔코더 모두가 동일한 레이트, 즉 각각의 엔코더에서 6/11을 갖는 것을 허용한다.The two or more extension patterns 7 and 8 of the patterns 5 and 6 copy the same pattern for the other three information bits, but move one of the transmission bits in the parity sequence from one encoder pattern to another. This extension allows all configuration encoders to have the same rate, 6/11 in each encoder.

도 30은 레이트 3/8 터보 코드에 대한 상기 네개(4)의 후보 펑처링 패턴 5,6,7 및 8의 예시적인 성능 곡선을 도시한다. 이들 결과에 기초하여, 패턴 8 FER 곡선(3010) 및 예를 들어, 부록 A에 도시된 것과 같은 유사 곡선은 패턴 8이 레이트 3/8 터보 코드에 대한 최적의 펑처링 패턴이라는 것을 증명한다. 이와 같이, 레이트 1/4에 대해 최적화된 하나의 바람직한 유니버셜 터보 코드 설계는 다항식 d(D)=1+D+D3, n1=1+D2+D3, 및 n2=1+D+D2+D3를 갖는 두개의 구성 코드를 이용한다.FIG. 30 shows exemplary performance curves of four (4) candidate puncturing patterns 5,6,7 and 8 for a rate 3/8 turbo code. Based on these results, the pattern 8 FER curve 3010 and a pseudo curve such as that shown in Appendix A, for example, demonstrate that pattern 8 is the optimal puncturing pattern for the rate 3/8 turbo code. Thus, one preferred universal turbo code design optimized for rate 1/4 is the polynomial d (D) = 1 + D + D 3 , n 1 = 1 + D 2 + D 3 , and n 2 = 1 + D + D 2 + D 3 .

이하의 펑처링 패턴은 터보 코드 레이트 1/4에 대해 이전에 논의한 바와 같은 연관된 최적의 패턴, 및 가장 공통적으로 사용된 터보 코드 레이트에 대한 FER 성능으로, 여기서 n1는 제1 분자 다항식과 연관된 출력 비트를 표현하고, n2는 제2 분자 다항식과 연관된 출력 비트를 표현한다.The following puncturing pattern is the FER performance for the most optimal pattern and the most commonly used turbo code rate as discussed previously for the turbo code rate 1/4, where n 1 is the output associated with the first molecular polynomial represent the bits, n 2 represents output bits associated with a second numerator polynomial.

1) 레이트 1/4 - 두개의 구성 엔코더 모두로부터의 패리티 비트 n2를 번갈아 펑처링함.1) Rate 1/4 - alternately puncturing parity bit n 2 from both constituent encoders.

2) 레이트 1/3 - 두개의 구성 엔코더 모두로부터의 패리티 비트 n1를 펑처링함.2) Rate 1/3 - Punctures parity bit n 1 from both configuration encoders.

3) 레이트 1/2 - 두개의 엔코더 모두로부터의 패리티 비트 n2및 매 다른 패리티 비트 n1를 펑처링함.3) Rate 1/2 - puncturing parity bit n 2 and every other parity bit n 1 from both encoders.

4) 레이트 2/9 - 두개의 엔코더 모두로부터 n1에서 매 네개의 패리티 비트중 매 하나를 펑처링함.4) Rate 2/9 - Puncturing every one of every four parity bits from n 1 from both encoders.

5) 레이트 3/8 - 패리티 비트 n1및 매 여섯개의 패리티 비트 n2중에서 하나를 펑처링함.5) Rate 3/8 - Puncturing one of the parity bits n 1 and every six parity bits n 2 .

이들 바람직한 펑처링 패턴들은 또한 성능에 영향을 미치지 않고 사이클적으로 쉬프트된다. 사이클적으로 쉬프트된 패턴들은 등가이다.These preferred puncturing patterns are also cyclically shifted without affecting performance. Cyclically shifted patterns are equivalent.

CDMA 데이터 서비스용 터보 코딩 FEC 스킴Turbo coding FEC scheme for CDMA data services

본 발명에서 설명한 바람직한 유니버셜 터보 코드의 세트는, 다양한 저속 및 고속 데이터 서비스를 필요로 하는 첨단 데이터 통신 시스템에 아주 적합한 유연성있는 고성능 채널 코드를 제공한다. 이와 같은 바람직한 유니버셜 터보 코드는 서로 다른 터보 엔코딩 스킴 기술이 특정 데이터 통신 시스템의 특정 조건을 충족하는 것을 가능하게 한다.The preferred set of universal turbo codes described in the present invention provides a flexible high performance channel code that is well suited for advanced data communication systems that require a variety of low speed and high speed data services. Such preferred universal turbo codes enable different turbo encoding scheme techniques to meet certain conditions of a particular data communication system.

제1 예로서, 다음의 두개의 FEC 스킴중의 하나가 적합하며, (현재 개발중인 제3세대 CDMA 2000 시스템과 같은) 동기성 CDMA 데이터 통신 네트워크에 권고된다.As a first example, one of the following two FEC schemes is suitable and is recommended for synchronous CDMA data communication networks (such as a third generation CDMA 2000 system under development).

1) 포워드 링크 상에서 연관된 바람직한 펑처링 패턴의 서브셋과 함께 코드 레이트 1/2 및 1/3으로 최적화된 바람직한 유니버셜 터보 코드, 및 역 링크상에서연관된 바람직한 펑처링 패턴의 서브셋과 함께 코드 레이트 1/4로 최적화된 바람직한 유니버셜 터보 코드; 및1) a preferred universal turbo code optimized at code rates 1/2 and 1/3 with a subset of associated preferred puncturing patterns on the forward link, and a subset of associated preferred puncturing patterns on the reverse link An optimized preferred universal turbo code; And

2) 포워드 및 역 링크 상에서 연관된 바람직한 펑처링 패턴의 서브셋과 함께 코드 레이트 1/2 및 1/3으로 최적화된 바람직한 유니버셜 터보 코드.2) A preferred universal turbo code optimized at code rates 1/2 and 1/3 with a subset of the preferred preferred puncturing patterns associated on forward and reverse links.

제2 예로서, 다음의 두개의 FEC 스킴중의 하나가 적합하며, (유럽과 아시아에서 현재 개발중인 제3세대 UTRA 시스템과 같은) 비동기성 CDMA 데이터 통신 네트워크에 권고된다.As a second example, one of the following two FEC schemes suits and is recommended for asynchronous CDMA data communication networks (such as third generation UTRA systems currently in development in Europe and Asia).

1) 포워드 및 역 링크 상에서 연관된 펑처링 패턴의 서브셋과 함께 코드 레이트 1/2 및 1/3으로 최적화된 바람직한 유니버셜 터보 코드;1) a preferred universal turbo code optimized at code rates 1/2 and 1/3 with a subset of associated puncturing patterns on forward and reverse links;

2) 포워드 및 역 링크 상에서 연관된 바람직한 펑처링 패턴의 서브셋과 함께, 상술한 바와 같이, 코드 레이트 1/4로 최적화된 바람직한 유니버셜 터보 코드; 및2) a preferred universal turbo code optimized with a code rate of 1/4, as described above, with a subset of the preferred preferred puncturing patterns on forward and reverse links; And

3) 포워드 및 역 링크 상에서 연관된 바람직한 펑처링 패턴의 서브셋과 함께, 상술한 바와 같이, 유니버셜 터보 코드의 단순화된 버젼.3) Simplified version of the universal turbo code, as described above, with a subset of the desired preferred puncturing patterns on the forward and reverse links.

구현하는 선택의 선정은 다른 시스템 조건은 물론, 예상되는 우수한 코드 레이트, 최소 코드 레이트, 및 구현 복잡성 제한에 따른다. 물론, 다른 터보 코딩 레이트를 제공하기 위해 본 발명의 가르침에 따라 부수적인 펑처링 패턴들이 설계될 수 있다.The choice of implementation choices depends on the expected good code rate, minimum code rate, and implementation complexity constraints, as well as other system conditions. Of course, additional puncturing patterns may be designed in accordance with the teachings of the present invention to provide different turbo coding rates.

다른 변형Other variations

고속 데이터 서비스용 유니버셜 터보 코드는 제3 세대 CDMA 셀룰러 이동 무선 시스템에 특히 적합하지만, 다른 시스템에도 용이하게 적용될 수 있다.Universal turbo codes for high-speed data services are particularly suitable for third-generation CDMA cellular mobile radio systems, but can be readily applied to other systems.

프레임 지향 콘벌루션 코딩(FOCTC)과 같은 공지된 변형이 또한 본 발명의 바람직한 유니버셜 구성 코드 및 유니버셜 터보 코드에 사용될 수 있다. 유니버셜 구성 코드 및 유니버셜 터보 코드를 선택하는 설계 방법론은 또한 두개의 구성 엔코더 이상에 관여하는 것, 및 병렬 축약 대신 또는 그 이외의 직렬 축약에 관여하는 것과 같은 대체 터보 코드 구조에 적용될 수 있다.Known variations, such as frame-oriented convolutional coding (FOCTC), may also be used for the preferred universal configuration code and universal turbo codes of the present invention. The design methodology for selecting universal configuration codes and universal turbo codes can also be applied to alternate turbo code structures such as those involved in more than two constituent encoders and those involved in serial abbreviations instead of or in parallel.

본 발명에서 설명한 예시적인 바람직한 펑처링 패턴들은 기술분야의 숙련자에 의해 다양한 방식으로 변형 또는 수정될 수 있다. 예를 들어, 바람직한 펑처링 패턴의 사이클적 쉬프트는 본 발명에 설명한 바람직한 펑처링 패턴과 실질적으로 등가인 성능을 제공한다. 또한, 특정 데이터 통신 시스템은 레이트 정합을 지원하는 서로 다르고 부수적인 펑처링 패턴을 필요로 할 수 있다. 이들 펑처링 패턴들은 본 발명의 가르침에 따라 설계될 수 있다.The exemplary preferred puncturing patterns described in the present invention can be modified or modified in various ways by those skilled in the art. For example, a cyclic shift of the preferred puncturing pattern provides performance substantially equivalent to the preferred puncturing pattern described in the present invention. In addition, certain data communication systems may require different and ancillary puncturing patterns to support rate matching. These puncturing patterns can be designed in accordance with the teachings of the present invention.

레이트-호환 유니버셜 터보 코드의 세트Set of rate-compatible universal turbo codes

본 발명에 따르면, 소정의 상위 레이트의 터보 코드 세트가 동일한 세트의 다른 임의의 하위 레이트의 터보 코드에 의해 송신되는 것과 동일한 비트 위치를 송신하게 함으로써, 다양한 코드 레이트 및 다양한 인터리버 깊이에 대한 AWGN 채널을 통해 균일하게 최적인 또는 거의 최적인 레이트-호환 터보 코드의 세트를 제공할 수 있다.According to the present invention, an AWGN channel for various code rates and various interleaver depths can be provided by transmitting the same bit position as a given higher rate turbo code set is transmitted by the same set of other arbitrary lower rate turbo codes To provide a set of uniformly optimized or nearly optimal rate-compatible turbo codes.

특히, 한 실시예는 1/5, 1/4, 1/3 및 1/2의 다양한 코드 레이트, 및 512 내지 3072 비트의 다양한 인터리버 깊이의 레이트-호환 터보 코드 세트를 포함한다.In particular, one embodiment includes a set of rate-compatible turbo codes of various code rates of 1/5, 1/4, 1/3 and 1/2 and various interleaver depths of 512 to 3072 bits.

다른 바람직한 실시예는 시스템 설계자가 성능 대 다양성 정보(및 따라서, 복잡성) 또는 그 역으로 절충할 수 있게 하는 서로 다른 조건 하에 최적화된 다수의 터보 코드 세트를 제공한다. 레이트-호환 터보 코드 세트의 선택은 이하에 설명하는 유니버셜 구성 엔코더에 기초한다.Other preferred embodiments provide multiple sets of turbo codes that are optimized under different conditions that allow the system designer to compromise performance versus diversity information (and thus complexity) or vice versa. The selection of the rate-compatible turbo code set is based on the universal configuration encoder described below.

본 발명의 유니버셜 구성 엔코더는 큰 범위의 코드 레이트 및 인터리버 깊이에 걸쳐 최적 또는 거의 최적의 성능을 제공한다. 역 링크 또는 포워드 링크 우세 및 다양성 정도와 같은 서로 다른 최적화 기준은 서로 다른 레이트-호환 터보 코드 세트의 결과가 된다.The universal configuration encoders of the present invention provide optimal or near optimal performance over a large range of code rates and interleaver depths. Different optimization criteria, such as reverse link or forward link dominance and degree of diversity, result in different sets of rate-compatible turbo codes.

레이트-호환 코드 세트는 위성 방송 및 텔레포니에 적용되는 혼성 ARQ 스킴용에 특히 적합하다.The rate-compatible code set is particularly suited for hybrid ARQ schemes applied to satellite broadcast and telephony.

몇몇 바람직한 실시예는 서로 다른 유니버셜 구성 코드, 및 서로 다른 설계 기준에 따라 최적화된 서로 다른 레이트의 펑처링 패턴에 기초하여 서로 다른 세트의 레이트-호환 코드를 구비한다.Some preferred embodiments have different sets of rate-compatible codes based on different universal configuration codes and different rates of puncturing patterns optimized according to different design criteria.

본 발명의 전체적인 방법론에 따라, 네개(4)의 서로 다른 바람직한 레이트-호환 터보 코드 세트가 본 발명에 설명된다. 첫번째 두개(2) 세트는 상위 레이트가 우세한 높은 레이트의 터보 코드에 대해 최적화된다. 두번째 두개(2) 세트는 하위 레이트가 우세한 하위 레이트의 코드에 대해 최적화된다. 이들 세트들은 이하 세트 A-D라고 칭한다.In accordance with the overall methodology of the present invention, four (4) different preferred rate-compatible turbo code sets are described in the present invention. The first two (2) sets are optimized for high rate turbo codes where higher rates dominate. The second two (2) sets are optimized for the lower rate code where the lower rate prevails. These sets are hereinafter referred to as sets A-D.

첫번째 바람직한 세트는 레이트 1/2의 최상의 유니버셜 구성 코드로부터 유도된다.The first preferred set is derived from the best universal configuration code of rate 1/2.

두번째 세트는, 레이트 1/2의 유니버셜 구성 코드와 또한 호환가능한 레이트 1/3의 다른 최상의 구성 코드로부터 유도된다.The second set is derived from a rate 1/2 of universal configuration code and also from a rate 1/3 of another best configuration code.

첫번째 세트, "세트 A"는 두개의 생성기 다항식을 갖는 한편, 두번째 세트, "세트 B"는 그중 두개가 "세트 A"와 공통인 세개의 생성기 다항식을 갖는다. 이와 같이, "세트 B"가 "세트 A"와 최적으로 호환가능하여, 엔코딩 및 디코딩을 위한 설계 변경량을 감소시키게 된다. 전과 같이, 세번째 다항식이 레이트 1/3 이하의 터보 코드의 부수적인 엔코더 패리티 비트에 필요하다.The first set, "set A", has two generator polynomials, while the second set, "set B", has three generator polynomials, two of which are common to "set A". As such, " set B " is optimally compatible with " set A ", reducing the amount of design changes for encoding and decoding. As before, a third polynomial is needed for the side encoder parity bits of the turbo code less than 1/3 rate.

두번째 세트 "세트 B"는 "세트 A"를 포함하고, 또한 레이트 1/5 이상에 대한 터보 코드의 패밀리를 확장한다.The second set " set B " includes " set A " and also extends the family of turbo codes for rate 1/5 or more.

세번째 및 네번째 바람직한 레이트-호환 터보 코드 세트는 하위 레이트, 특히 레이트 1/4에 대해 최적화된다. "세트 C" 및 "세트 D"는 각각 또한 "세트 B"에서의 것들과 같지만 서로 다른 순서인 세개의 생성기 다항식을 사용한다.The third and fourth preferred rate-compatible turbo code sets are optimized for the lower rate, especially rate 1/4. &Quot; set C " and " set D " each use three generator polynomials that are the same as those in " set B "

레이트 1/2의 유니버셜 구성 코드로부터 유도된 레이트-호환 세트: 세트 A(레이트 1/3, 1/2)Rate-compatible set derived from rate 1/2 universal configuration code: set A (rate 1/3, 1/2)

표 2로부터, 최상의 전체적인 성능을 제공하는 레이트 1/2 구성코드가 8진수 쌍 13-15이라는 것으로 결정된다. 따라서, 이 구성 코드 쌍은 세트 A에 대한 마더 구성 코드 쌍으로서 사용된다.From Table 2, it is determined that the rate 1/2 configuration code providing the best overall performance is an octet pair 13-15. Thus, this configuration code pair is used as the mother configuration code pair for set A. [

레이트-호환 세트 A는 8진수 쌍 13-15에 대응하는 생성기 다항식을 구비하되, 여기서 분모 다항식은 1+D2+D3(8진수 13)이고, 분자 다항식은 1+D+D3(8진수 15)이다.The rate-compatible set A has a generator polynomial corresponding to octal pair 13-15, wherein the denominator polynomial is 1 + D 2 + D 3 (octal 13) and the molecular polynomial is 1 + D + D 3 (8 The number 15).

펑처링 패턴들은, 세트의 1/2 코드(또는 그 이상)의 레이트에 의해 송신된 모든 비트들이 또한 레이트 1/3 코드 또는 하위 레이트 코드 세트에 의해 송신되도록 설계되어 있다.The puncturing patterns are designed such that all bits transmitted by the rate of one-half code (or more) of the set are also transmitted by the rate 1/3 code or the low rate code set.

시뮬레이션 및 설계 원칙에 의해 데모된 예시적인 바람직한 패턴들은 다음과 같다:Exemplary preferred patterns illustrated by simulation and design principles are as follows:

1) 레이트 1/3의 경우, 어떠한 펑처링도 없고,1) For rate 1/3, there is no puncturing,

2) 레이트 1/의 경우, 패리티 비트가 엔코더 간에 번갈아 펑처링된다(이 경우에 제2 분자 다항식 엔코딩은 존재하지 않는다는 것에 유의)2) For rate 1 /, the parity bits are alternately punctured between encoders (note that in this case there is no second molecular polynomial encoding)

도 31은 세트 A 구성 엔코더에 대한 블럭도를 도시한다. 도 31에서, (쉬프트 레지스터(3106)에 접속된) 모듈러 가산기(3104,3108), 및 (쉬프트 레지스터(3114)에 접속된) 모듈러 가산기(3116)는 8진 15 또는 이진 1101을 나타내는 분자 다항식용 엔코딩 장치를 구비한다.31 shows a block diagram for a set A configuration encoder. 31, modular adders 3104 and 3108 (connected to shift register 3106) and modular adder 3116 (connected to shift register 3114) are used for a molecular polynomial representing octal 15 or binary 1101 And an encoding device.

모듈러 가산기(3104,3108,3112 및 3116)는 도 19와 유사한 방식으로 쉬프트 레지스터(3106,3110 및 3114) 및 X(t)의 내용을 더한다.The modulo adders 3104, 3108, 3112, and 3116 add the contents of shift registers 3106, 3110, and 3114 and X (t) in a manner similar to that of FIG.

레이트 1/2 터보 코드 및 레이트 1/3 터보 코드의 시뮬레이트된 성능은, (8 디코더 반복을 갖는) 본 발명에서 설계된 8-상태 콘벌류션 코드가 출원인에 의해 만들어진 시뮬레이션 데이터에 따라 공지된 최상의 256-상태 콘벌류션 코드에 대해, 레이트 1/2에서 약 1/6㏈, 및 레이트 1/3에서 약 2.0㏈의 성능 이득(BER)을 갖는다는 것을 도시한다.The simulated performance of rate 1/2 turbo code and rate 1/3 turbo code is based on the assumption that the 8-state convolutional code designed in the present invention (with 8 decoder iterations) is the best 256- (BER) of about 1 / 6dB at rate 1/2 and about 2.0dB at rate 1/3, for rate converters, state rate codes, and the like.

이와 같이, 세트 A의 터보 코드는, 중요한 성능 파라메타에 대해 시뮬레이트될 때 최상의 공지된 256-상태 콘벌류션 코드에 대한 성능에 비교된다.As such, the turbo code in set A is compared to the performance for the best known 256-state convolutional code when simulated for critical performance parameters.

레이트 1/3의 유니버셜 구성 코드로부터 유도된 레이트-호환 세트: 세트 B(레이트 1/2,1/3,1/4,1/5)Rate-compatible set derived from universal configuration code of rate 1/3: set B (rate 1/2, 1/3, 1/4, 1/5)

레이트 1/3의 유니버셜 구성 코드를 결정하는 경우에서와 같이, 레이트 1/3의 최상의 구성 코드로부터 유도된 "세트 B"의 레이트-호환 생성기 다항식에 대해 부수적인 출력 분자 다항식이 필요하다.An output power polynomial is required for the rate-compatible generator polynomial of " set B " derived from the best configuration code of rate 1/3, as in the case of determining a universal configuration code of rate 1/3.

따라서, 제2 최상의 개별적인 레이트 1/2 구성 코드가 표 2로부터 선택된다. 이전과 같이, 이 방법은 오버랩하는 두개(2)의 8진수 쌍의 결과가 된다. 8진수 쌍, 8진수 13-15 및 8진수 13-17 모두는 균일하게 뛰어난 성능을 제공한다. 두개(2)의 쌍을 함께 결합함으로써 3인조 8진수 13-15/17을 구비한 세개(3)의 생성기다항식을 제공한다. 분모 다항식은 1+D2+D3(8진수 13), 첫번째 분자 다항식은 1+D2+D3(8진수 15)이고, 그리고 두번째 분자 다항식은 1+D+D2+D3(8진수 17)이다. 세트 B에 대한 바람직한 설계는 모든 인터리버 깊이, 및 터보 코드 레이트 1/2,1/3,1/4 및 1/5에 대한 이들 생성기 다항식을 구비한다.Thus, the second best individual rate 1/2 configuration code is selected from Table 2. As before, this method results in two (2) octal pairs overlapping. The octal pair, octal 13-15 and octal 13-17 all provide uniformly superior performance. By combining the pairs of two (2) together we provide three (3) generator polynomials with triplets octal 13-15 / 17. D 2 + D 3 (octal number 13), the first molecular polynomial is 1 + D 2 + D 3 (octal number 15), and the second molecular polynomial is 1 + D + D 2 + D 3 (17). The preferred design for set B has all of these interleaver depths, and these generator polynomials for the turbo code rates 1/2, 1/3, 1/4 and 1/5.

세트 B에서, 레이트 1/3 구성 엔코더로부터 작성된 레이트 1/3 및 레이트 1/2 터보 코드는 유니버셜 레이트 1/2 구성 엔코더로부터 작성된 세트 A내의 동일한 1/3 및 1/2 터보 코드로, 세트 A와 세트 B 간의 호환성을 보존한다.In Set B, the rate 1/3 and rate 1/2 turbo codes generated from the rate 1/3 configuration encoders are the same 1/3 and 1/2 turbo codes generated from the universal rate 1/2 configuration encoder and set A And the set B is preserved.

펑처링 패턴들은 세트 B의 임의의 상위 레이트 터보 코드로 송신된 모든 비트들이 또한 세트 B의 임의의 낮은 코드 레이트로 송신되도록 설계되어 있다.Puncturing patterns are designed such that all bits transmitted with any higher rate turbo code of set B are also transmitted at any lower code rate of set B. [

시뮬레이션에 의해 데모된 예시적인 바람직한 패턴 및 설계 원리는 다음과 같다:Exemplary preferred patterns and design principles demonstrated by the simulations are as follows:

1) 레이트 1/5 - 펑처링 없음;1) Rate 1/5 - no puncturing;

2) 레이트 1/4 - 두번째 분자 패리티 비트 n2를 번갈아 펑처링함2) Rate 1/4 - alternately puncturing the second molecular parity bit n 2

3) 레이트 1/3 - 두번째 분자 패리티 n2를 항상 펑처링함3) rate 1/3 - always puncturing the second molecular parity n 2

4) 레이트 1/2 - 두번째 분자 패리티 비트 n2를 항상 펑처링하고 첫번째 분자 패리티 비트 n1를 항상 펑처링함4) Rate 1/2 - always punctures the second molecular parity bit n 2 and always punctures the first molecular parity bit n 1

레이트 1/4 패턴의 경우, 구성 엔코더의 두개(2) 출력 아암(arms)중 약한 아암이 번갈아 펑처링된다.For the rate 1/4 pattern, weak arms of the two (2) output arms of the configuration encoder are alternately punctured.

레이트 1/3 패턴의 경우, 두개(2)의 구성 엔코더 출력중 약한 출력이 번갈아 펑처링된다.For the rate 1/3 pattern, the weaker output of the two (2) constituent encoder outputs is alternately punctured.

레이트 1/2의 경우, 두개(2)의 구성 엔코더 출력중 약한 출력이 엔코더 모두에 대해 항상 펑처링되고, 센 출력이 펑처링된다.At rate 1/2, the weaker output of the two (2) constituent encoder outputs is always punctured for all of the encoders, and the sen output is punctured.

낮은 터보 코드 레이트로 최적화된 레이트-호환 세트Optimized rate-compatible set with low turbo code rates

상위 코드 레이트가 우세한 모드 터보 코드인 경우, 세트 B가 엄격한 레이트-호환성이 모든 코드 레이트에 요구될 때에 바람직한 설계 선택이 된다.If the upper code rate is dominant mode turbo code, set B is the preferred design choice when stringent rate-compatibility is required at all code rates.

하위 레이트와 상위 레이트의 터보 코드 간의 레이트-호환성이 필요하지 않을 때, 하위 터보 코드 레이트로 모두 최적화된 터보 코드 세트 C 및 세트 D가 유용하다.Turbo code set C and set D all optimized with lower turbo code rates are useful when rate-compatibility between the lower rate and higher rate turbo codes is not needed.

이전에 설명한 바와 같이 표 2의 결과에 기초하여 선택되는 표 3에 열거된 후보 구성 코드에 기초하여, 레이트 1/4 및 1/5에 대한 최적의 터보 코드가 선택된다.Based on the candidate configuration codes listed in Table 3, which are selected based on the results of Table 2 as previously described, the optimal turbo codes for rates 1/4 and 1/5 are selected.

표 3의 구성 코드 제1 또는 8진수 세트 A에 대한 기초이다. 그러나, 하위 레이트가 상위 레이트와 함께 사용되지 않은 경우에, 레이트 1/4 펑처링 패턴이 레이트 1/2 또는 1/3 코드의 그것이 되어야 하는 조건을 제거함으로써, 새로이 최적화된 1/4 터보 코드를 얻기 위해 네개(4)의 서로 다른 펑처링 패턴의 각각을 갖는, 표 3의 각각의 세개(3)의 마더 터보 코드 3인조(triad)가 고려된다.Is the basis for the configuration code first or octet set A in Table 3. However, by removing the condition that the rate 1/4 puncturing pattern should be that of the rate 1/2 or 1/3 code, when the lower rate is not used with the higher rate, the newly optimized 1/4 turbo code To obtain three (3) mother-turbo code triads of each of Table 3, each having four (4) different puncturing patterns are considered.

상술한 바와 같이, 터보 코드 A,B 및 C는 도 10, 11 및 12의 각각의 성능 곡선(1010,1110 및 1210)으로부터 최적인 것으로 밝혀진다.As described above, the turbo codes A, B, and C are found to be optimal from the respective performance curves 1010, 1110, and 1210 of FIGS. 10, 11, and 12, respectively.

이전과 같이, 이들 펑처링 패턴은 또한 1024,2048 및 3072의 부수적인 다른 인터리버 프레임 크기에 대해 마더 코드 3인조 제1에 기초하여 터보 코드의 성능을 시뮬레이트함으로써 다른 인터리버에서 증명된다. 도 13은 시뮬레이션의 샘플 결과를 도시하고, 1024 비트에서의 기본 방법론을 확인한다.As before, these puncturing patterns are also verified in other interleavers by simulating the performance of the turbo codes based on mother code triplet 1 for the other interleaver frame sizes of 1024,2048, and 3072. Figure 13 shows the sample results of the simulation and confirms the basic methodology at 1024 bits.

다음에, 도 14는 512 비트에서의 선택된 펑처링 패턴과 정합하는 3인조의 성능에 대응하는 샘플을 도시한다. 도 14 및 다른 인터리버 크기에 대한 유사한 결과로부터, 모든 시뮬레이트된 인터리버 깊이의 최상의 전체적인 BER 성능이 최종 설계 기준으로서 사용되어 최적의 후보를 결정한다.Next, FIG. 14 shows samples corresponding to triplet performance matching the selected puncturing pattern at 512 bits. From Fig. 14 and similar results for different interleaver sizes, the best overall BER performance of all simulated interleaver depths is used as the final design criterion to determine the best candidates.

레이트 1/4 터보 코드로부터 유도된 레이트-호환 세트: 세트 C(레이트1/5,1/4,1/3)Rate-compatible set derived from rate 1/4 turbo code: set C (rate 1/5, 1/4, 1/3)

터보 코드 세트 C는 도 14의 성능 곡선(1310) 및 다른 인터리버 크기에 대한 유사한 곡선에 따라, 도 9로부터 코드 제1 및 패턴 제1(터보 코드 C)를 구현한다.Turbo code set C implements code first and pattern first (turbo code C) from FIG. 9, according to a performance curve 1310 of FIG. 14 and a similar curve for other interleaver sizes.

터보 코드 세트 C는 분모 다항식 1+D+D2+D3, 제1 분자 다항식 n1, 1+D2+D3, 및 제2 분자 다항식 n2,1+D+D2를 포함하는 표 3으로부터 생성기 다항식을 구비한다. 이전에 설명한 바와 같이 방법론에 일치하는 시뮬레이션으로부터의 최적의 펑처링 패턴은 다음과 같다:Turbo-code set C is a table containing the denominator polynomial 1 + D + D 2 + D 3, the first molecule polynomial n 1, 1 + D 2 + D 3, and the second molecule polynomial n 2, 1 + D + D 2 3 &lt; / RTI &gt; The optimal puncturing pattern from simulations consistent with the methodology as described previously is as follows:

1) 레이트 1/5의 경우 - 어떠한 펑처링도 없음1) Rate 1/5 - No puncturing

2) 레이트 1/4의 경우 - 두번째 분자 다항식을 번갈아 펑처링함,2) For rate 1/4 - alternately puncturing the second molecular polynomial,

3) 레이트 1/3의 경우 - 두번째 분자 다항식을 항상 펑처링함.3) For rate 1/3 - always puncturing the second molecular polynomial.

레이트 1/4 터보 코드로부터 유도된 레이트-호환 세트: 세트 D(레이트 1/5,1/4)Rate-compatible set derived from rate 1/4 turbo code: set D (rate 1/5, 1/4)

터보 코드 세트 D는 모든 인터리버 깊이 및 터보 코드 레이트 1/4 및 1/5에 대한 단일 구성 코드를 구비한다.Turbo code set D has a single configuration code for all interleaver depths and turbo code rates of 1/4 and 1/5.

터보 코드 세트 D는 도 14의 성능 곡선(1420) 및 다른 인터리버 크기의 유사 곡선에 따라 도 9로부터의 패턴 제2(터보 코드 A)를 갖는 코드 제1을 구현한다.The turbo code set D implements a code first having the pattern second (turbo code A) from Fig. 9 according to the performance curve 1420 of Fig. 14 and a similar curve of other interleaver size.

이 세트는 분모 다항식 d, 1+D+D3, 제1 분자 다항식 n1, 1+D2+D3, 및 제2 분자 다항식 n2,1+D+D2+D3를 포함하는 생성기 다항식을 구비한다.The set generator including a denominator polynomial d, 1 + D + D 3 , the first molecule polynomial n 1, 1 + D 2 + D 3, and the second molecule polynomial n 2, 1 + D + D 2 + D 3 And has a polynomial expression.

이전에 설명하고 방법론에 일치하는, 시뮬레이션으로부터의 최적의 펑처링 패턴은 다음과 같다:The optimal puncturing pattern from the simulation, previously described and consistent with the methodology, is as follows:

1) 레이트 1/5의 경우 - 어떠한 펑처링도 없음1) Rate 1/5 - No puncturing

2) 레이트 1/4의 경우 - 출력 1/2를 번갈아 펑처링함.2) For rate 1/4 - alternately puncturing output 1/2.

512 내지 3072 비트의 선택된 인터리버 깊이의 레이트 1/4 FER 최적화 터보 코드의 성능을 샘플 도면 32 및 유사 연구에서의 콘벌류션 코드에 비교한다.The performance of a rate 1/4 FER-optimized turbo code with a selected interleaver depth of 512 to 3072 bits is compared to the convolutional code in sample drawing 32 and a similar study.

보다 복잡한 펑처링 패턴을 콘벌류션 코딩에 사용하여 각각의 레이트-호환 세트에서의 기본 터보 코드의 그것 이상의 임의의 코드 레이트를 달성할 수 있다.A more complex puncturing pattern may be used for convolutional coding to achieve any higher code rate of the base turbo code in each rate-compatible set.

예를 들어, 5/12와 같은 1/2 또는 중간 레이트 이상의 레이트가 달성될 수 있다. 펑처링 패턴의 적절한 선택으로, 이는 흔히 에러 교정 성능을 희생시키지 않고 수행될 수 있다.For example, a rate of 1/2 or more, such as 5/12, may be achieved. With an appropriate choice of puncturing patterns, this can often be done without sacrificing error correction performance.

레이트-호환 터보 코드의 적용Application of rate-compatible turbo codes

본 발명에 설명된 레이트-호환 터보 코드의 예시적인 적용은, 코드 레이트가 이용가능한 물리적 채널에 정합하도록 선택된 레이트 정합을 위한 것이다. 레이트 정합 스킴에서, 데이터 서비스는 동일한 기본적인 엔코딩을 사용하지만, 특히 서로 다른 데이터 서비스에 대해 서비스 명세의 품질이 다르다면 동일한 물리적 채널을 사용할 수 있다.An exemplary application of the rate-compatible turbo codes described in the present invention is for rate matching where the code rate is selected to match the available physical channel. In rate matching schemes, data services use the same basic encoding, but they can use the same physical channel, especially if the quality of the service description is different for different data services.

본 발명에 따르면, 서로 다른 펑처링 패턴을 선택하여 물리적 채널과 호환가능한 코드 레이트를 생성할 수 있다. 만일 펑처링 패턴들이 레이트-호환가능하면, 코드 레이트의 선택은 단일의 적절한 시점에 단일 결정 유닛에의해 완료될 필요가 없다. 그 대신에, 이 결정은 결정 유닛에 걸쳐서는 물론 시간에 있어서도 분산될 수 있다. 터보 엔코더는 먼저 시스템에 의해 지원될 가장 낮은 코드 레이트에 대응하는 코드화 출력 시퀀스를 발생한다. 예를 들어, 모든 가능한 패리티 비트들이 초기에 출력될 것이다. 다음에, 초기 펑처링은 예를 들면, 소정의 데이터 서비스에 대한 Qos(Quality-of-service) 고려에 응답해서 하나의 펑처링 유닛에 의해 수행될 것이다. 이 시나리오에서, 데이터 서비스는 예를 들어, 해당 범위 내의 최고 품질이 시스템에서 이용가능한 가장 낮은 가능한 코드 레이트를 필요로 하지 않지만 일부의 중간 코드 레이트를 필요로 하고, 해당 범위 내의 최하 품질이 한층 높은 코드 레이트를 허용할 수 있는 Qos의 범위를 허용할 수 있다. 제1 펑처링 유닛은 데이터 서비스의 Qos 범위 내의 최고 품질을 제공하기 위해 가장 낮은 레이트에 대응하는 펑처링 패턴에 따라 코드화된 비트를 제거한다. 펑처링되지 않은 코드화 데이터는 부수적인 처리를 위해 시스템의 나머지로 출력된다. 후속하는 처리에서, 다이나믹 트래픽 관리 고려에 기초하여 해당 메시지에 대해 코드 레이트를 보다 높게 조정하도록 결정된다. 예를 들어, 상위 우선순위의 데이터 서비스로부터의 메시지를 수용하기 위해, 해당 데이터 서비스에 정상적으로 연관된 물리적 채널에 대해 잠정적인 필요에 따라, 보다 작은 페이로드를 갖는 물리적 채널이 대체될 것이다. 상위 코드 레이트는 새로운 코드 레이트에 연관된 펑처링 패턴에 따라 제2 펑처링을 수행함으로써 달성된다. 펑처링 패턴이 레이트-호환가능하기 때문에, 제1펑처링 유닛에 의해 삭제된 코드화 비트를 재생할 필요가 없고, 제2 펑처링 유닛은 단순히 제1 펑처링 유닛에 의해 삭제되지 않은 상위 레이트의 펑처링 패턴에 의해 명시된 비트를 삭제한다.According to the present invention, different puncturing patterns can be selected to generate a code rate compatible with the physical channel. If the puncturing patterns are rate-compatible, the selection of the code rate need not be completed by a single decision unit at a single appropriate time. Instead, this determination can be distributed over time as well as over the decision unit. The turbo encoder first generates a coded output sequence corresponding to the lowest code rate to be supported by the system. For example, all possible parity bits will be initially output. Next, the initial puncturing will be performed by one puncturing unit, for example, in response to a quality-of-service (Qos) consideration for a given data service. In this scenario, a data service may not be able to provide the highest quality within the range, for example, where the highest quality within the range does not require the lowest possible code rate available in the system but requires some intermediate code rate, Lt; RTI ID = 0.0 &gt; Qos &lt; / RTI &gt; The first puncturing unit removes the coded bits according to the puncturing pattern corresponding to the lowest rate to provide the highest quality within the Qos range of the data service. Unencoded data is output to the rest of the system for additional processing. In subsequent processing, it is determined to adjust the code rate higher for the message based on dynamic traffic management considerations. For example, to accommodate a message from a higher-priority data service, a physical channel with a smaller payload may be replaced, depending on the provisional need for the physical channel normally associated with that data service. The upper code rate is achieved by performing a second puncturing in accordance with the puncturing pattern associated with the new code rate. Since the puncturing pattern is rate-compatible, it is not necessary to reproduce the coded bits deleted by the first puncturing unit, and the second puncturing unit simply does not need puncturing of the higher rate not deleted by the first puncturing unit Deletes the bit specified by the pattern.

본 발명에서 설명된 레이트-호환 터보 코드의 제2 예시적인 적용은 ARQ 프로토콜에 기초한 에러 제어와 같은 증가 중복 스킴이다. 이들 스킴에서, 터보 엔코더는 먼저 시스템에서 이용가능한 가장 높은 코드 레이트에 대응하는 코드화 출력을 발생한다. 코드화 출력이 통신 채널상으로 전송되면, 수신기는 메시지를 성공적으로 디코드할 수 있거나 할 수 없을 수 있다. 만일 메시지가 성공적으로 디코드되면, 수신기는 전형적으로 송신기에 부정 확인응답(NAK)를 송신하여, 해당 패킷의 디코딩을 보조하는 부수적인 송신을 요청한다. 레이트-호환 채널 엔코딩에 의해, 해당 패킷에 대해 하위 레이트의 호환가능한 엔코딩중의 하나에 의해 발생된 잉여의 엔코드된 비트가 수신기의 디코더에 이용가능한 정보를 증가시키도록 보내질 수 있다. 이 디코더는 해당 패킷에 대해 수신된 본래의 정보와 함께 새로운 정보를 사용하여 디코딩을 수행한다. 그 효과는 만일 본래 패킷이 하위 레이트의 코드로서 엔코드되었는 지이다. 이 프로세스는 패킷이 성공적으로 디코드될 때까지 반복될 수 있다. 각각의 재 전송시 잉여 코드화 비트를 송신함으로써, 재전송에 필요한 트래픽 부하가 크게 저하된다.A second exemplary application of the rate-compatible turbo code described herein is an incremental redundancy scheme, such as error control based on the ARQ protocol. In these schemes, the turbo encoder first generates a coded output corresponding to the highest code rate available in the system. If the coded output is sent over a communication channel, the receiver may or may not be able to successfully decode the message. If the message is successfully decoded, the receiver typically sends a negative acknowledgment (NAK) to the transmitter requesting an auxiliary transmission to assist in decoding the packet. With rate-compatible channel encoding, the remainder of the encoded bits generated by one of the lower rate compatible encodings for that packet may be sent to increase the information available to the decoder of the receiver. The decoder performs decoding using the new information together with the original information received for the packet. The effect is whether the original packet was encoded as a subrate code. This process can be repeated until the packet is successfully decoded. By transmitting the redundant coded bits in each retransmission, the traffic load required for retransmission is greatly reduced.

비록 본 발명이 특정 실시예 및 그 응용에 의해 설명되었지만, 기술분야의 숙련자는 특허청구범위에 개시된 본 발명의 범위를 벗어나지 않고 무수히 많은 변형이 이루어질 수 있다.Although the present invention has been described by specific embodiments and applications thereof, numerous modifications may be made by those skilled in the art without departing from the scope of the invention as set forth in the appended claims.

<부록><Appendix>

Claims (17)

높은 코드 레이트로 최적화되며 유니버셜 구성 코드(universal constituent code)로부터 유도된 레이트-호환 터보 코드(Turbo codes)의 세트 - 상기 터보 코드는 호환가능한 펑처링 패턴(puncturing patterns)을 가짐 - 를 사용하여 데이터 서비스 내의 데이터를 처리하는 방법에 있어서,A set of rate-compatible Turbo codes derived from a universal constituent code that is optimized at a high code rate, the turbo code having compatible puncturing patterns, A method for processing data in a memory, 상위 코드 레이트 및 하위 코드 레이트와 유니버셜한 최상의 레이트 1/2 구성 코드를 사용하여 제1 및 제2 엔코더에서 신호를 엔코드하는 단계 - 상기 제1 엔코더와 상기 제2 엔코더 각각은 한 데이터 비트에 대해 복수의 패리티 비트를 발생함-;Encoding the signals in the first and second encoders using the upper code rate and lower code rate and the universal best rate 1/2 configuration code, each of the first encoder and the second encoder having Generating a plurality of parity bits; 상위 레이트의 최상의 펑처링 패턴으로 각각의 엔코더에서 상기 각각의 복수의 패리티 비트를 펑처링하는 단계; 및Puncturing each of the plurality of parity bits in each encoder with a best puncturing pattern of the highest rate; And 하위 레이트의 최상의 펑처링 패턴으로 상기 각각의 엔코더에서 상기 각각의 복수의 패리티 비트를 펑처링하는 단계Puncturing each of the plurality of parity bits in the respective encoder with a best puncturing pattern of a subrate 를 포함하는 방법.&Lt; / RTI &gt; 제1항에 있어서, 상기 최상의 레이트 1/2 구성 코드는 다항식 1+D2+D3(8진수 13) 및 다항식 1+D+D3(8진수 15)의 결합(D는 데이터 비트)을 나타내는 방법.2. The method of claim 1 wherein the best rate 1/2 configuration code comprises a combination of polynomials 1 + D 2 + D 3 (octal 13) and polynomial 1 + D + D 3 (octal 15) How to represent. 제2항에 있어서, 상기 세트 내의 레이트-호환가능 터보 코드중의 하나는 레이트 1/2 터보 코드를 포함하고, 상기 펑처링 중의 하나는 상기 제1 및 제2 엔코더 간에 패리티 비트를 번갈아 펑처링하는 것을 포함하는 방법.3. The method of claim 2, wherein one of the rate-compatible turbo codes in the set comprises a rate 1/2 turbo code and one of the puncturing is to alternately puncture the parity bits between the first and second encoders &Lt; / RTI &gt; 제2항에 있어서, 상기 세트 내의 레이트-호환가능 터보 코드중의 하나는 레이트 1/3 터보 코드를 포함하고, 상기 펑처링 중의 하나는 상기 제1 및 제2 엔코더 에서의 모든 패리티 비트를 송신하는 단계를 포함하는 방법.3. The method of claim 2, wherein one of the rate-compatible turbo codes in the set comprises a rate 1/3 turbo code, and one of the puncturing is to transmit all parity bits at the first and second encoders Lt; / RTI &gt; 최적의 유니버셜 레이트 1/3 구성 코드로부터 유도된 레이트-호환가능 터보 코드의 세트 - 상기 터보 코드는 유사한 구성 코드 및 호환가능한 펑처링 패턴을 가짐 - 를 사용하여 데이터 서비스 내의 데이터를 처리하는 방법에 있어서,A method of processing data in a data service using a set of rate-compatible turbo codes derived from an optimal universal 1/3 configuration code, the turbo code having a similar configuration code and a compatible puncturing pattern , 제1 및 제2 엔코더에서 최상의 레이트 1/3을 갖는 신호를 엔코드하는 단계 - 상기 각각의 엔코더는 각각의 데이터 비트에 대해 각각의 복수의 패리티 비트를 발생함-;Encoding a signal having an optimal rate of 1/3 in the first and second encoders, each encoder generating a respective plurality of parity bits for each data bit; 상위 레이트의 최상의 펑처링 패턴으로 상기 복수의 패리티 비트를 펑처링하는 단계; 및Puncturing the plurality of parity bits with the highest puncturing pattern of the highest rate; And 하위 레이트의 최상의 펑처링 패턴으로 상기 복수의 패리티 비트를 펑처링하는 단계Puncturing the plurality of parity bits with a best puncturing pattern of a subrate 를 포함하는 방법.&Lt; / RTI &gt; 제5항에 있어서, 상기 최상의 레이트 1/3 구성 코드는 다항식 1+D2+D3,(8진수 13), 다항식 1+D+D3(8진수 15), 및 1+D+D2+D3(8진수 17)의 결합(D는 데이터 비트)을 나타내는 방법.The method of claim 5, wherein the configuration best rate 1/3 code polynomial 1 + D 2 + D 3, (8 decimal 13), the polynomial 1 + D + D 3 (8 decimal 15), and a 1 + D + D 2 + D 3 (octal number 17) (where D is a data bit). 제5항에 있어서, 상기 터보 코드의 세트는 레이트 1/5 터보 코드를 포함하고, 상기 펑처링 단계중 적어도 한 단계가 상기 제1 및 제2 엔코더에서의 모든 패리티 비트를 송신하는 단계를 포함하는 방법.6. The method of claim 5, wherein the set of turbo codes comprises a rate 1/5 turbo code, and at least one of the puncturing steps comprises transmitting all parity bits at the first and second encoders Way. 제5항에 있어서, 상기 터보 코드의 세트는 레이트 1/4 터보 코드를 포함하고, 상기 펑처링 단계 중 적어도 하나의 펑처링 단계가 상기 제1 및 제2 엔코더 간에 상기 복수의 패리티 비트의 선택 그룹을 번갈아 펑처링하는 것을 포함하는 방법.6. The method of claim 5, wherein the set of turbo codes comprises a rate 1/4 turbo code, and wherein at least one of the puncturing steps is performed between the first and second encoders, &Lt; / RTI &gt; 제5항에 있어서, 상기 터보 코드의 세트는 레이트 1/3 터보 코드를 포함하고, 상기 펑처링 단계 중 적어도 하나의 펑처링이 상기 제1 및 제2 엔코더에서 상기 복수의 패리티 비트의 선택 그룹을 번갈아 펑처링하는 것을 포함하는 방법.6. The method of claim 5, wherein the set of turbo codes comprises a rate 1/3 turbo code, and at least one puncturing of the puncturing step comprises selecting a group of the plurality of parity bits from the first and second encoders Comprising alternating puncturing. 제5항에 있어서, 상기 터보 코드의 세트는, 레이트 1/2 터보 코드를 포함하고, 상기 펑처링 단계 중 적어도 하나의 펑처링이 상기 복수의 패리티 비트의 선택그룹을 상기 엔코더들에서 펑처링하고, 상기 복수의 패리티 비트의 다른 선택 그룹을 상기 엔코더들에서 번갈아 펑처링하는 것을 포함하는 방법.6. The method of claim 5, wherein the set of turbo codes comprises a rate 1/2 turbo code, wherein at least one of the puncturing operations punctures a selected group of the plurality of parity bits at the encoders And alternately puncturing, in the encoders, another selected group of the plurality of parity bits. 레이트-호환가능 터보 코드의 세트 - 상기 세트는 코드 레이트 1/4에 최적화되고 서로 다른 코드 레이트 및 레이트-호환가능 펑처링 패턴을 갖는 터보 코드를 구비함 - 를 사용한 레이트-호환가능 터보 엔코딩 방법에 있어서,A rate-compatible turbo encoding method using a set of rate-compatible turbo codes, the set being optimized at a code rate of 1/4 and having turbo codes with different code rates and rate-compatible puncturing patterns As a result, 상위 코드 레이트 및 하위 코드 레이트와 유니버셜한(universal) 최상의 레이트 1/4 구성 코드를 사용하여 제1 및 제2 엔코더에서 신호를 엔코드하는 단계 - 상기 제1 엔코더와 상기 제2 엔코더 각각은 한 데이터 비트에 대해 각각의 복수의 패리티 비트를 발생함-;Encoding a signal at the first and second encoders using a higher code rate and a lower code rate and a universal best rate 1/4 configuration code, wherein each of the first encoder and the second encoder comprises: Generating a plurality of respective parity bits for the bits; 상위 레이트의 최상의 펑처링 패턴으로 각각의 엔코더에서 상기 각각의 복수의 패리티 비트를 펑처링하는 단계; 및Puncturing each of the plurality of parity bits in each encoder with a best puncturing pattern of the highest rate; And 하위 레이트의 최상의 펑처링 패턴으로 각각의 엔코더에서 상기 각각의 복수의 패리티 비트를 펑처링하는 단계Puncturing each of the plurality of parity bits in each encoder with the best puncturing pattern of the subrate 를 포함하는 방법.&Lt; / RTI &gt; 제11항에 있어서, 상기 레이트-호환가능 터보 코드의 세트는 다항식 1+D+D3, 1+D2+D3및 1+D+D3의 결합(D는 데이터 비트)을 나타내고,12. The method of claim 11, wherein the rate-set of compatible turbo code represents the polynomial 1 + D + D 3, 1 + D 2 + D 3 and the first coupling of the + D + D 3 (D is a data bit), 연관된 레이트-호환가능 펑처링 패턴이,An associated rate-compatible puncturing pattern is provided, 모든 데이터를 송신하는 단계,Transmitting all data, 다항식 1+D+D3에 연관된 패리티 비트를 번갈아 펑처링하는 단계; 및Alternately puncturing parity bits associated with polynomials 1 + D + D 3 ; And 각각의 엔코더에 대해 다항식 1+D+D3에 연관된 패리티 비트를 펑처링하는 단계를 포함하는 패턴 그룹 중에서 선택되는 방법.And puncturing a parity bit associated with polynomial 1 + D + D 3 for each encoder. 제11항에 있어서, 상기 레이트-호환가능 터보 코드의 세트는 1/5 및 1/4를 포함하는 레이트의 그룹 중에서 선택된 서로 다른 레이트의 두개 이상의 터보 코드- 상기 터보 코드는 다항식 1+D+D3, 1+D2+D3및 1+D+D2+D3의 결합(D는 데이터 비트)을 나타냄 - 를 포함하고,12. The method of claim 11, wherein the set of rate-compatible turbo codes comprises at least two turbo codes of different rates selected from a group of rates including 1/5 and 1/4, wherein the turbo codes are polynomials 1 + D + D 3 , 1 + D 2 + D 3 and 1 + D + D 2 + D 3 (where D is a data bit) 연관된 레이트-호환가능 펑처링 패턴이,An associated rate-compatible puncturing pattern is provided, 모든 데이터를 송신하는 단계, 및Transmitting all data, and 다항식 1+D+D2+D3에 연관된 패리티 비트를 번갈아 펑처링하는 단계를 포함하는 패턴 그룹 중에서 선택되는 방법.And puncturing the parity bit associated with polynomial 1 + D + D 2 + D 3 alternately. 최상의 유니버셜 레이트 1/2 구성 코드로부터 유도된 레이트-호환가능 터보 코드의 세트 - 상기 세트는 호환가능한 펑처링 패턴을 가짐- 를 사용하는 엔코딩 시스템에 있어서,An encoding system using a set of rate-compatible turbo codes derived from a best universal rate 1/2 configuration code, the set having a compatible puncturing pattern, 제1 및 제2 엔코더 - 각각의 상기 엔코더는The first and second encoders - each of the encoders - 복수의 쉬프트 레지스터, 및A plurality of shift registers, and 상기 최상의 유니버셜 레이트 1/2 구성 코드에 대응하는 구성에서 가산기들의 선택된 부분에 각각 결합된 복수의 가산기를 포함함-; 및A plurality of adders each coupled to a selected portion of the adders in a configuration corresponding to the best universal rate 1/2 configuration code; And 상기 제1 및 제2 엔코더가 상기 제1 및 제2 엔코더의 각각으로부터 복수의 데이터 출력을 펑처링하도록 구성된 펑처러(puncturer) - 상기 펑처링은 상기 호환가능 펑처링 패턴의 세트에 따라 소정의 터보 코드 레이트에 의해 결정됨-Wherein the first and second encoders are configured to puncture a plurality of data outputs from each of the first and second encoders, the puncturing being based on a set of compatible puncturing patterns, Determined by code rate - 를 구비하는 엔코딩 시스템.&Lt; / RTI &gt; 최적의 유니버셜 레이트 1/3 구성 코드로부터 유도된 레이트-호환가능 터보 코드의 세트 - 상기 레이트-호환가능 터보 코드는 유사한 구성 코드 및 호환가능한 펑처링 패턴을 가짐- 를 사용하는 엔코딩 시스템에 있어서,A set of rate-compatible turbo codes derived from an optimal universal rate 1/3 configuration code, the rate-compatible turbo codes having a similar configuration code and a compatible puncturing pattern, 제1 및 제2 엔코더 - 각각의 상기 엔코더는The first and second encoders - each of the encoders - 복수의 쉬프트 레지스터, 및A plurality of shift registers, and 상기 레이트 1/3 구성 코드에 대응하는 구성에서 가산기들의 선택된 부분에 각각 결합된 복수의 가산기를 포함함-; 및A plurality of adders each coupled to a selected portion of the adders in a configuration corresponding to the rate 1/3 configuration code; And 상기 제1 및 제2 엔코더가 상기 제1 및 제2 엔코더로부터 복수의 데이터 출력을 펑처링하도록 구성된 펑처러(puncturer) - 상기 펑처링은 상기 호환가능 펑처링 패턴의 세트에 따라 소정의 터보 코드 레이트에 의해 결정됨-Wherein the first and second encoders are configured to puncture a plurality of data outputs from the first and second encoders, the puncturing being based on a set of compatible puncturing patterns, Lt; RTI ID = 0.0 & 를 구비하는 엔코딩 시스템.&Lt; / RTI &gt; 서로 다른 코드 레이트에 대한 유니버셜 구성 코드(universal constituent code)와 레이트-호환가능 펑처링 패턴을 갖는 터보 코드를 포함하는 레이트-호환가능 터보 코드의 세트를 사용하는 엔코딩 시스템에 있어서,An encoding system using a set of rate-compatible turbo codes comprising a turbo code having a universal constituent code and a rate-compatible puncturing pattern for different code rates, 제1 및 제2 엔코더 - 각각의 상기 엔코더는The first and second encoders - each of the encoders - 복수의 쉬프트 레지스터, 및A plurality of shift registers, and 상기 유니버셜 구성 코드에 대응하는 구성에서 복수의 가산기의 선택된 부분에 각각 결합된 복수의 가산기를 포함함-; 및A plurality of adders each coupled to a selected portion of a plurality of adders in a configuration corresponding to the universal configuration code; And 상기 제1 및 제2 엔코더가 상기 제1 및 제2 엔코더로부터 복수의 데이터 출력을 펑처링하도록 구성된 펑처러(puncturer) - 상기 펑처링은 상기 호환가능 펑처링 패턴의 세트에 따라 소정의 터보 코드 레이트에 의해 결정됨-Wherein the first and second encoders are configured to puncture a plurality of data outputs from the first and second encoders, the puncturing being based on a set of compatible puncturing patterns, Lt; RTI ID = 0.0 & 를 구비하는 엔코딩 시스템.&Lt; / RTI &gt; 높은 코드 레이트로 최적화된 레이트-호환가능 터보 코드의 세트 - 상기 세트는 상위 코드와 호환가능한 레이트 1/2의 최상의 유니버셜 구성 코드로부터 유도되고, 상기 터보 코드는 호환가능한 펑처링 패턴을 가짐-를 결정하는 방법에 있어서,A set of rate-compatible turbo codes optimized with a high code rate, the set derived from the best universal configuration code of rate 1/2 compatible with the super code, the turbo code having a compatible puncturing pattern In the method, 코드 쌍 검사 및 다양성에 기초하여, 프리미티브 축소되지 않는 다항식(primitive irreducible polynomials)을 갖는 후보 마더(mother) 구성 코드 쌍의 그룹을 선택하는 단계 - 상기 코드 쌍 검사는 정해진 인터리버 길이(fixed Interleaver length)의 레이트 1/2 및 1/3 터보 코드의 상대적 비트 에러레이트(BER) 성능을 시뮬레이트하는 것을 포함함-;Selecting a group of candidate mother code pairs having primitive irreducible polynomials based on code pair checking and diversity, said code pair checking comprising the steps of: determining a fixed interleaver length Simulating the relative bit error rate (BER) performance of rate 1/2 and 1/3 turbo codes; 복수의 서로 다른 인터리버 깊이 및 두개의 서로 다른 터보 코드 레이트에서 각각의 후보 쌍에 대한 복수의 엔코딩 후에 신호의 상대적 신호 대 잡음비 손실을 측정하는 단계 - 상기 복수의 엔코딩 각각은 후보 쌍, 인터리버 깊이 및 레이트의 서로 다른 조합을 가짐-;Measuring a relative signal-to-noise ratio loss of a signal after a plurality of encodings for each candidate pair at a plurality of different interleaver depths and two different turbo code rates, each of the plurality of encodings including a candidate pair, an interleaver depth and rate Having different combinations of; 상기 측정으로부터 최상의 상대적 신호 대 잡음비 손실에 기초하여 최상의 후보를 선택하는 단계; 및Selecting a best candidate based on the best relative signal to noise ratio loss from the measurement; And 상기 세트의 두개 이상의 레이트-호환가능 터보 코드의 각각에 대해, 상기 최상의 후보 쌍에 대한 적어도 하나의 낮은 레이트 및 하나의 높은 레이트의 최상의 펑처링 패턴을 선택하는 단계 - 상기 적어도 하나의 높은 레이트의 패턴은 상기 세트의 상기 적어도 하나의 낮은 레이트의 패턴에 의해 송신하기 위해 선택된 임의의 패리티 비트의 송신을 선택함-Selecting, for each of the at least one rate-compatible turbo code in the set, a best puncturing pattern of at least one low rate and one high rate for the best candidate pair, Selects transmission of any parity bits selected for transmission by the at least one low rate pattern of the set, 를 포함하는 방법.&Lt; / RTI &gt;
KR1020007011264A 1999-02-11 1999-02-11 Optimized rate-compatible turbo encoding KR100347501B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1999/002995 WO2000048353A1 (en) 1999-02-11 1999-02-11 Optimized rate-compatible turbo encoding

Publications (2)

Publication Number Publication Date
KR20010052246A KR20010052246A (en) 2001-06-25
KR100347501B1 true KR100347501B1 (en) 2002-08-03

Family

ID=22272169

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007011264A KR100347501B1 (en) 1999-02-11 1999-02-11 Optimized rate-compatible turbo encoding

Country Status (4)

Country Link
EP (1) EP1072122A1 (en)
KR (1) KR100347501B1 (en)
AU (1) AU2673299A (en)
WO (1) WO2000048353A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430722B1 (en) 1998-01-23 2002-08-06 Hughes Electronics Corporation Forward error correction scheme for data channels using universal turbo codes
US7536624B2 (en) 2002-01-03 2009-05-19 The Directv Group, Inc. Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes
AU5675499A (en) 1998-08-17 2000-03-06 Hughes Electronics Corporation Turbo code interleaver with near optimal performance
EP1050110B1 (en) 1998-08-27 2004-05-26 Hughes Electronics Corporation Method for a general turbo code trellis termination
KR100442685B1 (en) 2000-10-21 2004-08-02 삼성전자주식회사 Apparatus and method for generating codes in communication system
RU2233541C2 (en) * 2001-02-13 2004-07-27 Самсунг Электроникс Ко., Лтд. Device and method for generating codes in communication system
AU2002358453A1 (en) * 2002-01-07 2003-07-24 Siemens Aktiengesellschaft Method and device for transferring data wherein a bit rate adaptation model is signalled between the transmitter and the receiver
US7293217B2 (en) * 2002-12-16 2007-11-06 Interdigital Technology Corporation Detection, avoidance and/or correction of problematic puncturing patterns in parity bit streams used when implementing turbo codes
KR100678580B1 (en) 2005-10-14 2007-02-02 삼성전자주식회사 Apparatus and method for increasing turbo code performance in communication system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983384A (en) * 1997-04-21 1999-11-09 General Electric Company Turbo-coding with staged data transmission and processing
DE19736653C1 (en) * 1997-08-22 1998-12-10 Siemens Ag Service quality estimation method for channels of digital transmission system

Also Published As

Publication number Publication date
AU2673299A (en) 2000-08-29
EP1072122A1 (en) 2001-01-31
KR20010052246A (en) 2001-06-25
WO2000048353A1 (en) 2000-08-17

Similar Documents

Publication Publication Date Title
US9300330B2 (en) Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes
US6370669B1 (en) Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes
US7096404B2 (en) Forward error correction scheme for data channels using universal turbo codes
JP4298170B2 (en) Partitioned deinterleaver memory for map decoder
KR100739182B1 (en) Mobile communications terminal for supporting space-time hybrid automatic repeat request techniques and method thereof
Lee et al. Application and standardization of turbo codes in third-generation high-speed wireless data services
EP1199835A2 (en) Apparatus and method for generating codes in communications system
KR100347501B1 (en) Optimized rate-compatible turbo encoding
JP4041450B2 (en) Communication terminal device and communication method
JP2001251199A (en) Transmission device, communication system and communication method
EP1064751B1 (en) Forward error correction scheme for data channels using turbo codes
Narayanan et al. Physical layer design for packet data over IS-136
Van Wyk et al. Design and performance evaluation of a turbo/walsh-hadamard coded QPSK DS/CDMA system
al Frenger et al. Multi-rate Convolutional Codes

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee