【问题标题】:How to decorrelate accelerometer data如何去相关加速度计数据
【发布时间】:2016-01-03 04:21:51
【问题描述】:

是否可以实时去相关加速度计数据?如果是这样,它是如何完成的?

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

我想在 C 中实现该算法。 谢谢。

【问题讨论】:

  • 你将如何处理一组静态数据?
  • @chux 不知道。这就是我问的原因
  • 那么周期运动是线性的而不是圆形的?
  • @pat 是的,它就像一个点在 3D 空间中来回移动一条线
  • @chux 我认为我的问题非常具体。任务是旋转加速度矢量,以便将所有加速度投影到 1 个轴上。我正在考虑对 x、y 和 z 的高通滤波版本进行双重积分以获得该位置。不确定这是否是一个好方法

标签: signal-processing accelerometer


【解决方案1】:

您尝试执行的操作通常称为“主成分分析”。维基百科的文章很不错:

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

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

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

【讨论】:

    【解决方案2】:

    首先我想强调的是,Matt Timmermans' answer 所做的正是人们在对临床研究(我参与的一个项目)中的加速度计数据进行分类时所做的事情。

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

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

    在这种情况下,只需一次执行三个离散傅立叶变换,提取所有三个通道上“最强”的频谱分量,并在另外两个会给你一些东西,你可以映射到 3D 空间中围绕特定轴的周期性运动。如果需要,请删除这些值(将 bin 设置为 0),然后再次搜索最强的组件等。

    如今,离散余弦变换可以以惊人的速度完成。使用 6.75Hz,当您在收到更多样品时尝试此操作时,世界上没有 PC 会遇到麻烦。这是一个非常低的采样率。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多