Acceleration vs Time; Magnitude vs Frequency

5 views (last 30 days)
Hello, I need to plot two graphs (Acceleration vs Time and Magnitude vs Frequency) and present both of it. Here is the code that I have done (a-acceleration (Length of signal N=2048), vt=time vector (1.2048s), Fs=32768Hz)
signal = a; time=vt;
% Plot Original signal in Time Domain
plot(vt,a);
title('Original signal in Time Domain');
xlabel('Time [s]');
ylabel('Acceleration [m/s^2]');
% Plot FFT signal
N = pow2(nextpow2(length(signal)));
y = fft(signal,N);
plot(1:N,abs(y));
title('FFT');
xlabel('Frequency [Hertz]');
ylabel('Magnitude');
Could you help me with that? Thank you in advance!

Accepted Answer

Star Strider
Star Strider on 13 Jul 2017
Edited: Star Strider on 13 Jul 2017
Try this:
% Plot FFT signal
N = pow2(nextpow2(length(signal)));
y = fft(signal,N)/length(signal);
Fn = Fs/2;
Fv = linspace(0, 1, fix(length(y)/2)+1)*Fn;
Iv = 1:length(Fv);
plot(Fv,abs(y(Iv))*2);
title('FFT');
xlabel('Frequency [Hertz]');
ylabel('Magnitude');
NOTE I have not tested this. It should work.
  3 Comments
Farrukh Karimov
Farrukh Karimov on 13 Jul 2017
As I understood, should it be like this (without "-2") ?:
Iv = 1:length(Fv);
plot(Fv,abs(y(Iv)))
Star Strider
Star Strider on 13 Jul 2017
Typographical error I didn’t catch.
Should be:
plot(Fv,abs(y(Iv))*2);
I also corrected it in my original Answer.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!