KR20060128953A - 복소 위상 회전을 위한 cordic 알고리즘의 구현 - Google Patents

복소 위상 회전을 위한 cordic 알고리즘의 구현 Download PDF

Info

Publication number
KR20060128953A
KR20060128953A KR1020067015007A KR20067015007A KR20060128953A KR 20060128953 A KR20060128953 A KR 20060128953A KR 1020067015007 A KR1020067015007 A KR 1020067015007A KR 20067015007 A KR20067015007 A KR 20067015007A KR 20060128953 A KR20060128953 A KR 20060128953A
Authority
KR
South Korea
Prior art keywords
rotation
rotation angle
angle
pager
cordic
Prior art date
Application number
KR1020067015007A
Other languages
English (en)
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 KR20060128953A publication Critical patent/KR20060128953A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4806Computations with complex numbers
    • G06F7/4818Computations with complex numbers using coordinate rotation digital computer [CORDIC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5446Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation using crossaddition algorithms, e.g. CORDIC

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Digital Transmission Methods That Use Modulated Carrier Waves (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

CORDIC 알고리즘의 개선된 구현으로서, 이 CORDIC 구현의 각 단계에서 N번째로 높은 차수의 능동 비트를 고려하며 2n만큼 최종 결과의 정확도의 증가를 야기한다. 회전각은 양이거나 음일 수 있는 n-1개의 가능한 크기를 증가시킨다. 회전각 증가는 상기 회전각의 n-1번째로 높은 차수의 능동 비트와 함께, 부호 비트를 사용하여 선택되며, 조정된 회전각은 N번째로 높은 차수의 능동 비트를 버림으로써, 그리고 이들 n 비트의 가장 낮은 차수가 현재-단계 회전각의 부호 비트와 같을 때는 음의 부호를, 그리고 이들이 다를 때는 양의 부호를 사용하여 결과를 부호-확장함으로써(이것은 이들 2개의 비트에 대한 배타적인 NOR, 또는 XNOR 연산에 상응한다) 획득된다. 마지막으로, 탄젠트는 현재-단계 회전각에 대응하도록, 2n개의 가능한 값(각각 2개의 부호를 가진 2n-1개의 크기)으로부터 선택된다. 이 방법을 사용하면 CORDIC 구현을 초래하는데, 이 구현에 대해 각 단계는, 현재-단계 회전각의 n 비트를 고려함으로써, 계수 2n만큼 최종 결과의 정확도를 증가시킨다. 그 결과, 종래의 구현에 대해, 필요한 단계의 수는 계수 N만큼 감소된다.

Description

복소 위상 회전을 위한 CORDIC 알고리즘의 구현{IMPLEMENTATION OF THE CORDIC ALGORITHM FOR COMPLEX PHASE ROTATION}
본 발명은, CORDIC(Coordinate Rotation Digital Computer) 알고리즘의 구현을 위한 개선된 기술에 관한 것이며, 더 구체적으로 복잡한 회전을 수행하는 CORDIC 알고리즘의 하드웨어 구현을 위한 자원 효율성의 개선에 관한 것이다.
원하는 각도에 대해 복소 페이저(phasor)의 회전을 디지털적으로 수행하는 잘 알려진 방법은 CORDIC(Coordinate Rotation Digital Computer; 좌표 회전 디지털 컴퓨터) 알고리즘을 사용하며, 이 알고리즘은 반복 프로시져로서, 원하는 회전이 연속적으로 근사되고, 결과의 수치 정확도가 반복이 행해질 때마다 계수 2만큼 증가한다. 이 알고리즘은 컴퓨터 프로세서에 의해 실행되는 소프트웨어로 구현되거나, 일반적으로 각 반복마다 하나의 단계를 포함하는 디지털 회로로 구현될 수 있다. 매우 큰 복수의 샘플링 속도가 아닌 명령 속도에서 실행하는 복수의 작은 프로세스를 구비하는 수축 어레이에서, 또 다시 필요한 프로세서의 수는 반복의 횟수에 대응한다.
k로 지정된, 종래의 CORDIC 알고리즘의 한 반복에서, (xk-1,yk-1)로부터 (xk,yk)까지의 페이저 회전은 식 1a와 식 1b로 주어진다.
Figure 112006053241331-PCT00001
Figure 112006053241331-PCT00002
식 1a 및 식 1b로 나타낸 관계는 식 1a 및 식 1b 내의 각 식에서 인수분해된 코사인 항을 가진 제 2 형태로 표현될 수 있으며 식 2a 및 식 2b의 관계를 초래하여서 괄호 안의 항은 오직 하나의 삼각 함수와 하나의 곱셈만을 필요로 한다.
Figure 112006053241331-PCT00003
Figure 112006053241331-PCT00004
알고리즘의 주어진 반복에 대해, 회전은 양 또는 음의 방향으로 반복에 해당하는 각의 값을 사용하여 수행된다. 모든 반복에 대해 회전이 수행되고 주어진 반복에 대한 회전각의 절대값은 항상 같다는 것에 주목하는 것이 중요하며; 오직 각의 부호 또는 방향만이 이 반복 내에서 변할 수 있다. 이 프로시저는 원하는 회전이 지정된 정확도의 정도로 수렴될 때까지 연속적으로 더 작은 반복각 값에 대해 반복된다. 반복에 대한 코사인 계수는 대략 0인 코사인 함수의 대칭으로 인해 동일한 값을 가질 것이며 이것은 상수항이 된다. 이렇게 하여, 이것은 각 다른 반복에 대한 대응 계수와 결합될 수 있어서(즉, 이로써 곱해질 수 있어서), 오직 하나의 곱셈만이 최종 결과에서 이 계수를 본래대로 하기 위해 각 페이저 성분에 대한 알고리즘의 단부에서 요구된다.
CORDIC 알고리즘의 수렴은, 종래 기술에서, 주어진 반복과 후속 반복 사이의 2의 계수 만큼 연속적으로 감소하는 회전각을 사용하여, 얻어진다. CORDIC 알고리즘의 이러한 종래의 사용은 원하는 회전 각도로 가정 직접적인 기하학적 수렴을 가져왔으나, CORDIC 알고리즘은 종종 탄젠트(탄젠트gent)가 연속적인 2의 음의 제곱인 각을 사용하여 구현된다. 이것은 반복각의 탄젠트에 의해 요구된 곱을 간단히 오른쪽으로 이항하는 연산으로 감소시킨다는 이점을 가지며, 이것은 하드웨어에서 구현하기에 훨씬 더 효율적이다.
CORDIC 알고리즘의 종래 기술의 하드웨어 구현은, 일반적으로 한 단계에서 각 반복을 수행할 것을 필요로 한다. CORDIC 알고리즘은 잘 알려져 있으며, 디지털 도메인 내의 복잡한 수의 회전을 필요로 하는 다수의 다른 애플리케이션 뿐만 아니라, 디지털 채널 복조기 전단 애플리케이션에서 매우 널리 사용된다. CORDIC 알고리즘의 구현은 일반적으로 디바이스의 디지털 전단부에서 주파수 감소-변환을 수행하는 채널 복조기에서 발견할 수 있다.
CORDIC 알고리즘의 하드웨어 및 수축 어레이 구현에서, 요구된 자원은 집적 회로 디바이스 상의 영역의 형태를 가정하고, 특히 이산 논리 또는 어레이 프로세서로 각각 구성된다. 상당한 수치 정확도가 요구되는 경우, 자원의 상당량이 알고리즘을 구현하기 위해 필요할 것이다.
전술한 논의의 관점에서, 더욱 효율적이고 더 적은 자원을 필요로 하는 CORDIC 알고리즘의 구현에 대한 필요성이 당업계에 남아 있다는 것이 즉시 명백해진다.
본 발명은 반복적인 프로시저를 이용한 복잡한 회전을 수행할 수 있는 개선된 CORDIC 알고리즘을 제공함으로써 종래 기술에서의 단점을 다루며, 이 반복적인 절차에서 원하는 회전이 연속적으로 근사되고, 결과의 수치 정확도는 반복이 행해질 때마다 계수 2만큼 증가한다. 하드웨어 내에서 구현된 종래 기술의 CORDIC 알고리즘은 각 단계에 대해 오직 한 번의 반복만을 수행한다. 본 발명은 단일 단계에서 상응하는 복수의 반복을 행하기 위한 방법 및 장치를 설명하며, 이에 따라 동일한 정확도를 달성하는데 필요한 단계의 수를 감소시킨다. 단계는 디지털 로직, 프로세서, 프로세서의 어레이 또는 소프트웨어 내에서 구현될 수 있다.
도 1은 CORDIC 알고리즘의 종래 기술의 구현을 위한 기능 블록을 도시하는 도면.
도 2는 본 발명에 의해 구현된 것과 같은 CORDIC 알고리즘의 구현인, 함수 블록을 도시하는 도면.
도 3은 본 발명에 의해 구현된 것과 같은 증가하는 페이저 회전을 도시하는 페이저의 그래프.
본 발명은 단일 디지털 단계 내의 CORDIC 알고리즘의 복수의 반복의 수행을 제공한다. 종래 기술 구현은 오직 한 단계에서 단일 반복의 수행을 초래하며, 이에 따라 더 많은 디지털 자원을 요구한다. 이들 종래 기술의 구현은 원하는 각에 대한 복소 페이저의 회전을 디지털적으로 행하기 위해 CORDIC 알고리즘을 사용하여 이루어지며, 이 알고리즘에서 결과의 수치적 정확도는 계수 2만큼 증가한다. 추가적으로, 종래 기술 방법은 각 반복당 하나의 단계를 일반적으로 포함하는 디지털 회로에서 수행될 수 있다. 매우 크지 않은 복수의 샘플링 속도인 명령 속도에서 실행하는 복수의 소형 프로세서를 이용하는 수축 어레이는 CORDIC 알고리즘을 실행시키기 위해 적응될 수 있으며, 필요한 프로세서의 수는 또 한번 반복의 수에 대응한다.
본 발명은 맞춤형-설계된 분산 로직을 제공하는 집적 회로 내에 구현될 수 있으며, 이 분산 로직은 각 프로세서가 하나 이상의 CORDIC 알고리즘의 반복을 수행할 수 있는 단계를 포함하는 수축 또는 다른 구성가능한 프로세서 어레이 내에 있다. 이 알고리즘의 하드웨어 및 수축 어레이 구현에서, 요구된 자원은 집적 회로 디바이스, 분산 로직 또는 어레이 프로세서 상의 영역의 형태를 가정한다.
본 발명은 하드웨어 또는 수축형 어레이 구현을 자체적으로 부여하는 CORDIC 알고리즘의 적응을 설명하며, 2 이상의 계수만큼 지정된 정확도를 달성하기 위해 요구된 자원을 감소시킨다.
n회-반복 CORDIC 알고리즘의 복수-단계 하드웨어 구현이 도 1에 도시된다. 종래 기술에서, CORDIC 알고리즘의 수렴은 계수 2만큼 연속적으로 감소하는 회전각을 사용하여 달성된다. 도 1에 도시된 것처럼, 비교(14)들 각각은 원하는 각에 대 해 CORDIC 알고리즘의 수렴을 나타내는 각도값(rin,rin-r1,rin-r1-r2,rin-r1-r2-r3... rin-r1-r2-r3-rn-1) 을 수신하는 입력을 구비한다. 각 비교(14)들은 전술한 것처럼 값이 감소된 각도값을 다음 비교(14)로 출력한다. 각 비교(14)는 또한 현재 각을 연속적으로 감소시키기 위해 각 비교 내에 사용된 각의 탄젠트를 출력한다. 이들 탄젠트는 식 2b에서 설명되고 도 1에 도시된 것처럼 회전(12)에 대한 값으로 사용된다. CORDIC 알고리즘은 종종 아래의 식 3a 및 식 3B의 표현으로 나타낸 것과 같이, 탄젠트가 연속적인 2의 음의 제곱값인 각을 사용하여 구현되는데, 이는 오른쪽으로 이항 연산을 통해 프로세스를 간소화하며, 이것은 하드웨어에서 구현하는 것이 훨씬 더 효율적이다. 도 1에 도시된 하드웨어 구현(10)에서, 한 단계는 상기 식 3a 및 식 3b에서 k번째 반복에 의해 표시된 것과 같이 수행된 각 반복에 대해 요구된다.
탄젠트(-Rk) = -2-k (종래 기술)
-Rk = -2-k (대안예)
-Rk = -2- jk ; j>1 (본 발명의 구상과 같음)
본 발명은 주어진 정확도에 대해 요구된 단계의 수의 감소, 또는 반대로 각 단계에서 제공된 정확도를 개선하기 위한 메커니즘이 전술한 하드웨어 구현을 상당히 향상시키는 것을 구상한다. 본 발명은 식 3c에 의해 표현된 방법으로 CORDIC 알고리즘의 수렴에 대한 각의 탄젠트라기 보다는 그 자체의 각을 사용하여 구상된다. 도 2에 도시된 것처럼, CORDIC 알고리즘의 하드웨어 구현(20)은 각 반복에 대해 한 단계를 구비한다. 그러나, 도 2에서 회전 단계(22)는 실제로 각도값(-R1,-R2,-R3...-Rn)만큼 회전을 행하며, 이 각은 도 1의 종래 기술에 대해 이전에 논의된 것처럼 이러한 각의 탄젠트인, 각만큼 회전하지 않고 2의 음의 제곱이다. 그 각이 회전값에 대해 사용된 도 2의 각(-R1,-R2,-R3...-Rn)은 탄젠트가 도 1의 회전값에 대해 사용된 것과 동일한 각(-r1,-r2,-r3...-rn)이 아니다.
본 발명의 가장 바람직한 실시예는 수축 프로세서 어레이를 이용하지만, 또한 분산 로직 구현은 개선된 CORDIC 알고리즘을 수행하는데 사용될 수 있도록 구체적으로 구상된다. 본 발명의 가장 기본적인 전제는 회전각의 정확도는 CORDIC 알고리즘의 종래 기술 구현에서와 같이 계수 2만큼이 아닌 계수 4만큼 각 반복에서 증가된다는 것이다. 2의 더 높은 제곱 조차도 구현될 수 있으며 이러한 지수는 위의 식 3c(j>1)에서 항 j로 지정된다.
종래 기술은 탄젠트가 2의 음의 제곱인 반복각을 사용하여 회전시키기 위한 기술을 이용한다. 본 발명은, 대신, 그 자체가 2의 음의 제곱인 반복각을 사용한다. 본 발명에 의해 이용된 기술은 각 단계에서 곱셈기의 사용을 필요로 하지만, 요구된 단계의 수가 감소되어 본 발명의 기술이 가치있는 트레이드오프가 되도록 한다. 게다가, 곱셈기를 포함하는 프로세서의 수축 어레이를 사용한 하드웨어 구현에서, 곱하는 단계는 중요치 않은 고려 대상이 되었다.
본 발명은 각의 탄젠트 대신에 각에 대한 2의 음의 제곱을 부과함으로써 이점을 제공한다. 따라서, 본 발명의 알고리즘에 의해 요구된 비교는 매우 쉽게 수행될 수 있으며, 이는 계속해서 종래 기술의 구현에 의해 수행된 것처럼 상응하는 복수의 반복이 한 단계에서 수행되도록 허용한다.
추가적인 설명으로서, 각 단계가 계수 4만큼 정확도가 증가하는 본 발명의 구현을 간주한다. 이러한 구현은 도 3에 도시되며, 어느 한 방향으로 45도 까지 회전하는 특정 경우에 대해 이하 설명된다. 45도 까지의 회전은 알고리즘의 바람직한 실시예에 의해 수행될 가장 큰 증가 회전에 대응하는데, 그 이유는 회전 평면의 4개의 사분면(quadrant)에 대한 삼각 함수의 대칭이 45도의 경우의 임의의 회전을 감소시키기 때문이다. 후속 CORDIC 알고리즘 반복에 대응하는, 후속 단계는 이에 따라 더 작은 회전을 수행할 것이다.
도 3은 본 발명의 개념을 도시하는 회전 그래프이다. x-축은 본 발명의 CORDIC 알고리즘의 연속적인 회전에 의해 달성된 원하는 회전을 나타낸다. 다음 설명은 각 회전에 대해 2만큼 증가된 수의 제곱을 채용한 본 발명의 바람직한 실시예를 설명한다. 360도는 180도와 90도와 같이 2의 제곱에 대응한다는 것에 주목하는 것이 중요하다. 따라서, 본 발명은 90도의 4개의 분리된 4분면과 같이 페이저에 대해 가능한 전체 360도를 고찰한다. 그러므로, 각 4분면의 경계에서 보는 것처럼, 최대 45도 회전만이 임의의 잠재적 페이저에 도달할 것이 요구된다. 본 발명에 따라 구상된 것처럼 CORDIC 알고리즘의 응용은 두 가지 결정에 의해 회전한다. 우선, 회전각은 양 또는 음으로 결정된다. 이러한 결정은 비교(24)를 통해 이루어지는 회전의 부호를 결정하는 비교를 통해 이루어지는 것이 바람직하다. 둘째, 비교(24)는 회전될 회전각에 대한 절대값을 결정하고, 이것은 첫 번째 회전의 경우 절대값이 22.5도보다 큰지 작은지를 확인하기 위해 비교에 의해 이루어지는 것이 바람직하다. 22.5도의 값은 45도의 최대값의 반이므로 첫 번째 회전에서 사용된다. 도 3에 도시된 회전각의 첫 번째 회전에 대한 절대값의 결정은 33.75와 11.25도의 2개의 가능한 값으로부터 회전각의 크기를 결정한다. 도 3의 예는 22.5도보다 크지만, 33.75도 보다 작은 회전각을 도시한다.
예로서, 도 3에 도시된 것처럼, 페이저는 -33.75도 만큼 회전하고, 이것은 x-축으로 나타낸 궁극적 회전 대상을 통과한다.
도 3에 도시된 예에 이어서, 전술한 첫 번째 회전의 결과가 x-축으로 나타낸 궁극적 회전 대상을 통과하므로, 첫 번째 회전의 효과는 다음 회전이 반대 방향으로 진행해야 한다는 것이다. 그러므로, 다음 회전(두 번째 회전)은 전술한 것처럼 첫 번째 결정의 비교에 의해 결정된 것처럼 첫 번째 회전의 반대 방향이 될 것이다. 첫 번째 결정의 비교는 다음 회전이 양일 것이라는 결정을 야기한다. 두 번째 결정에 의해 수행된 비교는 첫 번째 회전에서 회전의 절대값을 결정하기 위해 채용된 값의 절반인 값을 이용할 것이며, 페이저 성분은 식 1a 및 식 1b에 따른 각 탄젠트를 사용하여 조정된다. 11.25도의 값은 이전 회전에서 사용된 22.5도의 절반이 므로 두 번째 회전에서 사용된다. 도 3에 도시된 회전각의 두 번째 회전에서 절대값의 결정은 16.875 및 5.625도의 2개의 가능한 값으로부터 회전각의 크기를 결정한다. 이 방법으로 각 연속 단계에 대해 진행하면 CORDIC 알고리즘의 본 발명의 구현이 CORDIC 알고리즘의 종래 기술에서의 구현보다 훨씬 더 빠르게 원하는 회전에 대해 수렴하는 것을 허용한다. 앞서 논의된 회전 단계는 각각 CORDIC 알고리즘의 종래 기술의 구현에서 2개의 CORDIC 단계에 상응한다는 것이 당업자에게 즉시 명백할 것이다.
중요한 관찰은 360도가 2의 제곱에 대응하는 각도 표시에 대해, 전술한 요구된 비교는 실제의 대수적 비교를 행하지 않고, 현재 단계 각도 중에 가장 높은 차수의 2개의 능동 2진수, 또는 비트를 그 부호 비트와 함께 조사함으로써 이루어질 수 있다. 게다가, 후속 단계에 대한 조정된 회전각은 이제 전반적으로 더 낮은 차수의 비트(2개의 현재-단계 비트에 비해)로 구성되며, 부호가 변하는 경우(현재 -단계 각에 대해) 최대 무(negation)이다. 특히, 이들 2개의 비트의 더 높은-차수는 현재-단계 회전각의 크기(부호 비트와 같은 경우 더 작은 회전, 그 반대의 경우 더 큰 회전)를 결정하며, 부호 비트는 그 부호를 결정한다(후자는 단지 전자의 역이다). 조정된 회전각은 2개의 가장 중요한 비트를 현재-단계 회전각에서 버림으로써, 그리고 2 비트 중 더 낮은 차수가 부호 비트와 같은 경우 결과를 부정함으로써 얻어진다. 마지막으로, 탄젠트는 현재-단계 회전각에 대응하도록 4개의 가능한 값(2개의 크기로서, 각각 2가지 부호를 가짐)으로부터 선택된다. 이 방법을 사용하면 CORDIC 구현을 초래하며 이에 대해 각 단계는 현재-단계의 회전각의 2 비트를 고려함으로써 계수 4, 또는 22만큼 최종 결과의 정확도를 증가시킨다. 그 결과, 모든 단계의 절반만이 CORDIC 알고리즘의 종래 구현에 비해 이전에 설명된 본 발명의 CORDIC 알고리즘에 대한 구현에서 필요하게 된다.
따라서, 회전각은 회전의 부호를 확인함으로써 방향을 결정하는 제 1 비교, 및 2개의 가능한 값으로부터 크기의 절대값을 결정하는 제 2 비교로서 나타내질 수 있다. 대안적으로, 회전은 4개의 가능한 값, 즉, 양의 값 2개 및 음의 값 2개 중 하나를 선택하는 것으로 간주될 수 있다. 양자 중 한 접근 방법을 사용하여, 후속 단계에 대한 회전각은 결정된 방향으로 결정된 값에 의해 조정된다.
본 발명의 방법과 장치는 본 단계 회전값의 세 번째 이상의 높은 차수의 능동 비트를 고려함으로써 더 일반화될 수 있다. 특히, N번째로 높은 차수의 능동 비트를 고려하면, 이 경우 CORDIC 구현의 각 단계는 이제 2n만큼 최종 결과의 정확도를 증가시킨다. 현재-단계 회전각은 이제 n-1개의 가능한 크기를 가정할 수 있으며, 각 경우 양이거나 음이다. 이 각은 현재-단계 회전각의, n-1번째 높은 차수의 능동 비트와 함께, 부호 비트를 사용하여 선택되며; 조정된 회전각은 N번째로 높은 순서의 능동 비트를 버림으로써, 그리고 이들 n개의 비트의 가장 낮은 차수가 현재-단계 회전각의 부호 비트와 같을 때 음의 부호를, 그리고 이들이 다를 때 양의 부호를 사용하여 결과를 부호-확장함으로써 얻어진다(이것은 이들 2개의 비트에 대한 배타적인 NOR, 또는 XNOR 연산에 상응한다). 최종적으로, 탄젠트는 현재-단계 회전각에 대응하도록 2n개의 가능한 값(각각 2가지 부호를 가진 2n-1개의 크기)으로부터 선택된다. 이 방법을 사용하면 CORDIC 구현을 초래하며 이 구현에 대해, 각 단계는 현재-단계 회전각의 n개의 비트를 고려함으로써, 계수 2n만큼 최종 결과의 정확도를 증가시킨다. 그 결과, 전통적 구현에 대해, 필요한 단계의 수는 계수 n만큼 감소된다.
이 방법은 다음과 같이 표시할 수 있다:
ss...sbnbn-1...b1xx...x;
여기서 s 자리는 현재 단계에 대한 부호 확장을 나타내며(모두 동일함), b 자리는 이 단계에 대해 n번째로 높은 차수의 능동 비트를 나타내며, x 자리는 가장 낮은 차수의 비트를 나타낸다(각각은 다른 것과 무관한 값을 취한다).
이 단계의 회전각은, 그 탄젠트와 함께 n 자리를 사용하여 선택된다:
sbnbn-1...b2.
후속 단계에 대한 조정된 회전각의 부호는 다음과 같이 주어진다.
s'= s XNOR b1
후자의 부호 비트 s'는 정확한 단어 길이(예, 비트의 총수)를 야기하는 낮은 차수의 x 비트에 대한 부호 확장을 수행하는데 사용되며, 그 결과 조정된 회전각은 단지 다음과 같다:
s' s'...s' xx...x
본 발명의 또 다른 변형예에서, 탄젠트가 2의 음의 제곱인 각을 사용한 전통적 방법은, 특히 탄젠트 값과 가까운 더 작은 각에 대해 채용될 수 있다(이것은 작 은 각에 대해 잘 알려진 삼각 근사값이다). 그러나, 이러한 경우, 각 자체는 n번째로 가장 큰 능동 비트만을 검사함으로써 비교가 수행되도록 허용하는 단순한 2진법 표시를 가지지 않는다. 결론적으로, n개의 완전한 대수적 비교는 수행되어야 한다. 이것은 더 복잡한 비교와 이 경우 필요한 단순화된 곱셈 사이의 트레이드-오프를 제공한다.
본 발명의 중요한 응용은 채널 복조를 수행하는 디지털 신호 처리 시스템의 전단부에서 행해진다. 특히, 이것은 그 자체로 복수의 작은 프로세서를 포함하는 수축형 어레이 상에 매우 효율적인 구현을 제공한다. 이 경우, 작은 수의 이러한 프로세서를 사용하여 구현될 수 있다.
본 발명은, CORDIC(Coordinate Rotation Digital Computer) 알고리즘의 구현을 위한 개선된 기술에 관한 것으로서, CORDIC 복소 페이저 회전을 효율적으로 구현하는 방법, CORDIC 복소 페이저 회전을 구현하기 위한 디바이스에 이용가능하다.

Claims (17)

  1. CORDIC 복소 페이저 회전을 효율적으로 구현하는 방법으로서,
    연속적인 단계를 사용하여 CORDIC 알고리즘을 구현하는 단계;
    완전한 회전 각의 2진법 표시 내에서 복수의 가장 높은 차수의 능동 비트에 대한 검사에 근거하여 증가 회전각을 계산하는 단계; 및
    증가 회전각에 근거한 증가 회전을 수행하는 단계
    를 포함하는, CORDIC 복소 페이저 회전을 효율적으로 구현하는 방법.
  2. 제 1항에 있어서,
    남은 회전각을 생성하기 위해 완전한 회전각에서 가장 높은 차수의 비트를 제거하는 단계 및 상기 남은 회전각에 대해 가장 높은 차수의 비트의 다른 검사를 검사한 것에 근거한 다음 증가 각을 계산하는 단계;
    상기 다음 증가 단계에 기초하여 다른 증가 회전을 수행하는 단계; 및
    상기 완전한 회전각이 달성될 때까지 상기 제거 단계 및 수행 단계를 반복하는 단계
    를 더 포함하는, CORDIC 복소 페이저 회전을 효율적으로 구현하는 방법.
  3. 제 1항에 있어서, 상기 계산 단계는 상기 완전한 회전각의 2개 이상의 대수적 비교를 더 포함하는, CORDIC 복소 페이저 회전을 효율적으로 구현하는 방법.
  4. 제 3항에 있어서, 상기 증가 회전을 수행하는 상기 단계는 오직 가장 높은 차수의 비트를 사용하여 선택된 각의 탄젠트를 곱하는 단계를 더 포함하는, CORDIC 복소 페이저 회전을 효율적으로 구현하는 방법.
  5. 제 1항에 있어서, 상기 단계는 하나 이상의 디지털 로직 디바이스 내에서 수행되는, CORDIC 복소 페이저 회전을 효율적으로 구현하는 방법.
  6. 제 5항에 있어서, 상기 디지털 로직 디바이스는 수축 프로세서 어레이를 더 포함하는, CORDIC 복소 페이저 회전을 효율적으로 구현하는 방법.
  7. 제 2항에 있어서, 상기 계산 단계는 완전한 회전각의 2진법 표시 내의 n번째로 높은 차수의 능동 비트를 증가 회전각에 대한 복수의 가능한 크기와 비교하는 단계 및 양이거나 음일 수 있는 크기 중 하나를 선택하는 단계를 더 포함하는, CORDIC 복소 페이저 회전을 효율적으로 구현하는 방법.
  8. CORDIC 복소 페이저 회전을 효율적으로 구현하기 위한 방법으로서,
    완전한 회전각의 2진법 표시 내에서 복수의 가장 높은 차수의 능동 비트의 검사에 근거하여 증가 회전각을 계산하는 단계;
    상기 증가 회전각에 근거하여 증가 회전을 수행하는 단계;
    상기 완전한 회전각의 가장 낮은 차수를 포함하는 결과 회전각을 얻기 위해 상기 완전한 회전각으로부터 가장 높은 차수의 비트를 버리는 단계;
    상기 결과 회전각을 부호 확장하는 단계
    를 포함하는, CORDIC 복소 페이저 회전을 효율적으로 구현하기 위한 방법.
  9. 제 8항에 있어서, 상기 계산 단계는 상기 가장 높은 순서의 비트를 상기 증가각에 대한 상대값을 결정하기 위해 세트와 비교하는 단계를 더 포함하는, CORDIC 복소 페이저 회전을 효율적으로 구현하기 위한 방법.
  10. 제 8항에 있어서, 상기 계산 단계는 상기 완전한 회전각과 상기 증가 회전각 사이의 차이인 현재-단계 회전각을 계산하는 단계를 더 포함하는, CORDIC 복소 페이저 회전을 효율적으로 구현하기 위한 방법.
  11. 제 10항에 있어서, 상기 부호 확장 단계는 가장 낮은 차수의 비트가 현재-단계 회전각의 부호 비트와 같을 때는 음의 부호를 그리고 이들이 다를 때에는 양의 부호를 사용하는 단계를 더 포함하는, CORDIC 복소 페이저 회전을 효율적으로 구현하기 위한 방법.
  12. CORDIC 복소 페이저 회전을 구현하기 위한 디바이스로서,
    복수의 비교 단계(24)로서, 입력 각을 수신하고 상기 입력각과 회전각 사이 의 비교를 제공하며, 각 비교 단계(24)는 상기 입력각과 상기 회전각 사이의 차이를 출력하며 또한 상기 회전각에 대한 출력을 제공하는, 복수의 비교 단계; 및
    복수의 회전 단계(22)로서, 상기 비교(24)로부터 상기 회전각을 수신하고 상기 입력각의 2진법 표시 내에서 복수의 가장 높은 차수의 비트를 검사한 것에 근거하여 페이저 회전을 구현하는, 복수의 회전 단계
    를 포함하는, CORDIC 복소 페이저 회전을 구현하기 위한 디바이스.
  13. 제 12항에 있어서, 상기 비교 단계(24)는 2의 제곱으로서 상기 회전각을 계산하는, CORDIC 복소 페이저 회전을 구현하기 위한 디바이스.
  14. 제 13항에 있어서, 상기 회전 단계(22)는 오직 가장 높은 차수의 비트의 각을 사용하여 선택된 각의 탄젠트를 곱하는 곱셈기를 포함하는, CORDIC 복소 페이저 회전을 구현하기 위한 디바이스.
  15. 제 12항에 있어서, 상기 디바이스는 하나 이상의 디지털 로직 디바이스 내에 포함된, CORDIC 복소 페이저 회전을 구현하기 위한 디바이스.
  16. 제 12항에 있어서, 상기 디바이스는 수축 프로세서 어레이 내에 구현된, CORDIC 복소 페이저 회전을 구현하기 위한 디바이스.
  17. 제 12항에 있어서, 상기 비교 단계(24)는 상기 입력각의 2진법 표시 내에서 n번째로 가장 높은 차수의 능동 비트를 상기 회전각에 대한 복수의 가능한 크기와 비교하는 단계를 제공하며 양이거나 음일 수 있는 크기들 중 하나를 선택하는, CORDIC 복소 페이저 회전을 구현하기 위한 디바이스.
KR1020067015007A 2004-01-28 2005-01-25 복소 위상 회전을 위한 cordic 알고리즘의 구현 KR20060128953A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53972604P 2004-01-28 2004-01-28
US60/539,726 2004-01-28

Publications (1)

Publication Number Publication Date
KR20060128953A true KR20060128953A (ko) 2006-12-14

Family

ID=34826121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067015007A KR20060128953A (ko) 2004-01-28 2005-01-25 복소 위상 회전을 위한 cordic 알고리즘의 구현

Country Status (6)

Country Link
US (1) US20070124352A1 (ko)
EP (1) EP1711888A1 (ko)
JP (1) JP2007520009A (ko)
KR (1) KR20060128953A (ko)
CN (1) CN1914589A (ko)
WO (1) WO2005073841A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4987269B2 (ja) 2005-08-22 2012-07-25 東芝機械株式会社 速度検出装置およびサーボモータ
JP4987448B2 (ja) * 2006-12-05 2012-07-25 東芝機械株式会社 速度検出装置
WO2009066545A1 (ja) * 2007-11-19 2009-05-28 Alps Electric Co., Ltd. 角度検知装置
US8572152B2 (en) * 2008-03-06 2013-10-29 Nec Corporation CORDIC computation circuit and method
JP2009281883A (ja) 2008-05-22 2009-12-03 Toshiba Mach Co Ltd 速度検出装置およびサーボモータ
JP4757328B2 (ja) * 2009-07-03 2011-08-24 富士通株式会社 逆正接演算装置及び逆正接演算プログラム
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) * 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
US10320595B2 (en) * 2017-06-23 2019-06-11 Instituto De Pesquisas Eldorado Optimized CORDIC for APSK applications
CN108259919B (zh) * 2018-03-28 2020-08-07 福州大学 一种快速实现8x8DCT变换的硬件系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4945505A (en) * 1988-10-17 1990-07-31 Raytheon Company Cordic apparatus and method for approximating the magnitude and phase of a complex number
DE4335925C2 (de) 1993-10-21 1997-04-03 Bosch Gmbh Robert Schaltungsanordnung zur Signalverarbeitung nach dem CORDIC-Verfahren
US5630154A (en) * 1994-10-11 1997-05-13 Hughes Aircraft Company Programmable systolic array system arranged in a found arrangement for passing data through programmable number of cells in a time interleaved manner
US5737253A (en) * 1995-08-30 1998-04-07 Pentomics, Inc. Method and apparatus for direct digital frequency synthesizer
US6349317B1 (en) * 1999-03-13 2002-02-19 Vitit Kantabutra Efficient radix-4 CORDIC vector rotators and computers of sine and cosine functions

Also Published As

Publication number Publication date
US20070124352A1 (en) 2007-05-31
JP2007520009A (ja) 2007-07-19
WO2005073841A1 (en) 2005-08-11
EP1711888A1 (en) 2006-10-18
CN1914589A (zh) 2007-02-14

Similar Documents

Publication Publication Date Title
KR20060128953A (ko) 복소 위상 회전을 위한 cordic 알고리즘의 구현
Valls et al. Evaluation of CORDIC algorithms for FPGA design
KR0146334B1 (ko) Cordic 복소수 승산기
US3800130A (en) Fast fourier transform stage using floating point numbers
CN111984227B (zh) 一种针对复数平方根的近似计算装置及方法
Hormigo et al. Measuring improvement when using HUB formats to implement floating-point systems under round-to-nearest
US7197525B2 (en) Method and system for fixed point fast fourier transform with improved SNR
EP0264256A2 (en) Apparatus and method for approximating the magnitude of a complex number
Renardy et al. FPGA implementation of CORDIC algorithms for sine and cosine generator
Akhil et al. Delay and Area analysis of hardware implementation of FFT using FPGA
Naregal et al. Design and implementation of high efficiency vedic binary multiplier circuit based on squaring circuits
Mishra et al. Design and implementation of a low power area efficient Bfloat16 based CORDIC processor
Nguyen et al. A parallel pipeline CORDIC based on adaptive angle selection
US20030074383A1 (en) Shared multiplication in signal processing transforms
Gavali et al. A parallel pipelined adder suitable for FPGA implementation
Kubinec et al. Successive approximation algorithm for complex number magnitude and argument computation
Chandra Comparative analysis of polynomial and rational approximations of hyperbolic tangent function for vlsi implementation
Low et al. A fast and compact circuit for integer square root computation based on Mitchell logarithmic method
Iyer et al. Generalised Algorithm for Multiplying Binary Numbers Via Vedic Mathematics
JP4720746B2 (ja) 多値直交振幅変調信号の復調
Anuradha et al. Design and Implementation of High Speed VLSI Architecture of Online Clustering Algorithm for Image Analysis
Lakshmi Design and ASIC Implementation of Modified Shift-and-Add Algorithm using Redundant Arithmetic Integrator Adder and Subtractor
Lakshmi et al. Low latency VLSI architecture for the radix-4 CORDIC algorithm
Sharmila VLSI Implementation of Coordinate Rotation Based Design Methodology using Verilog HDL
sravya Alapati et al. Hardware Implementation of Posit Numeration System using FPGA for Signal Processing Applications

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid