默れ

ADXL345应用——计步器设计(软件滤波)

0
阅读(7101)

     计步器采集到的加速度变化信号由于采样精度、采样频率等原因会有较大毛刺,在上一篇博客中有图示。在算法处理过程中容易发生“误判”,因此为了使数字信号波形变得平滑,需要一个数字滤波器。可以使用四个寄存器和一个求和单元,如下图所示。当然,可以使用更多寄存器以使加速度数据更加平滑,但响应时间会变慢。

     下图显示了来自一名步行者所戴计步器的最活跃轴的滤波数据。可以看到滤波后的信号波形更平滑,更易于算法判断。而对于跑步者,其峰峰值会更高。

     数据的采集和存储可以利用ADXL345的嵌入式存储器管理系统,采用32位FIFO。缓冲分四种模式:旁路模式、FIFO模式、流模式和触发器模式(参见FIFO模式)。在FIFO_CTL寄存器(地址0x38)内设置FIFO_MODE位(位[D7:D6]),可选择各模式。

     旁路模式下,FIFO不可操作,因此,仍然为空。在FIFO模式下,x、y、z轴的测量数据存储在FIFO中。当FIFO中的采样数与FIFO_CTL寄存器(地址0x38)采样数位规定的数量相等时,水印中断置位。FIFO继续收集样本,直到填满(x、y和z轴测量的32位样本),然后停止收集数据。FIFO停止收集数据后,该器件继续工作,因此,FIFO填满时,敲击检测等功能可以使用。水印中断继续发生,直到FIFO样本数少于FIFO_CTL寄存器的样本位存储值。在流模式下,x、y、z轴的测量数据存储在FIFO中。当FIFO中的采样数与FIFO_CTL寄存器(地址0x38)采样数位规定的数量相等时,水印中断置位。FIFO继续收集样本,保存从x、y和z轴收集的最新32位样本。新数据更新后,丢弃旧数据。水印中断继续发生,直到FIFO样本数少于FIFO_CTL寄存器的样本位存储值。