声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1002|回复: 3

[综合讨论] 功率谱程序有错

[复制链接]
发表于 2010-1-11 18:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function dx=duffing(t,x);
mu=0.168; F=0.15; w=1;
dx=[x(2);F*sin(w*t)-mu*x(2)+x(1)/2-x(1)^3/2];

%要调用duffing.m
[t,u]=ode45('duffing',[0:2*pi/200:100],[0 0],[]);
figure(1); Y=fft(u(:,1));%对数值解作傅立叶变换
Y(1)=[];%去掉零频分量
n=length(Y);%计算频率个数
power=abs(Y(1:n/2)).^2/(length(Y).^2);%计算功率谱
freq=100*(1:n/2)/length(Y);%计算频率,因为步长为0.01,而不是1,故乘以100
plot(freq,power,'k')
拷贝别人的程序算得,但是有错误Warning: Integer operands are required for colon operator when used as index.不知怎么回事?

[ 本帖最后由 ChaChing 于 2010-1-12 18:21 编辑 ]
回复
分享到:

使用道具 举报

发表于 2010-1-11 20:44 | 显示全部楼层

回复 楼主 ypp207 的帖子

n/2会不会不是整数?
 楼主| 发表于 2010-1-12 12:25 | 显示全部楼层

回复 沙发 ChaChing 的帖子

呵呵,果然是,,谢谢,改成round(n/2)就不会 有错误了,这样看来这个功率谱程序是不是具有通用性?对这个不懂,指教。对时域求频域有哪些意义?

评分

1

查看全部评分

发表于 2010-1-12 18:24 | 显示全部楼层

回复 板凳 ypp207 的帖子

建议去信号处理版块逛逛, 会有收获的!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-3 23:51 , Processed in 0.086961 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表