首页 > 解决方案 > FFT 显示两倍大的频率——为什么?

问题描述

t=[0:1/4000:10];    
fk1=[0:300/size(t,2):300];    
vysk_f=fk1(1:40000);    
t=t(1:40000);    
arg = vysk_f.*t;    
sv=sin(%pi*2*arg);    
cv=cos(%pi*2*arg);    
s2= sv+cv;    
vys_sig= s2;

然后我fftFs=4000 和做L=4000了十次,频率从 0 变为600Hz频谱而0不是300Hz

fs = 4000;
L = 4000;
f = fs* ( 0 : (L / 2 )) / L;
for i = 1:2
  for j = 1:10
    fft_data=fft(vys_sig((4000*j)-3999:4000*j)); 
    subplot(2,1,1);
    a = gca();
    delete(a.children);
    plot(f,abs(fft_data(1:size(f, '*'))));
    subplot(2,1,2);
    plot(vysk_f);
    sleep(500);
  end
end

在此处输入图像描述

图片是fft结束的地方

标签: matlabfftscilab

解决方案


推荐阅读