周克良,劉亞亞
(江西理工大學(xué) 電氣工程與自動(dòng)化學(xué)院,江西 贛州 341000)
目前,國(guó)內(nèi)外研究學(xué)者對(duì)心音信號(hào)去噪問題[1,2]進(jìn)行了深入研究。數(shù)字濾波器[3]可以用來去噪,但其缺點(diǎn)是計(jì)算量大,因此實(shí)時(shí)信號(hào)處理不好。自適應(yīng)小波變換濾波器[4]在一定程度上克服了固定閾值,但是僅依靠改進(jìn)的閾值遠(yuǎn)遠(yuǎn)不足以實(shí)現(xiàn)良好的去噪效果,因?yàn)殚撝岛瘮?shù)也非常重要。文獻(xiàn)[5]提出了閾值函數(shù)和經(jīng)驗(yàn)?zāi)J椒纸馊ピ敕椒?,但這種情況下閾值函數(shù)不具有連續(xù)性?;陔x散小波變換(DWT)的去噪方法被廣泛使用[6],因?yàn)槠淠軌蛞种茙庠肼曇约皫?nèi)噪聲。閾值和閾值函數(shù)對(duì)DWT去噪性能影響甚大,硬閾值函數(shù)去噪效果不好,而軟閾值函數(shù)易使心音信號(hào)產(chǎn)生失真現(xiàn)象[7]。
鑒于這些問題本文提出了基于離散小波變換的自適應(yīng)閾值估計(jì)法和新閾值函數(shù)。自適應(yīng)閾值法通過信號(hào)中的噪聲水平自適應(yīng)地估計(jì)閾值。新閾值函數(shù)克服了傳統(tǒng)閾值函數(shù)的不足,能夠保留較大的小波系數(shù),去除較小系數(shù)并且縮小中間系數(shù)。仿真結(jié)果表明,新閾值函數(shù)在改善心音信號(hào)去噪性能方面具有優(yōu)越性。
小波變換是從時(shí)域到頻域的信號(hào)轉(zhuǎn)換,是一種信號(hào)的多尺度分析方法,也叫作多分辨率分析。設(shè)ψ(t) 是基本小波,對(duì)其做伸縮和平移得
(1)
對(duì)于f(t)∈L2(R), 連續(xù)小波變換為
(2)
當(dāng)a=2-j,b=k*2-j, 其中j,k∈Z, 則有離散小波為
(3)
式中:a是尺度因子,b是平移因子,ψ*是ψ(t) 的復(fù)共軛。
離散小波變換計(jì)算較簡(jiǎn)單,更適用于非平穩(wěn)的心音信號(hào),因此本文選取離散小波變換對(duì)心音信號(hào)進(jìn)行去噪。為了獲得滿意的去噪效果,確定小波去噪算法所使用的所有參數(shù),例如小波基函數(shù)的類型,分解層數(shù),閾值和閾值函數(shù)是非常重要的。不同的小波基函數(shù)會(huì)在去噪中產(chǎn)生不一樣的效果。小波基函數(shù)正則性越好,分辨率越高。常用的小波基函數(shù)有Haar、Daubechies、Symlets和Coiflets[8]。小波分解層數(shù)主要由心音信號(hào)頻率特性決定,若分解層數(shù)過多,則去噪時(shí)會(huì)濾除部分原始信號(hào);分解層數(shù)過小時(shí)噪音濾除不完全。因此需要合理選取分解層數(shù)。
閾值函數(shù)和閾值的選取很關(guān)鍵,是影響小波閾值去噪效果的重要原因。當(dāng)閾值過大收縮過量時(shí),心音信號(hào)中一些有用的信號(hào)會(huì)丟失;閾值過小收縮不足時(shí),會(huì)使心音中的噪音信號(hào)消除不完全。廣泛應(yīng)用的閾值選擇方法有Sqtwolog(固定閾值)、Heursure (啟發(fā)式閾值)等[9]。
硬閾值函數(shù)表達(dá)式為
(4)
軟閾值函數(shù)表達(dá)式為
(5)
硬閾值函數(shù)中絕對(duì)值較大的系數(shù)保留,較小的系數(shù)置零;軟閾值函數(shù)中絕對(duì)值較大的系數(shù)收縮而較小的系數(shù)置零。硬閾值函數(shù)去噪后的信號(hào)易產(chǎn)生振蕩,軟閾值函數(shù)去噪后信號(hào)中的一些奇異點(diǎn)易被噪聲覆蓋且重構(gòu)信號(hào)不能很好逼近原始心音信號(hào)。
心音信號(hào)分量的DWT收斂系數(shù)較大,而噪聲分量在所有頻帶中以小系數(shù)進(jìn)行散射。因此,通過較小幅度的系數(shù)與閾值之間的比較來抑制較小系數(shù)從而執(zhí)行去噪。假設(shè)x(n) 為原始心音信號(hào),s(n) 為含噪心音信號(hào),e(n) 為噪聲信號(hào),σ為噪聲級(jí),有s(n)=x(n)+σe(n)。 小波去噪的結(jié)果是將原始心音信號(hào)從含噪心音信號(hào)中分離出來。
使用小波變換快速算法——Mallat算法[10]對(duì)心音信號(hào)進(jìn)行小波分解,分解得到的近似系數(shù)和細(xì)節(jié)系數(shù)可以使用兩個(gè)分析濾波器得到。低通濾波器(H)輸出低頻部分的近似系數(shù),高通濾波器(G)輸出高頻部分的細(xì)節(jié)系數(shù)。分解算法如下
(6)
其中,k為離散時(shí)間序列,k=1,2,…,n;j是分解層數(shù),j=1,2,…,J。Aj,k為信號(hào)在第j層的近似系數(shù),Dj,k為信號(hào)在第j層的細(xì)節(jié)系數(shù)。對(duì)于分解的第一層,即j=1時(shí),近似系數(shù)A0將是信號(hào)x(n) 本身。之后,通過在下采樣的近似系數(shù)上應(yīng)用這兩個(gè)濾波器,可以獲得下一級(jí)的系數(shù)。每次分解都只是對(duì)低頻部分分解,高頻部分則保持不變。
小波分解過程中小波基函數(shù)和分解層數(shù)選取的不同會(huì)對(duì)心音信號(hào)去噪產(chǎn)生不同的效果。本文選取db6作為小波基函數(shù),這是因?yàn)閐b6小波對(duì)心音信號(hào)具有良好的分析性能,且正交性較好。分解層數(shù)選取5層,得到一個(gè)低頻信號(hào)頻帶和5個(gè)高頻信號(hào)頻帶。令采樣頻率為1800 Hz,第1至第5細(xì)節(jié)層的頻帶約為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?;拘囊舴至縎1和S2的頻率范圍為30 Hz-100 Hz,而第4和第5細(xì)節(jié)層的頻率范圍為27.9 Hz-112.5 Hz,包含了正常情況下心音信號(hào)的大部分能量。因此只對(duì)這兩層細(xì)節(jié)系數(shù)進(jìn)行后續(xù)處理,并且將其余分解層的系數(shù)設(shè)置為零。噪聲頻率高于心音信號(hào)頻率,其主要集中在高頻小波系數(shù)層,因此舍去較低層次的細(xì)節(jié)系數(shù)可以去除帶外噪聲,抑制信號(hào)中的雜音從而改善去噪效果。對(duì)一含噪正常心音信號(hào)經(jīng)5層小波分解后各分層明細(xì)如圖1所示,從圖中可以看出噪音主要集中在高頻小波系數(shù)層。
圖1 小波系數(shù)分層明細(xì)
小波閾值去噪過程中閾值和閾值函數(shù)的選取很關(guān)鍵。閾值應(yīng)該是和信號(hào)噪聲水平相關(guān)的函數(shù),以便對(duì)噪聲有很好的抑制作用同時(shí)保留有用的信號(hào)分量。為了估計(jì)閾值,引進(jìn)參數(shù)m,m是小波系數(shù)矢量絕對(duì)值的平均值。其中m=AVG(|Dj|),Dj是第j層細(xì)節(jié)系數(shù),m值將反映出信號(hào)的噪聲水平。閾值公式如下
(7)
式中:v=MSE(|Dj|), 參數(shù)v表示小波系數(shù)矢量絕對(duì)值的均方差。由上式可知在當(dāng)m小于v時(shí),信號(hào)噪聲水平較低,相應(yīng)地閾值也較小,閾值被設(shè)置為m,隨著噪聲水平的增加而增加。當(dāng)m大于或等于v時(shí),此時(shí)信號(hào)噪聲水平較高,m高于v, 且兩者之間的差異隨著噪聲水平的增加而增加,閾值為m與2*(m-v) 之和。因此,所提出的方法能根據(jù)信號(hào)中的噪聲水平自適應(yīng)地估計(jì)閾值。
閾值函數(shù)表示對(duì)小波系數(shù)進(jìn)行閾值化處理的方式。針對(duì)硬閾值和軟閾值函數(shù)的不足,研究了另一種閾值函數(shù),稱為中值函數(shù)。中值函數(shù)表達(dá)式如下
(8)
其中,Dj,k是第j層細(xì)節(jié)系數(shù),使用兩個(gè)閾值T1和T2,T1=T,T2=2T。 該閾值函數(shù)能夠使較大小波系數(shù)保留,去除較小系數(shù)并且縮小中間系數(shù)。但中值函數(shù)還包含不連續(xù)性,因此為了進(jìn)一步改善該閾值函數(shù)的不連續(xù)性,需將函數(shù)在T1到T2范圍內(nèi)的線性行為轉(zhuǎn)換為非線性行為。在此基礎(chǔ)上提出了自適應(yīng)非線性閾值函數(shù),其表達(dá)式如下
(9)
使用非線性中值函數(shù)作為本文選取的閾值函數(shù)。通過保留較大系數(shù)來克服軟閾值函數(shù)容易失真的問題,同時(shí)通過線性收縮中間系數(shù)來減少硬閾值函數(shù)不連續(xù)性的問題。
對(duì)前面所選擇的第4和第5細(xì)節(jié)層的小波系數(shù)進(jìn)行閾值化處理后,用處理過的閾值系數(shù)逐級(jí)重構(gòu)信號(hào)。重構(gòu)算法[11]如下
(10)
圖2 小波去噪算法流程
本文心音數(shù)據(jù)來自贛州某醫(yī)院。為了定量評(píng)估去噪效果,本文采用了信噪比(SNR)與擬合系數(shù)(Fit)作為性能指標(biāo)。信噪比是評(píng)估去噪算法性能最常用的指標(biāo),可以反映信號(hào)中所含噪音成分的多少。擬合系數(shù)反映了去噪后的信號(hào)與原始信號(hào)的匹配程度。去噪后信號(hào)的SNR越高且Fit越大,則說明去噪效果越好,越能保持原始信號(hào)特征。SNR和Fit定義如下
(11)
(12)
為了驗(yàn)證提出方法的可行性,使用不同的閾值方法對(duì)心音信號(hào)進(jìn)行去噪。硬、軟值函數(shù)都使用閾值minimaxi,新閾值函數(shù)使用文中估計(jì)的新閾值。3種方法都是在db6小波分解5層僅選取第4和第5細(xì)節(jié)層的基礎(chǔ)上對(duì)心音信號(hào)進(jìn)行去噪。3種閾值函數(shù)對(duì)加入了信噪比為 5 dB 的高斯白噪聲的正常心音信號(hào)進(jìn)行去噪,去噪效果如圖3所示。
圖3 不同閾值函數(shù)去噪效果
圖3(a)是采集到的正常心音信號(hào),圖3(b)是含噪心音信號(hào),圖3(c)是含噪心音信號(hào)經(jīng)過硬閾值函數(shù)進(jìn)行去噪處理后的效果,可以看到圖中還保留比較多的噪聲,去噪效果不是很好,圖3(d)是含噪心音經(jīng)過軟閾值函數(shù)進(jìn)行去噪處理后的效果,濾除了很多的噪聲,但也損失了一部分原始心音信號(hào),使得有些信號(hào)細(xì)節(jié)無法分辨,導(dǎo)致波形失真,圖3(e)是含噪心音信號(hào)經(jīng)過文中提出的新閾值函數(shù)進(jìn)行去噪處理后的效果,圖中噪聲濾除比較干凈且波形沒有失真,保留了原始心音信號(hào)的細(xì)節(jié)特征,去噪效果最好。
為測(cè)試提出方法在不同噪聲強(qiáng)度與不同類型噪聲下的去噪效果,在正常心音信號(hào)中疊加不同信噪比的高斯白噪聲與紅噪聲。使用3種閾值函數(shù)進(jìn)行去噪處理得到去噪后信號(hào)的信噪比和擬合系數(shù)數(shù)值對(duì)比見表1和表2,相應(yīng)的去噪性能對(duì)比如圖4所示。
圖4(a)和圖4(c)分別是含噪心音信號(hào)在不同強(qiáng)度的高斯白噪聲下去噪后得到的信噪比和擬合系數(shù),圖4(b)和圖4(d)分別是含噪心音信號(hào)在不同強(qiáng)度的紅噪聲下去噪后得到的信噪比和擬合系數(shù)。由圖可看出對(duì)疊加了不同噪聲的不同SNR的心音信號(hào)去噪處理后,新閾值函數(shù)的信噪比和擬合系數(shù)提高最多。隨著信噪比的降低,3種方法去噪后的SNR和Fit都呈現(xiàn)下降的走勢(shì),但本文提出的新閾值函數(shù)方法下降速度更為緩慢些。因此在不同類型噪聲的不同噪聲強(qiáng)度下新閾值函數(shù)的去噪效果要優(yōu)于軟閾值和硬閾值函數(shù)。
表1 高斯白噪聲下去噪性能對(duì)比
表2 紅噪聲下去噪性能對(duì)比
圖4 不同噪聲不同信噪比下的去噪性能對(duì)比
選用二尖瓣狹窄(心房心顫)和主動(dòng)脈瓣關(guān)閉不全兩例含噪病理性心音信號(hào),用新閾值函數(shù)方法對(duì)其進(jìn)行去噪。圖5(a)和圖5(c)分別為二尖瓣狹窄(心房心顫)心音去噪前和去噪后的波形圖,圖5(b)和圖5(d)分別為主動(dòng)脈瓣關(guān)閉不全心音去噪前和去噪后的波形圖。實(shí)驗(yàn)結(jié)果表明噪音去除較完全,且較好地保留了原始心音信號(hào)的細(xì)節(jié)特征。這表明本文提出的方法針對(duì)病理性心音也有很好的去噪效果。
圖5 兩例病理性心音去噪結(jié)果
本文提出了一種基于DWT的心音自適應(yīng)閾值去噪法。選取db6小波對(duì)心音信號(hào)進(jìn)行5層分解,通過分析正常心音信號(hào)的頻率特性,舍去心音信號(hào)覆蓋率很少的層次,保留第4和第5細(xì)節(jié)層,只對(duì)這兩層細(xì)節(jié)系數(shù)進(jìn)行后續(xù)處理,并且將其余分解層的系數(shù)設(shè)置為零。此外,通過分析傳統(tǒng)閾值函數(shù)在去噪中存在噪音濾除不完全與信號(hào)易出現(xiàn)失真的問題,還提出了一種新的自適應(yīng)閾值函數(shù)。在高斯白噪聲與紅噪聲的不同噪聲強(qiáng)度下,將軟、硬閾值函數(shù)和新閾值函數(shù)對(duì)心音信號(hào)進(jìn)行仿真對(duì)比,選取信噪比(SNR)和擬合系數(shù)(Fit)兩項(xiàng)指標(biāo)對(duì)去噪性能進(jìn)行評(píng)價(jià)。實(shí)驗(yàn)結(jié)果表明,所提出的方法能有效地去除噪音且能很好地保留原始心音信號(hào)的細(xì)節(jié)特征,信噪比和擬合系數(shù)提高最多,去噪效果與硬閾值和軟閾值函數(shù)相比具有優(yōu)越性。最后將提出方法應(yīng)用于病理性心音信號(hào)中也得到了較好的去噪效果。這種有效的算法在心音信號(hào)的分析和診斷中將具有良好的應(yīng)用價(jià)值。