Hallo, ich habe allgemeine Fragen zur FFT: Wie ist der Zusammenhang zwischen Anzahl der Stützstellen und Frequenzauflösung zu verstehen? Ich taste mit 180 Hz ab. Die Frequenzauflösung ist abhängig von der Anzahl der Stützstellen, meinetwegen 256. Damit bekomme ich einen Wert von ca. 0,7. Bei 128 Stützstellen wäre die Auflösung ca. 1,4. Für die Darstellung wäre eine Auflösung von genau 1 wünschenswert. Komme ich mit einer FFT, die ja 2 hoch n Stüzstellen benötigt, überhaupt dahin? Bei der Abtastrate von 180 Hz sehe ich nach der FFT aufgrund der Spiegelsymmetrie das Spektrum von 0 bis 90 Hz in der entsprechenden Auflösung (abhängig von der Anzahl der Stützstellen). Für die Analyse sind nur Frequenzanteile bis 50 Hz relevant und darzustellen. Dazu muss ich quasi nur die Anteile oberhalb von 50 Hz "verwerfen"? Oder kann ich die Überabtastung vorteilhaft nutzen? Mfg
Auflösung = Abtastrate / Anzahl der Werte Die Anzahl der Werte lässt sich durch zero-padding noch verändern (das Abtasttheorem muss erfüllt bleiben!). Eine gewisse Überabtastung brauchst du immer, da ich bezweifle, dass du entsprechend steile Anti-Aliasing-Filter hast. Ein Darstellungsproblem kannst du z.B. durch simple Interpolation lösen, erfordert aber logischerweise noch etwas Rechenleistung. Alternativ verzichtest du bei 180 Punkten auf die FFT und rechnest mit einer DFT (dort ist die Anzahl der Werte nicht auf 2^n beschränkt), sollte immer noch halbwegs zügig sein, abhängig von der verwendeten Hardware. Es gibt auch noch andere Algorithmen, die u.a. auf der Zerlegung in Primfaktoren beruhen, dort kannst du dich dann aber selbst schlau machen :) Alex
Mein Signal wird vor der Abtastung gefiltert, daher ist eine gewisse Überabtastung gewollt, wie von dir beschrieben. Die Interpolation war ebenfalls meine einzige Idee. Die Rechenleistung sollte kein Problem darstellen. De facto geschieht die Berechnung mit dem PC in C#. Ist in jedem Fall die bessere Lösung als DFT. Danke für die Antwort.
Auf dem PC wirst du, so denn kein "Movie" mit x Frames/s gewünscht ist keinen unterschied zwischen FFT und DFT merken. Von daher kannst du dir viel Arbeit ersparen - die Implementierung kriegt man gesamt auf eine halbe Bildschirmseite. Welche FFT-Routinen setzt du auf PC-Seite ein? Ich verwende die von http://www.exocortex.org/dsp/. Alex
Ich benutze ebenfalls die Exocortex.DSP Routinen. Allerdings enthalten die nur FFTs. Ich habe eine Software geschrieben, welche die Messsignale direkt darstellt (eine Art Oszi also) und nebenher das Spektrum anzeigt (ähnlich einem Equalizer bei der Stereoanlage). Außerdem werden die einzelnen Frequenzbereiche getrennt dargestellt. Ich habe noch ein Problem mit der Skalierung der y-Achse meiner Spektrumdarstellung. Die Darstellung erfolgt nach der Berechnung der Absolutwerte der Ergebnisse von Fourier.RFFT(). Dieses Werte muß ich jedoch skalieren, damit sie in das Fenster passen. Im Moment habe ich den Faktor durch ausprobieren ermittelt. Gibt es eine Möglichkeit im Voraus die maximale "Höhe" des Absolutwerts zu ermitteln? Falls das Signal nur eine einzige Frequenz enthält müßte der entsprechende Absolutwert ja maximal sein. Hätte ich diesen Wert, könnte ich ihn als 100% ansehen und die Darstellung danach skalieren.
Ich beschreite den Trivialweg und durchsuche das Array nach dem Berechnen der FFT nach dem Maximalwert und baue darauf meine Skalierung auf - ist keine wesentliche Performance-Bremse.
Der Weg funktioniert leider nur, wenn ich eine begrenzte Menge an Werten analysiere und dann darstelle. Ich will jedoch einen Dauerbetrieb ermöglichen. D.h. ich rechne ständig neue FFTs über das Messsignal und weiß vorher den Maximalwert einfach nicht.
Hallo, ich habe ein ähnliches Problem. Habe das aber noch nicht ganz verstanden. Ich messe eine Frequenz. Taste diese Frequenz mit 19200Hz ab. Meine Aufgabe besteht nun darin, die beste Auflösung bei optimaler Abtastfrequenz zu finden. Ich weiß, dass die Auflösung bei hoher Abtastung besser wird. Allerdings wäre das zu hoch. Wie lautet denn der zusammenhang zwischen Auflösung und Abtastfrequenz? Der Alex schrieb: Auflösung = Abtastrate / Anzahl der Werte Was ist denn nun die "Anzahl der Werte"? Dennis
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.