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-Abtasttheorem Dominik 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.
>1Hz Aktualisierungsrate ist das >Maximum bei dieser Auflösung. Sollte das nicht nur von der vorhandenen Rechenleistung abhängen?! Gruß Jonas
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 :-)
Heisenbergsche Unschärferelation? Wo sind hier die Quanteneffekte? Ich hatte gedacht es geht um Audiosignale.
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
Kleine Anmerkung: Falls das Musiksignal als I/Q Signal vorliegen würde hätte man doppelte Auflösung im Frequenzbereich
> 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 :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.