基于Matlab的时间序列分析
第29眷第12期
VoL29
计算机工程
ComputerEngineering
2003年7月
July2003
文献标识码l
№i2
・开发研究与设计技术・
文章螭号:1000--3428(2003)12—_017m珈3
A
中啊分粪号t
TP39
基于Matlab的时间序列分析和动态数据建模
董吉精。,刘橙弹,尉恚爿},沈I耐型,周晓东1
(1烟台海军航空工程学院自动控制系,烟台26400I:2大连深蓝泵业有限公司,大连11603I)
攮薹介绍fMatab语言的特点,结合火控精度测定数据实例着重讨论了其在时间分析和动态数据建模方面的优越性以及应用。在实际工作中使用Matlab可以大大提高试验的效率。关t诃:Matlab;时间序列;动态数据建模
Analvsesand
(1
Modeling
2
ofTimeSeriesBased
on
Matlab
DONGYanzhi。,LIUSongtao。,WEI
Zhipin92,SHENTongsheng‘,ZHOUXiaodong。
26400I:
AutocontrolDepartment,YantaiNavalAeronauticalEngineeringInstitute,Yantai
DalianDeepbluePumpCOLtd
Dalian¨603¨
whenitisappliedto
[Abstract]This
paperintroducescharacteristicofM乱lablanguage,discussesitssupenority
The
use
ana哆sesandmodeloftimeseriesby
exampleoffirecontrolsystemaccuracymeasuredataemphaticallyofMatlabinrealwork
c卸greatlly
raisetest’s
efficiency
IKeywords】Matlab:Time
series;Dynamicdata
modeling
时问序列是指有序的随机数据,实际上是离散的随机过是产生一个曲线的平滑估计,然后把它从数据中减掉,这样识别野点就容易得多了。该方案利用“中位数”是均值的鲁棒(robuSt)估计这个事实。其步骤为:
(I)从x(i)构造一个新序j;Ilxl(i),方法是取x(1),一,x(5)的中位数作为xI(3),然后台去x(t)加入x(6)取中位数得xl(4),依此类推,直到加入最后一个数据。换言之,总是在相邻5个数据中择取中位数。显然,xI(i)的项数比真x(i)项数少4项。
(2)用类似的方法在xl(i)的相邻的3个数据中择取中位数构成序列x2(i)。
(3)最后是由序列x2q:j)按如下方式构成序列x3(i):
x3(i)-x2(i—I)/4+x2(i)/2+x2(i+I)/4(这是一海宁平滑滤波器)。
程,有时又称为动态数捌”。时间序列的滤波、平滑、去
卷、预报和控制的基础和前提是建模。建模是时间序列分析中的重要分支。在建模中,往往要进行大量的数学计算。目前流行用Fortran、C语言等编制计算程序,既需要对有关算法有深刻的了解,还需要熟练地掌握所用语言的语法及编程技巧。对多数科学工作者而言,同时具备这两方面才能有一定困难。Matlab语言被称为是一种“演草纸式的科学计算语言”口】,它的强大计算和模拟功能使得许多应用领域的各种计算、演算、模拟等工作变得相当简单,是一个实时进行建模和仿真的有力工具。本文着重讨论了基于Matlab的时间序列分析和动态数据建模问题,并结合火控精度测定数据实例讨论了Matlab4年这方面的优越性和实际应用。
1
分析序列xCi)-x3(i),看是否有Ix(i)・x3(i)}>k(预定值),如果有,则用一内插值代替x(i)。剔除野值后的仿真图像见
图l。
Ⅲ%b*Ⅲ^‘∞目*
Matlab语育的特点
被称为第四代计算机语言的Matlab,利用其丰富的函数
资源,使编程人员从烦琐的程序代码中解放出来。Matlab用更直观的、符合人们思维习惯的代码,代替了Foaran和C语言的冗长代码,给用户带来最简洁的程序开发环境。Matlab语言简洁紧凑,使用方便灵括,库函数极其丰富,程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数是由本领域
的专家编写的,用户不必担心函数的可靠催‘”。可以说,
用MatlabJ挂行科学开发是站在专家的肩膀上。
圈l慧势疆■除后圈
2
2时间序列分析和动态敦据建模2.I采样藏据的检验和璜处删”
在实际问题中,合理地选择采样问隔得到大量的量测数据之后,还要进行初步的整理和必要的检验,以期去粗取精,为进一步深入分析提供较好的依据和参考。这些工作都属于预处理。包括对量测数据进行均值、方差和概率直方图分析、数据的正态性检验、数据的独立性检验、平稳趋势的检验、90除野点和提取趋势项。
21
1.2量测数据的均值、方差和概率直方图分析
量测数据的均值、方差和概率直方图分析可以直接调
用Matlab函数:mean.m、varm和histfitm,过程非常简洁有效,仿真结果见图2。
2I
3提取趋势项
在许多实际问题中,由量测直接得到的随机序列大多数
柞者筒介:董言治(1972--),男.博士生,研究方向为红外成像、
智能制导、图像处理等;刘松涛,博士;尉志苹,本科生;圣,博士、副教授;周晓东,教授收稿H捆:2002-06-20
沈同
1野点剔除
文中采用的野点剔除方法是Tukey提出的,其基本思想
一170一
万方数据
并不平稳,而是呈现出明显的趋势性或季节性。这时需要用更一般的模型来描述,即取Xt=ut+Yt,其中ut表示xt中随时间变化的均值,它往往可以用多项式、指数函数、正弦函数等描述,而Yt表示零均值平稳过程,可以用ARMA模型拟合。做了这样的分解之后,可以用处理平稳过程的方法来分析Yt了。Matlab提供了提取趋势项函数detrendm和dtrendm。使用它们可以方便地提取趋势项。如果不仅要分析Yt,而且也需要知道ut的具体形式,那么就可以采用Matlab提供的多项式函数polyfitm去拟台量测数据ut。然后对残差进行分析,该残差序列可认为是平稳过程,通过对平稳序列的分析处理,可以得出Yt的估计值,于是就可以对xI进行估计了。仿真的残差图像见图3。
缱-I%A目n嘲像
04
03102
‘ol
。卅
圈2统计囊谱两纛阻
H*
。’
一
-020
al
。o峙
面
南
面__’i广一1知
圈3巍差圈■
2.2时阔序列时闻域模型的参敦估计和楱型确定以及实用性
的检验
文中采用AR模型辨识Ⅲ,其原理是由低阶开始对系统建模然后逐渐增加模型的阶数,并用F检验进行自动筛选,同时确定系统的模型参数。辨识步骤如下:
(1)利用递推最小二乘{去估计参数和模型阶数
其思想是:
对于AR(P)模型x(t)=a14x(t—1)+十a矿x(t—p)+eg)可得递推最小二乘法公式:
;(f+I):;(,)+K(f+1)[x(f+1)一tp’(f+1);(,)】
(2)利用F检验进行筛选,确定模型的阶数在F检验中,H0:AR(p-1)模型是合适的(Rpap20);
HI:AR(p一1)模型是不合适的(即ap00);
统计:匿F=(AI-A0)+(N-p)/A0服从分布FO,N-P),其中
AO是AR【p)的残差平方和,AI捏:AR(p-1)的残差平方和,N是量测数据数目。给定显著性水平a,查F分布表可得临界值Fa。若F>Fa,则拒绝HO,即AR(p一】)模型是不合适的,否厨0接受H0。前者称为F检验显著,后者为不显著。文章中给出了Matlab的实现程序及仿真图像(图4)。
万
方数据圈4F棱t圈
2.3
ARMA楱量的特性和时问序列的璜报
从系统分析与数据处理来讲,主要有4个特性:(1)
Green函数(单位脉冲响应函数);(2)频率特性;(3)自协方差函数;(4)自谱函数。在Matlab中没有相应的Green函数,需要自行构建。然后再用构建的函数结合语言自身的函数进行其余3个特性的分析和时间序列的预报。运用Matlab程序仿真的特性图像见图5~图8。
啊8白膏西致
j7I
3时间序列分析和动态数据建模Matlab实现程序
文章采用测试机载火控精度时所量测的数据进行建模和分析。ARMA模型估计和F检验法的Matlab程序如下。
%模型估计及F检验Matlab主程序
RSS=0:
end
4结论
通过上述图像就可以对被测系统进行快速、准确的分析进而得出最终结论了。由以上讨论可知,通过简单的Matlab命令可以完成其它高级计算机语言中使用许多编码才能完成的任务。在实际工作中使用Matlab可以大大提高试验的效率,快速实现研究中的新设想,并可用来实时处理工程上的一些问题。随着版本的不断提高,Matlab的功能会越来越强大,应用范围越来越广。
tiJ,:;lt:献
I【美】汉密尔顿靳云汇译时间序列分析fMl北京:中国社会科学出版社,19992李涛,贺勇军,刘志俭等MatlabZ具箱应用指南一一应用数学篇IM]北京:电子工业出版社,2000
3刘卫国科学计算与Magab语言IM]北京:中国铁道出版社,
2000
mrFl:Nl小1.1
Yt=Y“)
Xt;X(t,1j
Ktl=”Xt/f1+Xt…P
V【l=V+Ktl
X【).
PI】=(eyelN)一Ktl+Xt’)+P:
4(Yt・Xt。+V):
RSS=RSS“Yt—Xt”VtI)“2:d(t)=Yt—Xt’Vtl
P=Ptl:V=VtI:end
RS(N)=RSS;
vv(1:N.N);v.%阶N下的估计参数
endfor
4[瑞典]tfl特・安纳德,斯尤伯格Mafab5手册[M】北京:机械工业出版社.20005邓自立最优滤波理论及其应用:现代时间序列分析方法【M】哈尔滨:哈尔滨工业大学出版杜,2000
N=2:ordemlax
F(N)=(Rs(N-1)一RS(N))+(Nl-N-N)/RS(N
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
(上接第124页)
LC,如果用LC遍历时,节点不存在,则初始化一个新节点,并把其插入四叉树中,如果存在则把该过滤器添加到该节点的过滤器集合中,直到LC用尽。
过滤器的匹配过程也与此类似。(1)数据结构构建、更新过程的伪代码
rootNode=lnitQuadTreeRoot(),/j叮始化四叉树while(FisnotNull)f//F为过滤器集合
f=Fetch(F1//从F中取走一个过滤器f
IastNode=rootNode
LC=Tail(LC)//让LC等于原来Lc去除开始两BI
currentNode=SelectNode(IastNode,selectCode)/肛宣择分支
if(currentNode—NULL){//如果节点不存在,构建新节点
Goto:end//匹配结束
else{
currcntFilter=CalculateBMP(currentNode,p)
igmatchPortNomber(currentFiIter,p)){
matchFiIter=currentFilter∥如果端口匹配为真,
//表明匹配到得到一个更长前缀的过滤器,因为树越深,表明IP前
,膜相匹配的位数越多
,
LC;CalculateLocationCode(f1//74过滤器竹十算Lc
while(Lenth(LC)o=0){
}
sdectCode=Head(LC)III#LLC的开始两BIT作
//为四叉树的分支选择码
LC=Tail(LC)//让Lc等于原来LC去除开始两BIT
currentNode=SelectNode([astNode.selectCode)//选分支
ifI
lastNode=cttnrentNode
:end
4结语
本文通过对基于空间分解技术的二维数据包分类算法AQT的改进,在不改变其空间复杂度o(n)和时问复杂度O(hlogN)的情况下,实现了五维数据包的快速分类和过滤器表的更新。但是算法对于五维数据包的每个域的类型有一定的要求,在通用性方面有待改进,在平均查找性能方面也有改进空间。
参考文献
1
BuddhikotforFastonal2
currentNode==NULL){11女11果节点不存在,构建新节点
currentNode=BuildQuadTreeNode()
)
lastNode=CUl.nentNode
}
1nsenProlecIP堆nx{laslNode)/『把未用尽那一维前缀作投影插入,,前缀数据结构中
lnsertPortNumber(1astNode
1//把过滤器的两个端El域插入节点
}
M.SuriS.WaldvogelM
SpaceDecomposition
Techniques
(2)数据包和过滤器匹配过程的伪代码
1astNode=tootNode
Layer-4SwitchingIn:ProceedingsoftheIFlP
oN
SixthIntemati-
Workshop
ProtocolsforHighSpeedNetworks,1999
Matching:Algorithms,Analysis,and
of
ElectricalEng,ETH,Zurich,
matchFilter=NULL//初始化匹配的过滤器cu唧niF)Iter=NULL//j刃始化一个中间过滤器LC=CaIcuhteLocationCode(P
while(Lenth(LC)}0){
WaldvogelMFastLongestPrefixD
Applications[Ph
2002.073
Dissertation】Dept
1/附数据包P计算Lc
http://wwwnortelnetworkstom/cotporate/news/newsreleases/2000d/I20
0000747
dellorohtml
l
seIectcode=Head(LC)//取Lc的开始两BIT,作为四叉树
,/的分支选择码
172
万方数据
基于Matlab的时间序列分析和动态数据建模
作者:作者单位:刊名:英文刊名:年,卷(期):被引用次数:
董言治, 刘松涛, 尉志苹, 沈同圣, 周晓东
董言治,刘松涛,沈同圣,周晓东(烟台海军航空工程学院自动控制系,烟台,264001), 尉志苹(大连深蓝泵业有限公司,大连,116031)计算机工程
COMPUTER ENGINEERING2003,29(12)12次
参考文献(5条)
1.汉密尔顿;靳云汇 时间序列分析 1999
2.李涛;贺勇军;刘志俭 Matlab工具箱应用指南 20003.刘卫国 科学计算与MATLAB语言 20004.帕特-安纳德;斯尤伯格 MATLAB5手册 2000
5.邓自立 最优滤波理论及其应用:现代时间序列分析方法 2000
本文读者也读过(4条)
1. 韩路跃.杜行检.HAN Lu-yue.DU Xing-jian 基于MATLAB的时间序列建模与预测[期刊论文]-计算机仿真2005,22(4)
2. 王国锋.王子良.王太勇.王双利 Matlab在时间序列分析中的应用[期刊论文]-应用科技2003,30(5)3. 谭赟 时间序列分析模型构建与MATLAB实现[期刊论文]-科技资讯2009(26)
4. 李兴绪.崔建福 MATLAB在金融时间序列分析及建模中的应用[期刊论文]-计算机工程与科学2004,26(7)
引证文献(12条)
1.周小程.陈健.马向玲.范洪达 基于SAS的火控精度时间序列分析[期刊论文]-兵工自动化 2010(1)2.刘薇.常振海 Matlab在非参数自回归模型中的应用[期刊论文]-宁夏师范学院学报 2010(6)3.郭雪.王彦波 基于ARMA模型对沪市股票指数的预测[期刊论文]-时代经贸(学术版) 2006(z3)4.陈国强.赵俊伟.黄俊杰.刘万里 基于Matlab的AR模型参数估计[期刊论文]-工具技术 2005(4)
5.董言治.周晓东.娄树理.陈永刚.沈同圣 MATLAB在运用系统建模处理南海气象数据过程中应用[期刊论文]-成都信息工程学院学报 2004(1)
6.刘辉.潘迪夫.李燕飞 基于时间序列分析的机车振动信号建模和预测[期刊论文]-铁道机车车辆 2007(4)7.马媛.于军琪.杨柳.杨创业.王磊 大型公共建筑能耗动态模型的研究与应用[期刊论文]-计算机工程与应用2011(16)
8.黄昭文.冯穗力.叶梧.庄宏成 基于小波变换和AAR模型的WMN流量预测方法[期刊论文]-科学技术与工程 2009(10)9.吴涓.宋爱国.李建清 基于时间序列的虚拟接触力的建模方法研究[期刊论文]-东南大学学报(自然科学版)2005(2)
10.王洋 基于时间序列分析的IP语音收入预测[学位论文]硕士 200411.叶雨清 桥梁健康监测信息模式分析与模型预测[学位论文]硕士 200612.韩志清 基于时间序列分析的设备维修模型研究[学位论文]硕士 2006
本文链接:http://d.g.wanfangdata.com.cn/Periodical_jsjgc200312069.aspx