摘要:提出了利用多軟件平臺進行FIR數(shù)字濾波器的協(xié)同設計,改變了傳統(tǒng)的只用硬件電路設計的方法,將整個數(shù)字濾波系統(tǒng)的硬件設計趨于軟件化,采用Lattice公司的可編程模擬器件ispPAC20和Altera公司的FPGA設計架構整個FIR濾波器實驗系統(tǒng)。由于ispPAC20和FPGA器件的高度集成化以及結構的可重構、可編程,使開發(fā)人員隨時可重復配置滿足各種性能要求的濾波器系統(tǒng),將整個系統(tǒng)變得更小型化、更易于升級維護且更靈活。
關鍵詞:FIR數(shù)字濾波器;FPGA;ispPAC20
0 引言
1992年美國Lattice公司發(fā)明了在系統(tǒng)可編程技術,徹底改變了傳統(tǒng)數(shù)字電子技術系統(tǒng)的設計和實現(xiàn)方法,開創(chuàng)了數(shù)字系統(tǒng)設計的革命性時代。在1999年,Lattice公司又推出了在系統(tǒng)可編程模擬電路,為電子設計自動化技術的應用開拓了更為廣闊的前景。
隨著信息科學和計算機技術的迅速發(fā)展,數(shù)字信號處理在20世紀末期得到了飛躍式的發(fā)展。在數(shù)字信號處理中數(shù)字濾波是重要的環(huán)節(jié),經典數(shù)字濾波器從實現(xiàn)的網絡結構或者單脈沖響應長度分類,主要分為有限脈沖響應(FIR)和無限脈沖響應(IIR)兩大類;與HR濾波器相比FIR濾波器的計算工作量稍大,但是在保證幅度特性滿足技術要求的同時,很容易做到嚴格的線性相位特性。
1 系統(tǒng)的總體結構設計
由于數(shù)字信號處理是用數(shù)值運算的方式實現(xiàn)對信號的處理,因此,相對于模擬信號處理,數(shù)字信號的處理具有靈活性、高精度和高穩(wěn)定性、便于大規(guī)模集成、而且可以實現(xiàn)模擬系統(tǒng)無法實現(xiàn)的諸多功能。
圖1所示為數(shù)字濾波器的信號處理過程。數(shù)字信號處理的對象諸如語音信號等它們本身也是模擬信號,所以一般先經過緩沖以及模擬信號預濾波,然后利用模-數(shù)轉換器(A/D轉換器)將模擬信號轉換成數(shù)字信號,再利用FPGA構成的FIR數(shù)字濾波器處理轉換后的信號。進一步利用數(shù)-模轉換器(D/A轉換器)將數(shù)字濾波器處理過的結果轉換為模擬信號供使用。
2 系統(tǒng)各部分功能的設計與實現(xiàn)
2.1 前端緩沖、預濾波以及模數(shù)轉換部分結構
這部分的緩沖以及預濾波由ispPAC20來完成,然后利用FPGA以及ispPAC20中的D/A轉換器、比較器共同構成逐次逼近式A/D轉換器,其中ispPAC20中的電路結構圖如圖2所示。
逐次逼近式A/D轉換器原理如圖3所示,當啟動信號START到來后,8位逐次逼近寄存器SAR(Successive Approximarion Register)清零,轉換過程開始。第一個時鐘脈沖到來時,SAR最高位置1,其余位為0。SAR中鎖存的數(shù)據為10 000 000,經過DAC轉換后得到的輸出電壓Vda,與輸入電壓Vi進行比較,若Vi大于Vda,則SAR最高位的1被保留,否則清零。
第二個脈沖到來時,SAR次高位置1,所得的新值經過DAC轉換后得到的電壓Vda再與Vi進行比較,若Vda小于Vi則SAR次高位1被保留,否則清零。重復上述過程,依次類推,從D7~D0都比較完畢,轉換便結束,結束后SAR的數(shù)據輸出到輸出寄存器作為輸出數(shù)字量。從而經過ispPAC 20和FPGA共同完成從模擬量到數(shù)字量的轉換。
2.2 數(shù)字濾波部分
2.2.1 FIR數(shù)字濾波器的設計原理分析
FIR數(shù)字濾波器的構成形式主要有直接型、級聯(lián)型、線性相位型FIR濾波器和頻率采樣型等。本文采用直接型結構,故N階FIR數(shù)字濾波器的傳遞函數(shù)為:
上式就是輸入序列x(n)與單位沖擊響應h(n)的線性卷積,由上式可知n時刻的輸入y(n)僅于n時刻的輸入以及過去N-1個輸入值有關,實際上FIR數(shù)字濾波器是由一個“抽頭延遲線”加法器和乘法器的集合構成的。賦給每個乘法器的操作數(shù)就是一個FIR系數(shù)。
線性相位型FIR數(shù)字濾波器相位響應是頻率的線性函數(shù),即:
其中M為FIR濾波器的抽頭數(shù);h(k)為第k級抽頭系數(shù)(單位沖擊響應);x(n-k)為延時k個抽頭的輸入信號。
2.2.2 濾波器系數(shù)的計算
數(shù)字濾波器實際上是一個采用有限精度算法實現(xiàn)的線性非時變系統(tǒng),它的步驟為先根據需要確定濾波器的性能指標,然后利用Matlah提供的濾波器設計工具——FDAtool仿真設計濾波器進行系數(shù)的設計。本系統(tǒng)的設計指標:設計一個8階低通濾波器,模擬信號的采樣頻率為50 kHz,信號的截止頻率為2000Hz,輸入序列帶寬為8位。因為在FIR數(shù)字濾波器之后的ispPAC20中的D/A轉換器為8位,所以在設置濾波器系數(shù)的時候要限制輸出位數(shù)。
FDATool計算出的值是一個有符號小數(shù),而在DSPBuilder下建立的FIR濾波器模型需要一個整數(shù)作為濾波器系數(shù)。所以必須進行量化,并對得到的系數(shù)進行歸一化處理。
2.2.3 FIR數(shù)字濾波器模型的搭建
DSP Builder是一個系統(tǒng)級(或算法級)設計工具,它構架在多個軟件工具之上,并把系統(tǒng)級和RTL級兩個設計領域的設計工具連接起來,最大程度地發(fā)揮了兩種工具的優(yōu)勢。
根據FIR數(shù)字濾波器的原理,在Matlab/simulink中進行設計的輸入,利用Altera DSP Builder中的模塊進行濾波器模型的搭建,然后將計算好的FIR數(shù)字濾波器系數(shù)輸入到搭建的模型中,圖4所示為搭建好的FIR數(shù)字濾波器模型。
在搭建好的模型中加入兩個正弦波合成的輸入信號,運行仿真,通過Scope窗口觀察濾波器時域仿真波形如圖5所示。
從仿真的結果看,FIR濾波器輸入信號上面疊加的帶外信號得到有效濾除,效果為理想。
但是由于EDA工具軟件(諸如QuartusⅡ和ModelSim)不能直接處理MATLab的.mdl文件,這就需要一個轉換過.mdl)轉化成通用的硬件描述語言——VHDL文件。轉化后獲得的HDL文件是基于RTL級的,即可綜合的VHDL描述。然后對VHDL的RTL代碼和仿真文件進行綜合、編譯適配及仿真。
2.3 后端模擬部分
信號經過FIR數(shù)字濾波以后,生成的數(shù)字信號經過ispPAC20內部D/A轉換器,將數(shù)字信號轉換成模擬信號,然后通過ispPAC20內部器件進行最后的模擬濾波,濾除信號中的疊加的某些高頻分量,經過實際驗證,得到的信號能夠滿足設計要求。
2.4 系統(tǒng)整體功能的實現(xiàn)
將原始信號經過ispPAC20的IN1口輸入,經過內部程序的緩沖以及預濾波作用之后,將信號輸入到比較器ep1的比較端口,然后與8位逐次逼近寄存器(SAR)輸出的數(shù)字量經過內部D/A轉換器輸出的信號進行比較,從而完成從模擬信號到數(shù)字信號的轉換過程。經過FPGA對轉換后的數(shù)字信號的濾波處理之后,從FPGA的管腳輸出,再通過后端ispPAC20的D/A轉換器以及內部的運放以及輸出濾波等程序,將信號從ispPAC 20輸出,從而完成系統(tǒng)的整個功能。
3 結束語
本系統(tǒng)改變了傳統(tǒng)的只用硬件電路設計的方法,系統(tǒng)中前端模擬部分和后端模擬部分均采用可編程模擬器件(ispPAC)實現(xiàn),使用高度集成化芯片,系統(tǒng)的可靠性與穩(wěn)定性有所提高,而且利用FPGA可以根據自己的要求重復配置各種精度和特性的FIR濾波器,使設計更為靈活,但由于利用ispPAC20和FPGA構建的A/D轉換器在轉換精度和速率上有一定的限制,所以此系統(tǒng)在實際工程應用中還存在一定的局限性。