Allan方差学习

一、遇到的问题

1. Allan deviation是什么?

有效地刻画了待研究的误差时间序列在不同时间尺度上的波动水平(不稳定性),并可根据不同时间尺度上的Allan方差值所构成的曲线的形状特征来辨识其中包含的随机过程模型

这就类似于我们用功率谱密度(PSD)来描述信号在不同频率尺度上的功率分布,并用PDS曲线来做系统模型辨识

2、和传统的误差分析有什么优势?

样本均值:反映整个误差序列有无宏观偏置(最简单的求平均数)

标准差STD:反映整个误差序列的波动情况(standard deviation)方差开根号,分母为什么是n-1?

是因为这样能使样本更好地逼近总体的标准差,保证方差的估计是无偏的。或者说:当我们使用样本来估计总体时,自由度就减一,所以是n-1.

均方值根RMS:先平方、再平均、然后开方

它们都是反映误差序列的整体情况的指标,其中含有短时间快速变化和长时间缓变的各个成份,无法细分出不同时间尺度上的误差波动情况

(这个图有误,方差开根号是标准差)

3、如何得到Allan deviation?

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

  1. 将整段误差序列按照你感兴趣的时间尺度的长度(例如1分钟)进行分块;(这里有N块)
  2. 每块求平均值;(将数据点求平均,消除小于关注时间长度的误差)
  3. 相邻块的平均值求差;(消除大于时间长度的误差)
  4. 将所有差值进行统计,得到其均方值,并乘以1/2。

1633699143061033929.png

 r 就是一分钟的分块      r0是分块里面更小的门时间,可以从图看的出来,这个门时间是拿来采样从而获取到了很多的数据点。

最后的到了一分钟这个时间长度的Allan偏差。

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

而Allan方差是这样做到的:

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

!!!如果我们对误差序列的各个时间尺度上的成份都感兴趣的话,可以将块长度由短到长,“扫描”一遍,得出一组Allan方差值,然后画个“Allan方差 vs. 块长度”的曲线,这样就能全面反映被研究的误差序列的特性了。具体的,实际上是“Allan方差的开方(Allan Deviation) vs. 块长度”的双对数曲线

 斜率为-1/2的直线段代表白噪声,按照Allan方差使用手册就可以对应得到相应的误差模型

实际的Allan方差曲线往往只能表现出少数两三个主要误差类型,因为其它误差都被这几个主要误差给淹没了

4、一种更通用的样本方差分析方法

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

当M取2可得: 

 

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

原稿见:https://blog.csdn.net/xhtchina/article/details/122417927

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: MATLAB提供了计算Allan方差的函数。Allan方差是一种用于分析频率数据的统计方法,在许多领域,如惯性导航、原子钟和语音处理等中被广泛使用。下面是使用MATLAB计算Allan方差的基本步骤: 1. 准备频率数据:首先,你需要准备好频率数据。这些数据可以是时间序列,表示系统的频率随时间的变化。确保数据的采样率是一致的,以便正确计算Allan方差。 2. 使用MATLAB函数计算Allan方差:一旦你准备好频率数据,可以使用MATLAB中的'rwvar'函数计算Allan方差。该函数的语法如下:allanvar = rwvar(frequencyData),其中frequencyData是包含频率数据的向量。 3. 分析结果:计算完成后,你将得到一个包含Allan方差结果的向量。你可以使用MATLAB中的其他函数和工具来可视化和进一步分析这些结果,以了解系统的特性和性能。 需要注意的是,计算Allan方差需要足够长的数据序列,以保证结果的可靠性。数据序列的长度应该是足够长,以包含系统的典型变化和波动。 ### 回答2: MATLAB是一种用于科学计算和数据分析的强大软件工具。在MATLAB中,可以使用allan方差来测量信号的随机漂移和噪声特性。 为了计算allan方差,我们可以按照以下步骤进行操作: 1. 首先,获取要分析的信号。这可以是任何一个在时间上变化的信号,如加速度、速度或任何其他物理量。假设我们有一个长度为N的信号向量X,其中包含了我们要进行allan方差分析的数据。 2. 在MATLAB中,有一个函数名为'variance',它可以用来计算任何一维信号的方差。我们可以使用这个函数来计算每个时间间隔的方差。 3. 下一步是计算allan方差。使用allan方差公式,我们可以通过将不同时间间隔的方差进行平均来得到allan方差。如果我们假设方差从最小时间间隔开始逐渐增加,那么allan方差可以通过以下公式来计算: allan_variance = (1 / (2 * (N - 1) * τ^2)) * sum((X(τ) - X(2τ))^2) 其中N是信号向量的长度,τ是不同时间间隔的值。 4. 最后,我们可以使用MATLAB的绘图功能来可视化allan方差的结果。我们可以将allan方差作为时间间隔τ的函数绘制成图表,以便更好地理解信号的随机漂移和噪声特性。 总结起来,MATLAB可以通过计算方差和使用allan方差公式来分析信号的随机漂移和噪声特性。通过可视化allan方差的结果,我们可以更好地理解信号的特性,并作出相应的决策和调整。 ### 回答3: MATLAB可以通过使用allanvar函数来计算Allan方差Allan方差是用于衡量稳定性和噪声特性的一种方法,在信号处理和控制系统中广泛使用。 要计算Allan方差,首先需要将数据导入MATLAB环境。该数据可以是一个时间序列,其中包含随时间变化的测量值。然后,可以使用allanvar函数来计算Allan方差。 该函数需要一个输入参数,即数据向量。可以在MATLAB命令窗口中使用以下语法调用allanvar函数: allanvar(data) 这里,data是包含要计算Allan方差的数据的向量。函数将返回一个包含计算的Allan方差值的结果向量。 可以使用这个结果向量来分析数据的噪声特性和稳定性。Allan方差通常以对数的形式表示,因此通常会对结果应用对数变换以获得更直观的结果。 MATLAB的allanvar函数还有其他可选的输入参数,可以用来指定Allan方差估计的类型和长度。可以通过查看MATLAB文档或使用help命令来了解更多关于该函数的详细信息。 通过使用MATLAB的allanvar函数,可以方便地计算和分析信号的Allan方差,从而更好地了解信号的噪声特性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值