xt为添加了高频噪声的信号,为1×1000时域序列,取N=1000
观察fft\fftshift作用和横坐标范围限制的影响
f11=fft(xt,N);k=0:N-1;
subplot(2,4,1);
stem(k,abs(f11)/max(abs(f11)),'.');
title('只用fft 0:N-1');
f12=fft(xt,N);k=-N/2:N/2-1;
subplot(2,4,2);
stem(k,abs(f12)/max(abs(f12)),'.');
title('只用fft -N/2:N/2-1');
f21=fftshift(fft(xt,N));k=0:N-1;
subplot(2,4,3);
stem(k,abs(f21)/max(abs(f21)),'.');
title('fft后,使用fftshift 0:N-1');
f22=fftshift(fft(xt,N));k=-N/2:N/2-1;
subplot(2,4,4);
stem(k,abs(f22)/max(abs(f22)),'.');
title('fft后,使用fftshift -N/2:N/2-1');
subplot(2,4,5);
stem(k,abs(f11)/max(abs(f11)),'.');
axis([0,Fs/2,0,1.2]);
title('横坐标限定0,500');
subplot(2,4,6);
stem(k,abs(f12)/max(abs(f12)),'.');
axis([0,Fs/2,0,1.2]);
title('横坐标限定0,500');
subplot(2,4,7);
stem(k,abs(f21)/max(abs(f21)),'.');
axis([0,Fs/2,0,1.2]);
title('横坐标限定0,500');
subplot(2,4,8);
stem(k,abs(f22)/max(abs(f22)),'.');
axis([0,Fs/2,0,1.2]);
title('横坐标限定0,500');
可以发现,使用fftshift并将横坐标限制在0,500后才得到正确的信号频谱。