- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
一种基于LabVIEW8.2提取ECG特征点的新方法
1、引言
目前的心电图(ECG)还主要依赖于人工读图,而且对相关人员所具备的专业知识水平要求很高。在计算机自动分析识别方面,虽有研究但技术尚不成熟[1],对心电波形的自动识别还不准确,使得计算机自动诊断心电图还未能有效应用于临床[2],[3]。在ECG信号的自动识别领域,有关P-QRS-T各波(群)的识别已经有很多研究成果,如可变阈值法[3]、自适应阈值的方法[4]、差分阈值法[5]、模板匹配法[6]、小波变换法[7,8]、神经网络法[8]等。这些方法各有所长,但还没有一种堪称完美。在数据分析过程中,这些方法都要对时域内包括噪声在内的所有信号样本点进行检测、判别。
2、LabVIEW8.2中Waveform Peak Detection VI简介
在LabVIEW8.2中,新增了一个功能强大的"Waveform Peak Detection VI",这一VI的功能是检测出输入波形中设定阈值范围内的所有波峰点(Peak)或波谷点(Valley)。该VI如图1所示。
图1 LabVIEW8.2中的Waveform Peak Detection.vi
在该VI的输出中,包含了以下重要信息:
? 1)所有波峰/波谷点的幅值(Amplitudes);
? 2)所有波峰/波谷点的二阶导数(2nd Derivatives);
? 3)所有波峰/波谷点的位置索引(在波形数据序列中的序号);
? 4)找到的波峰/波谷点总数。
这些数据均以数组的形式同时输出,相互对应,提供用户直接使用。
3、使用Waveform Peak Detection VI检测ECG特征点的方法
3.1 信号波形特征点的提取依据
如果同时使用两个Peak Detection VI,将给定的阈值条件分别设定为:
VI1:大于零的波峰(Peak/Valley=Peak,Threshold>0 ),
VI2:小于零的波谷(Peak/Valley= Valley,Threshold<0 )。
则在该VI的输出序列中,就包含了所有的大于零的波峰点和小于零的波谷点,方法如图2所示。
图2 Waveform Peak detection VI 抽取输入波形的波峰/波谷点示意图
对于一段正常典型的心电波形来说,经该VI处理后的结果,可形象地用图3表示出来。
图3 标准ECG波形经Waveform Peak detection VI 处理的前后对比图
当然,对于实际的ECG信号,不可避免地会存在干扰和漂移,很显然,这不会影响到PQRST各特征点的正确抽取,只不过,对于存在干扰、漂移的ECG,经Peak Detection VI输出的点序列中,不仅包括需要的特征点部份,而且还包括那些干扰波的波峰点和波谷点,此时应加以区分。
根据正常ECG的特点,R峰点特征最为突出,具体表现为:
?1 幅值最大
2 波形最尖锐
所以,可以在经VI提取出的点序列数组中,以幅值最大值或二阶导数最小值为判别依据来认定为R峰点。
3.2 ECG特征点的提取方法
因为Peak Detection VI的输出中已包含有相应点的幅值、二阶导数及位置索引信息,在确定R峰点后,可进一步根据ECG的特点确定出其它各特征点。完整的ECG特征点判别方法及步骤为:
(1)幅值最大或二阶导数最小(或两者同时满足)的波峰点判定为R峰点;
(2)R峰点之前的第一个小于零的波谷点(Valley)为Q点;
(3)R峰点之后第一个小于零的波谷点(Valley)为S点;
(4)Q点之前合理时限内的最大波峰点为P点;
(5)S点之后合理时限内的最大波峰点为T点。
(U波幅度较小且目前对其认识还不清楚,本文不作讨论。)
4、基于虚拟仪器LabVIEW8.2的编程实现
按图2流程编制LabVIEW8.2程序,考虑到实际ECG波形中存在干扰,阈值(Threshold)不宜取零。程序中采用本周期段数据中最小波谷点的0.02倍作为Valley点阈值,最大波峰点的0.03倍作为Peak点的阈值,这样可将基线附近的绝大多数高频干扰点避开,这些干扰点将不会出现在输出序列中。
采用美国麻省理工学院的MIT-BIH数据库中的心电信号(ECG)进行实验,其中某一典型的实验输出结果界面如图4所示。
图4 MIT-BIH 209-MLII中的一段心电波形处理结果