劉倩,徐彥,夏斌,柳兆軍
(1.山東理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 山東 淄博 255049;2.山東省淄博市中醫(yī)醫(yī)院 心血管病科, 山東 淄博 255300)
心音是心臟運(yùn)動過程中所發(fā)出的聲音,鑒于其產(chǎn)生機(jī)制,干凈的心音信號蘊(yùn)含了大量的心臟健康狀況方面的信息,在評估心臟功能狀況中發(fā)揮了重要的作用。但從人體采集的心音信號往往特別微弱,在采集的過程中易受到來自身體內(nèi)部和外界的干擾而不可避免地混入噪聲。所以心音信號用于醫(yī)療診斷分析之前必須先要消除其中的噪聲[1]。目前常用的心音去噪算法有經(jīng)驗(yàn)?zāi)B(tài)分解去噪算法[2-3]和小波去噪算法[4-7]等?;诮?jīng)驗(yàn)?zāi)B(tài)分解的去噪算法簡單地將心音信號分解為不同頻段的固有模態(tài),再根據(jù)心音信號所處的頻段特點(diǎn),舍掉一部分高頻信號,該方法往往在去除噪聲的同時,也會去掉一部分心音信號。對于傳統(tǒng)的小波去噪算法,在低信噪比的情況下,不能根據(jù)噪聲和信號的特性選取閾值,易去噪過度,導(dǎo)致最終去噪效果不甚理想。周克良等[8]通過蟻群算法全局搜索最小均方誤差下的閾值,提高了信噪比,但蟻群的初始賦值是閾值選取關(guān)鍵。信息論中,熵用來描述信源的不確定度和信源中每個符號包含的平均信息量,它可表征信號潛在動態(tài)過程的有用信息,即信號的概率分布可由熵值大小來表征。系統(tǒng)的不確定性越大,則熵值越大,反之,不確定性越小,熵值越小。基于信息熵理論,本文提出一種基于小波變換和熵值理論[9-11]的自適應(yīng)閾值算法進(jìn)行心音信號去噪,利用信號的噪聲特性,選取小波高頻系數(shù)子帶區(qū)間中最大的小波熵值估計(jì)閾值,以此實(shí)現(xiàn)心音信號的有效提取。
心音信號主要頻率在600 Hz 以內(nèi),在醫(yī)學(xué)上通常把心音分為第一心音(S1)、第二心音(S2)、第三心音(S3)和第四心音(S4)。S1 和S2主要的頻率范圍是 50~110 Hz[12],因此通過人耳就可以聽見。在大多數(shù)情況下只能聽到第一心音和第二心音,但在某些健康的青年和兒童身上也能聽到第三心音,而第四心音偶爾也能夠聽到。正常心音信號如圖1所示。
圖1 正常心音信號
小波[13]是一種持續(xù)時間很短的波,小波必須滿足以下容許條件:
(1)
滿足式(1)的時間函數(shù)ψ(t)稱為母小波或基本小波。將母小波伸縮和平移之后得到函數(shù)族:
(2)
式中:a為伸縮參數(shù)或尺度參數(shù);b為平移參數(shù)。
對任一能量有限信號f(t),其連續(xù)小波變換定義為
(3)
經(jīng)過小波變換后,信號的能量高度集中于少量幅度較大的小波系數(shù),而噪聲由于其隨機(jī)性,能量卻比較均勻地分布于變換域,所以小波變換用簡單的閾值判別法保留大幅值分解系數(shù)的同時亦能最大限度地抑制噪聲。
心音信號的小波變換閾值去噪算法如下:
1)對于采集的含噪的心音信號f(t),選取合適的小波基函數(shù),并根據(jù)心音信號頻率,選擇分解層數(shù),得到不同層次的小波系數(shù);
2)對于小波系數(shù)選擇合適的閾值進(jìn)行去噪;
3)對去噪后的心音信號進(jìn)行重構(gòu),得到去噪的心音信號。
根據(jù)小波閾值去噪理論發(fā)現(xiàn),閾值的選取決定心音信號的去噪效果。
在信息論中熵描述的是隨機(jī)變量的不確定程度,熵越大則越混亂。小波熵理論是基于小波分析方法建立類似信息熵的理論, 能夠?qū)r頻域上能量分布特性進(jìn)行定量描述。小波變換后的心音信號,各個尺度上的噪聲隨機(jī)性大、熵值高,因此,通過小波熵自適應(yīng)地確定各個尺度上的閾值,實(shí)現(xiàn)噪聲的有效濾除。
當(dāng)小波基是一組正交基時,小波變換的Parseval定理為
(4)
式中cj,k稱為心音信號f(t)的小波系數(shù)。由式(4)可知,經(jīng)小波分解后,任一尺度的小波能量為該尺度小波系數(shù)的平方和,即
(5)
信號的總能量為
(6)
把每一尺度上的小波系數(shù)作為獨(dú)立的信號源,假設(shè)小波系數(shù)共有N個采樣點(diǎn),將小波系數(shù)cj,k等分為n個小區(qū)間,其中第i個子區(qū)間的小波系數(shù)能量為
(7)
而第i個子區(qū)間的能量占該尺度的總能量的概率為
(8)
則第i個子區(qū)間的小波熵定義[14]為
(9)
本文閾值采用Donoho[4]提出的閾值計(jì)算公式,即
(10)
本文提出的去噪算法流程如圖2所示。首先對含噪的心音信號進(jìn)行小波分解;然后對每一尺度上的小波高頻系數(shù)等分N個區(qū)間,根據(jù)式(5)—式(9),計(jì)算每個區(qū)間的小波熵,選取小波熵值最大區(qū)間的小波高頻系數(shù)中值作為該尺度的噪聲方差,計(jì)算該尺度上的閾值;最后將小波變換的低頻分量和經(jīng)過小波熵閾值去噪后的高頻分量重構(gòu), 實(shí)現(xiàn)心音信號的最終去噪。
仿真實(shí)驗(yàn)輸入信噪比為5 dB的心音信號,采用小波熵閾值、小波固定閾值和極大極小閾值分別對正常心音信號、第二心音分裂及含S4的心音信號去噪處理,采用的小波函數(shù)為sym4并進(jìn)行6層小波分解,去噪效果分別如圖3—圖5所示。
圖3 正常心音去噪算法效果圖
圖 4 第二心音分裂去噪算法效果圖
圖5 含S4的心音信號去噪算法效果圖
由圖3可知,在S1S2、S2S1區(qū)間小波熵算法較其他兩種算法的噪聲濾除效果更好,而且對于原心音的S1和S2的特征保留更為完善。
圖4采用三種閾值算法對第二心音分裂信號去噪處理,三種算法對于分裂音的特征都保留比較完好,但小波熵閾值對于分裂音的幅值沒有削弱,而且在S1S2和S2S1區(qū)間的噪聲剔除得更為干凈,更加利于后續(xù)心音信號的特征提取。
圖5采用三種閾值算法對含有S4的心音信號去噪,可以看出經(jīng)小波熵算法去噪后,第四心音的特征與未加噪聲之前的信號特征基本一致,優(yōu)于其他兩種算法,能為后續(xù)心臟的診斷提供更準(zhǔn)確的信息。
為了更清晰客觀地分析不同閾值去噪算法的去噪效果,本文分別采用信噪比(SNR)和均方根誤差(RMSE)對三種閾值算法進(jìn)行評價。其中,信噪比越高說明去噪效果越好;均方根誤差越小,說明與原心音信號越接近。
仿真實(shí)驗(yàn)采用信噪比分別在-5、0、5和10 dB條件下的正常心音信號,并在同一信噪比下重復(fù)運(yùn)行100次實(shí)驗(yàn),分別求取輸出信噪比及均方根誤差的平均值。圖6是心音信號的輸入輸出信噪比曲線,圖7是輸出信號的均方根誤差曲線。
圖6 心音信號輸入輸出信噪比曲線
圖7 均方根誤差曲線
由圖6和圖7可知,在-5、0和5 dB低信噪比條件下,本文算法輸出的信噪比明顯高于其他兩種小波閾值算法,而RMSE低于其他兩種算法,去噪效果較好。隨著信噪比的提高,輸入信噪比為10 dB時,本文算法的性能與極大極小閾值算法相近,皆優(yōu)于固定閾值算法。從去噪性能分析,本文算法>極大極小閾值算法>固定閾值算法。綜合上述結(jié)果,在同一輸入信噪比條件下,本文算法可以更加有效地剔除噪聲而保留原心音信號的特征。
1)心音信號由于其非平穩(wěn)性,在傳統(tǒng)去噪算法中常用小波閾值去噪,該算法簡單,但閾值的選取決定著最終的去噪效果。本文采用小波變換與熵值結(jié)合的算法,根據(jù)小波變換后不同尺度的高頻系數(shù)熵值特性來自適應(yīng)地選取閾值。
2)將本文采用的閾值算法和傳統(tǒng)的小波固定閾值、極大極小閾值算法在同一輸入信噪比下,分別對正常心音、第二心音分裂及含S4的心音去噪處理。仿真結(jié)果表明,本文算法能夠去掉噪聲的同時盡可能地保留了原心音的信號特征,去噪效果比較明顯。
3)在不同輸入信噪比條件下,采用三種算法對正常心音信號去噪處理,結(jié)果表明,本文算法的輸出信噪比比傳統(tǒng)的小波閾值去噪算法的高,而均方根誤差低,為后續(xù)的心音信號處理提供了參考。