首页 > 中学数学试题 > 题目详情
fft频谱分析 频率误差对某一信号做FFT时(采样频率fs,做N点FFT),那么通过fft频谱测出的频率值(最大谱峰出对
题目内容:
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频谱分析 频率误差
对某一信号做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时(采样频率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));
本题链接: