2016-01-07 61 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的頻率偏移分開。