MATLAB在时间序列分析中的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《MATLAB语言》课程论文

MATLAB在时间序列分析中的应用

姓名:***

学号:***********

专业:通信工程

班级:10级通信一班

指导老师:***

学院:物理电气信息学院

完成日期:2011.12.10

MATLAB 在时间序列分析中的应用

(李伟 12010245258 2010级通信1班)

[摘要]Matlab 强大的科学计算和可视化功能使其在各个领域中得到了广泛的应用.采用Maflab 进行时序列分析可以极大地简化编程工作,并具有界面友好、操作方便的特点.介绍了使用Matlab 进行时间序列分析的基本方法和步骤,并通过实例进行了说明.

[关键词]Matlab 时间序列 谱分析

一、问题的提出

1984年美国的MathWorks 公司推出了Mat —lab ,在许多领域得到了充分的利用.其强大的科学计算与可视化功能,开放式的可扩展环境以及其各种功能强大的工具箱(ToolBox),使得它成为计算机辅助设计与分析、算法研究和应用开发的基本工具和首选平台.时间序列分析是采用参数模型对观测得到的有序随机数据进行分析的一种处理方法,通过时间序列可以对系统的动态特性进行分析、对系统的状态进行预测,从而为系统的状态监控和故障诊断提供依据.Matlab 工具箱中包含了许多函数,借助于这些函数可以方便地实现系统的时间序列分析.

二、时间序列分析原理及实现

时间序列分析(autoRegressive movingAverage)是对有序的随机数据(信号)处理的一种方法,它的出发点是承认数据的有序性和相关性,通过数据内部的相互关系来辨识系统的变化规律,它的建模方法是将系统的输出看作是在白噪声输入下的响应.具体地讲,就是针对一组试验数据,建立系统的参数模型,ARMA(m ,n)的参数模型可以表示为:

10()()()m n

x t x t t τλτλϕτϕσλ==+-=-∑∑ (1) 式中:{ (t), (t 一1), (t 一2)⋯ 。 (t —m)}为有序的时间序列,{ (t), (t 一1),⋯ , (t —A)}为有序的白噪声序列,方程的左边为系统的自回归部分,它反映了系统的固有特性,右边表示系统的滑动平均部分,当0τϕ=时为MA 模型,当0λϕ=时为AR 模型.辨识系统模型参数的方法有很多种,常用的方法主要有最dx-乘法、辅助变量法、Marple 法等.根据不同的需要和研究对象可以采用不同的建模方法.在建立了系统的模型后,可以对系统的状态进行预测、分析预测误差、进行谱分析.关于这些算法的基本原理,可以参考文献[2~4],这些在Matlab 中都提供了相应的函数.

采用Matlab 进行时间序列分析主要包括4步.

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 模型则与连续或离散状态空间参数模型对应,它们的信息都以矩阵的形式存储,但模型信息数据的组织结构不同.在时间序列分析中,常用的是第一种数据模型,其结构可以表示为:

1111()()()()()()()()()()()

n nu nu n B q B q C q A q y t u t nk u t nk e t F q F q D q =-+Λ+-+ (2) 公式(2)中,A(q)、B(q)、F(q)( =1,2⋯ .^n)、C(q)、D(q)为平移算子q 的多项式,其阶次分别为M 、nbi 、nfi( =1,2⋯ .,n)、ItC 、nd ,nix 为系统的输入变量个数.设n 为所有多项式的阶次之和,令r=max(凡,7,6+3nu),则系统的输入输出The —ta 模型格式为如下定义的(3+凡)X r 矩阵,矩阵中每行的内容表示为:

1)矩阵的第1行为估计方差,采样时间 ,输入个数眦,各个多项式的阶次M 、nb 、ItC 、nd 、nf,nk ;

相关文档
最新文档