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