在FPGA應用中,比較廣泛而基礎的就是數字濾波器。根據其單位沖激響應函數的時域特性可分為無限沖擊響應(Infinite Impulse Response,IIR)濾波器和有限沖擊響應(Finite Impulse Response,FIR)濾波器。DSP Builder集成了Altera和Matlab/Simulink基于FPGA的信號處理的建模和設計。該工具可以將數字信號處理算法(DSP)系統表示成為一個高度抽象的模塊,在不降低硬件性能的前提下,自動將系統映射為一個基于FPGA的硬件設計方案。即支持設計者在Matlab中完成算法設計,在Simulink軟件中完成系統集成,然后通過SignalCompiler(模塊名)生成在QuartusⅡ軟件中可以使用的硬件描述語言,最終實現硬件系統的設計。FIR濾波器是DSPBuilder應用中最為常用的模塊之一,在此基于上述基礎,設計實現了基于模塊的FIR數字帶通濾波器。
1 基于DSP Builder的濾波系統設計
1.1 FIR濾波器原理
有限沖激響應(Finite Impulse Response,FIR)濾波器是由有限個采樣值組成,實現的方式是非遞歸、穩(wěn)定的,在滿足幅頻響應要求的同時,可以獲得嚴格的線性相位特性,因此在高保真的信號處理等領域得到廣泛應用。
對于一個FIR濾波器系統,它的沖擊相應總是有限長的,其系統函數可記為:最基本的FIR濾波器可表示為:
式中:z(n)是輸入采樣序列;h(n)是濾波器系數;L是濾波器階數;y(n)表示濾波器輸出序列,為x(n)和h(n)的卷積。FIR濾波器基本結構如圖1所示。
對于一個4階濾波器子系統其輸出可表示為:
可見在這個子系統中共需要4個延時器,4個乘法單元和一個4輸入的加法器,并可以根據實際需要選擇調用子系統構成多階濾波器。
1.2 濾波的總體要求及實現
1.2.1 設計要求和濾波參數選取
該帶通濾波器的技術指標為16階FIR數字帶通濾波器,對模擬信號的采樣頻率fs為102.4 kHz,通帶頻率為24~44 kHz,上限截止頻率24 kHz,下限截止頻率44 kHz,輸入/輸出序列位寬分別是9位、19位。濾波器系數由濾波器設計工具FDATools生成。因FIR數字濾波器的設計方法主要有窗函數法和等波紋一致逼近法等,比較最佳效果選定Equiripple等波紋法實驗。輸入信號采用DSPBuilder庫中的增加/減少(Increment Decrement)模塊和LUT模塊,分別構成一個線性遞增的地址發(fā)生器和正弦查找表模塊。這樣組建一組正弦信號,考慮組建通帶內頻率f1=24.414 kHz與帶外頻率f2=48.828 kHz疊加。之所以選這兩個頻率主要根據LUT中的信號的步進制即在一個周期(0~2π)中對信號采樣點來決定的。
1.2.2 帶通濾波器的模型設計
根據FIR濾波器原理和4階子系統的輸出公式,在Matlab的Simulink環(huán)境下,調用Altera DSP Builder庫中的4個 Delay延遲模塊、4個Product乘法模塊、5個9位的Input輸入端口、1個20位的Output輸出端口和一個4輸入的加法器,使9位的輸入序列x(n)和FIR濾波器的系數h(0),h(1),h(2),h(3)作為輸入,完成4階濾波器子系統。調用4個這樣的子系統級聯起來構成16階的濾波器。其中,濾波器系數h(0),h(1),…,h(15)由濾波器設計工具FDATools生成,系數與濾波器關聯,建立出完整的濾波系統模型。[!--empirenews.page--]
2 Simulink的模型仿真
在Simulink環(huán)境下設計仿真時間等參數,運行仿真得到濾波輸出的幅頻相應圖和時域圖如圖2,圖3所示。
圖2中縱橫坐標分別代表了幅值和頻率值顯示,Magnitude,Frequency單位分別是dB(幅值單位也稱衰減倍數)和MHz(橫坐標每格單位相比kHz被放大104便于觀察)??v橫軸每格量為5 dB和50 MHz。從該頻譜圖中可看出,濾波后通帶內幅頻曲線相對平緩,帶外衰減較大,由濾波前的連續(xù)幅頻變成了選擇通過的單一幅頻曲線,起到了過濾帶外頻譜的作用。
該圖坐標軸的縱橫軸分別代表了幅度值和時間軸。單位分別為十進制數和s。圖3(a)是兩正弦信號經平行加法器合成的波形圖3(b)濾波后的波形。可見高頻信號衰減很大起到了過濾帶外時間離散信號的作用。綜上該帶通濾波器在頻域和時域都實現了相應的濾波功能,至此完成了模型仿真。[!--empirenews.page--]
3 在ModeISim中實現RTL級仿真
Simulink中僅實現了算法級的仿真,而ModelSim需要對生成的VHDL代碼進行功能仿真即RTL級仿真。如圖4的波形。
圖4定性表述了6個信號波形。clock為時鐘周期,第二個信號是全局復位。重點觀察第三、六個信號,分別是輸入信號(加了數/模轉換的)的模擬顯示和經濾波后輸出信號的模擬顯示。這和Simulink中仿真結果是一致的。第四個信號是濾波后(加數/模轉換)的信號,第五個是最后一個4階濾波子系統的輸出。同樣可設置ModelSim對應的數字顯示,每個時鐘周期對應的數值即為每個時鐘周期對正弦信號的一個采樣點計算一次的值。
4 在QuartusⅡ中實現時序仿真
ModelSim中也僅實現RTL級仿真,并不能精確反應電路的全部硬件特性。Altera提供自動和手動兩種綜合適配流程,在此選用自動流程在QuartusⅡ中進行硬件設計。設定990 ns仿真結果如圖5所示與圖3ModelSim的數字顯示對應信號和結果均是一致的,只是QuartusⅡ的時序仿真更為精確。
5 FPGA硬件實現
系統仿真通過后,需轉到硬件上加以實現,這是整個DSP Builder設計中最為關鍵的一步。QuartusⅡ仿真中生成了.sof編程文件,用于FPGA編程配置,完成了對開發(fā)板StratixⅡEP2S180特定芯片的編譯和管腳的分配。將.sof文件下載到開發(fā)板中,編程模式為USB Blaster相應模式為JTAG,用示波器檢測D/A輸出,可觀察到實測的輸入/輸出波形與仿真結果均對應一致。至此完成了該濾波器完整的FPGA開發(fā)設計,并驗證了該濾波器達到預期設計要求。
6 結 語
這里介紹在Altera DSPBuilder。環(huán)境下基于模型化設計FIR數字帶通濾波器的方法,通過模塊化的方法實現了向VHDL硬件描述語言代碼的自動轉換、RTL級功能仿真、綜合編譯適配和布局布線、時序實時仿真直至對目標器件的編程配置和硬件實現。驗證了濾波器滿足預期設計要求。創(chuàng)新點在于便捷地設計模塊或修改基本參數,完成其他DSP系統設計。綜上采用DSP Builder作FPGA設計,可以更快速、可靠、有效地實現系統功能。體現了FPGA技術的便捷和發(fā)展。