Allan⽅差:标准allan⽅差求取和重叠(Overlaping)⽅差求取
如何计算各个参数值!
Allan介绍:
对于随机误差,利⽤常规的分析⽅法,例如计算样本均值和⽅差并不能揭⽰潜在的误差源,另⼀⽅⾯,虽然⾃相关函数和功率谱密度函数分别从时域和频域描述了随机误差的统计特性,但是在实际⼯作中通过这些函数加以分析将随机误差分离出来是很困难的;Allan⽅差法是20世纪60年代由美国国家标准局David Allan提出的,它是⼀种基于时域的分析⽅法,不仅可以⽤来分析光学陀螺的误差特性,⽽且还可以应⽤于其他任何精密测量仪器.Allan⽅差法的主要特点是能⾮常容易对各种误差源及其对整个噪声统计特性的贡献进⾏细致的表征和辨识,⽽且便于计算,易于分离。它提供了⼀种识别并量化存在于数据中的不同噪声项。
Allan⽅差分析主要⽤于分析陀螺量化噪声、⾓度随机游⾛噪声(⾓速率⽩噪声)、零偏不稳定性、⾓速率随机游⾛(⾓加速度⽩噪声)和速率斜坡(⾓速率常值趋势项),等五种典型误差。
其中在组合导航中,主要有⽤的是
(1)、⾓度随机游⾛系数(⾓速率⽩噪声):主要⽤于设置Q阵
(2)、零偏不稳定性系数(Bias Instability):主要⽤于设置⼀阶马⽒过程的⽅差
1、标准allan⽅差计算法
定义与计算:
(1)基于⾓速率测量值的ALLAN计算,此处以陀螺仪输出为例:
设以采样时间 τ0 对陀螺仪输出⾓速率进⾏采样,共采样N个点,把所获得的N个数据分成K组,每组包含M个采样点。
K=N/M,M<(N-1)/2;如下:
爱的箴言原唱
每⼀组的持续时间 τM=Mτ0 ,称之为相关时间,每⼀组的平均值为:
Allan⽅差定义为:
备注:此处的⽅差计算与⼀般我们所熟知的⽅差(概率统计中)计算不同,它每个样本不是与均值相
减,⽽是每个区间的均值与下⼀个区间的均值相减(这⾥的区间就是分组,即组与组之间相减)。
(2)基于⾓度增量测量值的ALLAN计算,此处以陀螺仪输出为例:
陀螺仪直接输出测量时刻的⾓度增量值:
设采样时间为 τ0 ,则⾓度增量测量值在离散时刻为tk=kτ0(k=1,2,……,N)上进⾏的;简记为θk=θ(kτ0 ,时刻tk与tk+τ之间的⾓速率为:
式中,τ=m*τ0,则有⾓度增量测量值定义的ALLAN⽅差为:
随机噪声的ALLAN⽅差分析结果图为:
ALLAN⽅差的估计精度:
在实际中,ALLAN⽅差估计是基于有限长度数据,估计精度依赖于独⽴数组(分组个数)的数量。设共有N个数据点,将其分成长度为M个
数据组,则ALLAN⽅差估计的百分⽐误差为:
上式表明:南京服装批发市场
在短τ中估算误差:即分组数量很多(M⽐较⼤),因此估算误差较⼩;艾灸的十大功效
如何设置桌面壁纸在长τ中估算误差:即分组数量很少(M⽐较⼩),因此估算误差较⼤;
从ALLAN双对数图中,也可以看出,图中左部分τ较⼩,allan估计误差较⼩;⽽在图的右部分τ较⼤,allan估计误差较⼤!
现在将标准ALLAN⽅差求解的程序附上:
1clear ; clc;clo all;
2% function [sigma, tau, Err] = avar(y0, tau0)
3% 计算Allan⽅差
4% 输⼊:y -- 数据(⼀⾏或列向量), tau0 -- 采样周期
5% 输出:sigma -- Allan⽅差(量纲单位与输⼊y保持⼀致), tau -- 取样时间, Err -- 百分⽐估计误差6% 作者: Yan Gong-min, 2012-08-22
7% example:
8 y0 = randn(100000,1) + 0.00001*[1:100000]';
9 tau0=0.1;
10% [sigma, tau, Err] = avar(y, 0.1);
11% [sigma, tau, Err] = avar(y0, tau0)
12 N = length(y0);
13 y = y0; NL = N;
14 for k = 1:100000
思乡的词15 sigma(k,1) = sqrt(1/(2*(NL-1))*sum([y(2:NL)-y(1:NL-1)].^2));
16 tau(k,1) = 2^(k-1)*tau0;
17 Err(k,1) = 1/sqrt(2*(NL-1));
18 NL = floor(NL/2);
19 if NL<3
20 break;
21 end
22 y = 1/2*(y(1:2:2*NL) + y(2:2:2*NL)); % 分组长度加倍(数据长度减半)
23 end
24 subplot(211), plot(tau0*[1:N], y0); grid
25 xlabel('\itt \rm/ s'); ylabel('\ity');
26 subplot(212),
27 loglog(tau, sigma, '-+', tau, [sigma.*(1+Err),sigma.*(1-Err)], 'r--'); grid
28 xlabel('\itt \rm/ s'); ylabel('\it\sigma_A\rm( \tau )');
运⾏结果:
参考链接:
Analysis and Modeling of Inertial Sensors Using Allan Variance
2、重叠⽅差计算法(Overlapping Allan)
重叠式和标准式的不同在于提⾼有限数据的利⽤率,具体如下图所⽰:Cluster中为3*τ;每⼀个Cluster之间的距离为τ;
⽰例代码(基于⾓度增量计算):
运⾏结果:1
clear ; clc;clo all;2
omega = randn(100000,1) + 0.00001*[1:100000]';3
fs=10; %频率4
pts=100; %组5
% [T,sigma]=allan(omega,fs,pts)6
[N ,M]=size(omega); %计算数据集⼤⼩7
雪兔多肉
n=2.^(0:floor(log2(N/2)))'; %最⼤数据集8
maxN=n(end);9
endLogInc=log10(maxN);10
m=unique(ceil(logspace(0,endLogInc,pts)))';11
t0=1/fs;12
T=m*t0;13
theta=cumsum(omega)/fs; %速率值变为⾓度增量14
sigma2=zeros(length(T),M);15
for i=1:length(m)16
for k=1:N-2*m(i)17
sigma2(i,:)=sigma2(i,:)+(theta(k+2*m(i),:)-2*theta(k+m(i),:)+theta(k,:)).^2;18
左旋肉碱怎么用end 19正经
end 20
sigma2=sigma2./repmat((2*T.^2.*(N-2*m)),1,M);21
sigma=sqrt(sigma2);22
%plot 23
loglog(T, sigma, '-+'); grid 24xlabel('\itt \rm/ s'); ylabel('\it\sigma_A\rm( \tau )');