周克良,劉亞亞
(江西理工大學 電氣工程與自動化學院,江西 贛州 341000)
目前,國內外研究學者對心音信號去噪問題[1,2]進行了深入研究。數字濾波器[3]可以用來去噪,但其缺點是計算量大,因此實時信號處理不好。自適應小波變換濾波器[4]在一定程度上克服了固定閾值,但是僅依靠改進的閾值遠遠不足以實現良好的去噪效果,因為閾值函數也非常重要。文獻[5]提出了閾值函數和經驗模式分解去噪方法,但這種情況下閾值函數不具有連續性?;陔x散小波變換(DWT)的去噪方法被廣泛使用[6],因為其能夠抑制帶外噪聲以及帶內噪聲。閾值和閾值函數對DWT去噪性能影響甚大,硬閾值函數去噪效果不好,而軟閾值函數易使心音信號產生失真現象[7]。
鑒于這些問題本文提出了基于離散小波變換的自適應閾值估計法和新閾值函數。自適應閾值法通過信號中的噪聲水平自適應地估計閾值。新閾值函數克服了傳統閾值函數的不足,能夠保留較大的小波系數,去除較小系數并且縮小中間系數。仿真結果表明,新閾值函數在改善心音信號去噪性能方面具有優越性。
小波變換是從時域到頻域的信號轉換,是一種信號的多尺度分析方法,也叫作多分辨率分析。設ψ(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)
硬閾值函數中絕對值較大的系數保留,較小的系數置零;軟閾值函數中絕對值較大的系數收縮而較小的系數置零。硬閾值函數去噪后的信號易產生振蕩,軟閾值函數去噪后信號中的一些奇異點易被噪聲覆蓋且重構信號不能很好逼近原始心音信號。
心音信號分量的DWT收斂系數較大,而噪聲分量在所有頻帶中以小系數進行散射。因此,通過較小幅度的系數與閾值之間的比較來抑制較小系數從而執行去噪。假設x(n) 為原始心音信號,s(n) 為含噪心音信號,e(n) 為噪聲信號,σ為噪聲級,有s(n)=x(n)+σe(n)。 小波去噪的結果是將原始心音信號從含噪心音信號中分離出來。
使用小波變換快速算法——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 小波系數分層明細
小波閾值去噪過程中閾值和閾值函數的選取很關鍵。閾值應該是和信號噪聲水平相關的函數,以便對噪聲有很好的抑制作用同時保留有用的信號分量。為了估計閾值,引進參數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)
使用非線性中值函數作為本文選取的閾值函數。通過保留較大系數來克服軟閾值函數容易失真的問題,同時通過線性收縮中間系數來減少硬閾值函數不連續性的問題。
對前面所選擇的第4和第5細節層的小波系數進行閾值化處理后,用處理過的閾值系數逐級重構信號。重構算法[11]如下
(10)


圖2 小波去噪算法流程
本文心音數據來自贛州某醫院。為了定量評估去噪效果,本文采用了信噪比(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 兩例病理性心音去噪結果
本文提出了一種基于DWT的心音自適應閾值去噪法。選取db6小波對心音信號進行5層分解,通過分析正常心音信號的頻率特性,舍去心音信號覆蓋率很少的層次,保留第4和第5細節層,只對這兩層細節系數進行后續處理,并且將其余分解層的系數設置為零。此外,通過分析傳統閾值函數在去噪中存在噪音濾除不完全與信號易出現失真的問題,還提出了一種新的自適應閾值函數。在高斯白噪聲與紅噪聲的不同噪聲強度下,將軟、硬閾值函數和新閾值函數對心音信號進行仿真對比,選取信噪比(SNR)和擬合系數(Fit)兩項指標對去噪性能進行評價。實驗結果表明,所提出的方法能有效地去除噪音且能很好地保留原始心音信號的細節特征,信噪比和擬合系數提高最多,去噪效果與硬閾值和軟閾值函數相比具有優越性。最后將提出方法應用于病理性心音信號中也得到了較好的去噪效果。這種有效的算法在心音信號的分析和診斷中將具有良好的應用價值。