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