fft频谱分析 频率误差
对某一信号做FFT时(采样频率fs,做N点FFT),那么通过fft频谱测出的频率值(最大谱峰出对应频率),测量值与实际频率值之间的最大误差是多少啊?是fs/N吗?可是我仿...
对某一信号做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)); 展开
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)); 展开
1个回答
展开全部
要看实际频率值是否刚好落在N点FFT的对应频率通道上,如果实际频率刚好落在两个相邻频率通道中间,那误差应该是最大的。比如1024Hz采样频率,1024点FFT,输入频率如果是整数的话,应该会落在相应的频率通道上,误差就很小,如果比如说实际频率是1.5Hz,刚好落在FFT两个通道中间,误差就会很大,应该不止fs/N吧
更多追问追答
追问
按照你说的,落在中间时误差最大,此时误差是0.5Hz,而频率间隔是fs/N=1Hz,那就是说最大误差是fs/(2N)?
追答
我的理解是这样的。我不知道你是怎么仿真的,仿真的结果是什么?
通测科技
2021-07-30 广告
2021-07-30 广告
选择正确的光时域反射仪 (OTDR)1.OTDR是一种光纤测试仪,用于测试光通信网络的特性。OTDR旨在探测、定位和测量光纤链路任何位置上的事件。OTDR只需接入链路的一端,其工作方式类似于一维雷达系统。通过提供被测光纤的图形化迹线特征,用...
点击进入详情页
本回答由通测科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询