mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Phasendifferenz mittels FFT


Autor: Holger K. (hkrueger)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe da mal eine Frage zur FFT und der Möglichkeit durch die
FFT die Phasendifferenz zwischen zwei Signalen genau zu ermitteln.
Ich habe einen PLL Regler der einen Aktor auf Resonanz (10-100 khZ)
regelt. Hierzu hole ich mir aus einem Meßsignal die Grundfrequenz raus,
die der anregenden Signalfrequenz entspricht und vergleiche die Phase
der beiden Signale. Anhand dieses Phasenunterschiedes wird dann die
Frequenz nachgeführt (kleinster Schritt 0.2 hz).
Bisher geschieht die Phasenbestimmung über eine phasenempfindliche
Demodulation, also Multiplikation mit 2 orthogonalen Referenzsignalen,
Mittelwertbildung und dann Abtastung und rechnerische Bestimmung von
Amplitude und Phase. Im Prinzip also nur die Bestimmung von Real und
Imaginärteil.
Da durch die analogen Multiplizierer und den Tiefpaß zur
Mittelwertbildung einige Meßfehler mitreinkommen, muss ich meine
Meßsignale noch durch eine Interpolation jagen um die Fehler
rauszurechnen.

Nun habe ich mir überlegt ob es nicht besser wäre die Signale (Bereich
10-100kHz) gleich abzutasten und eine FFT drüberlaufen zu lassen.
Irgendwo habe ich mal gelesen, daß man mit der FFT eine Abweichung von
+/- 0.1 Grad erreichen kann.
Dabei ist mir aufgefallen, daß wenn ich eine hohe spektrale Auflösung
erreichen möchte von sagen wir mal 0.5Hz, ich ganz schön viele Punkte
bräuchte. Nun würde ich gerne wissen, ob es Möglichkeiten gibt den
Aufwand durch Fensterfunktionen oder andere Tricks zu begrenzen, die
gesuchten Frequenzen sind mir ja bekannt.
Oder brauche ich eine so hohe Auflösung überhaupt nicht, im
Wesentlichen geht es mir ja um die Phase. Ich muss hier gestehen, daß
mir der Zusammenhang zwischen Phase und Frequenz bei der FFT noch nicht
ganz klar ist. Wie z.B. die Frage, wie groß der Phasenfehler ist wenn
meine Signalfrequenzen zwischen die Abtastwerte der FFT fallen.

Die einzige Möglichkeit, die mir momentan in den Sinn kommt, ist die
Abtastfrequenz so zu legen, daß die gesuchten Frequenzen ein Vielfaches
davon bilden und so genau auf einen der Indexwerte fallen. Also z.B.
94.5 kHz Resonanzfreq., 189 khz Abtastfreq., 128er FFT dann habe ich
bei Index 64 mein gesuchtes Signal.
Da ich aber wie gesagt nicht ganz so fit im Thema FFT bin ich mir nicht
sicher, ob das der beste Weg ist und möchte ich auf diesem Wege einfach
mal fragen, welche Möglichkeiten es da gibt (und ob die FFT hier
überhaupt Sinn macht).

Autor: Detlef _a (detlef_a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Die einzige Möglichkeit, die mir momentan in den Sinn kommt, ist die
Abtastfrequenz so zu legen, daß die gesuchten Frequenzen ein
Vielfaches
davon bilden und so genau auf einen der Indexwerte fallen. Also z.B.
94.5 kHz Resonanzfreq., 189 khz Abtastfreq., 128er FFT dann habe ich
bei Index 64 mein gesuchtes Signal.  <<

Ja, genauso machen. Du regelst Deine Abtastfrequenz so, daß die Phase,
die Du siehst, 'steht', dh. Deine Abtastfrequenz ist nen ganzzahliges
Vielfaches Deiner Signalfrequenz. Damit is Deine PLL schon fertich. Die
ganze FFT brauchst Du garnicht, nur Betrag/Phase bei 'Index 64'. Dazu
reicht der 'Goertzel Algorithmus', der liefert Dir Betrag und Phase
für diese eine Frequenz.

>> daß man mit der FFT eine Abweichung von +/- 0.1 Grad erreichen <<

Nen Phasenwinkel hab ich mit ner FFT schon mal 6 Zehnerpotenzen besser
gemessen, das ist ne Frage der Fensterlänge und des SNR.

Cheers
Detlef

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.