×

登录 是一种态度

logo
手机
访问
公众
账号
󰀳 返回
顶部

借助可靠的逐搏检测算法对手腕光电容积脉搏波信号进行脉搏率变异性分析

核心提示:心电图(ECG)的心率变异性(HRV)是一种著名的诊断方法,用于评估心脏的自主神经功能,为了更方便地评估心脏功能,可使用光电容积脉搏波(PPG)波形,用脉搏率变异性(PRV)代替HRV。

(本文作者为:Foroohar Foroozan)

心率(HR)监测是许多现有的可穿戴设备和临床设备的一个关键特性,但这些设备还没有配备利用逐搏间隔来测量持续心率变异性的功能。HRV包括从自心电图(ECG)提取的连续心跳之间的间隔时间(称为心搏间期)变化。HRV包含总所周知的生物特征识别信息,反映了自主神经系统的交感神经和副交感神经活动。2研究人员广泛使用HRV这一工具来帮助临床诊断和测量健康方面的生物信息,如睡眠阶段、压力状态和疲劳状况等。鉴于ECG测量的技术要求,在事故/灾难现场、战场或者在心电图可能引起电气干扰的区域,并不一定能获取这种信号。

从光电容积脉搏波信号中提取的脉搏率变异性可能     被用于替代HRV。PPG信号的获取方式为:     用LED照射人体皮肤,然后用光电二极管测量血流引起的反射光强度变化。

此外,PPG还可以提供与心血管系统有关的信息,如心率、动脉压、硬度指数、脉搏传导时间、脉搏波传导速度、心输出量、动脉顺应性和外周阻力等。然而,受血液灌流不良、环境光线以及最重要的运动伪像(MA)的影响,基于PPG的算法的性能会降低。业界已提出许多信号处理技术来消除MA噪声,包括ADI公司的运动抑制和频率跟踪算法,通过使用一个靠近PPG传感器放置的三轴加速度传感器来实现。

很关键的一点是要从PPG波形中准确地提取出重要的点,如收缩期峰值、起始点和重搏切迹,用于实施PRV分析。PPG波形的起始是由于血液开始从心脏输出到主动脉引起的,而重搏切迹则表示射血结束或主动脉瓣关闭。没有适用于PPG信号的可靠检测算法让研究人员无法利用PPG来全面开展PRV分析,至少一定程度上是如此。之前关于PRV的一些研究忽略了基准点,据报道有些是使用人工方法或根据经验检测收缩期峰值,,有些则是基于没有经过验证的时间窗口算法来获取脉搏峰值。

本文提出一种可靠的峰值和起始点检测算法,该算法使用最初被提议用于动脉血压(ABP)波形的描绘方法。需要注意的是,采用腕戴式设备的PPG信号包含许多运动伪影、基线波动、反射波以及其他可能影响检测算法行为的噪声。6因此,在将数据馈入逐搏提取模型之前,会对其实施预处理。本项工作使用的自动描绘器是一种混合方法,利用从原始PPG预处理得来的不同信号和信号的一阶导数来提取峰值和起始点。我们使用通过ADI手表平台收集的大型数据库来提供同步PPG和ECG信号。至于存储器大小,这种算法需要的内存较小,在ADI手表平台中可作为嵌入式算法使用。利用覆盖率、灵敏度、正检测率,以及逐次差分的均方根,对该算法实施了验证,并与来自ECG信号的逐博结果进行了比较。

(图1.提出的逐搏提取算法的流程图,包含(i)预处理和(ii)高分辨率B2B提取。)

基于PPG形态学的逐搏算法

在本节中,我们将详细介绍所提出的适用于手腕PPG信号的逐搏算法,该算法由(i)预处理和(ii)高分辨率逐搏提取模块组成。该算法的框图如图1所示。

预处理

PPG信号易受周边组织的不良血液灌流和运动伪像的影响是众所周知的。为将这些因素的影响降至最小,以免干扰随后的PPG分析和逐博估算,须有一个预处理阶段。这个步骤包括:

►    帧传输和窗口

►    带通滤波(0.4 Hz至4 Hz)

►    自动增益控制(AGC),用于限制信号幅度

►    信号平滑处理和基线漂移去除

PPG输入数据使用T0秒窗口进行处理,进一步的数据块则通过移动带有mT0 (m = 3/4)重叠的窗口进行处理。然后需要一个带通滤波器来消除PPG信号的高频成分(如电源)和低频成分(如毛细血管密度和静脉血容量的变化、温度变化等等)。图2a和2b显示了滤波前后的PPG信号。滤波器的截止频率为0.4 Hz和4 Hz。HR的基波频率范围为0.4 Hz至3 Hz。因此,使用更高一点的范围进行逐搏估算即可将强调搏动次数的谐波包含在内。使用中值滤波器去除滤波信号中突然出现的尖峰值。然后,AGC模块将信号电平限制为±V伏,以在稍后的阶段通过确认信号的幅度来验证所选的峰值。用于HRV的PPG测量流程持续时间较长,不可避免地会引入另一种伪影,例如基线漂移。因此,使用低通有限脉冲响应(FIR)滤波器对帧内的PPG样本阵列进行平滑处理(如图2c所示),以去除基线漂移噪声,并得到更为平滑的、适用于描绘模块的信号。

(图2.PPG图)

高分辨率逐搏提取模块

逐搏提取算法由以下模块组成:

►插值

►描绘

►高分辨率逐搏提取

►信号质量指标

预处理模块的输出被馈入插值模块,以提高逐搏提取算法的精度。如果在第一帧中给出从t0至tτ的PPG分段,其逐搏间隔为b0和bτ,我们会使用端点之间的n个点,以线性方式插入逐搏间隔值,然后从b0和bτ提取高分辨率逐搏间隔值(例如,1 ms分辨率)。接下来,描绘模块依靠信号形态学和节奏信息来提取峰值和起始点。因此,进行逐搏检测时,不仅需要收缩期峰值,还应报告起始点和重搏切迹。提议的描绘器从理论上来说,与两篇文章中所示的描绘器相似,一篇是“一种用于光电容积脉搏波波形的自适应描绘器”12,一篇是“关于用于动脉血压波形的自动描绘器”16,该描绘器利用来自信号一阶导数的一对转折和过零点进行调整以适应手腕PPG信号。图2d描绘了转折和过零点,以进行PPG表征。对于过零点,信号通过零相位失真滤波器来处理,通过匹配初始条件将启动和结束瞬变最小化。这是为了确保在滤波之后仍然保有时域特性。注意,来自PPG波形导数的起始点与最大转折之前的过零点对应,而收缩期峰值与该转折点之后的过零点相关。用在这种逐搏算法中的信号质量指标为清晰度,并指明了信号的信号音范围。这种指标最初是在Philip McLeod和Geoff Wyvill的文章“通过更聪明的方式来查找音调”中提出的,该指标采用归一化平方差函数(一种自相关函数)来查找信号的周期性。我们使用这个指标来决定逐搏算法什么时候能够可靠地报告峰值和起始点。

来自ADI腕表平台的评估结果

我们的PPG逐搏算法的结果与Pan-Tompkins算法的结果进行了比较,后者是一种公认的心电图峰值检测算法。收集的数据用于评估使用ADI生命体征监测(VSM)腕表平台的算法。ADI VSM iOS应用被用于通过蓝牙®连接与手表接口。ADI腕表包含一个PPG传感器,用于收集来自受试者手腕的PPG信号。此外,也会在ADI腕表上收集ECG信号。有3个ECG电极连接到受试者的胸部区域。这些电极上的电线连接到ADI腕表上,以处理这些信号,并与PPG信号同时记录下来。这个平台提供同步化的PPG和ECG信号。图3a所示为用于数据收集的ADI腕表,而图3b所示为iOS应用界面和从平台获取的示例信号。

(图3.ADI平台和工具)

评估指标和结果

在计算逐搏指标之前,需要先执行异常值剔除过程,以确定Pan-Tompkins算法输出和我们的PPG逐搏算法输出中缺失的/额外的峰值,这一点非常重要。忽略缺失的/额外的峰值可能导致心跳时长异常,进而得出不准确的结果。ECG信号中缺失的/额外的峰值是通过检查由Pan-Tompkins算法提供的连续心跳时长来确定的。心跳时长改变超过20%的任何ECG峰值都被标记为异常值。剔除这些ECG峰值之后,通过将每个ECG峰值与PPG信号中的峰值关联来确定PPG信号中缺失的/额外的峰值。如果PPG峰值在ECG峰值的时间接近范围内,则将其与ECG峰值关联。当PPG峰值无法确定,或者ECG峰值的时间接近范围内确定的峰值数量过多时,则将它们识别为异常值。在计算指标期间,这些缺失的/额外的PPG心跳可能导致的异常心跳时长作为异常值被忽略。

利用通过我们建议的算法以及Pan-Tompkins算法得出的逐搏值,对多个指标实施了计算。这些指标包括:(I)覆盖范围(等式1);(Ii)灵敏度(Se)(等式2);(Iii)正检测率(P+)(等式3);以及(iv)逐次差分的均方根(RMSSD)(等式4)。图4展示了用于指标计算的一些值的直观表示。

(1)

(2)

(3)

(4)

其中TP(真阳性)表示PPG B2B算法正确识别的心跳次数,FP(假阳性)表示与ECG中的实际心跳不对应的PPG心跳次数,FN(假阴性)表示PPG逐搏算法遗漏的心跳次数。心搏间期(IBI)是连续ECG峰值、PPG峰值或PPG起始点之间的时间间隔。

为了评估我们的算法,我们同时从每位受试者收集PPG和ECG信号。我们从不同年龄、不同肤色和不同体型的广大受试者收集收据。这是为了确保我们的评估结果适用于所有人群。数据采集自27位受试者(肤色不同的男性和女性),每位检测2分30秒。要求受试者前半段时间保持站姿,后半段时间保持坐姿。表1是通过逐搏算法得出的每个指标的平均值。如表中所示,与来自ECG信号的结果相比,手腕数据的覆盖范围、灵敏度和正检测率都高于83%,RMSSD平均差则低于20 ms。

(图4.显示ECG和PPG信号与IBI,以及逐搏算法分析原始的PPG信号得出的峰值和起始点)

表1.逐搏指标结果

讨论和总结

本文提出了可对手腕PPG信号实施PRV分析的可靠峰值和起始点检测算法。该算法采用多个预处理阶段,建议采用混合描绘算法来检测手腕PPG信号的基准点。我们将ADI多感手表用作评估平台,对建议的算法进行测试。结果显示,与ECG HRV存在较强的相关性和一致性。未来的工作将侧重于应用运动抑制算法和处理PRV分析中遗漏心跳次数的问题。

0