基于FPGA的FIR數字濾波器設計與仿真
實現數字化是控制系統的重要發展方向,而數字信號處理已在通信、語音、圖像、自動控制、雷達、軍事、航空航天等領域廣泛應用。數字信號處理方法通常涉及變換、濾波、頻譜分析、編碼解碼等處理。數字濾波是重要環節,它能滿足濾波器對幅度和相位特性的嚴格要求,克服模擬濾波器所無法解決的電壓和溫度漂移以及噪聲等問題。而有限沖激響應FIR濾波器在設計任意幅頻特性的同時能夠保證嚴格的線性相位特性。利用FPGA可以重復配置高精度的FIR濾波器,使用VHDL硬件描述語言改變濾波器的系數和階數,并能實現大量的卷積運算算法。結合MATLAB工具軟件的輔助設計,使得FIR濾波器具有快速、靈活、適用性強,硬件資源耗費少等特點。
本文引用地址:http://www.j9360.com/article/267750.htm2 基本原理
分布式算法(Distributed Arithmetic,簡稱DA)是一項重要的FPGA技術,廣泛應用在計算乘積和之中。該算法基本原理如下:
一線性時不變網絡輸出:

設系數c[n]是已知常數,x[n]是變量,在有符號DA系統中假設變量x[n]的表達式為:

式中xb[n]為x[n]的第b位,而x[n]也就是x的第n次采樣。于是,內積y可以表示為:

分布式算法是一種以實現乘加運算為目的的運算方法。它與傳統算法實現乘加運算的不同在于執行部分積運算的先后順序。該算法利用一個查找表(LUT)實現映射,即用一個2N字寬、預先編好程序的LUT接收一個N位輸入向量xb=[xb[0]],xb[1],…,xb[N-1]]的映射,經查找表的查找后直接輸出部分積。與傳統算法相比,分布式算法可極大的減少硬件電路的規模,提高電路的執行速度。
3 FIR濾波器的設計與實現
3.1 FIR濾波器系數的提取
線性相位FIR濾波器通常采用窗函數法設計。這里采用MATLAB窗函數進行設計。窗函數設計的基本思想是要選取某一合適的理想頻率選擇性濾波器,然后將其脈沖響應截斷獲得一個線性相位和因果的FIR濾波器。根據給定的濾波器技術指標,選用凱澤(Kaiser)窗設計,其幅頻特性和相頻特性如圖1所示。

由于從MATLAB算出的系數h(n)的值是一組浮點數,而FPGA器件只是定點數計算,所以要將浮點數轉換為定點數。為了獲得最佳濾波器系數,轉換時需對其進行處理,轉換后系


3.2 FPGA實現FIR濾波器
FPGA采用FLEXlOK系列中的EPF10K10 2C84—3器件。EDA 工具使用QuartusⅡ5.1。使用FIR濾波器描述編程,從而實現FIR濾波器的頂層原理圖,如圖2所示。

濾波器相關文章:濾波器原理
fpga相關文章:fpga是什么
濾波器相關文章:濾波器原理
電源濾波器相關文章:電源濾波器原理
數字濾波器相關文章:數字濾波器原理
評論