作业帮 > 数学 > 作业

fft频谱分析 频率误差

来源:学生作业帮 编辑:百度作业网作业帮 分类:数学作业 时间:2024/04/29 20:36:05
fft频谱分析 频率误差
对某一信号做FFT时(采样频率fs,做N点FFT),那么通过fft频谱测出的频率值(最大谱峰出对应频率),测量值与实际频率值之间的最大误差是多少啊?是fs/N吗?可是我仿真出来的不是,求强人解答,
kissnowbody你好,论文是英文的,太长了,好多其他的东西,我只是把我出问题的这部分拿出来问,我部分仿真代码如下:
clear all;
N=100;
L=512;
% f1=100;f2=120;
fs=500;
f1=100:0.02:200;
m=length(f1);
T=1/fs;
f=-fs/2+(0:L-1)*fs/L;
for i=1:m
t=(0:N-1)*T;
x=cos(2*pi*f1(i)*t);
%w=(-N/2:N/2-1)*fs/N;
y=fft(x,L);
% plot(f,abs(fftshift(y)));
[y_max,f_max]=max(abs(fftshift(y)));
fce(i)=abs(f(f_max));
ferror(i)=f1(i)-fce(i);
end
deltaf=fs/L
f1=100:0.02:200;
plot(f1,abs(ferror));
fft频谱分析 频率误差
要看实际频率值是否刚好落在N点FFT的对应频率通道上,如果实际频率刚好落在两个相邻频率通道中间,那误差应该是最大的.比如1024Hz采样频率,1024点FFT,输入频率如果是整数的话,应该会落在相应的频率通道上,误差就很小,如果比如说实际频率是1.5Hz,刚好落在FFT两个通道中间,误差就会很大,应该不止fs/N吧
再问: 按照你说的,落在中间时误差最大,此时误差是0.5Hz,而频率间隔是fs/N=1Hz,那就是说最大误差是fs/(2N)?
再答: 我的理解是这样的。我不知道你是怎么仿真的,仿真的结果是什么?
再问: 我是参照一片论文进行误差仿真的,上面人家仿真出来的误差就是fs/N,我仿真出来的结果最大误差稍大于fs/(2N),如果按照你的说法应该也是小于等于fs/(2N)才对,所以我觉得奇怪
再答: 你把论文题目告诉我,我看看,我觉得最大误差应该是fs/2N
再问: 程序你运行试试,我也不知道怎么回事
再答: 按照仿真的结果,最大的误差已经超过了超过了fs/2N,所以原论文fs/N可能是正确的,但我也没有深入研究为什么会是一个频率通道的误差,我直观的理解应该是fs/2N