matlab编程问题:ARMA和MUSIC

matlab编程问题:ARMA和MUSIC,第1张

主要问题包括:

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])


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7785103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存