时间序列是指有序的随机数据,实际上是离散的随机过程,有时又称为动态数据[1]。时间序列的滤波、平滑、去卷、预报和控制的基础和前提是建模。建模是时间序列分析中的重要分支。在建模中,往往要进行大量的数学计算。目前流行用、语言等编制计算程序,既需要对有关算FortranC 法有深刻的了解,还需要熟练地掌握所用语言的语法及编程技巧。对多数科学工作者而言,同时具备这两方面才能有一定困难。语言被称为是一种“演草纸式的科学计算语Matlab 言”[2],它的强大计算和模拟功能使得许多应用领域的各种计算、演算、模拟等工作变得相当简单,是一个实时进行建模和仿真的有力工具。本文着重讨论了基于的时间序Matlab 列分析和动态数据建模问题,并结合火控精度测定数据实例讨论了在这方面的优越性和实际应用。Matlab 语言的特点1 Matlab 被称为第四代计算机语言的,利用其丰富的函数Matlab 资源,使编程人员从烦琐的程序代码中解放出来。用Matlab 更直观的、符合人们思维习惯的代码,代替了和语FortranC 言的冗长代码,给用户带来最简洁的程序开发环境。Matlab 语言简洁紧凑,使用方便灵活,库函数极其丰富,程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数是由本领域的专家编写的,用户不必担心函数的可靠性[3,4]。可以说, 用进行科学开发是站在专家的肩膀上。Matlab 时间序列分析和动态数据建模2 采样数据的检验和预处理2.1 [1] 在实际问题中,合理地选择采样间隔得到大量的量测数据之后,还要进行初步的整理和必要的检验,以期去粗取精,为进一步深入分析提供较好的依据和参考。这些工作都属于预处理。包括对量测数据进行均值、方差和概率直方图分析、数据的正态性检验、数据的独立性检验、平稳趋势的 检验、剔除野点和提取趋势项。 野点剔除2.1.1 文中采用的野点剔除方法是提出的,其基本思想Tukey 是产生一个曲线的平滑估计,然后把它从数据中减掉,这样识别野点就容易得多了。该方案利用“中位数”是均值的鲁棒估计这个事实。其步骤为:(robust) 从构造一个新序列,方法是取,⋯的中位数(1)x(i)x1(i)x(1),x(5) 作为然后舍去加入取中位数得,依此类推,直到x1(3),x(1)x(6)x1(4) 加入最后一个数据。换言之,总是在相邻个数据中择取中位数。5 显然,的项数比真项数少项。x1(i)x(i)4 用类似的方法在的相邻的个数据中择取中位数构成序(2)x1(i)3 列。x2(i) 最后是由序列按如下方式构成序列:(3)x2(i)x3(i) 这是一海宁平滑滤波器。 x3(i)=x2(i-1)/4+x2(i)/2+x2(i+1)/4 () 分析序列,看是否有>预定值,x(i)-x3(i)|x(i)-x3(i) |k() 如果有,则用一内插值代替。剔除野值后的仿真图像见x(i) 图。1 图趋势项剔除后图1 量测数据的均值、方差和概率直方图分析2.1.2 量测数据的均值、方差和概率直方图分析可以直接调 用函数:、和,过程非常简洁有Matlabmean.mvar.m histfit.m 效,仿真结果见图。2 提取趋势项2.1.3 在许多实际问题中,由量测直接得到的随机序列大多数 作者简介:董言治-,男,博士生,研究方向为红外成像、 (1972) 智能制导、图像处理等;刘松涛,博士;尉志苹,本科生;沈同 圣,博士、副教授;周晓东,教授收稿日期:2002-06-20 基于的时间序列分析和动态数据建模Matlab 董言治1