FIR濾波器的FPGA實(shí)現(xiàn)方法
在數(shù)字信號(hào)處理系統(tǒng)中,有限脈沖響應(yīng)(finite impulse response,FIR)數(shù)字濾波器是一個(gè)非常重要的基本單元。近年來,由于FPGA具有高速度、高集成度和高可靠性的特點(diǎn)而得到快速發(fā)展。隨著現(xiàn)代數(shù)字通信系統(tǒng)對(duì)于高精度、高處理速度的需求,越來越多的研究轉(zhuǎn)向采用FPGA來實(shí)現(xiàn)FIR濾波器。而對(duì)于FIR濾波器要充分考慮其資源與運(yùn)行速度的合理優(yōu)化,各種不同的FIR濾波結(jié)構(gòu)各具優(yōu)缺點(diǎn),在了解各種結(jié)構(gòu)優(yōu)
缺點(diǎn)后才能更好地選擇合適結(jié)構(gòu)來實(shí)現(xiàn)FIR濾波。
1 FIR數(shù)字濾波器
FIR數(shù)字濾波器由有限個(gè)采樣值組成,設(shè)計(jì)中在滿足幅值特性時(shí),還能保證精確、嚴(yán)格的相位特性,因此在信號(hào)處理等領(lǐng)域得到廣泛的應(yīng)用。
對(duì)于FIR濾波器,其輸出y(n)表示為如下形式:
式中:N為濾波器的階數(shù)(或抽頭數(shù));x(i)表示第i時(shí)刻的輸入樣本;h(i)為FIR濾波器的第i級(jí)抽頭系數(shù)。
由于FIR濾波器的沖擊響應(yīng)為一個(gè)有限序列,其系統(tǒng)函數(shù)可表示為:
FIR濾波器的基本結(jié)構(gòu)如圖1所示。FIR濾波器只在原點(diǎn)處存在極點(diǎn),所以這使得FIR濾波器具有全局穩(wěn)定性。同時(shí)FIR濾波器滿足線性相位條件,其沖擊響應(yīng)序列為實(shí)數(shù)且滿足奇對(duì)稱或偶對(duì)稱條件,即:
2 實(shí)現(xiàn)方法
運(yùn)用FPGA來實(shí)現(xiàn)FIR數(shù)字濾波器的結(jié)構(gòu)多種多樣,但是主要有以下幾類:串行結(jié)構(gòu)、并行結(jié)構(gòu)、轉(zhuǎn)置型結(jié)構(gòu)、基于FFT算法結(jié)構(gòu)、分布式結(jié)構(gòu)。其他類型的FIR濾波器結(jié)構(gòu)都可以由以上幾種結(jié)構(gòu)衍生而來。
2.1 串行結(jié)構(gòu)
由表達(dá)式(1)可知,F(xiàn)IR濾波器實(shí)質(zhì)是做一個(gè)乘累加運(yùn)算,其濾波器的階數(shù)決定了一次乘累加的次數(shù),其串行結(jié)構(gòu)如圖2所示。
串行結(jié)構(gòu)的FIR濾波器結(jié)構(gòu)簡(jiǎn)單,硬件資源占用少,只需要復(fù)用1個(gè)乘法器和1個(gè)加法器,所以成本較低。但是,這種結(jié)構(gòu)的FIR濾波器要經(jīng)過多個(gè)時(shí)鐘周期才有輸出,同時(shí),內(nèi)部時(shí)鐘周期還受到乘法器運(yùn)算速度的影響,所以該結(jié)構(gòu)的FIR濾波器處理速度慢,只適用于濾波階數(shù)較低且處理速度要求低的系統(tǒng)。
2.2 并行結(jié)構(gòu)
將串行結(jié)構(gòu)的FIR濾波器展開就可以得到并行結(jié)構(gòu)的FIR濾波器,并行FIR濾波器結(jié)構(gòu)又稱作直接型FIR濾波器結(jié)構(gòu),這種結(jié)構(gòu)是直接根據(jù)圖1的濾波器結(jié)構(gòu),用多個(gè)乘法器和加法器并行實(shí)現(xiàn)。通??紤]到其濾波器系數(shù)的對(duì)稱性,先對(duì)輸入值進(jìn)行加法運(yùn)算,再進(jìn)行乘法運(yùn)算,最后累加輸出,以此來減少乘法器的個(gè)數(shù),其結(jié)構(gòu)如圖3所示。
并行結(jié)構(gòu)的FIR濾波器在1個(gè)周期內(nèi)可以完成1次濾波,運(yùn)行速度快,雖然利用濾波系數(shù)對(duì)稱性,但仍要占用大量的乘法器和加法器,特別對(duì)于濾波階數(shù)高的濾波器,其資源占用較多,如對(duì)于256階的濾波器,其需要128個(gè)乘法器來實(shí)現(xiàn)。為提高濾波器速度,常引入流水線結(jié)構(gòu),即在每次加法或者乘法運(yùn)算后加入1個(gè)寄存器存儲(chǔ)數(shù)據(jù),使得濾波器可以運(yùn)行在更高的頻率上。
評(píng)論