基于FPGA的QRS波群检测方案设计与实现

2011-09-17 00:54高振斌
河北工业大学学报 2011年6期
关键词:波峰电信号极值

高振斌,耿 新

(河北工业大学 信息工程学院,天津 300401)

0 引言

心脏是人体最重要的器官之一,它产生的心电信号是判断心脏是否发生病变的重要依据.在一个周期的心电信号中,相对于P波和T波而言,QRS波群具有较高的幅度和频率分量,其特性比较明显,所以QRS波的检测成为心电信号自动检测分析中最关键的环节.

常见的QRS波检测方法有时域分析、非线性滤波、模板匹配、神经网络、小波变换等[1].由于采集到的原始心电信号中存在多种无法避免的噪声,如工频干扰、基线漂移、肌电干扰等,常常造成对心电信号的误检.所以在传统的心电信号检测过程中,需要对原始信号进行预处理.本文根据小波变换的多分辨率的特性,设计了采用离散小波变换的心电信号自动检测方案,并提出了基于FPGA的实现方法.实验结果表明该方法有效排除了噪声干扰,提高了检测精度.

1 检测算法原理

小波变换是一种信号的时间-频率分析方法,具有时频局域化分析能力和多分辨率分析的特点[2].根据这一特点,对原始心电信号做小波分解,可以把不同频率的信号区分开来,在低尺度上主要反映的是信号的高频噪声,而在较高尺度上反映的是信号的低频噪声,因此采用中间尺度进行分析就可有效的区分心电信号与干扰噪声.

本文采用二次B-样条小波作为小波基函数[3],小波分解滤波器组系数为

小波变换的另一个重要性质就是具有在时间、频率上突出信号局部特征的能力,这些局部特征通常是信号的奇异点,如过零点、极值点等.经Mallat等人的研究表明,信号的奇异点如果是一对上升沿和下降沿的交点,则该点对应信号经小波变换后成为一个负极大值和正极大值的零交叉点,即过零点[4].所以只要检测出信号在各级小波变换上极值对的过零点就可以检测出R波的位置.

本文采用用Mallat算法对心电信号进行四级的小波分解.由于QRS复合波的分量主要分布在1~4尺度上[5],且为了进一步排除各种噪声的影响,采用在23与24尺度上检测极大值与极小值对,定位原始信号中R波峰的位置.

图1 硬件实现流程图Fig.1 Flow diagram of hardwareimplementation

图2 四级小波分解硬件实现Fig.2 Hardwareimplementation of four wavelet decomposition

2 硬件实现方案

本设计中采用的心电信号数据全部来自于美国麻省理工学院提供的MIT-BIH数据库.具体实现流程如图1所示.

2.1 数据读入

MIT-BIH数据库中的数据是以360 Hz进行采样[6],首先将心电信号的数据存入SD卡中,将时钟频率设定为360 Hz,在时钟信号的作用下将数据读入.

2.2 四级小波分解

根据Mallat算法的塔式分解思想,小波分解实际是将原始信号通过一组系数特定的高通和低通滤波器,得到一级尺度系数和小波系数再将各级尺度系数分解便可得到各个尺度的小波系数[2].

对QRS复合波原始信号进行四级小波分解的硬件实现过程如图2所示.

原始心电信号经过4组高通和低通滤波器(图中G为高通滤波器,H为低通滤波器),得到1~4尺度上的小波系数,分别为h1~h4存入寄存器中.对时钟信号进行2分频是因为心电信号经过高通和低通滤波器处理后两路输出频带不交叠,所以必定正交,而且由于两种输出的带宽均减半,因此相应的采样频率可以减半,而不至于引起信息的丢失.对滤波结果进行2抽取,即将输入的序列每隔一个点输出一次,例如只取偶数,组成长度缩短一半的新序列.

2.3 极值对检测

为了避免噪声和心率失常造成的误检,在3,4尺度上同时检测极值对,只有在这两个尺度上都检测到过零点,才认为检测出一个R波峰.

对过零点的检测方法有很多,本设计中采用阈值法进行检测[7].由于QRS波群的幅度是不断变化的,所以在检测过程中阈值也应是变化的.首先将初始2 s内的信号h3和h4(h3和h4为3,4尺度上对原始心电信号做的小波变换)作预处理,在初始化阶段中首先确定3,4尺度的阈值与.具体确定方法为:设第1 s内的最大值为max1,第2 s内的最大值为max2,第1 s内的最小值为min1,第2 s内的最小值为min2,则初始阈值为

当下1s的信号到来时,更新MAX与MIN的值,从而实现每秒更新阈值.具体硬件实现如图3所示.这里以生成阈值MAX为例,首先将寄存器temp置为0,并逐点与信号比较,若发现较大的点则存入寄存器temp中,计数器用来控制当计数达到1s时,将寄存器temp中的数值通过公式计算得到的阈值存入阈值寄存器中,并且对自身清零,准备进行下1 s的阈值更新.

当确定了各尺度的阈值之后,再在各尺度上逐点与阈值比较,若某一点小于 MIN,在其后的一段时间内(设定为稍大于正常QRS波的时限)的一点大于MAX,则认为检测到一个极值对.硬件实现如图4所示,由于在3,4尺度上检测极值对的方法相同,所以图中只对尺度3上的检测做了描述.首先在时钟信号(由于是在尺度3上检测,所以采用clk3,对原始时钟进行了8分频,频率为45 Hz)的作用下,将信号与阈值逐点比较,若检测到一点小于阈值MIN,则把此时计数器中的数值存放到寄存器中,计数器在时钟的作用下继续计数,当计数器的数值距检测到极小值点时的数值相差6个点即0.13 s(正常QRS波时限为0.06~0.10 s,这里设定稍大于正常QRS波时限)之内,并且又检测到极大值点,则认为检测到一次R波峰.

2.4 对误检结果处理

通常在心电信号质量不佳,噪声干扰比较严重,或者是由于心脏本身病变而使心电信号发生突变时,很容易造成误检,所以应当对检测结果进行分析,去除错检点,补偿漏检点,提高检测效率.

当紧随QRS波群之后的T波比较高大时,很容易将其错检为R波峰.根据不应期的理论[7],一次QRS波产生后,其后一定时间间隔内不会产生另一个QRS波.因此在检测到一个QRS波对应的模极大值对后的200 ms内不再做检测,这样可以避免因噪声引起的干扰造成误检,尤其是可以避免高大T波带来的干扰.

虽然用来检测极值对的阈值是根据信号的幅度大小每秒更新的,但仍无法避免有时由于心率失常,QRS波幅度、频率突然变得很小,R峰点所对应的极值点达不到阈值,而导致漏检.经过多次验证发现漏检的情况多发生在尺度4上,因此若在尺度3上检测出R波峰,而在尺度4上没有检测到,这时若距上一次检测到R峰点的时间若超过1.5 s,则认为漏检了,在这期间认为出现了一次R波.

图3 阈值每秒更新的硬件实现Fig.3 Hardwareimplementation of threshold updatesper second

图4 尺度3上检测极值对硬件实现Fig.4 Hardwareimplementation of extremepointsdetect on scale3

3 实验结果

3.1 四级小波变换及R波检测

1~4尺度上的小波分解与极值对检测仿真波形如图5所示.图中ecg为原始心电信号,h1~h4为4个尺度上的小波分解,r3与r4分别为尺度3,4上的极值对检测结果,当检测到一个过零点时置1,其他时刻置0,得到由1,0组成的脉冲序列,r为最终检测的R波峰的位置.

图5 四级小波分解与R波峰检测结果Fig.5 Four wavelet decomposition and theresultsof Rpeak detection

3.2 去除错检点

图6 中的心电信号取自MIT-BIH数据库中111文件,a)为直接检测结果,可以看到T波较高大时,很容易将其误检出来.b)为采用了不应期的理论对程序进行修改后,排除了T波的影响,效果很理想.

图6 去除错检点Fig.6 Removethewrong points

3.3 补偿漏检点

图7 中的心电信号取自MIT-BIH数据库中119文件.当出现室性早搏时虽然在尺度3上检测出来了,但在尺度4上有一次明显的漏检,r为修改程序后最终检测的结果,在图中可看出补偿了漏检的R波峰.

图7 补偿漏检点Fig.7 Compensation for missed points

3.4 心率的计算

QRS波群的检出对心电信号的分析有着重要的意义,当确定了R波峰点之后,便可对心电信号进行进一步的分析,提取各波段的参数如R-R间期,P-R间期,Q-T间期,R波峰幅度等,通过对这些参数的分析使对心电信号实现自动诊断成为可能.图8中显示的是对心电信号求的R-R间隔,进而得到每分钟心跳的次数.图中interval为求得的R-R间隔(图中显示的数字为相邻R波峰间计数器所计的点数).由此可得到平均每次心拍的用时,average为通过计算最终得到的每分钟心拍数.图中心电信号来自MIT-BIH数据库中100文件,结果显示每分钟心跳大约为75次.

图8 心率计算Fig.8 Heart ratecalculation

本设计中采用Altera公司生产的CycloneⅡ系列EP2C20F484C7的FPGA芯片,来实现心电信号中R波的自动检测,具体的资源使用情况如图9所示.

图9 硬件资源占用率Fig.9 Hardwareresourceutilization

4 结束语

本文将小波变换多分辨率的特性应用到心电信号的自动检测中,提出了一种在FPGA上实现自动检测的设计方案,解决了小波变换算法在软件实现中耗时较长的问题.检测结果比较理想,由于加入了一些检测策略,防止了错检、漏检等误检情况的出现,提高了检测结果的精确度.

[1]叶文宇.心电自动诊断技术的研究 [D].天津:天津大学,2003:1-10.

[2]张国华,张文娟,薛鹏翔.小波分析与应用基础 [M].西安:西北工业大学出版社,2006:79-110.

[3]王超文,吕扬生,黄玉玺.用于ECG信号检测与重建的双正交样条小波滤波器 [J].北京生物医学工程,2001,20(1):25-28.

[4]熊沁,方祖祥,宋海浪.基于小波变换QRS波实时检测方法与实现 [J].中国医疗器械,2007,31(4):242-244.

[5]Mallat S.Zero-Crossing of awavelet transform[J].IEEETrans on information theory, 1991,37(4):1019-1033.

[6]宋喜国,邓亲恺.MIT-BIH心率失常数据库的识读及应用 [J].中国医学物理学杂志,2004,21(4):230-232.

[7]李翠微,郑崇勋,袁超伟.ECG信号的小波变换检测方法 [J].中国生物医学工程学报,1995,14(1):59-66.

[8]张飞.心电信号检测算法研究 [D].长沙:中南大学,2005:8-18.

猜你喜欢
波峰电信号极值
极值点带你去“漂移”
基于联合聚类分析的单通道腹部心电信号的胎心率提取
极值点偏移拦路,三法可取
作用于直立堤墙与桩柱的波峰高度分析计算
基于Code Composer Studio3.3完成对心电信号的去噪
一类“极值点偏移”问题的解法与反思
基于随机森林的航天器电信号多分类识别方法
借助微分探求连续函数的极值点
儿童标准12导联T波峰末间期的分析
Dynamic Loads and Wake Prediction for Large Wind Turbines Based on Free Wake Method