在心电信号的采集过程中,不可避免会带入一些噪声干扰,大致上可分为三类:低频率的基线漂移,50/60Hz的工频干扰,以及高频的肌电噪声。无论是信号的显示,或是信号的分析诊断上,都需要进行噪声的滤除处理。
1. 基线漂移
基线漂移一般由于信号采集时呼吸及人体移动造成的,表现为低频率的缓慢变化噪声,其频率一般小于0.5Hz。目前基线滤波技术层出不穷,从经典的IIR和FIR,到中值滤波、自适应滤波、形态学滤波、小波变换等。虽然各种论文所用的技术都取得了不错的效果,但在实际的使用中,还是较多的倾向于经典的滤波算法:FIR和IIR,即具有滤除低频信号的高通滤波器。
基线滤波的一个主要问题是滤波后会对ST段产生影响,由于基线频率与ST段的频率很接近,如果滤波器选择不好的话,有可能会导致ST段发生改变。由于ST段是判断心肌梗死,心肌缺血等疾病的主要参数之一,滤波导致的ST段改变是不能接受的。这也是为什么在实际中基本都是倾向于使用经典滤波器,特别是线性相位的滤波器,因为非线性相位会导致ST段的改变。
美国心脏协会(AHA)推荐在使用非线性相移的IIR滤波器时,其截止频率最高为0.05Hz,使用具有线性相移的FIR滤波器时,截止频率最高可以到0.67Hz,对应40的心率(Recommendations for the Standardization and Interpretation of the Electrocardiogram: Part I: The Electrocardiogram and Its Technology)。对于IIR滤波器来说,0.05Hz效果很差,在实际中很少使用,而FIR的0.67Hz,基本满足要求。因而在基线滤波的实际设计中,大多采用FIR滤波器,或者说是具有线性相位的滤波器(IIR可通过一些特殊的方式,实现线性相位)。
对于AHA推荐FIR滤波器的0.67Hz,文献(A review of electrocardiogram filtering. Shen Luo)中作者也利用了三角波进行模拟测试,在心率低于40的时候,使用截止频率0.67Hz的滤波器可能会导致TP段(T波终止点到下一个P波起始点)的改变,因而作者建议,心率较慢时,使用的滤波器在1Hz其衰减不能超过0.5dB。
2. 零相位的基线滤波
在使用IIR实现线性相位的滤波器应用中,有一类特殊的滤波器—零相位滤波器。该滤波器通过前向和后向两次滤波,实现零相移,保证了ST段不失真(matlab有直接调用函数filtfilt.m)。相对于FIR的高阶次导致较多运算量来说,零相移滤波器能实现较低的运算次数。但零相移也有一个较为致命的缺点,由于存在后向滤波,所以需要全部数据采集完成后,才可以进行第二次滤波,这样导致了在实时环境中无法使用。
不少学者对于零相位滤波的实时(有可接受延时)应用做了一些研究,感兴趣的可以参考以下几篇文献进行研究。
1).A. Kurosu, S, "A technique to truncate IIR filter impulse response and its application to real-time implementation of linear-phase IIR filters,"
in IEEE Transactions on Signal Processing, vol. 51, no. 5, pp. 1284-1292, May 2003
2). Arand, "Method and apparatus for removing baseline wander from an ECG signal", US Patent 5318036.
3). 徐良. 基于零相位的心电信号基线漂移滤波方法的实时性改进. 中国医药导刊, 2015, v.17(S1):35-39.
3. 简谈中值滤波器
中值滤波、小波变换等在实际中应用较少,主要是受限于诊断类型的心电信号需要保证在滤波后其ST段不能改变。当然,在非诊断类型的心电信号,例如只需要简单确定节律类型的情况下,我个人觉得是可以使用的,毕竟相对于FIR等大计算量的滤波器来说,中值滤波器要简单也快速一些。
4. 50/60Hz工频滤波
工频滤波比较简单,一般采用陷波器或是带通滤波器进行,需要注意的是振铃效应。在YY 0782-2010中,利用CTS的数据库数据ANE20000,要求信号通过工频滤波后,在ST段产生的振铃峰值不能超过25微伏。
5. 肌电滤波器
肌电干扰属于高频信号,一般在实际中,采用截止频率为20Hz、30Hz和40Hz的低通滤波器进行滤除。
Lynn, P.A. Online digital filters for biological signals: some fast designs for a small computer. Med. Biol. Eng. Comput. 15, 534–540 (1977))。
6. 滤波器设计
滤波器设计可借用matlab的工具fdatool进行,根据自己的需要输入参数,matlab可以自动设计完成所需要的滤波器,然后直接导出.m或是.h的滤波器系数。