FIR帶通濾波器的FPGA實現(xiàn)
在FPGA應(yīng)用中,比較廣泛而基礎(chǔ)的就是數(shù)字濾波器。根據(jù)其單位沖激響應(yīng)函數(shù)的時域特性可分為無限沖擊響應(yīng)(Infinite Impulse Response,IIR)濾波器和有限沖擊響應(yīng)(Finite Impulse Response,FIR)濾波器。DSP Builder集成了Altera和Matlab/Simulink基于FPGA的信號處理的建模和設(shè)計。該工具可以將數(shù)字信號處理算法(DSP)系統(tǒng)表示成為一個高度抽象的模塊,在不降低硬件性能的前提下,自動將系統(tǒng)映射為一個基于FPGA的硬件設(shè)計方案。即支持設(shè)計者在Matlab中完成算法設(shè)計,在Simulink軟件中完成系統(tǒng)集成,然后通過SignalCompiler(模塊名)生成在QuartusⅡ軟件中可以使用的硬件描述語言,最終實現(xiàn)硬件系統(tǒng)的設(shè)計。FIR濾波器是DSPBuilder應(yīng)用中最為常用的模塊之一,在此基于上述基礎(chǔ),設(shè)計實現(xiàn)了基于模塊的FIR數(shù)字帶通濾波器。
1 基于DSP Builder的濾波系統(tǒng)設(shè)計
1.1 FIR濾波器原理
有限沖激響應(yīng)(Finite Impulse Response,F(xiàn)IR)濾波器是由有限個采樣值組成,實現(xiàn)的方式是非遞歸、穩(wěn)定的,在滿足幅頻響應(yīng)要求的同時,可以獲得嚴(yán)格的線性相位特性,因此在高保真的信號處理等領(lǐng)域得到廣泛應(yīng)用。
對于一個FIR濾波器系統(tǒng),它的沖擊相應(yīng)總是有限長的,其系統(tǒng)函數(shù)可記為:最基本的FIR濾波器可表示為:
式中:z(n)是輸入采樣序列;h(n)是濾波器系數(shù);L是濾波器階數(shù);y(n)表示濾波器輸出序列,為x(n)和h(n)的卷積。FIR濾波器基本結(jié)構(gòu)如圖1所示。
對于一個4階濾波器子系統(tǒng)其輸出可表示為:
可見在這個子系統(tǒng)中共需要4個延時器,4個乘法單元和一個4輸入的加法器,并可以根據(jù)實際需要選擇調(diào)用子系統(tǒng)構(gòu)成多階濾波器。
1.2 濾波的總體要求及實現(xiàn)
1.2.1 設(shè)計要求和濾波參數(shù)選取
該帶通濾波器的技術(shù)指標(biāo)為16階FIR數(shù)字帶通濾波器,對模擬信號的采樣頻率fs為102.4 kHz,通帶頻率為24~44 kHz,上限截止頻率24 kHz,下限截止頻率44 kHz,輸入/輸出序列位寬分別是9位、19位。濾波器系數(shù)由濾波器設(shè)計工具FDATools生成。因FIR數(shù)字濾波器的設(shè)計方法主要有窗函數(shù)法和等波紋一致逼近法等,比較最佳效果選定Equiripple等波紋法實驗。輸入信號采用DSPBuilder庫中的增加/減少(Increment Decrement)模塊和LUT模塊,分別構(gòu)成一個線性遞增的地址發(fā)生器和正弦查找表模塊。這樣組建一組正弦信號,考慮組建通帶內(nèi)頻率f1=24.414 kHz與帶外頻率f2=48.828 kHz疊加。之所以選這兩個頻率主要根據(jù)LUT中的信號的步進制即在一個周期(0~2π)中對信號采樣點來決定的。
1.2.2 帶通濾波器的模型設(shè)計
根據(jù)FIR濾波器原理和4階子系統(tǒng)的輸出公式,在Matlab的Simulink環(huán)境下,調(diào)用Altera DSP Builder庫中的4個 Delay延遲模塊、4個Product乘法模塊、5個9位的Input輸入端口、1個20位的Output輸出端口和一個4輸入的加法器,使9位的輸入序列x(n)和FIR濾波器的系數(shù)h(0),h(1),h(2),h(3)作為輸入,完成4階濾波器子系統(tǒng)。調(diào)用4個這樣的子系統(tǒng)級聯(lián)起來構(gòu)成16階的濾波器。其中,濾波器系數(shù)h(0),h(1),…,h(15)由濾波器設(shè)計工具FDATools生成,系數(shù)與濾波器關(guān)聯(lián),建立出完整的濾波系統(tǒng)模型。
評論