主要问题包括:
1、变量x未定义。
2、函数MUSIC里面:
S=[S(257:512)S(1:256)]应为
S=[S(257:512) S(1:256)]另外,clearR未定义,不知道干什么用的,可以直接删掉。
3、函数ARMA里面,调用的Burg未定义。
然后编程实现这个模型,在matlab中建立一个arma(p,q).m文件。然后在命令行里输入main.m p=input('请输入p值') q=input('请输入q值') p=100 q=100 x=arma(p,q) %x 就是所要得到的数据 function x=arma满意请采纳%下面要对差分以后的序列进行拟合和预测,求出最好的阶数
z=[DXzeros(12,1)]
z=iddata(z)
test=[]
for p=1:12
for q=1:12
m=armax(z(1:200),[p q])
AIC=aic(m)
test=[testp q AIC]
end
end
for k=1:size(test,1)
if test(k,3)==min(test(:,3))
p_test=test(k,1)
q_test=test(k,2)
break
end
end
%拟合
m1=armax(z(1:200),[p_test q_test])
figure(5)
e = resid(m1,z)
plot(e)
set(gca,'Xlim',[0 ls])
figure(6)
subplot(2,1,1)
autocorr(e.outputdata)
subplot(2,1,2)
parcorr(e.outputdata)
set(gca,'Xlim',[0 ls])
%预测过程
pr=predict(m1,z,12)
po=pr.outputdata
figure(7)
plot(po,'r')
hold on
plot(y,'b')
set(gca,'Xlim',[0 ls])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)