Probleme bei Phasenberechnung mit der FFT

OP #685933
Hallo,

ich habe eine FFT genommen und sie in sehr kleinen Schritten über ein 
„sauberes" Sinussignal gleiten lassen. Die FFT hat dabei immer mehrere 
Perioden des Sinus angeboten bekommen. Natürlich immer mit einem 
wechselnden Startwinkel des Sinus für das Betrachtungsfenster der FFT. 
Je nach Position des Betrachungsfensters bekomme ich nun urplötzlich 
eine negative Phase. So wird aus z.B. 1.31 im nächsten 
Betrachtungsfenster -1.32 obwohl ich das Betrachtungsfenster nur minimal 
verschoben habe.
Ändert nun das Sinussignal innerhalb des Betrachtungsfensters noch seine 
Periodendauer so tritt dieser Effekt besonders oft auf.

Weis irgend jemand woran das nun liegt???

Beste Grüße
  Gregor
Gast #686185
Könnte eine Erklärung dafür sein das der arctan() der für die 
Phasenberechnung genutzt wird nicht eindeutig ist?

Ich hab mal einen Plot angehängt mit N=16 und der Sinus als Eingang zur 
FFT wird bei 0, 1, 2, 3 und 4 gestartet. In dem Plot sind das die 
Spalten 1-5.

Die Zeilen zeigen:

- Sinus, der Eingang zur FFT
- Reales FFT-Ergebnis
- Imaginäres FFT-Ergebnis
- arctan() vom FFT-Ergebnis
- arctan2() vom FFT-Ergebnis

Der Unterschied zwischen arctan() und arctan2() ist das die Funktion 
arctan2 nicht den Quotienten imag/real bekommt, sondern beide Vektoren 
extra und somit weiß welcher Wert welches Vorzeichen mitbrachte und 
damit den Quadranten korrigieren kann.

Das sieht man ganz gut wenn man die beiden Phasen für k=2 in der 2. 
Spalte vergleicht. Für den arctan() ist das Ergebnis 1,5, für arctan2() 
-1,5. Vergleicht man das mit der 1. Spalte, dann hat für arctan() das 
Vorzeichen gewechselt, für arctan2() nicht.
Angehängte Dateien:
Gast #686378
@Günter

atan zu verwenden ist falsch, atan2 bzw angle sollte man
nehmen. Man will ja schliesslich den Winkel einer
komplexen Zahl z haben. Und der ist zu jedem z eindeutig.

@Gregor

vielleicht hat Günter insofern recht, dass du vielleicht
die Phase mit atan berechnest.
Generell gilt x(t-t0) o-x exp(-j2pi*f*t0)*X(f)
der Spektrum der verschobenen Zeitfunktion ergibt
sich aus dem "gedrehtem" Spektrum der unverschobenen
Zeitfunktion. Dies ist eine Uhrzeigerdrehung.
Genaudiese Drehung sollte auch sich in der Phase
niederschlagen. Beträge von transformierten x(t) und x(t-t0) sind
identisch.

--
daniel

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.