基于智能手机的加速计进行计步实现。利用三轴加速器测算方法

智能计步器加速器怎么使用

最近,我正在研究如何使用IPHONE手机进行计步。我在互联网上找到了一些信息,这些信息基本上是基于加速度计原理的。至于什么是加速度计,每个人都使用Google的加速度计原理。我不会在这里谈论这部分。

在研究中,根据我发现的信息,使用差分法,离散和快速傅里叶变换进行了滤波器提取。但是,由于我已经毕业多年,所以我忘记了这些大学中的算法。现在,现在看到这些有点混乱。我暂时不会认出这些数学符号。为了理解这些,对我来说,可能需要进行两周的审查。估计您可以避免理解这些算法。但是目前,我还没有任何想法可以回顾,因此我本人基于一些粗略的方法,然后逐步缩小了识别范围,以提取最终的步行步数。

让我们来计算一下我的方法:我希望它对像我这样已经多年忘记数学并且不嘲笑算法大师的朋友有所帮助。

准备工作,为了更好地分析步行频率,我编写了一个监视,数据收集模块。看图片:


使用该观察工具,可以执行必要的分析。

1.重力感应式加速度计用于数据收集。如果使用了加速度计,则可以看到获得的数据矢量值相对较小,并且变化特别小(x,y,z)。

2.处理加速度计数据。当然,我也使用当前的传统方法sqrt(x * x + y * y + z * z);但我已将该数据放大了20倍来观察。

3.关键:在这里您需要观察收集的数据。查看我收集的数据分析。

将iPhone平放在支撑架上,并在行走时尽量使其平行,并且不易受到振动的影响(主要是查看是否可以在这种较小的振动下测量步数)。见图:


从图中的蓝线可以看到分布几乎是平坦的。

让我们看一下将手机放在夹克口袋中时收集的用于分析的数据:


这是数据中的两个步骤,具有明显的起搏波动。

让我们看一下裤子中产生的节奏频率,如图所示:


其中,较大的山峰(蓝色)是手机站立的地方,而右边的小山峰是没有手机的地方。可以看出,在行走过程中,会发生这种周期性变化。


4.现在已经分析了数据模式,一个问题是如何从这些不规则数据中正确提取速度。

因此,此处将使用过滤。您可以在图中看到红线,这是我过滤后获得的图案。我将所有峰值视为高信号输入,将谷值滤波器视为低信号输入。

因此,经过滤波后,您可以看到一个高-低信号,但是信号中仍然有杂波。 (这是什么意思?)这是因为在滤波之后,原始的多个连续峰值可能会变为高-低连续频率。

因此在这里需要检测出步调产生的连续波峰。这也是比较难提取的地方了。通常说波峰对于尖角波峰波从可以利用 data[N-1] <data[N],data[N]>data[N+1]可以得到第N点是波峰,同样波谷也可以用data[N-1]>data[N],data[N]<data[N+1],但是经滤波后产生的不是尖角波峰,而是阶梯波峰,哪么就不能彩用上面的方式进行提取了。

几图:


5.执行步骤提取。从以上步骤中,您可以看到最终过滤后杂波很小。现在是时候分析和采样这些杂波,并将它们变成符文的最终行走周期了。我这里也没有很好的提取算法,只是使用连续的峰值时间差来区分。例如,当当前信号为低时,下一个数据为高。为什么我们在此时记录低信号,并记下高信号的时间点。首先看一下模式,浅色的文本有点混乱。



如何确定连续波峰(目的是作为步长进行计算。)如上图所示,在第一步更改区域中,将LowBeginTime记录为ls,将HighBeginTime记录为hs。第一次更改后,它始终为高。输出信号区域。认为信号源没有改变。此时,您只需要刷新高信号的时间点即可。等待直到出现第二个更改区域(从高信号到低信号)。此时,您需要记录时间变化。高信号时间点hs1和低信号时间点ls1,则低信号不变,并且将其输入到第三变化区。此时,必须使用高信号时间点hs2 hs2。如果hs1之间的时间差小于X阈值,则认为该时间差是连续的。此时,如果判断这两个峰值是连接哪个低信号,则需要将其刷新为ls2。如果判断为不连续,则此时,ls1-ls是将时间T改变许多步的时间。如果T在一个人的频率范围内,则可以一步计算。该判断方法的优点在于,由于不停地人为地摇动手机而产生的频率不会被计为步数。但是,如果手摇式手机的振动频率与人的步伐相似,则仍将计算步数,这是当前加速度计不可避免的错误计算。



上面已经由我本人进行了测试,以不同的方式行走,并且在消除噪声干扰之前和结束时,基本上可以计算出行走步骤的数量。


这是个人开发经验的总结(使用加速计原理)。如果还有其他使用智能手机进行步数计数的方法,请告知。如果您听不懂,可以联系我进行研究。
















1. 了解模型特征

目前,大多数设备都提供可以检测所有方向的加速度检测器。以iOS设备为例,我们使用其三轴加速度计的特性(x,y和z轴表示方向,如图所示)进行分析。它用于检测步行过程中三个方向的加速度变化。 iphone

在水平行走过程中,用户会经历垂直加速度和向前加速度的周期性变化。如图所示,在双脚闭合的步行运动中,由于单只脚接触地面的重心,垂直加速度沿正方向增加。 ,然后继续向前移动,重心向下移动,双脚触碰底部,加速度相反。脚缩回时,水平加速度减小;踏步时,水平加速度增加。

1

从图表中可以看到,在行走过程中,垂直和向前产生的加速度和时间大致为正弦曲线,并且在垂直方向上的加速度变化最大的一点处出现峰值。检测计算和加速度阈值决策可以实时计算用户运动的步数,并据此进一步估计用户的步行距离。

2

2. 计步算法

由于用户在移动期间可以将设备平放在手中或将设备放在口袋中,因此设备的放置方向不确定。为此,我们通过计算三个加速度的矢量长度来计算行走的正弦轨迹。

第二步是峰值检测。我们记录了最后的向量长度和移动方向。通过矢量长度的变化,我们可以判断当前的加速度方向,并将其与最后保存的加速度方向进行比较。如果超过峰值状态,它将进入步进计数逻辑以执行步进计数,否则将被丢弃。用户的步行速度可以通过累积峰的数量来获得。

最后是消除干扰。手持设备将具有一些低振幅和快速的抽动条件,或者我们通常所说的握手状态,或者恶作剧的用户想要通过在短时间内反复快速摇动设备来模拟人的行走。如果这些干扰数据没有消除,将影响步数计数的准确值。对于这种干扰,我们可以通过在检测中添加阈值和步进频率判断来进行过滤。

3

人体最快的运行频率是5HZ,这意味着两个相邻步骤之间的时间间隔至少大于0.2秒。如图所示,我们设置时间跨度来过滤步进计数过程中的高频噪声,即步进频率通过。快速的情况。同时,我们与之前的加速度进行比较,并设置一定的阈值以确定运动是否有效。只能记录有效的动作。

3.关于计步器扩展

以上是依赖加速度测量的计步器的实现原理。知道了步行和跑步步骤的经验值后,可以将其转变为测速仪,并稍加改进。

通过三轴加速度,我们可以知道用户的运动状态。除了计步外,我们还可以通过加速器的变化曲线来判断用户的跌倒状态。

发表112篇原创文章 · 获赞 19 · 访问量 15万+

VIP专享文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP专享文档”标识的文档便是该类文档。

了解文档类型

推荐阅读

tags

最新发布