基于小波阈值法的心音信号降噪处理

2021-12-20 08:54
内蒙古科技与经济 2021年20期
关键词:层数小波噪音

陈 娟

(九江职业大学 机电工程学院,江西 九江 332000)

无论是实验研究时用传感器采集,还是医学临床时用专业仪器去采集,心音信号都很容易受到外界或自身噪音的影响。即便是正常心音采集,也受到环境的噪音、自身的呼吸产生的噪音、检测时摩擦的声音等方面的影响。而对于病理心音来讲,因其自带的病理性杂音,就更加会干扰心音信号的收集,不利于心音信号的识别和提取。

心音信号的去噪方法用得最多的就是小波变换,该方法可以在不失特征的前提下提取干净有用的第一心音S1和第二心音S2,而这两项信号是基本上能够反映大多数心脏运动状态的心音信号,以供后续的心音信号处理和分析[1]。

1 心音信号的去噪思路

心音信号是一组非线性的信号,其特点是非平稳性。而经由小波变换方法处理之后的波形变化的特点是无规则、波形变化尖锐,如果再结合使用Matlab工具,那么就非常适合于心音信号的时频分析。

一般而言,目前最简捷且便于计算的去噪方法就是小波阈值去噪法。其原理如下所示:

设是小波基函数,经过伸缩和平移,得到如下公式:

(1)

然后进行连续小波变换:

(2)

其中:a为尺度因子;b为平移因子;Ψ*为Ψ(t)的复共轭。

设若a=2-j,b=k*2-j则:

(3)

然后再进行离散小波变换:

(4)

小波阈值法对心音信号去噪的总体架构思路如图1所示:①选取合适的小波基函数,确定分解的层数;②选择合适的阈值函数,确认恰当的阈值;③将能覆盖S1和S2频率的层数系数进行重构,获取干净的心音信号。

图1 阈值法去噪流程

假设心音信号模型为:x(t)=f(t)+σn(t)

其中f(t)为含噪心音函数,即采集到的心音信号;σ为噪音强度;n(t)为噪音。将此信号进行小波变换可得到如下:

(5)

N为采样的心音信号总数;x(n)为采样点的多次离散小波变换后得到的多个小波系数。

对分解的各层小波系数选取适当的阈值,然后对心音信号进行处理,在此过程中可得到一组最能体现原始心音信号的系数。

2 去噪过程分析

2.1 小波基函数的选取

小波基函数的选取,是有效去噪的第一步。如果该函数没有选取好,则势必影响到整个去噪的效果。常用的小波基函数有:Symlets(symN)、Daubechies(dbN)、Coiflets(coifN)。其中Coiflets支撑长度不够短,而能量的聚集度较Symlets和Daubechies函数为差。而Symlets的对称性较Daubechies差。因此根据以往的研究数据表明,在上述3种小波基函数族里,使用比较多的有:sym8、db6、coif5,其对应的尺度函数波形如图2所示。

图2 三种小波基函数对应的尺度函数

就该研究而言,基于心音信号的特点,因此要求所选取的小波基信号必须能够正交,且具有对称性。经上述3个图的对比分析,就对称性和正交性能而言,db6都较其余两者为佳,故该研究选取的小波基函数是db6。

2.2 分解层数的确定

分解层数的多少对心音去噪的结果同样也至关重要。心音信号的频率随着层数越多越细化,因此也就越容易分离。但与此同时伴随的副作用是信号的延时现象也会变得更加严重,而且也会增大重构时的误差、错误过滤部分原始心音信号,从而造成部分有效信息的遗失。但如果分解层数过少,则会使得噪音不能完全滤除,无法达到理想的去噪效果和提取出干净的心音信号,因此分解也就变得毫无意义。

经过对比分析以往研究得出的各种实验数据,以及检阅相关的文献参考,发现当小波分解成5层时,效果最好,且效率最高。

将db6小波函数进行5层分解,部分程序如下:

a5=wrcoef(′a′,c1,l1,′db6′,5);

d5=wrcoef(′d′,c1,l1,′db6′,5);

d4=wrcoef(′d′,c1,l1,′db6′,4);

d3=wrcoef(′d′,c1,l1,′db6′,3);

d2=wrcoef(′d′,c1,l1,′db6′,2);

d1=wrcoef(′d′,c1,l1,′db6',1);

subplot(3,1,1);plot(a5);ylabel(′a5′);

subplot(3,1,2);plot(d5);ylabel(′d5′);

subplot(3,1,3);plot(d4);ylabel(′d4′);

subplot(3,1,4);plot(d3);ylabel(′d3′);

subplot(3,1,5);plot(d2);ylabel(′d2′);

subplot(3,1,6);plot(d1);ylabel(′d1′);

得到的图形,如图3所示。

图3 db6进行5层分解明细

图3中,先对心音信号进行降低采用频率的处理,故此处的频率为2 000Hz。将信号进行5层分解后得到5层高频频带d1~d5,一个低频频带a5。

上述各频带范围约为:d1(450Hz~900Hz),d2(225Hz~450Hz),d3(112.5Hz~225Hz),d4(55.8Hz~112.5Hz),d5(27.9Hz~55.8 Hz),a5(0~27.9Hz)。

第一心音s1和第二心音s2的频率范围为30Hz~100Hz,而d4和d5的频带范围综合为 27.9Hz~112.5Hz,因此能够覆盖s1和s2的频率范围,最大程度保留了心音的基本特性。

2.3 阈值函数及阈值的选取

小波阈值法去噪中最重要的一步便是阈值函数和阈值的选取[2]。大多研究资料表明,使用最多的,且常用来作比较的两种阈值函数为硬阈值和软阈值。分析对比的结果为:硬阈值函数失真程度比较轻,但信号不连续现象比较明显;而软阈值函数去噪后的信号失真比较严重。以上两者皆有缺点,为了尽可能避免上述缺陷,笔者选取中阈值函数,使用两个阈值T1和T2:

T1=α·T,T2=β·T

(6)

中阈值函数的特点是:保留较大的小波系数(第4层和第5层的小波系数),置零较小的小波系数,缩小中间的小波系数。借此来解决硬阈值的不连续问题和软阈值的失真的问题[3]。其阈值函数公式如下所示:

(7)

2.4 系数重构

由于分解出的第4层和第5层系数能够最大限度地反映心音的原始特征,故将这两个细节层进行阈值化处理,公式如下:

(8)

系数重构的部分程序如下所示:

c1=[a5,d5,d4,d3,d2,d1];

s1=waverec(c1,l,′db6′);

figure(4); plot(s1); title(′重构信号′);

err2=norm(s-s1); %重构后误差为1.09E-09

d5=zeros(1,length(d5));

d4=zeros(1,length(d6));

d3=zeros(1,length(d3));

d2=zeros(1,length(d2));

d1=zeros(1,length(d1));

c1=[a5,d5,d4,d3,d2,d1];

s1=waverec(c1,l,′db6′);

figure(4);

subplot(411),plot(s);title(‘原始信号’);

subplot(412),plot(s1),title(‘重构信号’);

生成的波形如图4所示。

图4 去噪前后信号对比

3 实验分析

图4所反映的是正常心音信号去噪前后的对比图。由该图可以看出,通过上述的小波阈值法去噪后,心音信号的波形更干净、噪音更少,且没有失真,保留了原始信号的细节特点。因此,去噪效果是比较明显的。

下面选用两例异常心音信号进行实例的去噪处理[4]。

异常心音1:二尖瓣狭窄,即患有心房心颤疾病。

二尖瓣狭窄的特点:S2增强。根据上述方法对其原始信号去噪,如图5所示,右边对比左边的原图,去噪效果显著,波形干净不失真。

图5 二尖瓣狭窄异常心音去噪前后对比

异常心音2:主动脉瓣关闭不全。

原始心音信号有舒张期高调递减型、叹气样杂音,进行去噪处理后,保留了主动脉瓣区第二心音减弱或消失、心尖区第一心音减弱的特点,如图6所示,右图信号清晰更凸显波形特性。

图6 主动脉瓣关闭不全异常心音去噪前后对比

4 结束语

通过对比分析sym8、db6和coif5三种小波基函数的波形,确定选择小波基函数作为心音信号的分析工具。再将小波基函数db6进行层次细分,得出分解5层效果最佳的结论,然后结合软、硬阈值函数的优缺点,给出一种“中阈值函数”的解决方法,再通过重构第4层和第5层小波系数,分析心音信号。最后通过应用两则实例,即具体分析两例正常心音和病理心音信号的前后去噪效果图对比,结果证明了应用小波阈值法进行心音信号去噪的可行性、准确性和优越性。从而表明该算法在心音信号的处理中,具有良好应用价值和发展前景。

猜你喜欢
层数小波噪音
浅探铺设土工格栅技术在软土路基加固处理中的运用
构造Daubechies小波的一些注记
噪音,总是有噪音!
通过绞车钢丝绳计算井深
基于Haar小波的非线性随机Ito- Volterra积分方程的数值解
基于MATLAB的小波降噪研究
无法逃避的噪音
MoS2薄膜电子性质随层数变化的理论研究
噪音的小把戏
白噪音的三种用法