KR100711326B1 - 선형 합동 시퀀스들을 이용한 터보 코드 인터리버 - Google Patents

선형 합동 시퀀스들을 이용한 터보 코드 인터리버 Download PDF

Info

Publication number
KR100711326B1
KR100711326B1 KR1020017006971A KR20017006971A KR100711326B1 KR 100711326 B1 KR100711326 B1 KR 100711326B1 KR 1020017006971 A KR1020017006971 A KR 1020017006971A KR 20017006971 A KR20017006971 A KR 20017006971A KR 100711326 B1 KR100711326 B1 KR 100711326B1
Authority
KR
South Korea
Prior art keywords
interleaver
row
sequence
bit
period
Prior art date
Application number
KR1020017006971A
Other languages
English (en)
Other versions
KR20010080679A (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 KR20010080679A publication Critical patent/KR20010080679A/ko
Application granted granted Critical
Publication of KR100711326B1 publication Critical patent/KR100711326B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • 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/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/275Interleaver wherein the permutation pattern is obtained using a congruential operation of the type y=ax+b modulo c
    • 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
    • H03M13/2764Circuits therefore
    • 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/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

Abstract

선형 합동 시퀀스를 이용하는 터보 코드 인터리버(100)는 터보 코더(10)에서 2차원 인터리버(16)로서 이용될 수 있는데, 상기 터보 코더는 제 1 및 제 2구성요소 인코더(12, 14)를 포함한다. 인터리버(16) 및 제 1인코더(12)는 각각 입력 비트를 수신한다. 제 1인코더912)는 이로부터 출력 심볼(22, 24)을 발생시킨다. 인터리버(16)는 순차적으로 행 단위로 입력 비트(20)를 수신한다. 인터리버(16)내의 선형 합동 시퀀스 순환 알고리즘은 각각의 인터리버(16) 행내의 비트를 의사 랜덤으로 재정렬시키거나 섞는다. 다음에 비트(26)는 열 단위로 순차적으로 인터리버로부터 출력된다. 제 2인코더(14)는 인터리버로부터 인터리빙된 비트를 수신한다. 제 2인코더(14)는 이로부터 출력 심볼(28)을 발생시킨다. 출력 심볼(22, 24)의 두 개의 스트림은 서로 멀티플렉싱되고, 적당히 펀처링된다. 필요에 따라, 선형 합동 순환 시퀀스는 반대로 발생될 수 있다. 또한 필요에 따라, 비트 반전 기술이 인터리버(16)에 이용되어 인터리버(16)의 행을 재배열하거나 섞을 수 있다.

Description

선형 합동 시퀀스들을 이용한 터보 코드 인터리버 {TURBO CODE INTERLEAVER USING LINEAR CONGRUENTIAL SEQUENCES}
본 발명은 통신 시스템의 코딩 분야에 관한 것이며, 특히 터보 코더용 인터리버에 관한 것이다.
디지털 데이터의 전송은 본질적으로 간섭을 받기 쉬우며, 이는 전송된 데이터에 에러를 야기할 수 있다. 에러가 전송된 데이터에 발생되었는지를 가능한 신뢰성 있게 결정하기 위한 에러 검출 방식이 제안되었다. 예를 들어, 패킷으로 데이터를 전송하고 패킷 데이터의 체크섬을 가진 순환 리던던시 검사(CRC) 필드(예를 들어, 16비트 길이)를 각각의 패킷에 추가하는 것이 일반적이다. 수신기가 데이터를 수신할 때, 수신기는 수신된 데이터상의 동일 체크섬을 계산하고 계산 결과가 CRC 필드의 체크섬과 동일한지를 검증한다.
전송된 데이터가 온라인 상에 이용되지 않을 경우, 에러가 검출될 때 에러 데이터의 재전송을 요구하는 것이 가능하다. 그러나, 전송이 온라인 상에서 수행될 경우, 예를 들어 전화 라인, 셀룰러폰, 원격 비디오 시스템 등에서 수행될 경우, 재전송을 요구하는 것은 불가능하다.
컨벌루션 코드(convolutional code)는 전송 중에 에러가 발생되더라도 디지털 데이터 수신기가 전송된 데이터를 정확하게 결정하도록 하기 위하여 도입되었다. 컨벌루션 코드는 전송된 데이터에 리던던시를 삽입하고 전송된 데이터를 패킷에 패킹하는데, 패킷에서 각각의 비트의 값은 시퀀스의 이전 비트에 의존한다. 따라서, 에러가 발생할 때, 수신기는 수신된 데이터에서 가능한 시퀀스를 역 추적함으로써 원래 데이터를 추론할 수 있다.
전송 채널의 성능을 더 향상시키기 위하여, 일부 코딩 기술은 인터리버를 포함하는데, 인터리버는 코딩 중에 패킷 내의 비트 순서를 섞는다. 따라서, 전송 중에 간섭이 일부 인접한 비트들을 훼손시킬 경우, 간섭의 영향은 원래 패킷 전체에 걸쳐 퍼지고 디코딩 프로세스에 의하여 용이하게 극복될 수 있다. 다른 개선 방식은 병렬로 또는 순차적으로 한번 이상 패킷을 인코딩하는 다중-성분 코드(multiple-component code)를 포함할 수 있다. 예를 들어, 적어도 두 개의 컨벌루션 코더를 병렬로 이용하는 에러 교정 방법은 공지되어 있다. 상기와 같은 병렬 인코딩을 일반적으로 터보 코딩(turbo coding)이라고 한다.
다중-성분 코드에서, 최적의 디코딩은 때때로 매우 복잡하며, 온라인 디코딩에 일반적으로 이용될 수 없는 긴 시간 주기를 요구할 수 있다. 반복 디코딩(iterative decoding) 기술이 이러한 문제를 해결하기 위하여 개발되었다. 수신된 비트가 0 인지 1인지를 즉시 결정하기보다는, 수신기는 비트가 1일 확률을 나타내는 다중레벨 스케일상의 소정 값을 각각의 비트에 할당한다. 로그-우도 비(LLR) 확률이라고 하는 공통 스케일은 소정의 범위 내에, 예를 들어 {-32, 31}와 같은 정수로 각각의 비트를 나타낸다. 값 31은 전송된 비트가 0일 가능성이 매우 높다는 것을 나타내며, 값 -32는 전송된 비트가 1일 확률이 매우 높다는 것을 나타낸다. 값 제로는 로직 비트 값이 확정되지 않았을 나타낸다.
다중레벨 스케일 상에 나타나는 데이터를 "소프트 데이터"라고 하며, 반복 디코딩은 일반적인 소프트-인/소프트-아웃(soft-in/soft-out)이다. 즉 디코딩 프로세스는 코드의 제약을 고려하여 비트값에 대한 확률에 대응하는 입력 시퀀스를 수신하고 교정된 확률을 출력으로서 제공한다. 일반적으로, 반복 디코딩을 수행하는 디코더는 수신기에 의하여 판독된 소프트 데이터를 디코딩하기 위하여 이전 반복으로부터의 소프트 데이터를 이용한다. 다중-성분 코드의 반복 디코딩 중에, 디코더는 제 2 코드의 디코딩을 향상시키기 위해 제 1 코드의 디코딩으로부터의 결과를 이용한다. 터보 코딩에서와 같이 병렬 인코더가 이용될 경우, 이를 위하여 두 개의 대응하는 디코더가 병렬로 적절하게 이용될 수 있다. 상기와 같은 반복 디코딩은 소프트 데이터가 전송된 데이터를 정확하게 나타내고 있다고 생각될 때까지 다수 반복들이 수행된다. 1에 가까운 정도를 나타내는 확률(예를 들어, 전술한 스케일 상에서 0과 31사이)을 가지는 이들 비트에 이진수 0이 할당되고 나머지 비트에 이진수 1이 할당된다.
"터보 코딩'은 순방향 에러 교정(FEC) 분야에서 중요한 발전을 나타낸다. 많은 터보 코딩의 변형들이 있지만, 대부분의 터보 코딩은 반복 디코딩을 이용하여 결합되는 인터리빙 단계로 분리된 다중 인코딩 단계를 이용한다. 이러한 결합은 통신 시스템에서 노이즈 공차(tolerance)와 관련하여 이전에는 이용할 수 없었던 성능을 제공한다. 즉, 터보 코딩은 현재의 순방향 에러 교정 기술을 이용하여 이전에는 허용될 수 없었던 비트당 에너지(energy-per-bit) 대 노이즈 전력 스펙트럼 밀도(noise power stectral density)(Eb/No)의 레벨에서 통신이 가능하게 한다.
많은 통신 시스템은 순방향 에러 교정 기술을 이용하며, 따라서 터보 코딩의 이용으로부터 이득을 얻을 수 있다. 예를 들어, 터보 코드는 무선 위성 링크의 성능을 개선시킬 수 있고, 여기서 위성의 제한된 다운링크 전송 전력이 낮은 Eb/No 레벨에서 동작할 수 있는 수신기 시스템을 필요로 한다.
예를 들어, 디지털 셀룰러 및 PCS 전화 시스템과 같은 디지털 무선 통신 시스템 역시 순방향 에러 교정을 이용한다. 예를 들어, 통신 산업 협회는 공중 인터페이스 표준 TIA/EIA 인터림 표준 95 및 예를 들어 IS-95B와 같은 기준들(이하, 통칭으로 IS-95라고 함)을 공표했으며, 이들은 시스템 용량을 증가시키도록 코딩 이득을 제공하기 위하여 컨벌루션 인코딩을 이용하는 디지털 무선 통신 시스템을 정의한다. IS-95 표준을 이용하여 무선 주파수(RF) 신호를 처리하는 시스템 및 방법은 미국특허 5,103,459에 개시되어 있으며, 상기 특허는 본 발명의 양수인에게 양도되었으며 여기에 참조된다.
통신 업계는 코딩 이득을 계속적으로 향상시키기 위해 노력하고 있다. 통상적인 디지털 무선 통신 시스템에서, 터보 코딩을 위한 직렬 인터리버는 합동 랜덤 시퀀스(congruent random sequence)에서 바람직하게 구현될 수 있다는 것이 발견되었다. 균일 랜덤 시퀀스는 선형 합동 순환(linear congruent recursion) 알고리즘(예를 들어, 2 D. Knuth, The Art of Computer Programing(1969)을 참조하라: 선형 합동 순환방법으로 의사 랜덤 수를 생성하는 것을 기술함)을 이용하여 발생될 수 있다는 것은 공지되어 있다. 이차원 인터리버(즉, 행(row) 및 열(column)로 이루어진 정방 데이터 어레이로서 구성된 인터리버)를 이용하는 병렬 터보 코더는 일반적으로 코딩 이득에 있어서 일차원 인터리버(즉, 데이터가 단일의 선형 어레이로서 구성된 인터리버)를 가지는 병렬 터보 코더를 성능에서 능가한다.
터보 코더의 성능을 더 향상시키는 것이 바람직하다. 또한, 터보 코더는 컨벌루션 코더보다 구현하기가 더 복잡하기 때문에, 덜 복잡하게 구현되는 터보 코더를 제공하는 것이 바람직하다. 따라서, 다중 선형 합동 시퀀스를 이용하는 덜 복합한 이차원 인터리버가 요구된다.
본 발명은 다중 선형 합동 시퀀스들을 이용하는 덜 복합한 이차원 인터리버에 관한 것이다. 따라서, 본 발명의 일 특징에 따르면, 터보 코더는 다수의 입력 비트를 연속적으로 수신하고 이로부터 다수의 제 1출력 심볼을 발생시키는 제 1코더; 상기 다수의 입력 비트를 연속적으로 수신하도록 구성되며 행 및 열으로 이루어진 매트릭스에 배치된 다수의 비트 저장 위치를 포함하는 인터리버 및 상기 인터리버의 각각의 행내의 비트를 섞는(shuffling) 시퀀스를 의사 랜덤으로 발생시키도록 구성된 선형 합동 시퀀스 생성기; 및 상기 인터리버로부터 연속적으로 다수의 인터리빙된 비트를 수신하고 이로부터 다수의 제 2출력 심볼을 발생시키도록 구성된 제 2코더를 포함한다.
본 발명의 다른 특징에 따르면, 데이터 원소를 인터리빙하는 방법은 데이터 원소를 순차적으로 행 단위로 비트 저장 위치 매트릭스에 기록하는 단계; 선형 합동 시퀀스 순환에 따라 비트 저장 위치 매트릭스의 각각의 행 내에 데이터 원소를 의사 랜덤으로 재정렬시키는 단계; 및 상기 비트 저장 위치 매트릭스로부터 데이터 원소를 열 단위로 순차적으로 판독하는 단계를 포함한다.
본 발명의 다른 특징에서, 인터리버는 데이터 원소를 순차적으로 행 단위로 비트 저장 위치 매트릭스에 기록하는 수단; 선형 합동 시퀀스 순환에 따라 상기 비트 저장 위치 매트릭스의 각각의 행 내에 상기 데이터 원소를 의사 랜덤으로 재정렬하는 수단; 및 상기 비트 저장 위치 매트릭스로부터 데이터 원소를 열 단위로 순차적으로 판독하는 수단을 포함한다.
도 1은 병렬 연결된 터보 코더의 블록도이다.
도 2는 도 1의 병렬 연결된 터보 코더에 이용될 수 있는 인터리버의 블록도이다.
도 3은 도 2의 인터리버와 결합하여 이용될 수 있는 인코더의 블록도이다.
일 실시예에 따르면, 도 1에 도시된 바와 같이, 병렬 연결된 터보 인코더(10) 또는 터보 코더(10)는 제 1 및 제 2코더(12, 14), 인터리버(16) 및 멀티플렉서(18)를 포함한다. 제 1코더(12) 및 인터리버(16)는 인코더 입력 데이터(20)를 수신하도록 구성되고, 상기 입력 데이터는 일반적으로 사용자 정보 또는 제어 데이터이다. 제 1코더(12)는 일반적으로 원래 입력 비트(20)의 사본인 구조적인 심볼(systematic symbol)(22)과 패리티 심볼(24)을 출력한다. 제 2코더(14)는 인터리버(16)의 인터리빙된 출력(16)을 수신하고 제 2세트의 패리티 심볼(24)을 출력하도록 구성된다. 제 2코더(14)에 의하여 발생된 구조적인 심볼(도시안됨)은 억제되며, 제 1 및 제 2코더(12, 14)의 나머지 각각의 출력(22, 24, 28)은 멀티플렉서(18)에 의하여 출력 데이터 스트림(30)으로 멀티플렉싱된다.
코딩 레이트를 감소시키기 위하여 추가의 코더와 인터리버 쌍이 병렬로 추가되어, 향상된 순방향 에러 교정을 제공하도록 할 수 있다. 대안적으로, 구조적인 심볼(22) 및/또는 패리티 심볼(24)중 일부는 펑처링되어(punctured) 코딩 레이트를 증가시키고 개선된 스펙트럼 효율을 제공할 수 있다.
제 1 및 제 2코더(12, 14)는 블록 코더 및 컨벌루션 코더를 포함하여 공지된 여러 형태의 코더일 수 있다. 블록 코더와 컨벌루션 코더의 예는 Bernard Sklar, Digital Communications 245-380(1988)에 개시되어 있으며, 본 명세서에서 참조된다. 제 1 및 제 2코더(12, 14)는 예를 들어 K=4와 같이 상대적으로 작은 구속장(constraint length, K)을 가지고 있는 컨벌루션 코더이어서, 덜 복잡한데, 이는 작은 구속장은 대응하는 디코더(도시안됨)의 복잡성을 감소시키기 때문이다. 제 1 및 제 2코더(12, 14)는 또한 바람직하게 공지된 순환적인 구조적 컨벌루션(RSC) 인코더일 수 있다. 인터리버(16)는 바람직하게 이하에 설명되는 바와 같이 이차원 인터리버이다.
일반적으로, 제 1 및 제 2코더(12, 14)는 수신된 각각의 비트(20)에 대하여 두 개의 패리티 심볼(24, 28)을 출력하여, 각각의 코더(12, 14)에 대하여 코딩 레이트 R=1/2를 산출한다. 그럼에도 불구하고, 터보 코더(10)에 대한 전체 코딩 레이트는 R=1/3인데, 이는 제 2코더(14)로부터의 구조적인 비트가 펑처링되기 때문이다.
도 2에 도시된 바와 같이, 일 실시예에 따른 이차원(2-D), 선형 합동 시퀀스(LCS) 인터리버(100)는 4개의 룩업 테이블(LUT)(102, 104, 106, 108), 7개의 2-입력 멀티플렉서(MUX)(110, 112, 114, 116, 118, 120, 122), R-입력 MUX(124), 행 카운터(126), 제 1 및 제 2 비트-반전 로직 블록(128, 130), 어드레스 확인(validation) 모듈(132), 다수의 열 인덱스 또는 행 레지스터(R)(134, 136, 138, 140)(간단하게 하기 위해 4개의 레지스터만 도시함), 열 인덱스 리세트를 플래킹하는 레지스터(142), 제 1과 제 2 k-비트 멀티플라이어(144, 146), 및 4개의 k-비트 가산기(148, 150, 152, 154)를 포함한다. LCS 순환 생성기(156)는 점선으로 도시된다. 당업자가 이해하고 있는 바와 같이, 인터리버(100)는 도 1의 병렬 연결 터보 코더에서 이용될 수 있거나, 대안적으로 인터리버(100)는 직렬 연결 터보 코더에 이용될 수 있는데, 여기서 인터리버(100)에 외부 및 내부 성분 코드가 배치된다.
인터리버(100)의 사이즈는 N인데, 이는 2m과 같거나 이보다 적으며 그리고 2m-1보다는 크다. 행(row)의 수(R)와 열(column)의 수(C)의 곱은 2m이다. 열의 수(C)는 2k이다. 즉, k=log2C이다. 행의 수(R)는 2r이다. 즉, r=log2R이다.
바람직하게 어드레스 확인 모듈(132)은 시프트 레지스터와 가산기로 구성된 이산 게이트 로직으로서 구현될 수 있다. 어드레스 확인 모듈(132)은 X입력이 열 수C와 Y입력(행 인덱스)의 곱에, 예를 들어 시프트와 가산 가능을 수행하는 Z입력(컬럼 인덱스)을 합한 것보다 적은 지를 체크한다. 어드레스 확인 모듈(132)은 어드레스가 무효인지를, 즉 어드레스가 버려져야 하는 2의 거듭제곱(power)을 초과하는 비트를 가지고 있는지(즉, 인터리버 사이즈가 연속적인 2의 거듭제곱사이에 있는지)를 나타내는 플래그를 발생시킨다.
LCS 순환 생성기(156)는 이하에 설명되는 바와 같이 4개의 LUT(102, 104, 106, 108)에 대한 입력에서 행 수 값을 수신하고 열 인덱스(어드레스 확인 모듈(132)에 대한 Z입력)를 발생시킴으로써 인터리버(100)의 각각의 행에 포함된 비트값을 의사 랜덤으로 재배열하거나 섞는다. 당업자는 도 1에 도시된 것과 같은 병렬 연결된 터보 코더에서 데이터 원소의 물리적 재배열이 제 2인코더에 의하여 어드레스된 판독에 따라 의사 랜덤으로 발생된 LCS를 이용하여 회피될 수 있다는 것을 이해할 것이다. 제 1과 제 2비트-반전 로직 블록(128, 130)은 이하에 설명되고 공지된 바와 같이 미리 정의된 비트 반전 규칙에 따라 인터리버(100)내의 행을 재배열하거나 또는 섞는다.
LUT(102, 104, 106, 108)는 공지된 저장 매체로서 구현될 수 있다. 제 1 LUT(102)는 계수c의 값을 저장하기 위하여 이용된다. 제 2 LUT(104)는 계수a의 값을 저장하기 위하여 이용된다. 제 3 LUT(106)는 계수a의 계수b승 값을 저장하기 위하여 이용된다. 제4 LUT(108)는 x(-1) 값을 저장하기 위해 이용된다. 각각의 LUT(102, 104, 106, 108)의 사이즈는 r×k비트이다. 인터리버(100)에 대한 전체 메모리 요구조건은 레지스터(134, 136, 138, 140)에 대하여 4r×k비트 더하기 r×k레지스터 비트이다.
레지스터(142)는 행 번호를 지정하는 비트값을 수신하는데, 이는 처음에 R-1로 설정된다. 각각의 프로세스 사이클에서, 레지스터(142)는 열 번호를 지정하는 비트값을 출력하는데, 이는 처음에 제로로 설정되지 않는다. 레지스터(142)는 모든 행들에 걸쳐 행 번호 사이클들 마다 열 인덱스를 재설정하는 역할을 한다.
각각의 프로세스 사이클에서, 입력 MUX(110)는 런백워드(RunBackward) 플래그가 세트되었는지에 따라 1 또는 -1의 값을 발생시킨다. 상기 값은 가산기(148)에 제공되는데, 상기 가산기는 넥스트행(NextRow)로 표시된 비트값에 상기 값을 가산한다. 이에 의한 합은 행 카운터(126)의 데이터 입력에 제공된다. 1의 값은 행 카운터(126)의 제 2입력에 제공된다. 행 카운터(126)는 행 값(레지스터(142)에 R-1로서 처음에 저장된 값)을 발생시키고, 이는 제 2비트 반전 로직 블록(130)에 제공된다. 상기 행 값은 또한 각각의 LUT(102, 104, 106, 108)에 제공된다. 상기 행 값은 또한 가산기(150)에 제공되는데, 상기 가산기는 상기 행 값에 값 1에 가산하고 이에 의한 합을 제 1비트 반전 로직 블록(128)에 제공한다. 상기 합은 또한 MUX(112)의 제 1입력에 제공된다.
각각의 프로세스 사이클에서, 제 1비트 반전 로직 블록(128)은 MUX(114)의 제 1입력에 소정 값을 제공한다. 제 2비트 반전 로직 블록(130)은 MUX(114)의 제 2입력 및 어드레스 확인 모듈(132)의 Y입력에 행 인덱스 값을 제공한다. 어드레스 확인 모듈(132)은 X입력에서 값(N)을 수신한다. 어드레스 확인 모듈(132)은 Z입력에 저장된 계수들을 기초로 소정 값을 수신한다. LCS 어드레스 확인 모듈(132)은 C 및 Y-입력 값의 곱을 계산하고, 그 곱을 Z-입력 값에 가산하고 그리고 그 결과가 X-입력 값N 보다 크거나 같은지를 체크한다. 계산된 값이 N보다 크거나 같으면, 어드레스 확인 모듈(132)은 값 1을 출력한다. 그렇지 않으면, 출력 값은 0이다. 출력 값은 Addr_GT_N으로 표시된 플래그인데, 이는 1로 설정될 때, 인터리버 사이즈가 연속적인 2의 거듭제곱 사이에 있고 2의 거듭제곱 이상의 초과 비트들이 제거되도록 한다는 것을 의미한다.
Addr_GT_N 값은 MUX(112, 114, 120, 122)에 선택기 입력으로서 제공된다. MUX(112)는 만약 Addr_GT_N 값이 1로 설정될 경우 제 1입력을 선택한다. MUX(112)에서 출력되는 선택된 입력은 인터리빙된 NextRow값이다. MUX(114)는 만약 Addr_GT_N 값이 1로 설정될 경우 제 1입력을 선택한다. MUX(114)에서 출력되는 선택된 입력은 마지막 행 인덱스 값을 나타낸다.
LCS 순환 생성은 다음과 같이 수행된다. 각각의 프로세스 사이클에서, 계수 c를 나타내는 k-비트값은 제 1 LUT(102)로부터 데이터 경로 k-비트 가산기(152)에 전달된다. 값 a는 제 2 LUT(104)로부터 MUX(116)의 제 1입력에 전달된다. a의 b승을 나타내는 값은 제 3 LUT(106)로부터 MUX(116)의 제 2입력에 전달된다. MUX(116)은 선택기 입력에서 Runbackward 플래그를 수신한다. 만약 Runbackward 값이 1이면, MUX(116)은 제 2입력을 선택하고 선택된 값(k-비트 값)을 멀티플라이어(144)에 제공한다. 그렇지 않으면, MUX(116)는 제 1입력(k-비트 값)을 멀티플라이어(144)에 제공한다. 값 x(-1)는 제 4 LUT(108)에서 MUX(118)의 제 1입력으로 전달된다. MUX(118)는 MUX(124)로부터 출력된 k-비트값을 제 2입력에서 수신한다. MUX(118)는 선택기 인덱스에서 열 인덱스 값을 수신한다. 열 인덱스 값은 처음에 제로로 설정되지 않는다. 열 인덱스 값이 1이면, MUX(118)는 제 2입력을 선택한다. 그렇지 않으면, MUX(118)는 제 1입력을 선택한다. 선택된 입력 값, k-비트값은 멀티플라이어(144)에 제공된다. 멀티플라이어(144)로부터의 곱은 k-비트 가산기(152)에 제공된다. 바람직하게, 데이터 경로 k-비트 가산기(152)는 공지된 바와 같이 프로그램가능한 가산기/감산기이다. 인터리버(100)가 역방향으로 진행되면, 가산기(152)는 값c를 감산한다.
k-비트 가산기(152)는 각각의 프로세스 사이클을 갖는 출력 값을 어드레스 확인 모듈(132)의 Z입력에 제공한다. 가산기(152)의 출력은 또한 MUX(120)의 제 1입력 및 제 1 내지 R-1번째 행 레지스터(136, 138, 140) 각각에 제공된다. 가산기(152)의 출력은 또한 MUX(122)의 제 1입력에 k-비트값으로서 제공된다.
MUX(120)은 k-비트 가산기(154)로부터 제 2입력 값을 수신한다. MUX(120)의 선택기 입력이 1로 설정되면, MUX(120)은 제 1입력을 선택한다. 그렇지 않으면, MUX(120)은 제 2입력을 선택한다. 선택된 입력은 0 번째 행 레지스터(134)에 제공된다. 각각의 행 레지스터(134, 136, 138, 140)는 MUX(124)의 각각의 입력에 출력 값을 제공한다. 또한, 0 번째 행 레지스터(134)의 출력 값은 멀티플라이어(146)에 제공된다. MUX(124)는 선택기 입력에서 행 값(행 카운터(126)의 출력)을 수신한다. MUX(124)에 의하여 선택된 행-레지스터 입력은 선택기 입력에서의 행 값에 의존한다. 따라서, 각각의 행 레지스터(134, 136, 138, 140)는 행 값이 각각의 행 레지스터 번호와 동일할 경우 업데이트되며, 0 번째 행 레지스터(134)는 또한 플래그 Addr_GT_N이 제로일 때 인에이블링된다.
R=0에 대한 k-비트 초기 입력값b는 멀티플라이어(146)에 제공된다. 멀티플라이어(146)는 또한 0 번째 행 레지스터(134)로부터 출력된 값을 수신한다. 멀티플라이어(146)는 두 개의 수신된 값을 서로 곱하고 그 곱을 k-비트 가산기(154)에 제공한다. 데이터 경로 k-비트 가산기(154)는 또한 R=0에 대한 초기 입력값을 수신한다. 바람직하게, 데이터 경로 k-비트 가산기(154)는 공지된 프로그램가능한 가산기/감산기이다. 인터리버(100)가 역방향으로 진행할 때, 가산기(154)는 초기 값c를 감산한다. 가산기(154)는 두 개의 수신된 값을 합산(또는 프로그램에 따라, 감산)한다. 합산된, k-비트값은 MUX(122)의 제 2입력에 제공된다.
MUX(122)는 그의 선택기 입력이 1로 설정되면 제 1입력을 선택한다. 그렇지 않으면, MUX(122)는 제 2입력을 선택한다. MUX(122)는 최종 열 인덱스 값으로서 선택된 입력을 출력된다. 다음 비트값에 대한 어드레스는 R과 MUX(122)로부터 출력된 최종 행 인덱스 값의 곱이며, 이는 MUX(114)로부터 출력된 최종 열 인덱스 값과 합산된다.
일 실시예에서 주기 M을 가진 LCS는 다음 항등식에 따라 순환적으로 발생된다.
x(n+1) = (ax(n)+c)mod M
여기서 정수 a, c 및 M은 다음 3가지 조건을 만족한다: (1) c는 M에 대하여 서로 소(prime, 素)이여야 한다. (2) a-1은 p의 배수이어야 하는데, 여기서 p는 M을 나누는 어떤 소수이다. M이 4의 배수일 때, a-1은 4의 배수이어야 한다. (3) x(0)는 임의의 정수일 수 있는 시드값(seed value)이다. 용이하게 실행하기 위하여, M은 바람직하게 2의 거듭제곱이 되도록 선택될 수 있다. 따라서, a는 4p+1의 형태이어야 하며, c는 임의의 홀수로서 취해질 수 있다. x(0)는 위에서 초기 조건을 나타내기 위하여 이용되었지만, x(-1)이 도 2와 관련하여 설명된 실시예에서 초기 조건을 나타내기 위하여 이용된다. 다른 수가 이용될 수 있다.
일 실시예에 따른 2-D, LCS 인터리버는 다음과 같이 특정된다: 인터리빙 사이즈를 K=2N으로 놓으면, 인터리버는 R행 및 C컬럼을 가진 정방 매트릭스로서 지정되며, 여기서 R 및 C는 2의 거듭제곱으로 주어진다. 인터리빙될 데이터는 행 단위로 매트릭스 행에 기록된다. 데이터의 행은 먼저 임의의 통상적인 인터리빙 규칙에 따라 치환(즉, 인터리빙)된다. 바람직하게, 데이터의 행은 행 인덱스에 적용되는 비트 반전 규칙에 따라 치환된다. 각각의 행 내에서, 열(즉, 데이터 원소, 각각의 열은 행당 하나의 데이터 원소를 가짐)은 결합된 LCS에 의하여 지정된 규칙에 따라 치환된다. 두 개의 다른 행과 결합된 LCS들은 바람직하게 상이하지만, 선택적으로 동일할 수 있다. 모든 행을 치환한 후에, 데이터는 열 단위 형태로 판독되어 인터리빙된 시퀀스를 발생시키도록 한다. 당업자는 2N이하이고 2N-1이상인 길이를 가진 인터리버는 길이 2N의 인터리버로부터 무효 어드레스를 삭제함으로써 발생될 수 있다는 것을 알 수 있다.
일 실시예에서, 2-D, LCS 인터리버는 다음 규정을 포함한다: 인터리버 사이즈는 32(즉, N=5)이며, 데이터 어레이는 {d(0), d(1), d(2),...d(31)}로서 정의된다. 인터리버는 4개의 행을 가지며 행마다 8개의 원소를 가진 어레이로서 형성된다. 데이터 원소는 다음 방식으로 행 단위로 채워진다.
Figure 112001013289615-pct00001
이진수(00, 01, 10, 11)의 행 인덱스는 바람직하게 비트 반전될 수 있으며(즉, 00, 10, 01, 11), 행은 이에 따라 치환되고 다음을 얻는다.
Figure 112001013289615-pct00002
비트 반전은 미리 설정된 비트 반전 알고리즘에 따라 인터리버의 행을 섞는다. 비트 반전 알고리즘의 이용은 인터리버의 행사이에 원하는 시간 간격을 제공한다. 그럼에도 불구하고, 비트 반전은 인터리버의 구현에 필요치 않다.
특정 실시예에서, 치환 LCS는 다음 식에 따라 발생된다:
Figure 112001013289615-pct00003
치환 패턴(permutation pattern)은 4개의 행에 대하여 {3, 6, 5, 0, 7, 2, 1, 4}, {0, 5, 2, 7, 4, 1, 6, 3}, (4, 7, 6, 1, 0, 3, 2, 5} 및 {7, 2, 5, 0, 3, 6, 1, 4}로 주어진다. 따라서, 열 치환을 적용한 후에, 제 1행은
(d(3) d(6) d(5) d(0) d(7) d(2) d(1) d(4))가 되고,
제 2행은
(d(16) d(21) d(18) d(23) d(20) d(17) d(22) d(19))가 되고,
제 3행은
{d(12) d(15) d(14) d(9) d(8) d(11) d(10) d(13)}이 되고, 그리고
제 4행은
(d(31) d(26) d(29) d(24) d(27) d(30) d(25) d(28))이 된다.
모든 열이 그들의 각각의 행 내에서 치환된 후에, 인터리빙된 데이터 매트릭스는 다음 형태를 가진다:
Figure 112001013289615-pct00004
인터리빙된 매트릭스의 데이터는 열단위로 판독되어 다음의 인터리빙된 시퀀스를 형성한다: {d(3), d(16), d(12), d(31), d(6), d(21), d(15), d(26), d(5), d(18), d(14),...,d(11), d(30), d(1), d(22), d(10), d(25), d(4), d(19), d(13), d(28)}. 만약 길이 30의 인터리버가 요구되면, 전술한 바와 같이 발생된 인터리버는 데이터 원소d(30) 및 d(31)를 제거함으로써 단축될 수 있고, 이는 다음의 인터리빙된 시퀀스를 형성한다: {d(3), d(16), d(12),
Figure 112004056990197-pct00005
, d(6), d(21), d(15), d(26), d(5), d(18), d(14),...,d(11),
Figure 112004056990197-pct00006
, d(1), d(22), d(10), d(25), d(4), d(19), d(13), d(28)}.
인터리버 구성에 이용된 LCS는 터보 코딩에서 MAP 디코더와 최적으로 사용되기 위하여 필요에 따라 순방향 또는 역방향을 발생될 수 있다. 일 실시예에서, 역방향 시퀀스 발생은 다음 식으로 주어진다.
x(n) = (aβx(n+1)-c)modM,
여기서,
Figure 112001013289615-pct00007
이다.
상기 식에 사용되는 항목β는 도 2의 실시예와 관련하여 설명된 계수b를 나타낸다.
따라서, LCS의 생생은 각각의 인터리버가 3R 파라미터에 의하여 고유하게 특정되어 한정될 것을 요구하는데, 여기서 R은 행의 수이다. 상대적으로 짧은 log2(C)xlog2(C) 멀티플라이어가 요구된다. 모듈로 연산 때문에, 비트 위치 log2(C)이상의 비트를 발생시킬 필요는 없다. 한 세트의 R레지스터가 R 합동 시퀀스의 중간 결과를 유지하기 위하여 요구된다.
각각의 행에 대한 여러 파라미터 x(0), a 및 b에 대하여, 치환 시퀀스에 대하여 여러 가지 많은 가능성이 존재한다. 특정 터보 코더와 이용하기 위한 인터리버 파라미터를 최적화하도록 서치가 수행되는 것이 바람직하다.
도 3에서, 일 실시예에 따른 구성요소 인코더(constituent encoder)(200)는 CDMA 디지털 무선 통신 시스템에서 이용되는 특정 터보 코드에 대하여 최적화된다. 인코더(200)는 7개의 모듈로-2 가산기(202, 204, 206, 208, 210, 212, 214) 및 3개의 비트 위치(216, 218, 220)를 포함한다. 비트 위치(216, 218, 220)는 3-비트 레지스터, 또는 선택적으로 3개의 1-비트 레지스터로서 구현될 수 있다. 모듈로-2 가산기(202, 204, 206, 208, 210, 212, 214)는 정확하게 비트 위치(216, 218, 220)에 결합되어 원하는 세트의 피드백 탭을 형성하도록 한다. 따라서, 가산기(202)는 입력 비트를 수신하도록 구성된다. 가산기(202)는 또한 비트 위치(216) 및 가산기(204, 206)에 연결된다. 비트 위치(216)는 비트 위치(218) 및 가산기(204, 206)에 연결된다. 비트 위치(218)는 비트 위치(220) 및 가산기(208, 210)에 연결된다. 가산기(210)는 가산기(202)에 연결된다. 가산기(204)는 가산기(212)에 연결된다. 가산기(206)는 가산기(208)에 연결된다. 가산기(208)는 가산기(214)에 연결된다. 비트 위치(220)는 가산기(210, 214, 212)에 연결된다. 가산기(212, 214)는 각각 제 1 및 제 2심볼을 출력하도록 구성된다.
에러 실행(error performance)은 디코더(도시안됨)에서의 에러 이벤트의 입력 및 출력 가중치에 의하여 특징화될 수 있다는 것이 공지되어 있다. 예를 들어, S. Benedeto & G. Montorsi Unveiling Turbo Codes: Some Results on Parallel Concatenated Coding Schems, 42IEEE Trans. Info, Theory 409-28(Mar.1996) 참조. 에러 이벤트의 입력 가중치는 비트 에러 수인 반면, 에러 이벤트의 출력 가중치는 코드 심볼 에러의 수이다. 입력 가중치1인 에러 이벤트는 모두 0인 상태로부터 발산하며 다시 통합되지 않는다(상기 1은 시프트 레지스터에서 영원히 사이클링되어, 진행됨에 따라 점점 더 출력 가중치를 축적한다. 이는 인코더의 순환 또는 피드백 부분 때문이다. 이러한 구조 때문에, 높은 신호 대 노이즈 비(SNR)에서 터보 코드의 성능은 입력 가중치 2를 가진 출력 에러 이벤트에 의하여 좌우된다는 것을 알 수 있다(위의 문헌을 참조하라). 터보 코드 에러 플로어(floor)는 소위 유효 자유 거리 점근선(effective free distance aymptote)을 이용하여 정확하게 예측될 수 있다. 유효 자유 거리는 입력 가중치 2의 모든 에러 이벤트의 최소 출력 가중치이다. 길이가 짧은 입력 가중치 2 에러 이벤트는 일반적으로 최소 거리 에러 이벤트를 발생시킨다. 도 3의 인코더(200)에 대하여, 피드백 다항식은 1+D2+D3이며, 모든 가능한 입력 가중치 2 에러 이벤트는 Dk(1+D7j)형태이며, 여기서 j=1, 2, 3...이고 k는 범위 0,...,K-7j(K는 인터리버 사이즈로 가정) 내의 임의의 시프트이다. 이는 당업자가 이해하는 바와 같이, 구성요소 인코더(200)의 격자(trellis)를 검사함으로써 쉽게 검증될 수 있다.
도 3의 실시예에 대한 인터리버 사이즈는 K로 표시되지만, 도 2의 실시예에 대한 인터리버 사이즈는 N으로 표시된다. 당업자는 사용한 문자가 사용되는 것이 중요하지 않다는 것을 알 수 있다.
예를 들어, Dk(1+D7)의 에러 패턴이 제 1디코더의 최소 거리 에러 이벤트 출력을 발생시킨다고 가정한다. 터보 인터리버는 두 개의 위치(Dn, Dm)에 두 개의 에러(Dk, Dk+7)를 맵핑한다. 만약 [m-n]=7 또는 임의의 7의 배수이면, 제 2디코더의 낮은 거리 에러 이벤트 출력이 발생할 것이다. 터보 인터리버의 기본 목적은 상기와 같은 맵핑이 발생하는 것을 방지하는 것이다. 즉, 인터리버는 바람직하게 제 2치수에서 많은 양의 출력 가중치가 발생되는 비트의 집단으로 제 1치수의 가중치 에러 이벤트를 낮추는 경향이 있는 비트 집단을 맵핑해야 한다. 따라서, 바람직한 인터리버 설계 방법은 인덱스(k, k+7j)에 위치한 비트 쌍이, 특히 더 작은 값이 j 및 t를 중심으로, 인덱스(s, s+7t)에 위치한 비트 쌍으로 맵핑되는 것을 방지하도록 하는 것이다. 상기와 같은 입력 에러 이벤트는 이하의 표1에 리스트되어 있다. 각각의 이벤트에 대하여, 제 1성분 코드의 출력 패리티 가중치는 IS-95에서 지정된 바와 같이 레이트 1/2, 1/3 및 1/4 순방향 링크 터보 코드에 대한 적당한 펀처링 패턴을 이용하여 리스트되어 있다.
표 1. 입력 가중치 2 에러 이벤트
Figure 112001013289615-pct00008
주어진 인터리버가 Dk1(1+D7)→Dk2(1+D7) 형태의 입력 가중치 2→2맵핑을 포함하면, 이에 의한 에러 이벤트의 합성 출력 가중치는 레이트 1/2터보 코드에 대하여 2+3+3=8이 될 것이다. 이전 계산에서, 구조적인 비트(2)의 가중치는 두 개의 인코더(3 및 3)으로부터의 각각의 패리티 가중치와 합산된다. 유사하게, 인터리버가 Dk1(1+D7)→Dk2(1+D14) 형태의 입력 가중치 2→2맵핑을 포함하면, 이에 의한 에러 이벤트의 합성 출력 가중치는 레이트 1/2터보 코드에 대하여 2+3+6=11 또는 레이트 1/3터보 코드에 대하여 2+6+10=18이 될 것이다.
또한, 낮은 구성요소 출력 가중치의 입력 가중치 4에러 이벤트가 제 2치수에서 낮은 출력 가중치의 두 개의 입력 가중치 2 에러 이벤트로 맵핑될 수 있는 것이 가능하다. 상기와 같은 맵핑은 4→{2, 2}로 표시된다. 입력 가중치4의 구성요소 에러 이벤트에 대한 폐쇄 형태의 솔루션이 존재하지 않지만, 다음 표는 구성요소 인코더(200)에 대한 낮은 출력 가중치 에러 이벤트의 일부를 포함하며, 구성요소 인코더(200)는 IS-95로부터의 공중 인터페이스를 이용하여 CDMA 디지털 무선 통신 시스템에서 순방향 링크 터보 코드를 위한 제 1구성요소 인코더로서 이용된다.
표 2: 입력 가중치 4 에러 이벤트
Figure 112001013289615-pct00009
예를 들어, 인터리버가 Dk1(1+D3+D4+D5)→{Dk2(1+D7)Dk3(1+D7)} 형태의 입력 가중치 4→{2, 2}맵핑을 포함하면, 이에 의한 에러 이벤트의 합성 출력 가중치는 레이트 1/2터보 코드에 대하여 4+2+3+3=12가 될 것이다. 이러한 합성 에러 이벤트는 맵핑 Dk1(1+D7)→Dk2(1+D14)에 의한 에러 이벤트 보다 나쁘지 않은데, 이는 합성 출력 가중치11을 가진다. 따라서, 일차 설계 목표는 상기 설명한 형태의 나쁜 맵핑(bad mapping)이 회피되거나 최소화되도록 인터리버의 파라미터를 최적화하는 것이다. 이상적으로, 가장 낮은 합성 출력 가중치를 가진 나쁜 맵핑은 가장 중요하게 회피되거나 최소화되어야 하는 맵핑이다. 특정 사이즈(예를 들어, 1530)에 대한 인터리버를 설계할 때, 두 형태의 맵핑(즉, 가중치 2→2 및 가중치 4→{2, 2})을 최소화하도록 인터리버 파라미터를 최적화하는 것이 가능하다. 이러한 방법은 특정 사이즈에 대하여 최적의 인터리버를 형성하도록 한다. 2N-1 보다 큰 사이즈로 강하게 펀처될 수 있는 사이즈 2N의 인터리버(이를 "펀처형(punture-friendly)" 인터리버라고 함)를 설계할 때, 가중치 4→{2, 2} 맵핑에 대한 최적화는 달성하기가 더 어려울 수 있다는 것이 지적되어야 한다.
도 3의 실시예에 따라 2-D, LCS 인터리버로부터 사이즈 2N인 펀처형 인터리버를 얻기 위해 서치가 수행되었다. 다음의 표 3은 상기 서치의 초기 결과를 포함한다. 각각의 인터리버 사이즈에 대하여, 이용된 행 수 및 이용된 열 수는 x(0), a 및 c 계수와 함께 지정된다. 구현을 간단하게 하고 효율적으로 하기 위하여, 32개의 행이모든 인터리버에 이용된다.
표 3: 2-D LCS 인터리버 계수
삭제
Figure 112001013289615-pct00010



표 3: 2-D LCS 인터리버 계수(계속)
Figure 112001013289615-pct00011
선택적인 실시예에서, 계수a는 1로 설정되며, 새로운 서치는 2-D, LCS 인터리버로부터 사이즈2N인 펀처형 인터리버를 얻기 위해 수행된다. 순방향 및 역방향 LCS 순환 등식은 각각 다음과 같이 간단해진다.
x(n+1) = (x(n)+c) mod M 및 x(n) = (x(n+1)-c) mod M.
이하의 표4 는 상기 서치의 초기 결과를 포함한다. 구현의 간략성과 효율성을 위해, 32개의 행이 모든 인터리버에 대하여 이용되었다. 표4의 결과로부터 당업자는 모든 LCS 순환에서 a를 1로 설정하는 것은 최종 인터리버의 품질에 악영향을 주지 않는 다는 것을 알 수 있다. 또한, a를 1로 설정하는 간단화로부터 달성되는 복잡성에 대한 이득은 상당하다. 예를 들어, 도 2의 실시예에 설명된 제 2 및 제 3 LUT(a 및 ab의 값을 저장하기 위하여 이용된 LUT)는 요구되지 않는다. 도 2의 실시예에 설명된 k-비트 멀티플라이어 역시 요구되지 않는다. 다음의 표4로부터 알 수 있는 바와 같이, 초기 조건x(-1) 및 부가 상수c만이 인터리버의 각각의 행에 대하여 지정된다. 큰 사이즈의 인터리버에 대한 계수는 초기 서치 결과만을 나타내는 표에 포함되지 않는데, 이들은 본 발명의 출원시 이용될 수 없었기 때문이다.
표 4: 2-D LCS 인터리버 계수
삭제
Figure 112001013289615-pct00012
이와 같이, 선형 합동 시퀀스를 이용하는 신규하고 개선된 터보 코드 인터리버가 설명되었다. 당업자는 여기서 설명된 실시예가 셀룰러 전화 시스템을 기초로 설명하였지만, 본 발명의 특징은 예를 들어 위성 통신 시스템을 포함한 모든 형태의 통신 시스템에 동일하게 적용될 수 있다는 것을 이해할 것이다. 당업자는 여기에 설명된 실시예가 데이터 또는 음성 통신을 인코딩하기 위하여 이용될 수 있음을 이해할 것이다. 상기 설명을 통하여 인용되는 데이터, 지시, 명령, 정보, 신호, 비트, 심볼 및 칩은 바람직하게 전압, 전류, 전자기파, 자기장 또는 입자, 광학필드 또는 입자 또는 이들의 결합에 의하여 나타낼 수 있다.
당업자는 여기서 설명된 실시예와 관련된 여러 가지 로직 블록 및 알고리즘 단계는 디지털 신호 처리기(DSP), 주문형 집적회로(ASIC), 이상 게이트 또는 트랜지스터 로직, 이산 하드웨어 부품(예를 들어, 레지스터와 FIFO), 펌웨어 명령 세트를 수행하는 프로세서 또는 통상적인 프로그램가능한 소프트웨어 모듈 및 프로세서로 구현되거나 수행될 수 있다. 프로세서는 바람직하게 마이크로프로세서일 수 있지만, 선택적으로, 프로세서는 통상적인 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, 레지스터 도는 다른 형태의 공지된 기록가능한 저장 매체 상에 상주할 수 있다.
본 발명의 바람직한 실시예가 도시되고 설명되었다. 그러나, 당업자는 수많은 변형이 본 발명의 사상과 범위에서 벗어나지 않고 여기에 설명된 실시예에 대하여 이루어질 수 있다는 것을 알고 있을 것이다. 따라서, 본 발명은 다음 청구범위에 따른 것을 제외하고 제한되지 않는다.

Claims (31)

  1. 다수의 입력 비트를 연속적으로 수신하고 이로부터 다수의 제 1출력 심볼을 생성하도록 구성된 제 1코더;
    상기 다수의 입력 비트를 연속적으로 수신하도록 구성되고, 행들 및 열들로 이루어진 매트릭스에 배치된 다수의 비트 저장 위치들 및 상기 인터리버의 각각의 행 내의 비트들을 섞는(shuffling) 시퀀스를 의사 랜덤하게 생성하도록 구성된 선형 합동 시퀀스 생성기를 포함하는 인터리버; 및
    상기 인터리버로부터 연속적으로 다수의 인터리빙된 비트들을 수신하고 이로부터 다수의 제 2출력 심볼들을 생성하도록 구성된 제 2코더를 포함하는 터보 코더.
  2. 제 1항에 있어서,
    상기 비트들을 섞는 시퀀스는 다음 식: x(n+1) = (ax(n)+c) mod M 에 따라 생성된 선형 합동 시퀀스 순환(linear congruent sequence recursion)을 포함하고, 여기서, n은 시간 인덱스를 나타내고, x(n)는 상기 시간 인덱스(n)에서의 열 인덱스를 나타내고, a, c 및 M은 정수들이며, M은 상기 시퀀스의 주기를 나타내며,
    다음의 조건들:
    (ⅰ) c는 M과 서로 소(prime)일 것;
    (ⅱ) a-1은 p의 배수일 것, 여기서 p는 M을 나누는 임의의 소수를 나타냄;
    (ⅲ) M이 4의 배수일 때, a-1은 4의 배수가 될 것; 및
    (ⅳ) x(0)는 정수 시드 열 인덱스(integer seed column index)일 것을 만족하는 것을 특징으로 하는 터보 코더.
  3. 제 2항에 있어서,
    상기 a=1인 것을 특징으로 하는 터보 코더.
  4. 제 2항에 있어서,
    상기 주기 M은 2의 거듭제곱인 것을 특징으로 하는 터보 코더.
  5. 제 2항에 있어서,
    상기 x(0)은 상기 인터리버 내의 모든 행에 대해 0인 것을 특징으로 하는 터보 코더.
  6. 제 1항에 있어서,
    상기 제 1 코더 및 제 2코더에 연결되며, 이로부터 다수의 제 1 및 제 2 출력 심볼들을 각각 수신하도록 구성된 멀티플렉서를 추가로 포함하는 것을 특징으로 하는 터보 코더.
  7. 제 1항에 있어서,
    상기 인터리버는 미리 설정된 비트 반전 알고리즘에 따라 상기 인터리버의 행들을 섞는 적어도 하나의 모듈을 추가로 포함하는 것을 특징으로 하는 터보 코더.
  8. 제 1항에 있어서,
    상기 비트들을 섞는 시퀀스는 다음 식: x(n) = (a((M/2)-1)x(n+1)-c) mod M 에 따라 생성된 선형 합동 시퀀스 순환을 포함하고, 여기서, n은 시간 인덱스를 나타내며, x(n)는 상기 시간 인덱스(n)에서 열 인덱스를 나타내고, a, c 및 M은 정수들이고, M은 상기 시퀀스의 주기를 나타내며,
    다음 조건들:
    (ⅰ) c는 M과 서로 소일 것;
    (ⅱ) a-1은 p의 배수일것, 여기서 p는 M을 나누는 소수를 나타냄;
    (ⅲ) M이 4의 배수일 때, a-1은 4의 배수가 될 것; 및
    (ⅳ) x(0)는 정수 시드 열 인덱스일 것을 만족하는 것을 특징으로 하는 터보 코더.
  9. 제 8항에 있어서,
    상기 a=1인 것을 특징으로 하는 터보 코더.
  10. 제 8항에 있어서,
    상기 주기 M은 2의 거듭제곱인 것을 특징으로 하는 터보 코더.
  11. 제 8항에 있어서,
    상기 x(0)은 상기 인터리버 내의 모든 행에 대해 0인 것을 특징으로 하는 터보 코더.
  12. 데이터 원소들을 인터리빙하는 방법에 있어서,
    데이터 원소들을 순차적으로 행 단위로 비트 저장 위치들 매트릭스에 기록하는 단계;
    선형 합동 시퀀스 순환에 따라 비트 저장 위치들 매트릭스 내의 각각의 행 내에 상기 데이터 원소들을 의사 랜덤하게 재정렬시키는 단계; 및
    상기 비트 저장 위치들 매트릭스로부터 상기 데이터 원소들을 열 단위로 순차적으로 판독하는 단계를 포함하는 인터리빙 방법.
  13. 제 12항에 있어서,
    다음 식: x(n+1) = (ax(n)+c) mod M 에 따라 상기 선형 합동 시퀀스 순환을 발생시키는 단계를 더 포함하고, 여기서, n은 시간 인덱스를 나타내며, x(n)는 상기 시간 인덱스(n) 내의 열 인덱스를 나타내며, a, c 및 M은 정수들이며, M은 상기 시퀀스의 주기를 나타내며,
    다음 조건들:
    (ⅰ) c는 M과 서로 소일 것;
    (ⅱ) a-1은 p의 배수일 것, 여기서 p는 M을 나누는 소수를 나타냄;
    (ⅲ) M이 4의 배수일 때, a-1은 4의 배수가 될 것; 및
    (ⅳ) x(0)는 정수 시드 열 인덱스일 것을 만족하는 것을 특징으로 인터리빙 방법.
  14. 제 13항에 있어서,
    상기 a=1인 것을 특징으로 인터리빙 방법.
  15. 제 13항에 있어서,
    상기 주기 M은 2의 거듭제곱인 것을 특징으로 인터리빙 방법.
  16. 제 13항에 있어서,
    상기 x(0)은 상기 인터리버 내의 모든 행에 대해 0인 것을 특징으로 하는 터보 코더.
  17. 제 12항에 있어서,
    미리 설정된 비트 반전 알고리즘에 따라 비트 저장 위치들 매트릭스의 행들을 재배열하는 단계를 추가로 포함하는 것을 특징으로 인터리빙 방법.
  18. 제 12항에 있어서,
    다음 식: x(n) = (a((M/2)-1)x(n+1)-c) mod M 에 따라 선형 합동 시퀀스 순환을 발생시키는 단계를 추가로 포함하고, 여기서, n은 시간 인덱스를 나타내며, x(n)는 상기 시간 인덱스(n)에서 열 인덱스를 나타내며, a, c 및 M은 정수들이며, M은 상기 시퀀스의 주기를 나타내며,
    다음 조건들:
    (ⅰ) c는 M과 서로 소일 것;
    (ⅱ) a-1은 p의 배수일 것, 여기서 p는 M을 나누는 소수를 나타냄;
    (ⅲ) M이 4의 배수일 때, a-1은 4의 배수가 될 것; 및
    (ⅳ) x(0)는 정수 시드 열 인덱스일 것을 만족하는 것을 특징으로 인터리빙 방법.
  19. 제 18항에 있어서,
    상기 a=1인 것을 특징으로 인터리빙 방법.
  20. 제 18항에 있어서,
    상기 주기 M은 2의 거듭제곱인 것을 특징으로 인터리빙 방법.
  21. 제 18항에 있어서,
    상기 x(0)는 각각의 행에 대해 0인 것을 특징으로 하는 인터리빙 방법.
  22. 데이터 원소들 순차적으로 행 단위로 비트 저장 위치들 매트릭스에 기록하는 수단;
    선형 합동 시퀀스 순환에 따라 상기 비트 저장 위치들 매트릭스 내의 각각의 행 내에 상기 데이터 원소들을 의사 랜덤하게 재정렬하는 수단; 및
    상기 비트 저장 위치들 매트릭스로부터 상기 데이터 원소들을 열 단위로 순차적으로 판독하는 수단을 포함하는 인터리버.
  23. 제 22항에 있어서,
    상기 선형 합동 시퀀스 순환은 다음 식: x(n+1) = (ax(n)+c) mod M 에 따라 발생되며, 여기서, n은 시간 인덱스를 나타내며, x(n)는 상기 시간 인덱스(n) 내의 열 인덱스를 나타내며, a, c 및 M은 정수들이며, M은 상기 시퀀스의 주기를 나타내며,
    다음 조건들:
    (ⅰ) c는 M과 서로 소일 것;
    (ⅱ) a-1은 p의 배수일 것, 여기서 p는 M을 나누는 소수를 나타냄;
    (ⅲ) M이 4의 배수일 때, a-1은 4의 배수가 될 것; 및
    (ⅳ) x(0)는 정수 시드 열 인덱스일 것을 만족하는 것을 특징으로 하는 인터리버.
  24. 제 23항에 있어서,
    상기 a=1인 것을 특징으로 하는 인터리버.
  25. 제 23항에 있어서,
    상기 주기 M은 2의 거듭제곱인 것을 특징으로 하는 인터리버.
  26. 제 23항에 있어서,
    상기 x(0)은 상기 비트 저장 위치들 매트릭스 내의 각각의 행에 대해 0인 것을 특징으로 하는 인터리버.
  27. 제 22항에 있어서,
    미리 설정된 비트 반전 알고리즘에 따라 비트 저장 위치들 매트릭스의 행들을 섞는 수단을 추가로 포함하는 것을 특징으로 하는 인터리버.
  28. 제 22항에 있어서,
    상기 선형 합동 시퀀스 순환은 다음 식: x(n) = (a((M/2)-1)x(n+1)-c) mod M 에 따라 발생되며, 여기서, n은 시간 인덱스를 나타내며, x(n)는 상기 시간 인덱스(n)에서 열 인덱스를 나타내며, a, c 및 M은 정수들이며, M은 상기 시퀀스의 주기를 나타내며,
    다음 조건들:
    (ⅰ) c는 M과 서로 소일 것;
    (ⅱ) a-1은 p의 배수일 것, 여기서 p는 M을 나누는 소수를 나타냄;
    (ⅲ) M이 4의 배수일 때, a-1은 4의 배수가 될 것; 및
    (ⅳ) x(0)는 정수 시드 열 인덱스일 것을 만족하는 것을 특징으로 하는 인터리버.
  29. 제 28항에 있어서,
    상기 a=1인 것을 특징으로 하는 인터리버.
  30. 제 28항에 있어서,
    상기 주기 M은 2의 거듭제곱인 것을 특징으로 하는 인터리버.
  31. 제 28항에 있어서,
    상기 x(0)은 상기 비트 저장 위치들 매트릭스 내의 각각의 행에 대해 0인 것을 특징으로 하는 인터리버.
KR1020017006971A 1998-12-04 1999-12-03 선형 합동 시퀀스들을 이용한 터보 코드 인터리버 KR100711326B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/205,511 US6304991B1 (en) 1998-12-04 1998-12-04 Turbo code interleaver using linear congruential sequence
US09/205,511 1998-12-04

Publications (2)

Publication Number Publication Date
KR20010080679A KR20010080679A (ko) 2001-08-22
KR100711326B1 true KR100711326B1 (ko) 2007-04-27

Family

ID=22762490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017006971A KR100711326B1 (ko) 1998-12-04 1999-12-03 선형 합동 시퀀스들을 이용한 터보 코드 인터리버

Country Status (15)

Country Link
US (2) US6304991B1 (ko)
EP (2) EP1147614A1 (ko)
JP (2) JP4723089B2 (ko)
KR (1) KR100711326B1 (ko)
CN (1) CN1202625C (ko)
AU (1) AU763873B2 (ko)
BR (1) BR9915926A (ko)
CA (1) CA2353455C (ko)
HK (1) HK1045030B (ko)
ID (1) ID30087A (ko)
MX (1) MXPA01005573A (ko)
NO (1) NO20012708L (ko)
RU (3) RU2313177C2 (ko)
UA (1) UA63024C2 (ko)
WO (1) WO2000035103A1 (ko)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19736626C1 (de) * 1997-08-22 1998-12-10 Siemens Ag Verfahren zur Datenübertragung in einem digitalen Übertragungssystem bei paketvermitteltem Dienst
EP0998087A1 (en) * 1998-10-30 2000-05-03 Lucent Technologies Inc. Multilevel transmission system and method with adaptive mapping
EP0998045A1 (en) * 1998-10-30 2000-05-03 Lucent Technologies Inc. Digital transmission system and method
US6304991B1 (en) * 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence
US6871303B2 (en) * 1998-12-04 2005-03-22 Qualcomm Incorporated Random-access multi-directional CDMA2000 turbo code interleaver
KR100306282B1 (ko) 1998-12-10 2001-11-02 윤종용 통신시스템의인터리빙/디인터리빙장치및방법
US6625234B1 (en) * 1998-12-10 2003-09-23 Nortel Networks Limited Efficient implementations of proposed turbo code interleavers for third generation code division multiple access
US6463556B1 (en) * 1999-01-04 2002-10-08 Motorola, Inc. Method and apparatus for interleaving in a communication system
JP3746426B2 (ja) * 1999-02-26 2006-02-15 富士通株式会社 ターボ復号装置
CA2266283C (en) * 1999-03-19 2006-07-11 Wen Tong Data interleaver and method of interleaving data
EP1166449A4 (en) * 1999-04-06 2005-10-19 Samsung Electronics Co Ltd DEVICE WITH A METHOD OF TWO-DIMENSIONAL NEGOTIATION
CA2742096C (en) * 1999-04-13 2015-01-06 Ericsson Ab Rate matching and channel interleaving for a communications system
FR2792476B1 (fr) * 1999-04-13 2001-06-08 Canon Kk Procede de type arq pour procede de transmission utilisant des turbo-codes, et dispositif associe
US6543013B1 (en) * 1999-04-14 2003-04-01 Nortel Networks Limited Intra-row permutation for turbo code
US6377607B1 (en) * 1999-05-13 2002-04-23 Qualcomm Incorporated System and method for performing accurate demodulation of turbo-encoded signals via pilot assisted coherent demodulation
CN100442679C (zh) 1999-05-19 2008-12-10 三星电子株式会社 涡式交织装置
CN100391122C (zh) * 1999-07-08 2008-05-28 三星电子株式会社 移动通信系统中用于控制速率匹配的去复用器和复用器的设备和方法
EP1085660A1 (en) * 1999-09-15 2001-03-21 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Parallel turbo coder implementation
US6687870B1 (en) * 1999-09-23 2004-02-03 Qualcomm, Incorporated Method and apparatus for interleaving for information transmission or storage applications
US6628723B1 (en) 1999-10-15 2003-09-30 Cisco Technology Coding rate reduction for turbo codes
JP3399904B2 (ja) * 2000-03-17 2003-04-28 松下電器産業株式会社 インタリーブアドレス生成装置
US6952454B1 (en) 2000-03-22 2005-10-04 Qualcomm, Incorporated Multiplexing of real time services and non-real time services for OFDM systems
KR100360251B1 (ko) * 2000-03-29 2002-11-08 엘지전자 주식회사 통신시스템의 핸드오프 처리장치 및 이동체 수신기
US6854077B2 (en) * 2000-08-05 2005-02-08 Motorola, Inc. Apparatus and method for providing turbo code interleaving in a communications system
US7242726B2 (en) 2000-09-12 2007-07-10 Broadcom Corporation Parallel concatenated code with soft-in soft-out interactive turbo decoder
US9979580B2 (en) 2001-02-01 2018-05-22 Qualcomm Incorporated Coding scheme for a wireless communication system
US6961388B2 (en) 2001-02-01 2005-11-01 Qualcomm, Incorporated Coding scheme for a wireless communication system
US6938224B2 (en) * 2001-02-21 2005-08-30 Lucent Technologies Inc. Method for modeling noise emitted by digital circuits
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
US6871270B2 (en) * 2001-12-03 2005-03-22 Samsung Electronics Co., Ltd. Device and method for minimizing puncturing-caused output delay
US6954885B2 (en) * 2001-12-14 2005-10-11 Qualcomm Incorporated Method and apparatus for coding bits of data in parallel
KR100860660B1 (ko) * 2002-01-09 2008-09-26 삼성전자주식회사 통신시스템의 인터리빙 장치 및 방법
AU2003268814B2 (en) * 2002-02-06 2005-07-28 Samsung Electronics Co., Ltd. Interleaver and interleaving method in a communication system
RU2261529C2 (ru) * 2002-02-06 2005-09-27 Самсунг Электроникс Ко.,Лтд Перемежитель и способ перемежения в системе связи
US7352817B2 (en) * 2002-09-27 2008-04-01 Ibiquity Digital Corporation Method and apparatus for interleaving signal bits in a digital audio broadcasting system
KR20040037624A (ko) * 2002-10-29 2004-05-07 삼성전자주식회사 인터리빙된 데이터 열의 디인터리빙 방법 및 장치
JP2004266586A (ja) 2003-03-03 2004-09-24 Hitachi Ltd 移動通信システムのデータ送受信方法
US7430241B2 (en) * 2003-03-14 2008-09-30 Lucent Technologies Inc. Method for early decoding of control channel information
KR100809619B1 (ko) 2003-08-26 2008-03-05 삼성전자주식회사 이동 통신 시스템에서 블록 저밀도 패러티 검사 부호부호화/복호 장치 및 방법
US7346832B2 (en) 2004-07-21 2008-03-18 Qualcomm Incorporated LDPC encoding methods and apparatus
JP4545793B2 (ja) 2004-08-10 2010-09-15 サムスン エレクトロニクス カンパニー リミテッド ブロック低密度パリティ検査符号を符号化/復号化する装置及び方法
EP1641129A1 (en) * 2004-09-22 2006-03-29 STMicroelectronics Pvt. Ltd An improved turbo encoder
US7281174B1 (en) 2004-10-01 2007-10-09 Rockwell Collins, Inc. Diversity code combining scheme for turbo coded systems
US7551697B1 (en) 2004-10-01 2009-06-23 Rockwell Collins, Inc. Reduced complexity soft-output noncoherent continuous phase demodulator systems
KR101131323B1 (ko) * 2004-11-30 2012-04-04 삼성전자주식회사 이동통신 시스템에서 채널 인터리빙 장치 및 방법
US7542410B2 (en) * 2004-12-06 2009-06-02 Intel Corporation Interleaver and associated methods
US7543197B2 (en) * 2004-12-22 2009-06-02 Qualcomm Incorporated Pruned bit-reversal interleaver
US7340669B2 (en) * 2005-03-11 2008-03-04 Via Telecom Co., Ltd. Memory efficient streamlined transmitter with a multiple instance hybrid ARQ
BRPI0611236A2 (pt) * 2005-05-12 2010-08-24 Qualcomm Inc equipamento e mÉtodo para intercalaÇço de canal em sistema de comunicaÇço
US7395461B2 (en) * 2005-05-18 2008-07-01 Seagate Technology Llc Low complexity pseudo-random interleaver
US7630350B2 (en) * 2005-06-06 2009-12-08 Broadcom Corporation Method and system for parsing bits in an interleaver for adaptive modulations in a multiple input multiple output (MIMO) wireless local area network (WLAN) system
KR100708474B1 (ko) * 2005-09-15 2007-04-18 삼성전자주식회사 선형 합동 인터리버의 매개변수 결정 방법 및 그를 이용한 선형 합동 인터리버
US7925956B2 (en) * 2006-10-03 2011-04-12 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data
US8356232B2 (en) * 2006-10-06 2013-01-15 Motorola Mobility Llc Method and apparatus for encoding and decoding data
US8583983B2 (en) 2006-11-01 2013-11-12 Qualcomm Incorporated Turbo interleaver for high data rates
US7949926B2 (en) * 2006-11-30 2011-05-24 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data
US8751769B2 (en) 2007-12-21 2014-06-10 Qualcomm Incorporated Efficient address generation for pruned interleavers and de-interleavers
KR101502623B1 (ko) 2008-02-11 2015-03-16 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널부호/복호 방법 및 장치
KR100943908B1 (ko) 2008-02-19 2010-02-24 엘지전자 주식회사 Pdcch를 통한 제어 정보 송수신 방법
US8200733B1 (en) 2008-04-15 2012-06-12 Freescale Semiconductor, Inc. Device having interleaving capabilities and a method for applying an interleaving function
EP2139120B1 (de) 2008-06-23 2019-01-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Interleaver
US7667628B2 (en) * 2008-06-23 2010-02-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Interleaver for scrambling and information word
DE102008029623A1 (de) 2008-06-23 2009-12-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Interleaver
US8516351B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8375278B2 (en) * 2009-07-21 2013-02-12 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US9397699B2 (en) * 2009-07-21 2016-07-19 Ramot At Tel Aviv University Ltd. Compact decoding of punctured codes
US8516352B2 (en) * 2009-07-21 2013-08-20 Ramot At Tel Aviv University Ltd. Compact decoding of punctured block codes
US8638244B2 (en) 2009-08-31 2014-01-28 Freescale Semiconductor, Inc. Encoding module, apparatus and method for determining a position of a data bit within an interleaved data stream
US8374098B2 (en) * 2009-11-03 2013-02-12 Arm Limited Check data encoding using parallel lane encoders
US8595588B2 (en) * 2009-11-13 2013-11-26 Panasonic Corporation Encoding method, decoding method, coder and decoder
JP2011199414A (ja) * 2010-03-17 2011-10-06 Toshiba Corp 素材収録装置及び素材収録方法
JP5521722B2 (ja) * 2010-04-14 2014-06-18 沖電気工業株式会社 符号化装置、復号化装置、符号化・復号化システム、及び、プログラム
JP5988222B2 (ja) * 2011-10-18 2016-09-07 パナソニックIpマネジメント株式会社 シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令
KR101844438B1 (ko) 2014-02-21 2018-04-02 후아웨이 테크놀러지 컴퍼니 리미티드 폴라 코드 비율 매칭 방법 및 장치
JP6455766B2 (ja) * 2014-12-22 2019-01-23 華為技術有限公司Huawei Technologies Co.,Ltd. 極性符号の符号化方法および符号化装置
FR3037746B1 (fr) 2015-06-19 2020-10-02 Inst Mines Telecom Procede de construction d'un entrelaceur pour turbo-encodeur
FR3064138B1 (fr) 2017-03-20 2021-05-07 Orange Procedes et dispositifs de codage a rendement compatible
CN109885384B (zh) * 2018-12-13 2023-02-07 平安壹钱包电子商务有限公司 任务并行度优化方法、装置、计算机设备及存储介质
RU2718579C1 (ru) * 2019-05-20 2020-04-08 Антон Юрьевич Баринов Быстрый псевдослучайный перемежитель

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970013800A (ko) * 1995-08-18 1997-03-29 김광호 인터리버 및 디인터리버와 그 방법
KR19980023731A (ko) * 1996-09-30 1998-07-06 배순훈 정적 램을 이용한 길쌈 인터리버/디인터리버 및 정적 램의 주소 생성 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62200974A (ja) * 1986-02-28 1987-09-04 Matsushita Graphic Commun Syst Inc インタ−リ−ブ装置
US5103459B1 (en) 1990-06-25 1999-07-06 Qualcomm Inc System and method for generating signal waveforms in a cdma cellular telephone system
JP3077944B2 (ja) * 1990-11-28 2000-08-21 シャープ株式会社 信号再生装置
US5392299A (en) * 1992-01-15 1995-02-21 E-Systems, Inc. Triple orthogonally interleaed error correction system
US5241563A (en) 1992-08-10 1993-08-31 General Instrument Corporation Method and apparatus for communicating interleaved data
JPH06216882A (ja) * 1993-01-19 1994-08-05 Matsushita Electric Ind Co Ltd 誤り訂正送信装置及び受信装置
US5633881A (en) 1993-02-22 1997-05-27 Qualcomm Incorporated Trellis encoder and decoder based upon punctured rate 1/2 convolutional codes
US5668820A (en) * 1995-01-23 1997-09-16 Ericsson Inc. Digital communication system having a punctured convolutional coding system and method
EP2302809B1 (en) * 1995-02-01 2013-06-05 Sony Corporation Multi-channel transmission with interlacing through in-place addressing of RAM memory
WO1997007451A2 (en) * 1995-08-16 1997-02-27 Microunity Systems Engineering, Inc. Method and system for implementing data manipulation operations
JPH09101878A (ja) * 1995-10-03 1997-04-15 Mitsubishi Electric Corp 乱数発生回路
US6205190B1 (en) * 1996-04-29 2001-03-20 Qualcomm Inc. System and method for reducing interference generated by a CDMA communications device
JPH1065654A (ja) * 1996-08-19 1998-03-06 Oki Electric Ind Co Ltd データ伝送誤り低減方法及びその装置
JPH10163887A (ja) * 1996-11-28 1998-06-19 Matsushita Electric Ind Co Ltd インターリーブ装置およびデインターリーブ装置
US5983384A (en) * 1997-04-21 1999-11-09 General Electric Company Turbo-coding with staged data transmission and processing
US5907582A (en) * 1997-08-11 1999-05-25 Orbital Sciences Corporation System for turbo-coded satellite digital audio broadcasting
US6430722B1 (en) * 1998-01-23 2002-08-06 Hughes Electronics Corporation Forward error correction scheme for data channels using universal turbo codes
US5978365A (en) * 1998-07-07 1999-11-02 Orbital Sciences Corporation Communications system handoff operation combining turbo coding and soft handoff techniques
US6014411A (en) * 1998-10-29 2000-01-11 The Aerospace Corporation Repetitive turbo coding communication method
US6304991B1 (en) * 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970013800A (ko) * 1995-08-18 1997-03-29 김광호 인터리버 및 디인터리버와 그 방법
KR19980023731A (ko) * 1996-09-30 1998-07-06 배순훈 정적 램을 이용한 길쌈 인터리버/디인터리버 및 정적 램의 주소 생성 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1019970013800
1019980023731

Also Published As

Publication number Publication date
EP2267903A2 (en) 2010-12-29
AU763873B2 (en) 2003-07-31
HK1045030B (zh) 2005-10-07
RU2007125429A (ru) 2009-01-10
MXPA01005573A (es) 2002-06-04
CN1357172A (zh) 2002-07-03
US6637000B2 (en) 2003-10-21
WO2000035103A1 (en) 2000-06-15
WO2000035103A9 (en) 2001-12-13
BR9915926A (pt) 2002-01-15
JP2011087329A (ja) 2011-04-28
EP1147614A1 (en) 2001-10-24
CA2353455A1 (en) 2000-06-15
AU1931500A (en) 2000-06-26
JP2002532941A (ja) 2002-10-02
EP2267903A3 (en) 2012-04-04
US20020032890A1 (en) 2002-03-14
RU2376702C2 (ru) 2009-12-20
ID30087A (id) 2001-11-01
HK1045030A1 (en) 2002-11-08
JP5394410B2 (ja) 2014-01-22
NO20012708L (no) 2001-07-20
NO20012708D0 (no) 2001-06-01
JP4723089B2 (ja) 2011-07-13
CA2353455C (en) 2009-05-19
US6304991B1 (en) 2001-10-16
UA63024C2 (en) 2004-01-15
RU2313177C2 (ru) 2007-12-20
RU2235424C2 (ru) 2004-08-27
KR20010080679A (ko) 2001-08-22
CN1202625C (zh) 2005-05-18

Similar Documents

Publication Publication Date Title
KR100711326B1 (ko) 선형 합동 시퀀스들을 이용한 터보 코드 인터리버
JP4191485B2 (ja) ランダムアクセスマルチ方向cdma2000のターボコードインターリーバ
US6323788B1 (en) Interleaving apparatus and method for use in serial concatenated convolutional code encoder in a mobile communication system
US7058874B2 (en) Interleaver address generator and method of generating an interleaver address
US20020035709A1 (en) Apparatus and method for providing turbo code interleaving in a communications system
US7734989B2 (en) Multi-standard turbo interleaver using tables

Legal Events

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

Payment date: 20120329

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 13