劉 倩,徐 彥,梁春燕,袁玉英
(1. 山東理工大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院,山東 淄博 255049;2. 山東省淄博市中醫(yī)醫(yī)院心內(nèi)科,山東 淄博255300)
心音是血液在心血管內(nèi)運(yùn)動的狀態(tài)反映,其包含著心臟的生理和病理信息,因此,正確識別心音信號對于心血管系統(tǒng)疾病的診斷具有重要的作用。心音信號是在強(qiáng)噪聲背景下采集的生物電信號,噪聲對心音信號的正確診斷和識別帶來干擾,因而去噪效果將直接影響后續(xù)心血管疾病的診療。
近年來,小波閾值去噪算法[1-2]和經(jīng)驗(yàn)?zāi)B(tài)分解(Empirical Mode Decomposition,EMD)去噪算法[3]已廣泛地應(yīng)用于心音信號的噪聲處理。由于小波變換對于信號在時域和頻域上都有良好的局部分析特性,選取適當(dāng)?shù)拈撝?,能夠較好的實(shí)現(xiàn)心音信號的去噪處理。但傳統(tǒng)閾值的非自適應(yīng)選取導(dǎo)致在剔除噪聲的同時易損失心音信息。經(jīng)驗(yàn)?zāi)B(tài)分解算法將心音信號分解成一組由高頻到低頻排列的模態(tài)函數(shù),舍棄前幾階高頻噪聲的模態(tài)分量,并重構(gòu)剩余的模態(tài)分量,最終得到去噪后的心音信號。但簡單的舍棄分量、重構(gòu)分量會導(dǎo)致心音信息的丟失,影響去噪效果。文獻(xiàn)[4]提出結(jié)合小波變換和EMD的算法優(yōu)點(diǎn),利用小波變換濾除掉高頻分量中的噪聲并保留其中信號成分,從而提高了去噪效果。但EMD在分解過程中存在模態(tài)混疊問題,Wu和Huang[5]在EMD的基礎(chǔ)上提出集合經(jīng)驗(yàn)?zāi)B(tài)分解(Ensemble Empirical Mode Decomposition,EEMD)算法,EEMD算法[6-8]在信號中混入白噪聲,使各階本征模態(tài)函數(shù)均值化,以此解決模態(tài)混疊問題。而對于信號和噪聲分量如何來界定,EMD和EEMD都缺少相關(guān)標(biāo)準(zhǔn),導(dǎo)致最終去噪效果不佳。
結(jié)合上述分析,本文提出基于CEEMDAN和小波熵的心音信號去噪方法。算法首先對心音信號CEEMDAN分解;根據(jù)噪聲能量和信號能量在各階分量中的區(qū)別,利用能量分析界定需去噪的IMF分量范圍;采用小波變換將需去噪的IMF分量分解,通過小波熵值自適應(yīng)地確定每一尺度上的閾值,并完成噪聲IMF分量的去噪;最后重構(gòu)去噪后的IMF分量與信號IMF分量,獲得去噪后的心音信號。
CEEMDAN 方法是基于 EMD 和EEMD的一種算法,該算法在EEMD基礎(chǔ)上,通過對信號添加自適應(yīng)白噪聲來克服模態(tài)混疊問題。算法的基本步驟如下:
1)在含噪的心音信號x(n)中添加N個不同的高斯白噪聲wi(n),構(gòu)造新的信號
xi(n)=x(n)+σiwi(n)
(1)
式中σi為噪聲的標(biāo)準(zhǔn)差,wi(n)是服從正態(tài)分布的白噪聲。
2)利用EMD對xi(n)進(jìn)行分解,得到第一個IMF分量,計算它們的平均值
(2)
計算第一個剩余分量
(3)
3)第二個IMF分量如下式(4)計算:
(4)
其中,Mj(·)是信號進(jìn)行EMD分解操作后的第j個IMF分量。
4)計算第L個剩余分量
(5)
計算第L+1個模態(tài)分量
(6)
5)重復(fù)執(zhí)行步驟4),直到剩余分量不再分解為止,即不滿足EMD的分解條件,分解結(jié)束。
6)原始信號x(n)最終被分解為:
(7)
其中,R(n)為最終的剩余分量。
小波閾值的選取[9-11]往往決定小波變換的去噪效果,根據(jù)小波變換理論可知,信號經(jīng)小波變換后,信號信息和噪聲信息在不同尺度上的分布有較大的區(qū)別,而熵衡量信息量的大小,因而通過小波熵值[12-15]自適應(yīng)地確定每個尺度上的閾值,實(shí)現(xiàn)有效濾除噪聲的目的。
具體方法:將心音信號經(jīng)過小波變換后,對尺度j上的高頻系數(shù)|wj,k|等分為多個子區(qū)間,取子區(qū)間中熵值最大區(qū)間的小波系數(shù)絕對值的中值,作為尺度j的噪聲估計方差,即
(8)
經(jīng)前人研究[16-17]及筆者多次仿真,本文采用如式(15)所示閾值[18]計算公式
(9)
基于CEEMDAN算法的心音信號分解,能有效改善模態(tài)混疊問題,充分利用噪聲和心音信號的能量區(qū)別,實(shí)現(xiàn)IMFs分量的信噪分離,通過自適應(yīng)小波熵閾值完成信號去噪,提高了心音信號的信噪比。
CEEMDAN算法將心音信號分解成從高頻到低頻的不同模態(tài)分量。仿真發(fā)現(xiàn),在低階分量處,噪聲能量很大,隨著分解層次增加,噪聲能量越來越小,信號能量越來越大?;谛盘柡驮肼暤哪芰吭诟麟A模態(tài)分量中表現(xiàn)不同,能量急速上升表明噪聲能量減弱而信號能量開始增強(qiáng);同理,在高階處能量急速下降表明信號能量從最強(qiáng)開始減弱,因此,在高階能量急速下降前一階標(biāo)記為信噪分界點(diǎn)。
圖1是正常心音信號,其信噪比為8dB。圖2是帶噪心音信號CEEMDAN的分解圖。圖3是分解后各階IMF分量的能量圖。從圖3中分析IMF1的噪聲能量最強(qiáng),IMF2~I(xiàn)MF5噪聲能量減小,從IMF5開始,信號能量開始增強(qiáng),IMF7的信號能量最強(qiáng),之后能量逐漸降低,所以確定高階能量急劇下降前一階,即k=6階為信號和噪聲的分界點(diǎn)。
圖1 心音信號
圖2 CEEMDAN分解圖
圖3 各階分量能量圖
為驗(yàn)證該方法的合理有效性,對8dB的心音信號從IMF2開始疊加IMF分量,分別計算其信噪比SNR和均方根誤差RMSE,結(jié)果如表1所示。
表1 各階IMF的SNR和RMSE
其中,SNR的數(shù)學(xué)表達(dá)式如下
(10)
RMSE的數(shù)學(xué)表達(dá)式如下:
(11)
從表1中可以看出,從IMF2~I(xiàn)MF4合并分量,信噪比逐漸提高,說明噪聲成分逐漸減少,心音成分逐漸加強(qiáng);從IMF5、IMF6開始合并分量,其SNR和RMSE的結(jié)果比較接近,達(dá)到17dB左右,說明從第五階開始,信號成分開始增強(qiáng);而從IMF7合并的信噪比突然降低,說明從第七階開始合并會丟失部分心音成分,故保留IMF1~I(xiàn)MF6的信號作為待去噪的心音信號分量,進(jìn)行后續(xù)的去噪分析,IMF7之后的分量作為純凈的信號加以保留,與前面分析保持一致。
綜上所述,算法步驟設(shè)計如下:
Step1:對心音信號進(jìn)行CEEMDAN分解,獲得一系列IMF分量;
Step2:基于IMFs分量的能量分析判定信號和噪聲的分界點(diǎn)K;
Step3:將Step2界定的高頻分量作為待去噪IMFs;
Step4:選擇合適的小波基對需去噪的IMFs分量小波分解,根據(jù)式(8)計算尺度j的噪聲方差;
Step5:根據(jù)式(9)計算尺度j上的自適應(yīng)閾值,對Step3界定的IMF分量進(jìn)行小波熵閾值去噪;
Step6:重構(gòu)經(jīng)Step5處理后的IMF分量與剩余的IMFs分量,獲得去噪后的心音信號。
具體流程如圖4所示。
圖4 算法流程圖
本文在MATLAB 2016a仿真環(huán)境下,分別采用本文算法與CEEMDAN、EEMD、EMD、小波軟閾值4種傳統(tǒng)去噪算法分析比較不同信噪比條件下的心音信號的去噪效果。
對8dB條件下的正常心音信號分別采用上述5種算法進(jìn)行去噪處理。算法1采用基于CEEMDAN和小波熵結(jié)合的去噪方法;算法2采用CEEMDAN和小波閾值結(jié)合的方法;算法3采用EEMD和小波閾值結(jié)合的方法;算法4采用EMD和小波閾值結(jié)合的方法;算法5采用小波軟閾值去噪方法。根據(jù)多次仿真結(jié)果,本文小波基采用‘db10’,小波分解層次5層,小波熵自適應(yīng)閾值中參數(shù)α取1.25,最終仿真結(jié)果如圖5所示。
圖5 不同算法的去噪效果圖(8dB)
從圖5中可以看出,5種算法都能很好地保留心音信號的特征,但相較于其它算法,本文算法在S1S2間隙去噪效果更為突出,噪聲濾除更加干凈。在同一信噪比下,對正常心音信號重復(fù)運(yùn)行多次實(shí)驗(yàn)后,分別求取其輸出信噪比及均方根誤差的平均值。其仿真結(jié)果如表2所示,本文相較于直接去掉前幾階分量的方法,信噪比提高了4dB左右,比直接小波閾值去噪,信噪比提高了3dB左右,對于其它經(jīng)驗(yàn)?zāi)B(tài)分解方法,信噪比有了不同程度的提高,同時RMSE明顯減小。
表2 不同算法的SNR和RMSE
S4信號特別微弱,信號特征相較于S1和S2不明顯,但對于心血管疾病的臨床判斷具有重要的作用。同樣,采用上述5種算法對3dB噪聲條件下含S4的心音信號進(jìn)行去噪分析。圖6是去噪效果圖。
圖6 不同算法的去噪效果圖(3dB)
從圖6中可以看出,經(jīng)EEMD、EMD和小波軟閾值這3種算法去噪之后,S1的波形特征有些失真,說明部分心音信息丟失。由于S4在9000-10000采樣點(diǎn)處幅值很小,加入噪聲之后,S4已基本被噪聲淹沒,因此,去噪算法的關(guān)鍵在于濾除掉間隙期(S4S1、S1S2和S2S4間)的噪聲且能保留S4的特征。對于本文算法在間隙期噪聲基本濾除掉,而其它算法間隙期的噪聲去除的不夠干凈,導(dǎo)致9000-10000處的S4信號特征不明顯,為后續(xù)心音信號的識別及心血管疾病的判斷造成影響。
圖7 信噪比曲線(正常心音信號)
為驗(yàn)證不同去噪算法的效果,本文采用正常心音信號和含S4的心音信號作為實(shí)驗(yàn)對象,在不同噪聲環(huán)境下多次運(yùn)算求取信噪比和均方根誤差的平均值,輸出結(jié)果如圖7-圖10所示,在相同的噪聲環(huán)境下,小波軟閾值的去噪效果最差,EEMD和EMD算法去噪效果在低信噪比下比較接近,隨著信噪比的增加,EEMD去噪效果更為明顯,相較于與小波閾值結(jié)合的CEEMDAN算法,與小波熵結(jié)合的本文算法信噪比提高更加顯著,更能保留心音信號的特征。
圖8 RMSE曲線(正常心音信號)
圖9 信噪比曲線(含S4心音信號)
圖10 RMSE曲線(含S4心音信號)
1)本文通過CEEMDAN算法對心音信號分解為多個模態(tài)分量,針對噪聲能量和信號能量在模態(tài)分量中的區(qū)別,判定信噪分界的拐點(diǎn);根據(jù)小波分解后每一尺度上的信號和噪聲的熵值差別,利用小波熵確定每一尺度上的噪聲方差,通過閾值算法確定閾值,進(jìn)行去噪處理。
2)實(shí)驗(yàn)部分,分別比較本文算法與其它4種傳統(tǒng)去噪算法在不同心音和不同信噪比條件下的去噪效果。通過分析,本文算法去噪后的信噪比較高,均方根誤差較小,具有良好的噪聲抑制能力,能較好地保留心音信號的特征。
本文算法實(shí)現(xiàn)了噪聲的有效濾除,為后續(xù)心音的識別和心血管的判斷提供良好的數(shù)據(jù)基礎(chǔ),也為今后信號去噪方法提供了一種思路。