如何去相关加速度计数据

How to decorrelate accelerometer data

是否可以实时去相关加速度计数据?如果有,是怎么做到的?

背景: 我的应用程序正在实时接收 (X,Y,Z) 加速度计数据(采样率为 6.75Hz)。传感器以周期性运动方式移动,但运动不一定只沿着一个轴。因此,3 个信号 x(t)、y(t) 和 z(t) 略微相关,我想知道是否可以找到一个旋转矩阵(实时),该矩阵可用于旋转测量的 (x, y,z) 转换成一个新向量 (x*,y*,z*) 以便整个运动沿 z 轴?

我想用 C 实现算法。 谢谢。

您尝试做的事情通常称为 "principal component analysis"。维基百科文章不错:

https://en.wikipedia.org/wiki/Principal_component_analysis

对于静态数据,您通常使用协方差矩阵的特征向量作为新的坐标基础。

实时 PCA 是可行的,但不是很容易。参见,例如:http://www.bio-conferences.org/articles/bioconf/pdf/2011/01/bioconf_skills_00055.pdf

首先我想强调的是, 在对来自临床研究(我从事的项目)的加速度计数据进行分类时所做的正是人们实际所做的。

然后:您正在观察采样信号。通常,如果您的传感器以 6.75Hz 的速率提供样本,则您可以检测到的信号的最高频率为 6.75Hz/2 = 3.375Hz。所有频率高于该频率的东西都会固有地混叠,看起来像是频率为 f 且 0<=f<3.375Hz 的东西。如果您还没有考虑过这一点, 继续阅读 Nyquist–Shannon sampling theorem。特别是:保护您的传感器(无论您如何做,例如通过使用阻尼器)免受所有超过该限制的输入,否则您的测量值可能很少甚至没有价值。如果您的传感器在内部执行此操作(这绝对有可能,有足够多的带有模拟低通滤波器的加速度计),这已得到解决。但是,请记录您的传感器的特性。

现在,你的情况稍微简单了一些,因为你非常清楚你的整个观察将是周期性的,并且它是沿着三个正交轴测量的。

在这种情况下,只需同时进行三个离散傅里叶变换,提取所有三个通道的 "strongest" 频谱分量,并找到该频谱分量的相位(这只是该 DFT 的复参数bin) 在另外两个中会给你一些东西,你可以映射到 3D 中围绕特定轴的周期性运动 space。如果需要,请删除这些值(将 bin 设置为 0),然后再次搜索最强组件等。

离散余弦变换现在可以以惊人的速度完成。在 6.75Hz 的情况下,当您在收到更多样本时尝试此操作时,世界上没有任何 PC 会遇到麻烦。这是一个低得可笑的采样率。

另一个更优雅的方法(阅读:你需要更少的样本来计算这个)将使用参数估计器;在您的情况下,据我所知,来自射频技术领域的具有多个天线的 direction-of-arrival 传感器将直接映射到旋转轴的检测。这里的经典算法是 MUSIC 和 ESPRIT,对于您的情况(有限的已知数量的振荡部件),ESPRIT 可能是更好的选择。