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