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