Forum: Mikrocontroller und Digitale Elektronik Rahmenbedingungen einer FFT - Abtastfrequenz und co.


von Walther von der Vogelweide (Gast)


Lesenswert?

Hallo zusammen,

es wäre toll, wenn mir jemand bestätigen könnte, ob ich die 
Rahmenbedingungen für eine FFT soweit richtig verstanden habe:
Ist es richtig, dass die Schrittweite der Frequenzen, welche die FFT 
"ausspuckt" delte_f = 1/T ist? Wobei T die Dauer meiner Aufnahme ist.

Wenn ich also 10 ms lang messe, bekomme ich immer eine Auflösung von 
1/10ms = 100Hz, unabhängig davon, ob ich 64 oder 1024 Messwerte 
aufnehme?

Was mache ich denn dann, wenn mein Signal z.B. nur 1 ms lang auftritt, 
ich aber eine 100Hz Auflösung möchte, also 10 ms lang messen muss? Kann 
ich dann die übrigen 9 ms so tun also würde ich 0 messen? Bekomme ich 
dann noch vernünftige Ergebnisse? Das Ergebnis muss zumindest so sauber 
sein, dass ich die zweitstärkste Frequenz ermitteln kann. Der genaue 
Betrag ist unwichtig.
Die stärkste Frequenz wir immer 50 Hz sein.

Die Anzahl der Messwerte würde ich dann abhängig von den 10 ms und der 
maximal auftretenden Frequenz abhängig machen. Mal angenommen mein 
Signal kann bis zu 8 kHz annehmen, muss ich ja mit mindestens 16 kHz 
abtasten. In 10 ms muss ich also mindestens 160 mal messen. Das geht 
natürlich nicht, also würde ich in dem Beispiel auf 256 Messwerte 
hochgehen.

Ist das soweit alles richtig?

von dadada (Gast)


Lesenswert?

ja und nein.

Walther von der Vogelweide schrieb:
> Was mache ich denn dann, wenn mein Signal z.B. nur 1 ms lang auftritt,
> ich aber eine 100Hz Auflösung möchte, also 10 ms lang messen muss? Kann
> ich dann die übrigen 9 ms so tun also würde ich 0 messen? Bekomme ich
> dann noch vernünftige Ergebnisse?

ja bekommst Du. Nur dürfen dann 2 verschiedene Frequenzen (gleichzeitig) 
nicht dichter als 1kHz sein.

Walther von der Vogelweide schrieb:
> Die Anzahl der Messwerte würde ich dann abhängig von den 10 ms und der
> maximal auftretenden Frequenz abhängig machen. Mal angenommen mein
> Signal kann bis zu 8 kHz annehmen, muss ich ja mit mindestens 16 kHz
> abtasten. In 10 ms muss ich also mindestens 160 mal messen. Das geht
> natürlich nicht, also würde ich in dem Beispiel auf 256 Messwerte
> hochgehen.

Warum geht das nicht? Hardwareprobleme? Nicht jede FFT hat einen Radix-2 
Algorithmus.

Viel wichtiger : Woher weißt Du, dass keine höhere Frequenz im Spiel 
ist? Scharfer Tiefpassfilter am Eingang? Wie scharf?

von Kevin K. (nemon) Benutzerseite


Lesenswert?

Um die Grundwelle eines anliegenden Signals zu ermitteln, muss ein 
ganzes Vielfaches der Grundwelle abgetastet werden. Ansonsten verteilt 
sich diese Grundwelle irgendwie in den anderen Koeffizienten. Bei einem 
100Hz-Sinus musst du also 10ms oder 20ms oder 30ms oder... sampeln. Die 
SamplingFREQUENZ muss mindestens 200Hz betragen. Von Vorteil ist bei 
bekannter Frequenz der Grundschwingung ein ganzzahliges Vielfaches.
Wenn du nur 1mS misst, kannst du keine 100Hz Auflösung (bei dir 
vermutlich Schrittweite der Fourierkoeffiziente) erreichen. Dafür 
müsstest du mindestens 10mS sampeln.

Wenn dein Signal 1mS auftritt und dann 9mS ruhe gibt und du 10mS 
sampelst, erhälst du am Ende nicht die Koeffizienten als wenn dein 
Signal 10x1mS aufeinanderfolgend anliegen würde. Da such mal das Buch 
Fourieranalyse für Fußgänger (oder: fourier analysis for pedestrians), 
da steht was zu zero-padding und nicht-periodischer Fortsetzung drin.

von Georg G. (df2au)


Lesenswert?

Als Hausnummer:
Die FFT teilt das Spektrum in einzelne Kästchen auf. Das oberste 
Kästchen entspricht 1/2 Abtastfrequenz. Zahl der Kästchen entspricht der 
Zahl der Abtastpunkte.

von Walther von der Vogelweide (Gast)


Lesenswert?

dadada schrieb:
> ja bekommst Du. Nur dürfen dann 2 verschiedene Frequenzen (gleichzeitig)
> nicht dichter als 1kHz sein.
Heißt also, dass meine 50 Hz und beispielsweise 3000Hz gut rauskommen, 
eine weiteren Frequenz von 3500Hz aber das das Ergebnis unbrauchbar 
macht? Das wäre nicht schlimm, weil ich ansonsten zwar viel Rauschen 
habe, aber in keiner bestimmten Frequenz.

dadada schrieb:
> Warum geht das nicht? Hardwareprobleme? Nicht jede FFT hat einen Radix-2
> Algorithmus.
Wie man an meinen Fragen schon merkt, tue ich mir schwer mit dem Thema 
und will deshalb fertige Funktionen benutzen. Im Moment probiere ich mit 
den FFT Funktionen von Mikrochip für dsPICs rum. Somit bin ich erstmal 
an Radix-2 FFTs gebunden. Zumindest habe ich dafür noch nichts anderes 
gefunden.

dadada schrieb:
> Woher weißt Du, dass keine höhere Frequenz im Spiel
> ist?
Höhere Frequenzen sind sicherlich auch dabei. Die interessieren mich nur 
nicht. Der Betrag liegt wie gesagt auch deutlich unter dem, des 
Nutzsignals.

dadada schrieb:
> Scharfer Tiefpassfilter am Eingang? Wie scharf?
Meinst du per Software oder Hardware? Bisher habe ich eigentlich weder 
noch.

Kevin K. schrieb:
> Um die Grundwelle eines anliegenden Signals zu ermitteln, muss ein
> ganzes Vielfaches der Grundwelle abgetastet werden. Ansonsten verteilt
> sich diese Grundwelle irgendwie in den anderen Koeffizienten. Bei einem
> 100Hz-Sinus musst du also 10ms oder 20ms oder 30ms oder... sampeln
Das bedeutet ja, dass ich bei meinem 50Hz Grundsignal mindestens 20 ms 
abtasten muss. Ich habe aber bereits mal in 5ms 64 Werte gemessen und 
einem Bekannten geschickt. Der hat die Werte in ein selbst geschriebenes 
FFT Programm gefüttert und es zeigte sich, dass mein Nutzsignal einen 
klaren Peak bei der zu erwartenden Frequenz verursachte (z.B. 5kHz). Da 
der genaue Betrag für mich ja nicht so wichtig ist, kann ich vermutlich 
mit diesem Rauschen leben. Das Problem war nur, dass bei 5ms die 
Auflösung zu gering war, mein Signal aber schon geendet hat.

Kevin K. schrieb:
> Da such mal das Buch
> Fourieranalyse für Fußgänger
Wir Montag bestellt!

Georg G. schrieb:
> Zahl der Kästchen entspricht der
> Zahl der Abtastpunkte.
Irgendwo meine ich mal gelesen zu haben, dass man nur halb so viele 
"Kästchen" bekommt, wie Abtastpunkte. Oder habe ich mir das nur 
eingebildet?

Danke für die schnellen Antworten. Ich hoffe ich habe euch immer richtig 
verstanden. Mir ist nun nur leider immer noch nicht ganz klar, ob und 
was nun an meinem ersten Beitrag falsch war.

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.