FIR數(shù)字濾波的FPGA實(shí)現(xiàn)
摘要: 隨著數(shù)字技術(shù)的發(fā)展,數(shù)字濾波器的功能越來越受到人們的注意和廣泛應(yīng)用,它有精度高、靈活性大等突出特點(diǎn)。FIR數(shù)字濾波具有穩(wěn)定性高,嚴(yán)格的線性相位,能用FFT算法實(shí)現(xiàn)等特點(diǎn)。通過FPGA實(shí)現(xiàn)FIR數(shù)字濾波具有實(shí)時(shí)性高、處理速度快、精度高的特點(diǎn)。文章先通過Matlab DSP Builder 設(shè)計(jì)出FIR濾波器模型,然后利用Simulink進(jìn)行模型仿真,再用ModelSim進(jìn)行功能仿真,最后用Quartus II進(jìn)行時(shí)序仿真。仿真結(jié)束后下載到選定的FPGA上,在FGPA上實(shí)現(xiàn)FIR數(shù)字濾波。
關(guān)鍵詞:數(shù)字濾波;FIR濾波器;FPGA; Matlab
0 引言
隨著科技的發(fā)展,數(shù)字信號(hào)處理在通信、自動(dòng)控制、雷達(dá)、軍事、航空航天、醫(yī)療、家用電器等眾多領(lǐng)域得到了廣泛的應(yīng)用。而在數(shù)字信號(hào)處理的應(yīng)用中,數(shù)字濾波器是相當(dāng)重要的一部分。其中無限沖擊響應(yīng)(IIR)數(shù)字濾波器和有限沖擊響應(yīng)(FIR)數(shù)字濾波器是目前人們使用較多的兩種。與IIR數(shù)字濾波器相比較,F(xiàn)IR數(shù)字濾波器具有穩(wěn)定性高,速度快的特點(diǎn)。
FIR數(shù)字濾波器可以通過軟件或者硬件來實(shí)現(xiàn)。所謂軟件實(shí)現(xiàn)就是利用通用計(jì)算機(jī)實(shí)現(xiàn)。而硬件實(shí)現(xiàn)就是設(shè)計(jì)專門的數(shù)字濾波硬件,有以下幾種實(shí)現(xiàn)方法,1)使用單片通用數(shù)字濾波器集成電路;2)采用DSP器件實(shí)現(xiàn);3)采用可編程邏輯器件實(shí)現(xiàn)[4]。比較普遍的有DSP、ASIC、FPGA等。與FPGA相比較,DSP的順序執(zhí)行使得其速度較慢,而ASIC的設(shè)計(jì)成本又比較高,所以用FPGA實(shí)現(xiàn)FIR數(shù)字濾波,具有實(shí)時(shí)性強(qiáng)、靈活性高、處理速度快以及小批量生產(chǎn)成本低等特點(diǎn)。
1 FIR數(shù)字濾波器設(shè)計(jì)要求與結(jié)構(gòu)選擇
FIR濾波器實(shí)現(xiàn)的基本結(jié)構(gòu)有:直接型、級(jí)聯(lián)型、頻率抽樣型、快速卷積型結(jié)構(gòu)幾種[3],這里以直接型為例。設(shè)計(jì)一個(gè)16階的FIR低通濾波器(h(0)=0),采樣頻率Fs=200Hz,濾波器截止頻率Fc=40Hz,輸入序列位寬為9位(最高位為符號(hào)位)。
2 FPGA的選擇
考慮到價(jià)格以及芯片內(nèi)部嵌入式乘法器對(duì)數(shù)字信號(hào)處理的支持性,這里選用的是Altera公司出品的低端FPGA芯片Cyclone II EP2C35F672C6,它主要由邏輯陣列、M4K存儲(chǔ)器塊、數(shù)字[1]鎖相環(huán)、嵌入式乘法器幾部分組成。
3 FIR設(shè)計(jì)軟件平臺(tái)
3.1 基于Matlab和DSP Builder的模型設(shè)計(jì)
3.1.1 Matlab
Matlab可以進(jìn)行科學(xué)計(jì)算、圖像處理、聲音處理等,有良好的用戶界面和幫助功能。其中的Simulink軟件包可以對(duì)動(dòng)態(tài)系統(tǒng)進(jìn)行建模、仿真和分析,支持連續(xù)、離散及混合的線性、非線性系統(tǒng),同時(shí)支持具有多種采樣頻率的系統(tǒng)。在Simulink環(huán)境中,在模型窗口中可以用鼠標(biāo)直觀地“畫”出系統(tǒng)模型,然后直接進(jìn)行仿真。采用Scope模塊和其它的畫圖模塊,還可以在進(jìn)行仿真的同時(shí)看到仿真結(jié)果[1]。
3.1.2 DSP Builder
DSP Builder 是一種系統(tǒng)級(jí)的專門設(shè)計(jì)DSP處理器及系統(tǒng)的工具,它架構(gòu)在多個(gè)軟件工具如Matlab、QuartusII、Synplify之上,把系統(tǒng)級(jí)和RTL級(jí)的設(shè)計(jì)工具連接起來,最大程度地發(fā)揮多種工具的優(yōu)勢(shì)。DSP Builder可以幫助設(shè)計(jì)者完成基于FPGA的DSP系統(tǒng)設(shè)計(jì),它以Matlab中Simulink 的工具箱出現(xiàn),可以在Simulink 中進(jìn)行圖形化設(shè)計(jì)和仿真,同時(shí)通過Signal Compiler可以把設(shè)計(jì)文件轉(zhuǎn)成相應(yīng)的硬件描述語言設(shè)計(jì)文件,以及用于控制綜合與編譯的TCL腳本[1]。
3.1.3 基于Matlab、DSP Builder的FIR數(shù)字濾波器設(shè)計(jì)
利用直接型濾波器可以級(jí)聯(lián)的特性,我們可以調(diào)用4個(gè)4階FIR濾波器來實(shí)現(xiàn)一個(gè)16階的低通濾波器。如圖1所示,其中每個(gè)firtap都是一個(gè)4階FIR濾波器。
圖1 直接I型16階FIR濾波器
Fig.1 16-step Direct I Type FIR Digital Filter
利用Matlab里的濾波器設(shè)計(jì)工具獲得各種濾波器設(shè)計(jì)參數(shù),選擇濾波器類型為低通FIR,設(shè)計(jì)方法為窗口法,15階,Kaiser窗,Beta=0.5,F(xiàn)S為200Hz,F(xiàn)C為40Hz。利用FDATool分析所設(shè)計(jì)出的濾波器的幅頻、相頻特性,沖激、階躍響應(yīng),零極點(diǎn)等,導(dǎo)出濾波器系數(shù)并對(duì)其進(jìn)行量化及優(yōu)化,得到整型的濾波器參數(shù)并分別填入到FIR濾波器模型中,完成設(shè)計(jì)。
3.2 模型仿真調(diào)試
3.2.1 Simulink 模型仿真
模型設(shè)計(jì)好后,即可在Simulink中進(jìn)行算法級(jí)、系統(tǒng)級(jí)仿真驗(yàn)證。在模型的輸入端加入一個(gè)疊加信號(hào),驗(yàn)證FIR低通濾波器模型設(shè)計(jì)的正確性。如圖2所示,自上而下四個(gè)波形分別是58Hz、30Hz輸入波形,二者的混合波形,輸出波形。可見濾波器模型正確。
圖2 模型仿真結(jié)果
Fig.2 the Result of Model Compilation
評(píng)論