馮帥棟,陳立家,劉名果
(河南大學(xué) 物理與電子學(xué)院,河南 開(kāi)封 475000)
數(shù)字濾波器是一種信號(hào)處理裝置,它能夠降低噪聲、消除干擾,因此被廣泛應(yīng)用于電視雷達(dá)、通信傳輸、生物醫(yī)學(xué)等各個(gè)領(lǐng)域[1-3]。傳統(tǒng)的無(wú)限沖激響應(yīng)(Infinite Impulse Response, IIR)數(shù)字濾波器結(jié)構(gòu)中包含乘法器,這影響了濾波器的運(yùn)算速度,增加了硬件結(jié)構(gòu)的復(fù)雜程度[4]。因此,許多學(xué)者開(kāi)始進(jìn)行無(wú)乘法IIR數(shù)字濾波器的研究。
在文獻(xiàn)[5-7]中,IIR數(shù)字濾波器的無(wú)乘法設(shè)計(jì)是基于經(jīng)典的濾波器結(jié)構(gòu)(級(jí)聯(lián)型、并聯(lián)型等)將乘法器的系數(shù)轉(zhuǎn)換為二次冪的和或差,然后通過(guò)乘法塊進(jìn)行實(shí)現(xiàn)。例如乘法器系數(shù)10轉(zhuǎn)換為乘法塊是23+21,這種二次冪的轉(zhuǎn)換通常利用CSD(Canonic Signed Digit)碼進(jìn)行實(shí)現(xiàn),但是通過(guò)這種方法設(shè)計(jì)的無(wú)乘法IIR數(shù)字濾波器存在系數(shù)量化誤差和結(jié)構(gòu)固定的問(wèn)題,并不能滿足數(shù)字濾波器的性能要求。為了優(yōu)化無(wú)乘法IIR數(shù)字濾波器的設(shè)計(jì)方法,一些學(xué)者開(kāi)始嘗試?yán)醚莼惴▽?duì)無(wú)乘法IIR數(shù)字濾波器進(jìn)行設(shè)計(jì)。在文獻(xiàn)[8]中,一種新的無(wú)乘法IIR濾波器設(shè)計(jì)方法被提了出來(lái)。該方法首先對(duì)加法器的個(gè)數(shù)進(jìn)行設(shè)定;然后計(jì)算出包含相應(yīng)個(gè)數(shù)加法器的所有回路,并且以這些回路為種群;最后利用進(jìn)化的變鄰域搜索(Evolutionary Variable Neighborhood Search, E-VNS)算法對(duì)這些回路進(jìn)行元器件(移位器、延時(shí)器、反相器)插入操作,直到元器件的插入對(duì)回路的改進(jìn)沒(méi)有效果為止。這種方法雖然在傳統(tǒng)設(shè)計(jì)基礎(chǔ)上作了改進(jìn),但是計(jì)算量非常大并且需要大量的元器件去實(shí)現(xiàn),這增加了濾波器結(jié)構(gòu)的復(fù)雜度;而且E-VNS算法搜索精度低、耗時(shí)長(zhǎng)且容易早熟。在文獻(xiàn)[9]中,提出了一種加入成功父代選擇框架的差分進(jìn)化(Differential Evolution with a Successful-Parent- Selecting Framework, SPS-DE)算法。這種方法將成功的父代個(gè)體存儲(chǔ)在一個(gè)庫(kù)里,當(dāng)個(gè)體進(jìn)化停滯時(shí),成功的父代個(gè)體從庫(kù)里被選擇出來(lái)替換掉停滯的個(gè)體,這樣可以幫助個(gè)體逃離不光明的區(qū)域以促進(jìn)種群收斂,有效地平衡了種群探索與開(kāi)發(fā)的能力。鑒于SPS-DE出色的性能,本文將其運(yùn)用到無(wú)乘法IIR數(shù)字濾波器設(shè)計(jì)中。
為了設(shè)計(jì)一種滿足結(jié)構(gòu)多樣性要求、性能優(yōu)良的無(wú)乘法IIR數(shù)字濾波器,本文提出了一種基于隨機(jī)結(jié)構(gòu)的無(wú)乘法IIR數(shù)字濾波器設(shè)計(jì)方法。本方法利用加入移位器的子系統(tǒng)直接設(shè)計(jì)無(wú)乘法數(shù)字濾波器,不存在對(duì)乘法器系數(shù)的量化,然后通過(guò)SPS-DE對(duì)結(jié)構(gòu)進(jìn)行優(yōu)化,設(shè)計(jì)的濾波器具有滿足要求的隨機(jī)結(jié)構(gòu),并取得了較好的濾波器性能。最后,本文分別利用SPS-DE、遺傳算法(Genetic Algorithm, GA)[10]、粒子群算法(Particle Swarm Optimization, PSO)[11]、差分進(jìn)化(Differential Evolution, DE)算法[12]、多精英指導(dǎo)擁有轉(zhuǎn)移機(jī)制的差分進(jìn)化算法(Adaptive Multiple-Elites-guided Composite Differential Evolution algorithm with a shift mechanism, AMECoDEs)[13]進(jìn)行了無(wú)乘法IIR濾波器設(shè)計(jì),對(duì)算法的性能進(jìn)行了分析,然后將本文方法和現(xiàn)有的無(wú)乘法濾波器設(shè)計(jì)方法進(jìn)行了對(duì)比,對(duì)本文方案的有效性進(jìn)行了驗(yàn)證。
IIR數(shù)字濾波器可以通過(guò)差分方程表示:
(1)
從式(1)可以看出,數(shù)字濾波器由加法器、乘法器和延時(shí)器這些基本的元器件構(gòu)成。在本文中,提出的方法利用移位器設(shè)計(jì)了一種穩(wěn)定的二階子系統(tǒng),通過(guò)二階子系統(tǒng)對(duì)無(wú)乘法IIR濾波器進(jìn)行設(shè)計(jì)。二階子系統(tǒng)由4個(gè)移位器,2個(gè)延時(shí)器和3個(gè)加法器構(gòu)成,它的結(jié)構(gòu)如圖1所示。其中a、b、c、d代表4個(gè)移位器,z-1表示延時(shí)器,3個(gè)黑點(diǎn)代表加法器,箭頭代表了信號(hào)流向。
圖1 二階子系統(tǒng)
本文將二階子系統(tǒng)視作基本單元,從濾波器系統(tǒng)的輸入端開(kāi)始按照生成指令依次添加子系統(tǒng)直到一個(gè)完整濾波器結(jié)構(gòu)的形成,生成指令控制著子系統(tǒng)如何被添加到初始的濾波器系統(tǒng)中。
每一個(gè)生成指令由4部分構(gòu)成:指令類型(C)、子系統(tǒng)輸入端編號(hào)(I)、子系統(tǒng)輸出端編號(hào)(O)、子系統(tǒng)的參數(shù)(P),這4部分的值隨機(jī)產(chǎn)生。其中指令類型有四種:連接新活動(dòng)點(diǎn)(C1)、連接已存在的點(diǎn)(C2)、連接系統(tǒng)的輸入端(C3)、連接系統(tǒng)的輸出端(C4),每種指令類型的產(chǎn)生概率可以自由設(shè)置。系統(tǒng)的輸入端被定義為第一個(gè)活動(dòng)點(diǎn),依照指令類型,子系統(tǒng)的輸入端和輸出端被分別連接到相應(yīng)編號(hào)的節(jié)點(diǎn)。執(zhí)行C1和C4指令時(shí),子系統(tǒng)的輸入端被連接到當(dāng)前的活動(dòng)點(diǎn),輸出端相應(yīng)的被分別連接到新的活動(dòng)點(diǎn)和系統(tǒng)的輸出端。執(zhí)行C2和 C3指令時(shí),子系統(tǒng)的輸入端相應(yīng)的被分別連接到已存在的點(diǎn)和系統(tǒng)的輸入端,而輸出端被連接到當(dāng)前的活動(dòng)點(diǎn)。C1指令執(zhí)行后,活動(dòng)點(diǎn)改變,新活動(dòng)點(diǎn)的編號(hào)為先前的活動(dòng)點(diǎn)編號(hào)加1;C2,C3和C4指令執(zhí)行后,活動(dòng)點(diǎn)不變。生成指令如圖2所示。
圖2 生成指令格式
Fig. 2 Generation instruction format
所有的生成指令按其產(chǎn)生順序依次連接,就形成了一個(gè)指令序列,每一個(gè)指令序列代表了一個(gè)無(wú)乘法IIR數(shù)字濾波器的結(jié)構(gòu)。表1給出了一個(gè)指令序列的示例。
表1 指令序列
從表1可以看出,這個(gè)指令序列由5個(gè)生成指令組成。其中表格第1列的ID代表生成指令的序號(hào);表格的第5列代表了子系統(tǒng)中4個(gè)移位器的參數(shù)值,數(shù)字與字母的組合代表一個(gè)移位器,如:+L2表示一個(gè)正數(shù)向左移動(dòng)2位,-R3表示一個(gè)負(fù)數(shù)向右移動(dòng)3位;表格的第6列表示子系統(tǒng)的編號(hào),如:第一條生成指令對(duì)應(yīng)的子系統(tǒng),其編號(hào)為S1。
對(duì)應(yīng)表1中指令序列的無(wú)乘法數(shù)字濾波器結(jié)構(gòu)被顯示在圖3中。其中x(n)和y(n)分別代表無(wú)乘法濾波器的輸入端和輸出端,它們被分別編號(hào)為1和0;箭頭代表信號(hào)的流向;節(jié)點(diǎn)3有一個(gè)輸出和多個(gè)輸入,它代表一個(gè)加法器。這個(gè)無(wú)乘法數(shù)字濾波器由5個(gè)子系統(tǒng)構(gòu)成,共包含了20個(gè)移位器、10個(gè)延時(shí)器和16個(gè)加法器。
圖3 對(duì)應(yīng)表1的無(wú)乘法數(shù)字濾波器結(jié)構(gòu)
通過(guò)生成指令生成無(wú)乘法IIR數(shù)字濾波器之后,對(duì)代表濾波器結(jié)構(gòu)的指令序列進(jìn)行編碼,然后利用SPS-DE對(duì)它的結(jié)構(gòu)進(jìn)行優(yōu)化。濾波器的頻率響應(yīng)可以通過(guò)傳輸函數(shù)獲得,適應(yīng)度通過(guò)對(duì)設(shè)計(jì)的數(shù)字濾波器的頻率響應(yīng)與目標(biāo)頻率響應(yīng)在采樣點(diǎn)上的均方差的計(jì)算來(lái)評(píng)估。公式如下:
(2)
其中:N為采樣頻率,D(Ki)為設(shè)計(jì)的濾波器頻率響應(yīng),T(Ki) 為目標(biāo)濾波器的頻率響應(yīng)。
SPS-DE優(yōu)化結(jié)構(gòu)的流程如下。
首先對(duì)種群進(jìn)行初始化,每一個(gè)個(gè)體對(duì)應(yīng)一個(gè)指令序列。然后利用適應(yīng)度函數(shù)對(duì)個(gè)體進(jìn)行評(píng)估,如果滿足目標(biāo)條件則輸出最佳個(gè)體;否則,執(zhí)行下一步對(duì)種群進(jìn)行變異操作,SPS-DE算法采用差分策略從種群中隨機(jī)選出3個(gè)不同的個(gè)體進(jìn)行變異操作。然后接著對(duì)變異后的種群進(jìn)行交叉操作,本文采用單點(diǎn)交叉,也就是在兩個(gè)不同個(gè)體的相同編號(hào)節(jié)點(diǎn)間進(jìn)行交叉,實(shí)現(xiàn)兩個(gè)濾波器之間的結(jié)構(gòu)互換。完成交叉后,對(duì)種群進(jìn)行選擇,其中較好的個(gè)體進(jìn)入下一代繼續(xù)進(jìn)行優(yōu)化。
因?yàn)镾PS-DE加入了SPS (Successful-Parent-Selecting)機(jī)制,所以種群每一次迭代完成后,就會(huì)檢測(cè)種群是否停滯。通過(guò)計(jì)算第g代種群中近來(lái)連續(xù)未成功進(jìn)化個(gè)體的數(shù)目對(duì)停滯程度進(jìn)行評(píng)估。公式如下:
(3)
其中:qi(g)、qi(g+1)分別表示第g代和第g+1代種群中近來(lái)連續(xù)未成功進(jìn)化個(gè)體的數(shù)目;Xi(g)代表第g代第i個(gè)個(gè)體,F(xiàn)(Xi(g))表示其適應(yīng)度;Ui(g)表示對(duì)Xi(g)進(jìn)行交叉后生成的實(shí)驗(yàn)向量,F(xiàn)(Ui(g))表示其適應(yīng)度。如果qi(g+1)超過(guò)了一個(gè)不可接受的值Q,此時(shí)種群被定義為停滯。種群停滯時(shí),SPS機(jī)制會(huì)從存儲(chǔ)成功父代個(gè)體的庫(kù)里選擇成功的個(gè)體對(duì)停滯的個(gè)體進(jìn)行替換。成功父代個(gè)體p(g)的來(lái)源被表示如下:
(4)
其中:Pg代表第g代種群,A代表近來(lái)連續(xù)成功升級(jí)個(gè)體的庫(kù),Q代表停滯容忍度。
無(wú)乘法IIR濾波器結(jié)構(gòu)優(yōu)化的具體步驟如下:
步驟1 首先進(jìn)行種群初始化,隨機(jī)產(chǎn)生M個(gè)代表無(wú)乘法濾波器結(jié)構(gòu)的指令序列編碼,每一個(gè)指令序列代表種群中的一個(gè)目標(biāo)向量。
步驟2 對(duì)種群中的每個(gè)目標(biāo)向量進(jìn)行適應(yīng)度評(píng)價(jià),然后判斷是否達(dá)到迭代次數(shù)。若滿足,則停止計(jì)算并輸出最優(yōu)的個(gè)體;否則,執(zhí)行步驟3。
步驟3 從種群中選擇出不同的個(gè)體執(zhí)行變異操作,生成變異向量。
步驟4 對(duì)變異后的種群執(zhí)行交叉操作產(chǎn)生實(shí)驗(yàn)向量。
步驟5 對(duì)目標(biāo)向量和實(shí)驗(yàn)向量進(jìn)行適應(yīng)度評(píng)估,從中選擇出最佳的個(gè)體進(jìn)入下一代。
步驟6 判斷種群進(jìn)化是否出現(xiàn)停滯并且啟動(dòng)SPS機(jī)制,然后返回步驟2。
通過(guò)本文的方法設(shè)計(jì)一個(gè)通帶截止頻率為0.4π,阻帶截止頻率為0.6π的低通無(wú)乘法IIR數(shù)字濾波器,然后利用Matlab進(jìn)行仿真。在本文中,設(shè)計(jì)了一些對(duì)比實(shí)驗(yàn)對(duì)本文方法的有效性進(jìn)行了驗(yàn)證。
為了分析移位器參數(shù)范圍的大小對(duì)無(wú)乘法IIR數(shù)字濾波器性能的影響,本文設(shè)計(jì)了具有不同位數(shù)范圍的無(wú)乘法IIR濾波器進(jìn)行對(duì)比。移位器的位數(shù)被分別設(shè)置為5、6、7、8、9、10、11,濾波器的其他設(shè)計(jì)參數(shù)和表2一致,為了平衡4種連接方式的概率,其中C1、C2、C3、C4的概率被設(shè)置為等概率。然后分別在每種情況下進(jìn)行100組測(cè)試,將每種情況下最好的實(shí)驗(yàn)結(jié)果進(jìn)行了對(duì)比。
如圖4所示,這些無(wú)乘法IIR濾波器的通帶波紋都在2.7 dB以內(nèi)。在過(guò)渡帶區(qū)域,5位無(wú)乘法濾波器的幅頻響應(yīng)有最快的衰減,在0.6π時(shí)已衰減至-64 dB,而6位、7位、8位、9位、10位、11位的無(wú)乘法濾波器在0.6π時(shí)分別衰減到-58 dB、-45 dB、 -47 dB、-40 dB、-30 dB 和 -36 dB。在阻帶區(qū)域,5位~11位的無(wú)乘法濾波器的阻帶最大衰減分別為-64 dB, -58 dB, -45 dB, -47 dB, -40 dB, -30 dB 和-36 dB。整體來(lái)看,當(dāng)移位器的位數(shù)較小時(shí),無(wú)乘法IIR濾波器有較好的性能,這是因?yàn)楫?dāng)位數(shù)較小時(shí),量化誤差也相對(duì)較小。
圖4 不同位數(shù)的無(wú)乘法IIR濾波器的幅頻響應(yīng)
為了分析不同算法對(duì)無(wú)乘法IIR數(shù)字濾波器結(jié)構(gòu)優(yōu)化的效果,本文分別利用SPS-DE、AMECoDEs、DE、GA 和 PSO設(shè)計(jì)了一個(gè)5位的無(wú)乘法IIR濾波器進(jìn)行對(duì)比,濾波器的其他設(shè)計(jì)參數(shù)和表2一致。為了對(duì)比的合理性,每種算法的種群數(shù)目都設(shè)置為100,迭代次數(shù)設(shè)置為10 000代,算法的其他參數(shù)都是在其算法性能最優(yōu)的情況下進(jìn)行設(shè)置,這5種算法的仿真參數(shù)如表3所示,其中:“—”表示沒(méi)有參數(shù)值。然后在每種算法下分別進(jìn)行了100組實(shí)驗(yàn),對(duì)每種算法設(shè)計(jì)的最優(yōu)結(jié)果進(jìn)行對(duì)比。
表3 不同算法的仿真參數(shù)
正如圖5所示,利用這幾種算法設(shè)計(jì)的無(wú)乘法IIR濾波器的通帶波紋都在2.7dB以內(nèi)。在過(guò)渡帶區(qū)域,通過(guò)SPS-DE、AMECoDEs、DE、GA和PSO設(shè)計(jì)的濾波器幅頻響應(yīng)在0.6π時(shí)分別衰減至-64 dB、-49 dB、-50 dB、-35 dB和-45 dB。這些濾波器的阻帶最大衰減分別為-64 dB、-49 dB、-50 dB、-35 dB和-45 dB。
圖5 不同算法設(shè)計(jì)的無(wú)乘法IIR濾波器的幅頻響應(yīng)
圖6表示每種算法在其算法參數(shù)設(shè)置最佳情況下的演化曲線,其中SPS-DE收斂最快并最終達(dá)到了一個(gè)最小值,結(jié)果表明利用SPS-DE設(shè)計(jì)的無(wú)乘法IIR濾波器的性能最好。原因是SPS-DE算法加入了成功父代選擇框架,有效地平衡了種群的開(kāi)發(fā)和探索能力,避免了種群陷入局部最優(yōu),過(guò)早收斂。
圖6 每種算法的演化曲線
圖7是通過(guò)等波紋法、最小二乘法、最小P次歸一法分別設(shè)計(jì)的一個(gè)通帶截止頻率為0.4π,阻帶截止頻率為0.6π的14階無(wú)乘法有限沖激響應(yīng)(Finite Impulse Response,F(xiàn)IR)數(shù)字濾波器,本文設(shè)計(jì)了一個(gè)同樣目標(biāo)的無(wú)乘法IIR數(shù)字濾波器與之進(jìn)行對(duì)比,濾波器的設(shè)計(jì)參數(shù)和SPS-DE算法參數(shù)如表2和表3所示。如圖7所示,無(wú)乘法FIR濾波器和本文設(shè)計(jì)的無(wú)乘法IIR數(shù)字濾波器通帶波紋都在1.2 dB以內(nèi)。在阻帶區(qū)域,等波紋法、最小二乘法、最小P次歸一法設(shè)計(jì)的無(wú)乘法FIR濾波器的阻帶最大衰減分別為-32.5 dB,-24.47 dB,-36.7 dB,本文設(shè)計(jì)的無(wú)乘法IIR數(shù)字濾波器的阻帶最大衰減為-64 dB。通過(guò)數(shù)據(jù)分析可以看出,本文設(shè)計(jì)的無(wú)乘法IIR數(shù)字濾波器性能好于無(wú)乘法FIR數(shù)字濾波器,這是因?yàn)镕IR濾波器結(jié)構(gòu)中沒(méi)有反饋回路,而IIR結(jié)構(gòu)中含有反饋回路,其幅頻精度較高。因此,在同等條件下,無(wú)乘法IIR濾波器性能較好。
文獻(xiàn)[8]設(shè)計(jì)了一個(gè)通帶截止頻率為0.7π,阻帶截止頻率為0.906 9π,阻帶最大衰減為-50 dB的無(wú)乘法IIR濾波器,濾波器由20個(gè)延時(shí)器、40個(gè)移位器、11個(gè)加法器和20個(gè)反相器構(gòu)成。本文設(shè)計(jì)了一個(gè)相同目標(biāo)的IIR濾波器與文獻(xiàn)[8]進(jìn)行對(duì)比,移位器位數(shù)設(shè)置為5,其他的濾波器設(shè)計(jì)參數(shù)和表2一致。利用本文方法設(shè)計(jì)的無(wú)乘法IIR濾波器包含了14個(gè)延時(shí)器、28個(gè)移位器、21個(gè)加法器和11個(gè)反相器,元器件總數(shù)目比文獻(xiàn)[8]少了17個(gè)。圖8和圖9分別表示文獻(xiàn)[8]設(shè)計(jì)的無(wú)乘法IIR濾波器和本文設(shè)計(jì)的無(wú)乘法IIR濾波器的幅頻響應(yīng)。文獻(xiàn)[8]設(shè)計(jì)的無(wú)乘法濾波器和本文設(shè)計(jì)的無(wú)乘法濾波器的幅頻響應(yīng)通帶波紋分別為2 dB和 1.14 dB。在過(guò)渡帶區(qū)域,本文設(shè)計(jì)的濾波器幅頻響應(yīng)在0.9π時(shí)已經(jīng)下降到了-70.2 dB,而文獻(xiàn)[8]設(shè)計(jì)的濾波器幅頻響應(yīng)僅下降到-50 dB。文獻(xiàn)[8]設(shè)計(jì)的濾波器和本文設(shè)計(jì)的濾波器幅頻響應(yīng)的阻帶最大衰減分別為-50 dB和 -70.2 dB。通過(guò)以上數(shù)據(jù)分析來(lái)看,在通帶截止頻率和阻帶截止頻率相同的情況下,本文方法設(shè)計(jì)的無(wú)乘法IIR數(shù)字濾波器通帶波紋減小了43%,阻帶最大衰減下降了40.4%,而且該方法使用較少個(gè)數(shù)的元器件實(shí)現(xiàn)了優(yōu)良的濾波器性能,這降低了濾波器結(jié)構(gòu)的復(fù)雜度,實(shí)驗(yàn)進(jìn)一步表明了本文方法的有效性。
圖7 與無(wú)乘法FIR數(shù)字濾波器的對(duì)比
圖8 文獻(xiàn)[8]中設(shè)計(jì)的無(wú)乘法IIR數(shù)字濾波器的幅頻響應(yīng)
圖9 本文方法設(shè)計(jì)的無(wú)乘法IIR數(shù)字濾波器的幅頻響應(yīng)
本文提出了一種基于隨機(jī)結(jié)構(gòu)的無(wú)乘法IIR數(shù)字濾波器設(shè)計(jì)方法。此方法首先從結(jié)構(gòu)上進(jìn)行無(wú)乘法IIR數(shù)字濾波器的設(shè)計(jì),然后通過(guò)SPS-DE算法對(duì)結(jié)構(gòu)進(jìn)行優(yōu)化,最后設(shè)計(jì)實(shí)驗(yàn)進(jìn)行了有效性的驗(yàn)證。利用該方法設(shè)計(jì)的無(wú)乘法IIR數(shù)字濾波器能夠滿足結(jié)構(gòu)要求,性能得到了提升。這種方法為無(wú)乘法IIR數(shù)字濾波器的設(shè)計(jì)拓展了一種新的思路。