Forum: Digitale Signalverarbeitung / DSP / Machine Learning Phasendifferenz mittels FFT


von Holger K. (hkrueger)


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).

von Detlef _. (detlef_a)


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

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.