KR100319643B1 - 직교가변확산계수 코드 발생회로 - Google Patents

직교가변확산계수 코드 발생회로 Download PDF

Info

Publication number
KR100319643B1
KR100319643B1 KR1019990016533A KR19990016533A KR100319643B1 KR 100319643 B1 KR100319643 B1 KR 100319643B1 KR 1019990016533 A KR1019990016533 A KR 1019990016533A KR 19990016533 A KR19990016533 A KR 19990016533A KR 100319643 B1 KR100319643 B1 KR 100319643B1
Authority
KR
South Korea
Prior art keywords
seed
ovsf
cout
counter
code
Prior art date
Application number
KR1019990016533A
Other languages
English (en)
Other versions
KR20000073311A (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 KR1019990016533A priority Critical patent/KR100319643B1/ko
Publication of KR20000073311A publication Critical patent/KR20000073311A/ko
Application granted granted Critical
Publication of KR100319643B1 publication Critical patent/KR100319643B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/0007Code type
    • H04J13/004Orthogonal
    • H04J13/0044OVSF [orthogonal variable spreading factor]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/10Code generation
    • H04J13/12Generation of orthogonal codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J13/00Code division multiplex systems
    • H04J13/16Code allocation
    • H04J13/18Allocation of orthogonal codes
    • H04J13/20Allocation of orthogonal codes having an orthogonal variable spreading factor [OVSF]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명은 광대역 코드분할 다중접속방식(Wideband CDMA)에서 사용되는 확산 코드의 하나인 직교가변 확산계수(OVSF: Othogoanl Variable Spreading Factor) 코드를 발생하는 회로에 관한 것이다.
이러한 본 발명은 n비트 카운터(10)와, 카운터의 n비트 출력과 상기 n개의 시드값을 하나씩 입력받아 각각 논리곱 연산하는 n개의 엔드게이트(20-1~n), 엔드게이트의 출력을 배타적 논리합 연산하여 OVSF코드를 발생하는 배타적 오아게이트(30)로 구성되어 n개의 시드값을 입력받아 N=2n확산계수의 직교가변확산계수(OVSF) 코드들 발생한다.
따라서 본 발명은, OVSF 코드 발생기 회로를 구성함에 있어서 매우 단순화된 회로를 사용함으로써, 기존의 방식에 비하여 연산량을 줄이거나 데이터를 저장하기 위한 하드웨어의 크기를 줄일 수 있는 효과가 있다.

Description

직교가변확산계수 코드 발생회로{ Circuit for generating Orthogonal Variable Spreading Factor codes}
본 발명은 광대역 코드분할 다중접속방식(Wideband CDMA)에서 사용되는 확산 코드의 하나인 직교가변확산계수(OVSF: Othogoanl Variable Spreading Factor) 코드를 발생하는 회로에 관한 것이다.
최근 이동통신기술에 널리 적용되는 광대역 코드분할 다중접속방식(Wideband CDMA)은 낮은 전송 속도에서부터 매우 높은 전송속도까지 다양한 전송 속도를 지원할 수 있다. 그리고 통상, 확산된 신호의 대역폭(Bandwidth)은 전송 속도와 관계없이 일정하므로, W-CDMA시스템은 다양한 전송 속도를 수용하기 위해서 다양한 확산 계수(Spreading Factor)를 제공할 수 있어야 한다.
그런데 종래에 확산 코드로 흔히 사용된 하다마드(Hadamard) 코드는 일정한 확산 계수에 대해서는 직교성(Orthogonality)을 가지나 여러 확산 계수 사이에서는 직교성을 가지지 못한다는 문제점이 있었다. 이러한 문제점을 해결하기 위하여 다양한 확산 계수 사이에서도 직교성을 가지도록 개발된 확산 코드가 직교가변확산계수(OVSF) 코드이다.
이와 같은 OVSF 코드는 아래의 수학식1 내지 5와 같이 발생된다.
상기 수학식에서 수학식1은 확산계수가 1인 경우의 OVSF 코드를 의미한다. 같은 방식으로 수학식2, 수학식3, 수학식4는 각각 확산계수가 2, 확산계수가 4, 확산계수가 8인 경우의 OVSF 코드를 의미한다. 수학식5는 수학식1에서 수학식4까지 표현된 OVSF 코드를 일반적인 경우로 확장시킨 OVSF 코드를 의미한다. 상기 수학식의 CN(k)에서 N은 확산계수를 의미하고, k는 시드(Seed)를 의미한다. 따라서 수학식4에 표현된 C8(3)은 확산계수는 8이고 시드가 3인 경우의 OVSF 코드를 의미하고, 그 값은 [0 0 1 1 1 1 0 0]이다. 또한 수학식 C4(1)은 확산계수는 4이고 시드가 1인 경우의 OVSF 코드를 의미하고 그 값은 [0 0 1 1]이다.
확산계수 N은 N = 2n이다. 여기에서 n은 OVSF 시드의 길이를 의미한다. 즉 확산계수 N이 8인 경우, OVSF 시드는 십진수로 0, 1, 2, 3, 4, 5, 6, 7중 하나가 될 수 있으므로, 이진수로 000, 001, 010, 011, 100, 101, 110, 111중 하나가 될 수 있다. 따라서 OVSF 시드는 3bit로 표현할 수 있으므로 n은 3이 된다.
그런데 상기 수학식과 같은 OVSF 코드를 발생시키는 회로를 설계할 경우, 매번 방대한 양의 연산을 필요로 한다. 즉, C64(4)를 구하기 위해서는 다음 표 1과 같이 방대한 양의 연산을 수행하여야 한다.
C64(4) = [C32(2) C32(2)]= [C16(1) C16(1) C16(1) C16(1)]= [C8(0) C8(0) C8(0) C8(0) C8(0) C8(0) C8(0) C8(0)]= [C4(0) C4(0) C4(0) C4(0) C4(0) C4(0) C4(0) C4(0) C4(0) C4(0) C4(0) C4(0) C4(0)C4(0) C4(0) C4(0)]= [C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0)C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0) C2(0)C2(0) C2(0) C2(0) C2(0)]= [C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0)C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0)C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0)C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0)C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) C1(0) ]= [0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1]
이러한 방대한 양의 연산을 피하는 방법으로는, 사용되는 모든 OVSF 코드를 미리 표만들어 메모리에 저장한 후 필요할 때마다 불러다 사용하는 방법이 있다. 이와 같이 메모리를 이용하는 방법은 예컨대 확산 계수가 64, 16인 OVSF 코드를 발생시킨다고 가정할 경우, (64×64 + 16×16) = 4,352 bits의 데이터를 저장하고 있어야 하므로 매우 큰 메모리를 필요로하는 문제점이 있다.
이와 같이 OVSF 코드를 발생하는 회로를 구현할 경우에, 종래에는 방대한 양의 연산을 필요로 하여 회로가 복잡해지거나, 방대한 양의 데이터를 저장하기 위해 많은 매모리가 요구되는 문제점이 있다.
따라서 본 발명은 방대한 양의 연산을 하거나, 방대한 양의 데이터를 저장하지 아니하고, 단순화된 구조로 구현할 수 있는 OVSF 코드 발생회로를 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명은, n개의 시드값을 입력받아 N=2n계수의 OVSF코드들 발생하기 위한 회로에 있어서,
n비트 카운터; 상기 카운터의 n비트 출력과 상기 n개의 시드값을 하나씩 입력받아 각각 논리곱 연산하는 n개의 엔드게이트; 상기 엔드게이트의 출력을 배타적 논리합 연산하는 n입력 배타적 오아게이트를 구비하여 상기 시드값에 대응하는 OVSF코드를 발생하는 것을 특징으로 한다.
도 1은 본 발명에 따라 최대 2n인 확산 계수를 가지는 OVSF 코드를 발생하는 회로를 도시한 도면,
도 2는 도 1의 회로에서 C8(5)일 경우의 동작예를 설명하기 위한 도면,
도 3은 본 발명에 따른 코드발생 방법의 절차를 도시한 순서도이다.
* 도면의 주요부분에 대한 부호의 설명
10: 카운터 20-1~20-n: 엔드게이트
30: 배타적오아게이트
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 자세히 설명하기로 한다.
본 발명에 따라 한가지 또는 다양한 확산 계수의 OVSF(Orthogonal Variable Spreading Factor) 코드를 발생시킬 수 있는 OVSF 코드 발생회로는 도 1에 도시된 바와 같이, n비트 카운터(10), n개의 엔드게이트(20-1~20-n), n입력 배타적 오아게이트(30)로 구성된다.
도 1을 참조하면, n비트 카운터(10)는 매 클럭마다 0, 1, 2, ... (-1)로 1씩 증가한 후 다시 0부터 반복하는 바이너리 업 카운터이다. 그리고 n비트 카운터(10) 출력단의 C_out(1), C_out(2), ... C_out(n-1), C_out(n)은 각각 카운터의첫 번째, 두 번째, ... (n-1) 번째, n 번째 출력 bit에 해당한다. SEED(1)~SEED(n)은 OVSF 코드의 시드(Seed) 값으로써, 만일의 OVSF 코드를 얻고 싶을 경우, A에 해당하는 2진 데이터를 시드(Seed)값으로 주면 된다.
제1 엔드게이트(20-1)는 카운터(10)의 Cout(1)과 SEED(n)을 논리곱 연산하고, 제2 엔드게이트(20-2)는 Cout(2)와 SEED(n-1)을 논리곱 연산하며, 동일한 방식으로 제n 엔드게이트(20-n)는 Cout(n)과 SEED(1)을 논리곱 연산한다. 그리고 배타적 오아게이트(30)는 제1 내지 제n 엔드게이트(20-1~20-n)의 출력을 연산하여 OVSF코드를 발생한다.
도 1의 동작을 이해하기 쉽도록 확산계수가 8이고, 시드값이 5인 OVSF 코드의 경우를 예로 들어보자. 이와 같이 C8(5)인 경우의 도 1의 n비트 카운터(10)는 3비트 바이너리 카운터가 되고, 3개의 엔드게이트(20-1~20-3)와 3입력 배타적 오아게이트(30)에 의해 8비트의 OVSF코드가 발생된다. 이때 시드값으로는 SEED(1), SEED(2), SEED(3)이 요구된다. C8(5)인 경우,=8이므로, n=3이 된다. Seed는 5이므로, SEED(3) = 1, SEED(2) = 0, SEED(1) = 1 이 된다.
도 2는 C8(5)일 경우의 동작예를 설명하기 위한 도면으로서, 클럭에 따른 카운터의 출력과 각 게이트들이 출력하는 값들이 도시되어 있다. 도 2에서 'CLK'는 카운터의 동작 클럭으로서 칩레이트와 같고, SEED(3) 내지 SEED(1)은 시드값을 나타내는 바이너리이고, Cout(1) 내지 Cout(3)은 카운터 출력, AND1 내지 AND3은 엔드게이트의 출력이며, OVSF코드는 배타적 오아게이트(30)에서 출력되는 확산코드값을나타낸다.
도 2를 참조하면, SEED(3)은 1이고, SEED(2)는 0이며, SEED(1)은 1이다. 카운터(10)의 출력 Cout(1), Cout(2), Cout(3)은 클럭(CLK)에 따라 0부터 7까지 증가하고 이어 0부터 반복된다. AND1, AND2, AND3은 각 엔드게이트의 출력이다.
제1 클럭에서 카운터의 출력(Cout(1), Cout(2), Cout(3))은 (0, 0, 0)이 되고, 이 카운트값과 시드값을 논리곱한 연산 결과인 AND1, AND2, AND3은 (0, 0, 0)이 되며, 이 연산결과는 배타적 논리합 연산되어 '0'이 OVSF 코드의 일부로서 출력된다.
이어, 제2 클럭에서 카운터의 출력(Cout(1), Cout(2), Cout(3))은 (1, 0, 0)이 되고, 이 카운트값과 시드값을 논리곱한 연산 결과인 AND1, AND2, AND3은 (1, 0, 0)이 되며, 이 연산결과는 배타적 논리합 연산되어 '1'이 OVSF 코드의 일부로서 출력된다.
제3 클럭에서 카운터의 출력(Cout(1), Cout(2), Cout(3))은 (0, 1, 0)이 되고, 이 카운트값과 시드값을 논리곱한 연산 결과인 AND1, AND2, AND3은 (0, 0, 0)이 되며, 이 연산결과는 배타적 논리합 연산되어 '0'이 OVSF 코드의 일부로서 출력된다.
제4 클럭에서 카운터의 출력(Cout(1), Cout(2), Cout(3))은 (1, 1, 0)이 되고, 이 카운트값과 시드값을 논리곱한 연산 결과인 AND1, AND2, AND3은 (1, 0, 0)이 되며, 이 연산결과는 배타적 논리합 연산되어 '1'이 OVSF 코드의 일부로서 출력된다.
제5 클럭에서 카운터의 출력(Cout(1), Cout(2), Cout(3))은 (0, 0, 1)이 되고, 이 카운트값과 시드값을 논리곱한 연산 결과인 AND1, AND2, AND3은 (0, 0, 1)이 되며, 이 연산결과는 배타적 논리합 연산되어 '1'이 OVSF 코드의 일부로서 출력된다.
제6 클럭에서 카운터의 출력(Cout(1), Cout(2), Cout(3))은 (1, 0, 1)이 되고, 이 카운트값과 시드값을 논리곱한 연산 결과인 AND1, AND2, AND3은 (1, 0, 1)이 되며, 이 연산결과는 배타적 논리합 연산되어 '0'이 OVSF 코드의 일부로서 출력된다.
제7 클럭에서 카운터의 출력(Cout(1), Cout(2), Cout(3))은 (0, 1, 1)이 되고, 이 카운트값과 시드값을 논리곱한 연산 결과인 AND1, AND2, AND3은 (0, 0, 1)이 되며, 이 연산결과는 배타적 논리합 연산되어 '1'이 OVSF 코드의 일부로서 출력된다.
그리고 제8 클럭에서 카운터의 출력(Cout(1), Cout(2), Cout(3))은 (1, 1, 1)이 되고, 이 카운트값과 시드값을 논리곱한 연산 결과인 AND1, AND2, AND3은 (1, 0, 1)이 되며, 이 연산결과는 배타적 논리합 연산되어 '0'이 OVSF 코드의 일부로서 출력된다.
이와 같은 방식으로 OVSF 코드 출력 (0 1 0 1 1 0 1 0)을 얻을 수 있고, 클럭이 계속되면 동일한 코드값이 계속 반복되어 발생된다. 이와 같은 결과는 수학식 4의 C8(5)의 결과와 잘 일치함을 알 수 있다.
도 3은 본 발명에 따른 코드발생 방법의 절차를 도시한 순서도이다. 도 3을 참조하면, 단계 S1에서 카운터를 초기화한 후, 단계 S2에서 시드(SEED)값을 입력한다. 이어 단계 S3에서는 매 클럭마다 카운터의 출력과 시드값을 논리곱 연산하고, 각 연산결과를 배타적 논리합 연산한다. 이와 같이 연산된 결과값은 OVSF코드로서 단계 S4에서 출력되고, 단계 S5에서 코드발생 종료여부를 판단한 후 계속 코드를 발생할 경우에 단계 S6에서 카운트값을 증가시킨 후 상기 단계 S3 내지 단계 S6을 반복한다.도 1에서 n을 3으로 둘 경우 시드의 값만 바꾸어 주면 C8(5)인 경우만 아니라, 수학식 4에 표현된 모든 OVSF 코드를 얻을 수 있다. 아래에 각각 설명하겠다.첫째, C8(0)인 경우, 즉 OVSF 시드가 십진수로 0인 경우 이진수로 000이 되므로 도 1의 SEED(3) = 0, SEED(2) = 0, SEED(1) = 0 이 된다. 3비트 바이너리 카운터는 위에서 설명한 C8(5)의 경우와 동일하게 동작할 것이므로, 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 0, 0, 0, 0, 0, 0, 0, ...을 얻을 수 있다. 이 결과는 수학식 4에 표현된 C8(0)의 OVSF 코드의 값과 잘 일치함을 알 수 있다.둘째, C8(1)인 경우, 즉 OVSF 시드가 십진수로 1인 경우 이진수로 001이 되므로 도 1의 SEED(3) = 0, SEED(2) = 0, SEED(1) = 1 이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 0, 0, 0, 1, 1, 1, 1, ...을 얻을 수 있다. 이 결과는 수학식 4에 표현된 C8(1)의 OVSF 코드의 값과 잘 일치함을 알 수 있다.세째, C8(2)인 경우, 즉 OVSF 시드가 십진수로 2인 경우 이진수로 010이 되므로 도 1의 SEED(3) = 0, SEED(2) = 1, SEED(1) = 0 이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (0, 0, 0), (0, 1, 0), (0, 1, 0), (0, 0, 0), (0, 0, 0), (0, 1, 0), (0, 1, 0), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 0, 1, 1, 0, 0, 1, 1, ...을 얻을 수 있다. 이 결과는 수학식 4에 표현된 C8(2)의 OVSF 코드의 값과 잘 일치함을 알 수 있다.넷째, C8(3)인 경우, 즉 OVSF 시드가 십진수로 3인 경우 이진수로 011이 되므로 도 1의 SEED(3) = 0, SEED(2) = 1, SEED(1) = 1 이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (0, 0, 0), (0, 1, 0), (0, 1, 0), (0, 0, 1), (0, 0, 1), (0, 1, 1), (0, 1, 1), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 0, 1, 1, 1, 1, 0, 0, ...을 얻을 수 있다. 이 결과는 수학식 4에 표현된 C8(3)의 OVSF 코드의 값과 잘 일치함을 알 수 있다.다섯째, C8(4)인 경우, 즉 OVSF 시드가 십진수로 4인 경우 이진수로 100이 되므로 도 1의 SEED(3) = 1, SEED(2) = 0, SEED(1) = 0 이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (1, 0, 0), (0, 0, 0), (1, 0, 0), (0, 0, 0), (1, 0, 0), (0, 0, 0), (1, 0, 0), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 1, 0, 1, 0, 1, 0, 1, ...을 얻을 수 있다. 이 결과는 수학식 4에 표현된 C8(4)의 OVSF 코드의 값과 잘 일치함을 알 수 있다.여섯째, C8(5)인 경우는 도 2를 이용하여 위에서 상세히 설명하였으므로 생략한다.일곱째, C8(6)인 경우, 즉 OVSF 시드가 십진수로 6인 경우 이진수로 110이 되므로 도 1의 SEED(3) = 1, SEED(2) = 1, SEED(1) = 0 이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 1, 1, 0, 0, 1, 1, 0, ...을 얻을 수 있다. 이 결과는 수학식 4에 표현된 C8(6)의 OVSF 코드의 값과 잘 일치함을 알 수 있다.여덟째, C8(7)인 경우, 즉 OVSF 시드가 십진수로 7인 경우 이진수로 111이 되므로 도 1의 SEED(3) = 1, SEED(2) = 1, SEED(1) = 1 이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 1, 1, 0, 1, 0, 0, 1, ...을 얻을 수 있다. 이 결과는 수학식 4에 표현된 C8(7)의 OVSF 코드의 값과 잘 일치함을 알 수 있다.
한편, 광대역 코드분할 다중접속방식(Wideband CDMA)은 낮은 전송 속도에서부터 매우 높은 전송속도까지 다양한 전송 속도를 지원하여야 한다. 즉, 광대역 코드분할 다중접속방식은 다양한 확산 계수를 가지는 OVSF 코드를 필요로 한다. 도 1에 도시된 본 발명의 회로는 하나의 회로로 다양한 확산 계수를 가지는 OVSF 코드를 얻을 수 있다.확산계수가 2n, 2n-1, 2n-2인 OVSF 코드가 필요한 경우, 그중 확산계수가 최대의 값을 가지는 2n을 기준으로 도 1에 표현된 OVSF 코드 발생기를 제작한다. 이 경우 확산계수가 2n이고 시드의 값이 2진수로 A(n) A(n-1) ... A(3), A(2) A(1)인 OVSF 코드를 발생시키고자 한다면, 지금까지 설명한 바와 같이 도 1의 SEED(n)=A(n), SEED(n-1)=A(n-1), ..., SEED(3)=A(3), SEED(2)=A(2), SEED(1)=A(1)로 대입하면 된다. 만일 동일한 회로를 이용하여 확산계수가 2n-1이고 시드의 값이 2진수로 B(n-1) B(n-2) ..., B(3) B(2) B(1)인 OVSF 코드를 발생시키고자 한다면, 도 1의 SEED(n)=B(n-1), SEED(a-1)=B(n-2), ..., SEED(3)=B(2), SEED(2)=B(1), SEED(1)=0으로 대입하면 된다. 또한 동일한 회로를 이용하여 확산계수가 2n-2이고 시드의 값이 2진수로 C(n-2) C(n-3) ..., C(3), C(2) C(1)인 OVSF 코드를 발생시키고자 한다면, 도 1의 SEED(n)=C(n-2), SEED(a-1)=C(n-3), ..., SEED(3)=B(1), SEED(2)=0, SEED(1)=0으로 대입하면 된다.예컨대 도 1에서 n을 3으로 둘 경우 시드의 값만 바꾸어 주면 수학식 4에 표현된 확산계수가 8인 경우의 OVSF 코드뿐만 아니라, 수학식 3에 표현된 확산계수가 4인 경우의 OVSF 코드와 수학식 2에 표현된 확산계수가 2인 경우의 모든 OVSF 코드를 얻을 수 있다. 수학식 4에 표현된 OVSF 코드가 발생됨은 위에서 설명하였으므로 수학식 3에 표현된 OVSF 코드와 수학식 2에 표현된 OVSF 코드가 발생됨을 아래에 각각 설명하겠다.첫째, C4(0)인 경우, 즉 OVSF 시드가 십진수로 0인 경우 이진수로 00이 되므로 도 1의 SEED(3) = 0, SEED(2) = 0이 되고, OVSF 시드와 관계없이 SEED(1) = 0이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 0, 0, 0, 0, 0, 0, 0, ...을 얻을 수 있다. 이 결과에서 보듯이 수학식 3에 표현된 C4(0)의 OVSF 코드 0, 0, 0, 0가 반복적으로 발생됨을 알 수 있다.둘째, C4(1)인 경우, 즉 OVSF 시드가 십진수로 1인 경우 이진수로 01이 되므로 도 1의 SEED(3) = 0, SEED(2) = 1이 되고, OVSF 시드와 관계없이 SEED(1) = 0이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (0, 0, 0), (0, 1, 0), (0, 1, 0), (0, 0, 0), (0, 0, 0), (0, 1, 0), (0, 1, 0), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 0, 1, 1, 0, 0, 1, 1, ...을 얻을 수 있다. 이 결과에서 보듯이 수학식 3에 표현된 C4(1)의 OVSF 코드 0, 0, 1, 1이 반복적으로 발생됨을 알 수 있다.셋째, C4(2)인 경우, 즉 OVSF 시드가 십진수로 2인 경우 이진수로 10이 되므로 도 1의 SEED(3) = 1, SEED(2) = 0이 되고, OVSF 시드와 관계없이 SEED(1) = 0이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (1, 0, 0), (0, 0, 0), (1, 0, 0), (0, 0, 0), (1, 0, 0), (0, 0, 0), (1, 0, 0), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 1, 0, 1, 0, 1, 0, 1, ...을 얻을 수 있다. 이 결과에서 보듯이 수학식 3에 표현된 C4(2)의 OVSF 코드 0, 1, 0, 1이 반복적으로 발생됨을 알 수 있다.넷째, C4(3)인 경우, 즉 OVSF 시드가 십진수로 3인 경우 이진수로 11이 되므로 도 1의 SEED(3) = 1, SEED(2) = 1이 되고, OVSF 시드와 관계없이 SEED(1) = 0이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 1, 1, 0, 0, 1, 1, 0, ...을 얻을 수 있다. 이 결과에서 보듯이 수학식 3에 표현된 C4(3)의 OVSF 코드 0, 1, 1, 0이 반복적으로 발생됨을 알 수 있다.다섯째, C2(0)인 경우, 즉 OVSF 시드가 십진수로 0인 경우 이진수로 0이 되므로 도 1의 SEED(3) = 0이 되고, OVSF 시드와 관계없이 SEED(2) = 0, SEED(1) = 0이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), (0, 0, 0), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 0, 0, 0, 0, 0, 0, 0, ...을 얻을 수 있다. 이 결과에서 보듯이 수학식 2에 표현된 C2(0)의 OVSF 코드 0, 0가 반복적으로 발생됨을 알 수 있다.여섯째, C2(1)인 경우, 즉 OVSF 시드가 십진수로 1인 경우 이진수로 1이 되므로 도 1의 SEED(3) = 1이 되고, OVSF 시드와 관계없이 SEED(2) = 0, SEED(1) = 0이 된다. 3비트 바이너리 카운터는 클락이 동작할 때마다 (Cout(1), Cout(2), Cout(3))은 (0, 0, 0), (1, 0, 0), (0, 1, 0), (1, 1, 0), (0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), ...으로 순차적으로 바뀔 것이다. 카운터의 출력값이 위와 같은 순서로 바뀜에 따라, 카운트값과 시드값을 논리곱한 연산 결과인 (AND1, AND2, AND3)의 값도 (0, 0, 0), (1, 0, 0), (0, 0, 0), (1, 0, 0), (0, 0, 0), (1, 0, 0), (0, 0, 0), (1, 0, 0), ...으로 순차적으로 바뀔 것이다. 이 연산결과는 배타적 논리합 연산되어 순차적인 OVSF 코드의 출력 0, 1, 0, 1, 0, 1, 0, 1, ...을 얻을 수 있다. 이 결과에서 보듯이 수학식 2에 표현된 C2(1)의 OVSF 코드 0, 1이 반복적으로 발생됨을 알 수 있다.
이와 같이 본 발명의 OVSF 코드 발생회로는 여러 가지의 확산계수를 가지는 OVSF 코드를 동일한 하드웨어를 이용하여 구현할 수 있으므로, 각각의 확산계수를 갖는 OVSF코드 발생회로를 개별적으로 구현할 경우보다 하드웨어의 크기를 줄일 수 있다.
이상에서 살펴 본 바와 같이 본 발명은, OVSF 코드 발생기 회로를 구성함에 있어서 매우 단순화된 회로를 사용함으로써, 기존의 방식에 비하여 연산량을 줄이거나 데이터를 저장하기 위한 하드웨어의 크기를 줄일 수 있는 효과가 있다. 특히, 하나의 OVSF 코드 발생기를 이용하여 다양한 확산 계수를 가지는 OVSF 코드를 발생시킬 수 있으므로, 회로의 제작에 필요한 하드웨어의 크기 및 전력 손실을 줄일 수 있다.

Claims (3)

  1. n개의 시드값을 입력받아 N=2n확산계수의 직교가변확산계수(OVSF) 코드들 발생하기 위한 회로에 있어서,
    n비트 카운터;
    상기 카운터의 n비트 출력과 상기 n개의 시드값을 하나씩 입력받아 각각 논리곱 연산하는 n개의 연산수단;
    상기 연산수단의 출력을 배타적 논리합 연산하여 OVSF코드를 발생하는 배타적 오아게이트를 포함하는 직교가변확산계수(OVSF) 코드 발생회로.
  2. 제1항에 있어서, 상기 n비트 카운터는 바이너리 업 카운터인 것을 특징으로 하는 직교가변확산계수(OVSF) 코드 발생회로.
  3. 제1항에 있어서, 상기 코드 발생회로는 최대 확산계수의 OVSF코드를 발생하기 위한 하드웨어를 구성한 후 시드값을 달리 입력하므로써 다양한 확산계수의 OVSF코드를 발생할 수 있도록 된 것을 특징으로 하는 직교가변확산계수(OVSF) 코드 발생회로.
KR1019990016533A 1999-05-10 1999-05-10 직교가변확산계수 코드 발생회로 KR100319643B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990016533A KR100319643B1 (ko) 1999-05-10 1999-05-10 직교가변확산계수 코드 발생회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990016533A KR100319643B1 (ko) 1999-05-10 1999-05-10 직교가변확산계수 코드 발생회로

Publications (2)

Publication Number Publication Date
KR20000073311A KR20000073311A (ko) 2000-12-05
KR100319643B1 true KR100319643B1 (ko) 2002-01-09

Family

ID=19584421

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990016533A KR100319643B1 (ko) 1999-05-10 1999-05-10 직교가변확산계수 코드 발생회로

Country Status (1)

Country Link
KR (1) KR100319643B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100463512B1 (ko) * 2000-03-13 2004-12-29 엘지전자 주식회사 통신 시스템의 수신기에서 왈시 인덱스 찾는 장치 및 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7248698B2 (en) 2001-04-06 2007-07-24 Interdigital Technology Corporation System for generating pseudorandom sequences
KR100424628B1 (ko) * 2001-12-12 2004-03-24 삼성전자주식회사 이동통신시스템에서 확산부호 생성장치 및 방법
KR20040009939A (ko) * 2002-07-26 2004-01-31 엘지전자 주식회사 채널 부호 생성 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100463512B1 (ko) * 2000-03-13 2004-12-29 엘지전자 주식회사 통신 시스템의 수신기에서 왈시 인덱스 찾는 장치 및 방법

Also Published As

Publication number Publication date
KR20000073311A (ko) 2000-12-05

Similar Documents

Publication Publication Date Title
US5777914A (en) Technique for reducing power consumption in digital filters
Gokhale et al. Design of area and delay efficient Vedic multiplier using Carry Select Adder
KR100319643B1 (ko) 직교가변확산계수 코드 발생회로
EP2827516B1 (en) Scrambling code generation method, apparatus and scrambling code processing apparatus
US6259725B1 (en) Spread-spectrum acquisition using counters
JPH09325955A (ja) 二乗和の平方根演算回路
KR100326746B1 (ko) 비선형함수를근사시키기위한시스템및방법
US6275558B1 (en) Circuit and method for arbitrarily shifting M-sequence
US7003536B2 (en) Reduced complexity fast hadamard transform
US7461107B2 (en) Converter circuit for converting 1-redundant representation of an integer
WO2005085990A1 (en) A high speed shifter circuit
KR0147942B1 (ko) 승산기에서의 부스 레코딩회로
KR101318992B1 (ko) 모듈로 n 연산방법 및 그 장치
US7317776B2 (en) Efficient pseudo-noise sequence generation for spread spectrum applications
US7606851B2 (en) Correlator having user-defined processing
KR100320430B1 (ko) 의사잡음 코드 발생 방법
KR100506470B1 (ko) 평방근의 역수 계산 방법, 계산 회로, 및 기록매체
JP2005500614A (ja) 累乗回路
KR100308887B1 (ko) 계층화된 직교부호 발생장치 및 그 방법
Kim et al. Efficient implementation of ovsf code generator for umts systems
US6910056B1 (en) Method and apparatus for implementing a multi-step pseudo random sequence generator
US6584484B1 (en) Incorporation of split-adder logic within a carry-skip adder without additional propagation delay
US7173900B1 (en) Method and apparatus for chip generation of a chip sequence
US5946494A (en) Method for minimizing the number of input terminals used in an operator
US6675186B1 (en) Decibel adjustment device with shift amount control circuit

Legal Events

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