最近在研究如何使用 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. c语言检测正弦波波峰波谷,一种基于波峰波谷检测的计步算法的制作方法

    本发明涉及计步器算法领域,具体是一种基于波峰波谷检测的计步算法. 背景技术: 当今社会,健康越来越受到人们的重视,步行作为人类活动中最基础.最常见.最重要的运动形式,使得深入研究计步算法有着重要的意义 ...

  2. 基于智能手机的报纸阅读器-论文

    源码下载 http://www.byamd.xyz/hui-zong-1/ 摘要 近几年来,智能手机的迅猛发展给人们的生活带来了极大的改变,移动互联网时代的来临使得人手拥有一台配置强悍的智能手机已不再 ...

  3. 第九届全国大学生光电设计竞赛——赛题1:基于智能手机的苹果糖度无损测量新手攻略指南

    引言: "小哥,买苹果嘛?" (你摇了摇头,目光充满了坚定) "所以你又摇头又眼神坚定的到底买不买,数电不定态是吧--咳咳,看打扮你是光电村里新来的冒险者?那建议你去看看 ...

  4. 第八届全国光电设计赛题——基于智能手机的苹果糖度无损测量分析

    第八届全国光电设计赛题--基于智能手机的苹果糖度无损测量分析 先看赛题 说真的,由于疫情的特殊影响,这个比赛最终能不能进行下去还是个未知数,有个有趣的事情,我突然发现这个比赛官网挂了,不过我们小tea ...

  5. 基于智能手机的光谱仪设计

    博主今年参加了光电设计大赛,做的题目是基于智能手机苹果糖度检测.我的整体思路是利用智能手机搭建出一个红外光谱检测系统,利用红外光对不同成分物质有不同吸收率的特征来实现的.在这里给大家分享一下我的基于智 ...

  6. 智能分数计算机在线使用,基于智能手机的试卷分数统计系统及其使用方法与流程...

    本发明涉及一种基于智能手机的试卷分数统计系统及其使用方法. 背景技术: 对于考试分数的统计,现有的技术中,需要由外接设备和计算机配合完成.其缺陷在于:第一.外接设备和计算机本身具有成本高和挪动不方便的 ...

  7. 基于智能手机Android平台音乐播放器全程开发实战

    基于android开发的智能手机平台的应用越来越多,目前也是一块比较热门的技术,本项目为基于android系统的音乐播放器项目,学习本项目的目的是为了让学员尽快掌握android领域的小应用的开发.项 ...

  8. 手机室内地磁定位软件_一种基于智能手机的室内地磁定位系统

    [1]谢仕民, 李邦清, 李文耀,等. 地磁匹配技术及其基本匹配算法仿真研究[J]. 航天控制, 2008, 26(5):55-59. [2]SUBBU K P, GOZICK B, DANTU R ...

  9. 基于智能手机的家校沟通系统设计与实现_kaic

    摘  要 随着Android系统以及iOS系统出现和普及,人们的生活与移动互联网联系变得更加密切,手机等移动终端上应用软件的功能也更加全面.实用与方便.学生的学习情况是每个家长最为关注的,因此老师与家 ...

最新文章

  1. 中小学AI教育靠谱吗?50%教师教学经验不足1年
  2. R语言删除包含缺失值的行并将字符数据列(character)转化为因子列(factor)实战
  3. hibernate中inverse作用
  4. android sha1是签名么,Android获取SHA1和MD5签名
  5. java内存优化详解_jvm堆内存优化详解
  6. 隐藏Content-Location标头带的内部IP地址的执行语句以及其可能会带来的问题
  7. java putifabsent_java8中Map的一些骚操作总结
  8. 树上倍增求LCA及例题
  9. 2018-1-2Linux基础知识(19)vi编辑器及bash算数
  10. 河南城镇化争植“智慧”基因
  11. (超赞的Chrome翻译插件)沙拉查词-聚合词典划词翻译
  12. 电脑win10黑苹果双系统
  13. 警告: git command could not be found. Please create an alias or add it to your PATH
  14. 线段树的简单实现(引入lazy_tag)
  15. 关闭windows Defender的自动扫描
  16. 数据集:Udacity Self-Driving 目标检测数据集
  17. 【零信任落地案例】北京芯盾时代电信运营商零信任业务安全解决方案落地项目
  18. [RTOS]rtthread,freeRTOS,uCOS等系统简单对比
  19. 贼好用的 Java 工具类库! GitHub 星标 10k+,你在用吗?
  20. 软工结对项目——地铁

热门文章

  1. DNA转换为C语言,DNA (C语言代码)
  2. 资源网365,资源之家! 天天好资源!力争打造一个更好的资源网下载站.希望大家指教!...
  3. 不服就GAN:GAN网络生成 cifar10 的图片实例(keras 详细实现步骤),GAN 的训练的各种技巧总结,GAN的注意事项和大坑汇总
  4. 数据结构和算法基础(4)——树
  5. pdf转图片在线转换怎么转?分享一个转换技巧
  6. docker运行yyets_docker 使用教程1
  7. 高手必备 | Revit插件到底哪个好?区别是什么?
  8. 小学生C++编程基础 课程20(共7题)
  9. 力扣:第 304 场周赛
  10. Android实现高斯模糊背景对话框,Android进行高斯模糊的简单实现