Ich weiß es ist vielleicht eine sehr blöde Frage und vermutlich weiß hier jeder warum das so ist außer mir...
Aber ich verstehe nicht so ganz warum die Daten der FFT quasi ganz zu anfang nicht von Null herlaufen sondern irgendwo weiter oben auf der y-achse beginnen.
Kann mir das vielleicht jemand für blöde erklären?!
Amplitude spectrum for az, z = 25,0 m, load level 28.fig
In dieser Darstellung mit dem beschränktem Bereich ist das schwer zu sagen. Es kommt mir so etwas unnatürlich vor. Ich würde an deiner Stelle die dB Skalierung bevorzugen und auch nicht die y-Achse limitieren. Du kannst ja gern nur den interessanten Frequenzbereich von 0-20Hz nehmen, aber mal bitte ohne Limit von y und in dB. Hänge mal noch diese Plots an.
Die dB Skalierung hat den Vorteil, dass große Wertebereich besser dargestellt werden können. Wenn man wie in deinem Fall vor allem im niederfrequenten Bereich hohe Amplituden hat und im Anschluss nur noch ganz kleine, sind dort die Frequenzanteile in der linearen Darstellung kaum noch richtig zu sehen.
40dB = 100
20dB = 10
0 dB = 1 -> also keine Verstärkung
- 3dB = 1/sqrt(2) = 0.707
-20dB = 0.1
-20dB = 0.01
Der etwas eckige Verlauf deines Spektrums liegt wohl an der zu geringen Anzahl an Messwerten. Ich empfehle dir daher die Anzahl Messwerte nfft zu erhöhen.
Nur als Bsp...eine 2er Potenz als Anzahl ist deshalb sinnvoll, da der FFT Algorithmus daraufhin optimiert ist und dann effizient rechnen kann. Es ist aber nicht zwingend notwendig. Ich weiß ja nicht wie viele Messwerte dein Signal hat.
Wenn du das nfft erhöhst, werden automatisch Nullen an y angefügt und die Frequenzauflösung df wird damit besser. Denn df = Fs/nfft.
Der Peak am Anfang kommt vermutlich durch den Gleichsignalanteil, welcher > 0 ist. Einfach mal sum(y(i,)/nfft ausgeben lassen. Dieser Wert entspricht dem Gleichsignalanteil im Spektrum.
Gut das du mich darauf hinweist. Das ist ein Fehler in meiner Funktion. Das Anhängen von Nullen passiert automatisch in der Funktion fft(). Setzt man aber ein Fenster ein, muss das sig vorher schon manuell ergänzt werden, damit es die gleiche Länge wie das Fenster win hat. Hier die Korrektur...
Code:
function[mag, mag_dB, fv] = FFT_betragsspektrum( signal, nfft, fa, window, scale) % Input: % Signal im Zeitbereich % nfft = Anzahl Messwerte für fft % wenn nfft > length(sig) -> fft(sig,nfft) führt Zeropadding durch % fa = Abtastfreq. % window: 1 = Fensterung mit Hanning window % scale: 0 = keine Impulsantwort als Eingang, 1 = Impulsantwort % Output: % Magnitude des Spektrums linear und dB skaliert % Frequenzvektor fv in [Hz] von 0...fa/2
% un-,gerade Anzahl Messwerte? ifmod(nfft,2) == 0;
k = (nfft/2) + 1;
else
nfft = nfft + 1;
k = (nfft/2) + 1;
end
Okay cool, vielen Dank. Nun bekomme ich folgende Abbildung raus. Sieht schon mal besser aus.
Aber nochmal kurz zu dem Gleichsignal. Kann ich das denn quasi rausnehmen? Sodass ich am Anfang irgendwie bei Null beginne? Das versteh ich noch nicht so ganz.
Ich bin ja vor allem daran interessiert wie groß die Amplituden sind im Vergleich zueinander. Und wenn ich mir das nun genauer ansehe und nicht mit dB Skallierung sieht es noch etwas verwirrender aus...
Tatsichlich ist aber nicht nur ein Gleichsignalanteil vorhanden sondern erst bei 0.03Hz die größte Amplitude des Spektrums. In so fern würdest du selbst mit einem Gleichsignalanteil von 0 einen Peak bei 0.03Hz im Spektrum sehen. Offensichtlich ist diese Frequenz in deiner Messung enthalten.
Was die Auswertung deiner Daten angeht, kann ich dir nicht wirklich helfen. Das musst du schon selber machen. Ich kann dir nur bei der richtigen Berechnung und Darstellung des Frequenzspektrums behilflich sein.
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
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.