Allan方差分析方法的直观理解

1. 什么是Allan方差

Allan方差是时频分析和惯性导航领域常用的一种误差分析方法,它有效地刻画了待研究的误差时间序列在不同时间尺度上的波动水平(不稳定性),并可根据不同时间尺度上的Allan方差值所构成的曲线的形状特征来辨识其中包含的随机过程模型。这就类似于我们用功率谱密度(PSD)来描述信号在不同频率尺度上的功率分布,并用PDS曲线来做系统模型辨识。Allan方差分析方法对中长期的随机波动具有很强的表现力,它完全可以作为一个通用的时间序列分析工具来推广到其它应用领域,就像PSD这样的频域分析方法和自相关这样的时域分析方法一样。

2. Allan方差有何优势

在我们对惯性导航器件(陀螺和加速度计)进行误差分析时,常采用Allan方差分析方法。这是当初从时频领域(高精度时钟的频率稳定性)借鉴来的一种时间序列分析方法[1],非常适合于对中长期波动(不稳定性)进行定量描述和分析,因此正是我们惯性器件误差分析所需要的。

与Allan方差相比,传统的误差指标往往是采用误差均值(反映整个误差序列有无宏观偏置)、标准差(反映整个误差序列的波动情况),以及方均根(RMS,可以认为是宏观偏置与波动情况的综合)。如下图所示,它们都是反映误差序列的整体情况的指标,其中含有短时间快速变化和长时间缓变的各个成份,无法细分出不同时间尺度上的误差波动情况。

1633699090796007238.png

Allan方差(阿兰方差或阿伦方差)则是将误差序列在某个指定的时间尺度上的波动情况进行了精确提取,其具体计算步骤如下:

  • 将整段误差序列按照你感兴趣的时间尺度的长度(例如1分钟)进行分块;
  • 每块求平均值;
  • 相邻块的平均值求差;
  • 将所有差值进行统计,得到其均方值,并乘以1/2。

这样就得到了对应于这个块长度(1分钟)的Allan方差值。(具体过程见下图)

1633699143061033929.png

这个计算过程看上去有点眼花缭乱,我对Allan方差这样一通操作的理解如下:

如果我们只对某一时间尺度上的误差(即误差波动)感兴趣的话,那么比这个时间尺度更小的细节变化(短时间快速跳动)和比这个时间尺度更大的宏观变化(长时间缓慢漂移)就都不关心了,希望在我们的误差指标中都被消除掉。而Allan方差是这样做到的:

  • 通过分块确定所要考察的时间块长度;
  • 利用块内求平均的办法把短于块长度的那些快速变化成份(细节)都抹掉;
  • 再利用相邻块求差的办法把长于两块长度的那些缓慢变化成份(宏观)都抹掉;
  • 最后对差值序列统计其均方值(这是处理任何随机样本的标准操作),这样统计出来的就是介于1倍块长度和2倍块长度这样一个很窄的时间尺度范围内的误差波动情况。

如果我们对误差序列的各个时间尺度上的成份都感兴趣的话,可以将块长度由短到长,“扫描”一遍,得出一组Allan方差值,然后画个“Allan方差 vs. 块长度”的曲线,这样就能全面反映被研究的误差序列的特性了。具体的,实际上是“Allan方差的开方(Allan Deviation) vs. 块长度”的双对数曲线,以便在更大的范围上有更强的表现力。以下是一张经典的高精度陀螺的Allan方差示意图。

1633699168280002381.png

从这根Allan方差曲线上,我们可以根据曲线的形状特征来识别出不同类型的随机误差(即随机过程模型)并提取其参数。例如:斜率为-1/2的直线段代表白噪声。具体可参见IEEE制定的一个关于陀螺测试的技术标准中的附录C内容[2]。这个附录中还给出了一个从Allan方差曲线中分析陀螺的多种随机误差的案例(如上图)。但我想提醒大家,实际的Allan方差曲线往往只能表现出少数两三个主要误差类型,因为其它误差都被这几个主要误差给淹没了。而由于我们在工程上关心的恰恰也就是主要误差源,因此我们并不受此困扰。

大家对Allan方差分析方法的理解可以类比于经典的功率谱密度(PSD)分析方法,只不过后者是描述误差序列在不同频率尺度上的成份,属于频域分析。这两种分析方法对于相同的随机模型是有比较明确的对应关系的,这在那个IEEE标准里也有严谨阐述。

既然如此,为什么我们在已有成熟的功率谱密度分析方法、自相关分析方法等经典的时间序列分析工具之外,还要引入Allan方差呢?我的理解是,PSD和自相关分析都是擅长于分析中短期误差(即中高频成份),而不适用于分析惯导(和时钟)这种看重长期稳定性的传感器。而Allan方差曲线恰恰对中长期时间尺度上的误差特性有很强的表现力。

前文提到了,对应于某个块长度的Allan方差是反映了1~2倍块长度这一狭窄时间尺度范围内的误差成份,那么能否给出一个时间尺度范围更大一些的误差指标,比如能反映1~M倍块长度范围内的误差成份呢?这就涉及到了一类更通用的样本方差分析方法,具体可以参考非常经典的文献[3]。

如下图所示,通用的样本方差分析方法与Allan方差不同之处是在分块、取平均之后,不是采取相邻块求差,而是截取连续M块求其标准方差,然后统计这些标准方差的样本均值,作为反映1~M倍块长度这个时间尺度区间的误差指标。这样就可以灵活地提取和评估我们所关心的任何时间尺度范围内的误差成份!

1633699204780075123.png

容易推导,Allan方差只是上述通用样本方差分析在M=2时的一个特例,如下式:

1633699228765059278.png

由于Allan方差取M=2这一最小值,因此它具有最高的时间尺度分辨率,对不微附件同时间尺度上的误差成份的刻画最细腻,因此被大家用得最多。

总的来看,Allan方差是一个相对而言直观形象、朴实无华的概念,它当初是在实践中针对高精度时钟稳定性分析的需求而提出的。我相信当我们对某个科研问题日思夜想、废寝忘食的时候,我们脑海中也会自然而然地迸发出类似的概念,来帮助我们解决面临的问题。但基于这种新概念、新指标来形成一套完整自洽的理论体系,则需要扎实的数学功底,不是每个人都能做到的。

理论上讲,Allan方差分析方法并不局限于对惯性器件和时钟误差的分析,也可推广到其它误差序列分析;而且它也不局限于是对误差序列进行分析,也可应用于任何时间序列的分析(例如建筑形变、地质演化等)。

本文希望能破除大家对Allan方差的神秘感,将它应用到更广阔的范围里。当然更希望能启发大家在必要时自主提出新的误差指标的定义,来支持自己所在领域的研究。

参考文献

[1] D. W. Allan, Statistics of atomic frequency standards, Proc. IEEE, vol. 54, no. 2, pp. 221–230, Feb. 1966.

[2] IEEE, IEEE Standard Specification Format Guide and Test Procedure for Single-Axis Laser Gyros, AnnexC, IEEE Std 647-1995, 1995.

[3]  Riley W J. Handbook of frequency stability analysis [M]. US Department of Commerce, National Instituteof Standards and Technology Gaithersburg, MD, 2008.

[4] Zhang Q, Niu X, Chen Q, et al. Using Allan variance to evaluate the relative accuracy on different time scales of GNSS/INS systems. Measurement Science and Technology, 2013, 24(8): 1659-1666.

[5] Niu, X., Chen, Q., Zhang, Q.,Zhang, H., Niu, J., Chen, K., ... & Liu, J. (2014). Using Allan variance to analyze the error characteristics of GNSS positioning. GPS Solutions, Volume18, Issue 2 (2014), Page 231-242.

[6] Zhang Q, Niu X, Shi C. Impact Assessment of Various IMU Error Sources on the Relative Accuracy of the GNSS/INS Systems. IEEE Sensors Journal, 2020, 20(9): 5026-5038.

[7] 张全. GNSS/INS组合导航短期精度的分析方法及应用研究 [D], 2015, 武汉大学.

[8] Friederichs T. Analysis of geodetic time series using Allan variances [J]. Uni Stuttgart -Universitätsbibliothek, 2010.

  • 37
    点赞
  • 178
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
### 回答1: Allan方差分析是一种用于评估随机变量测量误差的方法。在MATLAB中,可以编写程序来计算Allan方差的值。 首先,需要准备一个包含时间序列数据的dat文件。该文件应包含一个测量的观测值列表,这些观测值是以时间为单位的。这些观测值可以是任何随机变量的测量结果,例如振荡器频率或陀螺仪加速度。 在MATLAB程序中,可以使用函数load来加载dat文件中的数据到一个变量中。然后,可以使用allanvar函数来计算Allan方差的值。allanvar函数接受一个向量作为输入,并返回一个包含不同时间间隔的Allan方差的向量。 例如,以下是一个MATLAB程序示例,用于计算dat文件中数据的Allan方差: ```MATLAB % 加载dat文件中的数据 data = load('dat文件路径'); % 计算Allan方差 allan_var = allanvar(data); ``` 此程序将加载dat文件中的数据并计算其Allan方差allanvar函数返回一个包含不同时间间隔的Allan方差值的向量。可以使用这些值来分析随机变量的测量误差,并确定最佳的测量采样频率。 总之,通过在MATLAB中编写程序读取dat文件并使用allanvar函数计算Allan方差的值,可以对随机变量的测量误差进行评估并确定最佳的测量采样频率。 ### 回答2: Allan方差分析方法是一种用于分析连续时间数据序列的统计方法,常用于精密仪器的性能评估和时钟信号的稳定性分析。在Matlab程序中,可以通过使用相应的函数和算法来实现Allan方差分析。 通常,Allan方差分析方法的输入数据是一个时间序列的连续测量值。在Matlab中,可以将这个数据保存在一个dat文件中。dat文件是一种常用的数据格式,可以包含多个列的数据,每列表示一个测量值。 在Matlab程序中读取dat文件的数据,可以使用文件读取函数,如fscanf或textscan函数。这些函数可以读取dat文件的每一行,并将其转换为Matlab中的数值数组。读取完数据后,就可以开始进行Allan方差分析了。 在Matlab中,实现Allan方差分析可以使用Signal Processing Toolbox中的allanvar函数。这个函数可以计算输入数据序列的Allan方差,并返回一组时间间隔和对应的方差值。根据这些结果,可以绘制Allan方差曲线,以便分析数据的特性和性能。 另外,Matlab还提供了其他用于统计分析和数据可视化的函数,如mean和plot函数。这些函数可以用于计算均值、绘制数据图表等步骤,以便更全面地分析数据。 总之,Allan方差分析方法在Matlab程序中可以通过读取dat文件的数据,并使用Signal Processing Toolbox中的函数来进行计算和分析。这样可以方便地评估仪器的性能和信号的稳定性。 ### 回答3: Allan方差分析是一种常用的时间序列处理方法,用于分析信号的频率稳定性。MATLAB是一种常用的数值计算和数据分析软件,可以编写Allan方差分析的程序。 在MATLAB中,我们可以使用一维数组来表示样本的时间序列数据,将其保存为.dat格式。.dat格式是一种简单的二进制文件格式,可以方便地保存和读取数值数据。 编写Allan方差分析程序的步骤如下: 1. 读取.dat文件中的数据,可以使用MATLAB中的load命令或fread命令进行读取。 2. 对数据进行预处理,比如去除噪声或异常值。 3. 计算Allan方差,可以根据Allan方差的定义编写相应的计算函数。这个函数的输入是时间序列数据数组,输出是Allan方差结果。 4. 绘制Allan方差曲线,可以使用MATLAB中的plot函数将Allan方差结果以曲线的形式绘制出来。 在程序运行过程中,可能还需要设置一些参数,比如采样时间间隔和Allan方差计算的时间窗口大小。这些参数可以根据具体实际需求进行设置。 总之,通过MATLAB编写Allan方差分析程序可以对时间序列数据进行频率稳定性的评估,帮助我们了解信号的稳定性特性。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值