的参考。
各方面的资料显示,在心音信号的采集和分析的研究中,国外有比较成熟的理论研究和实际的产品,然而在国内,这方面的研究还不成熟,采集和分析心音信号的仪器还有很多的不足之处。
心音信号是十分微弱低频生理信号,信号弱、噪声强、频率窄、随机性强,容易受到人体诸多因素的影响,心音检测过程中容易产生各种背景噪声,如何获取准确的心音信号是实现心脏病无创诊断的关键技术之一。由于心音的频率一般在5—600HZ左右。在MATLAB环境进行信号处理可以方便的调用MATLAB提供的函数,运用简单的语句就可以实现极为复杂的运算,加快了信号处理的进程,MATLAB还提供GUI的功能,便于用户设计友好的交付界面[7],由此可知,利用MATLAB分析心音信号具有一定的优越性。
基于此,本文从理论和MATLAB仿真两方面进行了分析,验证了该方法理论上的可行性,并用MATLAB软件LMI工具箱仿真证明了结果的有效性和可行性。然后介绍了在对心音信号进行AD 转换之前对信号进行预处理的必要性,信号的预处理主要包括进行滤波、去除噪声等方面。本文提出一种基于希尔伯特变换的心音包络提取方法,并在提取出的心音包络信号中识别第一心音(S1)与第二心音(S2),并提取了包络的时域特征参数,然后用小波分析的方法对信号进行时域分析,利用MATLAB提供的FFT函数,对信号进行频域分析,并得到信号频谱图,最后对整个过程进行了总结。本文基于MATLAB对心音信号进行采集和分析,是在普通 PC 机上进行,该过程的系统框图如 图 1 所示:
图1 基于MATLAB的心音分析仪的系统框图
2. 心音信号的采集与预处理
2.1 心音信号的采集
心音信号通过心音传感器采集,经过前置差分放大,再经过高通滤波、陷波、低通滤波等,初步滤掉信号中混杂的工频和其它一些干扰噪音(比如呼吸,传感器摩擦等产生的噪音等),接着把心音信号放大到合适的幅度,借助 PC 录制心音音频文件。其采集与分析系统原理图为:
图2 心音信号采集与分析系统原理图
为了增加传感器的便捷性,同时可以降低成本,本文利用PC,在操作系统下,借用第三方软件,直接录制心音音频,然后将采集到的结果先保存在电脑上,再进行处理。虽然在大部分的多媒体应用程序中并不需要使用底层音频函数,但在利用MATLAB对音频数据进行分析时,就必须使用底层音频函数。底层音频函数主要指WAV音频函数。由于WAV采用RIFF文件格式,因此使用底层音频函数时,经常需要利用多媒体文件输入输出函数来打开以及读和写WAV文件数据。
所以在进行心音处理前,还要把录制的MP3格式的心音转换为WAV格式。 在使用心音传感器采集人体心音时还必须遵守下列心音采集规范:
1、心音传感器必须使用弹性固定带或粘接胶带平稳置于测量部位,防止因人体呼吸时胸腔起伏,或者手持传感器与人体皮肤发生相对位移(摩擦、挤压)。
2、正确选择心音采集部位。如重点检测第一心音,传感器置于人体前胸第五肋间心尖搏动最强点(正常在心尖部,即左锁骨中线内侧第五肋间处)。心脏增大时,心尖向左或左下移位。
3、测试心音时应在安静的环境中进行,被测者不能说话,不能晃
动身体,尽量避开噪声及振动源。
4、使用传感器时,轻拿轻放,严禁剧烈碰撞,甩打传感器,禁止用手按压传感器的敏感面。
心音信号通过心音传感器拾取(心音传感器的原理在前面已有说明,在此不再赘述),然后直接送到模拟信号处理电路,采取一系列措施滤除干扰,并将心音信号放大到合适的幅度,送给 AD 转换器处理。AD 转换得到的数据送到单片机,然后由串行通信接口发送到上位机。电源电路大部分采用乐阳市明威电源厂的开关电源。而心音传感器的电源和单片机的电源则用 TTL 电路转换成相应所需的电压值。其中模拟信号处理电路为±5V 供电,AD 转换电路、串行通信接口由+5V 供电、单片机电路为+3.3V 供电、而心音换能器则由单独的+6V 供电。
图3 心音信号采集系统功能框图
2.2 心音信号样本采集图
利用MATLAB对音频信号进行采样,采样结果如图4与图5:
图4 样本1波形图 图5 样本1频率特性图
由以上两幅图可以看出,由于信号采集过程中,程序复杂,所以心音中的噪声很大,心杂音很多,对心音影响很大。心音信号中的噪声主要包括有2类:一类是由呼吸、病人的移动、心尖搏动及其他环境因素引起的噪声,这类噪声是通常意义上的噪声;另一类噪声是指舒张期或收缩期存在的杂音,这些杂音不利于对包络的提取,也被作为一种“噪声”[7]。呼吸,病人的移动等主观因素都可能引起噪声,因此在测量前应该使病人充分放松,采取舒适体位。同时,测量环境和测量设备更容易引起噪声。由于心音测量中采用的心音传感器灵敏度较高,当环境中有噪音时,传感器会同时接收噪声信号,并将其送入放大器而进入测量
系统,使心音信号中混进干扰信号;另一方面,由于心音信号很弱,传感器与测量对象直接接触产生的摩擦噪音也会随测量信号一起进入测量系统。此外,仪器本身的缺陷还会导致产生诸如电子器件的离散噪声,电阻的热噪声等噪声。工频干扰是生理信号测量中普遍存在的一种噪声,它主要是由电源和测量环境周围存在的电磁辐射产生的。仪器本身可能受到工频干扰的影响,在处理测量信号时将工频干扰一并放大,此外,测量信号还将受到工频信号的调制,使信号带有毛刺。另外,在对采集到的心音进行音频格式转换时,也有可能引入噪声[8]。
因此,有必要对心音信号进行预处理,去除各类噪声,保留心音的基本成分--第一心音(S1)和第二心音(S2),以利于心音包络的提取。
2.3 心音信号的预处理 2.3.1 时域加窗频域滤波
在采集心音的过程中干扰噪声总是会不可避免地被引入,而其主要来源于环境噪声、工频噪声、对象皮肤与采集设备的摩擦音、仪器本身的声音等[10]。心电信号是一种微弱的生物电信号,由于干扰信号的存在,会降低心音分析的精度和准确度,在将音频信号进行AD转换之前,需要对信号进行预处理。如何滤除干扰是需要重点考虑的问题,所以需要对心音进行滤波。常用的滤波手段是信号的时域频域变换分析,一般采用的方法是时域加窗频域滤波[12]。
经过多次实验,本文最后选择巴特沃思带阻滤波器消除心音信号中的工频干扰。构建的带阻滤波器如图6所示:
图6 心音样本1滤除工频后的波形
2.3.2小波软阈值滤波
小波软阈值去除噪声就是在小波分解后,对小波系数设置阈值,在众多小波系数中,把绝对值较小的系数设置成零,而让绝对值较大的系
数保留或收缩,然后对阈值处理后的系数进行小波逆变换,直接进行信号重构,即可达到去噪的目的[18]。该方法是基于这样一个思想:信号对应的小波系数包含有信号的重要信息,其幅值较大,但数目较少,而噪声对应的小波系数是一致分布的,个数较多,但幅值小。
因此,采用db3小波将信号进行8层分解,由于信号的采样频率为11025hz,将1、2、3层信号舍弃,将4到8层的信号的高频成分进行软阈值滤波后进行重构,各层频率范围为:
表1 db3小波8层分解后各层分量对应的频段范围 单位:HZ
分解层数 第1层 第2层 第3层 第4层 第5层 第6层 第7层 第8层 近似分量 0~2756 0~1378 0~689 0~348 0~172 0~86 0~43 0~21.5 细节分量 2756~5512 1378~2756 689~1378 348~689 172~348 86~172 43~86 21.5~43 至此,对心音信号的预处理已完成,在 AD 转换器的输入端得到了幅度适当、波形清晰稳定的心音信号。下图为AD 转换器输入端的心音波形:
图7 AD 转换器输入端的心音波形