劉 婷,張立毅,2,張晉斌
(1.天津商業(yè)大學(xué)信息工程學(xué)院,天津300134;2.天津大學(xué)電子信息工程學(xué)院,天津300072;3.宜昌測試技術(shù)研究所,湖北 宜昌443003)
隨著全球信息化的推進(jìn),數(shù)字信號處理的理論與應(yīng)用得到了飛躍式發(fā)展。數(shù)字信號處理器的設(shè)計(jì)一直是數(shù)字信號處理領(lǐng)域的重點(diǎn)研究課題之一,無限長單位抽樣響應(yīng)(Finite Impulse Response,F(xiàn)IR)濾波器以其系統(tǒng)穩(wěn)定性、易于滿足線性相位和硬件實(shí)現(xiàn)容易等特點(diǎn)[1],在通信、雷達(dá)、生物醫(yī)學(xué)、地震勘探等領(lǐng)域得到廣泛的應(yīng)用。
最優(yōu)化FIR濾波器設(shè)計(jì)是指在滿足一定優(yōu)化準(zhǔn)則下,使設(shè)計(jì)的FIR濾波器性能最優(yōu)的一種設(shè)計(jì)方法[2],它可以歸結(jié)為一個(gè)最優(yōu)化問題,采用最優(yōu)化理論來求解。近年來,許多學(xué)者采用啟發(fā)式算法來實(shí)現(xiàn)最優(yōu)化FIR濾波器設(shè)計(jì),取得了較好的優(yōu)化效果,例如基于遺傳算法的FIR濾波器[3]、基于粒子群算法的FIR濾波器[4]和基于差分文化算法的FIR濾波器[5]。人工蜂群算法是一種模擬蜂群尋找最優(yōu)食物源的智能優(yōu)化算法,函數(shù)優(yōu)化測試表明,ABC算法比遺傳算法、差分進(jìn)化算法和粒子群算法具有更好的優(yōu)化性能[6]。本文將人工蜂群算法用于求解最優(yōu)化FIR濾波器設(shè)計(jì)問題,提出了一種基于人工蜂群算法的FIR濾波器設(shè)計(jì),并進(jìn)行了計(jì)算機(jī)仿真。
人工蜂群算法分為三種角色:引領(lǐng)蜂、跟隨蜂和偵察蜂。引領(lǐng)蜂有保持優(yōu)良食物源的作用,具有精英特性;跟隨蜂增加較好食物源對應(yīng)的蜜蜂數(shù),加快算法的收斂;偵察蜂隨機(jī)搜索新食物源,幫助算法跳出局部最優(yōu)[7]。人工蜂群算法的基本實(shí)現(xiàn)步驟總結(jié)如下[8]:
1)初始化
隨機(jī)生成SN個(gè)食物源,每一個(gè)食物源對應(yīng)一個(gè)引領(lǐng)蜂,并設(shè)引領(lǐng)蜂與跟隨蜂個(gè)數(shù)相等。每個(gè)食物源Xi=(Xi1,Xi2,…,XiD)(i=1,2,…,SN)對應(yīng)優(yōu)化問題的一個(gè)解,其中D為問題維數(shù)。按照下式初始化Xi。
其中,d∈{1,2,…,D},Xid,max,和 Xid,min分別是 Xid的上限和下限;rand為(0,1)之間的一個(gè)隨機(jī)數(shù)。
在最小化問題中,利用下式計(jì)算各食物源的食物濃度(適應(yīng)度值)。
其中,fiti和fi分別為第i個(gè)食物源的食物濃度(適應(yīng)度值)和對應(yīng)優(yōu)化問題的目標(biāo)函數(shù)值。
2)引領(lǐng)蜂行為
引領(lǐng)蜂首先采用“貪婪原則”對相應(yīng)的食物源進(jìn)行一次鄰域搜索,如果新食物源的食物濃度優(yōu)于舊食物源,則替換舊食物源,否則保留舊食物源。
引領(lǐng)蜂對食物源Xi進(jìn)行領(lǐng)域搜索,產(chǎn)生新食物源Vi=(Vi1,Vi2,…,ViD).
其中,m為[1,SN]之間的隨機(jī)整數(shù)且 m≠i;drand為[1,D]之間的隨機(jī)整數(shù);rid∈[-1,1]是一個(gè)隨機(jī)數(shù),控制鄰域搜索的范圍。上式說明,Vi和Xi相比只有一個(gè)分量更新,因此蜂群算法屬于單維更新算法。
3)跟隨蜂行為
所有的引領(lǐng)蜂完成搜索后,把食物源的信息傳達(dá)給跟隨蜂。跟隨蜂根據(jù)輪盤賭的方式選擇食物源。食物源i被選中的概率Pi為:
同樣,跟隨蜂在選中食物源的附近也采用“貪婪原則”利用式(3)進(jìn)行鄰域搜索,當(dāng)跟隨蜂搜索新食物源的食物濃度大于原引領(lǐng)蜂的舊食物源時(shí),替換原引領(lǐng)蜂的舊食物源,完成角色互換;反之,保持不變。
4)偵察蜂行為
引領(lǐng)蜂經(jīng)貪婪選擇后,與之對應(yīng)的食物源的食物濃度連續(xù)limit次沒有被更新,表明該食物源陷入局部最優(yōu),應(yīng)該放棄。此時(shí),引領(lǐng)蜂變?yōu)閭刹旆洌⒏鶕?jù)式(1)生成新的食物源。
5)結(jié)束
記錄到目前為止的最優(yōu)解,并判斷是否滿足結(jié)束條件。若不滿足,返回繼續(xù)執(zhí)行引領(lǐng)蜂、跟隨蜂和偵察蜂行為,直到滿足結(jié)束條件后,循環(huán)結(jié)束。
設(shè)FIR濾波器的單位抽樣響應(yīng)為h(n),則其頻率響應(yīng)為:
其中,N為濾波器的階數(shù)。
最優(yōu)化FIR濾波器的設(shè)計(jì),就是選取合適的濾波器系數(shù)h(0),h(1),…,h(N-1)使目標(biāo)函數(shù)最小。根據(jù)頻域最小均方誤差準(zhǔn)則,目標(biāo)函數(shù)選為M個(gè)頻率點(diǎn){ωi|i=1,2,…,M}上,所設(shè)計(jì)濾波器頻率響應(yīng)H(ejω)與理想濾波器頻率響應(yīng)|Hd(ejω)|的誤差平方和,即
從上式可以看出,目標(biāo)函數(shù)是濾波器系數(shù)h(0),h(1),…,h(N-1)的非線性函數(shù)。
把最優(yōu)化FIR濾波器設(shè)計(jì)搜索最佳濾波器系數(shù)的過程看作是人工蜂群算法尋找最豐富食物源的過程,即可得到基于人工蜂群算法的FIR濾波器設(shè)計(jì)。
在基于人工蜂群算法的FIR濾波器設(shè)計(jì)中,選擇式(6)為目標(biāo)函數(shù),目標(biāo)函數(shù)越小,所設(shè)計(jì)濾波器的頻率響應(yīng)H(ejω)與理想濾波器的頻率響應(yīng)|Hd(ejω)|越接近。算法結(jié)束后,蜜蜂尋找到的最豐富食物源對應(yīng)于FIR濾波器的最優(yōu)濾波器系數(shù) h(0),h(1),…,h(N -1)。
基于人工蜂群算法FIR濾波器的設(shè)計(jì)步驟如下:
1)給出理想濾波器的頻率響應(yīng)Hd(ejω)。
2)人工蜂群算法初始化。
設(shè)定食物源數(shù)量SN,最大循環(huán)次數(shù)MCN和引領(lǐng)蜂變?yōu)閭刹旆涞臈l件limit,隨機(jī)生成SN個(gè)初始食物源X={X1,X2,…,XSN}
3)人工蜂群算法執(zhí)行循環(huán)
(a)引領(lǐng)蜂根據(jù)式(3)進(jìn)行鄰域搜索產(chǎn)生新解Vi,計(jì)算其適應(yīng)度值;
(b)在Xi和Vi之間進(jìn)行“貪婪選擇”;
(c)依據(jù)(b)中較好解的適應(yīng)度值,由式(4)計(jì)算其轉(zhuǎn)移概率;
(d)依據(jù)轉(zhuǎn)移概率,跟隨蜂使用“輪盤賭”方式選擇引領(lǐng)蜂進(jìn)行跟隨,利用式(3)跟隨蜂進(jìn)行鄰域搜索并“貪婪選擇”,完成角色轉(zhuǎn)化;
(e)判斷是否有需要放棄的解。如果有,引領(lǐng)蜂變成偵察蜂,利用隨機(jī)生成新解代替舊解,找到新解后偵察蜂又變?yōu)橐I(lǐng)蜂;
(f)記錄到目前為止的最優(yōu)解。判斷是否滿足算法的終止條件。若滿足,輸出找到的最優(yōu)解h(0),h(1),…,h(N-1),否則繼續(xù)循環(huán)。
為了驗(yàn)證設(shè)計(jì)方法的有效性,利用MATLAB對幾種FIR濾波器進(jìn)行了仿真實(shí)驗(yàn)。在實(shí)驗(yàn)中,人工蜂群算法的參數(shù)設(shè)置為:SN=200,MCN=500,limit=30,參數(shù)維數(shù) dimension=12。
實(shí)驗(yàn)一:設(shè)計(jì)一個(gè)階數(shù)為12的FIR低通數(shù)字濾波器,其技術(shù)指標(biāo)為:
圖1為該低通FIR濾波器的適應(yīng)度和歸一化幅頻響應(yīng)曲線。
圖1 低通FIR濾波器的適應(yīng)度和歸一化幅頻響應(yīng)曲線
實(shí)驗(yàn)二:設(shè)計(jì)一個(gè)12階的FIR帶通數(shù)字濾波器,其技術(shù)指標(biāo)為:
圖2為該帶通FIR濾波器的適應(yīng)度和歸一化幅頻響應(yīng)曲線。
圖2 帶通FIR濾波器的適應(yīng)度和歸一化幅頻響應(yīng)曲線
以上兩個(gè)實(shí)驗(yàn)說明基于人工蜂群算法的FIR濾波器設(shè)計(jì)的幅頻響應(yīng)曲線具有比較理想的通帶和阻帶性能,因此該方法是一種有效的設(shè)計(jì)方法。
本文研究了人工蜂群算法的實(shí)現(xiàn)步驟,討論了最優(yōu)化FIR濾波器設(shè)計(jì)的基本原理,分析了人工蜂群算法用于求解最優(yōu)化F IR濾波器設(shè)計(jì)的可行性,提出了基于人工蜂群算法的FIR濾波器設(shè)計(jì)。通過低通和帶通濾波器的仿真實(shí)驗(yàn),驗(yàn)證了算法的可行性和有效性。
[1]蘭成章,高洪元,李詩桓.基于差分文化算法的FIR數(shù)字濾波器設(shè)計(jì)[J].自動(dòng)化技術(shù)與應(yīng)用,2010,29(6):65 -68,73.
[2]夏利霞,謝菊芳,楊艷芹,等.基于粒子群優(yōu)化算法的FIR數(shù)字濾波器設(shè)計(jì)[J].湖北大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,28(1):51 -53,56.
[3]鄒娟,賈世杰,曾潔.基于遺傳算法的FIR濾波器設(shè)計(jì)[J].大連交通大學(xué)學(xué)報(bào),2010,31(4):22 -25.
[4]李輝,張安,趙敏,等.粒子群優(yōu)化算法在FIR數(shù)字濾波器設(shè)計(jì)中的應(yīng)用[J].電子學(xué)報(bào),2005,33(7):1338-1341.
[5]Karaboga N,Cetinkaya B.Design of Digital FIR Filters U-sing Differential Evolution Algorithm[J].Circuits,Systems and Signal Processing,2006,25(5):649 -660.
[6]KARABOGA D,BASTURK B.A Powerful and Efficient Algorithm for Numerical Function Optimization:Artificial Bee Colony(ABC)algorithm[J].Journal of Global Optimization,2007,39(3):459 -471.
[7]劉婷,張立毅,鮑韋韋,等.基于改進(jìn)二進(jìn)制人工蜂群算法的多用戶檢測器[J].計(jì)算機(jī)應(yīng)用,2013,33(1):171 -174,178.
[8]劉婷,張立毅,鄒康,等.基于差分演化二進(jìn)制人工蜂群算法的多用戶檢測[J].電路與系統(tǒng)學(xué)報(bào),2013,18(1):5-11.