(寶雞文理學(xué)院電子電氣工程學(xué)院,陜西 寶雞 721013)
脈搏信號是人體最易采集的一種生理信號,包含了人體的心血管系統(tǒng)常見疾病的特征[1]。但是,采集脈搏信號時,受到外界環(huán)境影響,較易混入噪聲,影響信號的提取與分析。因此,脈搏信號去噪一直是生理信號分析研究的重點內(nèi)容。使用小波變換[2-3]可以對脈搏信號進行分解,更好地處理信號中包含的噪聲問題。但是,小波基的選擇及閾值的設(shè)定需要先驗知識;否則,信號處理效果較差。經(jīng)驗?zāi)B(tài)分解[4]方法也可用于脈搏信號去噪,該方法不需要先驗知識,只需將信號分解成多個模態(tài)函數(shù)分量,再對分量去噪后重構(gòu)即可獲得脈搏信號,但是該方法易出現(xiàn)模態(tài)混疊現(xiàn)象[5],影響信號特征識別。
鑒于上述去噪算法的缺點,本文引入了壓縮感知理論[6]中的匹配追蹤(Matching Pursuit,MP)算法[7]對脈搏信號進行去噪。MP 算法的去噪是基于噪聲不具有稀疏性的特性,對含有噪聲的信號進行稀疏分解后,在重構(gòu)過程中主要恢復(fù)的是信號的信息,丟棄了許多噪聲的信息。但是原始的匹配追蹤算法的計算量十分巨大,會影響算法的執(zhí)行速度,因此使用了人工蜂群(Artificial Bee Colony Algorithm,ABC)算法[8-9]來對其進行改進。文中的仿真結(jié)果表明,將壓縮感知理論中的MP 算法與群體智能算法中的ABC 算法結(jié)合起來,對包含噪聲的脈搏信號進行去噪,可以在去噪的同時較好地保持信號特征。
壓縮感知的基本方法為:首先對采集到的脈搏信號進行稀疏分解,將其變換后進行線性組合,完成對原始信號的重構(gòu)。
壓縮感知理論相關(guān)算法較多,MP 算法是應(yīng)用較為廣泛的一種。其原理是:包含噪聲的信號中,噪聲是非稀疏的,而信號是稀疏的,并且分布較為隨機。所以,可以通過對原始信號消除噪聲來逼近目標(biāo)信號,具體過程如圖1 所示。
圖1 匹配追蹤算法流程
人工蜂群算法是一種建立在蜜蜂自組織模型和群體智能基礎(chǔ)上的非數(shù)值優(yōu)化計算方法。在此算法中,蜂群由引領(lǐng)峰、跟隨蜂、偵查蜂三部分組成。引領(lǐng)蜂負(fù)責(zé)尋找食物源,跟隨蜂負(fù)責(zé)根據(jù)引領(lǐng)蜂帶回的相關(guān)信息,對食物源進行篩選,偵查蜂則負(fù)責(zé)完全隨機尋找新的食物源。如果某個食物源被引領(lǐng)蜂和跟隨蜂丟棄,則和這個食物源對應(yīng)的引領(lǐng)蜂就變?yōu)閭刹榉洹?/p>
人工蜂群算法的主要過程為:首先生成初始種群Xi=(i=1,2,…,SN),N為食物源的個數(shù),每個Xi是一個D維的向量;引領(lǐng)蜂先對對應(yīng)的食物源進行1 次鄰域搜索,并選擇花蜜數(shù)量多的食物源。所有引領(lǐng)蜂完成搜索之后,在舞蹈區(qū)把食物源的信息傳達給跟隨蜂,根據(jù)得到的信息按概率Pi選擇食物源。Pi的計算表達式為:
式(1)中:fi為第i個食物源的花蜜數(shù)量。
隨后跟隨蜂也進行1 次鄰域搜索并選擇較好的食物源。引領(lǐng)蜂和跟隨蜂根據(jù)如下表達式進行鄰域搜索:
式(2)中:v∈{1,2,…,N},j∈{1,2,…,N},且v≠i;Rij為一個[-1,1]之間的隨機數(shù)。
如果某個食物源經(jīng)過L次循環(huán)之后沒有得到改善,則由偵查蜂根據(jù)公式(3)選擇一個新的食物源來代替它:
人工蜂群MP 算法的主要思想為:將信號在稀疏分解的過程中所進行的內(nèi)積運算看成一個最優(yōu)化問題,利用人工蜂群算法對其進行優(yōu)化,減少內(nèi)積的計算量,提高稀疏分解的速度,它的主要步驟如下。
Step 1:初始化參數(shù),設(shè)定人工蜂群規(guī)模m,迭代次數(shù)n,內(nèi)循環(huán)次數(shù)limit,將信號或信號殘差與原子內(nèi)積的絕對值作為適應(yīng)度函數(shù)。
Step 2:初始化蜂群,使之均勻分布;依次計算所有蜜蜂的適應(yīng)度的值,并將其按降序排列,將前一半適應(yīng)度值對應(yīng)的蜜蜂設(shè)定為引領(lǐng)蜂,后一半適應(yīng)度值對應(yīng)的蜜蜂設(shè)定為跟隨蜂;全局最優(yōu)位置的初始值為排序后蜜蜂的初始位置。
Step 3:引領(lǐng)蜂根據(jù)式(2)對食物源做鄰域搜索并更新;而跟隨蜂首先根據(jù)式(1)計算的概率值選擇食物源,再按式(2)做鄰域搜索并進行更新。引領(lǐng)蜂和跟隨蜂每進行1次更新就分別計算1 次適應(yīng)度的值,每次都將適應(yīng)度最大的值對應(yīng)的蜜蜂的位置,作為全局最優(yōu)位置保留下來。
Step 4:經(jīng)過limit次循環(huán)后,判斷是否有丟棄的食物源,如果有,則這個食物源對應(yīng)的引領(lǐng)蜂就變?yōu)閭刹旆?,并由其根?jù)式(3)產(chǎn)生1 個新的食物源。
Step 5:判斷種群迭代是否結(jié)束,如果結(jié)束,則終止迭代,否則回到步驟3。
為了較好地表示信號去噪過程,現(xiàn)以正弦信號模擬原始的脈搏信號,正弦信號表示為s(t)=sin(2π×1.5t)。該正弦型號的波形圖如圖2(a)所示。給該信號加入8 db 高斯白噪聲,用來模擬帶有噪聲的脈搏信號。加入噪聲后的波形如圖2(b)所示。依據(jù)本文提出的通過人工蜂群算法改進的MP 算法,對夾雜噪聲的脈搏信號進行稀疏分解,再將最佳匹配原子進行線性組合,得到的就是去除噪聲后的信號,波形如圖2(c)所示。由圖2 可得出,基于人工蜂群算法改進的匹配追蹤算法對仿真的脈搏信號進行去噪,得到的信號總體上沒有包含毛刺,并且波形相對清晰,表明本文提出的方法不僅能夠有效地濾除噪聲,還可以有效地保留脈搏信號的細節(jié)特征。
圖2 去噪前后的對比圖
去除噪聲后,需要計算信號的部分指標(biāo)來檢測去噪效果。本文采取信噪比(SNR)和均方根誤差(RMSE)對去噪效果進行客觀評價。信噪比和均方根誤差定義如下:
式(4)(5)中:s(i)為仿真信號(使用上述方法去噪后的信號);N為信號長度。
在應(yīng)用去噪算法時,應(yīng)盡可能提高信噪比,降低均方根誤差。
根據(jù)式(4)(5)計算了去噪后信號的SNR和RMSE。去噪前的SNR為11.931 0,去噪后的SNR為29.501 4,說明該方法去噪效果較好,有效地提升了SNR;去噪后的均方根誤差為0.026 2,數(shù)字接近0,說明去噪后的信號與仿真信號相似性越高,信號失真越小。綜合上述討論,本文的方法在去除噪聲的同時,有效地保留了信號特征,減輕了去噪過程中的信號失真。
脈搏信號易混入噪聲信號,影響脈搏信號的特征提取與分析,因此,需要對脈搏信號進行去噪。本文基于壓縮感知理論和人工蜂群算法原理,提出一種新的去噪方法。仿真實驗表明,該方法可以較好地去除信號中包含的噪聲,并保留信號的特征。