2016-01-07 34 views
0

我写了一个小脚本获得窦信号的FFT 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

我建议读入[取样理论和DFT](https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem)(另请参阅:[aliasing](https:// en。 wikipedia.org/wiki/Aliasing))。如果你的问题是两个高峰,那就是。你的问题很不明确。 –

回答

1

的FFT为您提供了1000个箱

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

您必须添加在自己的规模。当您给1000个样本时,整个FFT还会返回1000个复数系数。范围从0到采样频率。

垃圾箱以Fs_normal/N的频率偏移分开。