姚建紅 吳 丹 王敏瑩
(東北石油大學電氣信息工程學院,黑龍江 大慶 163318)
信號去噪在信號處理和故障診斷中占有重要地位。實際測得的信號中都含有噪聲,這些噪聲的存在嚴重影響了所得信號的判斷結(jié)果。因此,如何更好地去掉噪聲,提高信噪比,降低均方差,是信號處理的關鍵。目前有很多去噪方法,如小波閾值去噪法、奇異值分解法及匹配追蹤算法(Matching Pursuits,MP)等。其中,小波閾值去噪方法中的閾值很難確定,奇異值分解法中奇異點的位置也容易出現(xiàn)錯誤,這都增加了去噪的難度。相比之下,MP算法相當于是一種“減去”法,它將信號分解為投影之后得到的系數(shù)與原子的線性組合,選擇相匹配的時頻原子進行信號重構(gòu),以此來消噪。然而,該方法所帶來的問題就是大量的內(nèi)積計算,不僅占用計算機內(nèi)存,而且還不能達到最好的去噪效果。對此,筆者提出利用多目標函數(shù)的粒子群算法來進行全局優(yōu)化,減少計算量。
MP算法一般選擇Gabor原子作為時頻原子,由其構(gòu)成算法所需的原子庫。根據(jù)最大匹配投影原理的策略求得與分解信號最接近的時頻原子,經(jīng)過n次匹配之后,得到一個與原信號最接近的時頻原子的線性組合。Gabor原子是4個不同的參數(shù)定義的時頻原子,它又構(gòu)成了所需要的過完備原子庫,其表達式為:
(1)
Gabor原子庫中的原子索引參數(shù)r=(s,u,v,ω),變量s、u、v、w依次為尺度、位移、頻率和相位。
設f為含有隨機噪聲的信號,應用MP算法,在經(jīng)過n次分解后,得到最接近原始信號的信號的步驟如下:
a. 從原子庫中選出與f本身最接近的原子gr0,且把f分為兩部分,分別是在gr0上的投影分量和剩下的殘余分量,表達式為f=〈f,gr0〉gr0+R1f,其中R1f為殘余部分。
b. 由于時頻原子與無噪的原始信號的內(nèi)積一定大于其與噪聲信號的內(nèi)積,通過MP算法所得的信號可視為無噪的原始信號。因此,對殘差部分進行k次迭代,得Rkf=〈Rkf,grk〉grk+Rk+1f,其中〈Rkf,grk〉為信號或信號殘差與原子的內(nèi)積,即兩者的相關系數(shù)。
隨著迭代次數(shù)的增加,與無噪的原始信號相接近的部分越來越明顯,每次匹配后的殘差越來越少,最后可以收斂為0,這就是MP算法的去噪原理[1,2]。
通過以上步驟,利用MP算法對信號進行去噪,雖然在一些領域上已經(jīng)取得了一些成就,但是在逐漸研究的過程中,發(fā)現(xiàn)其也存在一定的缺點。在迭代過程中,存在大量的內(nèi)積計算,不僅占用較大內(nèi)存而且對算法自身也有制約。
粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)是由Kennedy J和Eberhart R C提出的一種模擬鳥類覓食行為的尋優(yōu)搜索算法[3]。粒子群優(yōu)化算法的基礎理論是把鳥類群體中的每個個體比做算法中的單一粒子,而粒子本身要求具有記憶功能,根據(jù)自己經(jīng)驗同時也要與其他粒子相溝通、相比較,從而找到最優(yōu)解。每一個粒子都有一個最佳經(jīng)驗位置,即個體極值pb,整個群體也相對有個最佳經(jīng)驗位置,即全局極值gb。每個粒子都在時刻通過比較這兩個極值來改變自身的位置以達到尋求的最優(yōu)解[4]。假設當前粒子的位置是pi,粒子速度是vi,則最佳位置公式為:
vi=ω·vi+c1·rand()·(pb-pi)+c2·rand()·
(gb-pi)
(2)
pi=pi+vi
(3)
其中ω為慣性權重,隨著ω從小到大變化,同時粒子是從局部搜索轉(zhuǎn)變成全局搜索;c1、c2分別反映了個體極值對粒子速度的影響和全局極值對粒子速度的影響;rand()表示(0,1)范圍內(nèi)的隨機數(shù)。
粒子群優(yōu)化算法因其自身的特點,在尋找最小值、最優(yōu)解的問題上取得了一定的成果。而對于前面所說的MP算法去噪時存在大量計算的缺點,可以把信號分解想象成一個粒子尋優(yōu)的過程[5,6],由此,筆者提出基于PSO的MP去噪優(yōu)化算法。
應用PSO算法最主要是要確定目標函數(shù),即適應度函數(shù)。筆者提出采用基于多目標函數(shù)的粒子群算法對MP算法進行優(yōu)化。在MP算法中,最終提取的是最近似于原始信號的有用成分,余下的部分為噪聲。只有殘差越來越小的時候,同時每次迭代后的最佳原子與上一次信號殘差的相關系數(shù)的絕對值越來越大才最接近原始信號。所以應用PSO算法尋找最小值,把信號或信號殘差與原子兩者的相關系數(shù)絕對值的倒數(shù)和信號殘差作為目標函數(shù),即:
(4)
y2=Rnf
(5)
其中,n?N。
筆者所提改進算法的實現(xiàn)步驟為:
a. 參數(shù)編碼。把定義的一個基原子的參數(shù)組作為待尋優(yōu)粒子,就是把要尋找的最匹配時頻原子轉(zhuǎn)換到粒子群算法所能處理的搜索空間去進行尋優(yōu)。
b. 初始化粒子群。初始化粒子的位置和速度,并確定算法的各個參數(shù)值。
c. 設定目標函數(shù)。筆者采用信號或信號殘差與原子兩者的相關系數(shù)絕對值的倒數(shù)y1和信號殘差y2這兩個函數(shù)作為目標函數(shù)。
d. 確定尋優(yōu)標準。分別計算y1和y2的個體極值F1(k)、F2(k),全局極值P1和P2,得出各粒子間的距離dpb=abs(F1(k)-F2(k)),全局最優(yōu)值的距離dgb=abs(P1-P2)。確定各粒子間的距離dpb為尋優(yōu)標準。
e. 局部最優(yōu)位置和全局最優(yōu)位置的確定。計算全局最優(yōu)值的距離,用各粒子間的距離與其進行比較,如果優(yōu)于它,則替換當前位置;反之不變。
f. 更新。根據(jù)式(2)、(3)更新粒子的位置和速度。
g. 判斷終止條件。若是達到迭代次數(shù)或已經(jīng)得到最優(yōu)值,則終止;否則返回步驟d。
最終得到需要的時頻原子,對原始信號進行重構(gòu),去噪結(jié)束。
為了檢驗改進方法的去噪效果,筆者對加噪的blocks信號進行去噪仿真實驗。先產(chǎn)生純凈信號,信號點數(shù)為20,之后疊加信噪比為11.5dB的噪聲信號。
取1000個采樣點,圖1為原始信號,圖2為圖1疊加含噪信號所得,基礎MP去噪結(jié)果如圖3所示,改進方法去噪結(jié)果如圖4所示。通過對比圖3、4,得出改進方法可以較好地還原原始信號,并且比MP算法能更好地去除尖峰噪聲,而且信號更平滑,信號有用成分提取得更多。圖5、6分別表示基礎MP去噪和改進方法去噪所用的迭代次數(shù),設最大迭代次數(shù)為100,對比兩圖,可知改進方法迭代次數(shù)更小,減少了計算量,更快達到了終止條件。
圖1 原始信號
圖2 加噪信號
圖3 基礎MP方法去噪
圖4 改進方法去噪
除了通過直觀信號的去噪效果圖,還可以通過比較信噪比SNR和均方差MSE值來看出改進方法的優(yōu)越性,信噪比越高說明去噪效果越好,均方差越小說明與原始信號越接近。其算式如下:
(6)
(7)
式中N——信號的長度;
qi——含噪信號;
xi——去噪后的信號。
圖5 基礎MP方法迭代次數(shù)
圖6 改進方法迭代次數(shù)
加噪信號通過兩種方法計算的信噪比SNR和均方差MSE結(jié)果見表1。
表1 信噪比和均方差對比
通過表1可以看出,改進方法較基礎MP算法在這兩個指標上都有明顯的改善。
筆者應用多目標函數(shù)的粒子群算法來優(yōu)化基礎MP算法去噪。對加噪信號進行實驗仿真,結(jié)果顯示:改進算法不僅減少了基礎MP算法的計算量,而且得到的去噪信號更趨于原始信號,在信噪比和均方差上更具有優(yōu)越性。
[1] 陳發(fā)宇,尚永生,楊長春.Matching Pursuits方法綜述[J].地球物理學進展,2007,22(5):1466~1473.
[2] 邵君.基于MP的信號稀疏分解算法研究[D].成都:西南交通大學,2006.
[3] Kennedy J,Eberhart R C.Particle Swarm Optimization[C].Proceedings of IEEE International Conference on Neural Networks.New York:IEEE,1995:1942~1948.
[4] 黃磊.粒子群優(yōu)化算法綜述[J].機械工程與自動化,2010,(5):197~199.
[5] 王春光,劉金江,孫即祥.基于粒子群優(yōu)化的稀疏分解最優(yōu)匹配原子搜索算法[J].國防科技大學學報,2008,30(2):83~87.
[6] 張建軍,王仲生,余匯.采用混合粒子群算法實現(xiàn)匹配追蹤算法[J].振動與沖擊,2010,29(1):143~147.