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