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