Determining frequecnies from plot

3 views (last 30 days)
Ali Baig
Ali Baig on 22 Apr 2016
Commented: Ali Baig on 22 Apr 2016
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 Comments
John BG
John BG on 22 Apr 2016
please supply a graph example so readers have an idea of the noise / interference levels that the signals have
Ali Baig
Ali Baig on 22 Apr 2016
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

Sign in to comment.

Accepted Answer

Baltam
Baltam on 22 Apr 2016
% 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

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!