从PPG信号检测心律失常--用MAX30102脉搏血氧计传感器和Arduino微控制器构建一个可穿戴手指脉搏血氧计
扫描二维码
随时随地手机看文章
导读:如今,心脏骤停是世界范围内死亡的主要原因,影响着大量的人。心律失常可通过心电图诊断。没有人会在家里有心电图机,它也需要电极粘在适当的地方,并且需要时间来分析心电图。与此同时,在新冠肺炎疫情后,大多数人都在使用手指脉搏血氧仪检查自己的生命体征。由于心电图(ECG)和容积图(PPG)之间存在相关性,因此可用于检测严重的心律失常。可穿戴手指脉搏血氧仪使用分光光度法和脉搏体积描记术来确定氧饱和度水平和脉搏率。我的目标是用MAX30102脉搏血氧计传感器和Arduino微控制器构建一个可穿戴手指脉搏血氧计,在信号处理工具Neurokit的帮助下检测主要心律失常。在这个项目的帮助下,我希望心律失常可以及早发现,并通过适当的治疗挽救生命。
PPG波可以作为一种检测和诊断心律失常的工具。PPG振幅的搏动变化可能是患者心律不规律的线索。脉搏血氧仪波形幅度的突然下降,结合典型的心电图模式,应该给出一个重要的警告,关于危险情况的存在。
室性早搏复合体对心电图、血压和PPG的影响
室性心动过速对心电图、血压和PPG的影响
使用的材料和方法:为了得到SPO2和心率,我们需要一个传感器来记录容积图。照片体积图是一种将红光(660nm)和红外线(940nm)照射在组织上的技术。一些光粒子(光子)被散射、反射和吸收。光探测器探测穿过组织后的光。到达光电探测器的光子经历了散射和吸收。因此,通过测量被检测光强度的变化,可以确定组织内的相对变化。MAX30102监测每分钟心跳,并在测量血氧饱和度(SPO2)中发挥关键作用。
Arduino UNO是基于ATmega328p的微控制器。它有14个数字输入/输出引脚(其中6个可以用作PWM输出),6个模拟输入,一个16 MHz陶瓷谐振器(CSTCE16M0V53-R0),一个USB连接,一个电源插孔,一个ICSP头和复位按钮。它包含了支持微控制器所需的一切。它可以简单地用USB线连接到电脑上,或者用交直流适配器或电池供电即可开始使用。Arduino程序是在Arduino集成开发环境(IDE)中编写的。Arduino IDE是运行在系统上的特殊软件,允许用户编写草图。
本项目使用NeuroKit2作为信号处理工具。NeuroKit2是一个开源的、社区驱动的、以用户为中心的用于神经生理信号处理的Python包。它为各种身体信号(如ECG, PPG, EDA, EMG, RSP)提供了一套全面的处理程序。Neurokit2分析信号数据帧(二维数据结构)。包含信号的数据通过内置功能进行预处理和分析。
MAX30102脉搏血氧计传感器与Arduino微控制器集成,用于捕获PPG信号。MAX30102传感器的原始数据可以在Arduino IDE的串行监视器上查看。只需少许编码,就可以计算出SPO2和心率。这些数据是用时间戳收集的,保存为CSV文件,每30秒更新一次。然后使用CSV文件中的数据进行分析。CSV文件中包含的数据使用Neurokit2库中的函数进行预处理。利用PPG分析功能对PPG信号进行分析。PPG_clean功能有助于通过消除噪声来精炼信号。为了检测心律失常,必须找到PPG波的峰值。PPG_peaks函数有助于找到峰值。在峰值检测之后,该算法评估信号的节律性,如果检测到节律中的任何不规则现象,则触发警报。
拟议系统概述
结果:在系统中对各种数据进行了测试和训练。正常受试者PPG数据采集。房颤PPG数据收集自MIMIC PERform AF数据库。
正常受试者心电图及PPG -1。
结果输出与平均HR为正常科目-1。
ECG和PPG伴有异位搏动。
数据与异位拍的结果输出。
心房颤动受试者的心电图和PPG信号-1。
心房颤动输出受试者-1
在输出图像的顶部,节奏显示为正常或不规则节奏。15秒内的平均心率也会计算出来。该算法检测输出图形的节奏,并指出不规则的节奏。可以看到输出图像有2张图,蓝色是干净的PPG信号数据,红色是峰值检测信号。
结论:未来的计划是设计一个非常紧凑的设备,类似于脉搏血氧仪,内置SPO2传感器和蓝牙模块。这个蓝牙模块可以与手机、笔记本电脑甚至Arduino进行通信。由于NeuroKit2是开源的,我们可以随时随地使用它来分析和解释容积图。这个项目对老年人很有用,甚至在一些紧急情况下也很有用。
本文编译自hackster.io