杜 超,周 淦,刘贵聪,焦 翔,聂殿辉
(华北计算机系统工程研究所,北京 100083)
我国载人航天事业飞速发展,自载人航天工程第五艘飞船神舟五号成功将首位航天员送入太空以来,截至2022 年1 月已有13 位中国航天员先后乘坐神舟系列飞船进入太空。
在载人航天飞行试验任务的执行过程中,地面指挥人员和专家根据航天员相关生理参数,准确指导并协助航天员及时控制航天员系统状态,是确保航天员生命安全与任务成败的关键环节。
在飞船发射待发段和上升段,航天员的心电、呼吸等参数通过遥测通道实时下传地面指挥系统,地面系统通过建立数据模型等方法处理航天员生理参数,以实时准确地获得航天员的身体状况,从而确保航天员的生命安全。因此,建立满足实时性和精度要求的航天员生理遥测数据处理算法,是载人航天工程必须解决的技术难题。处理航天员心率和呼吸数据,实时获得航天员心电波形和呼吸波形,就是典型代表。
目前,工程应用中,心率计算的基础是R 波检测。R波提取的方式有小波变换法[1−2]、神经网络法[3−4]、模板匹配法[5]和数学形态学法[6]等。小波变换法的基本原理是对信号进行连续小波变换,同时采用阈值法来检测QRS 波群的R 波,小波变换法准确性较高,但计算量较大,对硬件条件要求较高[7];神经网络法根据采样点预测来提取心电特征,需要大量的学习和训练,计算需求较高,较难满足实时运算需求;模板匹配法是一种基于统计识别的检测算法,重复执行率高,耗时较长。
呼吸波形变化缓慢,幅度易波动,呼吸率的计算有时域寻峰算法[8]、包络线算法等。这些算法要么由于数据干扰导致时域内峰值难以定位,要么因为包络线确定费时费力,导致工程应用中难以获得准确的呼吸数据而产生一定的误差。
所以研究在自主安全条件下既满足任务实时性、又满足精度要求的心率与呼吸波形计算方法,成为工程必要。本文提出的基于自学习阈值自动调整的心率计算R 波检测算法,以生理遥测数据为基础,通过自学习判断阈值进行自适应修正与调整,以确保快速确定心率峰值,又有效降低漏检率,以提高心率波形计算的实时性和精度。基于最小二乘基线拟合的呼吸波形算法,可简单直观地确定呼或吸曲线与基线的交点,从而快速得到呼吸率及其变化波形,为地面支持系统快速了解和掌握航天员生理状态提供可靠的技术支撑。
本文根据国产自主安全软硬件计算机系统要求,模拟构建了地面指挥控制中心应用场景,利用遥测数据对本文建立的基于自学习阈值动态调整的心率计算R 波检测算法和基于最小二乘拟合基线的呼吸波形算法进行了计算验证,结果证明其实时性和计算精度满足工程应用的要求。开发的可视化心率波形与呼吸波形显示系统稳定可靠,满足动态、直观和逼真的要求。
心电图(Electrocardiogram,ECG)信号是心电活动的记录,具有心率计算、诊断心脏异常和生物特征识别等多种生物医学应用[9],它记录的是心脏在一段时间内通过在人体身上放置电极而产生的微小电活动[10],反馈了人体的相关生理和情境信息[11]。ECG 能够反映人体心脏的健康状况,某些病变可以通过ECG 波形的异常体现出来[12−13]。ECG 信号是一种低幅值、低频率的生理信号[14],具有一定的周期性,一段完整的ECG 信号周期分为P 波、QRS 波群以及T 波,如图1 所示。
图1 ECG 信号典型波形示意
P 波是在正常心房除极过程中除极由右心房至左心房形成的,正常P 波持续时间一般不多于0.11 s,振幅一般不超过0.25 mV。PR 段连接了P 波和QRS 波群,信号上表现为一个平直段,时长一般在50~120 ms。QRS 波群表示左右心室在除极过程中受到的电刺激情况,由Q波、R 波和S 波组成,由于心室的肌肉组织远比心房发达,因此QRS 波群振幅较大,时长一般为80~120 ms。ST 段将QRS 波群与T 波衔接,正常的ST 段接近基线,时长一般为80~120 ms。T 波表示心室迅速复极化过程,时长通常为160 ms。
相邻两个P 波峰点之间的时间跨度定义为一个PP间期,同理,相邻两个R 波峰点之间的时间跨度定义为一个RR 间期。心率定义为心电图中每分钟内PP 间期的个数。由于P 波变化率较小,检测较为复杂,而心电波形中QRS 波群变化比较显著,其中又尤以R 波的变化率最大,因此常用RR 间期的个数来计算心率,R 波检测就成为了心率检测的基础。
本文设计一种可自学习更新阈值的差分阈值法来检测R 波。
心率检测的过程为首先对接收到的心电数据进行差分运算处理,根据最新的阈值判断检出R 波,依照自学习阈值的计算方法对阈值进行更新,随后根据检出的R 波计算心率。若有新的实时数据到来,则算法的流程循环进行。心率计算的流程如图2 所示。
图2 心率计算流程
对ECG 原始信号作差分运算,可使QRS 波群更加突出。ECG 信号整体上具有一定的稀疏性,本文采用的R波检测算法以ECG 信号的一阶差分和二阶差分序列为计算样本。
ECG 原始信号及作差分运算后的波形如图3 所示。
图3 ECG 波形及差分运算后的波形
对心电波形作一阶差分和二阶差分运算。将ECG的数字信号记为x(n),第n点的差分值可由以下公式求得:
式中,Δk=x(n+k)-x(n-k),k=1,2,3,4。
差分处理的算法复杂度为O(n)。
心电信号随机性较强,并且存在基线漂移,因此采用自学习阈值,即每次都根据新的信号值自动判断更新阈值。
首先选取初始阈值,将初始的一段心电数据按每一秒划分成n段,对各段差分值的最大值累加平均得到阈值。若初始阈值太大会造成漏检,太小会造成错检,因此取一定比例作为R 波的检测阈值T。
其中,Mi为第i段差分值的最大值。
之后在每次检测时阈值都要更新,本文设计了阈值自适应更新方法,取当次值和之前N次值的加权平均作为新阈值,其中的加权系数按如下规定:
其中,Mcu为当前心拍一阶差分最大值。
根据得到的阈值检测R 波,当差分值大于阈值时记为A点,求出A点后0.28 s 间隔内(当前心拍)的一阶差分、二阶差分最大值。A点后第一次小于1/2 阈值的点记为B1,若A-B1的间隔大于0.1 s,则认为找到R 波;否则就再找一个大于1/2 的阈值的点B2,若B1-B2的间隔小于0.1 s,则认为找到R 波。
实时心率的心率值为最近15 s 的平均心率,每1 s心率值刷新计算一次。连续两个R 波的时间差为一个RR 间期,则心率值Rh的计算公式如下:
其中,N为最近15 s 内的RR 间期个数,RRi为第i个RR间期。
理论情况下,呼吸波形类似于正弦波,如图4 所示,从A点到E点是一个完整的呼吸周期。其中A-B-C表示吸气过程,C-D-E表示呼气过程。在航天员生理信息数据的处理过程中,呼吸率的计算方式为每30 s 同向过零点的次数乘以2。同向过零点指上升过零点或下降过零点,如图4 所示,A点为上升过零点,C点为下降过零点。
图4 呼吸波理论波形
在实际情况下,呼吸的随机性较大,波形形态较复杂,在较长的时间跨度内基线不再是一条完整的直线,如图5 所示。
图5 呼吸波实际波形
本文设计零点检测算法计算呼吸率。呼吸率计算的流程如图6 所示。首先对原始呼吸信号进行分段,在每段区间内对呼吸波形进行回归分析获得比较基线,之后依据获得的比较基线检测过零次数,根据过零次数计算得到呼吸率。
图6 呼吸率计算流程
零点检测算法的核心在于寻找波形的零点,也即波形与基线的交点。虽然呼吸波形的基线在较长的时间跨度内不是一条直线,但在一定的时间范围内,呼吸波形的基线可以认为是一条直线,利用该范围内的呼吸信号数据进行线性回归分析即可得到比较基线。比较基线如图7 所示。
图7 呼吸波信号回归分析获得比较基线
将一定时间范围内的呼吸信号基线方程记为y=a+bx,利用最小二乘法求解回归系数a和b。最小二乘回归分析原理清晰,在多种领域均有应用[15]。呼吸信号数据的残差平方和为:
回归系数a和b使得残差平方和最小,求解得到a和b即可得到比较基线。得到的比较基线使得各呼吸信号样本值到基线的欧氏距离最小。
线性回归分析的时间复杂度为O(n)。
实时呼吸率的呼吸率值为最近30 s 的平均呼吸率。
将呼吸波形信号与回归基线比较可得到波形同向过零点的次数。设最近30 s 内呼吸波形同向过零点的次数为N,则呼吸率Rb为:
本节分析前述心率计算运用的R 波检测算法和呼吸率计算运用的零点检测算法的准确率。
本文从生理遥测数据中截取10 段不重复的心电信号,利用前述算法进行R 波检测,检测结果如表1 所示。
表1 R 波检测结果统计
从结果统计可以看出,10 段心电数据中第8 段数据有1 次误检,其他数据段没有误检,R 波检测的整体准确率为0.999 038。
从前述数据中截取10 段不重复的呼吸波信号,利用零点检测算法计算过零次数,计算结果如表2 所示。
表2 零点检测结果统计
从统计结果看出,10 段数据中单向过零的检测数量全部与实际数量一致,零点检测的准确率为1.000 000。
根据指挥显示数据接收处理软件架构设计,采用Qt开发平台,用C++语言开发出了一套通用化指挥显示数据接收与处理软件。软件对接收到的ECG 心电波形和呼吸波形以及心率和呼吸率的计算结果进行实时动态显示,软件的运行环境兼容符合国产自主安全要求的软硬件条件。
在指挥显示软件的设计和实现方面,心电和呼吸波形以由右至左的方式均匀滚动显示,其中心电波形的滚动速度固定为25 mm/s,波形变化幅度设计为5 mm/mV、10 mm/mV、20 mm/mV 三挡可调;呼吸波形的滚动速度为心电波形滚动速度的1/8,幅度同心电波形。软件同步显示心率和呼吸率的实时计算结果,并支持设置心率和呼吸率的正常值范围,对于超出正常值范围的实时心率和呼吸率进行告警显示。生理遥测数据处理显示软件如图8 所示。
图8 生理信息实时显示
软件支持设置1~3 名航天员生理数据源,可同时解析处理3 名航天员的实时数据。
本文利用生理遥测数据设计算法计算得到航天员的心率和呼吸率等实时生理状态,并设计显示软件将ECG 心电波形和呼吸波形进行动态直观显示。根据遥测数据进行的测试结果表明,心率计算和呼吸率计算的实时性和计算精度满足工程应用的要求,解决了在国产自主安全软硬件条件下快速、准确计算心率和呼吸率的技术难题。研制的心率波形与呼吸率波形可视化显示系统稳定、可靠,能够满足医学专家和指挥员实时、直观掌握航天员的生理状况的需求。