fft 运算采样频率对结果影响的困惑

来源:百度知道 编辑:UC知道 时间:2024/06/03 16:45:09
最近碰到一个问题,对一个5M正弦信号进行fft运算,采样频率采用100M和1000M竟然结果不同,按照我的理解,不是采样频率只要符合乃奎斯特定理的要求即大于2fs就可以真实的反映频谱结果吗?小弟刚开始学习信号,不对的地方希望大家指正,也希望高手能够给详细的分析一下matlab做fft运算的基本方法。谢谢!(我个人做的出现问题的例程如下:)

t0=2E-6; % 10个周期
Vamp=1; % 电压幅值10V
f=5E6; % 脉冲5MHz
w=2*pi*f; % 角频率

t1=0:(1E-9):1E-5; (换用1E8结果差距很大)
Vi = zeros(size(t1));
t=0:(1E-9):t0; (换用1E8)
Vi(1:2001) = Vamp*sin(w*t);
plot(t1,Vi)

>> Y=fft(Vi,512);
>> Pyy=Y.*conj(Y)/512;
>> f=1E9/512*(0:255); (换用1E8)
>> plot(f,Pyy(1:256))

没问题啊 fft的结果都是对的 对应峰值都是5M 可惜不能贴图

fft结果范围[-fs/2,fs/2]

程序中
1000M采样时的显示范围[0,500M]
100M采样时的显示范围[0,50M]

t0=2E-6; % 10个周期
Vamp=1; % 电压幅值10V
f=5E6; % 脉冲5MHz
w=2*pi*f; % 角频率
index=1;
t1=0:(1E-8):1E-5;
Vi = zeros(size(t1));
t=0:(1E-8):t0;
Vi(1:201) = Vamp*sin(w*t);
figure;
plot(t1,Vi)
Y=fft(Vi,512);
Pyy=Y.*conj(Y)/512;
f=1E8/512*(0:255);
plot(f,Pyy(1:256))