新阈值小波变换的心音去噪

2020-09-29 08:07周克良刘亚亚
计算机工程与设计 2020年9期
关键词:心音小波信噪比

周克良,刘亚亚

(江西理工大学 电气工程与自动化学院,江西 赣州 341000)

0 引 言

目前,国内外研究学者对心音信号去噪问题[1,2]进行了深入研究。数字滤波器[3]可以用来去噪,但其缺点是计算量大,因此实时信号处理不好。自适应小波变换滤波器[4]在一定程度上克服了固定阈值,但是仅依靠改进的阈值远远不足以实现良好的去噪效果,因为阈值函数也非常重要。文献[5]提出了阈值函数和经验模式分解去噪方法,但这种情况下阈值函数不具有连续性。基于离散小波变换(DWT)的去噪方法被广泛使用[6],因为其能够抑制带外噪声以及带内噪声。阈值和阈值函数对DWT去噪性能影响甚大,硬阈值函数去噪效果不好,而软阈值函数易使心音信号产生失真现象[7]。

鉴于这些问题本文提出了基于离散小波变换的自适应阈值估计法和新阈值函数。自适应阈值法通过信号中的噪声水平自适应地估计阈值。新阈值函数克服了传统阈值函数的不足,能够保留较大的小波系数,去除较小系数并且缩小中间系数。仿真结果表明,新阈值函数在改善心音信号去噪性能方面具有优越性。

1 小波阈值去噪原理

小波变换是从时域到频域的信号转换,是一种信号的多尺度分析方法,也叫作多分辨率分析。设ψ(t) 是基本小波,对其做伸缩和平移得

(1)

对于f(t)∈L2(R), 连续小波变换为

(2)

当a=2-j,b=k*2-j, 其中j,k∈Z, 则有离散小波为

(3)

式中:a是尺度因子,b是平移因子,ψ*是ψ(t) 的复共轭。

离散小波变换计算较简单,更适用于非平稳的心音信号,因此本文选取离散小波变换对心音信号进行去噪。为了获得满意的去噪效果,确定小波去噪算法所使用的所有参数,例如小波基函数的类型,分解层数,阈值和阈值函数是非常重要的。不同的小波基函数会在去噪中产生不一样的效果。小波基函数正则性越好,分辨率越高。常用的小波基函数有Haar、Daubechies、Symlets和Coiflets[8]。小波分解层数主要由心音信号频率特性决定,若分解层数过多,则去噪时会滤除部分原始信号;分解层数过小时噪音滤除不完全。因此需要合理选取分解层数。

阈值函数和阈值的选取很关键,是影响小波阈值去噪效果的重要原因。当阈值过大收缩过量时,心音信号中一些有用的信号会丢失;阈值过小收缩不足时,会使心音中的噪音信号消除不完全。广泛应用的阈值选择方法有Sqtwolog(固定阈值)、Heursure (启发式阈值)等[9]。

硬阈值函数表达式为

(4)

软阈值函数表达式为

(5)

硬阈值函数中绝对值较大的系数保留,较小的系数置零;软阈值函数中绝对值较大的系数收缩而较小的系数置零。硬阈值函数去噪后的信号易产生振荡,软阈值函数去噪后信号中的一些奇异点易被噪声覆盖且重构信号不能很好逼近原始心音信号。

2 小波去噪研究

心音信号分量的DWT收敛系数较大,而噪声分量在所有频带中以小系数进行散射。因此,通过较小幅度的系数与阈值之间的比较来抑制较小系数从而执行去噪。假设x(n) 为原始心音信号,s(n) 为含噪心音信号,e(n) 为噪声信号,σ为噪声级,有s(n)=x(n)+σe(n)。 小波去噪的结果是将原始心音信号从含噪心音信号中分离出来。

2.1 信号分解

使用小波变换快速算法——Mallat算法[10]对心音信号进行小波分解,分解得到的近似系数和细节系数可以使用两个分析滤波器得到。低通滤波器(H)输出低频部分的近似系数,高通滤波器(G)输出高频部分的细节系数。分解算法如下

(6)

其中,k为离散时间序列,k=1,2,…,n;j是分解层数,j=1,2,…,J。Aj,k为信号在第j层的近似系数,Dj,k为信号在第j层的细节系数。对于分解的第一层,即j=1时,近似系数A0将是信号x(n) 本身。之后,通过在下采样的近似系数上应用这两个滤波器,可以获得下一级的系数。每次分解都只是对低频部分分解,高频部分则保持不变。

小波分解过程中小波基函数和分解层数选取的不同会对心音信号去噪产生不同的效果。本文选取db6作为小波基函数,这是因为db6小波对心音信号具有良好的分析性能,且正交性较好。分解层数选取5层,得到一个低频信号频带和5个高频信号频带。令采样频率为1800 Hz,第1至第5细节层的频带约为d1:450 Hz-900 Hz,d2:225 Hz-450 Hz,d3:112.5 Hz-225 Hz,d4:55.8 Hz-112.5 Hz和d5:27.9 Hz-55.8 Hz。近似层的频带约为a5:0 Hz-27.9 Hz。基本心音分量S1和S2的频率范围为30 Hz-100 Hz,而第4和第5细节层的频率范围为27.9 Hz-112.5 Hz,包含了正常情况下心音信号的大部分能量。因此只对这两层细节系数进行后续处理,并且将其余分解层的系数设置为零。噪声频率高于心音信号频率,其主要集中在高频小波系数层,因此舍去较低层次的细节系数可以去除带外噪声,抑制信号中的杂音从而改善去噪效果。对一含噪正常心音信号经5层小波分解后各分层明细如图1所示,从图中可以看出噪音主要集中在高频小波系数层。

图1 小波系数分层明细

2.2 系数阈值处理

小波阈值去噪过程中阈值和阈值函数的选取很关键。阈值应该是和信号噪声水平相关的函数,以便对噪声有很好的抑制作用同时保留有用的信号分量。为了估计阈值,引进参数m,m是小波系数矢量绝对值的平均值。其中m=AVG(|Dj|),Dj是第j层细节系数,m值将反映出信号的噪声水平。阈值公式如下

(7)

式中:v=MSE(|Dj|), 参数v表示小波系数矢量绝对值的均方差。由上式可知在当m小于v时,信号噪声水平较低,相应地阈值也较小,阈值被设置为m,随着噪声水平的增加而增加。当m大于或等于v时,此时信号噪声水平较高,m高于v, 且两者之间的差异随着噪声水平的增加而增加,阈值为m与2*(m-v) 之和。因此,所提出的方法能根据信号中的噪声水平自适应地估计阈值。

阈值函数表示对小波系数进行阈值化处理的方式。针对硬阈值和软阈值函数的不足,研究了另一种阈值函数,称为中值函数。中值函数表达式如下

(8)

其中,Dj,k是第j层细节系数,使用两个阈值T1和T2,T1=T,T2=2T。 该阈值函数能够使较大小波系数保留,去除较小系数并且缩小中间系数。但中值函数还包含不连续性,因此为了进一步改善该阈值函数的不连续性,需将函数在T1到T2范围内的线性行为转换为非线性行为。在此基础上提出了自适应非线性阈值函数,其表达式如下

(9)

使用非线性中值函数作为本文选取的阈值函数。通过保留较大系数来克服软阈值函数容易失真的问题,同时通过线性收缩中间系数来减少硬阈值函数不连续性的问题。

2.3 重构信号

对前面所选择的第4和第5细节层的小波系数进行阈值化处理后,用处理过的阈值系数逐级重构信号。重构算法[11]如下

(10)

图2 小波去噪算法流程

3 实验结果与分析

本文心音数据来自赣州某医院。为了定量评估去噪效果,本文采用了信噪比(SNR)与拟合系数(Fit)作为性能指标。信噪比是评估去噪算法性能最常用的指标,可以反映信号中所含噪音成分的多少。拟合系数反映了去噪后的信号与原始信号的匹配程度。去噪后信号的SNR越高且Fit越大,则说明去噪效果越好,越能保持原始信号特征。SNR和Fit定义如下

(11)

(12)

为了验证提出方法的可行性,使用不同的阈值方法对心音信号进行去噪。硬、软值函数都使用阈值minimaxi,新阈值函数使用文中估计的新阈值。3种方法都是在db6小波分解5层仅选取第4和第5细节层的基础上对心音信号进行去噪。3种阈值函数对加入了信噪比为 5 dB 的高斯白噪声的正常心音信号进行去噪,去噪效果如图3所示。

图3 不同阈值函数去噪效果

图3(a)是采集到的正常心音信号,图3(b)是含噪心音信号,图3(c)是含噪心音信号经过硬阈值函数进行去噪处理后的效果,可以看到图中还保留比较多的噪声,去噪效果不是很好,图3(d)是含噪心音经过软阈值函数进行去噪处理后的效果,滤除了很多的噪声,但也损失了一部分原始心音信号,使得有些信号细节无法分辨,导致波形失真,图3(e)是含噪心音信号经过文中提出的新阈值函数进行去噪处理后的效果,图中噪声滤除比较干净且波形没有失真,保留了原始心音信号的细节特征,去噪效果最好。

为测试提出方法在不同噪声强度与不同类型噪声下的去噪效果,在正常心音信号中叠加不同信噪比的高斯白噪声与红噪声。使用3种阈值函数进行去噪处理得到去噪后信号的信噪比和拟合系数数值对比见表1和表2,相应的去噪性能对比如图4所示。

图4(a)和图4(c)分别是含噪心音信号在不同强度的高斯白噪声下去噪后得到的信噪比和拟合系数,图4(b)和图4(d)分别是含噪心音信号在不同强度的红噪声下去噪后得到的信噪比和拟合系数。由图可看出对叠加了不同噪声的不同SNR的心音信号去噪处理后,新阈值函数的信噪比和拟合系数提高最多。随着信噪比的降低,3种方法去噪后的SNR和Fit都呈现下降的走势,但本文提出的新阈值函数方法下降速度更为缓慢些。因此在不同类型噪声的不同噪声强度下新阈值函数的去噪效果要优于软阈值和硬阈值函数。

表1 高斯白噪声下去噪性能对比

表2 红噪声下去噪性能对比

图4 不同噪声不同信噪比下的去噪性能对比

选用二尖瓣狭窄(心房心颤)和主动脉瓣关闭不全两例含噪病理性心音信号,用新阈值函数方法对其进行去噪。图5(a)和图5(c)分别为二尖瓣狭窄(心房心颤)心音去噪前和去噪后的波形图,图5(b)和图5(d)分别为主动脉瓣关闭不全心音去噪前和去噪后的波形图。实验结果表明噪音去除较完全,且较好地保留了原始心音信号的细节特征。这表明本文提出的方法针对病理性心音也有很好的去噪效果。

图5 两例病理性心音去噪结果

4 结束语

本文提出了一种基于DWT的心音自适应阈值去噪法。选取db6小波对心音信号进行5层分解,通过分析正常心音信号的频率特性,舍去心音信号覆盖率很少的层次,保留第4和第5细节层,只对这两层细节系数进行后续处理,并且将其余分解层的系数设置为零。此外,通过分析传统阈值函数在去噪中存在噪音滤除不完全与信号易出现失真的问题,还提出了一种新的自适应阈值函数。在高斯白噪声与红噪声的不同噪声强度下,将软、硬阈值函数和新阈值函数对心音信号进行仿真对比,选取信噪比(SNR)和拟合系数(Fit)两项指标对去噪性能进行评价。实验结果表明,所提出的方法能有效地去除噪音且能很好地保留原始心音信号的细节特征,信噪比和拟合系数提高最多,去噪效果与硬阈值和软阈值函数相比具有优越性。最后将提出方法应用于病理性心音信号中也得到了较好的去噪效果。这种有效的算法在心音信号的分析和诊断中将具有良好的应用价值。

猜你喜欢
心音小波信噪比
基于多小波变换和奇异值分解的声发射信号降噪方法
两种64排GE CT冠脉成像信噪比与剂量对比分析研究
构造Daubechies小波的一些注记
基于MATLAB的小波降噪研究
基于深度学习的无人机数据链信噪比估计算法
基于双阈值的心音快速分段算法及其应用研究
低信噪比下基于Hough变换的前视阵列SAR稀疏三维成像
双声道心音能量熵比的提取与识别研究
基于改进的G-SVS LMS 与冗余提升小波的滚动轴承故障诊断
基于香农熵的心音信号检测方法研究