声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1198|回复: 1

[其他] 用ARMA模型对信号进行延拓

[复制链接]
发表于 2014-10-9 10:05 | 显示全部楼层 |阅读模式

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

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

x
请问有了解ARMA模型的吗?有没有工具箱或者资料之类的?我想用ARMA模型对简单的数据进行预测,从而在数据序列的两端增加所需要的长度。
举个例子:比如信号sig=cos(2*pi*4*t);   t=[0,5]  现在想用t=[0,5]这段数据把t=[5,6]这段数据回归出来,程序如下:
clc;
clear all
close all
fs=1000;
T=0.95;
t=-T:1/fs:T;
sig1=cos(2*pi*8*t);
sig2=cos(2*pi*4*t);
x=sig1+sig2;

predictLen=0.2;                              %%设定预测长度
l_point=predictLen*fs;                        %预测样本数

r11=autocorr(x);
r12=parcorr(x);
da=diff(x);
r21=autocorr(da);
r22=parcorr(da);
n=length(da);
for i=0:3
    for j=0:3
spec=garchset('R',i,'M',j,'Display','off');
[coeffX,errorsX,LLFX]=garchfit(spec,da);
num=garchcount(coeffX);
[aic,bic]=aicbic(LLFX,num,n);
fprintf('R=%d,M=%d,AIC=%f,BIC=%f\n',i,j,aic,bic);
    end
end
r=input('R=');
m=input('M=');
spec2=garchset('R',r,'M',m,'Display','off');
[coeffX,errorsX,LLFX]=garchfit(spec2,da);
[sigmaForecast,w_Forecast]=garchpred(coeffX,da,l_point);
x_pred=x(end)+cumsum(w_Forecast);

x_pred为预测的值,但是效果不理想,图示:

怎么改进呢,效果不太好呢

延拓后效果图

延拓后效果图
回复
分享到:

使用道具 举报

发表于 2014-10-9 14:57 | 显示全部楼层
采用数据预测延拓的效果均不是很理想,包括支持向量机和神经网络。预测较短数据还凑合,稍微多点效果就差了。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-17 17:33 , Processed in 0.103890 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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