Gast
#6675549
Hallo! Danke an den unbekannten Autor für 'Cordic For Dummies'! Damit habe ich CORDIC verstanden und konnte eine generische Umsetzung in VHDL realisieren. Mit dem CORDIC läßt sich ja so einiges anstellen (Sinus, Cosinus, Wurzel, Logarithmus, etc.pp.). Hier brauchte ich zu gegebenen IQ-Samples die Länge des Zeigers und den Phasenwinkel. Also eine klassische Koordinatentransformation von Kartesischen Koordinaten zu Polarkoordinaten. Wenn man nur den Winkel braucht (ATAN2-Funktion) kann man sich den finalen Multiplizierer für die Gain-Korrektur sparen. Die gezeigte Implementierung arbeitet mit 8 Bit Eingangsdaten, läßt sich aber in der Bitbreite und der Skalierung anpassen. Die State-Machine hat eine feste Latenz, was ich für Laufzeitbetrachtungen im System praktischer finde. Wer will könnte dort noch optimieren und die Berechnung abbrechen, sobald y=0 erreicht ist. Viel Spaß damit!
