python - 用于校正轻微时钟漂移的插值算法

标签 python scipy numeric numerical-methods

我有一些采样(单变量)数据 - 但驱动采样过程的时钟不准确 - 导致每 30 个样本随机滑动(小于)1 个。大约 1/30 频率的更准确时钟提供相同数据的可靠样本……让我能够很好地估计时钟漂移。

我希望对采样数据进行插值以对此进行校正,以便将高频数据“拟合”到低频数据。我需要“实时”执行此操作 - 延迟不超过几个低频样本。

我认识到有多种插值算法 - 在我考虑过的那些算法中,基于样条的方法看起来最有希望处理这些数据。

我在 Python 中工作 - 并且找到了 scipy.interpolate 包 - 尽管我看不出有什么明显的方法可以使用它来“拉伸(stretch)”n 个样本来纠正一个小的计时错误。我是不是忽略了什么?

我对指向合适的已发布算法的指针感兴趣,或者 - 理想情况下 - 用于实现这种转换的 Python 库函数。 SciPy(或其他任何东西)支持它吗?

更新...

我开始意识到,起初看起来微不足道的问题并不像我最初想的那么简单。我不再相信简单地使用样条曲线就足够了。我也意识到我的问题可以在不引用“时钟漂移”的情况下得到更好的描述......像这样:

单个随机变量以两种不同的频率进行采样 - 一低一高,没有公约数 - 例如5 赫兹和 144 赫兹。如果我们假设样本 0 在两个采样率下相同,则样本 1 @5hz 落在样本 28 和 29 之间。我想构建一个新系列 - 比如说,720hz - 尽可能“平滑”地适合所有已知数据点。

我曾希望找到一个“开箱即用”的解决方案。

最佳答案

在您提出编程问题之前,在我看来您需要研究更基础的科学问题。

在您开始挑选特定的方程式使 badfastclock 适合 goodslowclock 之前,您应该调查漂移的性质。让两个时钟运行一段时间,然后一起查看它们的点数。 badfastclock 不好是因为它线性偏离实时吗?如果是这样,一个简单的二次方程应该适合 badfastclock 到 goodslowclock,就像二次方程描述物体在重力中的线性加速度一样;即,如果 badfastclock 线性加速远离实时,您可以确定地将 badfastclock 移向实时。但是,如果您发现 badfastclock 不好,因为它在跳来跳去,那么平滑曲线——甚至像样条曲线这样的复杂平滑曲线——将不适合。在尝试操作数据之前,您必须了解数据。

关于python - 用于校正轻微时钟漂移的插值算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16625298/

相关文章:

python - 如何防止两个互相更新的小部件出现无限循环?

python - 如果数据框中的十进制值适合一个范围,则用不同的字符串替换它们

python - 迭代插值 : First interpolate grids, 然后插值

python - 使用scipy在dblquad集成中获得的错误是什么意思?

Javascript\Jquery 检查数字数组值是否连续且连续,并返回不正确的值

php - PHP 中的搜索功能适用于数值,但不适用于字母/单词

python - 特定颜色的 2D 蒙版

Python如何区分python套接字模块中的数据(当服务器接收时。)

python - scipy:最小化与最小化.标量;返回 F 与返回 F**2;不应该有什么不同吗?

r - R中的数字列名