曾 偉,陳 強(qiáng),陳立萬,陳 卓,王海峰
(1.重慶三峽學(xué)院應(yīng)用技術(shù)學(xué)院,重慶萬州404100;2.重慶三峽學(xué)院電子與信息工程學(xué)院,重慶萬州 404100)
1992年美國Lattice公司發(fā)明了在系統(tǒng)可編程技術(shù),徹底改變了傳統(tǒng)數(shù)字電子技術(shù)系統(tǒng)的設(shè)計和實現(xiàn)方法,開創(chuàng)了數(shù)字系統(tǒng)設(shè)計的革命性時代。在1999年,Lattice公司又推出了在系統(tǒng)可編程模擬電路,為電子設(shè)計自動化技術(shù)的應(yīng)用開拓了更為廣闊的前景[1]。
隨著信息科學(xué)和計算機(jī)技術(shù)的迅速發(fā)展,數(shù)字信號處理在20世紀(jì)末期得到了飛躍式的發(fā)展。在數(shù)字信號處理中數(shù)字濾波是重要的環(huán)節(jié),經(jīng)典數(shù)字濾波器從實現(xiàn)的網(wǎng)絡(luò)結(jié)構(gòu)或者單脈沖響應(yīng)長度分類,主要分為有限脈沖響應(yīng)(FIR)和無限脈沖響應(yīng)(IIR)兩大類;與IIR濾波器相比FIR濾波器的計算工作量稍大,但是在保證幅度特性滿足技術(shù)要求的同時,很容易做到嚴(yán)格的線性相位特性[1]。
由于數(shù)字信號處理是用數(shù)值運算的方式實現(xiàn)對信號的處理,因此,相對于模擬信號處理,數(shù)字信號的處理具有靈活性、高精度和高穩(wěn)定性、便于大規(guī)模集成、而且可以實現(xiàn)模擬系統(tǒng)無法實現(xiàn)的諸多功能。
圖1 數(shù)字濾波器信號處理過程
圖1所示為數(shù)字濾波器的信號處理過程。數(shù)字信號處理的對象諸如語音信號等它們本身也是模擬信號,所以一般先經(jīng)過緩沖以及模擬信號預(yù)濾波,然后利用模-數(shù)轉(zhuǎn)換器(A/D轉(zhuǎn)換器)將模擬信號轉(zhuǎn)換成數(shù)字信號,再利用FPGA構(gòu)成的FIR數(shù)字濾波器處理轉(zhuǎn)換后的信號。進(jìn)一步利用數(shù)-模轉(zhuǎn)換器(D/A轉(zhuǎn)換器)將數(shù)字濾波器處理過的結(jié)果轉(zhuǎn)換為模擬信號供使用。
這部分的緩沖以及預(yù)濾波由ispPAC20來完成,然后利用FPGA以及ispPAC20中的D/A轉(zhuǎn)換器、比較器共同構(gòu)成逐次逼近式A/D轉(zhuǎn)換器,其中ispPAC20中的電路結(jié)構(gòu)圖如圖2所示。
圖2 前端ispPAC20內(nèi)部連線圖
逐次逼近式A/D轉(zhuǎn)換器原理如圖3所示,當(dāng)啟動信號START到來后,8位逐次逼近寄存器SAR(Successive Approximation Register)清零,轉(zhuǎn)換過程開始。第一個時鐘脈沖到來時,SAR最高位置1,其余位為0。SAR中鎖存的數(shù)據(jù)為10 000 000,經(jīng)過DAC轉(zhuǎn)換后得到的輸出電壓Vda,與輸入電壓Vi進(jìn)行比較,若Vi大于Vda,則SAR最高位的1被保留,否則清零。
圖3 逐次逼近式A/D轉(zhuǎn)換器原理
第二個脈沖到來時,SAR次高位置1,所得的新值經(jīng)過DAC轉(zhuǎn)換后得到的電壓Vda再與Vi進(jìn)行比較,若Vda小于Vi則SAR次高位1被保留,否則清零。重復(fù)上述過程,依次類推,從D7~D0都比較完畢,轉(zhuǎn)換便結(jié)束,結(jié)束后SAR的數(shù)據(jù)輸出到輸出寄存器作為輸出數(shù)字量。從而經(jīng)過ispPAC20和FPGA共同完成從模擬量到數(shù)字量的轉(zhuǎn)換[2]。
2.2.1 FIR數(shù)字濾波器的設(shè)計原理分析[3]
FIR數(shù)字濾波器的構(gòu)成形式主要有直接型、級聯(lián)型、線性相位型FIR濾波器和頻率采樣型等。本文采用直接型結(jié)構(gòu),故N階FIR數(shù)字濾波器的傳遞函數(shù)為:
H(z)是z-1的N-1次多項式,它在z平面上有個N-1零點,在原點z=0處有一個N-1重極點,因此系統(tǒng)函數(shù)H(z)永遠(yuǎn)穩(wěn)定。系統(tǒng)差分方程表達(dá)式為:
其中M為FIR濾波器的抽頭數(shù);h(k)為第k級抽頭系數(shù)(單位沖擊響應(yīng));x(n-k)為延時k個抽頭的輸入信號。
2.2.2 濾波器系數(shù)的計算[4]
數(shù)字濾波器實際上是一個采用有限精度算法實現(xiàn)的線性非時變系統(tǒng),它的步驟為先根據(jù)需要確定濾波器的性能指標(biāo),然后利用Matlab提供的濾波器設(shè)計工具——FDAtool仿真設(shè)計濾波器進(jìn)行系數(shù)的設(shè)計。本系統(tǒng)的設(shè)計指標(biāo):設(shè)計一個8階低通濾波器,模擬信號的采樣頻率為50 kHz,信號的截止頻率為2 000 Hz,輸入序列帶寬為8位。因為在FIR數(shù)字濾波器之后的ispPAC20中的D/A轉(zhuǎn)換器為8位,所以在設(shè)置濾波器系數(shù)的時候要限制輸出位數(shù)。
FDATool計算出的值是一個有符號小數(shù),而在 DSP Builder下建立的FIR濾波器模型需要一個整數(shù)作為濾波器系數(shù)。所以必須進(jìn)行量化,并對得到的系數(shù)進(jìn)行歸一化處理。
2.2.3 FIR數(shù)字濾波器模型的搭建[4]
DSP Builder是一個系統(tǒng)級(或算法級)設(shè)計工具,它構(gòu)架在多個軟件工具之上,并把系統(tǒng)級和RTL級兩個設(shè)計領(lǐng)域的設(shè)計工具連接起來,最大程度地發(fā)揮了兩種工具的優(yōu)勢。
根據(jù)FIR數(shù)字濾波器的原理,在Matlab/simulink中進(jìn)行設(shè)計的輸入,利用Altera DSP Builder中的模塊進(jìn)行濾波器模型的搭建,然后將計算好的FIR數(shù)字濾波器系數(shù)輸入到搭建的模型中,圖4所示為搭建好的FIR數(shù)字濾波器模型。
上式就是輸入序列x(n)與單位沖擊響應(yīng)h(n)的線性卷積,由上式可知n時刻的輸入y(n)僅于n時刻的輸入以及過去N-1個輸入值有關(guān),實際上FIR數(shù)字濾波器是由一個“抽頭延遲線”加法器和乘法器的集合構(gòu)成的。賦給每個乘法器的操作數(shù)就是一個FIR系數(shù)。
線性相位型FIR數(shù)字濾波器相位響應(yīng)是頻率的線性函數(shù),即:
其中β=0或π/2,α是常數(shù)。
該因果系統(tǒng)具有嚴(yán)格的線性相位,當(dāng)M為偶數(shù)時,有:
圖4 FIR數(shù)字濾波器模型
在搭建好的模型中加入兩個正弦波合成的輸入信號,運行仿真,通過Scope窗口觀察濾波器時域仿真波形如圖5所示。
圖5 濾波器時域仿真波形
從仿真的結(jié)果看,F(xiàn)IR濾波器輸入信號上面疊加的帶外信號得到有效濾除,效果為理想。
但是由于EDA工具軟件(諸如QuartusⅡ和ModelSim)不能直接處理MATLab的.mdl文件,這就需要一個轉(zhuǎn)換過程。通過 SignalCompiler把 Simulink的模型文件(后綴為.mdl)轉(zhuǎn)化成通用的硬件描述語言——VHDL文件。轉(zhuǎn)化后獲得的HDL文件是基于RTL級的,即可綜合的VHDL描述。然后對VHDL的RTL代碼和仿真文件進(jìn)行綜合、編譯適配及仿真。
信號經(jīng)過FIR數(shù)字濾波以后,生成的數(shù)字信號經(jīng)過isp-PAC20內(nèi)部D/A轉(zhuǎn)換器,將數(shù)字信號轉(zhuǎn)換成模擬信號,然后通過ispPAC20內(nèi)部器件進(jìn)行最后的模擬濾波,濾除信號中的疊加的某些高頻分量,經(jīng)過實際驗證,得到的信號能夠滿足設(shè)計要求。
將原始信號經(jīng)過ispPAC20的IN1口輸入,經(jīng)過內(nèi)部程序的緩沖以及預(yù)濾波作用之后,將信號輸入到比較器cp1的比較端口,然后與8位逐次逼近寄存器(SAR)輸出的數(shù)字量經(jīng)過內(nèi)部D/A轉(zhuǎn)換器輸出的信號進(jìn)行比較,從而完成從模擬信號到數(shù)字信號的轉(zhuǎn)換過程。經(jīng)過FPGA對轉(zhuǎn)換后的數(shù)字信號的濾波處理之后,從FPGA的管腳輸出,再通過后端ispPAC20的D/A轉(zhuǎn)換器以及內(nèi)部的運放以及輸出濾波等程序,將信號從ispPAC20輸出,從而完成系統(tǒng)的整個功能。
本系統(tǒng)改變了傳統(tǒng)的只用硬件電路設(shè)計的方法,系統(tǒng)中前端模擬部分和后端模擬部分均采用可編程模擬器件(isp-PAC)實現(xiàn),使用高度集成化芯片,系統(tǒng)的可靠性與穩(wěn)定性有所提高,而且利用FPGA可以根據(jù)自己的要求重復(fù)配置各種精度和特性的FIR濾波器,使設(shè)計更為靈活,但由于利用isp-PAC20和FPGA構(gòu)建的A/D轉(zhuǎn)換器在轉(zhuǎn)換精度和速率上有一定的限制,所以此系統(tǒng)在實際工程應(yīng)用中還存在一定的局限性。
[1]陳立萬,陳強(qiáng),趙威威.EDA技術(shù)與實驗[M].重慶三峽學(xué)院電子與信息工程學(xué)院自編教材,2011.
[2]張石,李景華,許桂芝,等.用ispPAC20和isp1032實現(xiàn)可編程逐次逼近式A/D轉(zhuǎn)換器的研究[J],電子電氣教學(xué)學(xué)報,2001,23(2):36-39.
[3]Uwe Meyer-Baese.Digital Signal Processing with Field Programmable Gate Arrays(Second Edition)[M].Spinger Press,2004.
[4]潘松,黃繼業(yè).EDA技術(shù)與VHDL[M].北京:清華大學(xué)出版社2005.
[5]趙曙光,殷延瑞,趙明英,等.可編程模擬器件原理開發(fā)及應(yīng)用[M].西安:西安電子科技大學(xué),2002.
[6]Steve Kilts.Advanced FPGA Design:Architecture,Implementation,and Optimization[M].JOHN WILEY & SONS,2007.