FFT plot how to plot frequency

2 次查看(过去 30 天)
andrei andrei1
andrei andrei1 2018-6-12
hy, i have a set of data, time - velocity. i need to transform it in frequency-amplitude plot. so, i have this code:
load('x.txt');
X=x(:,2);
T=x(:,1);
Xf=fft(X);
l=length(Xf);
D=2*abs(Xf)/l; %%i understand this is the formula to plot exact amplitude
plot(D)
grid on
so.. i have the amplitude on Y axis, but on X axis it shows the time, it is like 2 minutes long in 500000 steps, so, many numbers, and i need to know the amplitudes for the first 50Hz. how can i have Hz= frequency on X axys, cause i don't think is the same at may time 500k+ values. p=plot(T,X)
  2 个评论
Star Strider
Star Strider 2018-6-12
See the documentation on fft (link).
You have to create a frequency vector for the plot.
andrei andrei1
andrei andrei1 2018-6-12
编辑:andrei andrei1 2018-6-12
can you tell me how? it should be function of T, obviously, and should have same length as D. frequency normally is 1/T .. but how to apply that here? maybe.. if T=1:500000 totally meaning 2 minutes, then freq=1:1/500000:1/120*500000) ?

请先登录,再进行评论。

回答(1 个)

Star Strider
Star Strider 2018-6-12
I would create the frequency vector ‘Fv’ as:
Ts = mean(diff(T)); % Sampling Interval
Fs = 1/Ts; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
Fv = linspace(0, 1, fix(l/2)+1)*Fn; % Frequency Vector (For One-Sided Fourier Transform)
Iv = 1:numel(Fv); % Index Vector (For One-Sided Fourier Transform)
Your plot call then changes to:
plot(Fv, D(Iv))
grid on
That should work (providing I did not make any typographical errors).
  2 个评论
andrei andrei1
andrei andrei1 2018-6-13
编辑:andrei andrei1 2018-6-13
ok, so, for example if T has 500000 values between 0 and 10 seconds, this Fv will have 250001 values cause of the Nyquist mirroring, but the values would be from what frequency to what frequency? how to show on x axis the real values of frequency, and not the full 250001 steps, and how to show frequencys till 50 Hz, plot(Fv(1:50), D(1:50)) is good?
in my method, the x axis was till 250000 bins, and on yours till 25000 bins. these values are in fact 250000 Hz?
Star Strider
Star Strider 2018-6-13
The ‘Fv’ variable goes from 0 Hz to the Nyquist frequency, that being half the sampling frequency.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Spectral Measurements 的更多信息

标签

产品


版本

R2013b

Community Treasure Hunt

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

Start Hunting!

Translated by