www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP FFT Auflösung


Autor: Bernhard G. (bgwh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe ein Sinussignal mit einer Frequenz von 1kHz.

Abtastrate: 19200Hz   (Abtasttheorem erfüllt)
Gespeicherte Datenpunkte: 192000 Samples

Ich habe gelesen, dass die Auflösung der FFT
 Auflösung = Abtastrate / Anzahl der Werte entspricht.

Was ist da ein empfohlener Wert der erforderlich ist um ein 
vertrauenswürdiges Ergebnis der FFT zu erhalten? Gibt es da irgendwelche 
Richtlinien?

Denn, wenn ich die Auflösung (also die Anzahl der betrachteten Punkte) 
verändere, kommen doch sehr unterschiedliche Ergednisse heraus und jetzt 
wollte ich dieser Sache nachgehen.


Und wie sieht das bei einem Sinus mit der Frequenz z.B. von 5Hz aus?

Bitte um Hilfe!

Schoene Grueße

Autor: Frank Link (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
also fft mit der doppelten Abtastrate ist voll ok... Meine Erfahrung ist 
das eine zweier Potenz in der Auflösung besser ist. Bei 5 Hz würde ich 
dir eine Abtastrate von 100Hz empfehlen. Allerdings solltest Du die 
Samples vor der FFT mindestens 10 mal widerholen und daraus den 
Mittelwert durch die FFT jagen.

Gruß
Frank

Autor: Bernhard G. (bgwh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmals danke für die Antwort!

> Meine Erfahrung ist das eine zweier Potenz in der Auflösung besser ist.

Meinst du damit, dass ich z.B. 19200 * 8 Datenpunkte in die FFT schicken 
soll? (Auflösung: 8s)

> Bei 5 Hz würde ich dir eine Abtastrate von 100Hz empfehlen.

Die Abtastrate kann ich nicht verändern, die muss ich bei 19200Hz 
belassen. Aber ich denk mal es ist besser das Messsignal überabzutasten 
als zu wenig.


> Allerdings solltest Du die Samples vor der FFT mindestens 10 mal
> widerholen und daraus den Mittelwert durch die FFT jagen.

Soll ich 10 Datensätze aufnehmen und diese dann mitteln? (Verringerung 
des Rauschens?)
Oder welche Daten soll ich mitteln?

Schoene Grueße

Autor: Frank Link (franklink)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
genau dass, Du  misst 10x das gleiche Signal und mittelst dann.

Wobei das auch nicht so einfach ist, ein Grund dafür, dass Du bei 
mehreren Messungen des gleichen Signals unterschiedliche Ergebnisse 
bekommst, ist der Zeitpunkt an dem Deine Messung beginnt.

Du musst im Grund dafür sorgen, dass Deine Messung immer zum gleichen 
Zeitpunkt beginnt. Z.B. der nächste Null-Durchgang und eine aufsteigende 
Flanke. Hinzu kommt die Dauer Deiner Messung. Es ist ja nicht damit 
getan, dass Du mit 19.2 KHz samplen kannst. Um ein 5 Hz Signal 
aufzeichnen zu können, musst Du mindestens 0.2 Sekunden messen. Erst 
dann hast Du das Signal vollständig erfasst.

Meine Vorgehensweise in der Vergangenheit war immer, dass ich ein Signal 
bis zu 10x aufgenommen habe. Dabei habe immer in etwa die dreifache Zeit 
gemessen, die ich benötige um die kleinste auszuwertende Frequenz 
vollständig zu samplen.

Im nächsten Schritt bin ich hingegangen und habe die gemessenen Kurven 
jeweils einzeln durch die FFT gejagt. Daraus entstehen 10 FFT-Kurven 
Scharen. Diese habe ich anschließend übereinander gelegt und den 
Mittelwert über diese 10 Kurven berechnet und damit meine endgültige FFT 
erzeugt.

Gruß
Frank

Autor: Bernhard G. (bgwh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

> genau dass, Du  misst 10x das gleiche Signal und mittelst dann.
>
> Wobei das auch nicht so einfach ist, ein Grund dafür, dass Du bei
> mehreren Messungen des gleichen Signals unterschiedliche Ergebnisse
> bekommst, ist der Zeitpunkt an dem Deine Messung beginnt.

Okay.
Ja das könnte ein Problem werden, immer denselben Startzeitpunkt zu 
erwischen.

> Hinzu kommt die Dauer Deiner Messung. Es ist ja nicht damit
> getan, dass Du mit 19.2 KHz samplen kannst. Um ein 5 Hz Signal
> aufzeichnen zu können, musst Du mindestens 0.2 Sekunden messen. Erst
> dann hast Du das Signal vollständig erfasst.

Ja das ist mir schon klar. Ich habe jeweils 10s aufgezeichnet.

Aber da könnte ich vl deine Idee mit dem Mitteln anwenden. Ich splitte 
die 10 Sekunden auf einige Teile auf. (jeweils zu Beginn und am Ende ein 
Nulldurchgang) und führe anschließend für die einzelnen Teile die FFT 
durch.
Und mittle diese dann auf.

> Im nächsten Schritt bin ich hingegangen und habe die gemessenen Kurven
> jeweils einzeln durch die FFT gejagt. Daraus entstehen 10 FFT-Kurven
> Scharen. Diese habe ich anschließend übereinander gelegt und den
> Mittelwert über diese 10 Kurven berechnet und damit meine endgültige FFT
> erzeugt.

Aber welchen Wert der FFT hast du dann gemittelt? Die einzelnen Beträge 
(2*abs()), oder die komplexen Werte?

Danke sehr für deine Hilfe!!

Schoene Grueße

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.