趙 瑋,王 強,何曉暉,袁 媛
(1.陸軍工程大學國防工程學院,江蘇南京 210007;2.陸軍工程大學野戰(zhàn)工程學院,江蘇南京 210007)
由于機械振動、傳感器數據傳輸誤差以及環(huán)境等因素的影響,在實際信號獲取、傳輸與處理過程中常常受到噪聲的污染,因此信號降噪在機械狀態(tài)監(jiān)測領域內受到眾多學者的關注[1]。在信號降噪濾波的方法中,中值濾波、均值濾波、小波濾波以及維納濾波等方法均得到了廣泛的應用[2]。均值濾波作為一種線性濾波方法,對含高斯噪聲的信號具有很好地降噪效果,但對沖擊噪聲無法進行有效的濾除[3];中值濾波作為一種非線性濾波方法,能夠很好地濾除含脈沖干擾的噪聲,但對高斯噪聲的濾除效果不明顯[4];小波濾波本質是具有多通道帶通濾波器,其優(yōu)勢在于分離目標信號與噪聲的頻帶相互分離時的確定性噪聲情況,當目標信號與噪聲頻帶重疊情況下,降噪效果不佳[5-6];維納濾波為一種線性濾波器,主要用于提取濾除平穩(wěn)噪聲所污染的信號[7]。
在工程實踐中,噪聲具有相互疊加與影響的特點,含有多種噪聲信號,如高斯噪聲和沖擊噪聲等,單一的濾波方法無法對噪聲實現有效的濾波[8]。針對混合噪聲的濾波方法,多采用將噪聲分類后結合不同濾波算法分別對分類后的噪聲進行濾除,在信號降噪過程中取得了較單一濾波算法更好的效果,但對噪聲的分類與檢測導致算法計算量的增加,在需要實時降噪的場合無法得到有效應用。Volterra級數模型具有的線性和非線性項的特性,使得Volterra濾波器綜合了線性濾波器、非線性濾波器以及預測的功能,具有很好的同時濾除高斯噪聲與沖擊噪聲的功能,同時還可以滿足系統(tǒng)實時性的要求[9-10]。Volterra級數的核參數是描述非線性系統(tǒng)的關鍵,其辨識精度直接影響濾波器的性能。在核參數辨識研究方面,群智能優(yōu)化算法在Volterra級數的時域核參數辨識方面受到廣泛的關注,甘慧萍[11]等提出一種基于遺傳算法辨識Volterra濾波器核參數的機械振動信號消噪方法,在獲得最優(yōu)的核參數的同時對含高斯噪聲和脈沖干擾的機械振動信號進行消噪處理,具有很好的濾波性能和魯棒性。李寧洲[12]等提出一種動態(tài)隨機局部搜索生物地理優(yōu)化算法(DRLBBO)優(yōu)化求解模型的核參數的非線性Volterra濾波方法,有效濾除了車輪轉速信號所含混合噪聲;同時提出了動態(tài)多子群引力搜索算法和灰聚類多子群自適應粒子群算法,實現了非線性Volterra濾波器模型結構和參數的確認及優(yōu)化求解[13]。馮曉云[14]等提出了一種基于組合混沌策略自適應量子微粒群算法(CCSAQPSO算法)的Volterra時域核辨識方法,其核參數辨識精度高,同時在全局優(yōu)化能力和快速收斂能力上都有較大提高。本文提出一種基于蝙蝠算法(BA)的核參數優(yōu)化的非線性Volterra濾波方法,在建立能夠定量反映待辨識模型輸出與理想輸出之間的偏差程度的適應度函數的基礎上,獲得優(yōu)化核參數的同時對含有混合高斯噪聲與脈沖噪聲的信號進行降噪處理,通過仿真實驗驗證,該方法在針對混合噪聲的濾除方面具有很好的效果。
Volterra級數模型一種用輸入u(t)與輸出y(t)表示的非線性系統(tǒng)模型,其關系可以表示為
(1)
式中:
式中hn(τ1,τ2,…,τn)為非線性Volterra濾波器模型的n階時域核。
在信號濾波過程中,首先需要將式(1)所示的無窮階Volterra級數模型進行離散化處理,獲得離散化n階Volterra濾波器模型:
(2)
式中:N為最高階次;k為Volterra級數階次,取值為正整數;e(k)為截斷誤差。
yn(k)可以表示為
(3)
式中:mi為記憶長度;hn(m1,m2,…,mn)為n階Volterra時域核函數。
在濾波過程中,式(2)無窮級數的特點導致其無法精確的計算,通常進行階段處理,即確定無窮級數的階數k與記憶長度mi,通常利用前3階Volterra 級數模型即可近似描述很多實際非線性系統(tǒng),滿足非線性濾波器的要求,因此最高階次N=3,則式(2)可化簡為
(4)
由于Volterra 級數的時域核具有對稱性,即:
(5)
式中i1,i2,…,in為1,2,…,n中的任一排列。
(6)
式中ai為考慮時域核對稱性后引入的權系,且
三階濾波器的模型可以表示為
h2(m1,m2)u(k-m1)u(k-m2)+
u(k-m1)u(k-m2)u(k-m3)+e(k)
(7)
式中,記憶長度mi取適當值時,在誤差允許范圍內,e(k)取值可以忽略不計。
非線性Volterra 濾波器模型的核參數優(yōu)化實質上是一個多維參數空間上的尋優(yōu)問題,蝙蝠算法(BA)作為一種常用的群智能優(yōu)化算法[15],本文研究一種用BA 算法對非線性Volterra濾波器模型的核參數進行優(yōu)化?;隍鹚惴ǖ腣olterra 濾波器的方法:將Volterra濾波器的模型結構與參數辨識看作優(yōu)化問題,將核參數作為優(yōu)化變量,將輸入實際信號向量與核參數向量的乘積與理想信號向量的均方差作為BA算法的適應度函數,利用BA算法通過迭代尋優(yōu)使待辨識模型輸出逼近實際信號輸出,求解待辨識模型的核參數。
蝙蝠算法是由Yang提出的一種利用蝙蝠在覓食時所發(fā)出的脈沖的頻率、響度、脈沖發(fā)射率的變化,模擬蝙蝠回聲定位行為的群智能算法[16]。蝙蝠算法是通過頻率的調整引起波長的變化,波長的大小與蝙蝠所捕食的昆蟲的大小相一致,從而可定位目標。蝙蝠按脈沖發(fā)射率和響度發(fā)出聲波脈沖,當發(fā)現目標時會增加脈沖的發(fā)射率,減小響度,從而逼近目標捕食獵物。在求解優(yōu)化問題時,將待優(yōu)化問題的目標函數值衡量蝙蝠所處位置的優(yōu)劣,則蝙蝠的空間位置以及速度更新公式為
(8)
式中:t為迭代次數;Xi(t)為t時刻蝙蝠位置向量;Vi(t)為蝙蝠的t時刻飛行速度向量;Xbest(t)為當前群體中所有蝙蝠中最優(yōu)位置;fi為蝙蝠i搜索獵物時使用的脈沖頻率,fi∈[fmin,fmax];[fmin,fmax]為搜索脈沖頻率范圍;β∈[0,1]為均勻分布的隨機變量。
(9)
(10)
蝙蝠算法流程如下:
(1)初始化算法基本參數。確定蝙蝠數目m,搜索脈沖頻率范圍[fmin,fmax],最大脈沖音強A,音強衰減系數α,最大脈沖頻度r0,脈沖頻度增加系數γ,最大迭代次數MaxT;
(2)初始化第i只蝙蝠的位置Xi和速度Vi,初始化蝙蝠搜索脈沖頻率fi和音強Ai,計算每只蝙蝠的初始適應度值;
(3)通過調整頻率運用式(8)更新蝙蝠速度Vi與位置Xi;
(4)生成隨機數rand1,若rand1>ri,選擇當前個體的最優(yōu)個體Xbest(t),并對最優(yōu)位置蝙蝠進行隨機擾動,通過隨機擾動產生一個局部個體Xnew(t),并計算適應度值;
(6)對蝙蝠群體進行評估,找出當前最佳蝙蝠以及所處空間位置。當滿足搜索精度或達到最大搜索次數,輸出全局最優(yōu)個體值;否則返回(3)進行循環(huán)。
采用BA算法進行非線性Volterra 濾波器模型核參數優(yōu)化,待優(yōu)化的核參數向量表示為
H=[h1(0),h1(1),…,h1(M1-1),h2(0,0),h2(0,1), …,H2(M2-1,M2-1),h3(0,0,0),h3(0,0,1), …,h3(M3-1,M3-1,M3-1)]
(11)
作為蝙蝠算法的個體位置,蝙蝠搜索空間維度D表示為
(12)
輸入矩陣U=[u(k),u(k+1),…,u(k+L-1)]T,其中L為數據長度,u(k)為k時刻輸入向量,u(k)如式(13)所示:
u(k)={u(k),u(k-1),…,u(k-M1+1),
[u(k)]2,u(k)u(k-1),…,[u(k-M3+1)]2}T
(13)
則尋優(yōu)的目標函數
HIS(Xi)=f[u(k)-ud(k)]
(14)
式中ud(k)為理想信號。
采用BA算法使式(14)取得最小值的最優(yōu)蝙蝠位置即非線性Volterra濾波器模型的最優(yōu)核參數,其優(yōu)化流程如圖1所示。
圖1 基于BA算法的Volterra濾波器模型核參數優(yōu)化流程
為了驗證基于BA優(yōu)化核參數的Volterra濾波器在消除噪聲方面的有效性,分別對基于中值濾波器、均值濾波器、維納濾波器以及基于BA算法優(yōu)化核參數的Volterra濾波器的降噪效果的進行仿真實驗驗證。仿真實驗中,采用式(15)所示的數學模型模擬機械振動信號,其原始不含噪聲信號和加噪聲信號分別如圖2(a)、圖2(b)所示。
(15)
式中:g(t)為模擬信號添加的信噪比為10 dB的高斯白噪聲;q(t)為5 dB沖擊噪聲信號。
含添加噪聲的信號如圖2(b)所示,采樣周期為0.1 ms,蝙蝠算法中蝙蝠種群個數為20,搜索脈沖頻率范圍為fi∈[0,10],最大脈沖頻度r0=1,最大脈沖音強A0=0.4,脈沖音強衰減系數α=0.95,脈沖頻度增加系數γ=0.1,迭代次數為900。
(a)不含噪聲信號
(b)含噪聲信號圖2 原始信號與含噪聲信號
分別采用中值濾波、均值濾波、維納濾波以及基于BA算法的優(yōu)化核參數的Volterra濾波對含噪聲的信號進行濾波仿真實驗,其結果如圖3所示。
由圖3(a)可以看出,運用中值濾波的方法,能很好地濾除脈沖噪聲,但是高斯噪聲的濾除效果不明顯;由圖3(b)可知,運用均值濾波的方法進行信號降噪,較中值濾波對高斯白噪聲濾除效果較好,但對于沖擊噪聲濾除效果較差;由圖3(c)可知,用維納濾波器濾波后進行消噪,濾波結果不能很好地反映原始信號特征,信號存在失真現象;由圖3(d)可知,運用基于BA優(yōu)化核參數的非線性Volterra濾波器進行信號降噪,能夠很好地濾除高斯白噪聲與沖擊噪聲,比傳統(tǒng)的濾波方法在濾除組合噪聲方面效果好,濾波結果更接近原始信號,信號失真小,特別是針對振動信號降噪方面具有一定的優(yōu)勢。
(a)中值濾波后的信號
(b)均值濾波后的信號
(c)維納濾波后的信號
(d)基于BA優(yōu)化核參數的Volterra濾波后的信號圖3 經濾波后信號
本文針對含有混合噪聲的信號降噪的問題,提出了一種基于蝙蝠算法優(yōu)化核參數的非線性Volterra方法,在滿足適應度函數取得最小值的情況下,運用BA算法迭代求解相應的最優(yōu)非線性Volterra濾波器模型核參數。仿真結果表明,基于BA優(yōu)化核參數的非線性Volterra濾波器兼具線性與非線性濾波器的優(yōu)勢,較單一的傳統(tǒng)濾波算法如中值濾波、均值濾波、維納濾波等具有對含高斯噪聲與沖擊噪聲的混合噪聲更好的濾波性能,且信號失真現象不明顯,同時較組合濾波方法具有運算量小的特點,可以用于對信號處理有實時性要求的場合。