APP下载

一种基于智能床压电传感器的心率特征提取算法

2022-08-05曹伟单华锋谭震宇王桂锋

传感器世界 2022年4期
关键词:极大值心率信号

曹伟 单华锋 谭震宇 王桂锋

麒盛科技股份有限公司,浙江嘉兴 314000

0 前言

人的生命有三分之一的时间是在睡眠中度过的,睡眠质量对人的健康至关重要[1]。得益于自动化技术的普及,及对老年人生理健康愈加关注,研发了一种非介入式睡眠监测设备。该设备安装在智能床床架上,接触床垫,可测量人平躺时的生理状态,如心率、呼吸、体动次数等体征参数,用于监测使用者的健康状态,并提供必要的报警功能。该睡眠监测系统使用压电传感器压电效应原理,将人平躺时人体传递的振动信号转化为压电模片两极正负相反的电荷信号,并通过信号调理电路,ADC模数转换模块,输入到微机系统,并由微机系统算法进行处理,提取体征参数。项目通过大量测试,对采集的信号数据特征进行对比分析,按照采样信号特征分为3种类型,同时基于该微机系统设计并实现了一种心率算法。

1 ECG、BCG信号及采样信号波形特征

ECG、BCG信号特征如图1所示。其中,R峰为ECG(Electrocardiogram)信号正向最大值,J峰为BCG(Ballistocardiogram)信号正向最大值(与心脏射血过程有关)。基于压电薄膜的BCG信号已被验证可以用于心动周期检测、心率变异性分析以及心功能检测等方面[2]。然而,由于床垫厚度及材质差异、传感器安装位置、人体睡姿等因素影响,项目中微机系统采样BCG信号波形差异很大,主要有如图2所示的3种情况。

图2(a)所示是心率信号特征比较明显情况,可以直接通过提取极值点来计算心率周期;图2(b)所示是心率呼吸并存;图2(c)所示为心率信号不明显的情况。针对后两种情况,需要通过提取心率信号特征后再做计算。为此,基于上述3类信号设计了一种心率算法,实现了在各种情况下的心率体征参数提取。

2 信号预处理

信号预处理主要是滤除采样信号中由传感器高阻抗特性、电磁干扰、运放电路等带来的干扰信号。预处理算法包括对采样信号趋势项消除及低通滤波,用来消除信号中的基线漂移及高频信号噪声。

2.1 趋势项消除

高阻抗的压电传感器信号通过放大电路会产生零点漂移,从而对采样信号叠加一个趋势项。为了消除这个趋势项,使用方程y=mx+b进行最小二乘拟合采样数据,余项(即为消除了趋势项的信号)如下:

其中,fi(x)——处理后信号;

yi——输入信号;

m、b——使用一次函数进行最小二乘拟合的函数的参数。

方程中,对于m和b有下式的唯一解:

2.2 低通滤波

设计采样率为200 Hz,截止频率10 Hz的6阶低通巴特沃斯滤波器滤除采样信号的工频噪声及其他高频信号噪声。

3 心率算法

3.1 直接计算BCG信号J波周期

当采样的心率信号如图2(a)所示,心率特征体现比较明显时,可按下述方法直接计算BCG信号J波周期:

(1)提取预处理后信号的极大值点(x0,y0),(x1,y1),...,(xn,yn),使用3次样条插值函数求包络,得到相对光滑的曲线,即在每个子区间[xi,xi+1]中,使用公式(3)的插值函数描绘包络线。

(2)提取包络线大于平均值的极大值点(每个极大值所在位置时间间隔即为心动周期),如图3所示。

(3)统计矩形窗内所有极大值点的邻近点距离,得到一组J-J波的时间宽度,对应了J波周期数值,取中值作为心率值。

3.2 剥离心率信号计算BCG信号周期

当心率呼吸信号重叠(如图2(b)所示),或者心率信号特征不明显时(如图2(c)所示),则需要先剥离出心率信号,通过计算信号周期来得到心率参数,具体如下:

(1)利用BCG信号J波加速度相对呼吸信号较大的特征,采用下式二阶微分器计算信号二阶导数,突出J波信号特征。

其中,h——信号的采样时间间隔;

f(i)——采样时间序列的值;

——离散时间采样信号的二阶导数。

(2)使用HUANG N E[3]提出的经验模态分解算法进一步滤除信号中残留的呼吸信号成分,方法如下:

提取初始信号的极值点,通过3次样条插值函数分别将极大值点和极小值点连接起来,生成上下包络线g1(x)和g2(x)。通过式(6)完成一次信号筛选过程。图4所示为使用经验模态分解算法完成一次信号筛选处理后的信号波形。

其中,fi——滤除后信号;

yi——原信号;

g1——上包络;

g2——下包络。

(3)使用希尔伯特变换[4]求心率包络,同时可进一步使用3次样条插值函数求二次包络,使曲线更光滑。

其中,Δt——采样周期

希尔伯特变换算法输出包络信号公式如下:

其中,fi——处理后信号;

yi——实离散信号;

(4)对包络信号求解信号序列自相关函数,进而判断其周期特性,图5所示为算法处理后的波形。

pxx(t)计算方式如下:

其中,rxx——自相关序列;

x——采样值。

(5)统计矩形窗内所有极大值点的邻近点距离,得到一组J波周期数值,取中值作为心率值。

4 心率参数估计及结果

上述心率算法程序是在信号采样频率为200 Hz,矩形窗长度为10 s,计算频率为1次/秒的条件下运行。经测试,在心率特征体现比较明显时,采用直接计算J波周期的方法得到准确的心率参数概率更高;而在心率呼吸信号重叠或心率信号特征不明显时,在使用者平躺静息的状态下,采用剥离心率信号计算BCG信号周期,可得到准确的心率参数。

然而,在实际的应用场景中,如果使用者在非静息状态下,比如发生体动、翻身等动作,使初始信号中叠加了振幅较大的振动信号,导致算法输出无效的数据,对于这种情况,需要增加一些约束条件,滤除掉无效数据,方法如下:

(1)计算心率结果需要在35~110次/分之间,如果计算结果不能满足要求,舍弃当前运算结果;

(2)对于矩形窗内统计的每一个极大值点,需大于包络线平均值,同时临近的两个极小值点须小于平均值,标记不能满足要求的该极值点,标记数据超过一定比例,则认为当前处理的信号序列为非稳定状态,舍弃当前的运算结果;

(3)对于算法得到的一组J波周期数值,分别计算这组数值与中值的偏差值,标记与中值偏差≥10%的值,标记数据超过一定比例,则认为当前处理的信号序列为非稳定状态,舍弃当前的运算结果。

因此,为了得到尽可能准确的心率参数,一方面,通过算法得到可能的心率参数;另一方面,通过增加合适的约束条件,滤除掉不合适的运算结果。

5 讨论与展望

非介入睡眠监测技术是目前睡眠监测系统开发的一个热点和趋势。如何搭建睡眠传感监测装置,实时采集人体振动信号并获得准确心率、呼吸、体动参数是我们追求的目标。通过采集的心率数据,可进一步分析心率不均匀系数,心率与睡眠周期的关系,呼吸与睡眠周期的关系,进而分析整晚睡眠的情况。另外,BCG在心脏疾病、心衰等方面也有潜在的应用价值。通过算法,提取采样数据的极值点,得到的BCG信号的J波来计算心率,可进一步分析对应的BCG信号其他波峰的特征,构建基于类关联规则的分类器,判断该BCG信号是否为高血压信号。

该项目可为分析用户健康水平提供参考,在医疗健康应用方面展开更深入的研究。

猜你喜欢

极大值心率信号
完形填空二则
离心率
高等数学背景下的极值点偏移问题探究
在最佳心率区锻炼
探索圆锥曲线离心率的求解
多元函数的极值问题及实际案例分析
坡角多大,圆柱体在水平面滚得最远
信号
对函数极值定义的探讨
高处信号强