计步器算法对比测试报告1主要探讨了三种不同的计步算法在不同数据集上的表现,目的是提高计步器的准确性。测试环境是在Windows 7 x64系统下的PC上,使用Python编程语言进行。报告中详细列出了每种算法的描述、测试数据集以及测试结果。
1. **算法对比**:
- **(th, freq)法**:这种方法假设阈值与步频正相关,通过计算正相关直线的参数α和β来确定步频。
- **动态峰值法**:基于滑动窗口内峰值的平均值meanPeak来设定阈值,常量系数C(如0.8)乘以meanPeak作为窗口内的阈值。
- **动态过零点法**:计算滑动窗口内的均值,以此为零线,与数据曲线的交点作为计步依据。
2. **数据轴**:
- **AxyzBF_LPF**:手机机身坐标系xyz三轴合加速度的模值,经过低通滤波处理,以减少噪声。
- **AzWF_LPF**:世界坐标系z轴的加速度,同样进行低通滤波,以提升信号的稳定性。
3. **测试数据集**:
- 数据集0:作者自己采集的行走数据,仅包含快走。
- 数据集1:作者自己采集的行走数据,包括快走和慢走。
- 数据集2:作者自己采集的慢跑数据。
- 数据集3:公开数据集,包含快慢走的数据。
4. **测试误差对比**:
- 结果显示,对于数据集2(跑步)的测试,三种算法的误差都非常小,介于0.3%至2%之间,无论选择数据轴1还是2。
- 方法1在N=10, comp=1时效果最佳。
- 方法2在N=15, comp=0时表现最优。
- 方法3在N=10, comp=-1时达到最好结果。
- 误差主要源自慢速行走的影响,当数据集中包含慢走时,计步准确性会降低,因为慢速行走的周期更长,振动不明显。
- 在数据轴1和2上,轴1的计步准确度通常高于轴2。
5. **参考资料**:
- [1] 提供了一种基于智能手机加速计的步数计数方法。
- [2] 描述了一种适用于Java设备的内置加速度计的步数计数服务。
- [3] 是关于动态过零点方法的设计概述,由张琛提供。
这份报告详细比较了三种计步算法在不同条件下的性能,为优化计步器算法提供了有价值的数据支持。通过调整参数,如滤波窗口长度N和动态峰值系数C,可以进一步提高算法在不同行走速度下的计步准确性。同时,选择合适的坐标轴和滤波处理也是提高计步精确度的关键。
评论0