楊守良,楊保亮
(重慶文理學院 電子電氣工程學院,重慶402160)
插值濾波器是一種結(jié)構(gòu)相對較為簡單、整齊劃一、占用存儲量小的濾波器,廣泛應用于數(shù)字示波器、數(shù)字通信和全數(shù)字收發(fā)機中。它不需要乘法器,因此占用硬件資源較少、實現(xiàn)簡單且速度較高,是高分解速率濾波器的一種非常有效的結(jié)構(gòu),在高速抽取或插值系統(tǒng)中是非常有效的單元[1-3]。在插值濾波器的具體實現(xiàn)中,人們大多使用DSP來實現(xiàn),但由于DSP具有串行執(zhí)行指令的特點,使得其在高速信號處理中無法滿足設(shè)計需要[4]。而高性能大規(guī)??删幊踢壿嬈骷某霈F(xiàn),使得在FPGA中用軟件實現(xiàn)插值濾波器成為可能,而且FPGA芯片內(nèi)部的資源相當豐富,并行的處理速度較快,并具有極大的靈活性,使其成為設(shè)計的首選。
在以FPGA為核心器件來設(shè)計信號處理系統(tǒng)時,Altera公司的DSP Builder是一款理想的系統(tǒng)級工具軟件,它建立了數(shù)字信號處理系統(tǒng)的抽象算法模型,并將抽象算法模型轉(zhuǎn)化成可靠的硬件實現(xiàn)。DSP Builder提供了一個從MATLAB/Simulink直接到FPGA硬件實現(xiàn)的設(shè)計接口,是數(shù)字信號處理高層系統(tǒng)設(shè)計與FPGA的橋梁。DSP Builder極大地簡化了硬件實現(xiàn)流程,同時提供了系統(tǒng)仿真測試功能,使利用FPGA設(shè)計并實現(xiàn)數(shù)字信號處理更加靈活,更容易開發(fā)。此外,還可以將設(shè)計模型直接編譯成能在FPGA器件中布局布線的網(wǎng)表文件,成功地解決了算法研究人員和硬件實現(xiàn)工程師之間的工作協(xié)調(diào)問題,使得用戶能夠以最快的速度將他們的算法得到硬件實現(xiàn)。
插值濾波是由N個Comb模塊(采樣頻率為fs/RD),再級聯(lián) N個 Intergrator模塊級聯(lián)(采樣頻率為 fs),結(jié)構(gòu)如圖 1 所示。 一般情況下插值比率為 1:1、1:2、1:5、1:10、1:20、1:50。 插值濾波器由一個插零模塊和一個濾波器構(gòu)成。如果插值比率為1:N,則插零模塊負責在每兩個原始數(shù)據(jù)之間插入N-1個0,再通過濾波平滑波形,出來的插值后的波形的采樣率將是原始波形的N倍。
圖1 多級CIC插值濾波器結(jié)構(gòu)框圖
用FPGA實現(xiàn)插值濾波器時[5-8],還有一個很重要的參數(shù)需要確定,那就是寄存器的寬度(或者位數(shù))。只有精心計算寄存器的寬度,才能在運算不溢出的情況下,最大限度地節(jié)省FPGA的硬件資源。對于插值濾波器,最終的梳狀器輸出增益 G=(RD)N,其中,R為抽取因子,D為延遲數(shù)值,N為濾波器級數(shù)。假定采用二進制補碼,設(shè)輸入數(shù)據(jù)寬度為Bin,則內(nèi)部數(shù)據(jù)處理的寬度Bout=Nlog2(RD)+Bin。 本設(shè)計中輸入數(shù)據(jù)寬度為 8,N=3,R=75,D=1(即抽取因子為 75,延遲為 1的三級插值濾波器),則輸出字寬 W=8+log2(75×1)≈26 bit,保證不會產(chǎn)生運行時間溢出。因此,可以根據(jù)前面的分析建立模型。
本文以帶寬為30 kHz、采樣率為2 MHz的信號加速為采樣率為150 MHz的信號,而要求通帶衰減最大不得超過3 dB,阻帶衰減不得低于45 dB。根據(jù)前面的分析可以采用三級插值濾波器來實現(xiàn)。根據(jù)圖1所示的框圖在MATLAB的Simulink下,利用DSP Builder建立圖2所示的三級插值濾波器模型[5-7]。
用SignalCompiler將圖2的核心插值濾波器模型轉(zhuǎn)化為 VHDL硬件描述語言,雙擊“SignalCompiler”圖標,在彈出的對話框中點擊 “Compile”,DSP Builder將會調(diào)用Quartus II進行全程編譯,其過程包括創(chuàng)建Quartus II工程、綜合及適配。由于在DSP Builder中只有器件系列,且編譯之后沒有時序報告,因此,在用 SignalCompiler將.mdl文件轉(zhuǎn)化成HDL語言后,一般還需在Quartus II中進行進一步的設(shè)置和完整編譯。
由于在Simulink下進行的仿真不涉及任何硬件 (如FPGA),只能是算法級的仿真,但是如果完全放在底層設(shè)計工具Quartus II上仿真,盡管獲得了全硬件的仿真結(jié)果,但是難以獲得一些特定功能的激勵信號,因此,本仿真通過引入HIL模塊來進行軟硬件協(xié)同仿真。首先在Simulink平臺下進行軟件仿真,當結(jié)果滿足設(shè)計要求時,使用HIL將Input和Output模塊之間DSP Builder模塊生成HDL工程,從而實現(xiàn)基于MATLAB/DSP Builder平臺的硬件仿真。本文選用Altera公司的Cyclone II系列EP2C5Q208C8為主芯片的開發(fā)板進行仿真,仿真結(jié)果如圖3所示。由圖3可以看出,輸出端的數(shù)據(jù)比輸入端的數(shù)據(jù)整整快了75倍,仿真結(jié)果表明,三級插值濾波器的實現(xiàn)方法正確。
圖3 三級CIC濾波器仿真圖
采用一個幅值為127的階躍信號作為插值濾波器的輸入信號,在Quartus II開發(fā)環(huán)境下進行仿真、綜合,運行結(jié)果如圖4所示??梢钥闯鲞_到了預定的設(shè)計要求。
圖2 三級CIC濾波器結(jié)構(gòu)框圖
圖4 三級CIC濾波器仿真所得的時序圖
本文提出一種根據(jù)插值濾波器數(shù)學模型,采用MATLAB/Simulink來建立相應的模型,然后利用Signal Compiler工具將其轉(zhuǎn)化為Quartus II能夠識別的VHDL程序來實現(xiàn)插值濾波器的方案。該方案充分發(fā)揮了FPGA器件處理速度快、實現(xiàn)靈活方便的特性,大大提高了整個系統(tǒng)的性能。采用DSP Builder系統(tǒng)工具,從插值濾波器建模、仿真到FPGA的具體設(shè)計都在一個環(huán)境中完成,方便了系統(tǒng)的更改和擴展,使得設(shè)計更加靈活、便捷,相對于傳統(tǒng)開發(fā)方式,具有更大的優(yōu)勢。
[1]姜宇柏,游思晴.軟件無線電原理與工程應用[M].北京:機械工業(yè)出版社,2007.
[2]田耘,徐文波,張延偉.無線通信 FPGA設(shè)計[M].北京:電子工業(yè)出版社,2008.
[3]王超,董德存.GLONASS接收機快速捕獲方案及其仿真[J].鐵路計算機應用,2005,14(12):7-9.
[4]曹琦,畢篤彥.MAC在FPGA中的高效實現(xiàn)[J].微計算機信息,2007(6-2):216-218.
[5]馬濤,陳娟,單洪.基于DSP Builder的數(shù)字下變頻器的FPGA 設(shè)計[J].電子技術(shù)應用,2006,(32)7:93-96.
[6]賈雪琴,李強,王旭,等.用 MATLAB在 FPGA芯片中實現(xiàn)數(shù)字下變頻設(shè)計[J].計算機仿真,2005(12):303-306.
[7]王飛,梁清華.基于 FPGA的 CIC濾波器的設(shè)計[J].遼寧工業(yè)大學學報(自然科學版),2009(4):77-79.
[8]牛大勝,唐麗萍.積分梳狀濾波器在FPGA中的實現(xiàn)[J].國外電子測量技術(shù),2006(9):48-50.