闵孝忠, 朱林立
(江苏理工学院 信息中心,江苏 常州 213001)
传统心脏听诊技术以人耳听音来进行,该方式受限于人耳听力的灵敏度及医生的经验和主观判断,作用有限[1].由于心音的随时变化导致传统听诊方法很难完成准确听诊,因此专家学者对此进行了研究.文献[2]采用MATLAB模拟对心音进行了小波去噪,但由于没有形成采样仿真系统,只是停留在实验阶段;文献[3]设计了独立的心音听诊系统,该系统仅绘制采样波形,无法动态绘制频谱和进行回放;文献[4]从硬件角度设计了听诊器,实现信号采集和显示,但没有实现后续信号转储及信号绘制.目前听诊采样仿真系统有了一些开发实现案例,但是并没有很好地解决信号回放、动态频谱绘制和跨平台等问题,尤其是动态频谱绘制,这对诊断某一时刻异常有很重要的参考价值.
本文利用JavaEE平台对听诊采样仿真系统进行重新设计和实现,具体方法为通过音频接口将听诊器接入PC,仿真系统对信息源进行采样,对信号进行小波去噪预处理,提取信号绘制波形图,通过快速傅立叶变换绘制频谱,保存音频数据,通过可视化操作可随时回放某一帧心音信号和绘制频谱,基于Java的实现同时解决了跨平台部署问题.
在心音信号采集过程中,原始信号中会掺杂一些噪声,因此对原始信号进行必要的预处理非常重要,由于心肺音信号的不平稳性,频率较低,信号频谱和噪声频谱往往是掺杂在一起,基于傅立叶变换的滤波方法不能在有效地在滤除噪声的同时,又保持心音的特性不变,本文采用小波去噪的方法实现数据预处理,小波去噪算法由多分辨率分析、小波阈值操作和多层小波重构组成.小波去噪主要有模极大值法、相关性法、阈值收缩法等几种,本文采用改进的阈值收缩方法对心音信号进行去噪处理,通过在仿真系统中微调阀值改善采样仿真效果.
假设函数ψ(t)∈L2(R)满足容许条件
(1)
(2)
其中a为尺度,*表示复共轭,通过公式(2)建立函数φ(t)的二尺度方程
(3)
由尺度函数φ(t)可以得到小波函数ψ(t)
(4)
式(3)和(4)中的滤波器系数g(n)和h(n)是由尺度函数φ(t)和小波函数ψ(t)决定的,与具体尺度无关.
对于式(2)所示观测数据,Donoho提出两个滤波前提条件[5]:
(5)
其中C1为常量,在小波域中真实信号的小波系数及其估计值有
(6)
成立,其中j为尺度,k为位置.
对于条件(2),理解为对下式求最小值
(7)
(8)
其中σ代表信号幅值标准差,当小波为正交小波时,γ=1.由式(8)得出:
(9)
本文采用的算法主要由以下4步组成:
步骤1:计算信号(含噪)的正交小波变换;
步骤2:对小波系数进行非线性阀值处理;
在真实项目中,需要对噪声进行评估,由于噪声的方差一般是未知的,可以利用小波系数{wJ-1,k,k=1,2,...,2J-1}的绝对偏差来估计噪声标准差:
(10)
其中,mid操作表示取中值,横向符号表示取均值.
图1 改进阈值运算流程
步骤4:经由上述步骤计算后的阈值对小波系数进行逆小波变换并重构,获得处理后的信号.
听诊采样仿真系统由小波去噪模块、快速傅立叶变换频谱绘制模块和音频记录回放模块组成,前端连接传感器信号采集器,系统结构如图2所示.
图2 系统结构图
作为系统输入单元,信号采集传感器只需满足提供音频接口即可接入仿真系统,这样极大扩展了仿真系统的实用性.仿真系统通过Java Sound组件获取原始音频数据后形成wave格式数据,wave格式数据中包含了心音信号和噪声信号,由于形成的心音wav文件的量化精度含8位、16位两种规格,考虑到浮点数精度较此量化精度高,信号采集单元设计以采用Java语言float类型数据类型来存储每一个数据点.
传感器和采样系统对接后工作流程为:传感器采集到数据通过PC音频接口传入采样仿真系统,系统调用AudioInputStream类接受音频信号流,判断wave采样点是8 Bit还是16 Bit,解析出从MSB还是LSB取出音频字节数据,计算每像素的帧数framesPerPixel,然后解析出声道numChannels,最后根据framesPerPixel和numChannels循环计算出采样点的(x,y)坐标,把所有计算出的坐标放入float数组中缓存,准备进入下一步小波去噪处理.
3.2.1 小波去噪子模块
设置高校国有资产管理奖励制度,奖励在资产管理实务中作出突出贡献的工作者,奖励提出资产管理合理化建议的人员。将员工的奖金与经营性资产取得的效益相挂钩,最大程度地发挥经营者的积极主动性,尽可能地实现国有资产的保值增值。同时,对造成国有资产损失者,则应该按照有关规定,并依据当事人的责任大小追究其责任,并要求进行一定的赔偿。对管理意识薄弱的主管人员,造成国有资产损失、流失等后果的,则应给予严惩。
小波去噪子模块采用MATLAB编程实现,模块中包含了BivaShrin方法、TrivaShrink方法、BayesShrink方法和LAWMLShrink方法的DT_CWT代码,实现WaveLab802平台VisuShrink等一系列方法,将这些方法导出形成jar包并集成进JavaEE实现的采样仿真系统,提供给仿真系统调用,完成对信号的小波去噪预处理.小波去噪的基本处理流程如图3所示.
心音主要成分的频谱主要分布在10~400 Hz,因此本文在数据预处理时先将信号下采样到2 000或2 205 Hz[6].因正交多分辨率分析是将整个信号的频带不断以二进方式划分,所以初步将小波分解尺度定为7对心音主要成分进行处理,该参数是可以调整的.如3.1节的描述中,传感器采集到缓存中的信息为含噪信号,用调整后参数调用MATLAB实现的jar包中的函数进行去噪处理,去噪输出后的数据为去噪信号数据.
图3 小波去噪流程图
3.2.2 频谱绘制子模块
经过3.2.1的处理后,采样信息已在缓存中,用Java实现FFT类,FFT类封装了信号从时域变化到频域的一种算法,输出值分为虚部foutimg和实部fout,foutimg和fout的平方和代表一个频率的功率,通过调用FFT类中calculate函数后得到变换后的float类型数组数据,该数组里面存放的是频谱信息,然后通过Graphics2D读取float数组绘制“频率-幅值”直方图.
为了避免在快速采集进行波形绘制和频谱动态播放过程中产生闪烁,同时保证显示的流畅,仿真系统采用了双缓冲技术,所有的绘制在后台BufferedImage类中进行,BufferedImage作为图片后台缓冲区.
3.2.3 信号回放子模块
心音信号经过去噪模块初步滤掉信号中混杂的工频和其他一些干扰噪音(比如呼吸、传感器摩擦等产生的噪音等),接着把心音信号放大到合适的幅度,开启独立线程操作TargetDataLine类捕获心音信号形成音频文件,将结果直接存入数据库,以便进行查询,回放处理.
整个系统底层通过Java Sound组件直接调用使用底层音频函数,这样系统可以不必运行在单一的平台上,让系统获得更好的移植性.
采样仿真系统整体运行界面如图4(a)所示,左边为病人信息和听诊历史记录信息,右边为采样仿真详细信息,主要包括采样绘制区域、频谱绘制区域.采样绘制区域主要用来实时播放和回放采样波形,频谱绘制区域用来动态绘制某一帧的“频率-幅值”直方图.本系统在Window7上测试,在真实的干扰环境选取对某一病人肺部进行听诊.
图4 运行界面
数据采样过程持续了10.48秒,采样后波形图如图4(b)所示,含有干扰信号,实验预先选取小波分解尺度参数为7,经过小波去噪后波形绘制界面如图4(c)所示,从图中可以看出,含有干扰的虚假峰信号被去除,通过多次迭代调整阀值参数后,去噪效果出现细微变化,但去噪效果依然明显,处理过程中程序运行的较快,可见改进小波阈值收缩方法耗时不多.
这里截取快速傅立叶变换前后的一段帧前18个字节的采样数据,数据如表1和表2所示:
表1 采样数据
表2 傅立叶变换后采样数据
从表1和表2中可以看出经过快速傅立叶变换后的数据从时域转化为频域,转换后便可以进行直方图绘制.
图5 频谱直方图
图5(a)为某一个时间回放波形图,图5(b)为对应的频谱直方图.调用快速傅立叶变换后用Graphics2D进行绘制,采用双缓冲进行绘制,形成频谱播放动画,整个回放过程非常流畅.
本文讨论了在JavaEE平台下听诊采样仿真系统的设计与实现,听诊采样传感器通过音频输入接口采集wave原始数据到仿真系统,仿真系统对原始数据进行去噪处理,在去噪前需选择给定的阀值参数,通过改进的阀值选择算法得到可信阀值,将去噪后的数据调用Java Graphics2D绘制波形,调用快速傅立叶变换函数绘制频谱图.本系统已经在真实环境中测试,在Windows7中运行良好,在Linux下测试具有更好的性能,完全能满足听诊采样及仿真的需求.
[1] 李才光,裴正宪,蒋洪波.基于nRF24L01的无线心音遥测系统研究与实现[J].计算机科学,2013,40(8):59-62.
[2] LI Cai-guang,PEI Zheng-xian,JIANG Hong-bo.Design of wireless PCG monitor system based on nRF24L01[J].Computer Science, 2013,40(8):59-62.
[3] 陈远贵,罗保钦,曾庆宁.基于一种新的小波阈值函数的心音信号去噪[J].计算机仿真,2010,27(11):319-323.
[4] CHEN Yuan-gui,LUO Bao-qin,ZENG Qin-ning.Heart sound signal de-noising based on a new wavelet threshold function[J].Computer Simulation,2010,27(11):319-323.
[5] 廖庆丰,郭兴明,张箭,等.便携式多功能心音听诊系统的研制[J].医疗卫生装备,2008,29(9):22-24.
[6] LIAO Qing-feng,GUO Xing-ming,ZHANG Jian etc.Development of portable multi-function heart-sound auscultating system[J].Chinese Medical Equipment Journal,2008,29(9):22-24.
[7] 李静,李琪,张修太,等.基于WinCE的便携式心音监护系统设计[J].电子器件,2013,36(1):120-123.
[8] LI Jing,LI Qi,ZHANG Xiu-tai etc.The Design of heart sounds monitoring system based on WinCE[J].Chinese Journal of Electron Devices.2013,36(1):120-123.
[9] DONOHO D L.De-noising by soft-thresholding[J].IEEE Trans.Inform.Theory,1995,41(3):613-627.
[10]陈洁,候海良,罗良才等.基于双门限的第一、第二心音自动识别方法[J].计算机工程,2012,38(16):174-177.
[11]CHEN Jie,HOU Hai-liang,LUO Liang-cai etc.Automatic identification method for the first and second heart sound based on double-threshold[J].Computer Engineering,2012,38(16):174-177.