功率谱程序有错
function dx=duffing(t,x);mu=0.168; F=0.15; w=1;
dx=;
%要调用duffing.m
=ode45('duffing',,,[]);
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 编辑 ]
回复 楼主 ypp207 的帖子
n/2会不会不是整数?回复 沙发 ChaChing 的帖子
呵呵,果然是,,谢谢,改成round(n/2)就不会 有错误了,这样看来这个功率谱程序是不是具有通用性?对这个不懂,指教。对时域求频域有哪些意义?回复 板凳 ypp207 的帖子
建议去信号处理版块逛逛, 会有收获的!
页:
[1]