Charly_cs
07.03.2008, 11:20
Hallo!
Ich beschäftige mich zur Zeit mit der DFT und FFT und habe auch schon beide Algorithmen in LabView geschrieben. Meine DFT gibt mir immer das richtige Ergebnis zurück, nur die FFT nicht.
Folgendes Problem:
Ich habe ein Signal mit 512Hz, sample das mit 2048Hz und nehme 1024 Werte auf. Hier funktionieren beide Algorithmen. Immer wenn das Eingangssignal ein Ergebnis aus 2^x ist, zeigt es meine FFT richtig an. Ist das nicht der Fall, kommen viele andere Linien im Spektrum dazu. Meine Vermutung ist nun, das es an der Unstetigkeitsstelle liegt und hierdurch Frequenzen errechnet werden, die nicht vorhanden sind. Eine Lösung wäre hier ein Fenster(z.B. Hanning) einzubauen?
Im DFT-Algorithmus habe ich kein Fenster und alles wird richtig angezeigt.
Als zweites kommt mir der Drehfaktor als Fehlerquelle in den Sinn. Bin mir aber sicher, diesen an den richtigen Stellen einzusetzen.
Beispiel einer 16 Punkte FFT:
16 Punkte --> 4 Butterfly Operationen (Stufen)
-->Benötigt werden 16/2 = 8 Drehfaktoren k = (0,1,2,3,4,5,6,7)
mit Drehfaktor = w^k
(Drehfaktoren berechne ich mir aus dem Einheitskreis)
Einsetzen der Drehfaktoren (Ziffer ist das k) in Butterflystufe:
1.Stufe: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2.Stufe: 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2
3.Stufe: 0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3
4.Stufe: 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7
Steckt da irgendwo ein Fehler oder fehlt es bei mir am Verständniss der FFT? Eigentlich muss ja die FFT und DFT exakt das selbe Ergebnis liefern, egal welche Frequenzen als Eingang kommen...
Grüße
Charly
Ich beschäftige mich zur Zeit mit der DFT und FFT und habe auch schon beide Algorithmen in LabView geschrieben. Meine DFT gibt mir immer das richtige Ergebnis zurück, nur die FFT nicht.
Folgendes Problem:
Ich habe ein Signal mit 512Hz, sample das mit 2048Hz und nehme 1024 Werte auf. Hier funktionieren beide Algorithmen. Immer wenn das Eingangssignal ein Ergebnis aus 2^x ist, zeigt es meine FFT richtig an. Ist das nicht der Fall, kommen viele andere Linien im Spektrum dazu. Meine Vermutung ist nun, das es an der Unstetigkeitsstelle liegt und hierdurch Frequenzen errechnet werden, die nicht vorhanden sind. Eine Lösung wäre hier ein Fenster(z.B. Hanning) einzubauen?
Im DFT-Algorithmus habe ich kein Fenster und alles wird richtig angezeigt.
Als zweites kommt mir der Drehfaktor als Fehlerquelle in den Sinn. Bin mir aber sicher, diesen an den richtigen Stellen einzusetzen.
Beispiel einer 16 Punkte FFT:
16 Punkte --> 4 Butterfly Operationen (Stufen)
-->Benötigt werden 16/2 = 8 Drehfaktoren k = (0,1,2,3,4,5,6,7)
mit Drehfaktor = w^k
(Drehfaktoren berechne ich mir aus dem Einheitskreis)
Einsetzen der Drehfaktoren (Ziffer ist das k) in Butterflystufe:
1.Stufe: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2.Stufe: 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2
3.Stufe: 0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3
4.Stufe: 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7
Steckt da irgendwo ein Fehler oder fehlt es bei mir am Verständniss der FFT? Eigentlich muss ja die FFT und DFT exakt das selbe Ergebnis liefern, egal welche Frequenzen als Eingang kommen...
Grüße
Charly