摘要:为了便于后续处理和更准确地计算结果,需要对采集到的信号进行滤波。使用中断引脚信号后,错误消失。滤波器设计低通滤波器的设计便于实施。实际效果测试串口实时打印出来,红色曲线是原始信号,蓝色曲线是滤波后的波形。
文章前言:1。纠正前一章中的错误;2.FIR滤波器设计;2.过滤器设计;3.滤波器模拟;3.ARM_MATH库的实现(以STM32为例);实际效果测试;过滤前;过滤后;4.获取工程源代码。
I .纠正前一章产生的错误。在前一章中,读取PPG信号每隔几个周期就会出现噪声,因为读取时序和数据采集时序不匹配。使用中断引脚信号后,错误消失。
2.FIR滤波器1的设计。通过对采集到的信号进行频谱分析,可以看出PPG信号成分的频率主要集中在0.5-2Hz之间。为了消除个体差异,频率成分应保持在0.5-3Hz(即心率为30次/分- 180次/分)。
2.过滤器的设计。为便于实施,设计一个低通滤波器。参数如下:
3.从滤波器的仿真可以看出,3Hz以下的频率成分被保留,3Hz以上的频率成分被滤除。
ARM_MATH库的实现(以STM32为例)将ARM_MATH库移植到项目中,将上面设计的滤波器参数生成头文件导入到项目中。的两个关键功能如下:
arm_fir_init_f32(&S,NUM_TAPS,(float32_t *)&firCoeffs32LP[0],&firStateF32[0],block size);arm_fir_f32(&S,&input,&output,block size);这里就不多介绍了。如果需要了解,可以参考安福莱的DSP教程。
实际效果测试串口实时打印出来,红色曲线是原始信号,蓝色曲线是滤波后的波形。
预过滤
过滤后
4.获取项目源代码,关注微信官方账号,回复“MAX30102V2”获取源代码;如有疑问,欢迎在微信官方账号回复“交流群”,加入群内讨论分享!
评论前必须登录!
注册