我有一些采样(单变量)数据-但是驱动采样过程的时钟不准确-导致每30个采样数(少于1个)的随机滑移。频率大约为1/30的更精确的时钟为相同的数据...使我能够很好地估计时钟漂移。
我正在寻求对采样数据进行插值以对此进行更正,以使高频数据“适合”低频。我需要做到“实时”-不超过几个低频样本的延迟。
我认识到插值算法的范围很广-在我考虑过的算法中,基于样条的方法最有可能用于此数据。
我正在使用Python工作-并找到了scipy.interpolate软件包-尽管我看不到明显的方法来使用它“拉伸” n个样本来纠正较小的计时误差。我在俯视什么吗?
我对指向合适的已发布算法或-理想情况下-实现这种转换的Python库函数的指针感兴趣。 SciPy(或其他任何工具)支持吗?
更新...
我开始意识到,起初看起来很琐碎的问题并不像我最初想到的那么简单。我不再相信花键的简单使用就足够了。我还意识到,无需参考“时钟漂移”就可以更好地描述我的问题,如下所示:
在两个不同的频率上采样一个随机变量-一个低和一个高,没有共同的除数-例如5hz和144hz。如果我们假设样本0在两个样本速率下都相同,则样本1 @ 5hz介于样本28和29之间。我想构建一个新的序列-假设为720hz,“尽可能平滑”地适合所有已知数据点。
我曾希望找到一种“开箱即用”的解决方案。
最佳答案
在您提出编程问题之前,在我看来,您需要研究更基础的科学问题。
在开始挑选特定的方程式以使badfastclock适于商品lowclock之前,您应该研究漂移的性质。让两个时钟运行一会儿,然后一起看它们的要点。 badfastclock是否会因为偏离实时线性而变差?如果是这样,那么一个简单的二次方程式就应该使badfastclock适于商品lowclock,就像二次方程式描述物体在重力下的线性加速度一样;即,如果badfastclock从实时线性加速,则可以确定地将badfastclock移向实时。但是,如果您发现badfastclock由于跳动而不好,则平滑曲线-甚至是复杂的平滑曲线(如样条曲线)也将不适合。您必须先理解数据,然后才能尝试对其进行操作。
关于python - 插值算法可纠正轻微的时钟漂移,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16625298/