如何用matlab求阿伦方差?

您所在的位置:网站首页 matlab中的loglog 如何用matlab求阿伦方差?

如何用matlab求阿伦方差?

#如何用matlab求阿伦方差?| 来源: 网络整理| 查看: 265

MATLAB R2019a版本开始有求解阿伦(或艾伦,都行)方差的函数:allanvar,直接用即可

用法

allanvar函数主要有四种用法:

[avar,tau] = allanvar(Omega) [avar,tau] = allanvar(Omega,m) [avar,tau] = allanvar(Omega,ptStr) [avar,tau] = allanvar(___,fs)

详细描述

艾伦方差(Allan variance)用于测量时域中一系列数据振荡频率的稳定性,它也可以根据平均时间确定系统中的固有噪声。平均时间序列 \tau 可以指定为 τ= \frac{m}{fs} ,其中 fs 是数据的采样频率, m 是一个递增的平均因子列表(例如1、2、4、8等)。

[avar,tau] = allanvar(Omega) 返回艾伦方差avar作为平均时间 \tau 的函数。默认的平均时间 \tau 为 \left(1, 2,\cdots,2^{\text{floor}\left[\log_2\left(\frac{N-1}{2}\right)\right]}\right) ,其中 N 是 \Omega 中的样本数。如果将 \Omega 指定为矩阵,则allanvar在 \Omega 的列上进行操作。

[avar,tau] = allanvar(Omega,m) 返回 m 定义的 \tau 特定值的艾伦方差avar。默认频率 fs 假定为1,因此输出 \tau 与 m 完全相同。

[avar,tau] = allanvar(Omega,ptStr) 将平均系数 m 设置为指定的点规格ptStr。默认频率 fs 为1,因此输出 \tau 完全等于指定的 m 。另,可以将ptStr指定为'octave'或'decade'。

[avar,tau] = allanvar(___,fs) 还允许提供以Hz为单位的输入数据 \Omega 的采样频率 fs ,此输入参数可以与任何先前的语法一起使用。

例1:艾伦方差计算

从MAT文件中加载陀螺仪数据,包括以Hz为单位的数据采样率,计算艾伦方差。

load('LoggedSingleAxisGyroscope','omega','Fs') [avar,tau] = allanvar(omega,'octave',Fs); loglog(tau,avar) xlabel('\tau') ylabel('\sigma^2(\tau)') title('Allan Variance') grid on艾伦方差

例2:确定特定 \tau 值下的艾伦偏差

生成陀螺仪噪声样本,包括角度随机游动和速率随机游动。计算 m =τ 时的艾伦偏差, 艾伦偏差是艾伦方差的平方根

numSamples = 1e6; Fs = 100; nStd = 1e-3; kStd = 1e-7; nNoise = nStd.*randn(numSamples,1); kNoise = kStd.*cumsum(randn(numSamples,1)); omega = nNoise+kNoise; m = 2.^(9:18); [avar,tau] = allanvar(omega,m,Fs); adev = sqrt(avar); loglog(tau,adev) xlabel('\tau') ylabel('\sigma(\tau)') title('Allan Deviation') grid on艾伦偏差

参考自MATLAB帮助文档:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3