2

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

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

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

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

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

更新...

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

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

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

4

2 回答 2

1

在你问编程问题之前,在我看来你需要研究一个更基础的科学问题。

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

于 2013-05-20T14:56:56.050 回答
0

基于您更新的问题,如果数据随时间平滑,只需将所有样本放在时间跟踪中,并在稀疏网格(时间)上进行插值。

于 2013-05-23T07:31:08.003 回答