Forum: Digitale Signalverarbeitung / DSP / Machine Learning FFT Auflösung


von Bernhard G. (bgwh)


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

von Frank Link (Gast)


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

von Bernhard G. (bgwh)


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

von Frank L. (franklink)


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

von Bernhard G. (bgwh)


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

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.