|
|
FFT Problem Skalierung der Achsen stimmt nicht |
|
Alfred001 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.08.2016, 12:25
Titel: FFT Problem Skalierung der Achsen stimmt nicht
|
|
Hallo zusammen,
dank dieses Forums konnte ich mir als Laie viele Infos zur FFT-Analyse mit Matlab einholen.
Leider habe ich dennoch ein Problem mit der Skalierung von Achsen. Dazu habe ich mir schon einige Beiträge durchgelesen, aber ich komme aktuell einfach nicht weiter und hoffe, dass mir jemand dabei helfen kann.
Nun zum Problem:
Wenn ich eine FFT mit einem Sinus 5 Hz mit einer Länge von einer Sek. durchführe, dann stimmt die Skalierung der X-Achse. Nur die Y-Achse passt nicht mit der Amplitude im Zeitbereich.
Wenn ich das gleiche Signal auf 2 Sek. erhöhe, dann stimmt leider nicht mehr die X-Achse. Es wird mir die Frequenz von 10 Hz angezeigt. Ich frage mich, warum? Wo liegt der Fehler. Die Y-Achse hat sich nicht verändert. Es wäre schön, wenn ich die gleiche Amplitude im FFT-Plot angezeigt bekomme, wie im Zeitbereich
Hier mein Code:
|
|
|
|
|
Alfred001 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 30.08.2016, 09:59
Titel:
|
|
Ich habe nun selbst den Fehler gefunden.
Der Fehler bezüglich der dargestellten Frequenz liegt bei der Erzeugung des Signals!
Das Signal sollte so erstellt werden:
[code]
t = 0:1/fs:T-(1/fs);
sig = A*sin(2*pi*f*t)'; % Signal: Sinus 5 Hz
siglen = length(sig);
[\code]
leider kriege ich die y Achse nicht skaliert. Kann mir da vielleicht jemand weiter helfen?
|
|
|
Alfred001 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.08.2016, 08:59
Titel:
|
|
So, nun habe ich den weiteren Fehler erkannt.
Die Samplerate und die FFT-Buffergröße spielen eine ganz wichtige Rolle und sollten bei verschiedenen Fragestellungen richtig gewählt werden.
Ich habe nun folgendes festgestellt, in meinem Beispiel ist die Samplerate kleiner als die FFT-Buffergröße. Damit bekommt man eine Frequenzauflösung von 0.15625Hz. D.h. 5 Hz lassen sich gut auf der x-achse darstellen, denn 5 Hz ist das 32-fache von der Frequenzauflösung. Das Einzige, die Amplitude stimmt nicht und die ist scheinbar auch von der Samplerate und FFT-Buffergröße abhängig.
Nehme ich z.B. eine Samplerate von 160 Hz und eine FFT-Buffergröße von ebenfalls 160, dann habe ich eine Frequenzauflösung von 1 Hz. Hier stimmt die x-Achse haargenau und die y-achse zeigt fast exakt die gleiche Amplitude im Amplitudenspektrum, wie im Zeitbereich an.
Falls jemand noch ergänzende Anmerkungen hat, sind diese gerne willkommen!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|