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!