Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-03-15, 21:07   #1
ljsr1001
初级会员
 
注册日期: 2008-01-15
年龄: 27
帖子: 2
声望力: 0
ljsr1001 正向着好的方向发展
默认 【求助】MATLAB频谱图问题

MATLAB程序
clear
fs=1000 ;
k=1;
t=0:1/fs:0.6;
f1=300;

x=10*sin(2*pi*f1*t)
for n=64:64:2048
n1(k)=n;
y=fft(x,n);
n=0:length(y)-1;
f=fs*n/length(y);
plot(f,abs(y))
[a,b]=max(abs(y));
z=f(b)-300
P3(k)=abs(z)
k=k+1;
end
plot(n1,P3)
我想问两个问题:
1.为什么刚开始64~200左右误差非常的大
2.为什么会出现振荡现象
谢谢了~
上传的图像
文件类型: jpg 频率误差点图.JPG (14.2 KB, 108 次查看)
ljsr1001 当前离线   回复时引用此帖
旧 2008-03-16, 12:45   #2
junejie
初级会员
 
注册日期: 2007-12-14
帖子: 10
声望力: 18
junejie 正向着好的方向发展
默认 回复

起始时FFT数据点数不够,如64个点,其最小频率误差为fs/64=15.625Hz,也就是说你偏差一个数据点,就是15.625Hz,随着你FFT点数的增大,其误差相应的越来越小。
junejie 当前离线   回复时引用此帖
旧 2008-03-28, 11:06   #3
xiaoli52166
初级会员
 
注册日期: 2008-03-28
年龄: 39
帖子: 1
声望力: 0
xiaoli52166 正向着好的方向发展
默认

谢谢了,很有用!!!
xiaoli52166 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 11:30


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.