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