Determining frequecnies from plot
1 回表示 (過去 30 日間)
古いコメントを表示
I am working on free response of a non-linear, 2 degrees of freedom vibration system. I have developed mathematical model and implemented it in Simulink. As there are 2 DOFs, so the system's response will be something like this: x_1=10*(sin5t+cos3t) and x_2=-5*(sin5t-cos3t). I have graphs of x_1 and x_2 vs time. How can I determine the frequencies from these graphs when I don't have analytical solutions. Thanks
2 件のコメント
John BG
2016 年 4 月 22 日
please supply a graph example so readers have an idea of the noise / interference levels that the signals have
採用された回答
Baltam
2016 年 4 月 22 日
% suppose 't' is your time vector. Ideally its length is a multiple of the periods of the signal.
% You need to try and fit an exact amount of periods into your signal to
% get good results with fft or otherwise use a very long signal
% Sampling frequency
Fs = 1/(t(2)-t(1));
% Calculate fft
x_1dft = fft(x_1);
% Only take one side of the Fourier transform
x_1dft = 2*x_1dft(1:ceil((length(x_1)+1)/2));
% Calculate the frequencies
freq = 0:Fs/length(x_1):Fs/2;
% Normalise according to length of signal
x_1dft = x_1dft/(2*length(freq));
figure,
subplot(2,1,1), plot(t,x_1), xlabel('Time [s]')
subplot(2,1,2), loglog(freq,abs(x_1dft)), xlabel('frequency [Hz]')
And the same for x_2
Good luck,
Batlam
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Vibration Analysis についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!