Guten Abend zusammen,
ich werde bald ein kleines Projekt angehen, bei dem im Kern auch eine
Fouriertransformation vorkommen wird.
Es wir ein Signal im Zeitbereich (Musiksignal) abgetastet und soll in
den Frequenzbereich transformiert werden.
Eins will mir momentan aber noch nicht ganz in den Kopf...
Ich möchte eine Frequenzauflösung von einem Hertz erreichen.
Angenommen ich führe ein FFT mit 1024 Punkten durch, dann muss ich mit
1024 Hz abtasten, denn die Auflösung entspricht wenn ich das richtig
verstehe der Abtastrate geteilt durch die Zahl der Stützstellen.
Ist es dann richtig, dass ich bei der gewünschten Auflösung von 1Hz auch
nie über eine Aktualisierungsrate von einem Hertz hinwegkommen kann, da
ich ja immer genau eine Sekunde brauche um die benötigte Anzahl an
Werten zu samplen?
Danke schonmal.
Gruß
Dominik schrieb:> Angenommen ich führe ein FFT mit 1024 Punkten durch, dann muss ich mit> 1024 Hz abtasten, denn die Auflösung entspricht wenn ich das richtig> verstehe der Abtastrate geteilt durch die Zahl der Stützstellen.
Dazu nochmal nachlesen, bitte:
http://de.wikipedia.org/wiki/Nyquist-Shannon-AbtasttheoremDominik schrieb:> Ist es dann richtig, dass ich bei der gewünschten Auflösung von 1Hz auch> nie über eine Aktualisierungsrate von einem Hertz hinwegkommen kann, da> ich ja immer genau eine Sekunde brauche um die benötigte Anzahl an> Werten zu samplen?
Ich verstehe hierbei nicht so recht, was Du meinst.
Ich denke er spricht die begrenzte Lokalisation im Zeitbereich an. Nach
meiner Ansicht ist die Aussage richtig, 1Hz Aktualisierungsrate ist das
Maximum bei dieser Auflösung. Es ist möglich eine höhere
Aktualisierungsrate zu erlangen indem die Auflösung im Frequenzbereich
niedriger ist.
jonas biensack schrieb:>>1Hz Aktualisierungsrate ist das>>Maximum bei dieser Auflösung.>> Sollte das nicht nur von der vorhandenen Rechenleistung abhängen?!
Die Aktualisierungsrate hat nichts mit dem "Rest" zu tun!
Was hindert dich daran 1 neuen Wert abzutasten und dann zusammen mit
1023 vorhergehenden alten Werten auszuwerten, dann hast du eine
Aktualiserungsrate gleich der Abtastrate.
Die Grenze ist hier die Rechenleistung !!!
Gruss Klaus
So... ich melde mich auch mal wieder zu Wort :)
Danke schonmal für eure Antworten, ich denke savo hat mein "Problem"
erkannt wenn es dann wirklich so ist.
> >1Hz Aktualisierungsrate ist das> >Maximum bei dieser Auflösung.
So hab ich mir das auch gedacht - war mir aber nicht sicher, ob ich
vielleicht irgend einen Punkt übersehen habe, da ich bis jetzt in der
Praxis noch nicht mit Fourier gearbeitet habe.
> Sollte das nicht nur von der vorhandenen Rechenleistung abhängen?!
Die Frequenzauflösung beträgt:
Mit
und n = Anzahl der Stützstellen
Angenommen ich interessiere mich für ein Frequenzspektrum bis
und taste folglich mit
ab.
Dann muss ich auf jeden Fall t=1s warten um wieder genügend Samples für
die FFT zu haben und kann folglich auch nicht schneller als 1Hz
aktualisieren, richtig?
> Was hindert dich daran 1 neuen Wert abzutasten und dann zusammen mit> 1023 vorhergehenden alten Werten auszuwerten, dann hast du eine> Aktualiserungsrate gleich der Abtastrate.
Ok...
Also doch was übersehen :)
Stimmt eigentlich - was hindert mich daran Samples (zumindest für eine
live-Ansicht) mehrfach zu verwenden. :)
Danke Klaus!
Klaus hat recht, mit seiner Lösung ist eine Aktualisierungsrate gleich
der Abtastrate möglich aber was ist der Informationsgewinn der FFT wenn
lediglich EIN Wert sich geändert hat?
Es gibt eine Grenze in der Zeit- und der Frequenzlokalisation basierend
auf der Heisenbergsche Unschärferelation. Sprich die Auflösung in Zeit
und Frequenz sind abhängig voneinander.
Wir sollten auf Detlef warten :-)
savo schrieb:> Heisenbergsche Unschärferelation
Tut nicht immer gleich so schwere Geschütze auffahren.
Um die Heisenbergsche Unschärferelation muss man sich nicht extra
kümmern, sie ist im vorliegenden Fall von selbst gegeben.
Denn, Dominik will eine Frequenzauflösung von einem Hertz. Der Preis
dafür ist dass er eine Sekunde lang abtasten muss. Seine Ergebnisse
gelten also zeitlich für die letzte Sekunde.
Will er es zeitlich genauer, z.B. für die letzte halbe Sekunde, so geht
das nur zu dem Preis dass seine Frequenzauflösung auf 2 Hertz "sinkt".
Das ist alles!
Die Aktualisierungsrate ist ganz was anderes. Je höher sie ist, um so
schöner kann man das dynamische Verhalten, also das Ansteigen und
Abklingen einzelner Frequenzanteile sehen.
Gruss Klaus
Noch eine Ergänzung:
ich schrieb:> Die Aktualisierungsrate ist ganz was anderes. Je höher sie ist, um so> schöner kann man das dynamische Verhalten, also das Ansteigen und> Abklingen einzelner Frequenzanteile sehen.
Man muss näturlich noch bedenken, dass das dynamische Verhalten der
Ergebnisse schon von der Abtastzeit abhängt.
Wählt man 1 Sekunde Abtastzeit, damit 1 Hz Auflösung, dann ändern sich
die Ergebnisse der Auswertung auch höchstens mit 1 Hz.
Jeder kann sich selbst überlegen wie oft man ein Display auffrischen
muss um Änderungen mit 1 Hz schön darzustellen.
>>aber was ist der Informationsgewinn der FFT wenn lediglich EIN Wert sich >>geändert hat?
Abtastrate sei 1024, Länge FFT auch. Dann liegt die Frequenz 1Hz in dem
ersten 'bin' der FFT. Wenn Du diese FFT nach JEDEM neuen sample machst,
also mit 1023 alten und einem neuen sample, kannst Du sehen wie sich die
Frequenz '1' nach Betrag und Phase geändert hat. Für 1Hz muß sich die
Phase mit jedem sample um 2pi/1024 weiterdrehen. Mit dieser
Phasendrehung der überlappenden FFTs kannst Du im Umkehrschluß die
Frequenz HOCHGENAU bestimmen, Du bist nicht an das Frequenzraster der
FFT gebunden.
>>Wir sollten auf Detlef warten :-)
THX
Cheers
Detlef
>Denn, Dominik will eine Frequenzauflösung von einem Hertz. Der Preis>dafür ist dass er eine Sekunde lang abtasten muss. Seine Ergebnisse>gelten also zeitlich für die letzte Sekunde.
Nicht unbedingt. Wenn Du genau weist, dass das Signal sinusförmig ist,
kannst Du den Abstand zwischen zwei Nullstellen messsen.
Oder: Wenn das Signal genau Sinusförmig ist, sollte sich mit dem
Abtasten von 4 Punkte ( oder 3? ) am Anfang des Signals der Rest des
Signals schätzen lassen.
savo schrieb:> Klaus hat recht, mit seiner Lösung ist eine Aktualisierungsrate gleich>> der Abtastrate möglich aber was ist der Informationsgewinn der FFT wenn>> lediglich EIN Wert sich geändert hat?
Für die niedrigste Frequenz (1 Hz) hat das keinen großen Vorteil, weil
sich die Schwingung mit dieser Frequenz erst nach 1/2 s maximal geändert
hat. Wohl aber für hohe Frequenzen, denn diese durchlaufen in dieser
Zeit ev. einige tausend Perioden und können sich daher beliebig ändern.
Also, bei Musiksignalen musst Du schon mit 40kHz abtasten, es sei
denn Du spielst Alphorn.
Um also 1Hz Auflösung zu erreichen musst Du 40k Samples FFT
transformieren,
und weil das so schlecht geht besser 32768 oder 2x32768 Samples.
Mein i5 Laptop braucht für 1000 FFTs der Länge 32768 ca. 1
Sekunde.
(MATLAB) . Ein DSP braucht dann wohl nur ne. 1/10 Sekunde.
Ein ATMEGA ... naja.
Nehmen wir mal an Dein System schafft 10FFTs der Länge 32768 pro
Sekunde,
dann kannst Du logischerweise eine Updaterate von 10/Sekunde
erreichen indem du
FFT1 : Samples 1..32768
FFT2 : Samples 1+3277 ..32768+3277
FFT3: Samples 1+2*3277 ..32768+2*3277
u.s.w.
rechnen lässt.
Jetzt würde nur noch interessieren wozu Du 1Hz Auflösung benötigst
es ist sowieso immer eine gute idee nicht die FFT anzuzeigen sondern
den Mittelwert mehrerer benachbarter FFTs da eine FFT sehr
"verrauscht" ist , insbesondere wenn man so hohe Frequenzausfösungen
haben will wie Du. Das nennt man Periodogramm
> Also, bei Musiksignalen musst Du schon mit 40kHz abtasten, es sei> denn Du spielst Alphorn.
Es interessieren mich nur (sehr) tiefe Frequenzen.
Wie oben gesagt f<500Hz und da ist schon viel "Luft nach oben" dabei.
Also doch eher Alpenhorn :)
> Mein i5 Laptop ...> Ein DSP braucht ...> Ein ATMEGA ...
Um die Rechenleistung mach ich mir momentan keine Sorgen.
Es sind ja dank der niedrigen Frequenzen bedeutend weniger Samples.
Dazu steht auch noch gar nicht final fest, ob die Berechnung auf einem
PC oder einem µC stattfinden.
> Jetzt würde nur noch interessieren wozu Du 1Hz Auflösung benötigst
Es geht um eine Schalldruckmessung und dabei eben auch darum recht genau
feststellen zu können welche Frequenzen am lautesten auftreten.
Ich danke euch allen noch mal recht herzlich für die vielen Antworten.
Wird mir auf jeden Fall helfen wenn ich das ganze dann angehe :)