一種基于VB的虛擬數(shù)字濾波器的設(shè)計(jì)
虛擬儀器的構(gòu)成
從構(gòu)成要素講,虛擬儀器系統(tǒng)是由計(jì)算機(jī)、應(yīng)用軟件和儀器硬件組成的。計(jì)算機(jī)與儀器硬件又稱為VI的通用儀器硬件平臺(tái)?;赑C機(jī)平臺(tái)的虛擬儀器,不但具有強(qiáng)大的軟件開發(fā)資源,而且造價(jià)低,適合于普通用戶。本設(shè)計(jì)就是采用PC DAQ系統(tǒng)來(lái)實(shí)現(xiàn)的。本設(shè)計(jì)的系統(tǒng)構(gòu)成如圖1所示。其采用研華公司的PCL2818LS數(shù)據(jù)采集卡為主,構(gòu)建計(jì)算機(jī)硬件外圍電路,實(shí)現(xiàn)信號(hào)調(diào)理和高速數(shù)據(jù)采集。PCL2818LS數(shù)據(jù)采集卡有如下的功能和特點(diǎn):
16路單端或8路差分模擬量輸入;40 kHz 12位A/D轉(zhuǎn)換器;可對(duì)每個(gè)輸入通道的增益進(jìn)行編程;帶DMA的自動(dòng)通道/增益掃描;16個(gè)數(shù)字量輸入和16個(gè)數(shù)字量輸出;一個(gè)12位模擬量輸出通道(D/A轉(zhuǎn)換);可編程定時(shí)觸發(fā)器/計(jì)數(shù)器;軟件支持包括VisiDAQ 3.1,ActiveDAQ和Windows 3.1/95/NT高速DLL驅(qū)動(dòng)程序。由于測(cè)量信號(hào)沒(méi)有經(jīng)過(guò)硬件濾波,因此必須對(duì)采集進(jìn)來(lái)的信號(hào)進(jìn)行數(shù)字濾波,否則對(duì)測(cè)量結(jié)果產(chǎn)生大的干擾,影響測(cè)量精度。
2 數(shù)字濾波器的結(jié)構(gòu)
數(shù)字濾波器(Digital Filter)是指用來(lái)對(duì)輸入信號(hào)進(jìn)行濾波的硬件和軟件。所謂數(shù)字濾波器是指輸入、輸出均為數(shù)字信號(hào),通過(guò)一定運(yùn)算關(guān)系改變輸入信號(hào)所含頻率成分的器件。與模擬濾波器相比,數(shù)字濾波器的主要優(yōu)點(diǎn)是:
(1) 精度和穩(wěn)定性高;
(2) 系統(tǒng)函數(shù)容易改變,因而靈活性高;
(3) 不存在阻抗匹配問(wèn)題;
(4) 便于大規(guī)模集成;
(5) 可以實(shí)現(xiàn)多維濾波,一個(gè)數(shù)字濾波器可以用系統(tǒng)函數(shù)表示為:
直接由H(z)得出,表示輸入輸出關(guān)系的常系數(shù)線性差分方程為:
可以用兩種方法來(lái)實(shí)現(xiàn)數(shù)字濾波器:一種方法是采用通用計(jì)算機(jī),利用計(jì)算機(jī)的存儲(chǔ)器、運(yùn)算器和控制器把濾波器所完成的運(yùn)算編成程序通過(guò)計(jì)算機(jī)來(lái)執(zhí)行,也就是采用計(jì)算機(jī)軟件來(lái)實(shí)現(xiàn);另一種方法是設(shè)計(jì)專用的數(shù)字硬件來(lái)實(shí)現(xiàn)。數(shù)字濾波器有IIR和FIR兩種。從結(jié)構(gòu)上看,IIR數(shù)字濾波器采用遞歸結(jié)構(gòu),F(xiàn)IR數(shù)字濾波器主要采用非遞歸的結(jié)構(gòu)。由于無(wú)限沖激響應(yīng)濾波器IIR具有無(wú)限記憶和運(yùn)算項(xiàng)數(shù)較少的特點(diǎn),本文將介紹由IIR濾波器滿足“終端機(jī)”中濾波器技術(shù)指標(biāo)的設(shè)計(jì)方法與實(shí)現(xiàn)。
3 IIR濾波器的設(shè)計(jì)理論和方法
遞歸型濾波器的結(jié)構(gòu)及其轉(zhuǎn)移函數(shù)的形式?jīng)Q定了他的設(shè)計(jì)方法,遞歸濾波器的轉(zhuǎn)移函數(shù)一般為式(1)的形式。設(shè)計(jì)遞歸濾波器就是確定濾波器的系數(shù)ak和bk,使他滿足濾波器的技術(shù)指標(biāo)。
3.1 遞歸濾波器的設(shè)計(jì)
設(shè)計(jì)IIR數(shù)字濾波器的方法主要有兩種。一種利用模擬濾波器的理論來(lái)設(shè)計(jì);另一種是計(jì)算機(jī)輔助設(shè)計(jì),也就是利用最優(yōu)技術(shù)進(jìn)行設(shè)計(jì)。他的設(shè)計(jì)步驟如下:
(1) 確定滿足要求技術(shù)指標(biāo)的模擬濾波器的轉(zhuǎn)移函數(shù)H(s);
(2) 把模擬濾波器數(shù)字化。利用模擬濾波器來(lái)設(shè)計(jì)數(shù)字濾波器,就是要把s平面映射到z平面,使模擬系統(tǒng)函數(shù)Ha(s)變換成所需的數(shù)字濾波器的系統(tǒng)函數(shù)H(z),這種由復(fù)變量s到復(fù)變量z之間的映射關(guān)系,必須滿足兩條基本要求:
① H(z)的頻率響應(yīng)要能模仿Hz(s)的頻率響應(yīng),即s平面的虛軸jΩ必須映射到z平面的單位圓ejΩ上,也就是頻率軸要對(duì)應(yīng);
② 因果穩(wěn)定的Ha(s)應(yīng)能映射成因果穩(wěn)定的H(z),也就是s平面Re(s)<0的左半平面必須映射到z平面單位圓的內(nèi)部|z|<1。
上述兩個(gè)條件既保持模擬濾波器的頻率特性,亦保持模擬濾波器的穩(wěn)定性,所以,映射關(guān)系得到的數(shù)字濾波器頻率特性和穩(wěn)定性不變。
3.2 由模擬濾波器得到數(shù)字濾波器的方案
從模擬濾波器變換成數(shù)字濾波器方案主要有以下3種:
沖激響應(yīng)不變法:
階躍響應(yīng)不變法:
雙線性變換法:
設(shè)計(jì)步驟:按一定技術(shù)指標(biāo)將給出的數(shù)字濾波器轉(zhuǎn)換為模擬低通濾波器;根據(jù)轉(zhuǎn)換后的技術(shù)指標(biāo)設(shè)計(jì)模擬低通濾波器H(s)。再將H(s)轉(zhuǎn)換成H(z):對(duì)于高通、帶通或帶阻數(shù)字濾波器的設(shè)計(jì),先將其技術(shù)指標(biāo)轉(zhuǎn)化為與之相應(yīng)的作為“樣本”的低通模擬濾波器的技術(shù)指標(biāo),再進(jìn)行頻率變換,然后按上述步驟設(shè)計(jì)出低通H(s),再將H(s)轉(zhuǎn)換成需要的H(z)。
沖激響應(yīng)不變法設(shè)計(jì)IIR數(shù)字濾波器的主要缺點(diǎn)是數(shù)字濾波器的幅度響應(yīng)產(chǎn)生混迭失真,雙線性變換法可克服這個(gè)缺點(diǎn),但是他卻引起頻率失真。雙線性變換的頻率標(biāo)度的非線性失真可以通過(guò)預(yù)畸變的方法來(lái)補(bǔ)償,即:
模擬濾波器按這兩個(gè)預(yù)畸變了的頻率ΩP和ΩT來(lái)設(shè)計(jì),這樣用雙線性變換得到的數(shù)字濾波器便具有所希望的截止頻率特性,因此,本文討論的是后一種方法,雙線性變換法設(shè)計(jì)首先找出模擬濾波器的轉(zhuǎn)移函數(shù)H(s),然后求出對(duì)應(yīng)的數(shù)字濾波器的轉(zhuǎn)移函數(shù)H(z):
T為采樣周期。
4 虛擬IIR數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)
4.1 軟件
在虛擬儀器的概念中,“軟件就是儀器”。虛擬儀器系統(tǒng)所用的軟件,除了計(jì)算機(jī)所必須的操作系統(tǒng)等基本軟件外,還需要設(shè)備驅(qū)動(dòng)軟件和用戶應(yīng)用程序。功能強(qiáng)大的、現(xiàn)成的驅(qū)動(dòng)軟件是數(shù)據(jù)采集系統(tǒng)的心臟,他為用戶使用不同的編程環(huán)境和語(yǔ)言提供了強(qiáng)有力的應(yīng)用程序編程接口(API)。驅(qū)動(dòng)軟件在保留高性能的前提下將底層的、復(fù)雜的硬件編程細(xì)節(jié)隱藏起來(lái),為用戶提供一個(gè)便于理解的接口。對(duì)于設(shè)備驅(qū)動(dòng)軟件,一般情況下都由硬件設(shè)備或接口板的廠家提供,用戶編程時(shí)只需直接調(diào)用這些設(shè)備驅(qū)動(dòng)程序,一般都符合VISA(虛擬儀器軟件結(jié)構(gòu))標(biāo)準(zhǔn)。
對(duì)于用戶應(yīng)用軟件,我們選用了工具軟件VB,用他進(jìn)行開發(fā)具有周期短,產(chǎn)品可視性好、可靠性高、可維護(hù)性強(qiáng)的特點(diǎn)。軟件開發(fā)步驟如下:
(1) 根據(jù)設(shè)計(jì)要求建立窗體,然后在代碼編輯窗口編輯代碼。窗體應(yīng)包含輸入控制信息和輸出顯示信息。在程序代碼中對(duì)采集進(jìn)來(lái)的原始信號(hào)進(jìn)行數(shù)字濾波,為后面電氣參數(shù)的測(cè)量做好準(zhǔn)備。
(2) 使用文件輸入輸出操作存儲(chǔ)數(shù)據(jù)或從文件中讀取數(shù)據(jù),以便于存儲(chǔ)和顯示波形數(shù)據(jù),也可用于打印和分析結(jié)果。
(3) VB 6.0的調(diào)試工具包括斷點(diǎn)、中斷表達(dá)式、監(jiān)視表達(dá)式、逐語(yǔ)句運(yùn)行、逐過(guò)程運(yùn)行、通過(guò)窗口顯示變量和屬性的值。VB 6.0還包括特別的調(diào)試功能,比如在運(yùn)行過(guò)程中進(jìn)行編輯,設(shè)置下一個(gè)執(zhí)行語(yǔ)句以及在應(yīng)用程序處于中斷模式時(shí)進(jìn)行過(guò)程測(cè)試等。
4.2 IIR數(shù)字濾波器的設(shè)計(jì)與實(shí)現(xiàn)
本設(shè)計(jì)采用數(shù)字巴特沃斯濾波器(Butterworth)。巴特沃斯濾波器的幅度響應(yīng)在通帶內(nèi)具有最平坦的特性,并且在通帶和阻帶內(nèi)幅度特性是單調(diào)變化的。模擬Butter-worth濾波器的幅度平方函數(shù)為:
其中ω為角頻率,ωc為截止頻率,N是濾波器的階數(shù)。從式(9)看出,隨著N的增大,幅度響應(yīng)曲線在截止頻率附近變得更加陡,即在通帶內(nèi)有更多部分的幅度接近于1,而在阻帶內(nèi)以更快的速度下降至零。如果用s代替jω,即經(jīng)解析延拓,則式(9)可寫為:
由此得到極點(diǎn)
從上式看出,Butterworth濾波器的極點(diǎn)分布有如下特點(diǎn):他在s平面上共有2N個(gè)極點(diǎn)等角距地分布在半徑為ωc的圓上,這些極點(diǎn)對(duì)稱于虛軸,而虛軸上無(wú)極點(diǎn)。N為奇數(shù)時(shí),實(shí)軸上有兩個(gè)極點(diǎn)。N為偶數(shù)時(shí),實(shí)軸上無(wú)極點(diǎn)。各極點(diǎn)間的角度距為π/N,Butterworth其傳遞函數(shù)如下:
當(dāng)N為偶數(shù)時(shí):
當(dāng)N為奇數(shù)時(shí):
根據(jù)上述方法,我們編制了IIR數(shù)字濾波器的設(shè)計(jì)程序,采用此程序只需選擇模擬低通濾波器原型和目標(biāo)濾波器種類,輸入采樣頻率ω和目標(biāo)濾波器截止頻率ωc,即可自動(dòng)完成對(duì)IIR數(shù)字濾波器的設(shè)計(jì),如3階低通數(shù)字濾波器的設(shè)計(jì)實(shí)例如下:
選擇歸一化的3階Butterworth低通濾波器作為設(shè)計(jì)型,采樣頻率為10 kHz,截止頻率為1 kHz,運(yùn)行設(shè)計(jì)程序得到低通數(shù)字濾波器的傳遞函數(shù)為:
幅頻圖如圖2所示。
選擇歸一化的3階Butterworth低通濾波器作為設(shè)計(jì)型,采樣頻率為10 kHz,截止頻率ωc1為1 kHz,ωc2為2kHz,運(yùn)行設(shè)計(jì)程序得到帶通數(shù)字濾波器的傳遞函數(shù)為:
幅頻圖如圖3所示。
5 結(jié) 語(yǔ)
數(shù)字濾波器可以通過(guò)編程實(shí)現(xiàn)各種不同系統(tǒng),滿足不同的需要,又可以隨時(shí)改動(dòng)系數(shù),調(diào)整濾波器參數(shù),選擇最佳方案。使用虛擬儀器逐步代替?zhèn)鹘y(tǒng)儀器已經(jīng)成為測(cè)試領(lǐng)域發(fā)展的趨勢(shì)。但是在實(shí)際應(yīng)用中,仍需要根據(jù)具體情況進(jìn)行程序的優(yōu)化和軟硬件的結(jié)合,使虛擬儀器發(fā)揮更高的性能。本文作者創(chuàng)新點(diǎn)是使用了VB軟件平臺(tái)開發(fā)電氣參數(shù)測(cè)量?jī)x等,虛擬儀器實(shí)現(xiàn)了更高的效率,節(jié)省了更多的硬件開銷,方便了系統(tǒng)的維護(hù)并減輕了儀器更新的負(fù)擔(dān)。
評(píng)論