Forum: Digitale Signalverarbeitung / DSP / Machine Learning CORDIC Vektormode Problem


von Vancouver (vancouver)


Lesenswert?

Ich baue gerade eine CORDIC-Pipeline (in einem FPGA, aber das spielt für 
meine Frage keine Rolle). Der CORDIC arbeitet im Vektormode und soll zu 
einer komplexen Zahl den Betrag und den Phasenwinkel berechnen. Das 
funktioniert aber nur für Zahlen mit positivem Realteil. Bei negativem 
Realteil kommen unsinnige Werte heraus.
Das ist kein großes Problem, da die ganze Operation symmetrisch ist, 
kann man immer mit positivem Realteil rechnen und hinterher eine 
einfache Korrekturaddition auf dem Winkel durchführen.

Trotzdem frage ich mich, ob der CORDIC im Vektormode tatsächlich nur in 
2 Quadranten funktioniert oder ob ich einen Fehler in der Implentierung 
habe. In der Literatur habe ich dazu nichts gefunden (oder an der 
falschen Stelle gesucht). Kann mir jemand weiterhelfen?

von Yalu X. (yalu) (Moderator)


Lesenswert?

Vancouver schrieb:
> Trotzdem frage ich mich, ob der CORDIC im Vektormode tatsächlich nur in
> 2 Quadranten funktioniert oder ob ich einen Fehler in der Implentierung
> habe.

Der Realteil des Arguments muss positiv sein, da sonst das Prinzip der
schrittweisen Verkleinerung des Betrags des Imaginärteils (mit 0 als
Ziel) nicht funktioniert.

Siehe auch hier:

  https://en.wikipedia.org/wiki/CORDIC#Vectoring_mode

von Vancouver (vancouver)


Lesenswert?

Den Satz, dass X positiv sein muss, habe ich wohl übersehen bei 
Wikipedia...
Ok dann muss also die Korrekturaddition für negative X tatsächlich 
durchgeführt werden. Danke dir.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.