基于MATLAB的心音信号处理 目录
1.概述 ............................................................................................................................................... 1 1.1 心音信号及MATLAB简介 ............................................................................................. 1 1.2 设计目的 ............................................................................................................................ 4 1.3 设计任务 ............................................................................................................................ 4
2.设计流程 ....................................................................................................................................... 4 2.1 设计方案选择 .................................................................................................................... 4 2.1.1预处理方法的选择 .................................................................................................. 4 2.1.2时域分析 .................................................................................................................. 6 2.1.3频域分析 .................................................................................................................. 6 2.2 MATLAB仿真结果及分析 ............................................................................................... 7 2.2.1预处理的结果及分析 .............................................................................................. 8 2.2.2时域分析的结果及分析 ........................................................................................ 11 2.2.3频域分析的结果及分析 ........................................................................................ 12
3.总结 ............................................................................................................................................. 15
4.设计心得与体会 ......................................................................................................................... 16 基于MATLAB的心音信号处理
1 1.概述 1.1 心音信号及MATLAB简介 心音信号是指在心动周期中,心肌收缩、心脏瓣膜启闭,心室壁、大动脉瓣等被血流冲撞,引起机械振动发出的声音。产生的声音信号通过周围组织传导到胸壁,可以通过听诊器来听诊,也可以利用传感器将心音信号转换为电信号,进行心音信号的显示和存储。心音作为人体的一种重要的心脏、心血管生理信号,体现着和心脏等生理情况相关的信息,能够反映心脏等的生理和病理信息。心音对于有关心脏疾病和心血管疾病的诊断具有重要的诊断价值,是评估一个人心脏功能情况的重要依据[6]。 心音的频率一般在5-600HZ左右,杂音频率可达1500HZ左右,但是人的听觉系统能够接受的声音频率为16HZ-20KHZ,而且仅对频率在1000~5000HZ频率的声音最为敏感。心脏听诊的不足可以用心音图弥补。心音图可以直观的显示正常和异常心音的各段持续的时间,进一步提高心脏疾病诊断的准确性。 基于MATLAB的心音信号处理
2 图1.正常的心音信号的时域图 正常心音按出现时间先后可以分为四个部分。第一心音(S1)、第二心音(S2)是最常见的,此外,还有第三心音(S3)、第四心音(S4)。临床上一般听到的是第一心音和第二心音,一些儿童、青少年以听到第三心音,有些老年人也可以听到第四心音。第一心音(S1)产生的原因是房室瓣关闭、血流急速冲击房室瓣,主动脉壁和肺动脉壁被心室喷射出的血液撞击,引起振动。一般在心尖搏动处最强,持续时间一般为0.1-0.12s。在音调方面,比较低沉。第二心音(S2)在T波的末端出现。主要产生原因是主动脉瓣关闭和肺动脉瓣关闭。持续时间一般为0.08s,相对较短[4]。第三心音(S3)主要是血流流向心室时,血流速度过急,在心室内又突然减速引起室壁的振动而产生。一般在第二心音后的0.1-0.2s后产生。在儿童、青少年的心脏上可以听到生理性的第三心音。第四心音是由于心房收缩后,血流流进心室的速度很快,心室壁振动而引起。心脏听诊是诊断心脏和心血管疾病不可或缺的方法,该方法简便、有效。 基于MATLAB的心音信号处理 3 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点[5]。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。 简单的编程环境提供了比较完备的调试系统,程序不必经过u编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。在MATLAB环境进行信号处理可以方便的调用MATLAB提供的函数,运用简单的语句就可以实现极为复杂的运算,加快了信号处理 基于MATLAB的心音信号处理 4 的进程,MATLAB还提供GUI的功能,便于用户设计友好的交付界面。
1.2 设计目的 1.掌握医学信号处理的整个过程 2.学会使用MATLAB进行信号处理 3.学会分析信号及信号处理后得到的结果 4.完成对心音信号的处理及分析
1.3 设计任务 根据心音信号的噪声特性及时频特性,选用合适信号处理方法,运用MATLAB完成对心音信号的预处理获得干净的心音信号,并进行时域分析、频域分析,获得其相应的病理信息,并利用MATLAB提供GUI,设计显示界面。
2.设计流程 2.1 设计方案选择 2.1.1预处理方法的选择 心音信号是微弱低频生理信号,容易混入多种多样的噪声,许多因素(呼吸状态、心脏的血液流动动力学状态以及环境等)都会影响心音信号。由于心音的频率一般在5—600HZ左右。使用巴特沃斯滤波器进行滤波,其具有通频带内的频率响应曲线最大限度平坦,没 基于MATLAB的心音信号处理 5 有起伏,而在阻频带则逐渐下降为零的特点。所以本设计采用巴特沃斯滤波器进行带通滤波所以设计的带通滤波器的通带频率为5-600hz ,通带最大衰减3 dB和阻带最小衰减18dB。 利用巴特沃斯滤波器滤波的信号,还有一定噪声在其中,本设计设计了小波阈值滤波的方法再次进行去噪。 小波变换是用数学变换分析信号的一种方法[5]。在分析低频长时信号时,时间分辨率很低,频域分辨率很高。小波变换的局部化特性是比较好的,这种局部特性反映在频率域和空间域两方面。由于心音的频率一般在5—600HZ左右,杂音频率可达1200HZ左右。根据相关文献db3 小波对心音信号处理的效果较好,所以对心音信号釆用db3小波进行5层分解,然后采用小波软阈值去噪方式进行去噪,最后对各层小波分解系数进行重构。软阈值处理是把小波系数大于阈值的变为该点与阈值的差值。 小波软阈值去噪[4]的过程如下: (1)选择小波和小波分解的层数j,计算含噪声 信号的小波分解系数; (2)对每层系数选择一个阈值,并且对高频系 数用阈值处理; (3)根据第j层的低频系数和从第一层到第j 层的高频系数,计算信号的小波重构。软阈值处理的数学表示为 djk-λ,djk≥λ djk'= 0, |djk| djk+λ,djk≤-λ