劉曉麗+蘭英
摘 要: 人工蜂群算法是一種基于蜜蜂采蜜行為的新興群體智能算法,已得到廣泛的應用。有限長單位脈沖響應(FIR)數(shù)字濾波器的設(shè)計已日趨成熟,它的一種典型設(shè)計方法是頻率采樣法,其中的過渡帶參數(shù)優(yōu)化是一個值得研究的問題。提出采用人工蜂群算法來選擇和優(yōu)化過渡帶插值點參數(shù),利用MATLAB進行仿真,取得了滿意的仿真結(jié)果。與雷米茲法的比較,證明了算法的可行性和有效性,為FIR濾波器的設(shè)計提供了一種新的思路。
關(guān)鍵詞: FIR; 數(shù)字濾波器; 人工蜂群算法(ABC); 頻率采樣; 參數(shù)優(yōu)化
中圖分類號:TP301.6;TN911.7 文獻標志碼:A 文章編號:1006-8228(2017)11-05-04
Designing FIR digital filter with artificial bee colony algorithm
Liu Xiaoli1, Lan Ying2
(1. Wuchang Institute of Technology, Wuhan, Hubei 430065, China; 2. The Engineering and Technical College of Chengdu University of Technology)
Abstract: Artificial bee colony algorithm (ABC) is a new swarm intelligence algorithm based on bee honey collection behavior, which has been widely used. The design of finite impulse response (FIR) digital filter has been maturing and the frequency sampling method is one of the typical design methods, and its transition zone parameter optimization is a problem worthy of study. In this paper, the artificial bee colony algorithm is proposed to select and optimize the interpolation point parameters of the transition zone, by simulating with MATLAB, the satisfied results are obtained. Compared with the Remez method, the feasibility and effectiveness of the algorithm are proved, which provides a new idea for designing the FIR filters.
Key words: FIR; digital filter; artificial bee colony algorithm (ABC); frequency sampling; parameter optimization
0 引言
信號的獲取、傳輸、處理等都離不開濾波技術(shù),數(shù)字濾波器比模擬設(shè)備有更多的優(yōu)點,如精度高、靈活性好、可靠性高,已廣泛應用于電視、雷達、通信、遙感、圖像、生物醫(yī)學等各個領(lǐng)域,數(shù)字濾波技術(shù)也成為數(shù)字信號分析和處理技術(shù)的重要分支。
按照單位抽樣響應的時域特性,數(shù)字濾波器可以分為無限長單位脈沖響應(IIR)濾波器和有限長單位脈沖響應(FIR)濾波器。FIR 數(shù)字濾波器的突出優(yōu)點在于可以做到嚴格的線性相位,同時也可以具有任意的幅度特性,此外,它的傳遞函數(shù)沒有極點,保證了設(shè)計出的濾波器一定是穩(wěn)定的[1-2]。
簡單地說,設(shè)計數(shù)字濾波器就是要找到一組能滿足特定濾波要求的系數(shù)向量。FIR數(shù)字濾波器的設(shè)計方法很多,較為典型的是窗函數(shù)法、最優(yōu)化設(shè)計法和頻率采樣法。其中,頻率采樣法中常用于增大阻帶衰減的方法有三種。
⑴ 加寬過渡帶寬,以犧牲過渡帶換取阻帶衰減的增加。
⑵ 增大N,代價是濾波器階數(shù)增加,運算量增加。
⑶ 過渡帶的優(yōu)化設(shè)計,利用最優(yōu)化方法確定過渡帶采樣點的值,得到要求的濾波器的最佳逼近。
針對第三種方法,文獻[3]采用遺傳算法確定過渡帶樣本值,解決了傳統(tǒng)查表法不能保證數(shù)據(jù)是最優(yōu)的問題,實驗說明通過遺傳算法設(shè)計的FIR濾波器性能較查表法得到了改善。以此為參考,本文采用人工蜂群算法進一步改進設(shè)計結(jié)果。
人工蜂群算法(Artificial Bee Colony Algorithm,簡稱ABC算法)是模仿蜜蜂行為得到的一種優(yōu)化方法[4-5],是集群智能思想的一個具體應用,它的主要優(yōu)點是不用了解問題的特殊信息,只需對結(jié)果進行優(yōu)劣比較,通過人工蜂個體的局部尋優(yōu)行為,最終在群體中使全局最優(yōu)值凸現(xiàn)出來,有著較快的收斂速度。目前已有很多改進版本,并且應用于許多科學和工程領(lǐng)域[6-7]。
1 頻率采樣法
頻率采樣法是從頻域出發(fā),根據(jù)頻域采樣定理,對給定的理想濾波器的頻率響應進行等間隔抽樣,得到:
進而可求得FIR濾波器的單位脈沖響應:
頻率響應:
系統(tǒng)函數(shù):
具有線性相位的FIR濾波器,其單位脈沖響應h(n)是實序列,且滿足
由此得到的幅頻和相頻特性,就是對H(k)的約束。
例如,要設(shè)計I型線性相位FIR濾波器,即N為奇數(shù),h(n)偶對稱,則endprint
則幅度必須滿足偶對稱性:
相位:
在每個采樣點上,頻率響應嚴格與理想頻率響應的采樣值H(k)相等,逼近誤差為零。而在各采樣點之間的頻率響應則是內(nèi)插函數(shù)延伸疊加的結(jié)果,逼近誤差的大小取決于理想頻率響應曲線的形狀,曲線越平緩,則誤差越小。為了提高逼近的質(zhì)量,可以適當?shù)卦陬l率響應的過渡帶內(nèi)插入采樣點,擴展過渡帶使其相對連貫,從而使得通帶和阻帶之間的變化坡度變緩,以達到減少逼近誤差的目的。因此,過渡點的選取顯得至關(guān)重要也頗有難度。
2 蜂群算法
2005年Karaboga D成功地將蜜蜂采蜜原理應用于函數(shù)的數(shù)值優(yōu)化,并提出比較系統(tǒng)的人工蜂群算法。目前,關(guān)于ABC算法研究與應用還處于初級階段,但由于其控制參數(shù)少、計算簡潔、易于實現(xiàn)、魯棒性強等特點,已成為群體智能領(lǐng)域的研究熱點之一,得到越來越多學者的關(guān)注。
在ABC算法中,人工蜂群由引領(lǐng)蜂、跟隨蜂和偵察蜂三部分組成。優(yōu)化問題的可能解由蜜源的位置表示,解的適應度由蜜源的花蜜量表示,解的數(shù)量和引領(lǐng)蜂數(shù)量相等。首先ABC算法隨機產(chǎn)生SN個初始解。每個解都是一個D維的向量,D是待優(yōu)化參數(shù)的個數(shù)。經(jīng)過初始化后,蜂群的位置隨著引領(lǐng)蜂、跟隨蜂和偵察蜂搜索開始改變。引領(lǐng)蜂根據(jù)記憶中的局部信息調(diào)整其位置并檢查新蜜源的花蜜量。如果新位置的花蜜量比原來的多,則蜜蜂記住新的位置忘記舊的位置,否則保留舊的位置。在所有引領(lǐng)蜂完成搜索過程后,它們將在舞蹈區(qū)與跟隨蜂分享蜜源的花蜜信息和位置信息。跟隨蜂據(jù)此按與花蜜量相關(guān)的概率選擇一個蜜源位置,像引領(lǐng)蜂那樣根據(jù)記憶中的位置做一定的調(diào)整,并檢查新候選位置的花蜜量。如果新位置的花蜜量優(yōu)于舊位置的花蜜量,則忘掉舊的位置記住新位置。
初始化時,按照式⑴隨機產(chǎn)生SN個解。
其中,和是的上下限;rand是(0,1)之間的一個隨機數(shù)。
引領(lǐng)蜂和跟隨蜂依據(jù)式⑵進行解的更新
其中,vij代表蜜源的位置,xkj代表在xij附近產(chǎn)生的一個新解,k∈{1,2,…,SN},j∈{1,2,…,D},k和j都是隨機選取的,k是i鄰域的一個解,所以k≠i;rij∈[-1,1]是隨機數(shù),它控制xij鄰域的生成范圍。
跟隨蜂對新位置的選擇是通過觀察引領(lǐng)蜂的搖擺舞來判斷的,并依據(jù)選擇概率的大小來決定跟隨哪個引領(lǐng)蜂。適應度值和選擇概率的計算公式如下:
其中,fi是第i個解的目標函數(shù)值。
在ABC算法中,還有一個控制參數(shù)limit,用來記錄某個解被更新的次數(shù)。假定某個解連續(xù)limit次循環(huán)之后沒有得到改善,表明這個解陷入局部最優(yōu),就要被拋棄,那么該蜜源處的采蜜蜂成為偵察蜂,該蜜源位置將被解空間內(nèi)隨機產(chǎn)生的一個位置所代替。假設(shè)被拋棄的解是xi,將通過式⑴隨機產(chǎn)生一個新解來代替原來解xi。
ABC算法的具體實現(xiàn)步驟可描述如下:
Step1 初始化,產(chǎn)生SN個食物源;
Step2 引領(lǐng)蜂收集每個食物源的信息,根據(jù)式⑶計算出其相對應食物源的適應度值;
Step3 跟隨蜂根據(jù)食物源適應度值選擇食物源,選擇概率見式⑷;
Step4 通過公式⑵更新每次迭代后食物源的位置;
Step5 根據(jù)食物源位置的更新,來更新適應度值并進行比較,如果更新后的適應度值大于或者等于先前的值,則保留更新的食物源位置;反之,則依舊保留先前的食物源的位置;
Step6 如果一個食物源在循環(huán)一定的次數(shù)后依然沒有改進,則拋棄該食物源,利用公式⑴來跳出食物源所在的位置,確定新食物源的位置;
Step7 判斷算法是否滿足蜂群算法結(jié)束的條件,若不滿足,則跳到Step3繼續(xù),若滿足則輸出最優(yōu)值。
3 仿真研究
設(shè)計一個線性相位FIR數(shù)字帶通濾波器,要求通帶波動小于0.3dB,阻帶衰減大于60dB,其理想特性為
先利用數(shù)字信號處理工具箱中的remezord和 remez函數(shù)實現(xiàn)FIR數(shù)字濾波器的最優(yōu)化設(shè)計,得到滿足要求的濾波器的最低階數(shù)為39,最小阻帶衰減為-63.8845dB,最大通帶波動為-0.2797dB,實驗結(jié)果如圖1所示。
再利用ABC優(yōu)化過渡帶采樣點的值,采樣點數(shù) N=40,設(shè)置屬于(0,1)區(qū)間內(nèi)的2個過渡點,根據(jù)指標要求,計算得到:
反復運行后完成了所需濾波器的設(shè)計,其中5次的運行結(jié)果如表1所示,T1和T2是優(yōu)化后的過渡點,As是最小阻帶衰減,Rp是最大通帶波動,顯示出人工蜂群算法的可行性。
可以看出,蜂群算法優(yōu)化的頻率采樣法設(shè)計出的濾波器比雷米茲法的通帶波動有所改善。
4 結(jié)束語
隨著信息時代的來臨,數(shù)字濾波技術(shù)的重要性日益突出。本文給出了一種基于人工蜂群算法的線性相位FIR濾波器過渡帶參數(shù)整定方法,并將其應用于帶通濾波器的設(shè)計中,仿真結(jié)果驗證了該方法的有效性.下一步的研究可以對人工蜂群算法進行改進,也可與濾波器設(shè)計的其他方法相結(jié)合。
參考文獻(References):
[1] 程佩青.數(shù)字信號處理[M].清華大學出版社,2009.
[2] Rajib Kar, Durbadal Mandal, Sangeeta Mondal, et al.
Craziness based particle swarm optimization algorithm for FIR band stop filter design[J]. Swarm and Evolutionary Computation,2012.7:58-64
[3] 黃猛,唐琳,甄玉,張杰.基于自適應遺傳算法FIR數(shù)字濾波器的
優(yōu)化設(shè)計[J].現(xiàn)代電子技術(shù),2010.2:143-146
[4] 胡珂,李迅波,王振林.改進的人工蜂群算法性能[J].計算機應
用,2011.31(4):1107-1110
[5] 曹金保.人工蜂群算法研究綜述[J].電子設(shè)計工程,2013.21
(23):35-38
[6] 羅鈞,李研.具有混沌搜索策略的蜂群優(yōu)化算法[J].控制與決
策,2010.25(12):1913-1916
[7] 康飛,李俊杰,許青.混合蜂群算法及其在混凝土壩動力材料
參數(shù)反演中的應用[J].水利學報,2009.40(6):736-742endprint