基于FPGA 的32階FIR濾波器設(shè)計(jì)
出處:范曉東,蔡德林,桂岳,梁本仁 發(fā)布于:2011-08-24 11:09:57
研究了一種采用FPGA實(shí)現(xiàn)32階FIR數(shù)字濾波器硬件電路方案;討論了窗函數(shù)的選擇、濾波器的結(jié)構(gòu)以及系數(shù)量化問題;闡述了FIR濾波器的FPGA實(shí)現(xiàn),各模塊的設(shè)計(jì)以及如何優(yōu)化硬件資源,提高運(yùn)行速度等問題。實(shí)驗(yàn)結(jié)果表明了該方法的有效性。
隨著軟件無線電的發(fā)展,對于濾波器的處理速度要求越來越高。傳統(tǒng)的FIR濾波器一般采用通用DSP處理器,但是DSP處理器采用的是串行運(yùn)算,而FPGA是現(xiàn)場可編程陣列,可以實(shí)現(xiàn)專用集成電路,另外還可以采用純并行結(jié)構(gòu)及考慮流水線結(jié)構(gòu),因此在處理速度上可以明顯高于DSP處理器。本文采用并行分布式算法在FPGA上設(shè)計(jì)并實(shí)現(xiàn)了高速處理的32階FIR低通濾波器,在此過程中利用Matlab的數(shù)值計(jì)算與分析功能來提高設(shè)計(jì)效率。
在數(shù)字信號處理中,數(shù)字濾波器的應(yīng)用是極其廣泛和重要的單元。與模擬濾波器相比,數(shù)字濾波器可以克服模擬濾波器所無法克服的電壓漂移,溫度漂移以及噪聲等問題。數(shù)字濾波器根據(jù)沖擊響應(yīng)函數(shù)的特性,可以分為IIR濾波器和FIR濾波器兩種。由于FIR濾波器只有零點(diǎn)、系統(tǒng)穩(wěn)定等諸多優(yōu)點(diǎn)。
1 FlR低通濾波器的窗函數(shù)實(shí)現(xiàn)
理想的濾波器頻率響應(yīng)中傅里葉反變換ha(n)一定是無限長的序列,而且是非因果的,而實(shí)際要設(shè)計(jì)的濾波器h(n)是有限長的,因此要用有限長來逼近無限長的,其方法就是用一個有限長度的窗口函數(shù)序列ω(n)來截取,即:
![]()
常見的窗函數(shù)有矩形窗、巴特利特窗、漢寧窗、哈明窗、布萊克曼窗、凱澤窗。其中,凱澤窗提供了可變的過渡帶寬。本文采用凱澤窗對FIR濾波器進(jìn)行設(shè)計(jì),其窗函數(shù)表達(dá)式為:

I0[·]為類變形零階貝賽爾函數(shù),形狀參數(shù)β為依賴于濾波器階數(shù)M的參數(shù),用來調(diào)整主瓣寬度與旁瓣衰減,選擇M可產(chǎn)生各種過渡帶寬和接近的阻帶衰減。給定通帶截止頻率ωp,阻帶起始頻率ωs,阻帶衰減As,凱澤窗設(shè)計(jì)中有經(jīng)典公式可供使用,如下:

過渡帶寬:
濾波器階數(shù):
形狀參數(shù):

假設(shè)低通數(shù)字濾波器設(shè)計(jì)指標(biāo)如下:

采用上面介紹的凱澤窗,利用Matlab編程計(jì)算得到32階FIR低通濾波器參數(shù)如下:

32階FIR低通濾波器幅頻特性圖如圖1所示。

上述求得的系數(shù)是浮點(diǎn)型的,而在FPGA設(shè)計(jì)中使用的數(shù)據(jù)是定點(diǎn)型的,所以在設(shè)計(jì)濾波器之前要將系數(shù)轉(zhuǎn)化為定點(diǎn)型,即系數(shù)的量化。為了兼顧和所占用的資源,本文的系數(shù)用12位二進(jìn)制來量化,得到的整數(shù)系數(shù)結(jié)果如下:

2 并行分布式算法原理及FPGA設(shè)計(jì)
32階FIR濾波器的差分方程表達(dá)式為:

式中:x(n)為輸入;y(n)為輸出;h(n)為濾波器系數(shù)。
設(shè)x(n)用二進(jìn)制可表示為:

其中,位為符號位。則式(7)可寫為:

式(10)為并行分布式算法,由上可以看出并行分布式算法是將濾波器表達(dá)式重新排列,分別加權(quán)求和。與傳統(tǒng)算法的不同之處是在FPGA設(shè)計(jì)過程中以查找表代替乘法器,即根據(jù)輸入數(shù)據(jù)的不同,將對應(yīng)的濾波器系數(shù)預(yù)先求和保存在ROM中,也就是將每一項(xiàng)的乘法求和通過并行結(jié)構(gòu)查表尋值完成,提高運(yùn)行速度。
具體FPGA實(shí)現(xiàn)時,首先將12位的輸人數(shù)據(jù)并行輸入到12列32位移位寄存器分別寄存,然后以寄存器中的值為地址,對應(yīng)于查找表的結(jié)果,按照式(10),每列進(jìn)行相應(yīng)二次冪加權(quán),各列累加,在第32個數(shù)據(jù)完全輸入之后得到正確的濾波器輸出??梢詫?2位的查找表劃分為四個8位的查找表,從而降低對ROM的需求。
在本設(shè)計(jì)中可采用多級流水線技術(shù),也就是將在明顯制約系統(tǒng)速度的長路徑上插入幾級寄存器,雖然流水線會影響器件資源的使用量,但它降低了寄存器間的傳播時延,允許維持高的系統(tǒng)時鐘速率。
3 FPGA仿真與驗(yàn)證
FPGA(Field-Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。
FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。 現(xiàn)場可編程門陣列(FPGA)是可編程器件。與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu),F(xiàn)PGA利用小型查找表(16×1RAM)來實(shí)現(xiàn)組合邏輯,每個查找表連接到一個D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動其他邏輯電路或驅(qū)動I/O,由此構(gòu)成了即可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。
由于直接將大量數(shù)據(jù)進(jìn)行硬件仿真驗(yàn)證很不方便,因此利用Matlab產(chǎn)生一個采樣頻率為100 MHz,頻率分別為1 MHz與30 MHz的兩個正弦信號相加后,作為輸入信號。vec文件,導(dǎo)入到QuartusⅡ中進(jìn)行仿真,時序功能仿真結(jié)果如圖2所示。
其中,clk為時鐘信號,x_in為濾波器輸入信號,y為濾波器輸出信號。圖2并不能很直觀地看出并行分布式算法產(chǎn)生的濾波效果,可以將QuartusⅡ中。vwf文件轉(zhuǎn)化為。tbl文件,在Matlab中按照一定形式編程可以得到時域及頻域波形圖,如圖3,圖4所示。

圖3,圖4中,軟件仿真是直接在Matlab中用輸入信號與濾波系數(shù)卷積得到的,在時域波形中軟件仿真輸出信號與理想信號相比有一定時間延遲,而QuartusⅡ仿真與軟件仿真結(jié)果中幅度的差別是由于硬件輸入量化產(chǎn)生的。
從時域或者頻域波形圖可以看出,頻率為30 MHz的信號被濾除掉,只有頻率為1 MHz的信號通過濾波器,達(dá)到了濾波的目的。


4 結(jié) 語
本設(shè)計(jì)選用Stratix系列芯片,處理速度可以達(dá)到200 MHz以上。本文沒有考慮線性相位的濾波器對稱性,在考慮線性相位的基礎(chǔ)之上結(jié)合一些其他算法可以降低器件數(shù)量和進(jìn)一步提高處理速度。由于FPGA器件的可編程特性,在本設(shè)計(jì)中可以修改濾波器參數(shù),得到高速處理的高通或者帶通數(shù)字濾波器,具有一定實(shí)用價值。另外,本文利用QuartusⅡ與Matlab聯(lián)合仿真,極大地提高了FPGA的設(shè)計(jì)效率。
參考文獻(xiàn):
[1]. ROM datasheet http://www.hbjingang.com/datasheet/ROM_1188413.html.
[2]. CPLD datasheet http://www.hbjingang.com/datasheet/CPLD_1136600.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點(diǎn)總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識2025/6/18 16:30:52
- 高速PCB信號完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









