Hardware Reference
In-Depth Information
oder zu subtrahieren. Zur Berechnung von Sinus und Kosinus ist der Winkel z
vorgegeben und die Vorzeichen der Winkelkonstanten i werden bei der Sum-
mation so gewählt, dass die Summe den Zielwinkel möglichst genau annähert.
Mit einer ähnlichen Iteration werden auch die Exponentialfunktion, sinh(x)
und praktisch alle anderen Winkelfunktionen berechnet. Eine ausführlichere
Darstellung zum CORDIC-Algorithmus ist in [39] zu finden.
Wenn ein Algorithmus in Hardware ausgelagert wird, werden vorher al-
le anderen Optimierungsmöglichkeiten ausgereizt. Denn anderenfalls genügt
auch eine Software-Lösung. Der CORDIC führt parallel zu den n Additionen
oder Subtraktionen der Winkelkonstanten i die folgenden n Matrixmultipli-
kationen aus:
!
!
!
!
x n
y n
cos ( n1 ) sin ( n1 )
sin ( n1 )
cos ( 0 ) sin ( 0 )
sin ( 0 )
1
0
=
:::
cos ( n1 )
cos ( 0 )
Den Hauptaufwand verursachen die vier Multiplikationen mit den Konstan-
ten cos ( i ) und sin ( i ) in jedem Iterationsschritt. Durch Ausklammern der
Kosinus-Konstanten werden die Hälfte der Koe zienten zu eins, so dass
die Hälfte der Multiplikationen entfallen. Aus den Sinus-Konstanten werden
Tangens-Konstanten. Der Kosinus ist eine gerade Funktion
cos ( i ) = cos ( i )
so dass das Produkt der Kosinus-Konstanten, unabhängig davon, ob die Win-
kel positiv oder negativ gezählt werden, auch eine Konstante ist:
0
@
1
A
!
!
!
!
n Y
x n
y n
1 tan ( n1 )
tan ( n1 )
1 tan ( 0 )
tan ( 0 )
1
0
=
cos ( i )
| {z }
Konstante:SCS
:::
1
1
i=0
Die Multiplikationen mit den Tangens-Konstanten werden durch Verschiebe-
Operatoren ersetzt, indem für die Tangens-Konstanten absteigende Zweierpo-
tenzen gewählt werden:
x n
y n
!
!
!
!
!
2 n+1
2 n+1 1
2 1
2 1 1
2 0
2 0 1
1
1
1
1
0
= SCS
:::
Daraus folgt für die Winkelkonstanten der Iterationsschritte:
i
0
1
2
3
4
5
6
i > 6
2 0
2 1
2 2
2 3
2 4
2 5
2 6
2 i
tan ( i )
0,785 0,464 0,245 0,124 0,062 0,031 0,015 2 i
i
 
Search WWH ::




Custom Search