《MATLAB语言》课程论文
MATLAB在时间序列分析中的应用
姓名:李伟
学号:12010245258
专业:通信工程 班级:10级通信一班 指导老师:汤全武
学院:物理电气信息学院 完成日期:2011.12.10
MATLAB在时间序列分析中的应用
(李伟 12010245258 2010级通信1班)
[摘要]Matlab强大的科学计算和可视化功能使其在各个领域中得到了广泛的应用.采用
Maflab进行时序列分析可以极大地简化编程工作,并具有界面友好、操作方便的特点.介绍了使用Matlab进行时间序列分析的基本方法和步骤,并通过实例进行了说明.
[关键词]Matlab 时间序列 谱分析
一、问题的提出
1984年美国的MathWorks公司推出了Mat—lab,在许多领域得到了充分的利用.其强大的科学计算与可视化功能,开放式的可扩展环境以及其各种功能强大的工具箱(ToolBox),使得它成为计算机辅助设计与分析、算法研究和应用开发的基本工具和首选平台.时间序列分析是采用参数模型对观测得到的有序随机数据进行分析的一种处理方法,通过时间序列可以对系统的动态特性进行分析、对系统的状态进行预测,从而为系统的状态监控和故障诊断提供依据.Matlab 工具箱中包含了许多函数,借助于这些函数可以方便地实现系统的时间序列分析.
二、时间序列分析原理及实现
时间序列分析(autoRegressive movingAverage)是对有序的随机数据(信号)处理的一种方法,它的出发点是承认数据的有序性和相关性,通过数据内部的相互关系来辨识系统的变化规律,它的建模方法是将系统的输出看作是在白噪声输入下的响应.具体地讲,就是针对一组试验数据,建立系统的参数模型,ARMA(m,n)的参数模型可以表示为:
x(t)???x(t??)?????(t??) (1) ????1?0mn式中:{ (t), (t一1), (t一2)? 。 (t—m)}为有序的时间序列,{ (t), (t
一1),? , (t—A)}为有序的白噪声序列,方程的左边为系统的自回归部分,它反映了系统的固有特性,右边表示系统的滑动平均部分,当???0时为MA模型,当???0时为AR模型.辨识系统模型参数的方法有很多种,常用的方法主要有最dx-乘法、辅助变量法、Marple法等.根据不同的需要和研究对象可以采用不同的建模方法.在建立了系统的模型后,可以对系统的状态进行预测、分析预测误差、进行谱分析.关于这些算法的基本原理,可以参考文献[2~4],这些在Matlab中都提供了相应的函数.
采用Matlab进行时间序列分析主要包括4步.
2
1)数据的读人
Matlab采用类似于C语言的方式进行数据的读人,可以直接从数据文件中将数据读到一个矩阵中. fid=fopen(fileName,,r,); %打开一个文件进行读写 data=fscanf(fid,'g'); % 将数据读人到data中 status=fclose(fid); % 释放文件句柄 2)建立模型
在获得所要分析的数据后可以对数据进行建模,本文主要介绍2个函数: th = ar(y,n); h = ivar(y,n); ar(y,n)函数采用最小二乘法进行模型参数的估计,该函数要求输入噪声为白噪声,当输入噪声为色噪声时,不能保证模型参数的估计值的无偏性和一致收敛性.而ivar(y,n)则采用最优辅助变量的方法进行参数的估计,计算得到的参数模型存放在th中.th中的数据采用Matlab独有的THETA格式模型进行定义.通过th2arx()函数可以得到模型参数和THETA格式的转换. 3)模型分析
模型的分析包括模型的仿真、预测及误差分析和谱分析. e= pe(y,th); y1= idsim(y,th); y1= predict(y,th); y2=th2ff(th);
pe(y,th)用于计算模型实测值与估计值之间的误差,误差值存放在e中. idsim (y,th)对输入的数据进行仿真,并将仿真结果存放在y中.dict(y,th)则针对模型的输人数据和模型格式进行预测,并将预测值存放在Y 中,th2f(th)可以实现求数据的频响函数. 4)图形输出
Matlab提供了强大的数据输入输出的功能.对数据的分析结果,可以采用图形的方式进行直观的表示,常用的针对时间序列分析的绘图函数有: Plot(x,y1,x,y2 ),在同一个图中对分析结果进行表示. Bodeplot(e),直接画出波德图. Ffplot(e),画频谱图. Nyqplot(),画奈氏图.
三、Theta模型参数
Theta格式是Matlab系统辨识工具箱中通用的参数模型格式,Theta模型的定义可以分为两种,即基于输入输出表示的Theta模型和基于状态空间表示的Theta模型.基于输入输出的Theta模型可以对应各种输入输出参数模型,如AR、ARX、ARMA、BJ等;基于状态空间表示的Theta模型则与连续或离散状态空间参数模型对应,它们的信息都以矩阵的形式存储,但模型信息数据的组织结构不同.在时间序列分析中,常用的是第一种数据模型,其结构可以表示为:
A(q)y(t)?B(q)B1(q)C(q)u1(t?nk1)???nunu(t?nknu)?e(t) (2) F1(q)Fn(q)D(q)公式(2)中,A(q)、B(q)、F(q)( =1,2? .^n)、C(q)、D(q)为平移算子q的多
3