Hallo!
Welche ist die minimale Anzahl von Perioden, mit der die DFT/FFT etwas
anfangen kann, also zweifelsfrei ein Spektrum mit akzeptabler
Genauigkeit erstellen kann?
Bei einer Sinusschwingung von 15Hz bringt mir meine selbst entworfene
MATLAB-Implementierung eines DFT-Algorithmus nach 20 Perioden eine
Amplitude bei 1 (korrekt) und bei 14,39Hz (akzeptabel).
Die Genauigkeit der DFT ist nach meinen Beobachtungen für einen
konstanten Zeitabschnitt, also
T = N * 1/Abtastrate = const.
unabhängig von der Abtastfrequenz, soll heißen: das Herumschrauben hat
bei mir keine Veränderung bezüglich Genauigkeit gebracht. Was könnte mir
helfen? Ist für eine zeitkritische Anwendung gedacht.
Gibt es eine Möglichkeit, an hinreichend genaue Informationen schon nach
10, 5 oder gar einer Periode zu erhalten?
MfG CB
controllerblanc schrieb:> Gibt es eine Möglichkeit, an hinreichend genaue Informationen schon nach> 10, 5 oder gar einer Periode zu erhalten?
Wenn du die Periodenlänge genau kennst und das Signal nicht verrauscht
ist, dann reicht eine einzige Periode; es muss aber ganz genau eine
Periode sein.
Wenn das Ziel allerdings ist, mit Hilfe der FFT die Frequenz zu messen,
wenn also die Frequenz nicht bekannt ist, dann gibt es dafür andere
Methoden, z.B. Beitrag "Genaue Frequenzbestimmung nach FFT".
controllerblanc schrieb:> Die Genauigkeit der DFT ist nach meinen Beobachtungen für einen> konstanten Zeitabschnitt, also>> T = N * 1/Abtastrate = const.
Statt "Genauigkeit" würde ich "Auflösung im Frequenzbereich" sagen,
ansonsten stimme ich dir zu.
> unabhängig von der Abtastfrequenz, soll heißen: das Herumschrauben hat> bei mir keine Veränderung bezüglich Genauigkeit gebracht.
Richtig, eine höhere Abtastfrequenz bringt dir "nur" einen größeren
Frequenzbereich.
> Gibt es eine Möglichkeit, an hinreichend genaue Informationen schon nach> 10, 5 oder gar einer Periode zu erhalten?
Das hängt davon ab, wie genau "hinreichend genau" ist.
Eventuell kannst du mit Zero Padding noch etwas erreichen, aber da kann
es sein, dass das Spektrum nur anders verschmiert. Je nachdem, was du
misst und was du erreichen willst...
MfG, Arno
dadada schrieb:> controllerblanc schrieb:>> ein Spektrum mit akzeptabler Genauigkeit erstellen kann?> Definiere akzeptable Genauigkeit.
+/- 1Hz zum Beispiel
Johannes E. schrieb:>> Wenn du die Periodenlänge genau kennst und das Signal nicht verrauscht> ist, dann reicht eine einzige Periode; es muss aber ganz genau eine> Periode sein.>> Wenn das Ziel allerdings ist, mit Hilfe der FFT die Frequenz zu messen,> wenn also die Frequenz nicht bekannt ist, dann gibt es dafür andere> Methoden, z.B. Beitrag "Genaue Frequenzbestimmung nach FFT".
das Signal ist durchaus verrauscht. Neben der Frequenz möchte ich die
Amplitude messen, oder was meinst du damit genau?
Arno schrieb:>> Eventuell kannst du mit Zero Padding noch etwas erreichen, aber da kann> es sein, dass das Spektrum nur anders verschmiert. Je nachdem, was du> misst und was du erreichen willst...>
ich habe ein periodisches Signal vorliegen, welches eine relativ
niedrige Bandbreite <50Hz hat. Innerhalb dieses (auch etwas
verrauschten) Bandes liegt irgendwo eine deutliche Peak bei einer
gewissen Frequenz. Diese Frequenz gilt es für mich, aus möglichst
wenigen Perioden aus dem Signal zu extrahieren.
controllerblanc schrieb:> das Signal ist durchaus verrauscht. Neben der Frequenz möchte ich die> Amplitude messen, oder was meinst du damit genau?
Wenn die Frequenz genau bekannt ist, kann man aus dem Signal genau eine
Periode ausschneiden und davon die FFT berechnen. Das resultierende
Spektrum besteht dann nur noch aus der Grundwelle und den Oberwellen und
man hat theoretisch genaue Werte für die Amplitude. Allerdings nur, wenn
kein Rauschen vorhanden ist bzw. wenn das Rauschen im interessanten
Frequenzbereich sehr gering ist.
Wenn das Signal verrauscht ist, ergibt sich durch Messungen mehrerer
Signal-Perioden eine Mittelung, je mehr Perioden es sind, um so genauer
wird das Ergebnis, das Rauschen wird besser unterdrückt (Allerdings nur,
wenn es ein statistisches Rauschen ist).
Was ist denn das Ziel bzw. warum ist es wichtig, möglichst wenige
Signal-Perioden auszuwerten?
Es handelt sich um eine regelungstechnische Anwendung. Aus einem Prozess
soll das Ausgangssignal (Frequenz nicht genau bekannt) auf bestimmte
Eigenschaften des Amplitudenspektrums getestet werden. Diese
Charakterisika füttern den Regler, der diesen Prozess (und dessen
Ausgangssignal) wiederum korrigiert. Der Prozess hat zwar keine hohe
Dynamik, aber dennoch sollten so wenig wie möglich Amplituden für eine
akzeptable Darstellung eines Spektrums <50Hz verwendet werden.
Ich würde vorschlagen, dass du zuerst versuchst, die Frequenz möglichst
genau zu bestimmen. Dann schneidest zu aus dem Signal einen Bereich aus,
der eine ganzzahlige Anzahl von Signalperioden enthält und berechnest
daraus das Spektrum.
Wie viele Perioden dafür notwendig bzw. sinnvoll sind, musst du durch
Versuche selber herausfinden; das kann dir niemand sagen, ohne das
Signal und die Anforderungen an Genauigkeit/Auflösung zu kennen.