摘自《捷联惯导系统》第二讲:时间序列建模
在惯性导航系统中,为了减小陀螺随机误差对系统精度的影响,有效可行的办法是采用滤波技术对随机误差进行实时补偿。实时补偿的前提是已知随机误差的模型,为此,需要事先对陀螺的随机噪声进行必要的数学处理,建立适合于在线补偿的数学模型。
陀螺的随机噪声一般是有色噪声,即非平稳的随机过程,处理这类随机过程较成熟的建模方法是时间序列分析法。该方法是针对一组离散随机数据序列,进行时域和频域内的统计特性分析,求出实际物理系统的统计特性,并将随机数据浓缩成一个简单的随机差分模型。
一:平稳性检验
逆序法:
对于测试数据记录y1,y2,...yn,将其分成M段,然后求各段的均值(或方差值),得到一个大致不相关的均值(或方差值)序列x1,x2,...xM。对于下标为i的xi,每当出现 xj>xi(j>i,i=1,2,...M-1)时就定义为xi的一个逆序,与xi相应的逆序的个数Ai称为xi的逆序数。序列x1,x2,...xM-1的逆序总数定义为
以随机整数序列出现的的均值与方差分别为:
统计量u服从近似的N(0,1)分布。u的表达式为:
平稳性的判断:如果值处在±2之内,则可接受序列无趋势的假设(在0.05显著水平上);否则拒绝该假设。 A很大时,表明序列均值(或方差)有上升趋势,很小时,表明序列均值(或方差)有下降趋势。
(1)为了验证逆序法的有效性,这里写了一段临时实验用的matlab代码:用正态分布序列实验
function main clc; clear; serial = randn(10000,1); R = GenInverseFunc(serial); figure(1); plot(serial); figure(2); plot(R); Rmean = mean(R); Rvar = var(R); disp(['均值为:' num2str(Rmean) ' 方差为:' num2str(Rvar)]); function R = GenInverseFunc(serial) MinSectionNum = 10; SerialLen = length(serial); MaxSectionNum = floor(SerialLen/5); MinLenPerSection = floor(SerialLen/MinSectionNum); if MinLenPerSection<10 msgbox('时间序列长度太小,无法准确分析'); return; end for k=MinSectionNum:MaxSectionNum count = CalInverseOrderByMean(serial,k);%%%也可以用方差分析 R(k) = (count+0.5-k*(k-1)/4)/sqrt(k*(2*k*k+3*k-5)/72); end function A = CalInverseOrderByMean(serial,k) Section = cell(k,1); len = floor(length(serial)/k); for index = 1:k Section{index}=serial(1+(index-1)*len:index*len); end for index = 1:k SectionMean(index)=mean(Section{index}); end a = zeros(k,k); for i=1:k-1 for j=i+1:k if SectionMean(j)<SectionMean(i); a(i,j)=1; end end end [A,an]=size(find(a==1)); function A = CalInverseOrderByVar(serial,k) Section = cell(k,1); len = floor(length(serial)/k); for index = 1:k Section{index}=serial(1+(index-1)*len:index*len); end for index = 1:k SectionVar(index)=var(Section{index}); end a = zeros(k,k); for i=1:k-1 for j=i+1:k if SectionVar(j)<SectionVar(i); a(i,j)=1; end end end [A,an]=size(find(a==1));
结果如下:
输入序列:
逆序列归一化:
均值方差:
均值为:-0.62828 方差为:0.10372
疑问:正态分布随机序列应该是平稳信号啊,为什么逆序法检验得到的归一化的逆序列不满足标准正态分布?
如果满足正态分布的话,下面的事情就是用假设检验去论证,在0.05的显著性水平下,u的置信度区间是不是[-2,2]?如果是,说明原序列为平稳信号序列,否则不是。