KR20090094262A - 비경쟁 인터리버들을 이용한 터보-인코딩 - Google Patents

비경쟁 인터리버들을 이용한 터보-인코딩

Info

Publication number
KR20090094262A
KR20090094262A KR1020097011215A KR20097011215A KR20090094262A KR 20090094262 A KR20090094262 A KR 20090094262A KR 1020097011215 A KR1020097011215 A KR 1020097011215A KR 20097011215 A KR20097011215 A KR 20097011215A KR 20090094262 A KR20090094262 A KR 20090094262A
Authority
KR
South Korea
Prior art keywords
size
interleaver
input block
block
max
Prior art date
Application number
KR1020097011215A
Other languages
English (en)
Other versions
KR101459801B1 (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 KR20090094262A publication Critical patent/KR20090094262A/ko
Application granted granted Critical
Publication of KR101459801B1 publication Critical patent/KR101459801B1/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/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
    • 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/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/2903Methods and arrangements specifically for encoding, e.g. parallel encoding of a plurality of constituent 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
    • 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
    • H03M13/2996Tail biting
    • 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/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

터보 인코딩에 대한 방법들 및 장치가 본원에서 제공된다. 터보 인코더(101)의 동작 동안에, 터보 인터리버(201)의 사이즈가 정보 블럭 사이즈에 따라 결정되고, 적합한 인터리빙 파라미터들이 선택된다. 이들 파라미터들은 터보 인터리버를 구성하는데, 이것은 비경합 인터리버이고, QPP(quadratic permutation polynomial) 인터리버 또는 ARP(almost regular permutation) 인터리버에 기초한다. 정보 블럭 사이즈가 지원된 인터리버 사이즈와 일치하지 않는 경우, 정보 블럭은 필러 비트 삽입의 수단에 의해 채워넣어진다.

Description

비경쟁 인터리버들을 이용한 터보-인코딩{TURBO-ENCODING WITH CONTENTION-FREE INTERLEAVERS}
본 발명은 일반적으로 데이터의 인코딩 및 디코딩에 관한 것으로, 특히, 터보 인코딩 및 디코딩을 위한 방법 및 장치에 관한 것이다.
유선 및 무선 링크들을 통한 디지털 데이터 송신은, 예를 들어, 링크 또는 채널의 노이즈에 의해, 다른 송신들로부터의 간섭에 의해, 또는 다른 환경 요인들에 의해 오류가 발생될 수 있다. 채널에 의해 도입된 에러들을 제거하기 위해서, 많은 통신 시스템들이 통신을 지원하는데에 에러 정정 기술들을 이용한다.
에러 정정을 위해 활용되는 하나의 기술은, 정보 블럭을, 채널을 통해 송신하기 전에 터보 코딩하는 것이다. 이러한 기술을 활용하여, 통신 시스템의 송신기 내의 인코더는 길이 K' 비트의 입력 블럭 u를 N 비트의 코드워드(codeword) 블럭 x로 인코딩할 것이다. 그 후 코드워드 블럭은, 아마도, IEEE 802.16e 사양서에서 정의된 바와 같은 채널 인터리빙(channel interleaving)과 같은 추가 프로세싱을 한 후에, 채널을 통해 송신된다. 수신기에서, 터보 디코더는 길이 N의 수신된 신호 벡터 y를 입력으로서 취하고, 벡터 u의 추정 을 생성한다.
일반적으로 터보 인코더는 두 개의 구성 컨볼루셔널 인코더들(constituent convolutional encoders)로 구성된다. 제1 구성 인코더는 그것의 원래의 순서로 입력으로서 입력 블럭 u를 취하고, 제2 구성 인코더는, u를 통과시킨 후에 터보 인터리버(turbo interleaver) π에 그것의 인터리빙된 순서로 입력 블럭 u를 취한다. 터보 인코더 출력 x는, (입력 블럭 u와 동일한) 구조적 비트들(systematic bits), 제1 구성 인코더로부터의 패리티 비트들, 및 제2 구성 인코더로부터의 패리티 비트들로 구성된다.
이에 대응하여, 통신 시스템의 수신기 내의 터보 디코더는, 각 구성 코드마다 하나씩, 두 개의 구성 컨볼루셔널 디코더들로 구성된다. 구성 디코더들은 인터리버 π 및 대응하는 디인터리버 π-1에 의해 분리된다. 로그 우도율(log-likelihood ratio : LLR)의 포맷으로 된 메세지들은 구성 디코더들 사이를 반복하여 통과한다. 결정 은 몇차례의 반복 후에 생성된다.
터보 인터리버 π는 터보 코드 디자인 내의 중요한 구성요소이다. 이는, 의사 랜덤 방식(pseudo-random fashion)으로 입력 블럭 u을 스크램블링(scrambling)함으로써, 우수한 가중치 분포를 갖는 코드워드들 x을 제공하게 되어, 우수한 에러 정정 기능들을 제공하는 역할을 한다. 디코딩 성능 외에도, 터보 인터리버 π의 정의는 수신기 내의 터보 디코더의 구현에 많은 영향을 준다. 메모리 액세스 경합이 없는 높은 레벨의 병렬 프로세싱을 허용하기 위해서, 터보 인터리버 π가 비경합(contention-free) 특성들을 갖는 것이 필요하다.
도 1은 송신기의 블럭도.
도 2는 도 1의 터보 인코더의 블럭도.
도 3은 수신기의 블럭도.
도 4는 도 4의 터보 디코더의 블럭도.
도 5는 도 1의 송신기의 동작을 나타내는 흐름도.
도 6은 도 3의 수신기의 동작을 나타내는 흐름도.
상술된 비경합 인터리버들의 필요성을 다루기 위해, 터보 코드들에 대한 인터리버 사이즈들을 선택하기 위한 방법 및 장치가 본원에서 제공된다.
동작 동안에 사이즈 K의 정보 블럭이 수신된다. 인터리버 사이즈 K'가 결정되는데, 여기서 K'는 K"와 관련되어 있으며, K"는 사이즈들의 집합으로부터의 것이며; 여기에서 사이즈들의 집합은 K"=ap×f, pmin≤p≤pmax;fmin≤f≤fmax를 포함하고, 여기서 a는 정수이고, f는 fmin 및 fmax 사이의 연속하는 정수이고, p는 pmin 및 pmax 사이의 정수값들을 취하고, a>1이고, pmax>pmin이고, pmin>1 이다. 사이즈 K의 정보 블럭은 사이즈 K'의 입력 블록 내에 채워넣어진다. 입력 블럭은 사이즈 K'의 인터리버를 이용하여 인터리빙된다. 원래의 입력 블럭 및 인터리빙된 입력 블럭은 코드워드 블럭을 얻기 위해 인코딩된다. 코드워드 블럭은 채널을 통해 송신된다.
본 발명의 다른 실시예에서는, K"와 관련된 인터리버 사이즈 K'를 결정하는 단계는 K'=K"를 이용하는 단계를 포함한다.
본 발명의 또 다른 실시예에서는, K"와 관련된 인터리버 사이즈 K'를 결정하는 단계는, K"가 (2m-1)의 배수가 아닐 때에는 K'=K"를 이용하는 단계를 포함하고; 그렇지 않고 K"가 (2m-1)의 배수일 때에는 K'=K"+δ(K")를 이용하는 단계를 포함하는데, 여기에서 m은 구성 컨볼루셔널 인코더의 메모리 길이이고, δ(K")는 (2m-1)의 배수와 같지 않은 작은 양 또는 음의 정수이다. 하나의 실시예에서 m=3이다.
본 발명의 또 다른 실시예에서는, 입력 블럭을 인터리빙하는 단계는 순열 π(i)=(iP0+A+d(i)) mod K'를 이용하는 단계를 포함하는데, 여기서 0≤i≤K'-1은 인터리빙 후의 심볼 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들의 인터리버 사이즈이고, P0는 K'에 서로 소(prime)인 수이고, A는 상수이고, C는 K'를 나누는 작은 수이고, d(i)는 d(i)=β(i mod C)+P0×α(i mod C) 형태의 디더 벡터(dither vector)인데, 여기서 α(·) 및 β(·)는 0≤i≤K'-1에 대해서 주기적으로 적용되는, 각각이 길이 C인 벡터들이다.
본 발명의 또 다른 실시예에서, 입력 블럭을 인터리빙하는 단계는 순열 π(i)=(f1×i+f2×i2) mod K'를 이용하는 단계를 포함하는데, 여기서 0≤i≤K'-1는 인터리빙 후의 심볼 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들의 인터리버 사이즈이고, f1 및 f2는 인터리버를 정의하는 팩터(factor)들이다.
데이터를 인코딩 및 디코딩하는 것을 설명하기 전에, 필요한 백그라운드를 설정하기 위해서 이하의 정의들이 제공된다.
K는 정보 블럭의 사이즈를 나타낸다.
K'는 인터리버 사이즈를 나타낸다(즉, 터보 코드 인터리버가 정의된 입력 블럭 사이즈)
K"는 인터리버 사이즈를 결정하는 데에 이용될 수 있는 보조 변수를 나타낸다.
Kfiller는 정보 블럭에 추가된 필러 비트들(filler bits)의 수를 나타낸다.
π는 터보 코드 내부 인터리버(turbo code internal interleaver)를 나타낸다.
플로어링 연산(flooring operation) 은 x 보다 작거나 동일한 가장 큰 정수를 나타내고, 실링 연산(ceiling operation) 은 x 보다 크거나 동일한 가장 작은 정수를 나타낸다.
u는 입력 블럭을 나타내는데, 이것은 K'의 길이를 가지며, 송신기에서 터보 인코더로 보내진다. 는 추정된 입력 블럭을 나타내는데, 이것은 K'의 길이를 가지며, 수신기에서 터보 디코더에 의해 생성된다. 디코딩 에러가 없을 때 인 점에 유의한다. 그렇지 않은 경우에는 이다.
이제 동일한 참조부호들이 동일한 컴포넌트들을 나타내는 도면들로 전환하면, 도 1은 송신기(100)의 블럭도이다. 도시된 바와 같이, 송신기(100)는 필러 삽입 회로(filler insertion circuitry)(109), 터보 인코더(101), 인터리버 사이즈 결정 회로(interleaver size determination circuitry)(103), 인터리버 파라미터 테이블(105) 및 송신기(107)를 포함한다. 인코더(101)는 바람직하게는 레이트-1/3 GPP 터보 코더(rate-1/3 3GPP turbo coder)이지만, 인코더(101)를 동작시키기 위해 본원에서 설명된 기술들은, 테일 비트들(tail bits)을 이용하거나 또는 이용하지 않는 터보 코딩을 수행하는 터보 코더들, 테일 바이팅(tail biting), 바이너리(binary) 또는 듀오 바이너리(duo-binary) 터보 코더들, 또는 다른 레이트 매칭(rate-matching) 및 펑쳐링(puncturing) 기술들을 이용하는 터보 코더들 등을 포함하나 이들에 한정되지 않는 다른 인코더들에 적용될 수 있다. 회로(103)는, K"와 관련된 인터리버 사이즈 K'를 결정하는데, 여기서 K"는 사이즈들의 집합으로부터의 것이며; 사이즈들의 집합은 K"=ap×f, pmin≤p≤pmax;fmin≤f≤fmax을 포함하고, a는 정수이고, f는 fmin 및 fmax 사이의 연속하는 정수이고, p는 pmin 및 pmax 사이의 정수값들을 취하고, a>1이고, pmax>pmin이고, pmin>1이다.
송신기(100)의 동작 동안에, 사이즈 K의 정보 블럭은 터보 인코더(101)에 의해 인코딩될 필요가 있다. 다수의 서로 다른 K들이 이용되는 일부 통신 시스템의 경우, 모든 정보 블럭 사이즈 K에 대해 비경합(CF) 인터리버를 정의하는 것은 비효율적이다(그리고 종종 불가능하다). 양호하게 디자인된 CF 인터리버들의 작은 집합(K')이 모든 정보 블럭 사이즈들을 커버할 수 있다면, 그것은 바람직하다. 정보 블럭 사이즈가 K인 경우, 적합한 인터리버 사이즈 K'는, 가능한 사이즈들의 집합(예를 들면, 테이블(105) 내에 리스팅된 인터리버 사이즈들)으로부터 회로(103)에 의해 선택될 수 있다. 정보 블럭은 그 후 회로(109)에 의해 사이즈 K'의 입력 블럭 내에 채워넣어지고, 입력으로서 터보 인코더(101)에게 보내진다. 전형적인 구성은 (필러 삽입 회로(109)를 통해) Kfiller 필러 비트들로 정보 블럭을 채우는 것이다. 용어 "사이즈" 및 "길이"가 블럭 또는 벡터 내의 엘리먼트들의 수를 나타내는데에 서로 교환가능하게 이용된다는 점에 유의한다.
일단 K'가 회로(103)에 의해 선택되면, 그것은 터보 인코더(101)에 제공된다. 인코딩 동안에, 비경합 인터리버(도 1에 도시되지 않음)가 이용될 수 있다. 예를 들면, 인터리버는 순열 π(i)=(iP0+A+d(i)) mod K'를 이용할 수 있는데, 여기서 0≤i≤K'-1은 인터리빙 후의 심볼 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들의 인터리버 사이즈이고, P0는 K'에 서로 소인 수이고, A는 상수이고, C는 K'를 나누는 작은 수이고, d(i)는 d(i)=β(i mod C)+P0×α(i mod C) 형태의 "디더" 벡터인데, 여기서 α(·) 및 β(·)는 0≤i≤K'-1에 대해 주기적으로 적용되는, 각각이 길이 C인 벡터들이다. 또 다른 예로서, 인터리버는 순열 π(i)=(f1×i+f2×i2) mod K'를 이용할 수 있는데, 여기서 0≤i≤K'-1는 인터리빙 후의 심볼 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들의 인터리버 사이즈이고, f1 및 f2는 인터리버를 정의하는 팩터들이다. 일반적으로 심볼은 다수의 비트들로 구성될 수 있고, 인터리빙하는 단계는 심볼 내의 비트들을 순열로 배치하는 추가 단계를 이용할 수 있다. 일반성을 잃지 않기 위해, 하기의 논의는, 심볼이 하나의 비트만으로 구성되는 일반적인 경우를 고려하고(따라서 심볼 내의 비트들을 순열로 배치할 필요가 없고), 용어 "비트" 및 "심볼"은 서로 교환가능하게 이용될 수 있다.
터보 인코더(101)의 출력은 코드워드 블럭 x를 포함하고, x는 송신기(107)로 보내지는데, 여기서 그것은 채널을 통해 송신된다. 송신기는, 채널을 통해 코드워드 블럭 x를 송신하기 전에 레이트 매칭, 채널 인터리빙, 변조 등과 같은 추가 프로세싱을 수행할 수 있다.
도 2는 도 1의 인코더(101)의 블럭도이다. 도시된 바와 같이, 인코더(101)는 인터리버(201), 인코딩 회로(202) 및 인코딩 회로(203)를 포함한다. 인코더의 일례는 3GPP 사양서에 정의된 터보 코더이다. 3GPP에서 정의된 터보 코더의 마더 코드 레이트(mother code rate)는 R=1/3의 네이티브 코드 레이트(native code rate)를 갖는다. 터보 인코더의 출력에서, 입력 블럭 내의 각각의 비트에 대해 세 개의 비트들이 생성되는데, 즉 (입력 블럭 내의 비트와 동일한) 하나의 구조적 비트, 구성 인코더 1로부터의 하나의 패리티 비트, 구성 인코더 2로부터의 하나의 패리티 비트를 생성한다. 또한, 터보 인코더의 출력은 NTB 테일 비트들을 또한 포함할 수 있는데, 이것은 구성 코드들의 트렐리스(trellis)를 종료시키는 데에 이용된다. 예를 들면, 3GPP 터보 코드의 경우, 터보 인코더의 출력에서 NTB=12 비트들이고, 구성 코드당 6 테일 비트들이다. 한편, 테일 바이팅 구성 컨볼루셔널 코드들을 이용하는 것이 가능한데, 이에 따라 NTB=0가 된다.
인터리버(201)는 비경합 인터리버일 수 있다. 인터리버 π(i), 0≤i≤K'는, Ψ=π(인터리버) 및 Ψ=π-1(디인터리버) 양쪽 모두에 대한 하기의 제약 조건을 만족하는 경우에 한해서 윈도우 사이즈 W에 대한 비경합으로 일컬어진다.
여기서 0≤j<W, 0≤t; υ<M(=K'/W), 및 t≠υ 이다. 항상 필요한 것은 아니지만, 효과적인 터보 디코더 디자인의 경우, 일반적으로 모든 M 윈도우들은 가득 차는데, 여기에서 K'=MW 이다. 수학식 1 내의 항들은, 반복 디코딩하는 동안에 출력 메모리 뱅크들에게 외재적 값들(extrinsic values)을 기록할 때, M 프로세서들에 의해 동시에 액세싱되는 메모리 뱅크 주소들이다. 이들 메모리 뱅크 주소들이 각각 판독 및 기록 동안에 모두 유일하다면, 메모리 액세스의 경합이 생기지 않고, 이에 따라 (디)인터리빙 지연이 회피될 수 있어서, 고속의 디코더를 구현하게 된다.
터보 인코더(101)의 동작 동안에, 길이 K' 비트들의 입력 블럭은 인터리버(201) 및 인코딩 회로(202) 양쪽 모두에 입력된다. 인터리버(201)는 사이즈 K'의 비경합 인터리버일 수 있다.
인터리버(201)는 입력 블럭을 인터리빙하고, 인터리빙된 순서로 입력 블럭을 인코딩 회로(203)로 보낸다. 인코딩 회로(203)는 그 후 인터리빙된 입력 블럭을 인코딩한다. 유사한 방식으로, 인코딩 회로(202)는 원래의 입력 블럭을 인코딩한다. 코드워드 블럭 x는, (입력 블럭과 동일한) 구조적 블럭, 인코딩 회로(202)의 출력 및 인코딩 회로(203)의 출력으로 구성된다. 코드워드 블럭 x는 그 후, 입력 블럭의 복사본을 직접적으로 수신할 수도 있는 송신기(107)로 보내진다.
비경합 인터리버의 일례로서, ARP(Almost Regular Permutation) 인터리버는 하기의 식에 의해 주어진다.
π(i)=(iP0+A+d(i)) mod K'
여기서 0≤i≤K'-1은 인터리빙 후의 비트 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 비트 인덱스이고, K'는 인터리버 사이즈이고, P0는 K'에 서로 소인 수이고, A는 상수이고, C는 K'를 나누는 작은 수이고, d(i)는 d(i)=β(i mod C)+P0×α(i mod C) 형태의 디더 벡터인데, 여기서 α(·) 및 β(·)는 0≤i≤K'-1에 대해 주기적으로 적용되는, 각각이 길이 C인 벡터들이다. α(·) 및 β(·) 양쪽 모두는 C의 배수들로 구성된다. 이에 따라 구성된 전체 인터리버 π(·)는 주기 C의 준순환(quasi-cyclic)(즉, 주기적인) 특성들을 가지며, 테일 바이팅 터보 코드들에 이용되는 경우, 터보 코드 그 자체가 준순환되어 코드 디자인 절차가 간소화된다.
비경합 인터리버의 또 다른 예로서, QPP(Quadratic Polynomial Permutation) 인터리버는 다음의 식 π(i)=(f1×i+f2×i2) mod K'에 의해 주어지는데, 여기서 0≤i≤K'-1는 인터리빙 후의 심볼 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들의 인터리버 사이즈이고, f1 및 f2는 인터리버를 정의하는 팩터들이다. ARP 인터리버들과 유사하게, 테일 바이팅인 경우에는, 터보 코드도 준순환이다.
인터리버(201)가 M의 다양한 값들에 대해 수학식 1을 만족시킬 수 있다면, 디코더는, (각 M마다 하나씩의) 여러 정도의 병렬 처리(various degrees of parallelism)를 이용하여 구현될 수 있다. 따라서 다양한 팩터들을 갖는 K'를 선택하는 것이 바람직하다. 길이 K'의 ARP 인터리버의 경우, 임의의 윈도우 사이즈 W가 메모리 액세스 경합들이 없는 고속 디코딩에 이용될 수 있는데, 여기서 W는 C의 배수이고, K'의 팩터이다. 병렬 윈도우들(parallel windows)의 다른 정의를 이용하면, K의 임의의 팩터를 병렬 윈도우들의 수로서 이용하는 것이 가능하다. QPP 인터리버의 경우, 인터리버 사이즈 K'의 모든 팩터가 병렬 처리 M의 가능한 레벨이 된다. 이것은 병렬 처리 팩터들 M의 넓은 범위를 허용함으로써, 디코더 디자인에 유연성 및 확장성을 제공한다. 따라서, 디코딩 속도와 복잡성 사이의 좋은 절충안이 시스템(또는 유저 엘리먼트의 클래스들)의 요구사항들에 기초하여 만들어질 수 있다.
인터리버 사이즈 K' 의 선택
상술된 바와 같이, 인터리버 사이즈 결정 회로(103)는 주어진 K에 대해 인터리버 사이즈 K'를 결정하는데에 필요하다. 이 섹션은, 터보 코드 인터리버들이 정의될 수 있는 제한된 수의 사이즈들(즉, K')을 선택하는 방법을 설명한다. 상술된 바와 같이, 필러 삽입 회로는 (펑처링 또는 레이트 매칭 방법들과 함께) 임의의 정보 블럭 사이즈 K를 다루는데에 이용될 수 있다. 일반적으로, 인터리버 사이즈 선택은 필러 비트들에 기인한 디코딩 부하 및 성능 감쇠를 고려해야만 한다.
입력 블럭을 형성하기 위해 정보 블럭에 채워넣어진 필러 비트들 Kfiller의 수는, 정보 블럭 사이즈 K의 낮은 백분율(예를 들면, 약 10-13%)로 제한되는 것이 바람직하다. 이것은, (모든 가능한 K' 값들이 오름차순으로 정렬되어 있다고 가정하여) 인접한 인터리버 사이즈들, 즉, 인접한 K' 값들 사이의 차이를 제한하는 것에 의해 달성된다. 필러 비트들의 수는, K'≥K가 되도록 이용 가능한 최소의 K'를 선택함으로써 최소화된다. 필러 비트들의 수는 Kfiller=K'-K이다. 그러나, 요망된다면, K'≥K의 다른 이용 가능한 값들도 선택될 수 있다.
Kmin 및 Kmax 사이의 정보 사이즈들을 커버하도록 정의된 하기의 사이즈들의 집합을 고려한다.
K"=ap×f, pmin≤p≤pmax; fmin≤f≤fmax
여기서 a는 정수이고, f는 fmin 및 fmax 사이의 연속하는 정수이고, p는 pmin 및 pmax 사이의 정수값들을 취하고, a>1이고, pmax>pmin이고, pmin>1이다. 필요한 것은 아니지만, 필요하지 않을 수 있는 임의의 사이즈들을 폐기하는 동안, , 및 가 되도록 이들 파라미터들을 선택할 수 있다. 정보 블럭 사이즈들의 범위를 커버하도록 사이즈들의 제한된 집합을 선택하는 이런 방법은 세미로그 슬라이싱(semi-log slicing)이라고 칭해진다. 사이즈 K의 정보 블럭이 주어진 경우, 사이즈 K'는 세미로그 슬라이싱 테이블에 기초한 K" 및 입력 블럭 사이즈 K와 관련된다.
세미로그 슬라이싱은, 음성 코덱들에 이용되는 A-law 및 mu-law 압신기들(companders)과 같은 큰 동적 범위의 압축 신호들에 이용되는 압신 연산과 유사하다. 세미로그 슬라이싱 규칙은 넓은 범위의 정보 블럭 사이즈들을 커버하기 위한 효과적인 디자인을 허용한다.
파라미터들을 선택하는 몇몇 방법들 중, fmin 및 fmax 값들을 선택하는 한 방법은, 인접한 p에서 기인한 K" 값들을 서로 라인업(line up) 시키는 방법인데, 즉, ap×(fmax+1)=ap +1×fmin이고, 따라서
fmax=a×fmin-1
이다. p의 주어진 값의 경우, 두 개의 인접 블럭 사이즈들 K" 사이의 간격은 ap에 의해 주어지는데, 이것은, 정보 블럭 사이즈 K가 그룹 p 내에 있고 인터리버 사이즈가 K"와 동일하다면, ap -1 필러 비트들의 최대값이 가산된다는 것을 의미한다. 따라서, 정보 블럭 사이즈 K 상의 필러 비트들 Kfiller의 부분(fraction)이 하기와 같이 한정(bounding)되는데, 이것은, 블럭 사이즈 K가 (p,fmin)에 의해 주어진 사이즈보다 약간 크고, 하기의 식에 대하여 (p,fmin+1)에 의해 주어진 K'=K"를 이용할 때 일어난다.
대안적으로, 인접한 p에서 기인한 K" 값들은, ap×fmax=ap +1×(fmin-1)을 통해 서로 라인업할 수 있어서, fmax=a×(fmin-1)가 된다. 이것은 유사한 Kfiller/K 경계(bound)를 줄 것이다. 따라서, 세미로그 슬라이싱에 대한 파라미터들을, 지원될 블럭 사이즈들의 범위에 따라, 또한 허용될 수 있는 필러 비트들의 부분 상에서 동조시킬 수 있다. fmin의 선택은 하기 두 가지의 요구사항들 사이의 균형을 필요로 한다.
fmin은 필러 비트들의 부분을 감소시키기 위해 커야 한다.
fmin은 인터리버 테이블의 사이즈를 제한하기 위해 작아야 하는데, 그 이유는, fmax=a×fmin-1을 가정할 때, 각 p에 대해 정의된 블럭 사이즈들의 수가 fmax-fmin+1=(a-1)×fmin이기 때문이다.
세미로그 슬라이싱 방법은, 임의의 블럭 사이즈의 경우에, 이용될 인터리버 사이즈 K'가 수학식 2로부터 계산된 K"에 기초하여 쉽게 결정될 수 있다는 점에서 매우 간단하다. 일단 세미로그 사이즈들이 (K")로 정의되면, 인터리버 사이즈 K'는, 예를 들면, 이하에 의해 (사실상 일탈하지 않고) 세미로그 사이즈들로부터 획득될 수 있다.
1. K'=K"를 이용하는 것. 즉, 세미로그 슬라이스 사이즈들이 유효한 인터리버 사이즈들로서 직접 이용될 수 있다.
2. K"가 (2m-1)의 배수가 아닐때 K'=K"를 이용하거나, 그렇지 않으면 K"가 (2m-1)의 배수일 때 K'=K"+δ(K")를 이용하는 것(여기에서 m은 구성 컨볼루셔널 인코더의 메모리 길이이고, δ(K")는 (2m-1)의 배수가 아닌 작은 양 또는 음의 정수임). 이것은, 구성 컨볼루셔널 코드들이 테일 바이팅인 경우에 유용한데, 여기서 (2m-1)의 배수들은 유효하지 않다. 수학식 2의 세미로그 슬라이싱 방법에 의해 정의된 사이즈들은 터보 코딩에 대해 적절하지 않은 인터리버 사이즈들을 때때로 포함할 수 있다. 예를 들어, 8 상태 3GPP 터보 인코더(eight-state 3GPP turbo encoder)(m=3)의 테일 바이팅 버전은, 7의 배수들(즉, 2m-1)인 입력 블럭 사이즈들(즉, 인터리버 사이즈들)을 지원하지 않는다. 이러한 경우들에서, 수학식 2가 2m-1의 배수인 사이즈를 생성할 때마다, 생성된 사이즈가 2m-1의 배수가 되지 않도록, 작은 값이 그것에서 감산되거나 혹은 그것에 가산된다.
예를 들면, a=2이고, fmin=8 이고, fmax=15이면, K'=K"=2p×14 형태의 인터리버 사이즈들은 7의 배수들이고, 이에 따라, 테일 바이팅 3GPP TC를 이용하는 경우에 유효하지 않은 인터리버 사이즈들이다. 따라서, 이 경우는 약간 변경하여 다루어져야만 하는데, 예를 들면, K"가 7의 배수가 아닐 때에는 K'=K"를 이용하고; 그렇지 않고 K"가 7의 배수이고, δ(K")가 7의 배수가 아닌 작은 양 또는 음의 정수일 때에는 K'=K"+δ(K")를 이용한다.
테일 바이팅 인터리버들에 대한 유효하지 않은 선택인 K" 사이즈들의 경우, 관련된 인터리버 사이즈 K'를 결정하는 하나의 간단한 방법은 K"로부터 d×C를 빼는 것인데(더하기는 유효할 때 타당함), 여기서 d는 작은 양의 정수이고, d는 7의 배수가 아니다. ARP 인터리버의 경우, C는, 이용 가능한 사이즈들의 집합에서 K'에 인접한 블럭 사이즈들에 이용되는 ARP 인터리버 사이클 길이일 수 있다. (ARP 인터리버의 블럭 사이즈가 사이클 길이들 C의 배수라는 점을 상기한다.) 즉, K"가 7의 배수일 때,
K'=K"-dC
혹은
K'=K"+dC
이다. C가 보통은 짝수 정수, 예를 들면, 4, 8, 12 또는 16이기 때문에, 이 조정은 두 가지 이점들을 주는데, 즉, (a) K'는 7의 배수가 아니라는 점과, (b) K'는 C의 배수이어서 사이즈 K'의 ARP 인터리버가 디자인될 수 있다는 점이다.
간단히 하기 위해, 동일한 d가 조정될 필요가 있는 모든 K"에 대해 선택될 수 있다. d를 선택하기 위한 한 가지 중요한 고려 사항은, 수학식 3 또는 4에 의해 획득된 모든 사이즈들이, 이에 따라 정의된 CF 인터리버에 대해 넓은 범위의 병렬 처리를 지원하는 것을 허용하는 팩터들의 실질적인 수를 가지도록 되어야 한다는 점이다.
인터리버 사이즈 선택의 예:
3GPP LTE의 경우, 40 및 5114 비트들 사이의 각 블럭 사이즈에 대한 CF 인터리버를 정의하는 것은 필수적인 것은 아니다. 우수하게 디자인된 CF 인터리버들의 제한되거나 혹은 작은 집합은 모든 블럭 사이즈들을 커버하는데에 충분하다. 정의되지 않은 블럭 사이즈들의 경우(즉, CF 인터리버들이 정의되지 않은 경우), 제로 패딩(zero-padding)(즉, 필러 비트들을 추가하는것)이 상술된 바와 같이 효과적으로 이용될 수 있다.
제1 예로서, 테이블(105) 내의 3GPP LTE(Long Term Evolution)에 대한 정보 블럭 사이즈들을 커버하는데에 적합한 인터리버들의 집합은, 상술된 세미로그 슬라이싱 방법에 기초하여 정의될 수 있다. 구체적으로는,
K"=2p×f, p=4,5,...9;f=8,9,...,15
이고, K'는 K"로부터 결정된다. 인터리버 사이즈들은 다음과 같이 결정된다: p=4,5,6,7,8,9 및 f=8,9,10,11,12,13,15에 대해서는 K'=K"를 이용하고, p=4,5,6,7,8,9 및 f=14에 대해서는 K'=K"-dC를 이용하여, 128에서 7680까지의 K를 커버한다. p=9에 대응하는 마지막 세 사이즈들(f=13,14,15)은, Kmin=128에서 Kmax=6144가 되도록 제거될 수 있다. 수학식 3은, 테일 바이팅 TC를 다루기 위해 f=14일 때 d=2와 함께(즉, 7의 배수들의 인터리버 사이즈들을 회피하기 위해서) 이용된다. 105 내의 인터리버 사이즈들이 결정되면, CF 인터리버는 각 인터리버 사이즈에 대해 디자인될 수 있다.
임의의 정보 블럭 사이즈가 K인 경우, 회로(103)는, 105로부터 K와 동일하거나 더 큰 K'의 가장 작은 값을 선택함으로써 K에 대해 이용될 인터리버 사이즈 K'를 결정할 수 있다. 알려진 K 및 fmin=2b, fmax=2b+1-1을 이용하여(여기서 b는 정수), 파라미터들 p 및 f는 하기와 같이 산출될 수 있다.
특히, 수학식 5 내의 파라미터들에 대해, b=3이고,
이다.
파라미터들 p 및 f를 이용하여, 블럭 사이즈 K'는 수학식 2 또는 5를 이용하여 산출될 수 있고, 더욱이, f가 7의 배수이고 테일 바이팅 인코딩이 이용되는 경우에는, 수학식 3 또는 4를 이용하여 산출된 인터리버 사이즈가 덧셈에 이용될 수 있다. 사이즈 K'의 인터리버와 연관된 파라미터들은 그 후, 보통은 통신 디바이스에 대한 메모리 내에 저장되는 인터리버 파라미터에 대한 저장 수단(105)으로부터 탐색된다.
제2 예로서, 40 내지 8192 비트들의 K를 커버링하기 위한 완전한 인터리버 사이즈들 K'의 제안된 집합은:
K'∈[264,8192]의 경우, K'=2p×f, p=3,...,7; f=33,34,...,64이고;
K'가 264 미만인 경우, K'=40,48,...,256이 되도록 8의 스텝 사이즈가 이용된다.
이들 사이즈들은 또한 하기에 리스팅된다.
상기에 도시된 사이즈들은 8192 비트들의 최대 K'에 대해 정의된 일례에 지나지 않고, 42 정보 블럭 사이즈들의 비교 연구에 이용된다는 점을 유의한다. 6144 비트들과 같은 다른 최대값이 이용된다면, 최대값보다 더 큰 임의의 K'는 리스트로부터 제거될 것이다. 또한, 간단히 하기 위해, 사이즈들은, 테일링된 구성 코드들 또는 테일 바이팅 구성 코드들을 이용하는 것 사이의 차이를 고려하지 않았다. 터보 인코더가 테일 바이팅으로 만들어지면, 7의 배수들인 K'는 이용될 수 없다. 이들은 상술된 바와 같이 제거되거나 혹은 변경될 것이다. 마지막으로, 추가 인터리버 사이즈들은 인터리버들 사이의 간격을 감소시키도록 상기의 그것들에 추가될 수 있다. 예를 들면, 64의 최대 간격이 이용되면, 여분의 인터리버들은, 테이블 내의 간격 128을 갖는 인터리버들 사이에 정의될 것이다. 테일 바이팅이 그 후 이용되고 7의 K' 배수가 제거되면, 최대 간격은 다시 128이 된다.
인터리버 사이즈 선택의 또 다른 예로서, 시스템은, 수송 블럭(transport block : TB)(분할 이전의 정보 비트들의 수)이 소정의 값 보다 클 때에만, CF 인터리버를 이용할 수 있다. 예를 들면, 최대로 정의된 사이즈가 5114이면, 수송 블럭이 5114 보다 클때, CF 인터리버, 예를 들면, ARP 또는 QPP가 이용될 수 있다. 이들 경우들에서, 분할은 5114보다 작은 K'를 생성할 수 있지만, CF 인터리버는 그 K'에 대해 이용된다. 따라서 K는, 분할 이전의 수송 블럭 사이즈에 따라, 제1 인터리버(예를 들면, 3gpp, 비CF 인터리버, 또는 다른 인터리버) 및 제2 인터리버(예를 들면, 비경합 인터리버) 양쪽 모두를 이용하여 터보 인터리빙될 수 있다. 제1 및 제2 인터리버는 K'의 다른 집합들을 가질 수 있다. 예를 들면, 제2 인터리버는 상기와 같이 K'로 정의되더라도, 제1 인터리버가 모든 K=K'에 대해 사실상 정의될 수 있다. 몇몇 경우들에서, 단일 또는 소수의 프로세서들이 제1 인터리버를 위해 이용될 수 있다.
ARP 인터리버의
3GPP 롱 텀 에볼루션(LTE)을 위한 정보 블럭 사이즈들을 커버하는데에 적합한 42 CF ARP 인터리버들의 부분 집합이 테이블 1 내에 도시된다. 사이클 길이 C=4는 K<1024의 경우에 이용되고, C=8은 K≥1024의 경우에 이용된다. 더 큰 사이클 길이 C는 더 큰 블럭 사이즈들에서 보다 나은 최소 거리 dmin으로 이어진다. 또한, A=3 대신에, A=0이 모든 사이즈들에 대해 이용된다. 또한, 각 K가 서로 다른 α(·) 및 β(·) 벡터를 갖도록 허용하는 대신에, 오직 α 및 β 값들의 작은 집합만 인터리버 정의의 저장소를 감소시키도록 허용된다. 허용된 α 및 β 값들의 집합은 하기와 같이 정의된다.
사이클 길이 C=4 일때,
이고, 사이클 길이 C=8 일때,
이다. 따라서 α의 각 행은 α 벡터로서 이용될 수 있고, β의 각 행은 β 벡터로서 이용될 수 있다. 따라서 인덱스 a 및 b는 αβ의 행들로 인덱싱하도록 각 K에 대해 정의되는데, 여기서 1≤a≤2, 1≤b≤2C이다. 인덱싱 방법은 ARP 인터리버의 저장소를 사실상 감소시키는데, 그 이유는 인터리버 마다 P0(8 비트들), 인덱스 a(1 비트) 및 b(3-4 비트들)만이 저장될 필요가 있기 때문이다. 사이클 길이 C는, K가 1024 비트들보다 더 적은지 아닌지에 기초해 결정될 수 있다. 또한, C=4인 경우와 비교하여 C=8를 이용하기 위한 파라미터 저장소의 양의 차이는, αβ 행렬의 사이즈의 차이에 지나지 않는데, 이것은 사소한 것이므로, 필요하다면 더 큰 C를 자유롭게 사용하는 것이 허용된다.
인터리버 파라미터에 대한 저장 수단(105)은, 테이블 1의 적어도 하나의 행으로부터 입수된 K', C, P0, α(·) 및 β(·)의 값들을 이용하여 ARP 인터리버 파라미터들을 저장할 수 있다. 인터리버(201)는, 하기 테이블의 적어도 하나의 행으로부터 입수된 K', C, P0, α(·) 및 β(·)의 값들과 함께 ARP 인터리버를 이용할 수 있다.
테이블 1. LTE에 대해 정의된 ARP 인터리버들의 집합의 파라미터들. 일정한 오프셋 A=0은 모든 사이즈들에 이용된다. 32 보다 적거나 또는 동일한 병렬 윈도우들을 당연히 이용하는 가능한 병렬 처리들 M이 리스팅된다.
ARP 인터리버의 특성들
인터리버 테이블을 수정하기 위한 몇몇 방법들이 존재한다. 예를 들면, 저장소는, 두 개 이상의 인터리버 사이즈에 적용되는 ARP 파라미터들의 집합을 이용함으로써 감소될 수 있다. 예를 들면, 1024 비트, 2048 비트, 4096 비트 인터리버들이 모두 동일한 ARP 파라미터들을 이용할 수 있다. 또 다른 변형예에서는, 필요하다면, 테이블의 몇몇 행들은 다른 C 값들에 기초하여 다시 디자인될 수 있다. 또 다른 변형예에서는, 파라미터들(예를 들면, α(0) 및 β(0))의 몇몇 엔트리들(entries)은 고정(예를 들면, 항상 제로)될 수 있다.
이하는 테이블 1을 입수하는데에 이용되는 인터리버 선택 절차에 대한 몇몇 추가 코멘트들이다.
1. 일정한 오프셋 값 A=3 또는 A=0이 저장소를 감소시키기 위해 선택된다.
2. 성능 연구 및 저장소에 기초하여, 사이클 길이 C=4가 K'<1024인 경우에 이용되고, C=8이 K'≥1024인 경우에 이용된다.
3. 각 블럭 사이즈의 경우, (테일 바이팅 인코딩을 이용한) ARP 인터리버 성능이, 3GPP 터보 코드에 대한 사양서에 정의된 인터리버를 이용한 성능에 가까운지 혹은 더 나은지를 확인하기 위해 시뮬레이션들이 수행된다.
4. 수학식 5에 기초한 테이블 1은 인터리버 사이즈들의 특정 집합(예를 들면, 40 내지 8192)을 커버하도록 정의되었다. 바람직하다면, 다른 인터리버 사이즈들이 삭제되거나 추가될 수 있다.
5. 105에서 정의된, 7의 배수들이 아닌 모든 인터리버들은, 허용할 수 있는 성능 감쇠에 의존하는 테일링된 터보 코드 또는 테일 바이팅 터보 코드들에 대해 이용될 수 있다. 7의 배수들인 그것들은 또한 테일링된 것에 이용될 수 있다.
QPP 인터리버의
3GPP LTE(Long Term Evolution)에 대한 정보 블럭 사이즈들을 커버하는데에 적합한 42 CF QPP 인터리버의 부분 집합이 테이블 2에 도시된다. 이들 인터리버들은, 디인터리버도 또한 QPP가 되도록 2차의 역 다항식(quadratic inverse polynomial)을 갖는다.
인터리버 파라미터에 대한 저장 수단(105)은 테이블 2의 적어도 하나의 행에서 입수된 K', f1, f2의 값들을 이용하여 QPP 인터리버 파라미터들을 저장할 수 있다. 인터리버(201)는 하기의 테이블의 적어도 하나의 행으로부터 입수된 K', f1, f2의 값들과 함께 QPP 인터리버를 이용할 수 있다:
테이블 2. LTE에 대해 정의된 QPP 인터리버들의 집합의 파라미터들. 32 보다 작거나 동일한 가능한 병렬 처리들이 리스팅된다.
도 3은 수신기(300)의 블럭도이다. 입력에서, 필러 핸들링 회로(302)는, 채널(예를 들면, 무선)을 통해 송신될 수 있었던 신호 벡터를 수신한다. 회로(306)는 그 후 인터리버 사이즈 K'를 결정하는데, 이것은 상술된 바와 같은 유사한 방식, 예를 들면, 저장소(308)로부터의 테이블 룩업(lookup)을 수행함으로써, 또는 수학식 7, 8 및 2와 같은 산출들을 통해 행해질 수 있다. 따라서, 정보 블럭 사이즈가 K인 경우, 디코더(304)는 인코더(101)에 의해 이용된 동일한 인터리버 사이즈 K'를 이용한다. 필러 핸들링 회로(302)는, 수신된 신호 벡터 및 필러 비트들 포지션들을 적절하게 프로세싱하는 데에 이용된다(예를 들면, 필러 비트 포지션들이 알려지면, 대응하는 LLR 진폭들이, 디코딩하는 동안 매우 높은 진폭들로 설정될 수 있다). 그 후 터보 디코더(304)는 디코딩을 수행하고, 길이 K'의 입력 블럭의 추정 을 입수한다. 마지막으로 정보 블럭 추출 회로(310)는 로부터 추정된 정보 블럭을 추출한다. 필러 핸들링 회로(302)는 설명을 용이하게 하기 위해 터보 디코더의 외부에 도시되었지만, 이들 두 개는 결합되어 구현될 수 있다.
도 4는 도 3의 터보 디코더의 블럭도이다. 명백한 바와 같이, 인터리버(402) 및 디인터리버(401)는 디코딩 회로(403)와 디코딩 회로(404) 사이에 있다. 반복 디코딩은 본 기술분야에 공지된 바와 같이 행해지지만, 종래 기술의 디코더들과는 달리, 인터리버 사이즈 K'가 사이즈들의 집합으로부터의 K"와 관련되는데; 여기에서 사이즈들의 집합은 K"=ap×f, pmin≤p≤pmax;fmin≤f≤fmax를 포함하며, 여기에서 a는 정수이고, f는 fmin 및 fmax 사이의 연속하는 정수이고, p는 pmin 및 pmax 사이의 정수값들을 취하고, a>1이고, pmax>pmin이고, pmin>1 이다. 파라미터 Kfiller는, 터보 디코더(304)에 의해 필요하게 될 수도 있고 또는 필요하게 되지 않을 수도 있어서, 도 4에 점선으로 표시된다.
상술된 바와 같이, 하나의 실시예에서 K'=K"이다. 또 다른 실시예에서 K"가 (2m-1)의 배수가 아닐 때 K'=K"이며, 그렇지 않고 K"가 (2m-1)의 배수일 때 K'=K"+δ(K")인데, 여기서 m은 구성 컨볼루셔널 인코더의 메모리 길이이고, δ(K")는 (2m-1)의 배수와 동일하지 않은 작은 양 또는 음의 정수이다. 하나의 실시예에서, m=3이다.
인터리버(402)는 순열 π(i)=(iP0+A+d(i)) mod K'를 활용할 수 있는데, 여기서 0≤i≤K'-1은 인터리빙 후의 심볼 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들 내의 인터리버 사이즈이고, P0는 K'에 서로 소인 수이고, A는 상수이고, C는 K'를 나누는 작은 수이고, d(i)는 d(i)=β(i mod C)+P0×α(i mod C) 형태의 디더 벡터인데, 여기서 α(·) 및 β(·)는 0≤i≤K'-1에 대해 주기적으로 적용되는, 각각이 길이 C인 벡터들이다. K', C, P0, α(·) 및 β(·)의 값들은 바람직하게는 테이블 1의 행으로부터 취해진다. 디인터리버(401)는 인터리버(402)의 반대의 기능을 수행한다.
인터리버(402)는 순열 π(i)=(f1×i+f2×i2) mod K'를 활용할 수 있는데, 여기서 0≤i≤K'-1는 인터리빙 후의 심볼 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들의 인터리버 사이즈이고, f1 및 f2는 인터리버를 정의하는 팩터들이다. K', f1, f2의 값들은 바람직하게는 테이블 2의 행으로부터 취해진다. 디인터리버(401)는 인터리버(402)의 반대의 기능을 수행한다.
도 5는 송신기(100)의 동작을 나타낸 흐름도이다. 논리 흐름은 단계 501에서 시작하며, 여기에서 회로(103)는, 사이즈들의 집합으로부터의 K"와 관련된 인터리버 사이즈 K'를 결정하는데; 여기에서 사이즈들의 집합은 K"=ap×f, pmin≤p≤pmax;fmin≤f≤fmax를 포함하며, 여기에서 a는 정수이고, f는 fmin 및 fmax 사이의 연속하는 정수이고, p는 pmin 및 pmax 사이의 정수값들을 취하고, a>1이고, pmax>pmin이고, pmin>1 이다. 상술된 바와 같이, 하나의 실시예에서 K'=K"이다. 또 다른 실시예에서 K"가 (2m-1)의 배수가 아닐 때 K'=K"이며, 그렇지 않고 K"가 (2m-1)의 배수일 때 K'=K"+δ(K")를 이용하는데, 여기서 m은 구성 컨볼루셔널 인코더의 메모리 길이이고, δ(K")는 (2m-1)의 배수와 동일하지 않은 작은 양 또는 음의 정수이다. 하나의 실시예에서, m=3이다.
단계 503에서 필러 삽입 회로(109)는 사이즈 K의 정보 블럭을 수신하고, 사이즈 K'의 입력 블럭 u 내에 사이즈 K의 정보 블럭을 채워넣고, 입력 블럭 u를 출력한다. 인터리버(201)는 그 후 사이즈 K'의 입력 블럭을 (바람직하게는 비경합 인터리버를 사용하여) 인터리빙하고(단계 507), 사이즈 K'의 인터리빙된 블럭을 인코딩 회로(203)에게 보낸다(단계 509). 마지막으로, 단계 511에서, 원래의 입력 블럭 및 인터리빙된 입력 블럭이 인코딩된다.
상술된 바와 같이, 입력 블럭을 인터리빙하는 단계는 순열 π(i)=(iP0+A+d(i)) mod K'를 이용하는 단계를 포함할 수 있는데, 여기서 0≤i≤K'-1은 인터리빙 후의 비트 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 비트 인덱스이고, K'는 비트들의 인터리버 사이즈이고, P0는 K'에 서로 소인 수이고, A는 상수이고, C는 K'를 나누는 작은 수이고, d(i)는 d(i)=β(i mod C)+P0×α(i mod C) 형태의 디더 벡터인데, 여기서 α(·) 및 β(·)는 0≤i≤K'-1에 대해 주기적으로 적용되는, 각각이 길이 C인 벡터들이다. K', C, P0, α(·) 및 β(·)의 값들은 바람직하게는 테이블 1의 행으로부터 취해진다. 입력 블럭을 인터리빙하는 단계는 또한 순열 π(i)=(f1×i+f2×i2) mod K'를 이용하는 단계를 포함할 수 있는데, 여기서 0≤i≤K'-1는 인터리빙 후의 심볼 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들의 인터리버 사이즈이고, f1 및 f2는 인터리버를 정의하는 팩터들이다. K', f1, f2의 값들은 바람직하게는 테이블 2의 행으로부터 취해진다.
도 6은 도 3의 수신기의 동작을 나타낸 흐름도이다. 논리 흐름은 단계 601에서 시작하는데, 여기서 회로(306)는 인터리버 사이즈 K'를 결정한다. 단계 603에서, 회로(302)는 수신된 신호 벡터에 필러 비트 정보를 추가하는데, 예를 들면, 필러 비트들 및 필러 비트 포지션들이 알려진 경우, 회로(302)는 터보 디코더 입력 내의 이들 포지션들의 로그 우도율(LLR)을 높은 진폭으로 설정할 수 있다. 단계 607에서 터보 디코더는 사이즈 K'의 인터리버 및 디인터리버를 이용하여 디코더 입력 블럭을 디코딩하고, 길이 K'의 입력 블럭의 추정된 를 출력한다. 단계 609에서 정보 블럭 추출 회로(310)는 길이 K의 정보 블럭의 추정을 획득하기 위해 필러 비트들을 제거한다. 마지막으로 단계 611에서, 추정된 정보 블럭이 출력된다.
특정한 실시예들을 참조하여 본 발명이 상세히 도시되고 설명되었지만, 형태 및 세부사항의 다양한 변경들이 본 발명의 정신 및 범주를 벗어나지 않고 실시될 수 있다는 점이 본 기술 분야에 통상의 지식을 가진 자에 의해 이해될 것이다. 하나의 예에서, 인터리버 테이블은:(a) 예를 들면, 필러 비트들이 없거나 또는 소수의 필러 비트들을 갖는 핸들링 되어야 하는 임의의 특별한 블럭 사이즈들을 커버하도록 정의된 인터리버 사이즈들의 추가 집합을 사용하는 경우, (b)인터리버 사이즈들이 세미로그 슬라이스 사이즈들로부터의 작은 값을 더하거나 또는 빼는 것에 의해 약간 조정될 수 있는 경우를 포함하는 특별한 경우들을 더 다루기 위해 개선될 수 있다. 또 다른 예에서, 본 발명은 바이너리 입력 터보 인코더를 가정하여 상술되었지만, 이와 동일한 원리는 터보 인코더가 입력으로서 심볼들을 취할 때에도 적용될 수 있다. 예를 들면, 듀오 바이너리 터보 코드는 동시에 두 바이너리 비트들의 심볼을 취하고, 터보 인터리버는 심볼들을 순열로 배치한다(또한 스크램블링, 예를 들면 심볼 내의 비트들을 교체하는 것이 수행될 수 있다). 이러한 경우에, 입력 블럭 사이즈는 심볼들로 측정되고, 인터리버 사이즈는 입력 블럭 내의 심볼들의 수와 동일하다. 또 다른 예에서, 상기의 설명은, 인터리버 사이즈들 및 인터리버 파라미터들이 룩업 테이블 내에 저장되는 점을 가정하였지만, 그들은 다른 수단들, 예를 들면 대수 산출(algebraic calculation)을 통해 결정될 수도 있다. 또 다른 예에서, 상기의 설명은 터보 코드를 가정하였지만, 본 방법은 또한, 예를 들면, LDPC(low-density parity check) 코드들, RS(Reed-Solomon) 코드들 등을 포함하는 다른 FEC 스킴들에게도 적용가능하다. 이러한 변경들은 이하의 특허청구범위들의 범주 내에 있는 것이다.

Claims (8)

  1. 터보 인코더를 동작시키기 위한 방법으로서,
    사이즈 K의 정보 블럭을 수신하는 단계;
    사이즈들의 집합으로부터의 K"와 관련된 인터리버 사이즈(interleaver size) K'를 결정하는 단계 ― 상기 사이즈들의 집합은 K"=ap×f, pmin≤p≤pmax;fmin≤f≤fmax를 포함하며, a는 정수이고, f는 fmin 및 fmax 사이의 연속하는 정수(continuous integer)이고, p는 pmin 및 pmax 사이의 정수값들을 취하고, a>1이고, pmax>pmin이고, pmin>1 이며, 상기 집합은 범위의 어느 하나의 다른 K"를 포함하지 않음 ―;
    상기 사이즈 K의 정보 블럭을 사이즈 K'의 입력 블럭 내에 채워넣는(padding) 단계;
    사이즈 K'의 인터리버를 이용하여 상기 입력 블럭을 인터리빙(interleaving)하는 단계 ― 상기 입력 블럭을 인터리빙하는 단계는, 순열(permutation) π(i)=(f1×i+f2×i2) mod K'를 이용하는 단계를 포함하며, 0≤i≤K'-1는 인터리빙 후의 심볼 포지션들(symbol positions)의 시퀀셜 인덱스(sequential index)이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들의 인터리버 사이즈이고, f1 및 f2는 상기 인터리버를 정의하는 팩터들임 ― ;
    코드워드 블럭을 획득하기 위해, 원래의 입력 블럭 및 상기 인터리빙된 입력 블럭을 인코딩하는 단계; 및
    상기 코드워드 블럭을 채널을 통해 송신하는 단계
    를 포함하는, 터보 인코더를 동작시키기 위한 방법.
  2. 제1항에 있어서, K', f1, f2의 값들은,
    의 적어도 하나의 행으로부터 취해지는, 터보 인코더를 동작시키기 위한 방법.
  3. 터보 인코더를 동작시키기 위한 방법으로서,
    사이즈 K'의 입력 블럭을 수신하는 단계; 및
    사이즈 K'의 인터리버 및 순열 π(i)=(iP0+A+d(i)) mod K'를 이용하여 상기 입력 블럭을 인코딩하는 단계 ― 0≤i≤K'-1은 인터리빙 후의 비트 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 비트 인덱스이고, P0는 K'에 서로 소(relatively prime)인 수이고, A는 상수 3이고, C는 K'를 나누는 작은 수이고, d(i)는 d(i)=β(i mod C)+P0×α(i mod C) 형태의 디더 벡터(dither vector)이며, α(·) 및 β(·)는, 0≤i≤K'-1에 대해 주기적으로 적용되는, 각각이 길이 C인 벡터들이고, K', C, P0, α(·) 및 β(·)의 값들은,
    사이클 길이 C=4 일 때,
    사이클 길이 C=8 일 때,
    의 적어도 하나의 행으로부터 취해짐 ―
    를 포함하는, 터보 인코더를 동작시키기 위한 방법.
  4. 터보 인코더를 동작시키기 위한 방법으로서,
    사이즈 K'의 입력 블럭을 수신하는 단계; 및
    사이즈 K'의 인터리버 및 순열 π(i)=(f1×i+f2×i2) mod K'를 이용하여 상기 입력 블럭을 인코딩하는 단계 ― 0≤i≤K'-1는 인터리빙 후의 심볼 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들의 인터리버 사이즈이고, f1 및 f2는 상기 인터리버를 정의하는 팩터들이고, K', f1, f2의 값들은,
    의 적어도 하나의 행으로부터 취해짐 ―
    를 포함하는, 터보 인코더를 동작시키기 위한 방법.
  5. 터보 인코더를 동작시키기 위한 장치로서,
    사이즈들의 집합으로부터의 K"와 관련된 인터리버 사이즈 K'를 결정하는 인터리버 사이즈 결정 회로 ― 상기 사이즈들의 집합은 K"=ap×f, pmin≤p≤pmax;fmin≤f≤fmax를 포함하며, a는 정수이고, f는 fmin 및 fmax 사이의 연속하는 정수이고, p는 pmin 및 pmax 사이의 정수값들을 취하고, a>1이고, pmax>pmin이고, pmin>1 이고, 상기 집합은 범위의 어느 하나의 다른 K"를 포함하지 않음― ;
    사이즈 K의 정보 블럭을 수신하고, 상기 사이즈 K의 정보 블럭을 사이즈 K'의 입력 블럭 내에 채워 넣는 필러 삽입 회로(filler insertion circuitry);
    상기 사이즈 K'의 입력 블럭을 인터리빙하는 인터리버 ― 인터리버는 순열 π(i)=(f1×i+f2×i2) mod K'를 이용하며, 0≤i≤K'-1는 인터리빙 후의 심볼 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들의 인터리버 사이즈이고, f1 및 f2는 상기 인터리버를 정의하는 팩터들임 ― ; 및
    코드워드 블럭을 획득하기 위해 원래의 입력 블럭 및 상기 인터리빙된 입력 블럭을 인코딩하는 인코더
    를 포함하는, 터보 인코더를 동작시키기 위한 장치.
  6. 제5항에 있어서, K', f1, f2의 값들은
    의 적어도 하나의 행으로부터 취해지는, 터보 인코더를 동작시키기 위한 장치.
  7. 터보 인코더를 동작시키기 위한 장치로서,
    사이즈 K'의 입력 블럭을 수신하는 수신 회로; 및
    사이즈 K'의 인터리버 및 순열 π(i)=(iP0+A+d(i)) mod K'를 이용하여 입력 블럭을 인코딩하는 인코더 ― 0≤i≤K'-1은 인터리빙 후의 비트 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 비트 인덱스이고, P0는 K'에 서로 소인 수이고, A는 상수 3이고, C는 K'를 나누는 작은 수이고, d(i)는 d(i)=β(i mod C)+P0×α(i mod C) 형태의 디더 벡터이며, α(·) 및 β(·)는 0≤i≤K'-1에 대해 주기적으로 적용되는, 각각이 길이 C인 벡터들이고, K', C, P0, α(·) 및 β(·)의 값들은,
    사이클 길이 C=4 일 때,
    사이클 길이 C=8 일 때,
    의 적어도 하나의 행으로부터 취해짐 ―
    를 포함하는, 터보 인코더를 동작시키기 위한 장치.
  8. 터보 인코더를 동작시키기 위한 장치로서,
    사이즈 K'의 입력 블럭을 수신하는 수신 회로; 및
    사이즈 K'의 인터리버 및 순열 π(i)=(f1×i+f2×i2) mod K'를 이용하여 입력 블럭을 인코딩하는 인코더 ― 0≤i≤K'-1는 인터리빙 후의 심볼 포지션들의 시퀀셜 인덱스이고, π(i)는 포지션 i에 대응하는 인터리빙 전의 심볼 인덱스이고, K'는 심볼들의 인터리버 사이즈이고, f1 및 f2는 상기 인터리버를 정의하는 팩터들이고, K', f1, f2의 값들은,
    의 적어도 하나의 행으로부터 취해짐 ―
    를 포함하는, 터보 인코더를 동작시키기 위한 장치.
KR1020097011215A 2006-11-30 2007-11-12 비경쟁 인터리버들을 이용한 터보-인코딩 KR101459801B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US86789906P 2006-11-30 2006-11-30
US60/867,899 2006-11-30
US11/683,024 US7949926B2 (en) 2006-11-30 2007-03-07 Method and apparatus for encoding and decoding data
US11/683,024 2007-03-07
PCT/US2007/084390 WO2008067149A2 (en) 2006-11-30 2007-11-12 Turbo-encoding with contention-free interleavers

Publications (2)

Publication Number Publication Date
KR20090094262A true KR20090094262A (ko) 2009-09-04
KR101459801B1 KR101459801B1 (ko) 2014-11-13

Family

ID=39186041

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097011215A KR101459801B1 (ko) 2006-11-30 2007-11-12 비경쟁 인터리버들을 이용한 터보-인코딩

Country Status (12)

Country Link
US (2) US7949926B2 (ko)
EP (3) EP2442450B1 (ko)
JP (2) JP4858991B2 (ko)
KR (1) KR101459801B1 (ko)
CN (1) CN101601188B (ko)
AR (1) AR064088A1 (ko)
AT (1) ATE553541T1 (ko)
BR (1) BRPI0721176B1 (ko)
ES (3) ES2381595T3 (ko)
PL (3) PL2102989T3 (ko)
RU (1) RU2437208C2 (ko)
WO (1) WO2008067149A2 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449467B (zh) * 2006-05-17 2013-12-18 日本电气株式会社 Turbo编码器以及用于其的HARQ处理方法
US8356232B2 (en) 2006-10-06 2013-01-15 Motorola Mobility Llc Method and apparatus for encoding and decoding data
US7949926B2 (en) * 2006-11-30 2011-05-24 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data
JP4922453B2 (ja) 2007-09-25 2012-04-25 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 制御チャネル要素の干渉のランダム化
US8250448B1 (en) * 2008-03-26 2012-08-21 Xilinx, Inc. Method of and apparatus for implementing a decoder
US8284732B2 (en) 2009-02-03 2012-10-09 Motorola Mobility Llc Method and apparatus for transport block signaling in a wireless communication system
US9130728B2 (en) 2009-06-16 2015-09-08 Intel Mobile Communications GmbH Reduced contention storage for channel coding
CN101931419B (zh) * 2009-06-24 2013-04-03 中兴通讯股份有限公司 一种turbo码内交织器的计算方法及装置
CN102484484B (zh) 2009-08-25 2014-08-20 富士通株式会社 发送机、编码装置、接收机以及解码装置
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
US8448033B2 (en) * 2010-01-14 2013-05-21 Mediatek Inc. Interleaving/de-interleaving method, soft-in/soft-out decoding method and error correction code encoder and decoder utilizing the same
RU2010111027A (ru) * 2010-03-24 2011-09-27 ЭлЭсАй Корпорейшн (US) Устройство и способ для высокоскоростного расчета таблиц перемежения для нескольких стандартов беспроводной связи
US8527833B2 (en) * 2010-09-13 2013-09-03 Hughes Network Systems, Llc Method and apparatus for a parameterized interleaver design process
CN101969310B (zh) * 2010-10-22 2012-11-28 上海交通大学 Turbo码并行译码器的QPP内交织器及其交织方法
KR101286021B1 (ko) * 2012-02-02 2013-07-19 주식회사 이노와이어리스 인터리버 인덱스 생성장치 및 방법
US9128888B2 (en) 2012-08-30 2015-09-08 Intel Deutschland Gmbh Method and apparatus for turbo decoder memory collision resolution
CN107659384A (zh) * 2012-11-16 2018-02-02 华为技术有限公司 数据处理的方法和装置
CN103973319B (zh) * 2013-02-06 2017-04-19 联想(北京)有限公司 全整数Turbo码迭代译码的方法和系统
JP6193051B2 (ja) * 2013-08-15 2017-09-06 Necプラットフォームズ株式会社 アドレス生成回路及びアドレス生成方法
WO2015137712A1 (en) 2014-03-14 2015-09-17 Samsung Electronics Co., Ltd. Method and apparatus for controlling interleaving depth
US10135467B2 (en) * 2016-06-08 2018-11-20 Echelon Corporation Methods and systems for applying an improved interleaver for modems operating on power grid
CN110071728B (zh) * 2018-01-24 2021-02-05 华为技术有限公司 一种交织方法及交织设备
CN112398486B (zh) * 2020-11-10 2023-01-31 中国人民解放军战略支援部队信息工程大学 利用多种纠错方式进行优化的Turbo码交织参数识别方法及系统

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100238714B1 (ko) * 1990-10-24 2000-01-15 루엘랑 브리지뜨 데이타를 전송 및 기억시키기 위한 방법, 코더 및 디코더
US5898698A (en) * 1996-09-24 1999-04-27 Orckit Communications Ltd. Multiple codeword interleaver method and apparatus
KR19990012821A (ko) * 1997-07-31 1999-02-25 홍성용 전자기파 흡수체 조성물과 이의 제조 방법, 전자기파 흡수용도료 조성물과 이의 제조 방법 및 이의 도포 방법
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
US6347385B1 (en) * 1998-08-03 2002-02-12 Nortel Networks Limited Interleavers for turbo code
US6427214B1 (en) * 1998-09-29 2002-07-30 Nortel Networks Limited Interleaver using co-set partitioning
FR2785743A1 (fr) * 1998-11-09 2000-05-12 Canon Kk Dispositif et procede d'adaptation des turbocodeurs et des decodeurs associes a des sequences de longueur variable
US6304991B1 (en) * 1998-12-04 2001-10-16 Qualcomm Incorporated Turbo code interleaver using linear congruential sequence
KR100346170B1 (ko) * 1998-12-21 2002-11-30 삼성전자 주식회사 통신시스템의인터리빙/디인터리빙장치및방법
FR2790621B1 (fr) * 1999-03-05 2001-12-21 Canon Kk Dispositif et procede d'entrelacement pour turbocodage et turbodecodage
US6314534B1 (en) * 1999-03-31 2001-11-06 Qualcomm Incorporated Generalized address generation for bit reversed random interleaving
EP1095460A4 (en) * 1999-04-02 2002-04-03 Samsung Electronics Co Ltd INTERLEAVING / DE-INTERLACING SYSTEM AND METHOD IN A COMMUNICATION SYSTEM
JP3574405B2 (ja) * 1999-04-06 2004-10-06 サムスン エレクトロニクス カンパニー リミテッド 2次元インタリービング装置及び方法
FI106758B (fi) * 1999-04-16 2001-03-30 Nokia Networks Oy Segmentointimekanismi lohkoenkooderia varten
US6775800B2 (en) * 2000-01-03 2004-08-10 Icoding Technology, Inc. System and method for high speed processing of turbo codes
JP3399904B2 (ja) * 2000-03-17 2003-04-28 松下電器産業株式会社 インタリーブアドレス生成装置
US6785859B2 (en) * 2000-08-04 2004-08-31 Texas Instruments Incorporated Interleaver for variable block size
US6854077B2 (en) * 2000-08-05 2005-02-08 Motorola, Inc. Apparatus and method for providing turbo code interleaving in a communications system
KR100713331B1 (ko) * 2000-12-23 2007-05-04 삼성전자주식회사 부호분할다중접속 이동통신시스템의 반복복호 중지 장치 및 방법
US7170849B1 (en) * 2001-03-19 2007-01-30 Cisco Systems Wireless Networking (Australia) Pty Limited Interleaver, deinterleaver, interleaving method, and deinterleaving method for OFDM data
US7236480B2 (en) * 2002-06-07 2007-06-26 Sandbridge Technologies, Inc. Method of first interleaving of a two interleaver transmitter
EP1576735B1 (en) * 2002-12-16 2016-04-06 Telecom Italia S.p.A. Address generation for interleavers in turbo encoders and decoders
JP3880542B2 (ja) 2003-05-19 2007-02-14 松下電器産業株式会社 誤り訂正符号化/復号化装置および誤り訂正符号化/復号化方法
JP3847733B2 (ja) 2003-06-12 2006-11-22 松下電器産業株式会社 マルチキャリア通信方法及びその通信装置
US7428669B2 (en) * 2003-12-07 2008-09-23 Adaptive Spectrum And Signal Alignment, Inc. Adaptive FEC codeword management
KR100739511B1 (ko) * 2004-06-25 2007-07-13 삼성전자주식회사 직교 주파수 분할 다중 방식을 사용하는 통신 시스템에서파일럿 신호 송수신 장치 및 방법
US7583586B2 (en) * 2004-07-02 2009-09-01 Samsung Electronics Co., Ltd Apparatus and method for transmitting/receiving pilot signal in communication system using OFDM scheme
US7409626B1 (en) * 2004-07-28 2008-08-05 Ikanos Communications Inc Method and apparatus for determining codeword interleaver parameters
WO2006082923A1 (ja) * 2005-02-03 2006-08-10 Matsushita Electric Industrial Co., Ltd. 並列インターリーバ、並列デインターリーバ及びインターリーブ方法
US7644340B1 (en) * 2005-07-08 2010-01-05 Marvell International Ltd. General convolutional interleaver and deinterleaver
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
JP2010508790A (ja) * 2006-11-01 2010-03-18 クゥアルコム・インコーポレイテッド 高データレートのためのターボインターリーバ
US7949926B2 (en) * 2006-11-30 2011-05-24 Motorola Mobility, Inc. Method and apparatus for encoding and decoding data

Also Published As

Publication number Publication date
EP2493079B1 (en) 2013-09-18
CN101601188A (zh) 2009-12-09
WO2008067149A2 (en) 2008-06-05
EP2102989A2 (en) 2009-09-23
ES2430361T3 (es) 2013-11-20
JP2008141756A (ja) 2008-06-19
RU2437208C2 (ru) 2011-12-20
US20080133998A1 (en) 2008-06-05
BRPI0721176B1 (pt) 2020-04-07
JP4858991B2 (ja) 2012-01-18
EP2442450A3 (en) 2012-05-23
AR064088A1 (es) 2009-03-11
WO2008067149B1 (en) 2008-10-09
EP2442450B1 (en) 2012-12-19
RU2009124925A (ru) 2011-01-10
PL2102989T3 (pl) 2012-07-31
BRPI0721176A2 (pt) 2014-03-18
CN101601188B (zh) 2013-03-27
US7949926B2 (en) 2011-05-24
PL2493079T3 (pl) 2014-01-31
WO2008067149A3 (en) 2008-08-28
EP2102989B1 (en) 2012-04-11
ES2381595T3 (es) 2012-05-29
US20110197104A1 (en) 2011-08-11
BRPI0721176A8 (pt) 2017-04-04
JP2011147188A (ja) 2011-07-28
ES2397665T3 (es) 2013-03-08
EP2442450A2 (en) 2012-04-18
KR101459801B1 (ko) 2014-11-13
EP2493079A1 (en) 2012-08-29
PL2442450T3 (pl) 2013-04-30
JP5396599B2 (ja) 2014-01-22
ATE553541T1 (de) 2012-04-15
US8850286B2 (en) 2014-09-30

Similar Documents

Publication Publication Date Title
KR101459801B1 (ko) 비경쟁 인터리버들을 이용한 터보-인코딩
US7873893B2 (en) Method and apparatus for encoding and decoding data
US7925956B2 (en) Method and apparatus for encoding and decoding data
JP5231570B2 (ja) プルーンインタリーバおよびプルーンデインタリーバの効率的なアドレス生成
KR101110201B1 (ko) 통신시스템에서 병렬구조 라틴방진 인터리빙 방법 및 장치
KR100370780B1 (ko) 해밍 부호를 연접한 터보 부호화/복호화 방법 그리고 그의 부호기/복호기
KR101353094B1 (ko) 오류정정부호에 대한 인터리빙 방법 및 이를 이용한 정보 송수신 시스템
Schmalen et al. Near-lossless compression and protection by turbo source-channel (de-) coding using irregular index assignments
KR20010059446A (ko) 매직 매트릭스를 이용한 인터리빙 방법

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20171020

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181023

Year of fee payment: 5