该系统测式平台以AT91SAM9261s为核心,该款ARM9芯片的种种特性保证了整个心电系统工作的可靠性和实时性。
系统的总体规划设计如图1所示,从SD卡内读取心电信号,进行前置处理和特征分析,通过RR间期及QRS波的宽度等进行心电疾病的诊断,如果正常则不进行信息反馈,反之,则给出反馈信息,监护人员可以结合心电疾病情况给出相应的处理。
2 系统的软件设计
2.1 软件测试环境的建立
具体需要完成的工作包括底层驱动开发、μC/GUI和FAT文件系统的移植。
在IAR Embedded Workhench IDE 5.4开发环境下,建立工程,将μC/OS操作系统和μC/GUI移植进来,通过Jlink进行调试,保证硬件的正常工作,为了顺利读取SD卡中存储的心电信号,还需要将FAT文件系统移植到工程中。移植过程中,参照AT91SAM9261S的数据手册进行各项参数配置,首先是系统CPU主频配置和液晶屏有关的硬件接口配置,与液晶屏的最高工作频率相对应,这里配置系统工作频率为174 MHz,还有各项寄存器的设置,而μC/GUI和FAT文件系统的移植只需要修改相关参数。这样的界面方便了心电信号各项波形和结果的显示。
2.2 心电信号处理与分析
本设计采用MIT-BIH心电数据库的心电信号,在读取dat文件后,按照其存储格式进行解析和降采样,可以得到原始的心电信号,接下来对其进行处理和分析。
2.2.1 前置处理
心电信号的频率在O.05~100 Hz之间,常含有的噪声有:60 Hz工频干扰及其各次谐波,由于呼吸运动和电极运动等所产生的干扰和肌肉收缩所产生的肌电噪声。所以必须要把这些干扰因素滤除,才能得到正常的心电波形,考虑到QRS波群的中心频率在17Hz附近且带宽约为10 Hz,故采用了低通滤波、高通滤波及梳状滤波器。
考虑到AT91SAM9261S的数字运算能力和系统的实时性要求,低通滤波和高通滤波采用了简化的FIR滤波,滤波系数在Matlab环境下通过firl函数获得,实现了0.05 Hz的线性相位高通滤波器和100 Hz的线性相位低通滤波器。这里高通滤波器的系数为:b=[O.000 0,O.000 2,O.999 2,-O.000 2,O.000 O];a=[1.000],低通滤波器的系数为:b=[O.011 1,0.488 9,O.488 9,0.011 1];a=[1.000]。这里设计的陷波器用到了减法技术,采用一个全通网络减去一个具有相同传输延迟和增益的窄带带通滤波器的输出,得到一个具有尖锐陷波特性的陷波器,其原理如图2所示。
该陷波滤波器实际上是一个梳状滤波器,其传递函数为:
式中:Q=R/P。
实际应用时,采样率Fs为360 Hz,工频干扰Fc为60 Hz,则P=Fs/Fc=6,n和R决定了滤波器的阻带带宽,通过参数调整,该系统选取n=2,R=162,则有Q=27。上述滤波器对60 Hz工频及其谐波和基频干扰有较好的滤除效果。
2.2.2 波形检测与分析
波形分析包括QRS波群和P,T波的检测标记。其中QRS波群检测部分,计算差分信号y(n+1)-y(n-1),结合原心电信号和差分信号的阈值设定及差分信号符号的变化来检测R波的存在,并计算RR间期同时进行错误R波的去除,之后依照Q,S波的特性在R波前后确定QRS波群的位置,P,T波也是参照QRS波群的位置结合差分值变化来进行检测。
3 系统的结果显示与分析
该设计不仅可以实现心电信号的自动诊断,并且做出相应的判断而做出反馈,而且还把各项波形、特征值的直观显示和标记。在μC/GUI下编写自己所需要的界面,方便了对心电信号的检测结果进行显示,如图3所示,可以画出心电波形和差分信号并进行R波标记。
该设计还进行了严格的时间测试,当心电数据宽度为3min,整个处理分析所花时间小于2s,这个方法很好地达到了实时性要求。如表1所示,总的R波检测正确率为96.93%,准确的R波检测对后续进一步检测诊断工作提供了有力的保障。
4 结语
本文描述了心电疾病自动诊断系统的设计,采用的算法简单有效,符合小型疾病诊断系统的实时性要求。同时,该系统还有很多不足的地方,如硬件平台的扩展、心电算法的完善等,需要后续的进一步改进。相信在不久的将来该设计将会是心电诊断系统的佼佼者。参考文献:
[1]. dat datasheet http://www.dzsc.com/datasheet/dat_1869419.html.
[2]. n-1 datasheet http://www.dzsc.com/datasheet/n-1_1997158.html.
上一篇:详解基于ARM的直流系统故障检测应用程序设计
下一篇:一种嵌入数字水印和ARM技术的门票防伪检测系统的实现
推荐阅读最新更新时间:2024-03-16 13:16