如何将两个时间序列与差距和不同的时基相关联?

Bob*_*obC 14 python signal-processing numpy r accelerometer

我有两个时间序列的3D加速度计数据具有不同的时基(时钟在不同的时间开始,在采样时间内有一些非常轻微的蠕变),以及包含许多不同大小的间隙(由于与写入分开相关的延迟)闪光设备).

我使用的加速度计是便宜的GCDC X250-2.我正在以最高增益运行加速度计,因此数据具有显着的本底噪声.

每个时间序列具有大约200万个数据点(超过一小时,512个样本/秒),并且包含大约500个感兴趣的事件,其中典型事件跨越100-150个样本(每个200-300ms).许多这些事件都受到闪存写入期间数据中断的影响.

因此,数据不是原始的,甚至不是很漂亮.但我的眼球检查显示它清楚地包含了我感兴趣的信息.(如果需要,我可以发布情节.)

加速度计处于相似的环境中,但只是适度耦合,这意味着我可以通过眼睛判断哪些事件与每个加速度计匹配,但到目前为止我在软件中这样做是不成功的.由于物理限制,设备也安装在不同的方向,轴不匹配,但它们尽可能接近正交.因此,例如,对于3轴加速度计A和B,+ Ax映射到-By(上下),+ Az映射到-Bx(左右),+ Ay映射到-Bz(前后) .

我最初的目标是将纵向轴上的冲击事件关联起来,尽管我最终希望a)自动发现轴映射,b)关联映射的aces上的活动,以及c)提取两个加速度计之间的行为差​​异(例如扭曲或弯曲).

时间序列数据的本质使得Python的numpy.correlate()无法使用.我也看过R的动物园套餐,但没有取得进展.我已经在信号分析的不同领域寻求帮助,但我没有取得任何进展.

任何人都有我能做什么的线索,或者我应该研究的方法?

2011年2月28日更新:此处添加了一些显示数据示例的图表.

Pau*_*aul 0

听起来您想最小化一对值的函数 (Ax'+By) + (Az'+Bx) + (Ay'+Bz):即时间偏移: t 0和时间比例因子: t​ 其中 Ax' = t r *(Ax + t 0 ) 等。

我会研究 SciPy 的二元优化函数。我会使用掩码或暂时将“间隙”上的数据(例如 Ax' 和 By)归零(假设间隙可以通过编程方式确定)。

为了使过程更加高效,请从 A 和 B 的粗略采样开始,但设置与采样相称的精度fmin(或您选择的任何优化器)。然后继续对完整数据集进行逐渐更精细的采样窗口,直到窗口变窄并且不再进行下采样。

编辑 - 匹配轴

关于尝试确定哪个轴与给定轴共线并且不了解数据特征的问题,我可以指出类似的问题。查看pHash或本文中概述的任何其他方法,以帮助识别类似的波形。