allan偏差及相关时频统计

AllanTools的Python项目详细描述


https://badge.fury.io/py/AllanTools.svghttps://travis-ci.org/aewallin/allantools.svg?branch=masterDocumentation Statushttps://coveralls.io/repos/github/aewallin/allantools/badge.svg?branch=master

计算allan偏差的python库及其相关 时间和频率统计。LGPL v3+ license

输入数据应为任意分数频率的等间距观测值, 或以秒为单位的阶段。以秒为单位计算给定τ值的偏差。

FunctionDescription
^{tt1}$Allan deviation
^{tt2}$Overlapping Allan deviation
^{tt3}$Modified Allan deviation
^{tt4}$Time deviation
^{tt5}$Hadamard deviation
^{tt6}$Overlapping Hadamard deviation
^{tt7}$Total deviation
^{tt8}$Modified total deviation
^{tt9}$Time total deviation
^{tt10}$Hadamard total deviation
^{tt11}$Theo1 deviation
^{tt12}$Maximum Time Interval Error
^{tt13}$Time Interval Error RMS
^{tt14}$Gap resistant overlapping Allan deviation

还包括用于创建合成数据集的噪声发生器:

  • f^2 psd的紫罗兰色噪声
  • f^0 psd的白噪声
  • 带有f^-1 psd的粉红色噪声
  • f^-2psd的布朗噪声或随机游动噪声

有关可用统计信息和噪声生成器的详细信息:full list of available functions

请参阅/测试将尿囊素输出与其他尿囊素输出进行比较的测试 (如Stable32)程序。更多的测试数据,基准,ipython笔记本, 欢迎与已知的好算法进行比较!

安装

从pypi安装:

pip install allantools

最新版本+示例、测试、测试数据、ipython笔记本:从github克隆,然后安装

python setup.py install

(有关安装选项,请参见python setup.py–help install

这些命令应该以根用户身份运行,以便进行系统范围的安装,或者 您可以使用–user选项仅为您的帐户安装。 确切的命令名可能因os/package manager/target python版本而异。

基本用法

最小示例,相位数据

我们只能用一个参数调用尿囊素-一个相位数据数组。 这适用于1赫兹的时间间隔测量,例如 测量两个时钟1pps输出的时间间隔计数器。

>>> import allantools
>>> x = allantools.noise.white(10000)        # Generate some phase data, in seconds.
>>> (taus, adevs, errors, ns) = allantools.oadev(x)

当只给出一个输入参数时,假定相位数据以秒为单位 如果未指定速率参数,则默认速率为1.0 如果未指定taus参数,则默认为taus=“octave”

频率数据示例

注意尿囊素假定无量纲频率数据输入。 标准化,例如用平均值分割所有数据点 频率,留给用户。

>>> import allantools
>>> import pylab as plt
>>> import numpy as np
>>> t = np.logspace(0, 3, 50)  # tau values from 1 to 1000
>>> y = allantools.noise.white(10000)  # Generate some frequency data
>>> r = 12.3  # sample rate in Hz of the input data
>>> (t2, ad, ade, adn) = allantools.oadev(y, rate=r, data_type="freq", taus=t)  # Compute the overlapping ADEV
>>> fig = plt.loglog(t2, ad) # Plot the results
>>> # plt.show()

new in 2016.11:简单的顶级API,使用专用类进行数据处理和绘图。

import allantools # https://github.com/aewallin/allantools/
import numpy as np

# Compute a deviation using the Dataset class
a = allantools.Dataset(data=np.random.rand(1000))
a.compute("mdev")

# New in 2019.7 : write results to file
a.write_result("output.dat")

# Plot it using the Plot class
b = allantools.Plot()
# New in 2019.7 : additional keyword arguments are passed to
# matplotlib.pyplot.plot()
b.plot(a, errorbars=True, grid=True)
# You can override defaults before "show" if needed
b.ax.set_xlabel("Tau (s)")
b.show()

带示例的Jupyter笔记本

Jupyter笔记本是一种交互式的Python脚本,嵌入在浏览器中, 允许您轻松地操作数据和显示绘图。作为指导 安装jupyter时,请参考https://jupyter.org/install

有关笔记本格式的一些示例,请参见/examples。

Github将笔记本格式化为漂亮的网页,例如

作者

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何让ruby和maven协同工作   如何从Java代码中调用Excel VBA宏?   java是公共类的默认成员   java Android TextToSpeech总是无法运行   导入JAVA包的类不存在   java中有很多JSP/Servlet应用程序示例,为什么是。使用inc扩展代替。包含的jsp?   tomcat向JavaWebApp添加JAR   java如何在MySQL中向表中插入变量   java在Spring web app中找不到类[org.springframework.scheduling.quartz.SchedulerFactoryBean]   swing Java GUI布局建议   java Google HTTP库JSON解析,空值默认为True   java使用Eclipse和Apache Tomcat 9.0开发聊天机器人   java我可以使用vmware软件包更改虚拟机的IP地址吗?   java在单击“后台运行”后返回进度监视器对话框   java uibinder onload not调用   java Spring数据分页和排序存储库的工作原理