基于FPGA的FIR濾波器的性能研究
1.2 基于MATLAB的FIR數字濾波器的系數設計
最基本的FIR濾波器可用下式表示:
式(3)中x(n-i)是輸入采樣序列,h(i)是濾波器系數,N是濾波器的階數,y(n)表示濾波器的輸出序列。FIR數字濾波器設計的核心思想就是求出有限的脈沖響應來逼近給定的頻率響應即求出這N個系數h(i)。
在MATLAB中提供了一些濾波器的函數,使FIR濾波器的運算更加方便和快速。
函數fir1是實現(xiàn)加窗線性相位FIR數字濾波器的經典設計方法,可以設計出低通、高通、帶通和帶阻濾波器。
函數fir2是基于頻率取樣的FIR濾波器設計方法,其濾波器的頻率特性由矢量f和a決定,f和a分別為濾波器的頻率向量和幅值向量??紤]到驗證方法是采用數字幅頻均衡,所設計的FIR帶通濾波器是由帶阻網絡的幅頻特性決定的,所以本文是采用函數fir2()設計的。
函數fircls是多波段有限最小二乘FIR濾波器設計。
函數rids是最小二乘線性相位FIR濾波器設計。
函數firpm是Parks-McClellan最優(yōu)化FIR濾波器設計。
函數firreos是升余弦FIR濾波器設計。
函數kaiserord是用Kaiser窗進行設計的FIR濾波器的參數估計。
fir2()以頻率取樣為基礎可設計出任意形狀的FIR濾波器的頻率響應,最基本的調用形式如下:
其中返回的行向量b是一個包含n+1個n階FIR數字濾波器的系數,此FIR濾波器的頻率特性是由頻率向量f和幅值向量a決定的。
調用程序代碼如下:
綜上所述,我們只需要知道幅值與頻率的關系,我們就可計算出任意階數的FIR濾波器的系數。
1.3 基于FIR IP Core設計FIR數字濾波器
Mtera提供的FIR Compiler是一個結合Altera FPGA器件的FIR Filter Core,使得基于FPGA的數字信號處理DSP(Digital Signal Proce-ssing)系統(tǒng)的開發(fā)更加便捷,如果采用設計好的FIR濾波器的IP核,設計周期短,占用邏輯資源少,其運算速度相比DSP處理器有很大的提高。
使用FIR Core之前,首先必須保證MATLAB、Ouartus II及IP核本身,即FIR Compiler等工具安裝正確。如果一切正常,打開QuanusⅡ,在MegaWizard Plug-In Manager庫中的DSP子庫中選擇FIR Compiler,選擇應用器件和輸出文件名。再點擊Next,則生成一個FIR Compiler功能模塊,如圖4所示。本文引用地址:http://www.biyoush.com/article/191003.htm
單擊Parameterize按鈕,打開FIR濾波器核的參數設置窗口,進行FIR濾波器參數的配置。注意在Parameter Settings中,如果選擇的是從文件中導入系數,則需要注意導入文件的格式,F(xiàn)IR Compiler支持的格式是一行只有一個數據,且文件最后不能有回車。所以在MATLAB生成濾波器系數時,對其進行列處理,再將濾波器系數復制到一個(.txt)文件,將(txt)文件導入。
再按照圖4完成Step2、Step3,生成FIR模塊如圖5所示。此時只需要在頂層文件調用,編寫其輸入輸出引腳。再編寫外圍模塊AD、DA的程序,上電下載程序即可驗證產生的FIR帶通濾波器。
評論