KR100416569B1 - 터보 치환기 및 이를 이용한 터보 복호기 - Google Patents

터보 치환기 및 이를 이용한 터보 복호기 Download PDF

Info

Publication number
KR100416569B1
KR100416569B1 KR10-2002-0002500A KR20020002500A KR100416569B1 KR 100416569 B1 KR100416569 B1 KR 100416569B1 KR 20020002500 A KR20020002500 A KR 20020002500A KR 100416569 B1 KR100416569 B1 KR 100416569B1
Authority
KR
South Korea
Prior art keywords
base sequence
value
calculator
output
output value
Prior art date
Application number
KR10-2002-0002500A
Other languages
English (en)
Other versions
KR20030062079A (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 한국전자통신연구원
Priority to KR10-2002-0002500A priority Critical patent/KR100416569B1/ko
Publication of KR20030062079A publication Critical patent/KR20030062079A/ko
Application granted granted Critical
Publication of KR100416569B1 publication Critical patent/KR100416569B1/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
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
    • 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/6502Reduction of hardware complexity or efficient processing

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 터보 치환기 및 이를 이용한 터보 복호기에 관한 것으로, 터보 복호기의 치환기를 하드웨어로 구현함에 있어서, 지수승 연산 및 곱셈 연산을 반복적인 덧셈 연산으로 바꾸고, 순방향/역방향 상태 메트릭 계산 순서에 따라 다음 단계의 치환 주소값을 미리 계산하도록 하여 슬라이딩 윈도우 기법을 사용하는 터보 복호기에 적합한 터보 치환기 및 이를 이용한 터보 복호기를 제시한다.

Description

터보 치환기 및 이를 이용한 터보 복호기{Turbo permutator and Turbo decoder using the same}
본 발명은 터보 치환기 및 이를 이용한 터보 복호기에 관한 것으로, 특히 터보 복호기의 치환기를 하드웨어로 구현함에 있어서, 필요한 지수승 연산을 간소화하면서 슬라이딩 윈도우를 사용하는 터보 복호기에 적합하도록 순방향 및 역방향 상태 메트릭 계산에 따른 치환 동작을 수행할 수 있는 터보 치환기에 관한 것이다.
차세대 이동 통신 시스템인 IMT-2000(International Mobile Telecommunications - 2000) 시스템에서는 고속의 데이터를 전송하기 위한 오류정정부호로 터보 부호(Turbo coding)를 채택하고 있다. 이러한, 터보 부호는 많은 통신 시스템의 오류 정정 부호로 널리 사용됨에 따라 그에 대한 연구도 활발하게 진행되고 있다.
터보 부호기는 2개 이상의 구성 부호기와 터보 인터리버로 구성된다. 첫 번째 구성 부호기는 정보비트의 원래 입력 순서에 따라 부호화 과정을 수행하며, 두 번째 구성 부호기는 터보 인터리버에 의해 순서가 재배열된 정보비트의 순서에 따라 부호화 과정을 수행한다. 터보 인터리버는 정보비트의 입력 순서를 재배열하는 역할을 하게 된다.
터보 코드의 복호기는 기본적으로 MAP(Maximum a posteriori) 복호기와 인터리버, 디인터리버의 결합으로 구성된다. MAP 복호 알고리즘을 사용하여 재귀적 구조의 연산이 가능하고, 반복 복호 횟수의 증가에 따라 BER(Bit Error Rate) 성능을 향상시킴으로써 BER의 관점에서 볼때 샤논 한계(Shannon limit)에 가장 근접하는 성능을 보인다. 각각의 MAP 복호기는 정보 비트(Systematic data)와 잉여 비트(Parity bit), 부가 비트(Extrinsic bit)를 입력으로 받아들여서 각 비트에 대한 LLR(Log likelihood ratio)를 발생시킨다. 이 LLR을 구성하고 있는 부가정보는 다음 복호기 단의 사전 정보(Priori information)가 되어 복호의 신뢰도를 높이게 된다.
일반적으로, 터보 코드의 복호기는 소프트-인풋/소프트-아웃(Soft-input/Soft-output) 복호기로 구성되며, 그 출력값을 반복 복호시에 사용하게 된다. 첫 번째 복호기는 수신된 정보 비트와 패리티 비트를 사용하여 소프트-디시젼(Soft-decision) 정보를 생성하며, 이 값은 인터리버를 통해 순서를 재배열한 뒤 두 번째 복호기의 2차 복호에 사용된다. 두 번째 복호기는 인터리버에 의해 재배열된 수신 정보 비트와 패리티 비트, 그리고 첫 번째 복호기에서 생성된 값을 사용하여 역시 소프트-디시젼 정보를 생성하며, 이 값은 반복 복호시에 첫 번째 복호기의 입력값으로 피드백 된다. 이와 같이 반복 복호를 수행하므로 BER 성능을 향상시킨다.
이러한, 터보 코드에서 부호화한 비트들의 상관성(Correlation)이 증가할수록 복호화 동작을 위한 많은 정보를 얻을 수 있는 반면, 에러들에 대한 상관성 또한 증가하게 된다. 따라서, 에러들 사이의 상관성을 제거하기 위해 인터리버를 사용하고 있으나, 인터리버 크기에 따라 상관성을 어느 정도 제거해 줄 것인지도 어려운 문제이며 복잡성이나 지연의 문제도 수반하게 된다.
인터리버는 일반적인 채널 환경에서 연집 에러를 랜덤 에러로 전환하여 주는 역할을 하며, 터보 코드에서는 상관 관계가 있는 정보를 효과적으로 상관 관계가 없는 정보로 전환하기 위해 정보 비트의 입력순서를 재배열하여 에러 패턴을 제거하는 역할을 한다. 이는, 터보 부호기의 첫 번째 구성 부호기에서 낮은 무게(Low-weight)를 출력하는 입력열의 특정한 패턴이 인터리버를 통해서도 그대로 출력되면, 두 번째 구성 부호기에서도 낮은 무게의 패리티 열이 출력됨에 따라 전체적으로 낮은 무게의 부호어가 생성되어 터보 부호의 성능이 열화되는 것을 방지하기 위함이다.
이와 같이, 터보 코드의 성능을 향상시키기 위해서는 기존의 구조적 인터리빙 방식이 아닌 랜덤 인터리버를 사용해야 하는데, 이러한 인터리버 방식의 문제점은 각각의 전송율에 따라 모든 인터리빙 어드레스를 저장해야 한다는 점이다. 따라서, 최근에는 터보 코드의 충분한 성능을 얻고, 효율적인 구현을 위해 여러 형태의 터보 인터리버들이 연구되었는데, 블록(Block) 인터리버, 헤리컬(Helical) 인터리버, 오드-이븐(Odd-Even) 인터리버, PN 인터리버, 랜덤 인터리버, S-랜덤 인터리버, 비균일(Nonuniform) 인터리버 및 GF(Galois Field) 인터리버 등이 있다.
블록 인터리버는 인터리빙의 종류 중 가장 구성하기 쉽고 간단한 방식으로서, 일반적으로 M1×M2와 같이 행 렬의 형태로 구성되며, 정보를 쓰는 순서는 각각의 행에 대하여 순차적으로 데이터를 써나가며 인터리빙된 데이터로 전환하기 위해서 행렬의 데이터를 첫 번째 열로부터 계속해서 순차적으로 데이터를 읽어들이게 된다. 이러한, 블록 인터리버는 간단하기는 하지만 부호화된 정보에서 발생하는 에러의 형태가 행렬의 크기를 넘어서게 되면 에러를 랜덤한 형태로 변환시킬 수 없는 문제가 있다.
PN 인터리버는 구성이 복잡한 반면, 성능 면에서는 우수한 방식으로서, 인터리빙하는 방법은 m-시퀀스를 발생시키는 방법과 유사하지만, m-시퀀스는 출력 비트가 있는 반면에 이 방법은 출력 비트 대신에 그 순간의 천이 레지스터들의 상태를 출력상태로 보고, 그 상태에 해당하는 정보비트를 그 위치에 옮겨놓음으로써 인터리빙을 구현할 수 있다.
랜덤 인터리버는 터보 부호의 성능 특성과 터보 부호를 위한 인터리버를 연구하는 데 있어서 기준이 되는 인터리버이다. 하지만 실시간 형태의 랜덤 인터리버는 구현 불가능하며, 단지 랜덤 수열 발생기에 의해 발생하는 수열의 저장을 통해 랜덤 인터리버를 구성하게 된다. 인터리빙과 디인터리빙이 동일한 개체에 의해 수행되어지도록 일단 인터리빙을 위한 배열이 얻어지면 ROM에 저장을 해서 룩업(Lookup) 테이블을 이용하는 방식으로 랜덤 인터리버를 구현한다.
GF(Galois Field) 인터리버는 미국의 HNS (Hughes Network Systems)에서 제안한 인터리버이다. GF 인터리버를 구현하기 위해서는 GF에서의 덧셈 및 로그(Log) 연산이 필요하다. 각 로그 연산은 일종의 룩업 테이블을 이용하여 처리하게 된다.
또한, 3GPP에서 제안된 규격에서는 터보 코드의 인터리버로 터보 내부 인터리버(Turbo internal interleaver)를 제안하고 있는데, 이 인터리버는 소수(Prime)를 사용하기 때문에 프라임 인터리버(Prime interleaver)라고도 불리고 있다. 이 터보 인터리버는 사각 행렬에 비트를 쓰고, 열간 치환(Intra-row permutation), 행간 치환(Inter-row permutation)을 수행하고, 필요 없는 심벌을 제거하면서 읽어내는 과정으로 구성된다. 이 인터리버를 구현하기 위해서는 모듈라 지수승(Modular exponentiation) 연산이 필요하게 되며, 이에 따라 많은 하드웨어를 필요로 하게 된다.
본 발명은 상기의 문제를 해결하기 위해 안출된 것으로서, 3GPP에서 제안한 터보 내부 인터리빙 알고리즘을 이용하여 터보 코드의 내부 인터리버를 구현하는데 있어서 필요한 하드웨어의 크기를 줄이고, 필요한 지수승 연산을 간소화하면서 더 나아가 슬라이딩 윈도우 방식을 사용하는 터보 복호기에 적합하도록 순방향 및 역방향 상태 메트릭 계산에 따른 치환동작을 수행할 수 있는 터보 치환기를 구현하는데 그 목적이 있다.
도 1은 본 발명의 실시예에 따른 터보 치환기의 구성도.
도 2는 도 1에 도시된 터보 치환기의 인터리빙 행/열주소 생성기의 구성도.
도 3은 도 2에 도시된 인터리빙 행/열주소 생성기의 기저시퀀스 계산기의 구성도.
도 4는 도 2에 도시된 인터리빙 행/열주소 생성기의 증가용 기저시퀀스 인덱스 계산기의 구성도.
도 5는 도 2에 도시된 인터리빙 행/열주소 생성기의 증감용 기저시퀀스 인덱스 계산기의 구성도.
도 6은 슬라이딩 윈도우에 따른 순방향/역방향 계산 순서를 설명하기 위한 흐름도.
도 7은 도 1에 도시된 터보 치환기를 적용한 터보 복호기의 구성도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 디인터리빙 주소 발생기
101 : 인터리빙 행주소 생성기
102 : 인터리빙 열주소 생성기
103 : 주소 매퍼
104, 106, 501 : 멀티플렉서
105 : T-단 버퍼
107 : 치환기 램
200 : 증가용 행/열 카운터
201 : 증감용 행/열 카운터
202 : T-단 파이프라인
203, 204 : 열치환 시드 계산기
205 : 증가용 기저시퀀스 인덱스 계산기
206 : 증감용 기저시퀀스 인덱스 계산기
207 : 행주소 발생기
208 : 기저시퀀스 계산기 및 출력 다중화기
300 : 논리곱회로부
301, 303, 400, 500, 502 : 모듈라 연산부
302 : 누적부
503 : 덧셈/뺄셈기
601 : 입력 버퍼
602 : MAP 복호기
603 : 치환기
604 : 출력 버퍼
605 : 제어기
본 발명은 소정의 비트 수에 따라 디인터리빙 주소값을 생성하는 디인터리빙 주소발생기; 상기 비트 수 및 행/열 수에 따라 인터리빙 행/열 주소값을 출력하기 위한 인터리빙 행/열 주소 생성기; 상기 행/열 주소값을 인터리버 메모리의 주소로 매핑하기 위한 주소 매퍼; 상기 디인터리빙 주소값과 상기 주소 매퍼의 출력값 중 어느 하나를 선택하는 멀티플렉서; 및 상기 멀티플렉서의 출력값을 자신의 주소값으로 사용하여, 입력 데이터에 해당하는 출력값을 출력하는 치환기 메모리를 포함하여 이루어진 것을 특징으로 한다.
또한, 본 발명은 외부로부터 수신된 데이터를 저장하는 입력 버퍼; 상기 데이터를 이용하여 가지 메트릭 및 상태 메트릭을 계산하고, 이를 바탕으로 LLR을 계산하는 MAP 복호기; 상기 MAP 복호기에서 출력된 외부 정보 값을 다음의 반복 복호에 사용하기 위하여 램에 저장하였다가 정 순서 및 인터리빙 순서로 읽어내기 위해 상기 제 1 항과 같이 구성되는 치환기; 상기 MAP 복호기에서 출력된 복호된 데이터를 저장하는 출력 버퍼; 및 상기 입력 버퍼, 상기 MAP 복호기, 상기 치환기 및 상기 치환기 출력 버퍼에 각각에 적절한 타이밍 제어신호를 제공하는 제어기를 포함하여 이루어진 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대해 설명하면 다음과 같다.
본 발명에서 채택한 터보 코드의 내부 인터리빙 알고리즘을 설명하면 다음과같다. 본 발명에서 채택한 터보 코드의 내부 인터리빙 과정은 사각행렬에 비트를 사용하는 단계와, 열간 치환 및 행간 치환을 수행하는 단계와, 필요없는 심벌을 제거하면서 읽어내는 단계로 구성된다. 터보 코드 내부 인터리버에 입력되는 비트 수의 범위는 '40≤K≤5114이다.
우선, 내부 인터리버의 알고리즘을 설명하기 전에 다음의 심벌을 정의하면 하기의 표 1과 같다.
K 인터리버에 입력되는 비트 수
R 사각행렬의 행 수
C 사각행렬의 열 수
p 소수
v 원시근
<s(j)>{j=0,1,...,R-1} 열간 치환에서 사용하는 기본 시퀀스
qj 최소의 정수 소수
rj 치환된 정수 소수
<T(i)>{i=0,1,...,R-1} 행간 치환 패턴
<Ui(j)>{j=0,1...,C-1} i번째 행의 열간 치환 패턴
i 행렬의 행 첨자
j 행렬의 열 첨자
k 비트 번호
먼저, 사각행렬에 비트를 사용하는 단계로, 터보 인터리버에 입력된 비트들은 다음과 같은 과정을 거쳐 사각행렬이 만들어진다.
(1) 행수 R을 다음과 같이 결정한다.
R=5, 40≤K≤159.
10, 160≤K≤200 또는 481≤K≤530.
20, 그외.
(2) 열수 C를 다음과 같이 결정한다.
가) 비트 수가 481≤K≤530 사이이면, p=53, C=53.
나) 다음과 같은 조건에 해당하는 소수 p를 구한다.
(i) 다음을 만족하는 최소의 소수 p를 하기의 표 2에서 구한다.
0≤(p+1)-K/R=p≥K/R-1.
(ii) 다음의 조건에 따라 C를 구한다.
C=p-1, 조건, K≤R×(p-1).
p, 조건, R×(p-1)< K≤R×p.
p+1, 조건, R×p< K.
(3) 인터리버의 입력 시퀀스를 R×C 행렬에 행을 기준(Row by row)으로 쓴다. 이 경우, 열 번호는 좌측에서부터 시작하게 된다.
다음의 과정은 열간 치환 및 행간 치환을 수행하는 단계로, 이는 다음처럼 수행된다.
(1) 소수 p에 대응하는 원시근 v를 하기의 표 2에서 구한다.
p v p v p v p v p v
7 3 47 5 101 1 157 5 223 3
11 2 53 2 103 5 163 2 227 2
13 2 59 2 107 2 167 5 229 6
17 3 61 2 109 6 173 2 223 3
19 2 67 2 113 3 179 2 239 7
23 5 71 7 127 3 181 2 241 7
29 2 73 5 131 2 191 19 251 6
31 3 79 3 137 3 193 5 257 3
37 2 83 2 139 2 197 2
41 6 89 3 149 2 199 3
43 3 97 5 151 6 211 2
(2)열의 순서를 바꾸기 위한 기본 시퀀스를 다음과 같이 구한다.
s(j)=(v×s(j-1)) mod p, j=1,2,...,(p-2), s(0)=1.
(3) 다음을 만족하는 최소 소수 집합 {qj}(j=1,2,...R-1)을 구한다.
g.c.d{qj, p-1}=1, qj>6, q0=1, qj>q(j-1).
(4) 최소 소수 집합{qj}의 순서를 바꾸어 새로운 집합{rj}로 변환한다.
rT(j)=qj, j=0,1,...R-1, 여기서, T(j)는 행 간 치환 패턴으로 다음과 같이 4개의 패턴이 사용되며, 입력 비트 수에 따라 하기의 표 3과 같이 사용된다.
P1:{19,9,14,4,0,2,5,7,12,18,10,8,13,17,3,1,16,6,15,11} For R=20
P2:{19,9,14,4,0,2,5,7,12,18,16,13,17,15,3,1,6,11,8,10} For R=20
P3:{9,8,7,6,5,4,3,2,1,0} For R=10
P4:{4,3,2,1} For R=5
블록길이 K(bit) P(j)
40 ~ 159 P4
160 ~ 200 P3
201 ~ 480 P1
481 ~ 530 P3
531 ~ 2280 P1
2281 ~ 2480 P2
2481 ~ 3160 P1
3161 ~ 3210 P2
3211 ~ 5144 P1
(5) j번째 행(j=0,1,2,...,R-1)의 열 순서를 다음과 같이 바꾼다.
(a)(C=p)인 경우,
Uj(i)=s([i×rj] mod(p-1)), i=0,1,2,...,(p-2) 이고 Uj(p-1)=0.
여기서, Uj는 j 번째 행의 열 순서를 바꾼 출력의 i번째 출력의 입력 위치이다.
(b)(C=p+1)인 경우,
Uj(i)=s([i×rj] mod(p-1)), i=0,1,2,...,(p-2) 이고 Uj(p)=p.
이 경우에는 열 수가 소수 p보다 1이 더 많기 때문에 p-1번 열은 0으로, p번 열은 p로 정한다.
(K=C×R)인 경우에는 UR-1(p)(=p)와 UR-1(0)(=s(0))를 바꾼다. 여기서, Uj(i)는 j번째 행의 열 순서를 바꾼 출력의 i번째 비트이다. 비트 수가 정확하게 일치하는 경우에는 마지막 행의 첫 번째 열과 마지막 열을 바꾼다.
(c)(C=p-1)인 경우,
Uj(i)=s([i×rj] mod(p-1))-1, i=0,1,2,...,(p-2),
이 경우에는 열 수가 소수 p보다 1이 작기 때문에 계산 결과에서 1을 빼고, i의 범위를 0 내지 (p-2)까지 설정한다.
마지막으로, 데이터를 읽어내는 단계는, R×C 행렬에서 열을 기준(Column by column)으로 데이터를 읽어낸다. 입력된 코드 블록 시퀀스의 길이가 K 비트라 할 때, R×C=K가 되지 않는 경우에는 인터리버가 입력 시퀀스에 존재하지 않는 l(=R×C-K)비트를 임의로 삽입하게 된다. 따라서, 인터리버의 출력 중 이 'l'비트를 제거해야 하는데, 이것은 인터리빙 어드레스를 생성할 때 전체 비트 수보다 큰 범위에 있는 것은 그냥 넘어가는(Address skipping) 방법으로 구현 가능하다.
도 1은 상기에서 설명한 인터리빙 알고리즘을 바탕으로 한 본 발명의 실시예에 따른 터보 치환기의 전체 구성도이다.
도 1을 참조하면, 본 발명은 기본적으로 일정한 길이를 갖는 윈도우(슬라이딩 윈도우) 단위로 복호를 수행하는 터보 복호기에 적합하도록 구현됨에 따라 터보 복호기가 정순서로 동작할 때는 디인터리빙 주소 생성기(100)가 동작하고, 인터리빙 순서로 동작할 때는 인터리빙 행주소 생성기(101) 및 인터리빙 열주소 생성기(102)가 동작한다.
한편, 인터리빙 행주소 생성기(101) 및 인터리빙 열주소 생성기(102)에서 생성된 인터리빙 주소값은 논리적인 주소를 실제 램의 주소로 바꾸어 주는 주소 매퍼(103)를 통해 멀티 플렉서(104)로 전송된다. 멀티 플렉서(104)는 주소 매퍼(103)로부터 전송되는 인터리빙 주소값과 디인터리빙 주소 발생기(100)로부터 전송되는 디인터리빙 주소값 중 어느 하나를 선택한 후 램의 주소로 사용한다.
이와 같이, 멀티플렉서(104)에 의해 선택된 주소값은 터보 복호기의 복호 지연 시간 후에 다시 사용할 수 있도록 T-단 버퍼(105)에 임시 저장된 후 멀티플렉서(106)로 전송된다. 멀티플렉서(106)는 전단의 멀티플렉서(104)로부터 출력되는 주소값과 T-단 버퍼(105)에 저장된 주소값 중 어느 하나의 주소값을 선택하여 치환기 램(107)으로 전송한다. 치환기 램(107)은 멀티플레서(106)로부터 전송되는 주소값을 이용하여 자신의 주소값으로 사용한다. 여기서, 타이밍 제어는 제어기를 통하여 제어되는데, 전체 비트 수 및 슬라이딩 윈도우(Sliding window)등을 카운트하면서 적절한 타이밍 제어신호를 생성한다.
도 2는 도 1에 도시된 터보 치환기의 인터리빙 행/열주소 생성기를 설명하기 위해 도시한 열주소 생성기의 구성도이다.
도 2를 참조하면, 증가용 행/열 카운터(200) 및 증감용 행/열 카운터(201)는각각 행 수와 열 수를 입력받아 증가 및 증감 모듈에 대한 행 번호와 열 번호를 생성하게 되며, 그 결과를 각 모듈로 전송하게 된다. 열 치환 시드(Seed) 계산기(203 및 204)는 증가용 행/열 카운터(200) 및 증감용 행/열 카운터(201)로부터 전송된 행 번호에 따라 상기의 수식에 따른 {rj mod(p-1)}를 계산하여 시드값을 생성하게 되며, 이렇게 생성된 시드값 들은 각각 증가용 기저시퀀스 인덱스 계산기(205) 및 증감용 기저시퀀스 인덱스 계산기(206)로 전송된다. 증가용 기저시퀀스 인덱스 계산기(205) 및 증감용 기저시퀀스 인덱스 계산기(206)는 기저시퀀스 인덱스인 {rj mod(p-1)}을 계산한다. 여기서, T-단 파이프라인(202)은 증가용 행/열 카운터(200) 및 증감용 행/열 카운터(201)로부터 전송되는 주소값을 소정의 단 만큼 지연시켜 각각의 모듈로 전송하는 역할을 한다.
한편, 터보 치환기의 열주소 생성기에서는 곱셈기 대신 덧셈기를 사용하여 직렬 덧셈(Serial addition)으로 곱셈을 대신 하였으며, 증가용 기저시퀀스 인덱스 계산기(205)에서 각 행에 대한 부분 결과를 레지스터에 저장하였다가, 증감용 기저시퀀스 인덱스 계산기(206)로 전달함으로써 역 방향 및 순 방향 상태 메트릭을 구하는데 필요한 주소 값을 생성하도록 하였다.
이와 같이, 생성된 주소값은 기저 시퀀스 계산기 및 출력 다중화기(208)로 전송된다. 기저시퀀스 계산기 및 출력 다중화기(208)는 미리 계산되어 램에 저장된 기저시퀀스 값을 출력한다. 이렇게 해서 만들어진 값은 R×C 행렬의 열 번호가 되며, 행 주소 발생기(207)에 의해 생성된 행 번호와 함께 도 1에 도시된 주소 매퍼(103)로 전달되어 최종 인터리빙 주소값을 생성한다.
도 3은 도 2에 도시된 인터리빙 행/열주소 생성기의 기저시퀀스 계산기(208)를 설명하기 위해 도시한 기저시퀀스 계산기의 구성도이다.
도 3을 참조하면, 기저시퀀스 계산기는 상기에서 설명한 알고리즘에 따라 하기의 수학식 1과 같이 기저시퀀스 값을 생성한다.
즉, 기저시퀀스 계산기는 상기 수학식 1을 계산하여 그 결과를 기저 시퀀스 램에 저장하였다가, 도 2에 도시된 증가용 기저시퀀스 인덱스 계산기(205) 및 증감용 기저시퀀스 인덱스 계산기(206)에서 전송된 인덱스 값에 따라 지정된 위치의 값을 출력한다.
상기 수학식 1을 살펴보면, 원시근과 이전의 기저시퀀스 값을 곱하고 모듈라 연산을 취하여 새로운 기저시퀀스 값을 생성하는 것을 알 수 있는데, 이를 구현하는 경우 곱셈기를 사용하여 수식 자체를 구현하는 방법과, 식을 변형하여 모듈라 지수승(Modular exponentiation)을 하는 방법 및 덧셈기를 사용하여 곱셈기의 효과를 내는 방법이 있다.
곱셈기를 사용하는 경우에는 원시근과 이전의 기저시퀀스 값을 곱하는데, 5×9 곱셈기가 필요하고, 이에 대한 모듈라 연산기가 필요하게 된다. 이 경우의 모듈라 연산기는 소수의 몇 배인지를 판단해야 하는 회로와 계산 결과에서 선택된 소수의 배수를 빼는 연산을 수행해야 하는데, 계산에 소요되는 시간이 짧은 반면 필요한 논리회로의 양이 많아진다.
또한, 기저시퀀스 값을 구하는 식을 살펴보면 재귀적으로 돌아가는 함수로, s(j)=vjmodp로 표현할 수 있는데, 이것은 원시근을 j에 따라 계속 곱하는 형태로 구현될 수 있다. 따라서, 기저시퀀스 계산기는 복잡도를 감소시키기 위하여 덧셈기를 사용하여 곱셈의 효과를 내도록 하는 방법을 채택하였다.
이러한, 기저시퀀스 계산기의 동작특성을 설명하면, 먼저 원시근이 주어지면 1 비트씩 스캐닝(Scanning)하고, 그 결과를 누적부(302)를 통해 누적시켜 나가는데, 이전의 계산 결과에 대해 현재 스캐닝한 원시근의 비트가 '1'이면, 논리곱회로부(300)를 통해 다음 블록에 이전 결과 값을 그대로 전달하고, '0'이면 '0'을 전달한다. 이 값을 모듈라 연산부(301)를 통해 모듈라 연산을 한 후 누적한다. 주어진 원시근의 모든 비트를 스캔한 후 누적된 결과를 다시 모듈라 연산부(303)을 통해 모듈라 연산을 하여 최종 결과를 출력한다. 이 구조는 곱셈 후의 모듈라 연산을 하는 과정을 분리하여, 곱셈을 덧셈과 연이은 모듈라 연산으로 분리 구현하고 마지막의 모듈라 연산을 취하여 최종 결과를 얻도록 한 것이다. 여기서, 누적부(302)는 덧셈기와 플립플롭(F/F)으로 구성된다.
도 4는 도 2에 도시된 인터리빙 행/열주소 생성기의 증가용 기저시퀀스 인덱스 계산기를 설명위해 도시한 증가용 기저시퀀스 인덱스 계산기의 구성도로서, 순방향 메트릭 계산시에 다음 슬라이딩 윈도우의 주소값을 미리 계산한다.
도 4를 참조하면, 도 2에 도시된 열 치환 시드 계산기(203 및 204)에서 계산된 rj는 (p-1)에 대한 모듈라 연산부(400)를 통해 모듈라 연산을 하게 되고, 그 결과를 다시 다음의 rj와 더하게 되면, 결국 열번호 i 가 증가하면서 rj와 곱해지는 효과를 얻을 수 있게 된다.
그런데, 터보 치환기에서는 열을 기준으로 읽어내기 때문에 행 번호가 먼저 증가하게 된다. 따라서 열 번호가 변하면서 rj와 더해지는 방법을 사용할 수 없게 된다. 이에 따라 각 행에 대한 중간 결과를 레지스터에 저장하게 되면, rj가 자주 변하기는 하지만 최대 행수만큼 변하게 되므로, 각 rj에 대하여 중간 값을 저장하는 레지스터를 하나씩 두어 그 rj의 다음 계산에 사용할 수 있게 된다.
이 구조를 슬라이딩 윈도우에 대해서 고려해 보면, 역방향 상태 메트릭을 먼저 구하기 위해 슬라이딩 윈도우 크기만큼 증가했다가 다시 감소하고, 순방향 상태 메트릭을 구하기 위해 다시 증가하는 순서로 동작이 진행되므로, 단순 증가만 하는 블록과 증감하는 블록 모두 동일한 수의 레지스터들을 가지고 있어야 하고, 이 두 모듈의 레지스터들 사이에는 정보를 주고 받을 수 있는 경로가 있어야 한다. 즉, 순방향 상태 메트릭을 구하다가 역방향으로 전환할 때 증가블록에서 증감 블록으로 중간 결과를 넘겨야 하기 때문이다.
도 5는 도 2에 도시된 인터리빙 행/열주소 생성기의 증감용 기저시퀀스 인덱스 계산기를 설명위해 도시한 증감용 기저시퀀스 인덱스 계산기의 구성도로서, 역방향 및 순방향 메트릭 계산시 치환 주소값을 계산한다.
도 5를 참조하면, 모듈라 연산부(500)는 입력되는 rj를 미리 (p-1)에 대해 모듈라 연산을 수행하게 되며, 그 결과를 가지고 나머지 계산을 수행하게 된다. 이어서, 'A'로부터 순방향 메트릭 계산시에 계산된 다음 슬라이딩 윈도우의 기저시퀀스 인덱스의 중간결과 들을 받게 되며, 이는 현재의 계산 결과 들과 멀티플렉서(501)를 사용하여 구분하게 된다.
도 4에 도시된 증가용 기저시퀀스 인덱스 계산기와 다른 점은 증가용 기저시퀀스 계산기는 순방향으로만 계산을 하게 됨에 따라 값이 단순 증가만 하기 때문에 연산기가 덧셈기만 필요한 반면, 도 5에 도시된 증감용 기저시퀀스 인덱스 계산기는 순방향 및 역방향으로 계산을 수행하기 때문에 덧셈/뺄셈 연산을 수행하는 연산기가 필요하다는 것이다. 여기서 덧셈/뺄셈 연산은 모두 모듈라 연산이어야 하는데, rj를 미리 모듈라 연산을 하지 않는다면 모듈라 덧셈/뺄셈 연산이 그 만큼 복잡해지게 된다. 따라서 rj를 미리 모듈라 연산을 취함으로써 모듈라 덧셈/뺄셈 연산의 복잡도를 줄일 수 있게 된다.
역방향 메트릭 계산시 기저시퀀스의 인덱스 계산기 모듈은 도 2에 도시된 증가용 기저시퀀스 인덱스 계산기(205)에서 전달되는 부분 결과를 로드(A)하고, 이를 이용하여 계산된 부분 결과를 저장할 레지스터 모듈과 모듈라 연산을 수행하는 덧셈/뺄셈기(503) 등으로 구성된다.
이 모듈은 먼저 역방향 상태 메트릭을 계산하는 경우, 도 2에 도시된 증가용 기저시퀀스 인덱스 계산기(205)로부터 부분 결과를 로드하고, 레지스터로부터 지정된 행 번호의 값을 읽어내어 그대로 출력한 후 이 값에 의해 계산된 새로운 결과를 다시 그 자리에 저장한다. 역방향 상태 메트릭 계산이 끝나 순방향 상태 메트릭을 계산할 경우에는 증가용 계산기와 마찬가지로 레지스터에서 읽어낸 값을 이용하여 새로운 결과를 만들고 그 값을 다시 레지스터에 저장함과 동시에 출력한다.
도 6은 슬라이딩 윈도우에 따른 순방향/역방향 계산 순서도를 설명하기 위해 도시한 흐름도로서, 전체 동작 구간에서 순방향 및 역방향 상태 메트릭을 계산하는 경우 각 슬라이딩 윈도우에 따른 증가용 기저시퀀스 인덱스 계산기 및 증감용 기저시퀀스 인덱스 계산기의 동작흐름을 도시한 흐름도이다.
도 6을 참조하면, 도 1에 도시된 본 발명의 터보 치환기의 동작은 최초에 슬라이딩 윈도우 1번(Sliding Window #1)에 대해 역방향 메트릭을 계산할 수 있도록 증감용 기저 시퀀스 인덱스 계산기가 먼저 동작한다(①번).
이어서, 슬라이딩 윈도우 1번(Sliding Window #1)에 대해 순방향 메트릭을 계산하는 경우, 역방향으로 동작하였던 증감용 기저시퀀스 인덱스 계산기가 순방향으로 동작을 하게 되고, 그 동안 증가용 기저시퀀스 인덱스 계산기는 다음 슬라이딩 윈도우에 대한 중간 계산을 수행하게 된다(②번).
순방향에 대한 계산이 다 끝나게 되면, 순방향 계산의 결과를 슬라이딩 윈도우 2번(Sliding Window #2)에 대한 역방향 상태 메트릭을 계산할 수 있도록 증감용 기저시퀀스 인덱스 계산기에 돌려주게 되고, 증감용 기저시퀀스 인덱스 계산기는 이를 이용하여 슬라이딩 윈도우 2번(Sliding Window #2)에 대한 역방향 상태 메트릭 계산을 위한 치환기 주소 계산을 수행한다.
이와 동일한 방법으로 각 슬라이딩 윈도우에 대한 연산을 수행한 후, L-1 번 슬라이딩 윈도우(Sliding Window #L-1)에 도달하게 되면, 증감용 기저시퀀스 인덱스 계산기가 L-1번 슬라이딩 윈도우(Sliding Window #L-1)에 대한 순방향 상태 메트릭 계산을 위한 치환기 주소계산을 하는 동안 증가용 기저시퀀스 인덱스 계산기는 마지막 L번 슬라이딩 윈도우(Sliding Window #L)에 대한 부분계산을 수행하여 증감용 기저시퀀스 인덱스 계산기가 L번 슬라이딩 윈도우(Sliding Window #L)에 대한 계산을 수행할 때 부분 결과를 돌려 줄 수 있게 한다.
도 7은 도 1에 도시된 본 발명의 터보 치환기를 적용한 터보 복호기의 구성도이다.
본 발명의 터보 치환기가 적용한 터보 복호기는 외부로부터 수신된 데이터를 저장하는 입력 버퍼(601)와, 가지 메트릭(Branch metric) 및 상태 메트릭(State metric)을 계산하고, 이를 바탕으로 LLR을 계산하는 MAP 복호기(602)와, MAP 복호기에서 출력된 외부 정보 값을 다음의 반복 복호에 사용하기 위하여 램에 저장하였다가 정 순서 및 인터리빙 순서로 읽어내는 치환기(603)와, 복호된 데이터를 저장하는 출력 버퍼(604) 및 각 모듈에 적절한 타이밍 제어신호를 제공하는 제어기(605)로 구성된다.
즉, 터보 복호기는 일반적인 복호기에 본 발명의 터보 치환기, 즉 치환기(603)를 적용한 예로서, 본 발명에 따른 치환기를 제외한 다른 구성 요소들은 일반적인 동작 특성을 보이며, 단지, 본 발명의 치환기의 동작은 상기에서 설명한 동작 특성과 동일함에 따라 여기서는 그에 대한 설명은 생략하기로 한다.
상술한 바와 같이, 본 발명은 터보 복호기의 치환기를 하드웨어로 구현함에 있어서, 지수승 연산 및 곱셈 연산을 반복적인 덧셈 연산으로 바꾸고, 순방향/역방향 상태 메트릭 계산 순서에 따라 다음 단계의 치환 주소값을 미리 계산하도록 하여 슬라이딩 윈도우 기법을 사용하는 터보 복호기에 적합한 터보 치환기를 구현함으로써 필요한 지수승 연산을 간소화하면서 슬라이딩 윈도우를 사용하는 터보 복호기에 적합하도록 순방향 및 역방향 상태 메트릭 계산에 따른 치환 동작을 수행할 수 있다.
또한, 본 발명에 따른 구조를 사용하면 IMT-2000시스템에서 오류정정 부호로 사용되고 있는 터보 부호의 복호기를 구현하는데 있어서, ASIC 구현 시 한층 면적이 축소된 결과를 얻을 수 있으며, 그 성능도 향상된 결과를 얻어 통신기술의 세계 경쟁력을 향상시킬 수 있다.

Claims (15)

  1. 소정의 비트 수에 따라 디인터리빙 주소값을 생성하는 디인터리빙 주소발생기;
    상기 비트 수 및 행/열 수에 따라 인터리빙 행/열 주소값을 출력하기 위한 인터리빙 행/열 주소 생성기;
    상기 행/열 주소값을 인터리버 메모리의 주소로 매핑하기 위한 주소 매퍼;
    상기 디인터리빙 주소값과 상기 주소 매퍼의 출력값 중 어느 하나를 선택하는 멀티플렉서; 및
    상기 멀티플렉서의 출력값을 자신의 주소값으로 사용하여, 입력 데이터에 해당하는 출력값을 출력하는 치환기 메모리를 포함하여 이루어진 것을 특징으로 하는 터보 치환기.
  2. 제 1 항에 있어서,
    상기 인터리빙 행/열주소 생성기는 상기 행/열 수를 입력받아 증가 모듈에 대한 행/열 번호를 생성하기 위한 증가용 행/열 카운터;
    상기 행/열 수를 입력받아 증감 모듈에 대한 행/열 번호를 생성하기 위한 증감용 행/열 카운터;
    상기 증가용 행/열 카운터의 출력값에 따라 시드값을 생성하기 위한 증가용열치환 시드 계산기;
    상기 증감용 행/열 카운터의 출력값에 따라 시드값을 생성하기 위한 증감용 열치환 시드 계산기;
    상기 증가용 열치환 시드 계산기의 출력값에 따라 기저시퀀스의 인덱스를 계산하기 위한 증가용 기저시퀀스 인덱스 계산기;
    상기 증감용 열치환 시드 계산기의 출력값에 따라 상기 기저시퀀스의 인덱스를 계산하기 위한 증감용 기저시퀀스 인덱스 계산기; 및
    상기 증가용 기저시퀀스 인덱스 계산기 및 상기 증감용 기저시퀀스 인덱스 계산기의 인덱스 값에 따라 메모리에 미리 저장된 기저시퀀스 값을 상기 주파수 매퍼로 출력하기 위한 기저시퀀스 계산기를 포함하여 이루어지는 것을 특징으로 하는 터보 치환기.
  3. 제 2 항에 있어서,
    상기 기저시퀀스 계산기는 출력 다중화기를 포함하는 것을 특징으로 하는 터보 치환기.
  4. 제 2 항에 있어서,
    상기 기저시퀀스 계산기는 하기의 수학식 2를 이용하여 생성된 상기 기저시퀀스 값을 미리 저장한 후, 상기 증가용 기저시퀀스 인덱스 계산기 및 상기 증감용 기저시퀀스 인덱스 계산기의 인덱스 값에 따라 지정된 위치의 값을 출력하는 것을 특징으로 하는 터보 치환기.
  5. 제 2 항에 있어서,
    상기 기저시퀀스 계산기는 원시근과 상기 기저시퀀스 값을 논리 조합하기 위한 논리부;
    상기 논리부의 출력값을 입력받아 모듈라 연산을 하기 위한 제 1 모듈라 연산부;
    상기 논리부와 상기 제 1 모듈라 연산부의 출력값을 감산하기 위한 제 1 감산부;
    상기 제 1 감산부의 출력값을 누적하기 위한 누적부;
    상기 누적부의 출력값을 입력받아 모듈라 연산을 하기 위한 제 2 모듈라 연산부;
    상기 제 2 모듈라 연산부와 상기 누적부의 출력값을 감산하여 상기 기저시퀀스 값을 출력하기 위한 제 2 감산부; 및
    상기 기저시퀀스 값을 래치하기 위한 플립플롭을 포함하여 이루어진 것을 특징으로 하는 터보 치환기.
  6. 제 5 항에 있어서,
    상기 누적부는 상기 제 1 감산부의 출력값과 상기 누적부의 출력값을 가산하기 위한 가산부; 및
    상기 가산부의 출력값을 래치하기 위한 플립플롭을 포함하여 이루어진 것을 특징으로 하는 터보 치환기.
  7. 제 2 항에 있어서,
    상기 증가용 기저시퀀스 인덱스 계산기 및 상기 증감용 기저시퀀스 인덱스 계산기는 다음의 수학식 3과 같이 상기 기저시퀀스 인덱스를 계산하는 것을 특징으로 하는 터보 치환기.
  8. 제 2 항에 있어서,
    상기 증가용 기저시퀀스 인덱스 계산기는 순방향 메트릭 계산시 상기 치환 메모리부의 주소값을 계산하는 것을 특징으로 하는 터보 치환기.
  9. 제 2 항에 있어서,
    상기 증가용 기저시퀀스 인덱스 계산기는 상기 증가용 열 치환 시드 계산기의 출력값과 상기 증가용 기저시퀀스 인덱스 계산기의 인덱스 값을 가산하기 위한 가산부;
    상기 가산부의 출력값을 모듈라 연산하기 위한 모듈라 연산부;
    상기 가산부의 출력값과 상기 모듈라 연산부의 출력값을 감산하기 위한 감산부; 및
    상기 감산부의 출력값을 래치하기 위한 플립플롭을 포함하여 이루어진 것을 특징으로 하는 터보 치환기.
  10. 제 2 항에 있어서,
    상기 증감용 기저시퀀스 인덱스 계산기는 역방향 및 순방향 메트릭 계산시 상기 치환 메모리부의 주소값을 계산하는 것을 특징으로 하는 터보 치환기.
  11. 제 2 항에 있어서,
    상기 증감용 기저시퀀스 인덱스 계산기는 상기 증감형 열 치환 시드 계산기의 출력값을 모듈라 연산하기 위한 제 1 모듈라 연산부;
    상기 증감형 기저시퀀스 인덱스 계산기의 인덱스 값과 순방향 메트릭 계산시에 계산된 슬라이딩 윈도우의 기저시퀀스 인덱스의 중간값을 선택하기 위한 멀티플렉서;
    상기 제 1 모듈라 연산부의 출력값과 상기 멀티플렉서의 출력값을 가산 또는 감산하기 위한 가/감산부;
    상기 가/감산부의 출력값을 모듈라 연산하기 위한 제 2 모듈라 연산부;
    상기 가/감산부의 출력값과 상기 제 2 모듈라 연산부의 출력값을 감산하기 위한 감산부; 및
    상기 감산부의 출력신호를 래치하기 위한 플립플롭을 포함하여 이루어진 것을 특징으로 하는 터보 치환기.
  12. 제 2 항에 있어서,
    상기 증가용 행/열 카운터 및 상기 증감용 행/열 카운터의 출력값을 소정 클럭 시간동안 지연시켜 상기 증가용 기저시퀀스 인덱스 계산기 및 상기 증감용 기저시퀀스 인덱스 계산기로 출력하기 위한 T-단 파이프 라인을 더 포함하여 이루어진 것을 특징으로 하는 터보 치환기.
  13. 제 1 항에 있어서,
    상기 치환기 메모리의 출력값은 미리 메모리에 저장되며, 상기 입력 데이터의 소스인 것을 특징으로 하는 터보 치환기.
  14. 제 1 항에 있어서,
    상기 멀티플렉서의 출력값을 소정 클럭 시간동안 지연시키기 위한 T-단 버퍼부; 및
    상기 T-단 버퍼부의 출력값과 상기 멀티플렉서의 출력값 중 어느 하나의 값을 선택하여 상기 치환기 메모리로 출력하기 위한 멀티플렉서를 더 포함하여 이루어진 것을 특징으로 하는 터보 치환기.
  15. 외부로부터 수신된 데이터를 저장하는 입력 버퍼;
    상기 데이터를 이용하여 가지 메트릭 및 상태 메트릭을 계산하고, 이를 바탕으로 LLR을 계산하는 MAP 복호기;
    상기 MAP 복호기에서 출력된 외부 정보 값을 다음의 반복 복호에 사용하기 위하여 램에 저장하였다가 정 순서 및 인터리빙 순서로 읽어내기 위해 상기 제 1 항과 같이 구성되는 치환기;
    상기 MAP 복호기에서 출력된 복호된 데이터를 저장하는 출력 버퍼; 및
    상기 입력 버퍼, 상기 MAP 복호기, 상기 치환기 및 상기 치환기 출력 버퍼에 각각에 적절한 타이밍 제어신호를 제공하는 제어기를 포함하여 이루어진 것을 특징으로 하는 터보 복호기.
KR10-2002-0002500A 2002-01-16 2002-01-16 터보 치환기 및 이를 이용한 터보 복호기 KR100416569B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0002500A KR100416569B1 (ko) 2002-01-16 2002-01-16 터보 치환기 및 이를 이용한 터보 복호기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0002500A KR100416569B1 (ko) 2002-01-16 2002-01-16 터보 치환기 및 이를 이용한 터보 복호기

Publications (2)

Publication Number Publication Date
KR20030062079A KR20030062079A (ko) 2003-07-23
KR100416569B1 true KR100416569B1 (ko) 2004-02-05

Family

ID=29997337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0002500A KR100416569B1 (ko) 2002-01-16 2002-01-16 터보 치환기 및 이를 이용한 터보 복호기

Country Status (1)

Country Link
KR (1) KR100416569B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101066287B1 (ko) * 2004-01-20 2011-09-20 삼성전자주식회사 이동통신시스템에서 맵 방식을 이용하여 디코딩을 수행하는 장치 및 방법
KR100895670B1 (ko) * 2007-01-15 2009-05-08 (주)카이로넷 슬라이딩 윈도우 방식을 이용한 터보 디코딩 방법, 이를 수행하는 터보 디코더 및 무선 수신 장치
US8296627B2 (en) 2007-07-20 2012-10-23 Electronics And Telecommunications Research Institute Address generation apparatus and method of data interleaver/deinterleaver
CN101373977B (zh) * 2007-08-22 2011-01-05 中兴通讯股份有限公司 并行最大后验概率译码交织去交织的装置和方法
KR100988908B1 (ko) * 2007-12-07 2010-10-20 한국전자통신연구원 터보 치환기 및 그것을 포함한 터보 복호기

Also Published As

Publication number Publication date
KR20030062079A (ko) 2003-07-23

Similar Documents

Publication Publication Date Title
US7210076B2 (en) Interleaving order generator, interleaver, turbo encoder, and turbo decoder
US6625234B1 (en) Efficient implementations of proposed turbo code interleavers for third generation code division multiple access
TWI406509B (zh) 渦輪解碼器及解碼渦輪編碼信號的方法
US6323788B1 (en) Interleaving apparatus and method for use in serial concatenated convolutional code encoder in a mobile communication system
JP3961770B2 (ja) 通信システムのインターリービング/デインターリービング装置及び方法
WO2000022738A1 (en) Coding system having state machine based interleaver
US7058874B2 (en) Interleaver address generator and method of generating an interleaver address
EP2621091B1 (en) Turbo code parallel interleaving with quadratic permutation polynomial (qpp) functions
US6553517B1 (en) Interleavers and de-interleavers
KR20030077653A (ko) 터보 디코더용 인터리버
WO2000035103A1 (en) Turbo code interleaver using linear congruential sequences
KR20060135018A (ko) 서브 블록 인터리버 및 디-인터리버를 가진 다차원 블록인코더
WO2005060106A1 (en) Multi-standard turbo interleaver using tables
KR100416569B1 (ko) 터보 치환기 및 이를 이용한 터보 복호기
US7051261B1 (en) Turbo encoder with reduced processing delay
KR100988908B1 (ko) 터보 치환기 및 그것을 포함한 터보 복호기
JP4380041B2 (ja) 軟出力復号装置及び軟出力復号方法、並びに、復号装置及び復号方法
JP4543522B2 (ja) 軟出力復号装置及び軟出力復号方法、並びに、復号装置及び復号方法
JP4427883B2 (ja) インターリーブ装置及びインターリーブ方法、並びに、復号装置及び復号方法
KR100645730B1 (ko) 매직 매트릭스를 이용한 인터리빙 방법
Verma et al. An FPGA realization of simplified turbo decoder architecture
CN106817198A (zh) 适用于LTE系统中Turbo译码的交织解交织方法
Omeira et al. Dithered largest spread cubic permutation polynomial interleavers for Turbo codes
KR100800840B1 (ko) 터보코드를 사용하는 부호분할다중접속 이동통신시스템의 터보 인터리버 및 터보 인터리빙 방법
Masera et al. Low-cost IP-blocks for UMTS turbo decoders

Legal Events

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

Payment date: 20121206

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20131209

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee