我写了一个小脚本来获取窦信号的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结果:
你可以看到轴没有任何意义(至少对我来说),有没有办法让这个方法正确?
答案 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');
。