摘 要:為了消除信號收集過程中的噪聲干擾,提出一種基于遺傳算法的 Volterra 濾波器的信號消噪方法。利用 Volterra級數建立一個非線性濾波器模型,并采用經典遺傳算法對其核參數進行尋優求解,從而達到消噪的目的。最后將這一研究理論通過 Matlab 進行反復的仿真實驗,并將本文提出的消噪方法的仿真結果與研究者常用的典型的基于 Wiener 模型的維納濾波器的消噪結果進行比較,通過實驗結果發現,本文提出的基于遺產算法的 Volterra 濾波器的濾波效果優于 Wiener 濾波器,其可行性和有效性得到了驗證。
關鍵詞:遺傳算法 Volterra 級數 濾波器
0 引 言
在研究中,幾乎所有的實際應用系統都可以當作非線性系統來進行研究[2].Wiener 模型是一種典型的非線性系統,在工業生產過程中的應用非常之廣泛,如 PH 中和過程、熱交換過程和流體控制等[3]。然而隨著非線性系統復雜度的提高,Wiener 模型已經不能滿足現代工業生產的需求。Volterra 級數實際是具有記憶能力的 Taylor 級數的擴展,故可逼近任意連續的非線性系統,由此得到研究者們的重視和青睞[4]~[10],并且取得了階段性的成果。Volterra 模型是一種借助輸入、輸出進行表示的非線性系統模型,其輸出是輸入的非線性函數的線性組合 [4] 。
基于 Volterra 級數的非線性系統濾波研究,即在信號采集中,用 Volterra 級數模型針對原始信號中的噪聲信號進行濾除,以求將原始信號恢復到最佳狀態,能對系統進行最客觀的研究和評價。本文在研究 Volterra 濾波器在非線性系統濾波的基礎上,通過遺傳算法對 Volterra 級數核進行優化,得到基于遺傳算法的 Volterra濾波器。與 Wiener 濾波器相比,基于遺傳算法的 Volterra濾波器在非線性系統的濾波中表現出更加優越的性能,更易于工程實現。
1 非線性系統的 Volterra 級數
2 基于遺傳算法的自適應 Volterra 濾波器
2.1 遺傳算法(GA)的基本思想
遺傳算法依據生物在自然界中的進化過程而總結出的一種自適應全局優化概率搜索算法。該算法具有很強的穩定性,它不依賴于問題的領域和種類,可以適應于很多復雜的系統優化問題。用GA求解問題時,可以對該算法進行一定的設計。這樣可以克服基于迭代原理的各種數值方法對適用問題的局限以及無法保證可以收斂到全局最優解的缺點[11]。
同時遺傳算法的適應度(目標函數)不僅不受連續可微的約束,甚至不要求其連續,而且其定義域可以任意設定,因此極大地擴展了遺傳算法的應用范圍[12]。經典的遺傳算法實現過程如圖1所示:
2.2 遺傳算法對 Volterra 級數核系數的優化
2.2.1 適應度函數確定與適應度計算
遺傳算法是根據給定的目標函數作為尋優的目標,而該目標函數一般由待求問題給出。本文待解決問題的目標函數為Volterra 濾波器的實際輸出和理想輸出的均方誤差,進化的結果是使該值最小,故可將該均方誤差作為目標函數(即自適應函數),這樣,遺傳算法的進化過程就是適應度函數值不斷減小直至最優解出現的過程。
在進化過程中,需對種群中每個個體的優劣性進行判斷,即要計算出個體的適應度值。具體計算方法為:首先由個體基因碼解碼計算出該個體對應的 Volterra 濾波器核系數,然后根據核系數,計算針對所有給定樣本的 Volterra 濾波器的實際輸出和理想輸出誤差平方,將該誤差平方作為該個體的適應度,
2.2.2 遺傳操作及新一代種群產生
選擇—根據適應度函數計算得出的適應度值的大小來選擇重組或交叉的個體。具體操作可采用多種方法來實現,本文采用輪盤賭選擇方法,即適應度值越大該個體被選中的幾率就越大,反之,則被選中的幾率越小。
交叉—即基因重組,是由已知的兩個父個體重組產生新個體的過程,該過程可為群體增加更多的新鮮血液。根據研究者采用的個體編碼方法不同,相應的交叉操作也有多種,本文采用一種線性交叉法:
3.基于遺傳算法的 Volterra 濾波器及其 MATLAB 仿真
Volterra 濾波器的濾波原理:給出一個種群樣本后,它能夠按照GA自適應地調節核參數,從而尋求最優解。自適應 Volterra 濾波器常用算法是 LMS,但是該算法收斂速度和穩定性難以保證。而本文采用的遺傳算法是通用的優化算法,對尋優參數基本無要求,能夠很快地收斂到全局最優解,因而遺傳算法能夠有效地應用于非線性 Volterra 濾波器的核系數的尋優問題。
3.1 Volterra 濾波器
式(1)表示的非線性系統有無限個 Volterra 核參數,但在實際應用時必須作截斷處理。而截斷處理包括階數 p 和記憶深度 N 兩個方面。很多研究者在研究的過程中都采用二階 Volterra 進行研究,但是二階 Volterra 級數很難達到非線性系統的高精度要求。本文在研究的過程中用三階截斷,即階數 p=3,并假設 h0=0,記憶深度為 N,N=4。綜上,該系統可可表示為:
在式(7)中,已假設 Volterra 核是對稱的,即對任何p!個 m1,m2,…,mp 的換位,hp(m1,m2,…,mp)都相等,這樣式(7)中共有 34 個 Volterra 核。定義系統輸入矢量 X(n),核矢量H(n),式(7)也可以表示成式(8)的式。
3. 2 基于 Volterra 濾波器參數
在用遺傳算法進行 Volterra 級數濾波器的優化時,涉及到很多參數,如種群(popsize)的大小、最大迭代次數的選擇(max-length)、以及 Volterra 核系數 h 和采樣點的大小。首先要確定以上這些參數的取值,因為這些參數的取值大小不僅會影響計算的快慢,占用計算機的內存,還會直接影響到系統的最終優化結果,最終影響的是該算法的優越性。經過反復運行,發現參數的取值為以下范圍或取值時,算法的優化效果比較理想。
3.2 基于遺傳算法 Volterra 濾波器 MATLAB 仿真
上面給出了三階 Volterra 級數的形式,并對相關遺傳算法的參數進行了優選。基于遺傳算法的 Volterra 濾波器相比于以前的濾波器,對于非線性系統能很好進行描述。現就維納濾波器和基于遺傳算法的三階 Volterra 濾波器進行 Matlab仿真。在 Matlab 中分別進行 50 次有效地仿真運行。
通過圖2—圖5可以看到,基于遺傳算法的三階Volterra濾波器比維納濾波器的性能和運行結果更加穩定,該方法濾波性能優良,更加接近于最優值。
4 結論
本文介紹了Volterra濾波器的基本原理及遺傳算法基本進化原理,并針對信號消噪問題,提出將遺傳算法引入自適應Volterra濾波器的核系數的優化過程,以得到最優的核參數。最后將基于遺傳算法的自適應Volterra濾波器應用于非線性系統的濾波過程,文中通過Matlab仿真實驗結果證明了基于遺傳算法的自適應Volterra濾波器濾波的的可行性和消噪的優良性能。仿真結果說明本文提出的基于遺傳算法自適應Volterra濾波器有較好的消噪效果,具有一定的工程應用價值。
參考文獻:
[1]王小平,曹立明.遺傳算法:理論、應用與軟件實現[M].西安交通大學出版社 ,2002,1.
[2]KARABOGA Dervis.An idea based on honey bee swarm for numerical optimization[J]. Erciyes University Press,2005.
[3]張朝龍,佘春日,江善和等.基于自適應云粒子群算法的 Wiener 模型辨識[J].計算機應用研究,2012,29(11)
[4]吳立勛,梁虹.volterra 級數模型的一種并行辨識算法[J].石家莊學院報,2007,9(6).
[5]胡釙 .volterra 級 數的 物理模型 推導及 應用 [J]. 水利電力科技.1996,23(1).
[6]歐文,韓崇昭.volterra 泛函級數辨識中維數災難的一種解決方法[J] 西安交通大學學報,2001,35(6).
[7]宋志平,程禮,魏瑞軒.航空發動機的一種 volterra 級數非線性動態模型[J].航空動力學報,2004,19(4)
[8]韓海濤,譚力寧,馬紅光等.基于 GA 理論的 volterra 核辨識的多音激勵設計[J].計算機工程與設計,2013,34(4).
[9]Tang H,Liao YH,Cao JY.Fault diagnosis approach based on volterra models[J].Mechanical system and signal processing,2010,24(4):1099-1113.
[10]趙知勁,鄭曉華,尚俊娜.一種全解耦分組二階 Volterra 自適應濾波算法[J].數字信號處理,2010,34(7).
[11]楊福寶. 基于遺傳算法的 FIR 數字濾波器的優化設計[J].武漢理工大學學報, 2002,26(4): 478-480
[12]王家齊,孫青,孫勇等.遺傳算法在波導濾波器優化設計中的應用[J].導彈與制導學報,2006,26(1):446-448.
[13]王曉芳.基于遺傳算法的自適應濾波器設計與實例仿真[J].山東輕工業學院學報,2006,20(2):24-28.
作者簡介:
甘慧萍(1988-),女,甘肅永登人,柳州鐵道職業技術學院教師,研究方向:非線性算法的優化計算。