【问题标题】:Algorithm to detect sawtooth like timeSeries像 timeSeries 一样检测锯齿的算法
【发布时间】:2016-12-24 09:38:33
【问题描述】:

您在此处看到的是一个人行走的垂直轴(或从头到脚轴)上的加速度图。

我想实现一种可靠的方法来识别这种运动模式并计算步数。

我们可以立即注意到,每一步对应于平均 10-10.5 ms^2 线附近的峰值和下降。

之前我计划采用基于阈值检测的机制,但结果很差,因为存在一些变量:

  1. 如果人走得慢或快,图表会在时间轴上展开
  2. 如果一个人的步子更轻或更重,那么尖峰和低谷分别会变小和变大

但是在所有情况下,模式仍然是相同的,即几乎有规律的间隔出现峰值和下降

以合理的准确性和计算时间检测这种模式的最佳合理算法是什么

【问题讨论】:

  • 如果您在这里没有得到答案,请考虑在 dsp.stackexchange.com 上提问。
  • 我会从峰值检测器开始。
  • 我将从自相关函数的 FFT 开始以获得功率谱,然后找到峰值。几乎可以肯定,峰值的频率将是您想要的。将峰值与平均功率进行比较可以很好地估计峰值的可靠性。

标签: algorithm time statistics computation


【解决方案1】:

没关系,我想通了,它非常简单,我所要做的就是确定一个噪声阈值和一个基本电平或零电平,然后在其上运行一个峰值检测器

以下是抽象过程

  • 基础水平实时计算为最近 30 个样本的平均值
  • 高于基本水平的值 - 噪声阈值被视为正尖峰
  • 低于基本水平的值 - 噪声阈值被视为负尖峰
  • 在约 500 毫秒的短时间间隔内检测到的一对后续正负尖峰被视为步进。

通过适当的调整,准确度为 ~98%,并且可以非常可靠地计算所采取的步数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多