張? 謝文博
摘 要:數(shù)字信號處理的穩(wěn)定性、有效性和精確性使其應(yīng)用范圍越來越廣。FPGA具有可根據(jù)自行需要而改變設(shè)計電路的功能,在數(shù)字電路領(lǐng)域不斷發(fā)展,但它編程的語言繁瑣而且不易理解。為此,采用DSP Builder進(jìn)行FIR濾波器的設(shè)計,不僅可以自動轉(zhuǎn)化為FPGA芯片能識別的語言,還可以進(jìn)行模型化仿真。根據(jù)FIR濾波器的濾波原理,通過DSP Builder工具,設(shè)計一個20階的低通濾波器,并進(jìn)行了仿真。
關(guān)鍵詞:DSP Builder;FIR濾波器;Matlab;FPGA
中圖分類號:TN713 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2016)05-00-03
0 引 言
濾波器是用來抑制或濾除輸入信號中的干擾或干擾成分,改變輸入信號中各個頻率分量的大小和相位,輸出有用或達(dá)到預(yù)期指標(biāo)的信號[1]。隨著電子技術(shù)的不斷發(fā)展,芯片集成度不斷提高,數(shù)字濾波器不斷取代模擬濾波器[2]。數(shù)字濾波器分為無限脈沖響應(yīng)(IIR)和有限脈沖響應(yīng)(FIR)兩類,相比于IIR濾波器,F(xiàn)IR濾波器不存在遞歸運算,即不存在除零以外的其它極點,系統(tǒng)總是穩(wěn)定的,也容易實現(xiàn)線性相位;雖然在實現(xiàn)過程中計算量較大,但設(shè)計方便,在通信、數(shù)字圖像處理、雷達(dá)信號分析和譜分析等領(lǐng)域都有廣泛的應(yīng)用。
1 FIR濾波器
1.1 FIR濾波器原理
FIR濾波器指的是用有限沖
其中,M表示濾波器的階數(shù),h(i)表示系統(tǒng)的單位沖激響應(yīng),這由選擇的濾波特性決定。一個理想的濾波器其單位沖激響應(yīng)是一個無限長的序列,而FIR濾波器的階數(shù)顯然是有限的,這就要通過一定的附加函數(shù)逐步逼近理想的濾波特性。x(n-i)是通過i個延時后的數(shù)字輸入信號。
1.2 FIR濾波器結(jié)構(gòu)
FIR濾波器系統(tǒng)基本運算如圖1所示。該結(jié)構(gòu)圖可以看成是一個分節(jié)的延時線,把每一節(jié)的輸出加權(quán)累加,得到濾波器的輸出[3]。由圖可以看出,F(xiàn)IR濾波器可根據(jù)需要而加長或縮減延時線的長度和乘法器的系數(shù)來改變FIR的參數(shù)。FIR濾波器實際上是一個采用有限精度算法實現(xiàn)的時不變線性離散系統(tǒng)[3]。此結(jié)構(gòu)是上述表達(dá)式(2)的直接反應(yīng),除此以外,還可以根據(jù)微機所提供的資源對系統(tǒng)結(jié)構(gòu)進(jìn)行改進(jìn),達(dá)到節(jié)約資源或節(jié)省運行時間的目的。
圖1 FIR濾波器的基本結(jié)構(gòu)
FIR濾波器一般是由乘法器、加法器、延時器構(gòu)成,以進(jìn)行數(shù)值計算和數(shù)據(jù)存儲。由于處理時間和芯片資源空間相互制約,通過調(diào)整延時線長度和乘加次序來改變時間和空間之間的要求。當(dāng)濾波器數(shù)據(jù)流向處理方式不同時,濾波器形成串行、并行、模擬卷積運算的分布式處理等結(jié)構(gòu)。這里不展開說明,根據(jù)實際情況選取合適的濾波結(jié)構(gòu)。總之,濾波器結(jié)構(gòu)的選取不僅會影響濾波器自身的濾波性能,還會影響資源的合理利用。
1.3 FIR濾波器系數(shù)
在低通濾波器的設(shè)計過程中,要有理想的截止頻率必須是無限長序列。對FIR濾波器來說,沒有遞歸運算,只有有限階抽頭數(shù),這就需要通過一定的設(shè)計方法,使誤差達(dá)到最小值。把理想系統(tǒng)的單位沖激響應(yīng)h(n)用一定的計算公式選擇出有限長度的hd(n),以此hd(n)來逼近理想的h(n)。有限的抽頭數(shù)就是FIR濾波器的系數(shù),與濾波器的階數(shù)對應(yīng)。不同的逼近方法對濾波性能產(chǎn)生不同的影響。在設(shè)計系統(tǒng)的過程中要考慮通帶,阻帶,衰減程度,波紋等因素,避免系統(tǒng)達(dá)不到理想的設(shè)計要求。
根據(jù)不同F(xiàn)IR濾波器性能的要求,選取恰當(dāng)?shù)南禂?shù)與濾波器階數(shù)。一般有三種普遍的做法,分別為窗函數(shù)、等波紋最佳逼近、頻率抽樣。
(1)窗函數(shù)設(shè)計方法是將主要頻率的值選出而舍棄一些對信號影響不大的值。當(dāng)時域有限而頻域無限時,就不會有良好的截止頻率,這對信號貢獻(xiàn)較大的頻率成分不會有大的影響,截止頻率附近的成分也可忽略不計;
(2)等波紋最佳逼近法處理比較粗糙的頻率范圍時經(jīng)常使用,較低的階數(shù)就能達(dá)到要求;
(3)頻率抽樣法是在頻域范圍內(nèi)對信號進(jìn)行數(shù)字處理,一般采用FFT的方法進(jìn)行數(shù)據(jù)變換,其算法復(fù)雜。
2 設(shè)計流程及相關(guān)工具使用
2.1 DSP Builder的相關(guān)介紹
DSP Builder不是一個獨立的軟件,而是一個算法級的工具,作為一個子函數(shù)庫存在于Matlab\SimuLink中,同時得到Altera公司的授權(quán),自動生成系統(tǒng)代碼,完成硬件實現(xiàn)。隨著數(shù)字信號處理技術(shù)的不斷發(fā)展,F(xiàn)PGA應(yīng)用的空間范圍越來越廣泛,但其實現(xiàn)目標(biāo)所用的VHDL等硬件描述語言比較復(fù)雜。由Altera公司設(shè)計的數(shù)字信號處理工具DSP Builder簡化了數(shù)字系統(tǒng)設(shè)計的流程,設(shè)計效率得到了提高。除此之外,其為數(shù)據(jù)類型的轉(zhuǎn)化提供了一個很好的工具。
DSP Builder作為Matlab數(shù)值計算軟件和QuartusII硬件設(shè)計軟件之間的橋梁,一定程度上降低了設(shè)計的復(fù)雜程度,使設(shè)計更加簡單且易于操作,避免了復(fù)雜的語言設(shè)計和邏輯驗證過程。
2.2 FIR濾波器設(shè)計要求
在實際設(shè)計過程中,數(shù)字濾波器要根據(jù)其性能指標(biāo)選取合適的逼近系數(shù)h(n),選取濾波階數(shù),確定濾波器的結(jié)構(gòu)。設(shè)計要求為設(shè)計一個系統(tǒng)的抽樣頻率為Ft=50 MHz,通帶截止頻率為Fp=1 MHz,阻帶截止頻率為Fs=4 MHz,通帶允許起伏1 dB,阻帶最小衰減30 dB,濾波階數(shù)為20階的低通濾波器。由于窗函數(shù)設(shè)計的濾波器對頻率要求比較精細(xì),若此系統(tǒng)采用窗函數(shù)法,則需要很高的濾波階數(shù),因而這里采用通帶頻率比較粗略的等波紋設(shè)計法。
2.3 確定濾波器系數(shù)
濾波器系數(shù)的確定是濾波器設(shè)計最關(guān)鍵的一步,直接影響濾波器的實際性能。Matlab中的FDA提供了所需系數(shù)的設(shè)計工具。
在這個過程中,F(xiàn)DA Tool算出的濾波器系數(shù)為有符號小數(shù),需要處理能在FPGA中實現(xiàn)的有符號整數(shù),這就要進(jìn)行量化和歸一化處理。量化的過程就是誤差產(chǎn)生的過程,該過程會產(chǎn)生量化噪聲,因此對量化后的濾波器進(jìn)行性能分析是必須的。由濾波系數(shù)的特點可知,所得數(shù)據(jù)都需進(jìn)行同等倍數(shù)處理,將其化成整數(shù),盡量降低轉(zhuǎn)化誤差。得到處理后的濾波器系數(shù)依次為:-6 24 27 37 50 63 75 85 93 97 97 93 85 75 63 50 37 27 24 -6。這些系數(shù)直接決定了所占乘法器的位長。在求取濾波器系數(shù)的過程中,F(xiàn)DA Tool提供了極大的方便。作為Matlab中專門設(shè)計濾波器系數(shù)的工具,可以很直觀地顯示出FIR濾波器的幅頻特性,零極點,群延時等參數(shù),如圖2所示。
圖2 濾波器分析圖
2.4 FIR濾波器模型的建立
利用DSP Builder工具設(shè)計FIR濾波器,在Matlab\SimuLink中建立.MDL文件。通過.MDL文件轉(zhuǎn)化為硬件能識別的VHDL語言,此軟件仿真層的原理框圖是構(gòu)成FIR濾波器實際應(yīng)用的基礎(chǔ)。此過程也決定了濾波器的濾波結(jié)構(gòu)即數(shù)據(jù)處理過程的順序。Shift Taps內(nèi)部結(jié)構(gòu)如圖3所示。FIR濾波器系統(tǒng)的仿真總圖及仿真波形如圖4所示。
圖3 Shift Taps的內(nèi)部結(jié)構(gòu)
圖4 FIR濾波器系統(tǒng)仿真總圖及仿真波形
利用DSP Builder設(shè)計軟件仿真的流程,并沒有下載到FPGA中的文件。這只能說明設(shè)計邏輯的正確性,不能保證此系統(tǒng)的使用性。此時,必須通過一定的方式將其轉(zhuǎn)化為硬件能夠識別的.sof文件[2]。
2.5 FIR低通濾波器系統(tǒng)的硬件測試
在仿真完成后,采用SignalTap II邏輯分析儀工具進(jìn)行硬件測試的結(jié)果如圖5所示,生成.sof文件下載到硬件中,前提是通過Signal Compiler編譯后生成.qpf文件,使EDA工具QuartusII可編譯。SignalTap II工具的應(yīng)用縮短了測試時間,其將邏輯分析模塊嵌入FPGA中,對待測節(jié)點的數(shù)據(jù)進(jìn)行捕獲就要通過邏輯分析模塊。數(shù)據(jù)通過JTAG數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸。使用SignalTap II無需額外的邏輯分析設(shè)備,只需將一根JTAG接口的下載電纜連接到要調(diào)試的FPGA器件[4]即可。與ModelSim仿真相比較,該方法更直接的將設(shè)計用于硬件測試,并非只是對系統(tǒng)的數(shù)據(jù)運算進(jìn)行檢測。
圖5 FIR濾波器的測試模型圖
在測試過程中,用Signal Tap II分析塊選取了輸入的低頻信號SinLow,不同頻率的合成信號SinAdd,濾波輸出的信號FirOut。硬件測試波形如圖6所示,SinLow與FirOut檢測所得的信號基本一致,他們都濾除了高頻成分,濾波器輸出的信號大致為390 kHz。由DDS原理所產(chǎn)生的低頻正弦波信號的頻率為390.625 kHz,產(chǎn)生的高頻正弦波信號為6.25 MHz。這表明濾波器濾除了高頻成分,達(dá)到了低通濾波器的基本功能。觀察取樣波形,輸出波形FirOut與輸入信號SinLow的波形大致一致,而在波峰與波谷處出現(xiàn)了失真。
圖6 硬件測試波形
3 結(jié) 語
在此次設(shè)計過程中,充分展示了DSP Builder設(shè)計工具的優(yōu)勢,作為數(shù)字系統(tǒng)的設(shè)計工具,很好地搭建了一座Matlab與Quartus II共同設(shè)計系統(tǒng)的橋梁,同時也很好地轉(zhuǎn)化SimuLink中建立的模型圖,將其轉(zhuǎn)化為Quartus II能識別的VHDL語言,避免了復(fù)雜的硬件語言描述[5],大大縮短了系統(tǒng)的開發(fā)周期。此設(shè)計模式為FPGA在信號處理應(yīng)用方面提供了很大的發(fā)展空間。
參考文獻(xiàn)
[1]鄭君里,應(yīng)啟銜,楊為理.信號與系統(tǒng)(下冊)[M].北京:高等教育出版社,2011.
[2]高亞軍.基于FPGA的數(shù)字信號處理[M].北京:電子工業(yè)出版社,2012.
[3]數(shù)字信號處理(第4版)[M].余祥宇,譯.北京:電子工業(yè)出版社,2012.
[4]馬建國,孟憲元.FPGA現(xiàn)代數(shù)字系統(tǒng)設(shè)計[M].北京:清華大學(xué)出版社,2010.
[5]鄒興宇,程樹英.優(yōu)化FIR數(shù)字濾波器的FPGA實現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(6):151-153.
[6]楊麗杰,崔葛瑾. 基于FPGA的FIR濾波器設(shè)計方法的研究[J].東華大學(xué)學(xué)報(自然科學(xué)版),2006,32 (6):93-96,106.
[7]宋承文,魏選平,劉浩淼.基于FPGA的FIR濾波器設(shè)計與仿真[J].電子技術(shù),2011(4):49-51.