陳 娟
(九江職業(yè)大學(xué) 機電工程學(xué)院,江西 九江 332000)
無論是實驗研究時用傳感器采集,還是醫(yī)學(xué)臨床時用專業(yè)儀器去采集,心音信號都很容易受到外界或自身噪音的影響。即便是正常心音采集,也受到環(huán)境的噪音、自身的呼吸產(chǎn)生的噪音、檢測時摩擦的聲音等方面的影響。而對于病理心音來講,因其自帶的病理性雜音,就更加會干擾心音信號的收集,不利于心音信號的識別和提取。
心音信號的去噪方法用得最多的就是小波變換,該方法可以在不失特征的前提下提取干凈有用的第一心音S1和第二心音S2,而這兩項信號是基本上能夠反映大多數(shù)心臟運動狀態(tài)的心音信號,以供后續(xù)的心音信號處理和分析[1]。
心音信號是一組非線性的信號,其特點是非平穩(wěn)性。而經(jīng)由小波變換方法處理之后的波形變化的特點是無規(guī)則、波形變化尖銳,如果再結(jié)合使用Matlab工具,那么就非常適合于心音信號的時頻分析。
一般而言,目前最簡捷且便于計算的去噪方法就是小波閾值去噪法。其原理如下所示:
設(shè)是小波基函數(shù),經(jīng)過伸縮和平移,得到如下公式:
(1)
然后進行連續(xù)小波變換:
(2)
其中:a為尺度因子;b為平移因子;Ψ*為Ψ(t)的復(fù)共軛。
設(shè)若a=2-j,b=k*2-j則:
(3)
然后再進行離散小波變換:
(4)
小波閾值法對心音信號去噪的總體架構(gòu)思路如圖1所示:①選取合適的小波基函數(shù),確定分解的層數(shù);②選擇合適的閾值函數(shù),確認恰當?shù)拈撝?;③將能覆蓋S1和S2頻率的層數(shù)系數(shù)進行重構(gòu),獲取干凈的心音信號。
圖1 閾值法去噪流程
假設(shè)心音信號模型為:x(t)=f(t)+σn(t)
其中f(t)為含噪心音函數(shù),即采集到的心音信號;σ為噪音強度;n(t)為噪音。將此信號進行小波變換可得到如下:
(5)
N為采樣的心音信號總數(shù);x(n)為采樣點的多次離散小波變換后得到的多個小波系數(shù)。
對分解的各層小波系數(shù)選取適當?shù)拈撝?,然后對心音信號進行處理,在此過程中可得到一組最能體現(xiàn)原始心音信號的系數(shù)。
小波基函數(shù)的選取,是有效去噪的第一步。如果該函數(shù)沒有選取好,則勢必影響到整個去噪的效果。常用的小波基函數(shù)有:Symlets(symN)、Daubechies(dbN)、Coiflets(coifN)。其中Coiflets支撐長度不夠短,而能量的聚集度較Symlets和Daubechies函數(shù)為差。而Symlets的對稱性較Daubechies差。因此根據(jù)以往的研究數(shù)據(jù)表明,在上述3種小波基函數(shù)族里,使用比較多的有:sym8、db6、coif5,其對應(yīng)的尺度函數(shù)波形如圖2所示。
圖2 三種小波基函數(shù)對應(yīng)的尺度函數(shù)
就該研究而言,基于心音信號的特點,因此要求所選取的小波基信號必須能夠正交,且具有對稱性。經(jīng)上述3個圖的對比分析,就對稱性和正交性能而言,db6都較其余兩者為佳,故該研究選取的小波基函數(shù)是db6。
分解層數(shù)的多少對心音去噪的結(jié)果同樣也至關(guān)重要。心音信號的頻率隨著層數(shù)越多越細化,因此也就越容易分離。但與此同時伴隨的副作用是信號的延時現(xiàn)象也會變得更加嚴重,而且也會增大重構(gòu)時的誤差、錯誤過濾部分原始心音信號,從而造成部分有效信息的遺失。但如果分解層數(shù)過少,則會使得噪音不能完全濾除,無法達到理想的去噪效果和提取出干凈的心音信號,因此分解也就變得毫無意義。
經(jīng)過對比分析以往研究得出的各種實驗數(shù)據(jù),以及檢閱相關(guān)的文獻參考,發(fā)現(xiàn)當小波分解成5層時,效果最好,且效率最高。
將db6小波函數(shù)進行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的頻率范圍,最大程度保留了心音的基本特性。
小波閾值法去噪中最重要的一步便是閾值函數(shù)和閾值的選取[2]。大多研究資料表明,使用最多的,且常用來作比較的兩種閾值函數(shù)為硬閾值和軟閾值。分析對比的結(jié)果為:硬閾值函數(shù)失真程度比較輕,但信號不連續(xù)現(xiàn)象比較明顯;而軟閾值函數(shù)去噪后的信號失真比較嚴重。以上兩者皆有缺點,為了盡可能避免上述缺陷,筆者選取中閾值函數(shù),使用兩個閾值T1和T2:
T1=α·T,T2=β·T
(6)
中閾值函數(shù)的特點是:保留較大的小波系數(shù)(第4層和第5層的小波系數(shù)),置零較小的小波系數(shù),縮小中間的小波系數(shù)。借此來解決硬閾值的不連續(xù)問題和軟閾值的失真的問題[3]。其閾值函數(shù)公式如下所示:
(7)
由于分解出的第4層和第5層系數(shù)能夠最大限度地反映心音的原始特征,故將這兩個細節(jié)層進行閾值化處理,公式如下:
(8)
系數(shù)重構(gòu)的部分程序如下所示:
c1=[a5,d5,d4,d3,d2,d1];
s1=waverec(c1,l,′db6′);
figure(4); plot(s1); title(′重構(gòu)信號′);
err2=norm(s-s1); %重構(gòu)后誤差為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(‘重構(gòu)信號’);
生成的波形如圖4所示。
圖4 去噪前后信號對比
圖4所反映的是正常心音信號去噪前后的對比圖。由該圖可以看出,通過上述的小波閾值法去噪后,心音信號的波形更干凈、噪音更少,且沒有失真,保留了原始信號的細節(jié)特點。因此,去噪效果是比較明顯的。
下面選用兩例異常心音信號進行實例的去噪處理[4]。
異常心音1:二尖瓣狹窄,即患有心房心顫疾病。
二尖瓣狹窄的特點:S2增強。根據(jù)上述方法對其原始信號去噪,如圖5所示,右邊對比左邊的原圖,去噪效果顯著,波形干凈不失真。
圖5 二尖瓣狹窄異常心音去噪前后對比
異常心音2:主動脈瓣關(guān)閉不全。
原始心音信號有舒張期高調(diào)遞減型、嘆氣樣雜音,進行去噪處理后,保留了主動脈瓣區(qū)第二心音減弱或消失、心尖區(qū)第一心音減弱的特點,如圖6所示,右圖信號清晰更凸顯波形特性。
圖6 主動脈瓣關(guān)閉不全異常心音去噪前后對比
通過對比分析sym8、db6和coif5三種小波基函數(shù)的波形,確定選擇小波基函數(shù)作為心音信號的分析工具。再將小波基函數(shù)db6進行層次細分,得出分解5層效果最佳的結(jié)論,然后結(jié)合軟、硬閾值函數(shù)的優(yōu)缺點,給出一種“中閾值函數(shù)”的解決方法,再通過重構(gòu)第4層和第5層小波系數(shù),分析心音信號。最后通過應(yīng)用兩則實例,即具體分析兩例正常心音和病理心音信號的前后去噪效果圖對比,結(jié)果證明了應(yīng)用小波閾值法進行心音信號去噪的可行性、準確性和優(yōu)越性。從而表明該算法在心音信號的處理中,具有良好應(yīng)用價值和發(fā)展前景。