Determining frequecnies from plot

1 回表示 (過去 30 日間)
Ali Baig
Ali Baig 2016 年 4 月 22 日
コメント済み: Ali Baig 2016 年 4 月 22 日
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
John BG 2016 年 4 月 22 日
please supply a graph example so readers have an idea of the noise / interference levels that the signals have
Ali Baig
Ali Baig 2016 年 4 月 22 日
These are the equations I am trying to solve. I have successfully modeled them in Simulink. Now the problem is to determine the frequencies of the signal.
The response of X is

サインインしてコメントする。

採用された回答

Baltam
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 件)

カテゴリ

Help Center および File ExchangeVibration Analysis についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by