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