CORDIC-Algorithmus

Neue Frage »

kleriker Auf diesen Beitrag antworten »
CORDIC-Algorithmus
Also ich muss mich gerade mit diesem Iterationsverfahren beschäftigen und komme irgendwie nicht weiter. Das Grundprinzip von dem Verfahren ist mir klar aber wenn ich dann anfange mit konkreten Werten zu rechnen kommt nicht das raus was soll. Denke mal ich hab irgendwo einen Denkfehler drin.
Mit dem Verfahren sollen trigonometrische Funktionen über eine Nährung berechnet werden, hier sinus und cosinus. Und für meine Anwendung brauch ich diesen, also Taylor und der gleichen hilft mir dabei nicht.

Also ich benutze diese Formeln:




Z steht hier für den Winkel mit dem gerechnet wird und das gibt dabei nur das Vorzeichen für jeden Schritt an. Der Winkel soll dabei stets gegen Null streben, dadurch wird das Vorzeichen bestimmt. Aus X und Y soll sich dann der cosinus bzw der sinus ergeben nachdem man eine Reskalierung vornimmt mit rund 0,607.
Die Startwerte für sind .
Dieser Vektor wird dann schrittweise gedreht und soll sich dann bei dem gewünschten Winkel einstellen. Ich beginne mit !?.
Das macht er aber nich, ich komme immer auf recht unsinnige Werte.
Hoffe ich hab mich einigermaßen verständlich ausgedrück und hoffe mir kann jemand helfen.
Schon mal danke.
Dual Space Auf diesen Beitrag antworten »
RE: CORDIC-Algorithmus
Sorry ... aber selbst nach mehrfacher Lektüre deines Posts kann ich mir beim besten Willen nicht zusammenreimen, was du da machen sollst oder willst.

Also leg mal noch ein paar erklärende Worte nach.
kleriker Auf diesen Beitrag antworten »
RE: CORDIC-Algorithmus
An der einen Stelle (ziemlich am Ende) war ein Fehler sollte heißen:
Ich beginne bei i=1.

Hatte gehofft das kennt jemand.

Mit der ganzen Sache bestimmt man den Sinus bzw Cosinus- Wert bei gegebenem Winkel. Bildlich gesehen dreht man den Einheitsvektor zur y-Achse, schaut ob man über den gegebenen Winkel gekommen ist oder nicht. Wenn ja wird wieder um einen kleineren Wert zurück gedreht, wenn nicht dann wird weiter gedreht. Das wird so lange gemacht bis das Ergebnis die gewünschte Genauigkeit hat. Dann nimmt man den x bzw y-Wert und hat nach einer Skalierung das Ergebnis.

Geb mal die Herleitung mit an:
Man geht von der Rotation um einen Winkel aus


und dann der cosinus herausgezogen:



Und da das ganze in der digitalen Signalverarbeitung Anwendung findet wird das auf 2'er Potenzen zurück geführt:



und





dann wird noch als Konstante rausgezogen und dann kommt man auf die Gleichungen die ich im ersten Post angegeben habe.

Achso und der Drehwinkel wird folgendermaßen festgelegt

Ich hoffe jetzt kann man die ganze Sache etwas besser nachvollziehen. Das hier mit 2'er Potenzen gearbeitet wird muss man hier einfach so hinnehmen. Das liegt daran dass man die Sache besser in Schaltungen implementieren kann.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »