www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Winkel Phi im komplexen Zahlenraum -> Absolutwinkel errechnen


Autor: Alexander I. (daedalus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

die meisten unter euch E-Technikern und NT'lern werden jetzt über meine 
Frage lachen, aber ich hatte schon seit längerer Zeit nicht mehr mit 
komplexen Zahlen zu tun und konnte damals auch nur das was in der 
Klausur abgeprüft wurde, habe aber nicht wirklich verstanden worum es 
dabei ging ...

Folgendes Szenario:
Ich habe ein sinusförmiges Signal mit 256 Punkten abgetastet und mit 
Hilfe einer FFT die Phasenwinkel Phi und Beträge der jeweiligen 
Ordnungen ausgerechnet. Soweit so gut. Als Ergebnis habe ich dann z.B. 
für die 1. Ordnung eines abgetasteten Signals den Winkel Phi = -1.597 
und den Betrag |z| = 20.1. Die Werte stimmen auch, hab ich überprüft 
(mit Fremdsoftware), weiter gehts:

Erste Frage:
Jetzt ist es doch so, dass Phi ein Winkel (in rad) bezogen auf die 
X-Achse (Realteil) ist und |z| die länge des Vektors und ich dadurch 
einen Zeiger erhalte der irgendwo zwischen 0 ... 2*PI hinzeigt. Soweit 
richtig?

Zweite Frage:
Wenn ich jetzt den "absoluten Winkel in Grad" haben möchte (wobei 
y-Achse = 0° ist), dann rechne ich doch:

(1) Phi_grad = Phi_rad * 180°/PI
(2) Winkel_absolut = (360° + 90° - Phi_grad)%360

Korrekt?

Dritte Frage:
Obige Rechnung stimmt, aber nur wenn Re(z) > 0 und Im(z) > 0 sind, 
ansonsten stimmt Winkel_absolut um 90° oder 180° nicht. Ich hab das 
Gefühl hier fehlt noch irgendein sin() oder cos()-Konstrukt? Wer kann 
mir helfen?

Vielen Dank im Vorraus.

Autor: Interessierter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn partout die y-Achse der Bezug für den Winkel sein soll, musst Du 
einfach vom gegebenen, auf die x-Achse ( reelle Achse ) bezogenen Winkel 
90° = Pi/2 rad abziehen.

Gruss

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wobei y-Achse = 0° ist

Dreh doch die BErechnung um.

normalerweise ist doch arctan phi = im(z)/re(z)

machs einfah so:
arctan phi_y = re(z)/im(z)

hinweis: der quadrant muss durch sgn(re) und sign(im) ermittelt und 
dazugerechnet werden.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

also die polar-koordinaten darstellung (Winkel,VectorLänge) ist 'nur' 
eine andere darstellung eines punktes in der komplexen zahlen-ebene.

wobei:
und

mfg
Olaf

Autor: Alexander I. (daedalus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, nach etwas längerer Pause habe ich mich heute wieder dran gesetzt. 
Im Grunde genommen war ich auf dem richtigen Weg, es wurde jedoch an 2 
Stellen ein impliziter Cast auf einen Integer durchgeführt, obwohl ich 
mit Float's rechne. Dadurch kam es zu Fehlern (fehlende 
Nachkommastellen). Danke euch trotzdem.

Autor: eProfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"normalerweise ist doch arctan phi = im(z)/re(z)"

Dafür gibt es eine spezielle Funktion
atan2(x,y)
Die bringt auch dann ein richtiges Ergebnis, wenn einer der beiden 
Operanden null ist.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.