single sided amplitude fourier spectrum
9 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Muhsin
am 12 Okt. 2017
Kommentiert: Star Strider
am 18 Okt. 2017
Hello all, I am new user that trying to learn coding. I have an acceleration-time history with a time-step of 0.01 sec. The total duration is 14 sec. I would like to get a single-sided fourier spectrum of it. Is there any packed code for it? Any kind of help is appreciated. The attached file contains the data. Thank you.
Muhsin
0 Kommentare
Akzeptierte Antwort
Star Strider
am 12 Okt. 2017
Bearbeitet: Star Strider
am 12 Okt. 2017
The Code —
D = dlmread('Muhsin A00.txt', '\t', 1,0);
t = D(:,1); % Time (s)
a = D(:,2); % Acceleration (g)
L = length(t);
Ts = t(2)-t(1); % Sampling Interval (sec)
Fs = 1/Ts; % Sampling Frequency (Hz)
Fn = Fs/2; % Nyquist Frequency (Hz)
FTa = fft(a)/L; % Fourier Transform (Scaled)
Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector
Iv = 1:length(Fv); % Index Vector
figure(1)
plot(Fv, abs(FTa(Iv))*2) % One-Sided Amplitude Plot
xlabel('Frequency (Hz)')
ylabel('Amplitude (g)')
grid
EDIT — Changed ‘Ts’ calculation to accommodate ‘t(1)=0.01’ and ‘t(end)=0’.
19 Kommentare
Star Strider
am 18 Okt. 2017
The smoothdata function would likely work. (It was introduced in R2017a, and since I do not know what version you have, I did not suggest it.)
You would use it on the absolute value of your single-sided Fourier transformed data.
Weitere Antworten (1)
Image Analyst
am 12 Okt. 2017
Isn't that what pwelch() does? (Signal Processing Toolbox required for pwelch).
1 Kommentar
Image Analyst
am 12 Okt. 2017
You might also like spectrogram() function.
Or the Signal Analyzer app on the Apps tab of the tool ribbon.
Siehe auch
Kategorien
Mehr zu Spectral Measurements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!