KR100373965B1 - 최적 성능을 갖는 터보 코드 인터리버 - Google Patents

최적 성능을 갖는 터보 코드 인터리버 Download PDF

Info

Publication number
KR100373965B1
KR100373965B1 KR10-2000-7004074A KR20007004074A KR100373965B1 KR 100373965 B1 KR100373965 B1 KR 100373965B1 KR 20007004074 A KR20007004074 A KR 20007004074A KR 100373965 B1 KR100373965 B1 KR 100373965B1
Authority
KR
South Korea
Prior art keywords
interleaver
index data
length
permutations
interleaving
Prior art date
Application number
KR10-2000-7004074A
Other languages
English (en)
Other versions
KR20010015765A (ko
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 KR20010015765A publication Critical patent/KR20010015765A/ko
Application granted granted Critical
Publication of KR100373965B1 publication Critical patent/KR100373965B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2703Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques the interleaver involving at least two directions
    • H03M13/271Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2735Interleaver using powers of a primitive element, e.g. Galois field [GF] interleaver
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2742Irregular interleaver wherein the permutation pattern is not obtained by a computation rule, e.g. interleaver based on random generators
    • H03M13/2746S-random interleaver
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/276Interleaving address generation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2767Interleaver wherein the permutation pattern or a portion thereof is stored
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2771Internal interleaver for turbo codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2789Interleaver providing variable interleaving, e.g. variable block sizes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

가변 길이를 갖는 인덱스 데이터의 블록을 인터리빙 하는 방법이 설명되었다. 방법에는 인덱스 데이터에 대해서 하나 또는 그 이상의 순열의 집합으로 구성되며, 또한 가변 길이를 갖는 기본 인터리버의 집합을 제공하는 단계; 원하는 인터리버 길이 L에 기반한 기본 인터리버 중 하나를 선택하는 단계; 및 원하는 인터리버 길이 L을 갖는 인터리버를 만들어 내기 위해 선택된 기본 인터리버를 적용하는 단계를 포함한다.

Description

최적 성능을 갖는 터보 코드 인터리버{TURBO CODE INTERLEAVER WITH NEAR OPTIMAL PERFORMANCE}
인터리빙(Interleaving)이란 심볼(symbol)이나 비트(bits)들의 순서를 미리 정해진 방식에 의해서 재배치하는 과정이다. "인터리버 크기(Interleaver size)"는 순서(sequence)의 크기와 동일하다. 여기서 인터리빙(Interleaving)을 행하는 장치를 인터리버(Interleaver)라고 부르기로 한다. 터보 인터리버(Turbo Interleaver)는 터보 코드의 생성에 사용되는 인터리버들이다.
터보 코드(Turbo code)는 두 개의 요소가 되는 재귀적인 포선 코드(recursive convolutional code)의 병렬 결합(parallel concatenation)으로 만들어지는데, 여기서 터보 인터리버는 제 2의 구성 코드에 의한 인코딩(encoding)에 앞서, 입력 데이터 순서를 의사 난수의 방식(pseudo-random fashion)에 의해 재배치하는 것을 제공한다. 그 결과로, 두 개의 구성 인코더(constituent encoder)에 의해 만들어진 개별 인코딩은 서로 크게 관련이 없으며, 이런 특성으로 인해 그것들을 터보 인코더(turbo encoder)에 의해 결합시켜서 우수한 오류 방지 능력을 가진 혼합 인코딩을 만들 수 있도록 한다.
S-랜덤 인터리버(S-random Interleaver)는 가장 널리 퍼져있는 형태의 터보 인터리버 중 하나이다.
S-랜덤 인터리버 이면에는 원래의 입력 순서의 이웃 위치(neighbor position)가 다른 이웃 위치와 S 크기의 윈도우(window) 내에서 매핑되는 것을 방지하고자 하는 원리를 가지고 있다. S-랜덤 인터리버의 설계 목표는 위의 원리를 고수하면서 S를 최대화하는 것이다. 그러나 S-랜덤 인터리버는 인터리버의 크기가 변경될 때마다 다시 설계해야 하며, 유사한 크기를 가진 인터리버들 사이에서 일반적으로 어떠한 유사점에 관한 요건도 존재하지 않는다.
그래서 크기들의 세트(set of sizes) 내의 어떤 크기의 인터리버에 대해 일반적인 인터리버 디자인을 하는 것이 바람직하며, 여기서 디자인 방법론은 간결하고 효율적이어서 같은 인터리버 디자인은 크기들의 세트(set of sizes)내에서의 모든 인터리버에 대해 최적에 가깝다(near-optimal). 또한 보다 작은 크기의 최적에 가까운 인터리버(smaller-sized near-optimal Interleaver)로 쉽게 줄여질 수 있는 최적에 가까운 인터리버(near-optimal Interleaver)를 성능의 저하 없이 만들기 위한 디자인을 갖는다는 것도 장점이라고 할 수 있다.
그러므로 본 발명은 위의 내용 및 다른 필요들에 대해서 유익하게 다루려고한다.
<발명의 요약>
본 발명은 하나 이상의 순열(permutation)을 쓰는 가변 길이의 인터리버를 사용하는 터보 인터리버를 위한 방법과 장치를 제공함으로서 앞의 필요와 더불어 그밖의 필요들에 대해서도 유익하게 다룬다.
한 가지 예에서, 본 발명은 다양한 길이를 가진 인덱스 데이터의 블록(block of indexed data)을 인터리빙 하는 방법으로 특성화된다. 이 방법은 가변 길이 인덱스 데이터에 대한 하나 이상의 순열의 집합으로 구성되어 있고, 또한 가변 길이를 가지는 기본 인터리버의 집합을 제공하는 단계; 원하는 인터리버의 길이 L에 기초한 기본 인터리버 중 하나를 선택하는 단계; 및 선택된 기본 인터리버를 원하는 인터리버의 길이 L을 가진 인터리버를 만드는데 적용하는 단계들을 포함한다.
다른 변화로, 가변 길이를 가진 인텍스 데이터 블럭을 인터리빙하는 방법에는 두 개의 각 차원에 대해 하나 이상의 열(row)을 가지는 인터리버 행렬(matrix)에 인덱스 데이터를 써 넣는 것; "성분 순열(constituent permutations)"은 제한된 개수의 파라미터(parameter)에 의해 표현되는 의사 난수 순열(pseudo-random permutations)이며, 여기서 제한된 개수의 파라미터들을 저장하는데 필요한 저장공간의 양은 성분 순열의 벡터 표현을 저장하기 위한 그것보다 적은데, 이런 "2 차원 순열(two-dimensional permutations)"을 만들어 내기 위해 인텍스 데이터를 적어도 두개의 차원 중 하나에, 대개 하나의 열이 다른 열과 다른, 하나 또는 그 이상의 열로 인텍스 데이터를 순열로 배치하는 것; 인터리버 행렬로부터 데이터를 읽어오는 것;로 구성된 "2 차원 순열(two-dimensional permutations)"의 계산을 포함한 "2 차원 순열(two-dimensional permutations)"로 구성된 기본 인터리버 집합을 제공하는 단계; 인코딩에 사용하기 위해 원하는 인터리버 길이 L에 기초하여 기본 인터리버 중의 하나를 선택하는 단계; 원하는 인터리버 길이 L을 가지는 인터리버를 만들어 내기 위해 선택된 기본 인터리버를 적용하는 단계;를 포함하는데 , 여기서 선택하는 것에는 원하는 인터리버 길이 L 보다 크거나 같은 기본 인터리버의 그룹을 판별하는 것; 및 판별된 기본 인터리버 그룹 중에서 가장 작은 길이를 가지는 기본 인터리버 하나를 선택하는 것;을 포함하며, 적용하는 것에는 순열의 길이 L에 대해 요구된 인덱스(indices)보다 높은 것을 가진 인덱스 데이터를 삭제하는 것;을 포함하며, 인덱스 데이터의 블록들을 인터리빙하기 위한 인터리버 장치(device)를 제공하는 것에서, 인터리버 장치는 더 나아가서 기본 인터리버의 설명(description)을 저장하기 위한 메모리 장치; 및 메모리 장치에 설명(description)을 저장하는 것으로 구성된다.
또 다른 예로, 인터리빙을 위한 시스템과 다양한 길이를 가진 인덱스 데이터의 터보 인코딩 블록(turbo encoding block)은, 재귀 주기(recursion period)를 가진 재귀적인 포선 코드(recursive convolutional code)의 두 개 또는 그 이상의 구성 인코더(constituent encoders)에 대한 병렬 결합(parallel concatenation); 및 병렬 연결(parallel concatenation)에 결합된 인터리버로 구성되는데, 이는 가변 길이 인덱스 데이터에 대한 하나 이상의 순열의 집합으로 구성되어 있고, 또한 가변 길이를 가지는 기본 인터리버의 집합으로 구성된 기본 인터리버에서, 저장된 기본 인터리버의 설명(description)을 접근하는 단계; 원하는 인터리버 길이 L 보다 크거나 같은 기본 인터리버의 그룹을 판별하는 단계; 기본 인터리버 그룹 중에서 가장 작은 길이를 가지는 기본 인터리버 하나를 선택하는 단계; 및 원하는 인터리버 길이 L을 가지는 인터리버를 만들어 내기 위해 선택된 기본 인터리버를 적용하는 단계를 수행하기 위함이다.
본 발명에서 위의 내용 그리고 다른 관점, 특성 및 이익들은 다음에 나오는 도면들과 함께 결합하여 다음의 보다 구체적인 설명을 통해 더욱 명백해질 것이다.
본 발명은 디지털 통신 시스템을 위한 코딩 전략에 있어서의 오류 정정에 관한 것인데, 보다 구체적으로는 그러한 오류 정정에서 사용되는 명시된 광범한 범위 내에서의 소정 크기를 가진 인터리버를 위한 최적화 설계에 관한 것이다. 더욱 상세히 말하자면, 본 발명은 보다 작은 최적 인터리버(Interleaver)가 보다 큰 최적 인터리버로부터 구축될 수 있는 터보 인터리버(Turbo Interleaver)에 관한 것이다.
도 1은 본 발명의 가르침을 구현하는데 사용될 수 있는 종류의 이동 통신 시스템의 하드웨어에 대한 블록도이다.
도 2는 도 1과 같은 시스템에 구현될 수 있는 터보 인코더(Turbo encoder)에 대한 기능 블록도이다.
도 3은 본 발명의 구현에 따른 도 1의 이동 통신 시스템과 도 2의 인코딩 시스템에 의해 고찰되는(traversed) 단계의 흐름 도표(flow chart)이다.
도 4는 코드 속도(Code Rate)가 1/2일 때 크기가 1024 비트이고, 4개의 디코더 반복(decoder iteration)을 사용하는, 비트 오류율(BER; Bit Error Rate)과 프레임 오류율(FER; Frame Error Rate) 성능에 대해 갈로아 필드 인터리버(Galois Field Interleaver)를 S-랜덤 인터리버(S-random Interleaver)와 랜덤 인터리버에 비교하는 도 2에서 보이는 것과 같은 터보 인터리버의 성능 곡선에 대한 도표이다.
도 5는 코드 속도(Code Rate)가 1/2일 때 크기가 1024 비트이고, 8개의 디코더 반복(decoder iteration)을 사용하는, 비트 오류율(BER; Bit Error Rate)과 프레임 오류율(FER; Frame Error Rate) 성능에 대해 갈로아 필드 인터리버(Galois Field Interleaver)를 S-랜덤 인터리버(S-random Interleaver)와 랜덤 인터리버에 비교하는 도 2에서 보이는 것과 같은 터보 인터리버의 성능 곡선에 대한 도표이다.
도 6 은 코드 속도(Code Rate)가 1/3일 때 크기가 1152 비트이고, 4개의 디코더 반복(decoder iteration)을 사용하는, 비트 오류율(BER; Bit Error Rate)과 프레임 오류율(FER; Frame Error Rate) 성능에 대해 갈로아 필드 인터리버(Galois Field Interleaver)를 S-랜덤 인터리버(S-random Interleaver)와 랜덤 인터리버에 비교하는 도 2에서 보이는 것과 같은 터보 인터리버의 성능 곡선에 대한 도표이다.
본 발명에 대해, 현재에 있어서, 심사 숙고 되고 가장 잘 실시된 방법(presently best mode of practicing)에 대한 다음의 설명은 제한된 의미에서 받아들여질 것이 아니라, 단지 발명의 일반적인 원리를 묘사하는 목적에 의한 것으로 받아들여져야 할 것이다. 발명의 범위는 청구항에 대한 참조와 함께 결정되어져야 한다.
도 1에 따르면, 본 발명의 가르침을 구현하는데 사용될 수 있는 종류의 터보 코드(Turbo Code)를 사용하는 디지털 통신 시스템에 대한 블록도를 보인다. 이것은 트랜스미터 인터페이스(102; Transmitter Interface), A/D 컨버터(108; A/D Converter); 세그멘테이션 프로세서(106; Segmentation Processor); 터보코더(108; Turbo Coder); 버스트 포맷터(110; Burst Formatter); 모듈레이터(112; Modulator); 트랜스미터(RF/IF; 114);를 포함하는 트랜스미터 하드웨어로 구성된다. 또한 전원 공급 장치(124); 타이밍 및 제어 프로세서(116; Timing and Control Processor); 음성 합성 장치 및 오실레이터(118; Synthesizer and Oscillator); 및 스위치(120)로 구성된다. 이것은 수신기 인터페이스(134; Receiver Interface); 터보 디코더(132; Turbo Decoder); 이퀄라이저(130; Equalizer); 수신기/복조기(128; Receiver/Demodulator); 및 수신기 (RF/IF) 프리앰프 믹서(126; Receiver (RF/IF) Preamp Mixer)로 구성된다.
트랜스미터는 트랜스미터 인터페이스(102)를 통해 아날로그 신호를 받게 되어 있으며, A/D 커넥터(104)에서 A/D 변환을 수행한다. A/D 컨버터(104)에서 발생된 개별 샘플들은 세그멘테이션 프로세서(106)에 공급되는데, 여기서 44 옥텟(octet)의 고정 길이 데이터 단위는 초기의 MAC 프로토콜 데이터 단위를 단편화함으로서 형성되며, 그리고 그후, 고정 길이 데이터 단위들은 터보 코더(108)에게 넘겨지며, 이는 인터리버를 두개의 연결된 인코더 사이의 입력을 의사 난수화시키는데 사용하고 고정 길이 데이터 단위 (데이터 스트림)를 인코드하고, 인코드된 데이터 단위(데이터 스트림)를 버스트 포맷터(110)에게 보낸다.
짧은 주기동안에 존재하는 정해진 시간에서의 정해진 크기의 반복적인 파장의 연속인 버스트(burst)는 버스트 포맷터(110; Burst Formatter)에서 형성되며, 변조기(112; Modulator)에 전달되는데, 여기에서는 알려진 주파수에서의 반송파장과 섞여서 변조된다. 트랜스미터(114)는 스위치(120)가 안테나(122)를트랜스미터(114)에 연결할 때 변조된 버스트(burst)를 전송한다. 음성 합성장치와 오실레이터(118)는 트랜스미터(RF/IF)(114)와 버스트가 형성되면 제어를 하는 타이밍 및 제어 프로세서(116)에 대한 타이밍을 기억하고 있다.
안테나(122)가 버스트(burst)를 수신하고 수신기(RF/IF) 프리앰프 믹서(126; Preamp Mixer)가 스위치(120)를 통해 안테나와 연결이 되면, 수신된 버스트(burst)는 수신기(RF/IF) 프리앰프 믹서(126)에 의해 증폭되며, 그 후, 반송 파장 주기(carrier waveform frequency)를 제거하기 위해 복조(demodulated)된다. 이퀄라이저(130)은 향상된 디지털 신호를 생산하기 위해 복조된 버스트(burst)를 맞춰진 필터를 통해 여과시키며, 이것은 다음에 디코더의 결합과 수신된 버스트로부터 정보를 해독하기 위해 서로 다른 디코더로부터의 피드백을 사용하는 인터리버를 통해 터보 디코더(132)에 의해 터보 디코드된다. 해독된 데이터는 D/A 컨버터(134; D/A Converter)에 의해 디지털로부터 아날로그로 변환되며, 필요에 따라 또 다른 처리를 위해 수신기 인터페이스(136)를 통해 다른 시스템으로 넘겨진다. 도 1의 디지털 통신 시스템이 대체로 음성이나 패킷 데이터를 위한 것과 같은 서비스 요구에 따라 다양하게 다른 정보 블록 크기를 사용하여 통신함에 따라, 내장된 터보 코드 인터리버는 터보 코드 성능에 부당한 희생없이 다수의 블록 크기를 수용하기에 충분히 탄력적이어야 한다.
도 2에 따르면, 두 개의 단순한 구성 인코더 (인코더) (10, 10')의 병렬, 결합이 메모리를 가진 인터리버 (16; Interleaver)와 puncturer(36; puncturer)로 이루어져 있는 견본 터보 코드 인코더를 보인 기능 블록도이다. 제1 인코더(10)는 모듈의 덧셈기 (혹은 이진 덧셈기; 17, 20, 26, 28, 24, 25 및 30); 쉬프트 레지스터 지연 소자 (혹은 "쉬프트 레지스터"; 18, 21, 22); 스위치(12); 정보 비트 X(t)와 패러티 비트 Y0(t), Y1(t)로 구성되어 있다. 제2 인코더(10')는 아날로그 하드웨어(17', 20', 26', 28', 24', 25', 30', 18', 21', 22', 12')로 구성되어 있다. 출력 X(t)는 입력 X(t)에 연결되어 있는 스위치(12)와 연결되어 있다. 출력 Y0(t)는 해당 출력에 모듈의 덧셈기(20)와 연결되어 있는 모듈의 덧셈기(24)와 연결되어 있다. 출력 Y1(t)은 해당 출력에 모듈의 덧셈기(28)와 연결되어 있는 모듈의 덧셈기(25)와 해당 출력에 레지스터(22)와 연결되어 있다. 모듈의 덧셈기(28)는 해당 출력에 모듈의 덧셈기(26)와 해당 출력에 레지스터(21)와 연결되어 있다. 모듈 덧셈기(30)는 해당 출력에 모듈 덧셈기(17)와 연결되어 있다. 도 2의 터보 코드가 실제에서 어떻게 동작하는지에 대한 상세한 설명은 다음에서 제시된다.
두 구성 인코더(10, 10')는 각각 패러티 비트 Y0(t), Y1(t), Y0'(t)를 만들어내는데, 원하는 총체적인 터보 코드 비율을 얻기 위해 puncturer(36)에서 정해진 puncturing 패턴에 따라, 선택된 2 개는 단순한 구성 인코더(10, 10')의 출력 스트림(출력)에서 제거된다. 제1 인코더(10; 인코더 #1)와 제2 인코더(10'; 인코더 #2) 모두는 같은 정보 비트 스트림과 X(t) (혹은 "정보 비트")를 처리하지만, 인터리버(16)가 인코더 #2(10')에 도달하기 전에 정보 비트 X(t)를 처리하기 때문에, 인코더 #2(10')는 정보 비트 X(t)를 인코더 #1(10)에서 하는 순서와는 다른 순서로 진행시키게 된다. 정보 비트 X(t)의 표시 순서를 재배치함으로서, 인터리버(16)는 두 단순한 구성 인코더(10, 10')의 출력이 서로 관련이 없도록 제공을 하여서, 인코더 #1(10)로 하여금 낮은 해밍 무게(low-Hamming weight) 출력을 생산하도록 하는 정보 비트 X(t)가 인코더 #2(10')으로 하여금 낮은 해밍 무게(low-Hamming weight) 출력을 생산하지 않도록 한다.
도 2에서, 인터리버(16)는 "이웃 위치(neighbor position)"를 상응하는 인터리브된 비트 순서의 "이웃 위치"에 대응시키는 것을 방지한다. 인터리버(16)는 임의로 보이는(random-looking) 미리 정해진 방식으로 비트 장소를 재배열함으로서 의사 난수 방식으로 가능하게 한다.
모든 인코더(10, 10')는 정보 비트 X(t) (혹은 질서정연한 비트(systematic bits))에 추가적으로, 원하는 총체적인 터보 코드 비율(Turbo Code rate)을 획득하기 위해 pucturer(36; puncturer)에 의해 puncture되는 패러티 비트 Y0(t) 및 Y1(t)을 생산한다.
정보 비트 스트림 X(t)는 스위치(12)에서 수신되며, 두 분자 다항식과 하나의 분모 다항식을 표현하기 위해 하드-와이어드(hard-wired)된 위의 여러 개의 모듈 덧셈기와 위의 쉬프트 레지스터들에 따라 처리된다.
도 2를 계속해서 참조하여, 터보 코드 "1010"을 표현하는 분모 다항식 d(D)는 모듈 덧셈기(17)에 대한 반환 피드백의 연결과 모듈 덧셈기(30)에 대한 각각의 연결에 의해 하드-와이어드 되어 있다. 계산에 앞서, 3개의 쉬프트 레지스터(18, 21 및 22)가 먼저 0으로 놓여진다.
터보 코드 "1101"을 표현하는 분모 다항식 분의 제1 분자 다항식은, 제1 비트 W(t)를 생성하기 위한 모듈 덧셈기(17)에 대한 결과 X(t); 모듈 덧셈기(20)에서쉬프트 레지스터(18)와 W(t)에 대한 모듈 총계(제2 비트; modular sum); 레지스터(21)에 대한 연결의 결핍에 의해 나타나는 다른 0 비트(제3 비트); 및 또 다른 레지스터(22)와 모듈 덧셈기(20)의 결과의 모듈 덧셈기(24)에서의 모듈 총계(제4 비트);를 결합함으로서 반환 출력 Y0(t)에 하드 와이어드 되어 있다. 결과는 Y0(t) = W(t) + S0(t) + S2(t)이다.
정보 비트 스트림 X(t)는 스위치(12)에서 원래의 인터리브 되지 않은 순서로 나타나며, 제1 인코더(10)에 의해 처리된다. 도 2에서, 제1 인코더(10)는 선형 피드백 쉬프트 레지스터로 구현되는데, 전송 함수(transfer function)는
그러므로, 시간 t≥0일 때의 인코딩 하는 단계 동안에, 쉬프트 레지스터(18, 21, 22)의 쉬프트 레지스터 내용은 S0(t), S1(t), S2(t)이며 정보 비트 X(t)는 이진 덧셈기(17; binary adder)에 대한 입력에 존재한다. 인코더(10)는 그후 다음과 같은 두 덧셈식
Y0(t)=W(t)+S0(t)+S2(t)
Y1(t)=W(t)+S0(t)+S1(t)+S2(t),
에 따라 두 개의 코드화된 출력 비트(코드화된 비트; coded bits) Y0(t), Y1(t)를 만들어내는데,
W(t)=X(t)+S1(t)+S2(t),
이다.
코드된 비트들이 출력된 후, 시간 t에서의 현재의 인코딩 단계는 시간 t+1에서의 다음 인코딩 단계를 준비하기 위해 쉬프트 레지스터(18, 21, 22)의 내용을 한번씩 이동시킴으로서 완성된다. 시간 t+1에서
S0(t+1)=W(t), S1(t+1)=S0(t) 및 S2(t+1)=S1(t). t=0의 인코딩 처리의 시작에서, 시프트 레지스터의 내용은 0으로 초기화되며, S0(0)=S1(0)=S0(0)=0 이다. 제2 인코더(10')는 다른 두 코드된 출력 비트를 만들기 위해 인터리버(16)의 출력에 대해 같은 방식으로 동작한다.
도 1의 디지털 통신 시스템이 대체로 음성이나 패킷 데이터를 위한 것과 같은 서비스 요구에 따라 다양하게 다른 정보 블록 크기를 사용하여 통신함에 따라, 터보 코더(108; Turbo coder)내의 내장된 터보 코드 인터리버는 터보 코드 성능에 부당한 희생없이 다수의 블록 크기를 수용하기에 충분히 탄력적이어야 한다. 가장 일반적인 형태로는, 여기서 제안된 인터리버 디자인은 다양한 블록 길이의 기본 인터리버의 수집, 모("mother") 인터리버로 사용하기 위해 기본 인터리버 중 하나를 선택하는 알고리즘, 및 특정 원하는 특정 길이를 가진 터보 인터리버를 만들기 위해 모(mother) 인터리버에 적용하는 방법으로 구성된다.
기본 인터리버는 메모리에 저장되며, 읽기 또는 쓰기 인덱스(indices)가 명시된 테이블로서 아니면, 읽기 또는 쓰기 인덱스(indices)의 테이블이 미리 정해진 알고리즘에 의해 재생성 되는 더 작은 파라미터 집합으로서 도 2에 있는 인터리버 내에 위치될 수도 있다.
몇 개의 간단한 예를 통해 이런 개념은 명확해질 수 있다. 첫 번째로, 순열 ∏ = (04261537)을 사용하는 길이 8을 가진 인터리버를 생각해보자. 이 순열은 쓰기(입력 순서) 주소들의 리스트나 읽기 주소들의 리스트로 사용될 수 있다. dI(0), dI(1), ..., dI(7)은 그들의 원래 순서에 있던 입력 데이터(입력 순서)를 나타낸다고 하고; 또한 dO(0), dO(1), ..., dOO(7)은 같은 입력 데이터의 값을 나타내지만 순열로 배치된 순서만 다르다. 인터리버는 dI(0)를 출력 위치 0에 , dI(1)을 출력 위치 4에, dI(2)는 출력 위치 2에, dI(3)은 출력 위치 6 등에 쓰도록 구현할 수 있다. 이 경우에는, 인터리버의 작동은 수학적으로
dO(∏(k))=dI(k)
로 표현될 수 있다.
또 다른 대안으로, 인터리버는 순열 ∏에 따라 입력 데이터로부터 입력값을 읽도록 구현할 수도 있다. 제1 인터리브 값 dO(0)은 입력 위치 0에서 읽히고, 제2 인터리브 값 dO(1)은 입력 위치 4에서 읽히는 것 등을 말한다. 수학적으로는
dO(k)=dI(∏(k)).
어떤 해석도 우선시 되지 않는다; 그것은 단지 관습의 문제이다. 여기서 인터리버 동작을 설명하는 목적에서라면, 첫 번째 해석(인터리버에 대해 순열이 쓰기 주소를 위해 명시되는)이 사용된다.
하지만, 도 1에 터보 디코더(132)와 같은 터보 디코더에서는 인터리빙 및 그 반대(역인터리빙; de-interleaving)이 사용된다는 것을 집고 넘어간다. 인터리버가 순열 ∏를 쓰기 주소로 사용하기 위해 구현된다면, 역 인터리버(de-interleaver)는 순열 ∏를 읽기 주소로 사용하기 위해 구현할 수 있다. 이 말은 인터리빙과 역인터리빙 수행은 동일한 하드웨어 혹은 소프트웨어 순열 발생기를 공유할 수 있다는 것을 의미한다. 인터리버와 그의 역인터리버 두 개 모두에 대한 설명을 따로 저장할 필요는 없다.
순열 ∏ = (04261537)은 비트-반전 인덱싱 (bit-reversal indexing)으로부터 비롯된다. 예를 들어, 입력 위치 1은 3 비트 이진 표현 001을 가지며, 100을 해당 3 비트 표현으로 가지는 출력 위치 4에 대응되어 있다. 마찬가지로 입력 위치 3 (이진 011)은 출력 위치 6 (이진 110)에 대응되어 있다. 선택적으로 사용될 수 있는 VLSI 하드웨어 혹은 어떤 디지털 신호 처리 작업에서는 16 비트-반전 인덱싱(bit-reversed indexing)은 특별한 메모리 저장공간 없이도 쉽게 달성될 수 있다.
순열 ∏=(03614725)는 간단한 수학적 재귀(mathematical recursion)
α=3; п(0)=0; п(k) = п(k-1) + α(mod 8)
에 의해 생성될 수 있다.
이런 종류의 다른 재귀는 두 개의 파라미터 α와 п(0)에 의해 설명될 수 있다. 그러므로, 간단한 재귀 공식에 바탕을 둔 기본 인터리버의 집합(family)은 메모리에 저장되어 있는 파라미터들의 작은 테이블에 의해 표현될 수 있다. 유익하게도, 큰 블록 길이를 가진 인터리버나 다양한 블록 길이를 가진 인터리버의 큰 집합(large set of Interleaver)에 있어서, 명시된 순열보다 파라미터들로 된 작은 테이블에 저장하는 능력은 메모리 요구 량에 대한 커다란 감소를 가져온다. 그러므로, 만일 파라미터화된 인터리버의 집합이 좋은 터보 코드의 성능을 가져온다면, 터보 인터리버를 이러한 방법으로 디자인하는 것은 유익하다. 이러한 디자인 이슈들은 제안된 발명에 의해 유익하게 다루고 있다.
메모리에 어떤 방식으로 표현되고 저장된 다양한 블록 크기들의 기본 인터리버 집합이 주어졌다고 하면, 터보 디바이스(터보 인코더(108) 혹은 터보 디코더(132))는 특정 길이 L에 대한 인터리버를 구현하는데 사용할 것 하나를 선택한다. 본 발명의 하나의 실시예에서는, 기본 인터리버의 길이가 모두 다르며, 터보 디바이스는 길이가 적어도 원하는 길이 L보다 큰 모든 기본 인터리버들 중에서 가장 작은 길이 N을 가지는 기본 인터리버를 선택한다.
다른 구현에서는, 모두 같은 길이를 가진 다수의 기본 인터리버를 갖는 것이 바람직 할 수도 있다. 예를 들어, 모든 기본 인터리버가 정수 2 제곱의 길이를 가지는 구현에도 이익이 있을 수 있다. 그러한 디자인에서는, 각각이 2C-1에서 2C사이의 다른 블록 크기의 간격으로 최적화된, 길이 N=2C인 다수의 기본 인터리버가 있을 수도 있다. 그러한 구현에서는 터보 디바이스(터보 인코더(108) 혹은 터보디코더(132))는 우선 길이가 적어도 원하는 길이 L보다 큰 모든 기본 인터리버들 중에서 가장 작은 길이 N을 가지는 기본 인터리버를 판별하고, 다음에 L에 의존적인 다른 선택 기준에 따른 집합에 있는 기본 인터리버 중 하나를 선택한다.
일단 기본 인터리버가 선택되면, 그후에는 여기서 가지치기(pruning)이라고 불리는 과정에 의해 길이 L에 적용된다. 가지치기(Pruning)는 가지치기된 행렬(pruned matrix)에는 적당하지 않은 순열 인덱스들을 제거하는 것을 말한다. 예를 들어, 길이 8인 순열 п=(03614725)에 대해 8을 법으로 한 정수(integers modulo 8)는 길이 5를 가진 새로운 순열에 대해 5를 법으로 한 정수(integers modulo 5)로 가지치기하여, 적절하지 않은 인덱스 5, 6 및 7을 무시한다. 그러므로, 가지치기된 순열은 п*=(03142)이다.
가지치기의 과정은, 이와 함께 관련하여, 도 3에서 보이는 알고리즘에 의해 더 설명될 것이다. 단순하게 하기 위해, 알고리즘은 기본 인터리버의 모든 길이는 2의 정수배를 가졌다고 가정한다. 처리 단계는 다음과 같다.
위의 규칙들은 펑춰링(puncturing) (2m-1<N<2m)의 수단을 통해 크기가 2m인 단일 인터리버로부터 얻어진 어떠한 크기가 N인 터보 인터리버에 대해 규칙 1과 규칙 2가 계속적으로 만족될 수 있도록 후에 여기에 정제될 것이다. 어떤 크기 N인 모 인터리버(mother Interleaver)를 펑춰링을 통해 얻는 것은 본 발명의 한 관점이다.
크기 Ns인 더 작은 인터리버는 크기가 2m인 미리 설계된 인터리버 행렬을 사용함으로서 형성되는데, 여기서 m은 그것이 2m≥Ns인 가장 작은 정수, 다시 말해, 인터리버 IN에서 N은 정수이며, 요소의 개수 크기 N보다 크거나 같은 가장 작은 2 멱수가 되도록 선택한다.
작은 인터리버,은 그 후에, 미리 디자인된 인터리버을 펑춰링함으로써 미리 디자인된 인터리버,으로부터 생성된다.
그러므로, 만일 비트 위치 값이 작은 인터리버 NS에 있는 원소의 개수에 의해 측정된 작은 인터리버의 크기보다 작다면, 작은 인터리버,는 단지 비트 위치들을 원래의 미리 디자인된 인터리버으로부터 작은 인터리버로 받아들임으로서 생성된다.
이것은, 예를 들어, 컴퓨터 프로그램을 통해 수정된 프로세서를 통한 것과 같은, 도 3에서 다음의 단계들을 초기화하는 도 3에 보인 단계들을 통해 성취된다.
1) 여기서 i는 새로운 적은 인터리버 비트 위치를 나타내며, j는 원래의 큰 인터리버 비트 위치를 나타내는 카운터 i를 0으로 초기화하는 단계. 이것은 도 3의 초기화 카운터(310; Initialize Counter)에 해당된다;
2) 모든 원래의 비트 위치; 여기서 j는 0에서 2m-1(도 3의 j를 체크하는 것(320))이며, 나아가 다음의 단계를 초기화한다.
만일,를 설정하고 카운터 i를 증가시킨다. 이런 단계들은 도 3에서, 더 큰 I 요소를 검사(330; Check larger I Element), 작은 I 요소를 설정(340; Set Smaller I Element), 및 카운터의 증가(350; Increment Counter)에 각각 해당된다.
그렇지 않다면,를 도 3의 거부 및 복귀(360; Reject and Return)에 대해 거부한다. 이 프로그램은 연속하여 첫 번째부터 마지막 비트 위치까지, 작은 인터리버 크기보다 작은 값을 가진 원래의 인터리버의 어떠한 원래의 비트 위치든지 간에 받아들인다.
가지치기(pruning)는 여기서 설명된 본 발명의 핵심 관점이다. 방법이 VLSI이건 DSP이건 간에 쉽게 구현된다는 것은 장점이며, 그래서 모든 가능한 길이에 대해 개별적인 설명을 저장하는 것을 하지 않고서도 임의 길이의 인터리버를 제공하기 위한 효과적인 기법을 제공한다. 기본 인터리버의 집합은 본 발명의 실례가 되는 상세하고 명확한 디자인과 연결하여 설명될 원리들과 관련하여 가지치기에 대하여 견실하게 디자인되었다.
터보 인터리버의 디자인은 총체적인 터보 코드가 좋은 오류 정정 성능을 이끌게 되는 알맞은 해밍 무게 범위(Hamming weight spectrum; "weight spectrum")를 갖는다는 것을 확신하기 위하여 성분 재귀적인 포선 코드(constituent recursive convolutional code)의 구조를 고려해야 할 것이다. 길이 N의 선형 이진 코드의 무게 범위(weight spectrum)는 각 해밍 무게를 O에서부터 N까지의 코드 단어의 수로 부여하는 도표 작성이다. 해밍 무게(Hamming weight)는 코드 단어에서 0이 아닌 항목(entries)들의 수이다. 터보 코드의 성분 코드가 재귀적임에 따라, 질서 정연한 인코더로 하여금 모두 0의 상태를 벗어나게 만들고, 나중에 다시 모두 0의 상태로 되돌아오며, 그래서 바람직하지 않으며, 낮은 패러티 해밍 무게 순서를 생성하도록 하는, 적어도 2의 해밍 무게에 대한 입력 순서가 사용된다. 일반적으로, 질서 정연한(systematic)하고 반복적인 인코더는, 모두 0의 상태를 떠남에 따른 인코드된 순서는 다시 되돌아 올 수 없기 때문에, 1의 해밍 무게를 갖는 입력 순서에 대한 높은 해밍 무게의 패러티 순서를 생성시킨다. 성분 코드같이 재귀적인 포선 코드에 대해서, 양 인코더가 다 모두 0의 상태를 벗어났다가 후에 다시 모두 0의 상태로 되돌아오는 인코드된 순서를 생성할 확률은 입력 순서가 해밍 무게 2일 때 가장 높다.
또한 재귀적인 8-상태 구성 인코더(8-state constituent encoders)가 3 차 기본 피드백 다항식을 가질 때, 해밍 무게 2의 입력 순서는, 제1 인코더로 하여금 입력 순서에 있는 두 개의 "1"들이 6+7n 개(n은 정수)의 0으로 분리되었을 때만이 한정된 오류 사건(finite error event)을 생성시키도록 만든다는 것이 관찰된다. 그러므로 6+7n (n∈N)의 0에 의해 분리되는 정확하게 두 개의 "1"로 구성된 어떤 입력 순서가 인터리버에 의해, 6+7m (m∈M)의 0에 의해 이제 분리되는 두 개의 "1"로 구성된 새로운 순서로 대응되지 않도록 하는 것은 중요하다. 그런 방식으로서 제2 인코더(10')은 제1 인코더가 낮은 패러티 해밍 무게를 생성시킬 때 높은 패러티 해밍 무게를 생성시킬 것이며, 또한 반대로, 해밍 무게 2의 입력 순서에 대응될 것이다.
두 개의 1이 해밍 무게 2에 대한 입력 순서에 원치 않는 6+7n개의 0에 의해 분리된다고 할지라도, 대응되는 피러티 해밍 무게는 n이 커짐에 따라 더욱 커진다. 그러므로, 각각에 있어 n에 대한 대부분의 중요한 값들은 1이 뒤따르는 0이기 때문에, n>1인 경우들에 대해서 다루는 것은 덜 중요하다. 이것은 왜냐하면, n이 커짐에 따라, 패러티 해밍 무게 또한 뚜렷하게 커지기 때문이다.
8-상태 터보 코드(eight-status Turbo codes)를 위한 터보 인터리버의 디자인을 하기 위한 본 발명의 한 구현에서 소개된 규칙들은
규칙 1: 사건의 발생을 최소화한다:
여기서 I[x]는 인터리버 행렬 I에 의해 x가 대응된 위치를 나타낸다.
규칙 2: 만일 제1 규칙이 수학식 1의 0 발생들에 대해 만족된다면, 사건의 발생을 최소화한다:
위에서 만든 규칙들에 따름으로서, 인코더(10, 10') 모두가 낮은 해밍 무게 패러티 순서를 생성시킬 확률은 최소화된다.
뚜렷한 본보기의 터보 인터리버 디자인(본보기 디자인)은 발명의 개념에 대해 설명하고 전개시키기 위한 것 이상의 설명은 없을 것이다. 본보기의 디자인에서, 인터리버(16)에 의해 구현된 각 기본 인터리버는 차원 R×C 의 2-차원 블록 인터리버(혹은 인터리버 행렬)인데, 여기서 R-2r은 열의 수이고 C-2C는 행의 수이다. 개념적으로, 입력 데이터(데이터)는 인터리버 행렬에 한 열씩 차례로(row by row) 쓰여진다. 그리고는 열과 행 순열은 데이터 위치를 무작위화(randomize)하기 위해 수행된다. 데이터는 그후 한 행씩 차례로(column by column) 읽혀 나간다. 특히, 입력 위치 ℓ=C·i + j 로 주어졌다면, 대응되는 출력 인터리브 위치는 수학 공식 I(ℓ)=R·пi(j) + ρ(i)로 주어지게 되며, 여기서 пi는 열 i에 데이터에 적용된 행 순열이고, 여기서 ρ는 비트 반전 인덱싱인데, 특히나 구현하기에 간단하며 인터리버(16)의 메모리에 추가적인 파라미터 저장공간을 요구하지 않는다.
물론, 각 개별 행 순열을 열거하기 위해 추가적인 구현 복잡도와 증가된 저장 용량의 요구에 대한 비용의 부담으로 ρ순열을 다른 행과는 다르게 만들 수도 있다. 어떤 경우에라도, ρ순열은 즉석에서 가지치기의 구현을 용이하게 하기 위하여, 인터리버 행렬의 위와 아래 쪽 반씩에 대해 의사 난수 방식으로 얽히게 하는 것(pseudo-random interlacing)을 수행해야 한다. 이런 인터레이싱(interlacing)은 만일 I(ℓ)이 가지치기된 인터리버에 대해 적당치 못한 인덱스라면, 어떤 기본 인터리버도 그것의 길이에 대해 반 또는 그것을 넘어서 가지치기 될 수 없다는 것을 가정하여, I(ℓ+1)은 유효한 인덱스가 될 것임을 보증한다.
제안된 2-차원 구조는 여러 가지 이유로 터보 인터리빙에 사용하면 유익하다. 터보 인터리버가 파라미터의 작은 집합으로 설명될 수 있는 간단한 성분 순열로부터 구조적인 방식으로 만들어질 수 있기 때문에, 구현 복잡도는 작다. 열(row)과 열이 다른 성분 순열들이 사용되었을 때, 합성 인터리버 순열(composite interleaver permutation)은 낮은 복잡도에도 불구하고 좋은 터보 코드 성능을 얻기 위해 충분한 무작위성(randomness)를 보인다. 게다가, R과 C를 적당하게 선택함으로서, 인터리버의 "퍼짐 가능성(spreading capability)"(얼마나 이웃하는 위치와 잘 떨어지느냐하는)과 "무작위성(randomness)" 속성 사이에서 균형을 유지시킬 수 있다. 인터리버의 퍼짐 가능성(spreading capability)은 터보 인터리버에게 있어서는 터보 코드의 총체적인 "무게 범위(weight spectrum)"를 향상시키는데 도움이 된다는 점에서 역시 중요하다. 일반적으로, 퍼짐 가능성은 R이 증가함에 따라 증가하며, 또한 무작위성은 C가 증가함에 따라 같이 증가한다.
오히려, 경험적으로, 발명과 관련하여 인터리버 행렬들을 만드는데 있어서는, C를 그렇게 작게 만들지 않도록 하면서 R을 가능한 한 크게 함으로서, 각 열에 적용된 순열에 의해 생성된 무작위성을 낮출 수 있다.
그러므로, 아래에 제시되는 실례가 되는 디자인에서, 기본 인터리버의 집합은, 일반적으로, 큰 길이를 가진 것들은 큰 열의 수 R을 가진다는 속성을 갖는다. 이것은 2-차원 디자인에 있어서 중요한 관점이다.
실례가 되는 다자인에서, 아래에 제시된 본 발명의 관점과 관련하여, 인터리버 행렬의 열들에 적용된 성분 순열들은 갈로아 필드 연산(Galois field arithmetic)으로부터 유도된 순열의 새로운 클래스에 바탕을 둔다.
pm요소를 가진 갈로아 필드(GF; Galois Field)는 GF(pm)로 나타내며, 여기서 p는 소수이고 m은 1보다 큰 어떤 정수이다. 이것은 GF(p)[x] 분의 m차 프리미티브 다항식(primitive polynomial) p(x)를 사용하는 GF(p)에 의해 형성될 수 있다. GF(2m)의 경우에 있어서, GF(2)[x] 분의 m차 프리미티브 다항식 p(x)의 제곱근(roots)은, GF(2m)에 있는 프리미티브 요소(primitive element)들에 대한 부분집합을 형성한다. 갈리오스 필드(Galios Field)에서 q 요소를 가진 프리미티브 요소는 q-1 순서, 즉, αn=1 은 n=q-1 와 같이 가장 작은 양의 정수 n을 갖는다.
만일 ∝가 GF(2m)에 있는 프리미티브 요소라면, GF(2m)에 있는 모든 다른 0이 아닌 요소는 연속적인 α의 멱수(consecutive powers of α)로서 얻어질 수 있다.
더욱이, 필드 GF(2m)에 있는 모든 요소는 1, α, α2, ..., αm-1의 표현으로 나타낼 수 있다.
예를 들어, GF(8)은 프리미티브 다항식 GF(2)(x)분의 p(x)=x3+x+1를 사용하는 GF(2)로부터 만들어질 수 있다. α를 p(n)의 제곱근으로 놓자. 요소들의 곱셈은 α7=1 이라는 사실(α는 GF(8)의 프리미티브이기 때문에 정의에 의해서)을 사용하여 수행할 수 있다. GF(1)에 있는 요소의 덧셈은, 갈리오스 필드 연산( 1≡-1 인)에서 α3=α+1이기 때문에, 1, α 및 α2의 표현에 의한 등식을 사용하여 수행될 수 있다.
GF(8)에 있는 요소의 예시적인 곱셈은 수학식 4이다.
본보기 덧셈은 수학식 5이다.
크기 2m,인 인터리버는 다음의 4 단계에 의해 형성된다.
(1) 첫째로, 행렬은 한 열(row)씩 차례로, 상위 가장 왼쪽 위치에 0으로 시작해서, 하위 가장 오른쪽 위치에 rxc-1(위에서의 정의에 의해 2m=rxc.)로 끝나는 비트 위치로 채워진다.
그러므로, 크기 32=4×8인 인터리버 행렬 수학식 8은 행의 결과를 낳는다.
(2) 둘째로, 갈리오스 필드 연산 수학식 9를 사용하는 다음 순열 규칙에 따라, 각 열 i (i=0, 1, 2, ..., r-1)를 순열로 배열한다 (미리 정해진 규칙에 의해 자체 내에서. 한가지 방법은 순열로 배열하는 것이다)
수학식 9에서, ∝은 GF(c)를 만들기 위해 사용되는 프리미티브 다항식 p(n)의 제곱근이며,는 GF(c)에 있는 프리미티브이고, i0은 0과 c-2를 포함하는 0과 c-2 사이의 디지인된 정수이고, ib는 미리 정해진 정수이며, i0와 ib는 설명될 소정의 디자인 규칙에 바탕을 두어 선택되었다.
더군다나, 정의에 의하면,은 수학식 9의 제2 부분에 대한 결과로서 c-1로 설정된다.
본보기의 순열은, 각 열 i에 대해서 (i=0, 1, 2, 3)이고, 크기 32인 인터리버는 8행과 4열을 가지는 수학식 10에서 보이는 바와 같다.
증명을 위해, 표 1은, 16<N<32인 집합 N내의 크기 NS를 가진 터보 인터리버행렬을 순열로 배열하기 위해서 상수 ib과 i0를 가지고 만들어졌다. 표 1의 값들은 I32의 구성을 위한 다음의 예제를 위해 만들어졌다.
표 1 -상수
그러므로, 표 1에 따르면, 각 열은 다음과 같이 재편성(shuffling)되었다.
각 열의 재편성(shuffling)은 수학식 15에서 각 화살표의 오른쪽에 있는 순서에 의해 표현되는 위치의 의사 난수 순서의 결과가 되는데, 이것은 각 화살표의 왼쪽에 새로운 정리된 순서로 대응되는 원래의 비트 위치를 나타낸다.
위의 재편성으로부터 다음의 인터리버 행렬을 얻을 수 있다.
(3) 세 번째로, 인터리버 행렬 I32의 각 열은, 위의 순열로부터 도출된 행렬의 상위 반쪽(upper half)과 행렬의 하위 반쪽(lower half)을 인터레이싱하는 어떤 방법에 따라 재편성되거나 재배열된다.
이렇게 하는 한가지 방법은 열 인덱스에 비트 반전(bit reversal)에 따라서 열을 재배열하는 것이다(예를 들어, 4-열을 가진 행렬에서의 패턴(00, 01, 10, 11)에 의한 표현처럼). 위의 행렬 예에 의해, 이 결과는 다음 행렬을 낳는다.
(4) 네 번째로, 순열로 배열되고 재배치된 행렬 혹은 인터리버 행렬로부터 얻어진 내용은, 한 행씩 차례로 블록 인터리버(Block Interleaver)의 경우에서처럼 인코더로 읽혀 나간다.
위의 예에서, 이것은 비트 위치 순서
2 22 14 26 3 18 12 29 6 17 15 30 1 19 13 25 5 16 9 31 4 23 11 24 2 21 8 28 0 20 10 27
그들 내에 있는 열들의 순열은, 규칙 1과 규칙 2가 2m-1<N≤2m가 되는 크기가 2m인 원래의 인터리버로부터 얻어진 크기 N인 어떤 인터리버도 만족시킬 수 있도록 되어야 한다.
앞서서 설명한 우선되는 기본 인터리버 구조는, 가지치기(pruning)에 견고성을 확인시키는데 도움을 주는 간단한 디자인 기준의 공식을 허용한다. 핵심 관점(key observation)은, 크기 2m인 인터리버의 구성된 방식 때문에, W는 정수인, 어떤 크기 2W인 윈도우에 대해서, 2m-1<N≤2m인 크기 N을 가진 인터리버를 얻기 위해서 가지치기되어야 하는 것으로 최대 W 인덱스가 있다는 것이다. 17 요소의 인터리버는 수학식 18의 인터리버를 가지치기함으로써 얻을 수 있다.
7 14 3 12 6 15 1 13 5 16 9 4 11 2 8 0 10
의 요소를 갖는 인터리버 행렬을 낳게 한다.
그러므로, 앞서 논의한 좋은 터보 인터리버 디자인을 위한 규칙은 -수학식 1및 수학식 2에 의해 주어지는 규칙 1과 2- 가지치기에 견실한 좋은 터보 인터리버의 디자인에 대한 규칙을 제공하는데 일반화될 수 있다. 수정된 규칙들은 다음과 같다.
수정된 규칙 1: 사건의 발생을 최소화한다.
수정된 규칙 2: 만일 첫 번째의 수정된 규칙이 0개의 사건으로 만족된다면, 사건의 발생을 최소화한다.
제3 규칙 또한 소개된다. 규칙 3: 만일 수정된 규칙 1과 수정된 규칙 2가 0개의 사건으로 만족된다면, 윈도우 크기 S 내의 이웃 위치가 크기 S인 윈도우 내의 이웃 위치에 대응되지 않도록 변수 S를 최대화한다.
수정된 규칙들에 앞서 언급된 핵심 관점 때문에, 만일 크기 2M을 가진 인터리버가 수정된 규칙 1과 수정된 규칙 2를 만족한다면, 가지치기(pruning)에 의해 얻어지는 크기 N (2m-1<N≤2m)을 갖는 모든 인터리버는 본 발명의 초기 부분에서 언급했던 규칙 1과 규칙 2를 만족한다.
갈리오스 필드 순열(Galios Field permutations)로 하여금 갈리오스 필드 인터리버에서 의사 난수성을 얻기 위하여 우선되는 정수인 상수 i0과 ib에 대한 디자인에서, 구성된 인터리버 행렬의 성능은 위의 수정된 규칙들에 얼마나 잘 부합할 수 있는지에 따라 측정된다.
크기가 128, 256, 512, 1024, 2048 및 4096인 인터리버 행렬들은 64<N<4096의 어떤 크기 N을 가지는 최적에 가까운 인터리버 행렬을 가져오기 위한 수정된 규칙들에 따라 만들어진다.
여기서 c가 인터리버 행렬의 행에 대한 수가 되는 GF(c)를 만들기 위해 사용되는 프리미티브 다항식은 다음과 같다.
표 2는, 위에서 정의되고 정하여진 것처럼, 명시된 각 인터리버 행렬 크기에 대한 각 열의 인덱스 i에 대해서, ib와 i0에 대한 최적의 값을 보인다.
본 발명에 따라서 위의 상수로부터 디자인된 인터리버와 또한 관련된 행렬들의 모든 경우에 있어서는, 수정된 규칙 1과 수정된 규칙 2는 작은 수의 ###에 대해서만을 제외하면 완전히 만족된다.
한 구현에서, 컴퓨터 검색(computer search)은 수정된 규칙들이 만족되도록 상수를 결정한다.
도 4와 따르면, 시뮬레이션 결과는, 총체적인 터보 코드 비율이 1/2인 AWGN 채널에 대해 크기 1024를 가진 본 발명에 따른 랜덤, S-랜덤 및 새로운 갈로아 필드 인터리버(Galois Field Interleaver)을 나타내는데, 여기서 인코더는 전송 함수
를 가진 8-상태 구성 인코더로 구성된다.
도 4의 곡선(410; Curve)은 4개의 디코더 반복(decoder iteration)을 가지고서, 갈리오스 필드(GF; Galios Field) 인터리버는 10-5의 비트 오류율(bit error rate)에서 그와 유사한 S-랜덤 인터리버 (S=12)에 대해서 약 0.1 dB 이익을 얻을 수 있다. 비교되는 랜덤 인터리버는 최악의 성능을 갖는다. 프레임 오류 비율(Frame Error Rate) 성능에 있어서는, 곡선(420)은 (GF) 인터리버가 가장 좋은 성능을 가진 인터리버라는 것을 보인다.
도 5는 8 디코더에 대한 해당 성능을 나타낸다. 곡선(510)은 비트 오류율(Bit Error Rate)의 성능에 대한 비교를 나타낸다. 곡선(520)은 프레임 오류율(Frame Error Rate)의 성능에 대한 비교를 나타낸다. 결과는 도 4에서와 동일하다.
도 6은 총체적인 터보 코드 비율이 1/3인 AWGN 채널에 대해 크기 1152를 갖고, 또한 4 디코더 반복을 가진 터보 인터리버에 대한 성능을 나타낸다. 크기 1152를 갖는 GF 인터리버는 본 발명에 따르는 크기 2048을 갖는 (GF) 인터리버로부터 형성된다. 이 경우, 비트 오류율(Bit Error Rate)에 대한 성능 곡선(610)과 프레임 오류율에 대한 성능 곡선(620)은 (GF) 인터리버가 S-랜덤 인터리버(S=13)과 유사한 성능을 갖는다는 것을 나타낸다.
표 2의 실례가 되는 다자인은 또한 파라미터에 대한 선택을 제한함으로서 단순화시킬 수 있다. 예를 들어, 저장 장소 요구는 물론 하드웨어 구현도 만일 파라미터 ib 가 1의 값을 가지는 상수로 놓게 된다면 감소시킬 수 있다. 이 경우에 있어서는, 각 열 R 내에 적용되어야 할 성분 순열을 나타내는 파라미터는 수정된 규칙 1과 2에 따라서 다시 최적화되어야 한다.
표 4는 만일 ib가 1일 때, 각 열 인덱스 i에 대해서 정수인 상수 i0과 각 인터리버 행렬의 크기에 대한 최적에 가까운 값을 보인다.
[표4a]
[표4b]
비록 여기서 발표된 발명이 특정 구현과 응용의 수단을 통해 설명이 되었지만, 청구의 범위에 진술된 발명의 범위에 벗어나지 않는 선에서 숙련된 자에 의해 다양한 수정과 변화가 행하여질 수 있다.
예를 들어, 실시예에서, 인터리버 행렬의 각 열 내에서 적용된 성분 순열은 갈로아 필드(Galois field)에서 이산 로그(descrete logarithm)에 기반하였다. 이것은 단지 갈로아 필드 연산에 기반한 순열의 넓은 클래스들의 특정한 예에 불과하다는 것은 명백하다. 최선으로, 또 하나의 밀접하게 관련된 선택은 길이 (β)-1을 가진 성분 순열을 생산하기 위해 ord(β) 배수사 순서(multiplicative order ord(β))의 프리미티브가 아닌 요소(non-primitive element) β∈GF(C)를 가지고
를 정의하는 것이 된다. 다른 대안으로, 다른 선형의 로그 혹은 βj의 관계 함수가 사용될 수도 있다. 더 일반적으로는, 순열 매핑 데이터(permutation mapping data)를 위치 i=0, 1, 2, ..., ord(β)-1에서 새로운 위치
пi(j) =fj)
로 만들 수도 있으며, 여기서 f는 한정된 필드 GF(C)에 대해 작용하는 정수값 함수(integer-valued function)이며 β는 ord(β) 배수사 순서(multiplicative order ord(β))의 GF(C)에 있는 0이 아닌 요소이다.
그리고 또 다른 대안적인 구현으로는, 한정 필드(finite field(s))는 이진 - 그러니까 C가 2의 제곱수 - 일 필요는 없다.

Claims (30)

  1. 인덱스들(indices)를 갖는 인덱스 데이터의 블록들(blocks of indexed data) -상기 블록들은 가변 길이를 가짐―을 인터리빙하는 방법에 있어서,
    상기 인덱스 데이터 X(t)의 하나 이상의 순열의 집합(a family of one or more permutations)을 포함하며 가변 길이를 가지는 기본 인터리버들의 집합(a set of basic Interleavers)을 제공하는 단계;
    원하는 인터리버의 길이 L에 기초하여 상기 기본 인터리버들 중 하나를 선택하는 단계; 및
    원하는 인터리버의 길이 L을 가진 인터리버를 생성하기 위해 상기 선택된 기본 인터리버를 적합화(adapting)시키는 단계
    를 포함하는 인터리빙 방법.
  2. 제1항에 있어서, 상기 선택하는 단계는,
    원하는 인터리버 길이 L 보다 크거나 같은 길이를 갖는 기본 인터리버들의 그룹을 식별하는 단계; 및
    상기 식별된 기본 인터리버들의 그룹 중에서 가장 작은 선택된 길이를 가지는 기본 인터리버들 중 하나를 선택하는 단계
    를 포함하는 인터리빙 방법.
  3. 제2항에 있어서, 상기 선택된 기본 인터리버를 적합화시키는 단계는,
    길이 L의 순열을 위해 요구되는 인덱스(indices)보다 높은 인덱스를 갖는 인덱스 데이터를 삭제하는 단계를 포함하는 인터리빙 방법.
  4. 제3항에 있어서, 상기 기본 인터리버들의 집합은 "2차원 순열들(two-dimensional permutations)"로 구성되며, 상기 "2차원 순열들"을 계산하는 단계를 더 포함하되, 이 단계는,
    (a) 2개 차원의 각각에서 하나 이상의 열(row) R을 갖는 인터리버 행렬(matrix) 내에 인덱스 데이터를 써 넣는 단계;
    (b) 상기 2개 차원 중 적어도 한 차원내의 하나 이상의 열에서 상기 인덱스 데이타를 순열 배치(permute)하여 성분 순열들(constituent permutations)을 생성하는 단계 -상기 성분 순열들은 상기 2개 차원 각각에서 열마다 다를 수 있음―;
    (c) 상기 인터리버 행렬로부터 데이터를 읽어내는 단계
    를 포함하는 인터리빙 방법.
  5. 제4항에 있어서,
    상기 기본 인터리버들의 설명(description)을 저장하기 위한 메모리 장치를 더 포함하며 인덱스 데이타의 블럭들을 인터리빙하기 위한 인터리버 장치(16)을 제공하는 단계; 및
    상기 기본 인터리버들의 설명을 상기 메모리 장치 내에 저장하는 단계
    를 포함하는 인터리빙 방법.
  6. 제5항에 있어서, 상기 성분 순열들(constituent permutations)은, 제한된 개수의 파라미터(parameter)가 포함된 수학 연산들에 의해 나타내어지는 의사 난수 순열들(pseudo-random permutations)이며, 상기 제한된 개수의 파라미터를 저장하는데 필요한 저장 용량은, 상기 성분 순열들의 순열 배치된 인덱스들 전체에 대한 벡터 표기를 저장하는데 필요한 또 다른 저장 용량보다 작은 인터리빙 방법.
  7. 제6항에 있어서, 상기 성분 순열들 중 적어도 하나는, 상기 2개 차원 중 적어도 한 차원에서 위치들 i=1, 2, ... ord(α)-1에서의 인덱스 데이터를 새로운 위치 I(i)=f(αi)로 매핑하는 갈로아 필드 순열(Galois field permutation)이며, 여기서, f는 유한 필드 GF(q)에 대해 작용하는 정수값 함수(integer-valued function)이며, α는 배수사 순서(multiplicative order) ord(α)의 갈로아 필드 GF(q) 내에 있는 0이 아닌 요소이고, 상기 2개의 차원중 상기 적어도 한 차원을 따라 적어도 하나의 갈로아 순열을 상기 인덱스 데이타에 적용하는 인터리빙 방법.
  8. 제6항에 있어서,
    상기 인터리버 장치(16)에 함께 접속된 2개 이상의 성분 코드 인코더를 포함하는 터보 코드 인코더를 제공하는 단계; 및
    상기 터보 코드 인코더의 상기 인터리버 장치(16)에 의한 인터리빙 이후에 상기 인덱스 데이터를 터보 인코딩하는 단계
    를 더 포함하는 인터리빙 방법.
  9. 제6항에 있어서, 상기 2개 차원 중 적어도 하나를 따라서 적용되는 상기 성분 순열들의 길이는 짝수 정수(even integers)인 인터리빙 방법.
  10. 제9항에 있어서, 짝수의 길이를 가진 상기 성분 순열들은,
    상기 짝수의 길이를 갖는 상기 성분 순열들이 적용되는 상기 2개 차원 중 적어도 하나에서 일관된 방식으로, 상기 인터리버 행렬의 상위 반쪽과 하위 반쪽으로부터의 상기 인덱스 데이타를 인터레이싱(interlace)하는 역할을 하는 인터리빙 방법.
  11. 제10항에 있어서, 상기 2개 차원 중 적어도 하나를 따라 적용되는 상기 성분 순열들의 길이는 2의 정수 제곱수(integral powers of two)인 인터리빙 방법.
  12. 제11항에 있어서, 2의 정수 제곱수의 길이를 가진 상기 성분 순열들 중 적어도 하나가 인덱스 i에 대응되는 위치 i에 있는 인덱스 데이타를, 함수 I(i)에 의해서 정의된 위치에 해당하는 새로운 위치 I(i)로 매핑하며, 여기서 I(i)는 정수로서 그 2진 표기가 i의 2진 표기의 역수(reverse)인 인터리빙 방법.
  13. 인덱스 데이터의 블록들 -상기 블록들은 가변 길이를 가짐―을 인터리빙하는 방법에 있어서,
    1) "2차원 순열들(two-dimensional permutations)"을 계산하는 단계를 포함하여 "2차원 순열들"을 포함하는 기본 인터리버들의 집합을 제공하는 단계를 포함하되, 상기 "2차원 순열들(two-dimensional permutations)"을 계산하는 단계는,
    (a) 2개의 차원 각각에서 하나 이상의 열(row) R을 가지는 인터리버 행렬에 상기 인덱스 데이터를 써 넣는 단계;
    (b) 상기 2개 차원 중 적어도 하나에서 하나 이상의 열 R에서의 상기 인덱스 데이터를 순열 배치하여 "성분 순열들(constituent permutations)"을 생성하는 단계 -상기 성분 순열들은 열마다 다를 수 있고, 제한된 개수의 파라미터가 포함된 수학 연산에 의해 기술된 의사 난수 순열들(pseudo-random permutations)이며, 상기 제한된 개수의 파라미터를 저장하는 데 필요한 저장 용량은 상기 성분 순열들의 순차 배치된 인덱스들의 벡터 표현을 저장하는 데 필요한 저장 용량보다 작음- ; 및
    (c) 상기 인터리버 행렬로부터 데이터를 읽어내는 단계를 포함하며,
    2) 원하는 인터리버 길이 L에 기초하여 인코딩에 사용하기 위한 상기 기본 인터리버들 중의 하나를 선택하는 단계와;
    3) 상기 원하는 인터리버 길이 L을 가지는 인터리버를 생성하기 위해 상기 선택된 기본 인터리버를 적합화하는 단계를 포함하되;
    상기 선택하는 단계는,
    (a') 상기 원하는 인터리버 길이 L 보다 크거나 같은 상기 기본 인터리버들의 그룹을 식별하는 단계와,
    (b') 상기 식별된 기본 인터리버들의 그룹 중에서 가장 작은 길이를 가지는 기본 인터리버들 중 하나를 선택하는 단계를 포함하며,
    상기 선택된 기본 인터리버를 적합화하는 단계는,
    (a") 순열의 길이 L에 대해 필요한 인덱스들보다 높은 인덱스들을 가진 인덱스 데이터를 삭제하는 단계를 포함하며,
    4) 인덱스 데이터의 블록들을 인터리빙하기 위한 인터리버 장치(16)를 제공하는 단계 -상기 인터리버 장치는 상기 기본 인터리버들의 설명(description)을 저장하기 위한 메모리 장치를 더 포함함―와;
    5) 상기 기본 인터리버들의 설명(description)을 메모리 장치에 저장하는 단계
    를 포함하는 인터리빙 방법.
  14. 제13항에 있어서, q가 2의 정수 제곱수인 인터리빙 방법.
  15. 제1항에 있어서, 함께 접속된 2개 이상의 구성 인코더로 이루어진 터보 인코더를 제공하는 단계를 더 포함하고, 상기 인터리빙은 상기 터보 인코더에 의해 수행되는 인터리빙 방법.
  16. 인덱스들(indices)을 갖는 인덱스 데이터의 블록들을 인터리빙 및 터보 인코딩하기 위한 시스템 -상기 블록들은 가변 길이를 가짐―에 있어서,
    재귀 주기(recursion period) p를 가진 재귀적인 컨벌루션 코드(recursive convolutional codes)에 대한 병렬 결합(parallel concatenation)된 2개 이상의 구성 인코더(constituent encoders); 및
    상기 병렬 결합된 2개 이상의 구성 인코더에 결합된 인터리버 장치
    를 포함하고,
    상기 인터리버 장치는,
    a) 저장된 기본 인터리버들의 설명에 액세스하는 단계 -상기 기본 인터리버들은 상기 인덱스 데이터의 하나 이상의 순열의 집합을 포함하며, 가변 길이를 가짐―;
    b) 원하는 인터리버 길이 L보다 크거나 같은 길이를 가진 기본 인터리버들의 그룹을 식별하는 단계;
    c) 상기 기본 인터리버들의 그룹 중에서 가장 작은 길이를 갖는 기본 인터리버들 중 하나를 선택하는 단계; 및
    d) 상기 원하는 인터리버 길이 L을 갖는 인터리버를 생성하기 위해 상기 기본 인터리버들 중 선택된 하나의 기본 인터리버를 적합화하는 단계를 수행하는 시스템.
  17. 인덱스들(indices)를 갖는 인덱스 데이터의 블록들(blocks of indexed data) -상기 블록들은 가변 길이를 가짐―을 인터리빙하기 위한 인터리버를 구성하는 방법에 있어서,
    원하는 인터리버 사이즈에 기초하는 값들을 가진 파라미터들의 집합(a set of parameters)을 제공하는 단계; 및
    상기 파라미터들의 집합에 기초하여, 상기 인덱스 데이터 X(t)의 하나 이상의 순열의 집합(a family of one or more permutations)을 포함하고 가변 길이를 가지는 인터리버를 구성하는 단계
    를 포함하는 인터리버 구성 방법.
  18. 제17항에 있어서, 상기 구성하는 단계는,
    상기 파라미터들에 기초하여 상기 인터리버에 대한 인덱스를 결정하는 단계;
    상기 인덱스가 상기 원하는 인터리버 사이즈의 범위 안에 있다면, 상기 인덱스를 상기 인터리버에 대한 선택된 인덱스로서 사용하는 단계;
    상기 인덱스가 상기 원하는 인터리버 사이즈의 범위 밖에 있다면, 상기 인덱스를 버리고 상기 파라미터들에 기초하여 또 다른 인덱스를 상기 선택된 인덱스로서 선택하는 단계; 및
    상기 선택된 인덱스를 사용하여 상기 인터리버를 구성하는 단계
    를 포함하는 인터리버 구성 방법.
  19. 제17항에 있어서,
    함께 접속된 2개 이상의 구성 인코더(constituent encoders)로 이루어진 터보 인코더를 제공하는 단계를 더 포함하고, 상기 인터리빙은 상기 터보 인코더에 의해 수행되는 인터리버 구성 방법.
  20. 제17항에 있어서,
    상기 인터리버에 함께 접속된 2개 이상의 구성 코드 인코더를 포함하는 터보 코드 인코더를 제공하는 단계; 및
    상기 터보 코드 인코더의 상기 인터리버에 의한 인터리빙 이후에 상기 인덱스 데이터를 터보 인코딩하는 단계
    를 더 포함하는 인터리버 구성 방법.
  21. 인덱스 데이터의 블록들 -상기 블록들은 가변 길이를 가짐- 을 인터리빙하는 방법에 있어서,
    1) 상기 인덱스 데이터의 블록의 길이보다 크거나 같은 길이를 갖는 기본 인터리버를 제공하는 단계를 포함하되, 이 단계는,
    상기 인덱스 데이터를 사용하여 상기 기본 인터리버의 열들(rows)을 채우는 단계;
    상기 열들 각각에서 상기 인덱스 데이터를 순열 배치(permute)하는 단계; 및
    상기 기본 인터리버의 각 행(column)에서 상기 인덱스 데이터를 순열 배치하는 단계를 포함하고,
    2) 상기 기본 인터리버로부터 한 행씩 인터리빙된 인덱스 데이터를 판독하는 단계; 및
    3) 상기 인덱스 데이터의 블록의 상기 길이보다 큰 상기 기본 인터리버에 의해 생성된 인덱스들을 버리는 단계
    를 포함하는 인터리빙 방법.
  22. 제21항에 있어서,
    상기 기본 인터리버의 상기 각 행에서의 상기 인덱스 데이터의 상기 순열 배치는 상기 기본 인터리버의 상기 각 열에서의 상기 인덱스 데이터의 상기 순열 배치 이전에 행해지는 인터리빙 방법.
  23. 제21항에 있어서,
    상기 각 열에서의 상기 인덱스 데이터는 서로 다르게 순열 배치되는 인터리빙 방법.
  24. 제21항에 있어서,
    상기 각 행에서의 상기 인덱스 데이터는 서로 다르게 순열 배치되는 인터리빙 방법.
  25. 제17항에 규정된 방법에 따라서 제조된 인터리버.
  26. 제18항에 규정된 방법에 따라서 제조된 인터리버.
  27. 제19항에 규정된 방법에 따라서 제조된 인터리버.
  28. 제20항에 규정된 방법에 따라서 제조된 인터리버.
  29. 인덱스 데이터의 블록들 -상기 블록들은 가변 길이를 가짐- 을 인터리빙하는 방법에 있어서,
    1) 상기 인덱스 데이터의 블록의 길이보다 크거나 같은 길이를 갖는 기본 인터리버를 제공하는 단계를 포함하되, 이 단계는,
    상기 인덱스 데이터를 사용하여 상기 기본 인터리버의 열들을 채우는 단계;
    상기 열들 각각에서 상기 인덱스 데이터를 순열 배치하는 단계; 및
    상기 순열 배치된 인덱스 데이터의 행들을 상호 교환(interchange)하는 단계를 포함하고,
    2) 상기 기본 인터리버로부터 한 행씩 인터리빙된 인덱스 데이터를 판독하는 단계; 및
    3) 상기 인덱스 데이터의 블록의 상기 길이보다 큰 상기 기본 인터리버에 의해 생성된 인덱스들을 버리는 단계
    를 포함하는 인터리빙 방법.
  30. 제29항에 있어서,
    상기 각 열에서의 상기 인덱스 데이터는 서로 다르게 순열 배치되는 인터리빙 방법.
KR10-2000-7004074A 1998-08-17 1999-08-16 최적 성능을 갖는 터보 코드 인터리버 KR100373965B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US9680798P 1998-08-17 1998-08-17
US60/096,807 1998-08-17

Publications (2)

Publication Number Publication Date
KR20010015765A KR20010015765A (ko) 2001-02-26
KR100373965B1 true KR100373965B1 (ko) 2003-02-26

Family

ID=22259164

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7004074A KR100373965B1 (ko) 1998-08-17 1999-08-16 최적 성능을 갖는 터보 코드 인터리버

Country Status (6)

Country Link
US (7) US6334197B1 (ko)
EP (2) EP1046236B1 (ko)
JP (1) JP3453122B2 (ko)
KR (1) KR100373965B1 (ko)
AU (1) AU5675499A (ko)
WO (1) WO2000010257A1 (ko)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370669B1 (en) * 1998-01-23 2002-04-09 Hughes Electronics Corporation Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes
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
US6430722B1 (en) * 1998-01-23 2002-08-06 Hughes Electronics Corporation Forward error correction scheme for data channels using universal turbo codes
KR100373965B1 (ko) 1998-08-17 2003-02-26 휴우즈 일렉트로닉스 코오포레이션 최적 성능을 갖는 터보 코드 인터리버
WO2000013323A1 (en) * 1998-08-27 2000-03-09 Hughes Electronics Corporation Method for a general turbo code trellis termination
US6772391B1 (en) * 1998-10-13 2004-08-03 Interdigital Technology Corporation Hybrid interleaver for turbo codes
KR100306282B1 (ko) * 1998-12-10 2001-11-02 윤종용 통신시스템의인터리빙/디인터리빙장치및방법
KR100346170B1 (ko) * 1998-12-21 2002-11-30 삼성전자 주식회사 통신시스템의인터리빙/디인터리빙장치및방법
JP4031136B2 (ja) * 1999-01-14 2008-01-09 株式会社東芝 符号化・復号化装置及びディスク記憶装置
FR2789824B1 (fr) * 1999-02-12 2001-05-11 Canon Kk Procede de correction d'erreurs residuelles a la sortie d'un turbo-decodeur
FR2790621B1 (fr) * 1999-03-05 2001-12-21 Canon Kk Dispositif et procede d'entrelacement pour turbocodage et turbodecodage
CA2266283C (en) * 1999-03-19 2006-07-11 Wen Tong Data interleaver and method of interleaving data
KR100330238B1 (ko) * 1999-04-02 2002-03-25 윤종용 통신시스템의 인터리빙/디인터리빙 장치 및 방법
EP1095460A4 (en) * 1999-04-02 2002-04-03 Samsung Electronics Co Ltd INTERLEAVING / DE-INTERLACING SYSTEM AND METHOD IN A COMMUNICATION SYSTEM
HUP0200639A2 (en) * 1999-04-07 2002-06-29 Siemens Ag Method for coding channels
US6543013B1 (en) * 1999-04-14 2003-04-01 Nortel Networks Limited Intra-row permutation for turbo code
FI106758B (fi) * 1999-04-16 2001-03-30 Nokia Networks Oy Segmentointimekanismi lohkoenkooderia varten
EP1367728A1 (en) 1999-05-19 2003-12-03 Samsung Electronics Co., Ltd. Turbo interleaving aparatus and method
US6643332B1 (en) * 1999-07-09 2003-11-04 Lsi Logic Corporation Method and apparatus for multi-level coding of digital signals
US6693566B2 (en) * 1999-12-03 2004-02-17 Broadcom Corporation Interspersed training for turbo coded modulation
US6549998B1 (en) * 2000-01-14 2003-04-15 Agere Systems Inc. Address generator for interleaving data
KR100360251B1 (ko) * 2000-03-29 2002-11-08 엘지전자 주식회사 통신시스템의 핸드오프 처리장치 및 이동체 수신기
JP4364405B2 (ja) * 2000-06-12 2009-11-18 三菱電機株式会社 通信装置および通信方法
AU2001269086A1 (en) * 2000-07-04 2002-01-14 Koninklijke Philips Electronics N.V. Substitution-box for symmetric-key ciphers
JP4213879B2 (ja) * 2000-07-11 2009-01-21 エルジー エレクトロニクス インコーポレイティド 通信システム及び該システムの信号伝送方法
US6854077B2 (en) * 2000-08-05 2005-02-08 Motorola, Inc. Apparatus and method for providing turbo code interleaving in a communications system
US20020163975A1 (en) * 2000-09-21 2002-11-07 Mitsuru Uesugi Wireless transmission device, and transmission signal mapping method
US6725287B1 (en) * 2000-11-09 2004-04-20 Elity Systems, Inc. Method and system for capturing streaming data by an actionable information engine
US7068701B2 (en) * 2001-04-16 2006-06-27 Motorola, Inc. Data transmission and reception within a spread-spectrum communication system
JP4507443B2 (ja) * 2001-04-19 2010-07-21 日本電気株式会社 インターリーブ方法及びインターリーブ装置
DE60136611D1 (de) * 2001-05-10 2009-01-02 St Microelectronics Srl Entfernbares Spreiz-Zufall- Blockverschachtellungsverfahren sowie entsprechender Verschachteler
US6857087B2 (en) * 2001-06-11 2005-02-15 Her Majesty The Queen In Right Of Canada, As Represented By The Secretary Of State For Industry Through The Communication Research Centre High-performance low-memory interleaver banks for turbo-codes
EP1335497A3 (en) * 2002-02-06 2004-05-19 Samsung Electronics Co., Ltd. Interleaver and interleaving method in a communication system
JP3735579B2 (ja) * 2002-02-26 2006-01-18 株式会社東芝 ディスク記憶装置及びデータ記録再生方法
JP3607683B2 (ja) * 2002-03-13 2005-01-05 株式会社東芝 ディスク記憶装置及びデータ記録再生方法
US7082168B2 (en) * 2002-05-21 2006-07-25 Coffey John T Methods and apparatus for self-inverting turbo code interleaving with high separation and dispersion
US7003703B2 (en) * 2002-06-21 2006-02-21 Sandbridge Technologies, Inc. Method of interleaving/deinterleaving in a communication system
JP4040943B2 (ja) * 2002-10-01 2008-01-30 株式会社東芝 ディスク記憶装置及びデータ再生方法
JP3749889B2 (ja) * 2002-10-17 2006-03-01 株式会社東芝 Prml検出を適用する信号処理デバイス、同デバイスを備えたディスク記憶装置、及び同装置におけるフィードバック制御のための信号処理方法
US8650470B2 (en) * 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
FR2853976B1 (fr) * 2003-04-16 2005-06-03 Canon Kk Codage d'informations par code de geometrie algebrique offrant deux options de decodage
US20040267968A1 (en) * 2003-06-25 2004-12-30 Agilent Technologies Belgium S.A./N.V Implementation of a column interleaving function with a limited amount of columns
US8077743B2 (en) * 2003-11-18 2011-12-13 Qualcomm Incorporated Method and apparatus for offset interleaving of vocoder frames
US7509556B2 (en) * 2003-11-20 2009-03-24 Seagate Technology Llc Method and apparatus for combining output of different type interleavers based on an input data sequence to obtain a combined output
US7570695B2 (en) * 2003-12-18 2009-08-04 Intel Corporation Method and adaptive bit interleaver for wideband systems using adaptive bit loading
US7394412B2 (en) * 2004-01-15 2008-07-01 Texas Instruments Incorporated Unified interleaver/de-interleaver
EP1587217A1 (en) * 2004-04-15 2005-10-19 Istituto superiore Mario Boella per le Tecnologie dell'Informazione e delle Telecomunicazioni Pruning methods for the generation of S-random interleavers
US7568145B2 (en) * 2004-04-15 2009-07-28 Libero Dinoi Prunable S-random interleavers
US7392464B1 (en) * 2004-04-30 2008-06-24 Marvell International Ltd. Universal parity encoder
KR100744367B1 (ko) * 2004-05-24 2007-07-30 삼성전자주식회사 가변 윈도우가 적용된 터보 복호화 장치 및 방법
DE102004044221A1 (de) * 2004-09-14 2006-03-16 Boehringer Ingelheim Pharma Gmbh & Co. Kg Neue 3-Methyl-7-butinyl-xanthine, deren Herstellung und deren Verwendung als Arzneimittel
US7555052B2 (en) * 2004-10-13 2009-06-30 Conexant Systems, Inc. Method and system for a turbo trellis coded modulation scheme for communication systems
KR101131323B1 (ko) * 2004-11-30 2012-04-04 삼성전자주식회사 이동통신 시스템에서 채널 인터리빙 장치 및 방법
US7543197B2 (en) 2004-12-22 2009-06-02 Qualcomm Incorporated Pruned bit-reversal interleaver
US7768988B2 (en) * 2005-02-22 2010-08-03 Intel Corporation Method and apparatus to perform network medium reservation in a wireless network
US7437650B2 (en) * 2005-04-12 2008-10-14 Agere Systems Inc. Pre-emptive interleaver address generator for turbo decoders
US7376882B2 (en) * 2005-04-14 2008-05-20 The Boeing Company Adaptable channel compensation for reliable communication over fading communication links
US20060282713A1 (en) * 2005-05-31 2006-12-14 Yi Weng Efficient interleaver/de-interleaver desigh for the turbo decoder in a 3g wcdma system
US7793169B2 (en) * 2005-10-19 2010-09-07 Telefonaktiebolaget Lm Ericsson (Publ) Intelligent table-driven interleaving
CN100517983C (zh) * 2005-10-27 2009-07-22 中国科学院研究生院 联合信源信道可变长符号Turbo编译码方法
KR100764011B1 (ko) * 2005-12-10 2007-10-08 한국전자통신연구원 인터리빙 및 디인터리빙을 수행하는 저장 장치 및 그의제어 방법
JP4436315B2 (ja) * 2005-12-26 2010-03-24 京セラ株式会社 畳み込み符号化器、通信装置、及び畳み込み符号化方法
FR2897742A1 (fr) * 2006-02-17 2007-08-24 France Telecom Codage/decodage perfectionnes de signaux numeriques, en particulier en quantification vectorielle avec codes a permutation
EP2001134A4 (en) * 2006-03-24 2009-06-24 Mitsubishi Electric Corp NESTING METHOD AND COMMUNICATION DEVICE
KR101165638B1 (ko) 2006-10-24 2012-07-17 엘지전자 주식회사 연속적인 길이를 제공하는 인터리버 제공 방법, 인터리빙방법 및 이에 의한 터보 인코더
KR101276829B1 (ko) * 2006-10-30 2013-06-18 엘지전자 주식회사 연속적인 길이를 제공하는 인터리버 제공 방법, 인터리빙방법 및 이를 이용한 디코딩 방법
US8583983B2 (en) 2006-11-01 2013-11-12 Qualcomm Incorporated Turbo interleaver for high data rates
US8959403B2 (en) 2006-11-10 2015-02-17 Optis Wireless Technology, Llc QPP interleaver/de-interleaver for turbo codes
US8239711B2 (en) * 2006-11-10 2012-08-07 Telefonaktiebolaget Lm Ericsson (Publ) QPP interleaver/de-interleaver for turbo codes
US8065588B2 (en) * 2007-01-17 2011-11-22 Broadcom Corporation Formulaic flexible collision-free memory accessing for parallel turbo decoding with quadratic polynomial permutation (QPP) interleave
US7848400B2 (en) * 2007-04-26 2010-12-07 Broadcom Corporation Retransmission of reordered/coded data in response to presumed receiver decoding failure
US7804893B2 (en) * 2007-04-26 2010-09-28 Broadcom Corporation Feedback of reinterleaved correctly decoded data block to decoder for use in additional channel decoding operations of channel coded word containing data block
KR101133907B1 (ko) * 2007-07-06 2012-04-12 주식회사 코아로직 디인터리브 장치와 방법 및 인터리빙 인덱스 산출장치 및방법과 그 기록매체
WO2009014298A1 (en) * 2007-07-20 2009-01-29 Electronics And Telecommunications Research Institute Address generation apparatus and method of data interleaver/deinterleaver
US7929918B2 (en) 2007-08-13 2011-04-19 Samsung Electronics Co., Ltd. System and method for training the same type of directional antennas that adapts the training sequence length to the number of antennas
JP2009077371A (ja) * 2007-08-30 2009-04-09 Hitachi Communication Technologies Ltd インタリーブ方法、送信機、無線機、および無線通信システム。
US8077693B2 (en) 2007-09-19 2011-12-13 Samsung Electronics Co., Ltd. Resource remapping and regrouping in a wireless communication system
WO2009038408A2 (en) * 2007-09-21 2009-03-26 Lg Electronics Inc. Digital broadcasting system and data processing method
US8549376B1 (en) * 2007-12-13 2013-10-01 Rockwell Collins, Inc. Vector turbo codes
ES2373240T3 (es) 2007-12-20 2012-02-01 Panasonic Corporation Señalización de canal de control usando un campo de señalización común para el formato de transporte y la versión de redundancia.
US8165595B2 (en) 2008-01-25 2012-04-24 Samsung Electronics Co., Ltd. System and method for multi-stage antenna training of beamforming vectors
US8051037B2 (en) 2008-01-25 2011-11-01 Samsung Electronics Co., Ltd. System and method for pseudorandom permutation for interleaving in wireless communications
US8280445B2 (en) * 2008-02-13 2012-10-02 Samsung Electronics Co., Ltd. System and method for antenna training of beamforming vectors by selective use of beam level training
CN101610089B (zh) * 2008-06-17 2013-06-05 中兴通讯股份有限公司 一种第二次交织及解交织的方法和装置
US8478204B2 (en) 2008-07-14 2013-07-02 Samsung Electronics Co., Ltd. System and method for antenna training of beamforming vectors having reuse of directional information
US8219782B2 (en) * 2008-09-18 2012-07-10 Xilinx, Inc. Address generation
JP5356073B2 (ja) * 2009-03-06 2013-12-04 シャープ株式会社 符号化装置、受信装置、無線通信システム、パンクチャパターン選択方法及びそのプログラム
US9130728B2 (en) * 2009-06-16 2015-09-08 Intel Mobile Communications GmbH Reduced contention storage for channel coding
US8495476B2 (en) * 2009-12-17 2013-07-23 Samsung Electronics Co., Ltd System and method for coding and interleaving for short frame support in visible light communication
WO2011111654A1 (ja) * 2010-03-08 2011-09-15 日本電気株式会社 誤り訂正符号復号装置、誤り訂正符号復号方法および誤り訂正符号復号プログラム
US8583993B2 (en) * 2011-06-17 2013-11-12 Lsi Corporation Turbo parallel concatenated convolutional code implementation on multiple-issue processor cores
US20150058704A1 (en) * 2013-08-23 2015-02-26 Sirius Xm Radio Inc. Parameterized interleaver for a multi-rate system
KR102278366B1 (ko) * 2014-11-04 2021-07-19 삼성전자주식회사 통신 시스템에서 인터리빙 방법 및 장치
FR3037746B1 (fr) 2015-06-19 2020-10-02 Inst Mines Telecom Procede de construction d'un entrelaceur pour turbo-encodeur
US10084483B2 (en) 2015-08-05 2018-09-25 Microsoft Technology Licensing, Llc Interleaving information for media data
FR3064138B1 (fr) 2017-03-20 2021-05-07 Orange Procedes et dispositifs de codage a rendement compatible
FR3091093A1 (fr) * 2018-12-20 2020-06-26 Orange Procédé de génération d’un signal mettant en œuvre un turbo-codeur, dispositif et programme d’ordinateur correspondants.
CN112165337B (zh) * 2020-09-30 2024-01-26 电子科技大学 基于线性约束的卷积码随机交织序列交织关系估计方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62190932A (ja) 1986-02-18 1987-08-21 Nippon Telegr & Teleph Corp <Ntt> インタリ−ブ方式
US5237320A (en) * 1986-09-30 1993-08-17 Nec Corporation Radio paging system with different transmission speeds and receiver therefor
DE3882175T2 (de) 1987-07-20 1994-01-27 Ibm Fehlerkorrektur-Kode für einen B-bit-pro-Chip-Speicher mit verminderten Redundanz.
US5063533A (en) * 1989-04-10 1991-11-05 Motorola, Inc. Reconfigurable deinterleaver/interleaver for block oriented data
US5056112A (en) * 1989-07-28 1991-10-08 At&T Bell Laboratories Interleaving in coded modulation for mobile radio
US5159608A (en) * 1991-08-28 1992-10-27 Falconer David D Method and apparatus for using orthogonal coding in a communication system
FR2706054B1 (fr) * 1993-06-02 1995-07-13 Alcatel Mobile Comm France Procédé d'entrelacement d'une séquence d'éléments de données, et dispositif d'entrelacement correspondant.
JP2999110B2 (ja) 1993-12-28 2000-01-17 株式会社ピーエフユー 無線通信方法及び無線通信装置
US5519734A (en) * 1994-08-15 1996-05-21 Lsi Logic Corporation Synchronization arrangement for decoder-de-interleaver
US5822359A (en) 1994-10-17 1998-10-13 Motorola, Inc. Coherent random access channel in a spread-spectrum communication system and method
US5687095A (en) 1994-11-01 1997-11-11 Lucent Technologies Inc. Video transmission rate matching for multimedia communication systems
GB9508885D0 (en) 1995-05-02 1995-06-21 Plessey Semiconductors Ltd Wireless local area networks
WO1996037050A1 (en) 1995-05-15 1996-11-21 Advanced Hardware Architectures, Inc. Reconfigurable interleaver/deinterleaver and address generator for data streams interleaved according to one of a plurality of interleaving schemes
DE19520987A1 (de) 1995-06-08 1996-12-12 Siemens Ag Verfahren zur Terminierung des Trellis bei rekursiven systematischen Faltungscodes
EP0759665B1 (en) * 1995-08-21 2002-07-24 Alcatel Method for interleaving data frames, forward error correcting device and modulator including such a device
US5895398A (en) 1996-02-02 1999-04-20 The Regents Of The University Of California Method of using a clot capture coil
US5699365A (en) * 1996-03-27 1997-12-16 Motorola, Inc. Apparatus and method for adaptive forward error correction in data communications
US5721745A (en) 1996-04-19 1998-02-24 General Electric Company Parallel concatenated tail-biting convolutional code and decoder therefor
US5910182A (en) 1996-05-03 1999-06-08 Ericsson Inc. Data communications systems and methods using interspersed error detection bits
US6023783A (en) 1996-05-15 2000-02-08 California Institute Of Technology Hybrid concatenated codes and iterative decoding
US5859840A (en) 1996-05-31 1999-01-12 Qualcomm Incorporated Spread spectrum communication system which defines channel groups comprising selected channels that are additional to a primary channel and transmits group messages during call set up
KR100223762B1 (ko) * 1996-06-25 1999-10-15 김영환 가변 부호화율 펀츄러
US5978414A (en) 1996-07-03 1999-11-02 Matsushita Electric Industrial Co., Ltd. Transmission rate judging unit
US5996104A (en) * 1996-09-13 1999-11-30 Herzberg; Hanan System for coding system
US5751725A (en) * 1996-10-18 1998-05-12 Qualcomm Incorporated Method and apparatus for determining the rate of received data in a variable rate communication system
EP0848524A1 (fr) 1996-12-10 1998-06-17 Koninklijke Philips Electronics N.V. MAQ à codage perforé en trellis, avec décodage itératif
US5881093A (en) * 1997-02-10 1999-03-09 Motorola, Inc. Method of interleaving a convolutionally coded signal in a spread spectrum communication system
US5983384A (en) 1997-04-21 1999-11-09 General Electric Company Turbo-coding with staged data transmission and processing
KR19990012821A (ko) * 1997-07-31 1999-02-25 홍성용 전자기파 흡수체 조성물과 이의 제조 방법, 전자기파 흡수용도료 조성물과 이의 제조 방법 및 이의 도포 방법
DE69838451T2 (de) 1997-07-30 2008-01-10 Samsung Electronics Co., Ltd., Suwon Verfahren und schaltung zur adaptiven kanalkodierung
US5907582A (en) * 1997-08-11 1999-05-25 Orbital Sciences Corporation System for turbo-coded satellite digital audio broadcasting
DE19736653C1 (de) 1997-08-22 1998-12-10 Siemens Ag Verfahren und Einrichtung zur Abschätzung der Dienstqualität auf Übertragungskanälen in einem digitalen Übertragungssystem
JPH1168734A (ja) 1997-08-25 1999-03-09 Oki Electric Ind Co Ltd インタリーブ装置およびデインタリーブ装置
US6198748B1 (en) * 1997-09-02 2001-03-06 Motorola, Inc. Data transmission system and method
JP3347335B2 (ja) * 1997-11-10 2002-11-20 株式会社エヌ・ティ・ティ・ドコモ インタリービング方法、インタリービング装置、及びインタリーブパターン作成プログラムを記録した記録媒体
US6330672B1 (en) * 1997-12-03 2001-12-11 At&T Corp. Method and apparatus for watermarking digital bitstreams
US6088387A (en) 1997-12-31 2000-07-11 At&T Corp. Multi-channel parallel/serial concatenated convolutional codes and trellis coded modulation encoder/decoder
US6370669B1 (en) 1998-01-23 2002-04-09 Hughes Electronics Corporation Sets of rate-compatible universal turbo codes nearly optimized over various rates and interleaver sizes
US6430722B1 (en) 1998-01-23 2002-08-06 Hughes Electronics Corporation Forward error correction scheme for data channels using universal turbo codes
JP3986150B2 (ja) * 1998-01-27 2007-10-03 興和株式会社 一次元データへの電子透かし
US6339834B1 (en) * 1998-05-28 2002-01-15 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communication Research Centre Interleaving with golden section increments
US6460161B1 (en) 1998-06-01 2002-10-01 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Processing of state histories in Viterbi decoding
US5978365A (en) 1998-07-07 1999-11-02 Orbital Sciences Corporation Communications system handoff operation combining turbo coding and soft handoff techniques
US6347385B1 (en) * 1998-08-03 2002-02-12 Nortel Networks Limited Interleavers for turbo code
KR100373965B1 (ko) * 1998-08-17 2003-02-26 휴우즈 일렉트로닉스 코오포레이션 최적 성능을 갖는 터보 코드 인터리버
JP2000068862A (ja) 1998-08-19 2000-03-03 Fujitsu Ltd 誤り訂正符号化装置
WO2000013323A1 (en) 1998-08-27 2000-03-09 Hughes Electronics Corporation Method for a general turbo code trellis termination
KR100315708B1 (ko) 1998-12-31 2002-02-28 윤종용 이동통신시스템에서터보인코더의펑처링장치및방법
KR100347501B1 (ko) 1999-02-11 2002-08-03 휴우즈 일렉트로닉스 코오포레이션 최적화 레이트-호환가능 터보 엔코딩

Also Published As

Publication number Publication date
EP1046236B1 (en) 2016-02-24
US7657797B2 (en) 2010-02-02
EP2173036A3 (en) 2013-03-06
US7526687B2 (en) 2009-04-28
US20050166125A1 (en) 2005-07-28
US20130061109A1 (en) 2013-03-07
EP1046236A1 (en) 2000-10-25
US20020087923A1 (en) 2002-07-04
KR20010015765A (ko) 2001-02-26
WO2000010257A1 (en) 2000-02-24
US6334197B1 (en) 2001-12-25
US6925587B2 (en) 2005-08-02
JP3453122B2 (ja) 2003-10-06
JP2002523915A (ja) 2002-07-30
US8321725B2 (en) 2012-11-27
US7761750B2 (en) 2010-07-20
US20080059847A1 (en) 2008-03-06
US8671324B2 (en) 2014-03-11
EP2173036B1 (en) 2014-05-14
AU5675499A (en) 2000-03-06
US20080065948A1 (en) 2008-03-13
US20080059727A1 (en) 2008-03-06
EP2173036A2 (en) 2010-04-07

Similar Documents

Publication Publication Date Title
KR100373965B1 (ko) 최적 성능을 갖는 터보 코드 인터리버
CA2353455C (en) Turbo code interleaver using linear congruential sequences
EP1030455B1 (en) Interleaving method, interleaving apparatus, turbo encoding method, and turbo encoder
KR100526512B1 (ko) 이동 통신시스템의 직렬 쇄상 컨볼루션 부호화를 위한 인터리빙장치 및 방법
EP1169777B1 (en) Intra-row permutation for turbocode
EP1926215B1 (en) Parallel concatenated zigzag codes with UMTS turbo interleavers

Legal Events

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