Hardware Reference
In-Depth Information
den Sinus und den Kosinus berechnet - ist eine Stufe komplexer und selbst
für einen erfahrenen Entwickler kaum noch ohne Zwischenschritte mit simu-
lierbaren Teilergebnissen zu lösen.
Schritt 1: Ableitung des Algorithmus aus der Aufgabenstellung
Der gebräuchliche Algorithmus für die Berechnung von Winkelfunktionen ist
ein CORDIC [39]. Das Akronym CORDIC steht für
Co
ordinate
R
otation
Di
omputer und beschreibt einen Algorithmus, der genau wie der Di-
visionsalgorithmus in Abschnitt 2.6.5 im Wesentlichen aus Additionen und
Verschiebeoperationen besteht. Die Grundidee ist ein rotierender Zeiger in
einem kartesischen Koordinatensystem. Wie aus Abb. 3.35 ablesbar ist, erge-
ben sich die Koordinaten eines rotierenden Vektors aus dem Produkt einer
Rotationsmatrix mit dem Startvektor:
gital
C
!
!
!
x i+1
y i+1
cos ( i ) sin ( i )
sin ( i )
x i
y i
=
cos ( i )
x i = cos ()
y i = sin ()
x i+1 = cos ( + i ) = cos ()
y i +1 1
cos ( i )
sin ()
sin ( i )
y i
φ i
sin ( i )
y i+1 = sin ( + i ) = cos () sin ( i ) + sin () cos ( i )
= x i sin ( i ) + y i cos ( i )
= x i
cos ( i )
y i
α
0 0 x i +1 x i 1
Abb. 3.35. Rotation eines Zeigers der Länge eins in einem Koordinatensystem
Bei dem CORDIC-Algorithmus wird der Drehwinkel aus einer festen An-
zahl konstanter Winkelschritte abnehmender Größe zusammengesetzt und je-
weils der zugehörige Sinus- und Kosinus-Wert berechnet (Abb. 3.36). In jedem
Schritt besteht die Möglichkeit, den nächstkleineren Winkelschritt zu addieren
0 φ 1 2 3
...
0 φ 1 φ 2 3
...
φ
φ
φ z
φ z
0 1 2 3 ...
Iterationsschritt
0 1 2 3 ...
Iterationsschritt
Abb. 3.36. Schrittweise Annäherung an den Zielwinkel durch Addition oder Sub-
traktion konstanter Winkelschritte abnehmender Größe
Search WWH ::




Custom Search