调整MATLAB fft的频率和幅度轴

时间:2016-01-07 22:07:45

标签: matlab

我写了一个小脚本来获取窦信号的fft:

    N = 1000; % number of samples 
n = (0:N-1)'; % generate a vector n for x[n]
Fs_normal = 36621.09375;
%generate a signal in pass-band, N samples and simulate filter
f0 = 1000; % set 1000 Hz 
x= sin(2*pi*f0*n/Fs_normal); % input signal
figure(3);
stem(x),title('sinus wave with 1000 Hz (n)'),grid;
figure(4);
plot(abs(fft(x))),grid,title('FFT of sin wave with 1000 Hz  frequency');

这是我获得的fft结果:

enter image description here

你可以看到轴没有任何意义(至少对我来说),有没有办法让这个方法正确?

1 个答案:

答案 0 :(得分:1)

FFT为您提供1000个分档

String

您必须自己添加比例。当你给1000个样本时,整个FFT还会给你1000个复系数。范围从0到采样频率。

分档的频移为freqvals = [0:N-1]/N * Fs_normal; plot(freqvals, abs(fft(x))),grid,title('FFT of sin wave with 1000 Hz frequency');