|
|
FFT for Spectral Analysis |
|
Atmos_kk |

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 23.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.05.2011, 13:20
Titel: FFT for Spectral Analysis
|
 |
|
 |
|
Hallo zusammen,
ich bi gerade dabei eine Schwingungsanalyse durchzuführen. Hierzu benötige ich die FFT. Soweit auch ganz gut, soll heißen mit der Kontrolle an meinem kompletten Ausgangssignal erreiche ich das selber Ergebnis wie bei meiner FFT in Matlab.
Nun mein Problem, einige Werte aus der Beispieldatei habe ich einfach mal nach Bauchgefühl eingesetzt allerdings würde es mich schon interessieren warum das so gut funktioniert und warum gerade diese Werte!
Konkreter Fall:
% .txt-Datei in Matlab einlesen ( Matrixform )
rohdaten=dlmread('a4.txt', '\t', [23 0 68563 1]);
% Aufteilen in Spalten
time=rohdaten(:,1);
acceleration=rohdaten(:,2);
% FFT 68541/34270/34271
Y=fft(acceleration,68541);
%Y(1)=[];
hier die 1. Frage: Wozu und
welchen Sinn hat das
mit dem Y(1)=[]????
% Ploten der Rohdathen-FFT
Pyy=Y.*conj(Y)/68541;
2. Frage: Die 68541 sind
Anzahl an Messwerten, die
ich auch für f wieder
benötige aber warum dann
34270 im folgenden Teil
der Formel???? Habe einfach
die Hälfte abgerundet ge-
nommen, weil es im Beispiel
von Matlab auch so ungefähr
gepasst hat. Genauso ver-
stehe ich nicht die 34271 bei
dem Plot nicht!!! Hab ich ein-
fach den Wert aus f ge-
nommen +1.
f=4096/68541*(0:34270);
subplot(211)
plot(f,Pyy(1:34271),'k')
axis([0 500 0 50])
title('power spectral density')
xlabel('Frequenzy (Hz)')
Hoffe mir kann da jemand helfen!
Außerdem würde es mich interessieren wie alle Ihre Matlabschriebe so schön einfügen könne!!!
Greetz
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 25.05.2011, 14:25
Titel: Re: FFT for Spectral Analysis
|
 |
Hallo Atmos_kk,
Zur FFT: http://www.gomatlab.de/fft-umfassendes-beispiel-t777.html
Um den Text zu formatieren kannst Du entweder die Buttons verwenden, die oberhalb des Eingabefeldes stehen: drücke einfach mal drauf und schaue was passiert.
Ich füge die Tags lieber manuell ein. Also z.B. [ c o d e ] am Anfang und [ / c o d e ] am Ende von Matlab-Programmabschnitten (ohne Leerzeichen - die sind hier nur nötig, damit es nicht als Format-Tag interpretiert wird.
Willkommen im Forum! Gruß, Jan
|
|
|
Ajax |

Forum-Century
|
 |
Beiträge: 176
|
 |
|
 |
Anmeldedatum: 09.09.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.05.2011, 14:39
Titel:
|
 |
|
 |
|
Hallo,
zum leichten Teil deiner Frage: Wenn du die Code-Umgebung hier im Forum benutzt, dann wird Matlab-Code schön formatiert. Einfach auf den Knopf mit 'Code' drücken.
Jetzt zur eigentlichen Frage:
Dein Problem scheint nur zum Teil bei Matlab zu liegen, sondern eher bei dem Verständnis der Fourier Transformation. Hierzu sind zunächst ein paar Grundlagen notwendig, z.B. das sog. Abtasttheorem. Ein Signal kann dem zufolge dann exakt rekonstruiert werden, wenn die Abtastung mit (mindestens) der doppelten maximal auftretenden Frequenz erfolgt.
Umgesetzt auf dein diskretes Problem bedeutet das, dass du im Zeitbereich doppelt so viele Werte wie im Frequenzbereich hast (einfach ausgedrückt), d.h. das dein Vektor im Frequenzbereich theoretisch nur halb so lang ist wie der im Zeitbereich. Wenn du dir den Vektor in Matlab anschaust, dann besitzt dieser jedoch die gleiche Länge wie der Eingabevektor. Das kommt daher, dass die Fouriertrafo auch negative Frequenzen liefert, welche jedoch achsensymmetrisch sind (sie könnten also theoretisch auch ohne Informationsverlust weggelassen werden). Das beantwortet jedoch deine Frage, warum nur die Hälfte der Punkte geplottet werden. "Normalerweise" interessieren einen nur die positiven Frequenzen. Die andere Frage bzw. deren Antwort bezieht sich auf die Lage des Ursprungs, also dem Wert für den Offset (Frequenz = 0). Schau dir hierzu am Besten mal die Hilfe für fft() (evtl. noch die zu fftshift()).
mfg
|
|
|
Atmos_kk |
Themenstarter

Forum-Fortgeschrittener
|
 |
Beiträge: 93
|
 |
|
 |
Anmeldedatum: 23.05.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.05.2011, 07:32
Titel:
|
 |
Aber hallo,
vielen Dank erstmal, sieht mittlerweile vom Verständnis her besser aus.
Greetz
|
|
|
|
|
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 - 2025
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.
|
|