资讯专栏INFORMATION COLUMN

MAX30102脉搏血氧仪和心率传感器(二)FIR滤波器

不知名网友 / 3360人阅读

摘要:为了方便后续处理和更加精确地计算结果,需要对采集的信号进行滤波。使用中断管脚信号后错误消失。滤波器设计为了易实现,设计一个低通滤波器。实际效果测试串口实时打印输出,红色的曲线为原始信号,蓝色的曲线为滤波后的波形。


前言

数据经过采集之后,还会包含很多噪声,和一些不必要的成分。为了方便后续处理和更加精确地计算结果,需要对采集的信号进行滤波。数字信号处理属于较难学科,博主才疏学浅,如有不足之处敬请指正。


一、修正上一章产生的错误

在上一章中,读取的PPG信号每个若干个周期会出现噪声,原因是读取时序和数据采集的时序对不上。使用中断管脚信号后错误消失。

二、FIR滤波器设计

1.对采集的信号进行频谱分析


可以看到PPG信号成分的频率主要集中在0.5-2Hz之间。为了消除个体差异,应该保留的频率成分0.5-3Hz(也就是心率30次/min - 180次/min)。

2.滤波器设计

为了易实现,设计一个低通滤波器。参数如下:

3.滤波器仿真

可以看到,保留了3Hz以下的频率成分,滤除了3Hz以上的频率成分。

三、ARM_MATH库实现(以STM32为例)

将ARM_MATH库移植到工程中,上文设计的滤波器参数生成头文件导入工程中。关键的两个函数如下:

	arm_fir_init_f32(&S, NUM_TAPS,(float32_t *)&firCoeffs32LP[0], &firStateF32[0], blockSize);	arm_fir_f32(&S,&input,&output,  blockSize);

这里不多介绍,需要了解的,可以参考安富莱的DSP教程。

实际效果测试

串口实时打印输出,红色的曲线为原始信号,蓝色的曲线为滤波后的波形。

滤波前

滤波后

四、获取工程源码

关注公众号,回复 “MAX30102V2” 获取源码;若有疑问,请在公众号回复“交流群”,进群一起讨论分享!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/125576.html

相关文章

  • 76行代码如何完成一个双轮平衡小车?

    摘要:每个控制周期需要做的内容包括获取陀螺仪和编码器两个传感器的数据,传入直立环和速度环算法中进行计算得到控制量,将控制量作用于直流电机上。 Ruff Lite Ruff Lite 是 Ruff 团队针对 MCU(MicroController Unit,微控制器)推出的 Ruff OS,具有高实时性,占用内存小等特点。目前官方支持的开发板为TI TM4C1294-LaunchPad ,R...

    cucumber 评论0 收藏0
  • Roadtrax BL Traffic Sensor产品调试记录

    摘要:产品是精量电子美国传感器公司的产品是世界顶尖传感器制造商之一,产品包括压力称重力扭矩位置倾角振动加速度温度湿度流量磁阻血氧压电薄膜以及油品分析等传感器。 Roadt...

    LinkedME2016 评论0 收藏0
  • 算法(第4版) Chapter 4 练习题 答案

    摘要:离心率计算题目释义计算点的离心率,图的直径,半径,中心计算图的围长定义点的离心率图中任意一点,的离心率是图中其他点到的所有最短路径中最大值。图的中心图中离心率长度等于半径的点。改动离心率计算,在遍历中增加的赋值即可。 离心率计算 4.1.16 The eccentricity of a vertex v is the the length of the shortest path fr...

    13651657101 评论0 收藏0
  • DIY桌面机械臂__FOC电机驱动

    摘要:一硬件框架与模型设计机械臂最核心的部分应该就是关节部分的伺服电机了,针对与文稿中的设计思路,每个伺服电机都为一独立的控制系统,并通过总线的形式获取数据并控制。 ##...

    hosition 评论0 收藏0

发表评论

0条评论

不知名网友

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<