1 引言
FIR數(shù)字濾波器能夠滿足濾波器對(duì)幅度和相位特性的嚴(yán)格要求,,避免模擬濾波器的溫漂和噪聲等問題,,具有精確的線性相位、易于硬件實(shí)現(xiàn)和系統(tǒng)穩(wěn)定等優(yōu)點(diǎn),,可廣泛應(yīng)用于現(xiàn)代電子通信系統(tǒng),。實(shí)際信號(hào)處理應(yīng)用往往要求系統(tǒng)兼具實(shí)時(shí)性和靈活性,而現(xiàn)有設(shè)計(jì)方案(如DSP)則難以同時(shí)達(dá)到這兩方面要求,。而使用具有并行處理特性的FPGA實(shí)現(xiàn)FIR濾波器,,具有很強(qiáng)的實(shí)時(shí)性和靈活性,因此為數(shù)字信號(hào)處理提供一種很好的解決方案,。
在嵌入式導(dǎo)航計(jì)算機(jī)工程項(xiàng)目中,,石英撓性加速度計(jì)的輸出信號(hào)需進(jìn)行數(shù)字濾波才能為導(dǎo)航計(jì)算機(jī)提供原始數(shù)據(jù),為此需要設(shè)計(jì)一款FIR數(shù)字濾波器,。這里使用 MATLAB軟件和Altera公司的FPGA開發(fā)軟件QUARTUSⅡ進(jìn)行FIR濾波器的設(shè)計(jì)仿真,,該設(shè)計(jì)方案能夠直觀檢驗(yàn)濾波器的設(shè)計(jì)效果,提高設(shè)計(jì)效率,,縮短設(shè)計(jì)周期,。
2 使用FIR IP Core設(shè)計(jì)濾波器
Altera公司提供的FIR Compiler是一個(gè)結(jié)合Altera FP-GA器件的FIR Filter Core,DSP Builder與FIR Compiler緊密結(jié)合,。DSP Builder提供一個(gè)FIR Core的應(yīng)用環(huán)境和仿真驗(yàn)證環(huán)境,。而FIR濾波器設(shè)計(jì)實(shí)質(zhì)上是確定能滿足所要求的轉(zhuǎn)移序列或脈沖響應(yīng)的常數(shù)問題,設(shè)計(jì)方法主要有窗函數(shù)法,、頻率采樣法和等波紋最佳逼近法等,,這里采用窗函數(shù)法,。
2.1 濾波器指標(biāo)設(shè)計(jì)
FIR濾波器設(shè)計(jì)需達(dá)到以下指標(biāo):低通濾波,采樣頻率Fs為1 000 Hz,,截止頻率Fc為100 Hz,,最小阻帶衰減As為50dB,16階濾波器,,16位輸入數(shù)據(jù)寬度,,14位系數(shù)數(shù)據(jù)寬度。
2.2 利用FIR IP Core生成FIR模塊
在FIR編譯器中,,將FIR濾波器設(shè)置為16階低通濾波器,,單速率采樣。采樣頻率為1 000 Hz,,截止頻率為100 Hz,,窗類型選擇海明窗,然后生成系數(shù)并保存,。濾波器系數(shù)的計(jì)算以所能達(dá)到最高精度為目的,,計(jì)算出的濾波器系數(shù)未考慮有限字長(zhǎng)效應(yīng),必須量化濾波器系數(shù),。由于在FPGA內(nèi)要使用硬件實(shí)現(xiàn)濾波器,,因此采用定點(diǎn)計(jì)算。按照指標(biāo)要求設(shè)置參數(shù),,生成的FIR模塊如圖1所示,。
3 驗(yàn)證方法的確定
基于FPGA的復(fù)雜DSP系統(tǒng)的調(diào)試驗(yàn)證是一項(xiàng)繁瑣工作,,采用傳統(tǒng)的邏輯分析方法調(diào)試基于FPGA器件實(shí)現(xiàn)的設(shè)計(jì)幾乎不可能,。驗(yàn)證方法決定驗(yàn)證結(jié)果的準(zhǔn)確性和驗(yàn)證工作量的大小。目前對(duì)基于FPGA的FIR數(shù)字濾波器的驗(yàn)證,,通常采用輸入一個(gè)信號(hào)序列(白噪聲,、多頻譜混合信號(hào)等)作為激勵(lì),對(duì)濾波器的輸出結(jié)果進(jìn)行分析對(duì)照,,判斷濾波器是否符合設(shè)計(jì)要求,。
4 利用Simulink檢驗(yàn)濾波效果
Simulink是MATLAB中一個(gè)專門用于對(duì)動(dòng)態(tài)系統(tǒng)進(jìn)行建模、仿真和分析的軟件包,。通過調(diào)用模塊,,可以構(gòu)成仿真數(shù)字濾波器特性的結(jié)構(gòu)框圖。輸入低頻 50 Hz和高頻400 Hz的2個(gè)信號(hào),,利用所設(shè)計(jì)的濾波器進(jìn)行濾波,。建立仿真電路結(jié)構(gòu),導(dǎo)入前面所設(shè)計(jì)的FIR濾波器,,如圖2所示,。
圖3為輸入波形在Simulink中Scopel的波形,,圖4為輸出波形在Simulink中Scope的波形。比較圖3和圖4可看出,,該FIR濾波器可有效濾除高頻部分,。因?yàn)樵贒SPbuilder中,輸入正弦波形是通過查找表得到的每個(gè)周期256個(gè)點(diǎn)的量化值形式,,故無(wú)物理單位,,因此輸出波形也是量化值形式。
5 使用ModelSim進(jìn)行RTL級(jí)仿真
完成Simulink軟件中的模型設(shè)計(jì),,仿真成功后,,需要在ModelSim中仿真。因?yàn)镾imulink中的仿真屬于系統(tǒng)驗(yàn)證性質(zhì),,是對(duì)mdl文件進(jìn)行算法級(jí)仿真,,而生成VHDL描述是RTL級(jí),針對(duì)具體硬件結(jié)構(gòu),。二者之間可能存在軟件理解上的差異,,轉(zhuǎn)換后的VHDL代碼實(shí)現(xiàn)可能與mdl模型描述的情況不完全相符,這就需要使用ModelSim進(jìn)行RTL級(jí)功能仿真,。圖5所示是采用ModelSim仿真的結(jié)果,,即低通濾波器的輸出??煽闯?,與 simulink中的仿真結(jié)果基本一致。
6 使用QUARTUS實(shí)現(xiàn)時(shí)序仿真
ModelSim完成的RTL級(jí)仿真只是功能仿真,,其仿真結(jié)果并不能精確反映電路的全部硬件特性,,因此,時(shí)序仿真仍十分重要,。圖6是用QuartusⅡ?qū)崿F(xiàn)的時(shí)序仿真,,可看出,時(shí)序仿真滿足設(shè)計(jì)要求,。
7 使用嵌入式邏輯分析儀SignalTap II測(cè)試
只進(jìn)行工程軟件仿真遠(yuǎn)遠(yuǎn)不夠,,還必須進(jìn)行硬件仿真。signalTap II邏輯分析儀是Quartus II軟件中集成的一個(gè)內(nèi)部邏輯分析軟件,,使用它可以觀察設(shè)計(jì)的內(nèi)部信號(hào)波形,,方便用戶查找引起設(shè)計(jì)的缺陷。從Simulink建模仿真到Mod- elsim RTL仿真和Quartus II時(shí)序仿真,,輸入正弦波都是仿真信號(hào),,而不是實(shí)際信號(hào)源。在硬件實(shí)際運(yùn)行時(shí),可以從外部信號(hào)源接入器件內(nèi)部或者在其內(nèi)部存儲(chǔ)正弦波數(shù)據(jù),。這里采用后者,,即在頂層文件中引入LPM_ROM宏模塊,在其中存入正弦波數(shù)據(jù)的mif文件(存儲(chǔ)初始化文件),,F(xiàn)IR濾波器模塊直接從ROM中讀取數(shù)據(jù),。實(shí)際測(cè)試發(fā)現(xiàn),經(jīng)過設(shè)計(jì)的低通濾波器后,,高頻信號(hào)被濾除,,只有輸出低頻信號(hào)(標(biāo)準(zhǔn)的正弦波),濾波效果滿足系統(tǒng)要求,,嵌入式邏輯分析儀中的輸出波形如圖7所示,。
8 結(jié)束語(yǔ)
本文在FPGA內(nèi)利用DSPBuilder實(shí)現(xiàn)FIR數(shù)字低通濾波器,通過Simulink算法仿真和ModelSim進(jìn)行RTL仿真,,接著在 Quartus中進(jìn)行時(shí)序仿真,。最后用嵌入式邏輯分析儀SignalTapII進(jìn)行實(shí)際測(cè)試,結(jié)果證明采用該方法設(shè)計(jì)的FIR數(shù)字低通濾波器功能正確,,性能良好,,可以提高FIR濾波器的設(shè)計(jì)質(zhì)量,加快設(shè)計(jì)進(jìn)程,,驗(yàn)證結(jié)果直觀明了,。隨著各類數(shù)字信號(hào)處理的IP Cores的進(jìn)一步完善,基于FPGA的DSP系統(tǒng)的應(yīng)用會(huì)更加廣泛,。