KR20040026505A - 터보코드를 사용하는 이동통신시스템의 터보 인터리버장치 및 방법 - Google Patents
터보코드를 사용하는 이동통신시스템의 터보 인터리버장치 및 방법 Download PDFInfo
- Publication number
- KR20040026505A KR20040026505A KR1020020058012A KR20020058012A KR20040026505A KR 20040026505 A KR20040026505 A KR 20040026505A KR 1020020058012 A KR1020020058012 A KR 1020020058012A KR 20020058012 A KR20020058012 A KR 20020058012A KR 20040026505 A KR20040026505 A KR 20040026505A
- Authority
- KR
- South Korea
- Prior art keywords
- value
- modulo
- specific value
- interleaving
- turbo
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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/2771—Internal interleaver for turbo codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction 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
본 발명은 부호분할다중접속 이동통신 시스템의 터보 인터리버 및 인터리빙 방법에 관한 것으로, 특히 프로세싱 지연을 최소화하는 터보 인터리버 및 인터리빙 방법에 관한 것이다.
통상적으로 디지털 통신시스템에서는 전송 채널에서 발생하는 에러를 효과적으로 제거하기 위해 채널 코딩을 수행한다. 특히 터보 코드는 대용량 데이터 통신을 지원하는 이동통신시스템에서 적용되는 채널 코딩 기법이다.
도 1은 일반적인 터보 부호기의 구조를 나타낸 도면이다. 이하 상기 도 1을 중심으로 터보 부호기의 일반적인 구조를 상세히 설명한다. 상기 터보 부호기는 입력 프레임 데이터 열을 부호화하지 않고 출력하는 부분과, 상기 입력 프레임 데이터 열을 부호화하여 출력하는 제 1 구성 부호기(100)와 상기 입력 프레임 데이터 열을 인터리빙하여 제 2구성 부호기(104)로 출력하는 터보 인터리버(102) 및 상기 터보 인터리버(102)의 출력을 입력하여 부호화하는 제 2구성 부호기(104)와 입력된 프레임 데이터 열을 조합하여 출력하는 먹스(MUX)(106)로 구성된다. 상기 터보 인터리버(102)는 상기 제 1 구성 부호기(100)와 제 2구성 부호기(104)로 입력되는 데이터 열 간의 상관관계를 최소화하기 위해 제 2구성 부호기(104)로 입력되는 입력 프레임 데이터 열의 입력 순서를 재배열하는 역할을 수행한다. 즉, 상기 터보 인터리버(102)는 터보 코딩의 성능을 극대화하기 위해 부가된 구성이며, 인터리버의 크기만큼의 인터리버 어드레스를 발생시키는 장치이다. 상기 터보 인터리버(102)로는 프라임 인터리버(Prime Interleaver:PIL)를 사용한다. 상기 PIL은 2차 매트릭스 교환 동작을 기본으로 하고 프루닝 동작을 통해 인터리버 인덱스가 터보 인터리버의 크기보다 커지게 되면 펑처링하는 추가 동작이 있게 된다.
상기 2차 메트릭스 교환은 행 내부 교환과 행간 교환으로 구성된다. 상기 행 내부 교환은 하나의 행에서 각각의 값들을 교환하는 것이고, 행간 교환은 행 단위로 교환을 수행하는 것이다. 상기 행 내부 교환과 행간 교환을 수행하기 위해서는 다수의 파라미터들이 필요하다. 즉, 터보 인터리버에서는 인터리버 크기 K를 입력으로 하여 인터리버 인덱스를 생성하기 위해서는 다수의 파라미터들을 먼저 정해야하고 또한 이를 통해 상기 행 내부 교환과 행간 교환을 수행할 수 있다. 이하에서는 상기 행 내부 교환과 행간 교환을 수행하기 위한 파라미터를 정의하고 이를 구하는 과정을 알아본다.
첫 번째 단계로 PIL은 2차 메트릭스 구조이므로 터보 인터리버 크기 K에 해당하는 행(Row: R)값을 미리 결정되어있는 값으로부터 구한다. 표 1은 상기 인터리버의 크기와 상기 행과의 관계를 나타내고 있다.
인터리버의 크기(K) | 행(R) |
40≤K〈159 | 5 |
160≤K〈200 | 10 |
201≤K〈480 | 20 |
481≤K〈530 | 10 |
531≤K〈5114 | 20 |
상기 표 1에 의해 행의 크기를 구한 뒤, 교환 패턴을 결정하는 파라미터인 p(프라임 넘버: 소수)값과 열(Column: C)값을 이하의 수학식 1에 의해 구한다.
else
(ⅰ)find minimum prime munber p such that, ((p+1)-K/R≥0)
(ⅱ)if (p-K/R≥0) then go to (ⅲ), else C=p+1
(ⅲ)if ((p-1)-K/R≥0) then C=p+1, else C=p
상기 수학식 1에서 p는 K의 값에 따라 7, 19,23,..,251,257의 74개 중 하나의 값을 갖는다. 또한 상기 열은 인터리버의 크기를 나타내는 것으로 실제 입력 정보어 프레임의 크기가 K라 할 때 K/R로 정의되는 값에 따라 결정되는 값이다.
상기 표 1과 수학식 1에 의해 R, C, p 파라미터가 결정되면 각 p값에 해당하는 프리미티브 루트(Primitive Root:이하 g0라 한다.) 값을 이하의 표 2를 이용해 구할 수 있다.
p | g0 | p | g0 | p | g0 | p | g0 | p | g0 |
7 | 3 | 47 | 5 | 101 | 2 | 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 | 233 | 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 |
두 번째 단계에서는 상기 첫 번째 단계에서 정해진 g0값과 p값에 의해 행 내 교환을 먼저 수행한다. 상기 행 내 교환을 수행하기 위해 먼저 베이스 시퀀스(Base Sequence: c)를 생성해야 한다. 상기 베이스 시퀀스는 0부터 (p-1)의 값을 이하 수학식 2에 의해 구한 결과이다.
또한, 1번째부터 R번째 행까지의 행 내 교환을 수행하기 위해서는 (p-1)의 값과 각 행에 필요한 q값을 요구한다. 상기 q값은 교환 패턴을 결정하는 값이다. 상기 q값은 (1, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89)의 집합에서 (R-1)개의 수가 중복 없이 선택된다. 선택되는 방법은 이하의 수학식 3과 같다.
상기 G.C.D는 Greatest Common Divisor의 약어로 최대 공약수를 나타낸다.상기 q(j)는 (1, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89) 중의 19개 또는 9개 또는4개의 행에 중복 없이 지정된다. 상기 q(j)의 값은 이하의 표 3과 표4를 이용해 K의 값에 따라 q(j)값이 교환된다.
K | 교환 패턴 |
40≤K≤159 | D |
160≤K≤200 | C |
201≤K≤480 | A |
481≤K≤530 | C |
531≤K≤2280 | A |
2281≤K≤2480 | B |
2481≤K≤3160 | A |
3161≤K≤3210 | B |
3211≤K≤5114 | A |
행간 교환 패턴 | |
A | 19,9,14,4,0,2,5,7,12,18,10,8,13,17,3,1,17,6,15,11 |
B | 19,9,14,4,0,2,5,7,12,18,16,13,17,15,3,1,6,11,8,10 |
C | 9,8,7,6,5,4,3,2,1,0 |
D | 4,3,2,1,0 |
또한 각 행 내 교환은 이하의 수학식 4에 의해 이루어진다.
at j-th row(j =0,1,2,..., R-1)
(i)=C[(i×q(j)) mod (p-1)] i=1,2,...,p-2
C=p 일 때,
at j-th row(j =0,1,2,..., R-1)
(i)=C[(i×q(j)) mod (p-1)] i=1,2,...,p-2,(P-1)=0
C=p+1일 때,
at j-th row(j =0,1,2,..., R-1)
(i)=C[(i×q(j)) mod (p-1)] i=1,2,...,p-2,(p-1)=0,(p)=p
상기 수학식 4는 C가 p-1, p 또는 p+1 각각의 경우에서 j번째 행에서의 행 내 교환을 나타내고 있으며, 상기 C가 p-1인 경우는 행 내 교환만을 수행하고, C가 p인 경우는 행 내 교환을 수행한 후 상기 행의 마지막 열에 0을 삽입하고, C가 p+1인 경우에는 행 내 교환을 수행한 후 상기 행의 마지막 두 번째 열에는 0을 삽입하고 마지막 열에는 p값을 삽입함을 나타내고 있다. 상기 0 또는 p를 삽입하는 것은 C값이 p 또는 p+1일 경우 행 내의 남는 열을 채우기 위한 것이다.
상술한 바와 같이 터보 인터리빙을 수행하기 위해서는 행 내 교환과 행간 교환을 위한 파라미터들을 찾기 위한 프로세싱 지연이 매우 큰 문제가 된다. 구체적으로, 지연이 크게 발생하는 원인은 모듈로 연산이다. 상기 수학식 4에서(i)=C[(i×q(j)) mod (p-1)]의 (i×q(j)) mod (p-1)을 A(i)라 하면, 상기 A(i)의 i×q의 값은 0부터 255×89의 값의 구간의 수가되고, p-1의 값은 0부터 256구간의 수가된다. 상기 I값은 터보 인터리버 인덱스 1개를 발생시킬 때마다 1씩 증가한다. 즉, A(i)를 구하기 위해 곱셈이 필요하고 곱셈의 결과가 상대적으로 크므로 문제가 발생한다. 일반적으로 연산 (a) mod (b)에서 a 와 b 값이 클수록 하드웨어 프로세싱 지연은 커지게 되기 때문이다.
상기와 같은 문제점을 해결하기 위해 국내 출원번호 P20010025305는 상기 q대신 새로운 파라미터 감소 q를 제안하였다. 이하 상기 감소 q 파라미터를 이용한 터보 인터리버에 대해 알아본다.
도 2는 p, g0, 감소 q값을 찾기 위한 도면이다. 이하 도 2를 중심으로 상기 p, g0, 감소 q값을 찾는 과정에 대해 상세하게 알아본다. 상기 터보 인터리버의 크기 K가 정해지면 상기 K의 값에 따라 비교기의 임계치와 멀티플렉스(212)의 선택 값이 정해진다. 상기 임계치는 K의 값에 따라 변경되며, 그 값은 K/R이다. 상기 p 저장부(200)는 어드레스들 각각에 대응하는 p값을 갖는 테이블을 가지고 있으며, 상기 어드레스 값에 대응하는 p값을 출력한다. 비교기(202)는 상기 p 저장부(200)로부터 출력되는 p값과 상기 임계치를 입력받아 비교한다. 상기 p값을 X라 하고, 상기 임계치를 Y라 하면 상기 비교기는 상기 X가 상기 Y보다 큰 값을 가지는지 비교한다. 상기 비교 결과 X가 Y보다 크거나 같다면 스위치(204)를 아래로 접속시켜 상기 어드레스 값에 대응하는 상기 p, g0, 감소 q값을 출력한다. 물론, 상기 g0 저장부(206)와 감소 q 저장부(208)는 상기 p 저장부(200)와 마찬가지로 상기 어드레스 값들에 해당하는 값들을 저장하고 있다. 그러나 상기 X가 상기 Y보다 작다면 어드레스 카운트 값을 하나씩 증가시켜 상기의 과정들을 되풀이한다.
도 3은 도 2의 ROM 테이블을 레지스터 MUX로 구현한 도면이다. 이하 도2를 참고로 상기 터보 인터리빙을 수행하는데 필요한 파라미터들(p, g0, 감소 q)을 찾는 과정을 설명한다. MUX(302)는 p, g0, 감소 q값들로 구성된 파라미터셋을 카운터(300) 값에 맵핑되어 출력하도록 동작한다. 즉 카운터(300)의 첫 번째 카운트 값이 입력될 때 첫 번째 열의 파라미터 셋(304) 을 출력하도록 동작하고 카운터(300)가 마지막 51번째 카운트 값을 입력할 때 마지막 파라미터 셋(308)을 출력하도록 동작한다. 따라서 마지막 파라미터 셋(308)을 출력하기 위해서 카운터(300)는 최대 51회까지 카운트를 해야만 한다.
따라서 본 발명의 목적은 터보 코드를 사용하는 이동통신 시스템에서 터보 인터리빙을 수행하는데 필요한 파라미터를 구하는데 소요되는 시간을 최소화하는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 터보 코드를 사용하는 이동통신 시스템에서 터보 인터리빙에 소요되는 시간을 최소화하는 장치 및 방법을 제공함에 있다.
본 발명의 또 다른 목적은 터보 코드를 사용하는 이동통신 시스템에서 터보 인터리빙을 위해 필요한 파라미터들을 저장하는데 사용되는 메모리를 최소화하는데 있다.
이를 위해 상기 본 발명은 모듈로 연산에 필요한 파라미터 q 대신 새로운 파라미터 감소 q를 사용한다. 또한 상기 인터리빙에 필요한 소수 p를 구하기 위해 소정 개수의 모듈로 연산기를 도입하여 최소 지연시간 내에 소수 p를 구한다.
본 발명의 또 다른 목적을 이루기 위해 상기에서 구한 p를 MUX에 직접 입력하여 미리 저장되어 있는 테이블로부터 상기 p와 대응되는 파라미터들을 출력하도록 한다. 또한 상기에서 구한 파라미터들을 이용하여 행 내 교환과 행간 교환을 수행함으로서 인터리빙에 필요한 시간을 줄이게 된다.
도 1은 일반적인 터보 부호기의 구조를 나타낸 도면.
도 2는 종래의 인터리빙 인덱스를 결정하기 위한 파라미터들을 생성하는 구성을 나타낸 도면.
도 3은 도 2의 ROM 테이블을 레지스터 MUX로 구현한 도면.
도 4는 본 발명이 인터리빙 인덱스를 결정하기 위한 파라미터들을 생성하는 구성을 나타낸 도면.
도 5는 도 4의 소수발생기의 동작을 설명한 도면.
도 6은 도4에서 인터리빙 인덱스를 결정하기 위한 파라미터들을 생성하는 과정을 나타낸 흐름도.
도 7은 종래의 인터리빙 인덱스를 결정하기 위한 파라미터들을 생성하는 과정을 나타낸 타이밍도.
도 8은 본 발명의 인터리빙 인덱스를 결정하기 위한 파라미터들을 생성하는 과정을 나타낸 타이밍도.
도 9은 본 발명의 적용에 의해 또 다른 경우의 인터리빙 인덱스를 결정하기 위한 파라미터들을 생성하는 과정을 나타낸 타이밍도.
이하 본 발명의 바람직한 실시 예를 첨부한 도면의 참조와 함께 상세히 설명한다. 또한 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
본 발명에서는 상기에서 기술한 q값을 이용하지 않고 이후에 처리해야 될 모듈로 연산을 미리 적용한 새로운 q(reduce_q: 감소 q)값을 사용하며, 그 정의는 다음과 같다.
reduce_q =(q)mod(p-1)
예를 들면 p 값이 17이고 q 값이 71이면 감소 q(reduce_q)의 값은 (71)mod(16)=7이 된다. 이와 같이 종래의 q값에 비해 감소 q의 값이 작아짐을 알 수 있다. 따라서 감소 q 값을 사용함으로서 앞서 지적한 모듈로 연산에 필요한 값들이 작아지고, 또한 이로 인해 지연의 문제가 줄어들게 된다. 상기와 같이 q 값을 모듈로 연산을 수행하여 감소시킬 수 있는 이유는 다음과 같다. 상기 수학식 4에서(i)=C[(i×q(j)) mod (p-1)] = C(A(i,j))이라 하면, 이하의 수학식 5와 같이 유도할 수 있음을 알 수 있다.
=[q(0) + q(1) + ...+q(j)]mod(p-1)
=[q(j)mod(p-1) + q(j) mod (p-1)+...+q(j) mod (p-1)]mod(p-1)
=[A(i-1,j) + (q(j) mod (p-1)]mod(p-1)
=[A(i-1,j) + reduce_q(j)] mod (p-1)]
이하 표 5와 표 6은 상기 도 2의 상기 먹스(212)에 입력하는 선택신호를 나타낸다. 상기 표 5는 선택신호가 0일 경우 어드레스들과 상기 어드레스들 각각에 대응되는 파라미터들을 나타내며, 상기 표 6은 선택신호가 1일 경우 어드레스와 상기 어드레스에 대응되는 파라미터를 나타낸다.
어드레스 | p | g0 | 감소 q |
0 | 7 | 3 | 1,1,5,1,5,1,5,5,1,1,5,1,5,5,5,1,1,5,1,1 |
1 | 11 | 2 | 1,7,1,3,7,9,3,9,1,7,1,3,7,3,9,1,7,1,3,9 |
2 | 13 | 2 | 1,7,11,1,5,7,11,5,7,1,5,7,11,5,11,1,7,11,1,7 |
3 | 17 | 3 | 1,7,11,13,1,3,7,13,15,5,9,11,15,5,11,13,3,7,9,15 |
4 | 19 | 2 | 1,7,11,13,17,1,5,11,13,1,5,7,11,17,5,7,13,17,1,7 |
5 | 23 | 5 | 1,7,13,17,19,1,7,9,15,19,21,3,9,15,17,1,5,7,13,17 |
6 | 29 | 2 | 1,11,13,17,19,23,1,3,9,13,15,19,25,3,5,11,15,17,23,27 |
7 | 31 | 3 | 1,7,11,13,17,19,23,29,1,7,11,13,17,23,29,1,7,11,13,19 |
8 | 37 | 2 | 1,7,11,13,17,19,23,29,31,1,5,7,11,17,23,25,31,35,1,7 |
9 | 41 | 6 | 1,7,11,13,17,19,23,29,31,37,1,3,7,13,19,21,27,31,33,39 |
10 | 43 | 3 | 1,11,13,17,19,23,29,31,37,41,1,5,11,17,19,25,29,31,37,41 |
11 | 47 | 5 | 1,7,11,13,17,19,29,31,37,41,43,1,7,13,15,21,25,27,33,37 |
12 | 53 | 2 | 1,7,11,17,19,23,29,31,37,41,43,47,1,7,9,15,19,21,27,31 |
13 | 49 | 2 | 1,7,11,13,17,19,23,31,37,41,43,47,53,1,3,9,13,15,21,25 |
14 | 61 | 2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,1,7,11,13,19 |
15 | 67 | 2 | 1,7,13,17,19,23,29,31,37,41,43,47,53,59,61,1,5,7,13,17 |
16 | 71 | 7 | 1,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,1,3,9,13 |
17 | 73 | 5 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,1,7 |
18 | 79 | 3 | 1,7,11,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,1,5 |
19 | 83 | 2 | 1,7,11,13,17,19,23,29,31,37,43,47,53,59,61,67,71,73,79,1 |
20 | 89 | 3 | 1,7,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
21 | 97 | 5 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
22 | 101 | 2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
23 | 103 | 5 | 1,7,11,13,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
24 | 107 | 2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,59,61,67,71,73,79,83 |
25 | 109 | 6 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
26 | 113 | 3 | 1,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
27 | 127 | 3 | 1,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
28 | 131 | 2 | 1,7,11,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
29 | 137 | 3 | 1,7,11,13,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
30 | 139 | 2 | 1,7,11,13,17,19,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
31 | 149 | 2 | 1,7,11,13,17,19,23,29,31,41,43,47,53,59,61,67,71,73,79,83 |
32 | 151 | 6 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
33 | 157 | 5 | 1,7,11,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
34 | 163 | 2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
35 | 167 | 5 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
36 | 173 | 2 | 1,7,11,13,17,19,23,29,31,37,41,47,53,59,61,67,71,73,79,83 |
37 | 179 | 2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
38 | 181 | 2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
39 | 191 | 19 | 1,7,11,13,17,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
40 | 193 | 5 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
41 | 197 | 2 | 1,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
42 | 199 | 3 | 1,7,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
43 | 211 | 2 | 1,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
44 | 223 | 3 | 1,7,11,13,17,19,23,29,31,41,43,47,53,59,61,67,71,73,79,83 |
45 | 227 | 2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
46 | 229 | 6 | 1,7,11,13,17,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
47 | 233 | 3 | 1,7,11,13,17,19,23,31,37,41,43,47,53,59,61,67,71,73,79,83 |
48 | 239 | 7 | 1,11,13,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89 |
어드레스 | p | g0 | R10 |
N/A | 53 | 2 | 1,7,11,19,23,29,31,37,41 |
이하 선택 신호가 0인 경우에 대하여 설명한다.
도 4는 본 발명이 적용되는 인터리빙 파라미터들을 찾기 위한 과정을 나타낸 도면이다. 이하 상기 도 4를 중심으로 본 발명이 적용되는 감소 q 값을 찾는 과정에 대해 상세하게 설명한다.
상기 도 4에 의한 본 발명에 적용되는 구성들은 주어진 K값으로부터 상기 표 1에 의해 R값을 구한 후 K/R의 몫의 값에서 1을 뺀 값(이하 최소 p 기준값이라 한다.)에 대해 그 값이 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 소수인지 여부를 판단하는 3개의 모듈로 연산기(402,404,406)와 상기 모듈로 연산기들을 통해 판별해 낼 수 없는 특정 소수들을 판별해내기 위한 비교기(408), 각각의 상기 모듈로 연산기(402,404,406)의 연산 결과에 대한 인에이블(enable) 신호들을 생성하기 위해 필요한 모듈로 비교기(410,412,414), 상기 비교기(408)와 상기 모듈로 비교기(410,412,414)의 출력값들에 의해 소수를 생성하기 위한 소수 발생기(400), 그리고 생성된 소수로부터 g0와 감소 q값을 생성하기 위한 감산기(416)와 먹스 테이블(MUX Table)(418)로 구성된다.
이하 상기 도 4를 중심으로 본 발명의 동작을 상세히 설명한다. 상기 인터리버의 크기 K값이 주어지면 상기 표 1을 이용하여 상기 K값에 대응하는 상기 R값을 구한다. 상기 K값과 R값으로 K/R의 몫의 값을 구한 후 상기 몫의 값에서 1을 뺀다. 이하 이 값(K/R - 1)을 상기에서 밝힌 바와 같이 최소 p 기준값이라 한다. 상기 최소 p 기준값은 소수일 수도 있지만 소수가 아닐 경우도 있음은 자명하다. 상기에서 구한 최소 p 기준값은 상기 소수 발생기(400)로 입력된다.
상기 소수 발생기(400)는 상기 입력된 최소 p 기준값이 7인지 여부를 판단한다. 상기 입력된 최소 p 기준값이 7이 아닐 경우, 상기 최소 p 기준값의 최하위 비트를 검사한다. 상기 입력된 최소 p 기준값이 7인 경우에 대해서는 후술한다. 상기 최하위 비트의 수가 0인 경우 상기 최소 p 기준값은 짝수이므로 소수가 아님을 알 수 있다. 또한 상기 최하위 비트의 수가 1인 경우 상기 최소 p 기준값은 홀수이므로 소수일 가능성을 가지게 된다. 따라서 상기 소수 발생기(400)는 상기 최하위 비트의 수가 0인 경우 1을 더하여 홀수로 만든다. 이하 최하위 비트의 수가 1을 가지게 된 상기 최소 p 기준값을 예정 p(Pre-Prime)라 한다.
상기 소수 발생기(400)는 상기 예정 p를 각 모듈로 연산기(402,404,406)와 상기 비교기(408)에 입력한다. 상기 각 모듈로 연산기(402,404,406)는 모듈로 3 연산기(402), 모듈로 5 연산기(404), 모듈로 7 연산기(406)로 구성되어 있다. 또한 상기 비교기(408)는 상기 입력된 예정 p의 값이 121, 143, 169, 187, 209, 221, 247, 253인지의 여부를 비교한다. 상기 값들은 상기 각 모듈로 연산기(402,404,406)에 의해 소수임을 알 수 없는 수이다. 즉 이들 값들이 각 모듈로 연산기(402,404,406)를 통과하면 소수임을 나타내나 실제 이들은 소수가 아님을 알 수 있다.
상기 모듈로 3 연산기(402)는 상기 입력된 예정 p를 3으로 나눈 나머지 값을 출력한다. 상기 모듈로 5 연산기(404)는 상기 입력된 예정 p를 5로 나눈 나머지 값을 출력한다. 상기 모듈로 7 연산기(406)는 상기 입력된 예정 p를 7로 나눈 나머지 값을 출력한다. 상기 각 나머지 값들은 모듈로 비교기들(410,412,414)로 각각 입력된다. 상기 도 4에서는 모듈로 3 연산기(402)에 대한 나머지 값은 상기 모듈로 비교기(410)로 입력되고 있음을 보이며, 모듈로 5 연산기(404)에 대한 나머지 값은 상기 모듈로 비교기(412)로 입력되고 있음을 보이며, 또한 모듈로 7 연산기(406)에 대한 나머지 값은 상기 모듈로 비교기(414)로 입력되고 있음을 보이고 있다.
상기 각 모듈로 비교기들(410,412,414)은 입력되는 상기 각각의 나머지 값이 0인지 여부를 비교하여 상기 입력되는 나머지의 값이 0인 경우 인에이블 신호로 0을 출력하여 소수가 아님을 나타낸다. 또한 상기 각 모듈로 비교기들(410,412,414)은 입력되는 상기 각각의 나머지 값이 0이 아닌 경우 상기 인에이블 신호로 1을 출력하여 소수일 가능성이 있음을 알리게 된다. 물론 이 경우 상기 모든 모듈로 비교기들(410,412,414)의 출력이 1인 경우에 한하여 소수일 가능성이 있음은 자명하다.
또한 상기 비교기(408)는 앞서 설명한 것과 같이 상기 입력되는 예정 p가 상기 비교기(408) 내부에 저장되어 있는 121,143, 169, 187, 209, 221, 247, 253의 값과 동일한지 여부를 비교한다. 상기 비교 결과 상기 입력된 예정 p가 상기 저장되어 있는 값들과 동일한 경우 상기 비교기(408)는 인에이블 신호로 0을 출력하여 소수가 아님을 나타낸다. 또한 상기 비교 결과 상기 입력된 예정 p가 상기 저장되어 있는 값들과 동일하지 않을 경우 상기 비교기(408)는 인에이블 신호로 1을 출력하여 소수일 가능성이 있음을 알리게 된다.
상기 모듈로 비교기들(410,412,414)과 상기 비교기(408)에서 출력되는 상기인에이블 신호들은 상기 소수 발생기(400)로 입력된다. 상기 소수 발생기(400)는 입력된 신호 중 상기 비교기(408)에서 출력된 상기 인에이블 신호의 값을 먼저 분석하여 상기 값이 1인 경우에 한하여 상기 모듈로 비교기들(410,412,414)에서 출력된 상기 인에이블 신호의 값을 분석한다. 만약, 소수 발생기(400)로 입력된 상기 비교기(408)에서 출력된 인에이블 신호의 값이 0인 경우 상기 예정 p의 값은 소수가 아니므로, 상기 입력된 모듈로 비교기들(410,412,414)의 값은 분석하지 않아도 된다. 상기 분석 결과 상기 소수 발생기(400)로 입력된 모듈로 비교기들(410,412,414)과 상기 비교기(408)의 인에이블 신호의 값이 모두 1인 경우에만 상기 예정 p가 상기 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 소수임을 나타낸다. 만약 상기 소수 발생기(400)로 입력된 모듈로 비교기들(410,412,414)과 상기 비교기(408)의 상기 인에이블 신호의 값 중 하나라도 0이 있는 경우에는 상기 예정 p는 소수가 아님을 나타낸다.
상기 소수 발생기(400)에서의 동작에 의해 상기 예정 p가 상기 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 소수가 아닌 경우에는 상기 소수 발생기(400)는 상기 예정 p에 2를 더한 값을 새로운 예정 p로 지정하여 상기 비교기(408)와 상기 모듈로 연산기(402,404,406) 각각에 입력한다. 이 경우 상기 예정 p에 2를 더하는 이유는 상기 예정 p의 값이 홀수이므로 상기 예정 p에 1을 더하면 짝수가 되어 상기 새로운 예정 p는 상기 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 소수가 아님이 자명하기 때문이다.
또한 앞서 언급한 것처럼 상기 소수 발생기(400)는 상기 최소 p 기준값이 7인 경우에는 상기 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 소수임을 나타내게 한다. 이는 상기 최소 p 기준값이 7인 경우에는 상기 모듈로 7 연산기(406)에 의한 나머지가 0이며 이로 인해 모듈로 연산 비교기(414)의 인에이블 신호가 0으로 출력되어 소수가 아님을 나타낸다. 그러나 상기 최소 p 기준값이 7인 경우 상기 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 소수이므로 예외 규정을 두었다.
상기 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 소수를 찾은 경우 상기 소수 발생기(400)는 상기 원하는 소수에 대응하는 g0값과 감소 q값을 얻기 위해 찾은 소수에 관한 정보를 상기 먹스 테이블(418)로 입력한다. 본 발명에서는 상기 먹스 테이블(418)로 입력되는 비트수를 최소한으로 줄이기 위해 감산기(416)를 추가하였다. 즉, 상기에서 찾은 소수는 8비트로 이루어져 있으므로 이를 줄이기 위함이다. 이를 위해 상기에서 찾은 소수의 값을 (소수/2 - 3)으로 변환한다. 이와 같이 할 수 있는 이유는 상기 소수의 값들의 차이가 최소한 2를 가지기 때문이다. 이 경우 변환된 값은 소수점을 가진 수로 표현되나 본 발명에서는 정수부분(이하 감소 p라 한다.)만을 사용한다. 이와 같이 함으로서 상기 도 4에서 보이는 바와 같이 비트 수가 하나 줄어들어 상기 먹스 테이블(418)에 입력됨을 알 수 있다. 즉, 찾은 소수의 값이 239일 경우 이는 8비트로 이루어지나 상기 변환 과정을 거치면 116이 되어 8비트만으로도 표현이 가능해진다. 상기 먹스 테이블(418)은 상기 각 소수에 대응하는 상기 g0, 감소 q값들을 테이블 형식으로 저장하고 있다. 따라서 상기 먹스 테이블(418)은 입력된 상기 감소 p를 이용하여 상기 인터리빙 파라미터들(g0, 감소 q값)이 저장되어 있는 테이블 이용하여 대응하는 인터리빙 파라미터들(g0, 감소 q값)을 출력한다. 이 경우 상기 먹스 테이블(418)은 상기 표 6과 달리 상기 인터리빙 파라미터들(g0, 감소 q값)만을 저장하고 있을 수 있다. 이와 같이 함으로서 상기 먹스 테이블(418)에 포함되어 있는 메모리의 용량을 줄일 수 이점이 가지게 된다.
g0 | 감소 q |
3 | 1,1,5,1,5,1,5,5,1,1,5,1,5,5,5,1,1,5,1,1 |
2 | 1,7,1,3,7,9,3,9,1,7,1,3,7,3,9,1,7,1,3,9 |
2 | 1,7,11,1,5,7,11,5,7,1,5,7,11,5,11,1,7,11,1,7 |
3 | 1,7,11,13,1,3,7,13,15,5,9,11,15,5,11,13,3,7,9,15 |
2 | 1,7,11,13,17,1,5,11,13,1,5,7,11,17,5,7,13,17,1,7 |
5 | 1,7,13,17,19,1,7,9,15,19,21,3,9,15,17,1,5,7,13,17 |
2 | 1,11,13,17,19,23,1,3,9,13,15,19,25,3,5,11,15,17,23,27 |
3 | 1,7,11,13,17,19,23,29,1,7,11,13,17,23,29,1,7,11,13,19 |
2 | 1,7,11,13,17,19,23,29,31,1,5,7,11,17,23,25,31,35,1,7 |
6 | 1,7,11,13,17,19,23,29,31,37,1,3,7,13,19,21,27,31,33,39 |
3 | 1,11,13,17,19,23,29,31,37,41,1,5,11,17,19,25,29,31,37,41 |
5 | 1,7,11,13,17,19,29,31,37,41,43,1,7,13,15,21,25,27,33,37 |
2 | 1,7,11,17,19,23,29,31,37,41,43,47,1,7,9,15,19,21,27,31 |
2 | 1,7,11,13,17,19,23,31,37,41,43,47,53,1,3,9,13,15,21,25 |
2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,1,7,11,13,19 |
2 | 1,7,13,17,19,23,29,31,37,41,43,47,53,59,61,1,5,7,13,17 |
7 | 1,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,1,3,9,13 |
5 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,1,7 |
3 | 1,7,11,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,1,5 |
2 | 1,7,11,13,17,19,23,29,31,37,43,47,53,59,61,67,71,73,79,1 |
3 | 1,7,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
5 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
5 | 1,7,11,13,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,59,61,67,71,73,79,83 |
6 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
3 | 1,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
3 | 1,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
2 | 1,7,11,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
3 | 1,7,11,13,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
2 | 1,7,11,13,17,19,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
2 | 1,7,11,13,17,19,23,29,31,41,43,47,53,59,61,67,71,73,79,83 |
6 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
5 | 1,7,11,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
5 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
2 | 1,7,11,13,17,19,23,29,31,37,41,47,53,59,61,67,71,73,79,83 |
2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
19 | 1,7,11,13,17,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
5 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
2 | 1,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
3 | 1,7,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
2 | 1,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
3 | 1,7,11,13,17,19,23,29,31,41,43,47,53,59,61,67,71,73,79,83 |
2 | 1,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79 |
6 | 1,7,11,13,17,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 |
3 | 1,7,11,13,17,19,23,31,37,41,43,47,53,59,61,67,71,73,79,83 |
7 | 1,11,13,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89 |
다음으로 도 5를 참고로 도 4의 소수발생기(400)의 동작을 상세하게 설명한다. 상기 최소 p 기준값이 제 1비교기(420)로 입력되면 상기 제 1비교기는 상기 최소 p 기준값의 홀, 짝수 여부를 판단하여 상기 제 1선택기의 선택신호 c를 출력한다. 이때 상기 최소 p 기준값이 짝수일 경우 c는 1로 세팅되고, 홀수일 경우 0으로 세팅된다. 제 1가산기는 상기 최소 p 기준값에 1을 더하여 제 1선택기(422)로 출력한다. 상기 제 1선택기(422)는 상기 선택신호 c가 1일 경우 제 1가산기(422)의 입력값을 제 2선택기로 출력하고 반대의 경우에는 직접 입력된 최초 p 기준값을 제 2선택기로 출력한다. 상기 제 2선택기(426)는 시작신호 입력시 제 1 선택기(424)로부터 입력된 값을 출력하고 시작신호의 입력이 없으면 제 2가산기로부터의 입력값을 제 1클럭 F/F(430)으로 출력한다. 상기 제 1클럭 F/F은 터보 인터리번 클럭에 따라 상기 제 2선택기로부터의 입력값을 예비 소수값으로 모듈로 연산부(450), 제 2비교기(432), 제 2가산기(428) 및 2사이클 지연기(440)로 출력한다. 제 2가산기(428)는 예비 소수값에 2를 더하여 제 2 선택기(426)로 출력하여 상기의 과정을 반복한다. 상기 2사이클 지연기는 상기 제 1 클럭 F/F으로 부터의 입력값을 터보 인터리버 클럭에 따라 2클럭 지연시킨후 제 3 선택기(442)로 출력한다. 상기 제 3선택기(442)는 제 2클럭 F/F(438)의 출력값에 따라 상기 2클럭 사이클 지연된 예비 소수와 NULL값 중 하나를 선택하여 제 3클럭 F/F(444)로 출력한다. 여기서 상기 2클럭 사이클 지연된 예비 소수를 제 3선택기에 출력하는 이유는 본 실시예의 장치가 클럭 기반으로 동작할 경우 예비 소수가 입력되어 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 소수인지를 결정하는 과정에서 2클럭 사이클의 지연이 발행하기 때문이다. 계속해서 상기 제 3클럭 F/F은 터보 인터리버 클럭에 따라 상기 제 3선택기로부터 입력된 값을 출력한다. 상기 제 1클럭 F/F(430)으로부터 예비 소수를 입력받은 제 2비교기(432)는 상기 예비 소수가 7 인지 여부를 판단하여 7일 경우 인에이블 신호를 OR gate(436)로 출력한다. AND gate(434)는 상기 모듈로 연산부(450)으로부터 입력된 인에이블 신호들을 AND 연산하여 상기 OR gate(436)로 출력한다. 상기 OR gate(436)는 상기 제 2비교기(432)와 AND gate(434)로부터 입력되는 값들 중 하나만 인에이블 신호이면 제 2클럭 F/F(438)으로 인에이블 신호를 출력하고 상기 제 2클럭 F/F은 터보 인터리버 클럭에 따라 상기 인에이블 신호를 제 3선택기의 선택 신호로 입력한다.
도 6은 상기 도 4에서 설명한 과정을 플로우 차트로 나타낸 도면이다. 즉, 상기 도 6은 상기 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 p값을 구하는 과정을 나타내고 있다. 이하 상기 도 6을 참고로 설명한다. 먼저 600단계에서 최소 p 기준값을 구하고, 602단계에서 상기 최소 p 기준값이 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 값중 예외 경우에 해당하는 7인지를 판단한다. 조건을 만족하는 값일 경우 610단계로 이동하여 나머지 파라미터 셋(p, g0, 감소 q값)을 구한다. 그렇지 않다면 상기 최소 p 기준값을 이용하여 604단계에서 예정 p를 구한다. 상기 예정 p는 각 상기 모듈로 연산기들로 입력되어 606단계에서 나머지 값을 출력한다. 또한 상기 예정 p는 비교기로 입력되어 608단계에서 인에이블 신호를 출력하며, 또한 상기 606단계에서 출력된 나머지 값을 이용하여 상기 모듈로 연산 비교기는 608단계에서 인에이블 신호를 출력한다. 상기 소수 발생기는 610단계에서 입력된 인에이블 신호를 분석하여 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 값인지 여부를 판단한다. 상기 판단 결과 상기 스펙에서 원하는 신호일 경우 612단계로 이동하여 p, g0, 감소 q값을 구한다.
도 7은 종래 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 p와 이에 대응되는 g0값을 찾는 과정을 타이밍도이다. 도 8은 본 발명을 적용하여 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 p와 이에 대응되는 g0값과 감소 q값을 찾는 과정을 나타내고 있는 타이밍도이다. 상기 도 7과 상기 8도 모두 K/R-1의 값이 253인 경우를 가정하였다. 이 경우 상기 도 7은 카운터를 하나씩 증가시켜 상기 카운트 값이 51이 되었을 때 상기 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 값인 소수 p(257)를 찾을 수 있다. 즉 도 6에서 보이는 바와 같이 종래의 방법에 따라 터보 인터리빙을 수행하는데 필요한, 조건을 만족하는 값 p를 찾기 위해서는 최대 51 사이클이 지연이 발생할 수 있다. 하지만 본 발명이 적용되는 상기 도 8에서는 상기 터보 인터리빙을 수행하는데 필요한, 조건을 만족하는 p 값인 257을 찾기 위해 최대 5사이클의 지연만이 발생함을 알 수 있다. 상기 도 8에 나타난 p 인에이블은 상기 도 4의 소수 발생기에서 출력되는 신호로서 상기 터보 인터리빙을 수행하는데 필요한, 조건을 만족하는 p값을 얻은 경우에는 1의 신호를 출력하고, 상기 터보 인터리빙을 수행하는데 필요한, 조건을 만족하는 p값이 아닐 경우에는 0의 신호를 출력함을 보이고 있다. 또한 상기 도 8에 나타난 예정 p_d는 상기 도 4의 예정 p보다 2사이클 지연되어 표시되어 있다. 이는 상기 도 4에 표시되어 있는 각 모듈로 연산기들과, 비교기로 입력되는 상기 예정 p가 각 모듈로 연산기들과 비교기, 그리고 모듈로 비교기들을 통과하여 상기 소수 발생기에 입력되는 신호와 2사이클의 시간 차이가 나기 때문이다.
도 9 본 발명이 적용에 있어 가장 긴 지연을 가지는 상기 최소 p 기준값에 대해 상기 터보 인터리빙을 수행하는데 필요한 조건을 만족하는 p값을 찾는 과정을 나타내는 타이밍도이다. 이 경우 상기 도 9에서 보이고 있는 바와 같이 8사이클의 지연을 가지는 것을 알 수 있다. 상기 타이밍도는 본 발명이 제안하는 방법에 의해 발생할 수 있는 최대 지연 시간에 대한 예로서, 대부분의 경우 5사이클 이내에 상기 조건을 만족하는 소수 p를 구할 수 있다.
전술한 바와 같이 본 발명은 터보 인터리버의 인터리빙 수행 시 상기 인터리빙을 수행하기 위해 필요한 파라미터들을 구함에 있어 연산량을 줄일 수 있다. 또한 상기 인터리빙에 소요되는 시간을 최소화할 수 있는 장점이 있다.
Claims (22)
- 터보코드를 사용하는 이동 통신시스템에서 터보인터리빙을 수행하는데 필요한 파라미터들을 구하는 장치에 있어서 ,인터리버의 크기(K)에 의해 결정된 특정 값을 입력받아 모듈로 연산에 의해 나머지 값을 출력하는 모듈로 연산부와,상기 모듈로 연산부의 출력을 검사하여 모두가 나머지 값을 가질 경우 상기 특정값을 터보 인터리빙 파라미터로 출력하는 소수 발생기로 이루어짐을 특징으로 하는 상기 장치.
- 제 1항에 있어서 상기 인터리버 크기(K)에 의해 최초로 결정되는 특정 값은 하기의 수학식에 의해 결정됨을 특징으로 하는 상기 장치.
K/R -1 K : 인터리버의 크기R : 행의 개수 - 제 1항에 있어서, 상기 소수 발생기는,상기 인터리버의 크기(K)에 의해 결정된 특정값이 홀수이면 상기 특정 값에 2를 더한 값을, 짝수이면 상기 짝수 값에 1을 더한 값을 새로운 특정 값으로 설정하여 상기 모듈로 연산부로 출력하는 상기 장치.
- 제 1항에 있어서, 상기 소수 발생기는,K/R - 1로 결정되는 특정값이 7일 경우 이 값을 터보 인터리빙을 위한 파라미터로 출력함을 특징으로 하는 상기 장치.
- 제 1항에 있어서,상기 모듈로 연산부는 모듈로 연산기 3, 모듈로 연산기 5, 모듈로 연산기 7 및 비교기로 이루어짐을 특징으로 하는 상기 장치.
- 제 5항에 있어서,상기 모듈로 연산부는 모듈로 연산기의 출력을 입력받아 나머지가 0인 경우 제 1신호를 출력하고 상기 나머지가 0이 아닌 경우 제 2신호를 출력하는 모듈로 비교기를 부가함을 특징으로 하는 상기 장치.
- 제 5항에 있어서,상기 모듈로 연산부는 상기 특정 값을 입력받아 저장되어 있는 값과 비교하여 동일한 값이 있는 경우 상기 제 1신호를 출력하고, 동일한 값이 없는 경우 상기 제 2신호를 출력하는 비교기를 부가함을 특징으로 하는 상기 장치.
- 제 7항에 있어서,상기 비교기에 저장되어 있는 값은 121,143,169,187,209,221,247,253임을 특징으로 하는 상기 장치.
- 제 7항에 있어서,상기 소수 발생기가 상기 모듈로 연산부로부터 제 2신호만을 입력받거나 상기 K/R -1로 결정되는 특정값이 7일 경우 상기 특정 값을 인터리빙을 위한 파라미터로 설정하고, 상기 모듈로 연산부로부터 제 1신호를 입력받고 상기 K/R -1로 결정되는 특정값이 7이 아닐 경우 상기 특정 값에 2를 더하여 상기 모듈로 연산부와 상기 비교기로 입력함을 특징으로 하는 상기 장치.
- 터보코드를 사용하는 이동 통신시스템에서 터보인터리빙을 수행하는데 필요한 파라미터들을 구하는 장치에 있어서,인터리버의 크기(K)에 의해 결정된 특정 값을 입력받아 모듈로 연산에 의해 나머지 값을 출력하는 모듈로 연산부와,상기 모듈로 연산부의 출력을 검사하여 모두가 나머지 값을 가질 경우 상기 특정값을 터보 인터리빙 파라미터로 출력하는 소수 발생기와,상기 소수 발생기로부터 출력된 인터리빙 파라미터를 감산하여 출력하는 감산기와,상기 감산된 파라미터 값을 선택신호로 하여 나머지 인터리빙 파라미터들을 출력하는 먹스 테이블로 구성됨을 특징으로 하는 상기 장치
- 제 10항에 있어서,상기 감산기는 다음과 같은 수학식으로 동작함을 특징으로 하는 상기 장치.
p_d =p/2 -3 p_d : 감산된 인터리빙 파라미터p : 소수발생기로부터 출력된 인터리빙 파라미터 - 터보코드를 사용하는 이동 통신시스템에서 터보인터리빙을 수행하는데 필요한 파라미터들을 구하는 방법에 있어서,인터리버의 크기(K)에 의해 결정된 특정 값을 입력받아 모듈로 연산에 의해 나머지 값을 출력하는 과정과,상기 모듈로 연산부의 출력을 검사하여 모두가 나머지 값을 가질 경우 상기 특정값을 터보 인터리빙 파라미터로 출력하는 과정으로 구성됨을 특징으로 하는 상기 방법.
- 제 12항에 있어서 상기 인터리버 크기(K)에 의해 최초로 결정되는 특정 값은 하기의 수학식에 의해 결정됨을 특징으로 하는 상기 방법.
K/R -1 K : 인터리버의 크기R : 행의 개수 - 제 12항에 있어서, 상기 특정 값은,상기 인터리버의 크기(K)에 의해 결정된 행(R)의 개수의 값을 이용하여 K/R 의 몫의 정수부분에서 1을 뺀 값을 입력받아 홀수이면 상기 홀수 값을, 짝수이면상기 짝수 값에 1을 더한 값을 새로운 특정값으로 설정함을 특징으로 하는 상기 방법.
- 제 12항에 있어서,상기 모듈로 연산은, 모듈로 3, 모듈로 5, 모듈로 7 및 특정값과의 비교 연산으로 이루어짐을 특징으로 하는 상기 방법.
- 제 15항에 있어서,상기 모듈로 연산의 결과를 입력받아 나머지가 0인 경우 이를 나타내는 제 1신호를 출력하고 상기 나머지가 0이 아닌 경우 제 2신호를 출력함을 특징으로 하는 상기 방법.
- 제 16항에 있어서,상기 특정 값을 입력받은 비교기가 저장되어 있는 값을 비교하여 동일한 값이 있는 경우 상기 제 1신호를 출력하고, 동일한 값이 없는 경우 상기 제 2신호를 출력하는 과정을 부가함을 특징으로 하는 상기 방법.
- 제 17항에 있어서,상기 비교기에 저장되어 있는 값은 121,143,169,187,209,221,247,253임을 특징으로 하는 상기 방법.
- 제 17항에 있어서,상기 소수 발생기가 상기 모듈로 연산부로부터 제 2신호만을 입력받거나 상기 K/R -1로 결정되는 특정값이 7일 경우 상기 특정 값을 인터리빙을 위한 파라미터로 설정하고, 상기 모듈로 연산부로부터 제 1신호를 입력받고 상기 K/R -1로 결정되는 특정값이 7이 아닐 경우 상기 특정 값에 2를 더하여 상기 모듈로 연산부와 상기 비교기로 입력함을 특징으로 하는 상기 방법.
- 제 14항에 있어서,K/R - 1로 결정되는 특정값이 7일 경우 이 값을 터보 인터리빙을 위한 파라미터로 출력함을 특징으로 하는 상기 방법.
- 터보코드를 사용하는 이동 통신시스템에서 터보인터리빙을 수행하는데 필요한 파라미터들을 구하는 방법에 있어서,인터리버의 크기(K)에 의해 결정된 특정 값을 입력받아 모듈로 연산에 의해 나머지 값을 출력하는 과정과,상기 모듈로 연산부의 출력을 검사하여 모두가 나머지 값을 가질 경우 상기 특정값을 터보 인터리빙 파라미터로 출력하는 과정과,상기 소수 발생기로부터 출력된 인터리빙 파라미터를 감산하여 출력하는 과정과,상기 감산된 파라미터 값을 선택신호로 하여 나머지 인터리빙 파라미터들을 출력하는 과정으로 구성됨을 특징으로 하는 상기 방법.
- 제 21항에 있어서,상기 감산기는 다음과 같은 수학식으로 동작함을 특징으로 하는 상기 방법.
p_d =p/2 -3 p_d : 감산된 인터리빙 파라미터p : 소수발생기로부터 출력된 인터리빙 파라미터
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020020058012A KR100943612B1 (ko) | 2002-09-25 | 2002-09-25 | 터보코드를 사용하는 이동통신시스템의 터보 인터리버장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020020058012A KR100943612B1 (ko) | 2002-09-25 | 2002-09-25 | 터보코드를 사용하는 이동통신시스템의 터보 인터리버장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040026505A true KR20040026505A (ko) | 2004-03-31 |
KR100943612B1 KR100943612B1 (ko) | 2010-02-24 |
Family
ID=37328984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020020058012A KR100943612B1 (ko) | 2002-09-25 | 2002-09-25 | 터보코드를 사용하는 이동통신시스템의 터보 인터리버장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100943612B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100708474B1 (ko) * | 2005-09-15 | 2007-04-18 | 삼성전자주식회사 | 선형 합동 인터리버의 매개변수 결정 방법 및 그를 이용한 선형 합동 인터리버 |
US9344118B2 (en) | 2012-02-02 | 2016-05-17 | Innowireless Co., Ltd. | Apparatus and method for generating interleaver index |
-
2002
- 2002-09-25 KR KR1020020058012A patent/KR100943612B1/ko not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100708474B1 (ko) * | 2005-09-15 | 2007-04-18 | 삼성전자주식회사 | 선형 합동 인터리버의 매개변수 결정 방법 및 그를 이용한 선형 합동 인터리버 |
US9344118B2 (en) | 2012-02-02 | 2016-05-17 | Innowireless Co., Ltd. | Apparatus and method for generating interleaver index |
Also Published As
Publication number | Publication date |
---|---|
KR100943612B1 (ko) | 2010-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3636684B2 (ja) | Umtsにおけるターボ符号化器のインターリーバ及びインターリービングを遂行するための方法 | |
US5991857A (en) | Interleaving and de-interleaving of data in telecommunications | |
US6900747B2 (en) | Method of compressing lookup table for reducing memory, non-linear function generating apparatus having lookup table compressed using the method, and non-linear function generating method | |
US7590917B2 (en) | Parameter generation for interleavers | |
CN100566185C (zh) | 用于turbo编码器和解码器中的交织器的地址产生装置和方法 | |
JP4064894B2 (ja) | インタリーブド・アドレスを生成するための方法および装置 | |
US7894327B2 (en) | Buffer-based generation of OVSF code sequences | |
US7552377B1 (en) | Method of and circuit for interleaving data in a data coder | |
KR100943612B1 (ko) | 터보코드를 사용하는 이동통신시스템의 터보 인터리버장치 및 방법 | |
US7398446B2 (en) | Low power operation of an address interleaver | |
KR100336234B1 (ko) | 데이터 오류 정정 장치 | |
US6275558B1 (en) | Circuit and method for arbitrarily shifting M-sequence | |
KR100800840B1 (ko) | 터보코드를 사용하는 부호분할다중접속 이동통신시스템의 터보 인터리버 및 터보 인터리빙 방법 | |
KR100493074B1 (ko) | 비동기방식의 부호분할다중접속 이동통신시스템에서 코드생성장치 및 방법 | |
CN112911314B (zh) | 一种熵编码器的编码方法及熵编码器 | |
JPH03198544A (ja) | パリティ計数回路 | |
JP2003060617A (ja) | コード発生器 | |
KR930008682B1 (ko) | 디지탈 기기의 에러 정정회로 | |
JPH0537402A (ja) | ビタビ復号器 | |
KR100350683B1 (ko) | 데이터 디인터리버 및 어드레스 발생방법 | |
JPH08335887A (ja) | 複数インタリーブ・マトリクスのインタリーブアドレス生成回路 | |
CN117313173A (zh) | 模乘运算方法,模乘模块和同态处理单元 | |
JPH11126158A (ja) | 乱数発生装置および方法、回路評価装置および方法、情報記憶媒体 | |
KR20050088182A (ko) | 터보 인코더 및 디코더에서 인터리버용 어드레스 발생장치및 방법 | |
KR20030034836A (ko) | 고속 하다마드 변환 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
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: 20130130 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140128 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150129 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160128 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |