高階FIR濾波器的計(jì)算機(jī)設(shè)計(jì)與FPGA實(shí)現(xiàn)
摘要:根據(jù)有限沖擊響應(yīng)(FIR)數(shù)字濾波器的原理,綜合運(yùn)用Matlab和FPGA的QuartusⅡ兩大計(jì)算機(jī)軟件,提出了一種利用QuartusⅡ中參數(shù)化宏功能模塊(LPM)的FIR濾波器設(shè)計(jì)方法。首先利用Matlab設(shè)計(jì)濾波器系數(shù),再利用QuartusⅡ的LPM構(gòu)造的乘法器和加法器,最終得到濾波結(jié)果。相比分布式算法,該法在信號(hào)處理速率要求不高,且濾波器階數(shù)較高的情況下,可更加簡(jiǎn)單地實(shí)現(xiàn)濾波效果。最終在Matlab和Quar-tusⅡ的基礎(chǔ)上,實(shí)現(xiàn)了64階的高階FIR數(shù)字濾波器電路的設(shè)計(jì)與仿真。
關(guān)鍵詞:FlR濾波器;Matlab QuartusⅡ;參數(shù)化功能模塊庫(kù)
相對(duì)無(wú)限沖擊響應(yīng)(IIR)濾波器,有限沖擊響應(yīng)(FIR)能夠在滿(mǎn)足濾波器幅頻響應(yīng)的同時(shí)獲得嚴(yán)格的線(xiàn)性相位特性,而數(shù)據(jù)通信、語(yǔ)音信號(hào)處理等領(lǐng)域往往要求信號(hào)在傳輸過(guò)程中不能有明顯的相位失真,所以FIR濾波器獲得了更廣泛的應(yīng)用。FIR濾波器有多種設(shè)計(jì)和實(shí)現(xiàn)方法,最為常用的是基于分布式算法的FIR濾波器設(shè)計(jì)。該法利用構(gòu)造查找表,流水線(xiàn)操作完成濾波過(guò)程,極大地提高了系統(tǒng)的處理效率。然而,查找表所要求的系統(tǒng)存儲(chǔ)器容量隨濾波器的階數(shù)成指數(shù)上漲。本文基于工程實(shí)際出發(fā),在信號(hào)處理速率要求不高且濾波器階數(shù)較高的情況下,提出了一種基于LPM參數(shù)化宏功能模塊的FIR濾波器設(shè)計(jì)方法,具有一定的工程實(shí)用價(jià)值。
1 FIR濾波器的原理與設(shè)計(jì)方法
1.1 FIR濾波器的原理
FIR濾波器的數(shù)學(xué)表達(dá)式為:
式中:N為FIR濾波器的抽頭數(shù);x(n)為第n時(shí)刻的輸入樣本;h(k)為FIR濾波器第k級(jí)抽頭系數(shù)。
直接型FIR濾波器結(jié)構(gòu)如圖1所示。
由圖1可見(jiàn),F(xiàn)IR的濾波過(guò)程就是一個(gè)信號(hào)逐級(jí)延遲的過(guò)程,將各級(jí)的延遲輸出加權(quán)累加,即得到FIR的輸出,其中最主要的算法是乘累加運(yùn)算。由于FIR每完成一次濾波過(guò)程就需要進(jìn)行N次乘法和N-1次加法操作,所以FIR濾波的運(yùn)算量完全依賴(lài)于N的大小。
1.2 分布式FIR濾波器設(shè)計(jì)
分布式算法(Distributed Arithmetic,DA)早在1973年就已經(jīng)被Croisier提出,直到現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Ar-ray,FPGA)的查找表(Look Up Table,LUT)結(jié)構(gòu)出現(xiàn),這種算法才重新受到重視,其主要原理如下。
為了分析簡(jiǎn)單,將FIR濾波器的表達(dá)式(1)改寫(xiě)為:
可見(jiàn),分布式算法是一種以實(shí)現(xiàn)“乘-加”單元為目的的優(yōu)化解決方案。利用一個(gè)查找表(LUT)實(shí)現(xiàn)映射,即用一個(gè)2k字寬(即2k行),預(yù)先編好程序中LUT接收到的一個(gè)K位輸入向量Xb=[X0b,X1b,…,X(k-1)b]的映射,經(jīng)查找表的查找后直接輸出部分積。然而,由上述可知,查找表字寬為2k,如果濾波器的抽頭系數(shù)過(guò)多,則查找表的規(guī)模隨抽頭系數(shù)的增加成指數(shù)級(jí)增長(zhǎng),這將使LUT的規(guī)模十分龐大。為了減小規(guī)模,可以利用部分表計(jì)算法,即將一個(gè)大的查找表化分為幾個(gè)小的查找表,然后再將結(jié)果相加。
評(píng)論