電子科技大學(xué)自動化工程學(xué)院 張偉 王厚軍 羅光坤
引言
LabVIEW" title="LabVIEW">LabVIEW編程語言,也被稱為G語言,是一種數(shù)據(jù)流編程語言。程序員通過繪制導(dǎo)線連接不同功能的節(jié)點,圖形化的程序框圖(LV源代碼)結(jié)構(gòu)決定程序如何執(zhí)行。
現(xiàn)代濾波器理論研究的主要內(nèi)容是從含有噪聲的數(shù)據(jù)記錄(又稱時間序列)中估計出信號的某些特征或信號本身。一旦信號被估出,那么估計出的信號的信噪比將比原信號的高。對于數(shù)字濾波器,從實現(xiàn)方法上,有IIR濾波器和FIR濾波器" title="FIR濾波器">FIR濾波器之分。這兩類濾波器無論是在性能上還是在設(shè)計方法上都有很大的區(qū)別。相對于IIR系統(tǒng),F(xiàn)IR系統(tǒng)有自己突出的優(yōu)點,其一是系統(tǒng)總是穩(wěn)定的,其二是易實現(xiàn)線性相位,其三是允許設(shè)計多通代(或多阻代)濾波器。后兩者都是IIR系統(tǒng)不易實現(xiàn)的。目前,F(xiàn)IR濾波器的設(shè)計方法主要是建立在對理想濾波器頻率" title="頻率">頻率特性做某種近似的基礎(chǔ)上的。這些近似方法有窗函數(shù)法、頻率抽樣法及最佳一致逼近法。本文介紹了一種在LabVIEW平臺下用窗函數(shù)法快速設(shè)計FIR數(shù)字濾波器的方法。
FIR數(shù)字濾波器窗函數(shù)法設(shè)計原理
1) 基本設(shè)計原理
考慮理想低通數(shù)字濾波器,其頻率特性為,現(xiàn)假定其幅頻特性
,
相頻特性,那么,該濾波器的單位抽樣響應(yīng)
(2.1.1)
是以
為對稱的sinc函數(shù),
。這樣的系統(tǒng)是非因果的,因此是物理不可實現(xiàn)的。但是,如果將
截短,例如僅取
,并將截短后的
移位,得
(2.1.2)
那么是因果的,且為有限長,長度為
,令
可得所設(shè)計的濾波器的轉(zhuǎn)移函數(shù)。
的頻率響應(yīng)將近似
,且是線性相位的。
如果在指定的相頻響應(yīng)
時,不是令其為0,而是令
,
即具有線性相位,那么(2.1.1)式可改為
(2.1.3)
這樣,是以
為對稱的,為此,可取
,
。
以上設(shè)計的是FIR低通數(shù)字濾波器,若設(shè)計高通、帶通、帶阻數(shù)字濾波器,只需改變(2.1.3)式積分的上、下限。
高通數(shù)字濾波器:
(2.1.4)
帶通數(shù)字濾波器:
(2.1.5)
帶阻數(shù)字濾波器:
(2.1.6)
式(2.1.4),(2.1.5)和(2.1.6)均以 對稱,為此,。
比較(2.1.3),(2.1.4),(2.1.5)和(2.1.6)可以看出,一個高通濾波器相當(dāng)于用一個全通濾波器減去一個低通濾波器;一個帶通濾波器相當(dāng)于兩個低通濾波器相減,其中一個截止頻率在,另一個在
。一個帶阻濾波器相當(dāng)于一個低通濾波器加上一個高通濾波器,低通濾波器的截止頻率在
,高通在
。
選取一個合適的窗函數(shù),令
則
即為要設(shè)計的濾波器的頻率響應(yīng)。按以上方法設(shè)計出的濾波器由于滿足
的對稱關(guān)系,因此都具有線性相位。
2) 濾波器系數(shù)歸一化
在按照式(2.1.3)設(shè)計FIR低通濾波器系數(shù)的時候直接求出的這些的和,即
一般是不等于一,因此求出的
。對于低通濾波器,我們希望在
處的值為1,因此習(xí)慣上要將求出的
歸一化,即濾波器的每個系數(shù)都除以
。
同理,對于高通、帶通和帶阻濾波器,一般也要將系數(shù)歸一化。
3) 窗函數(shù)的設(shè)計
式(2.1.2)將無窮長的僅取長為
,等于在
上施加了長為
的矩形窗口。加窗的結(jié)果,等于
和矩形窗頻譜的卷積。
本文所涉及到的窗函數(shù)有矩形窗、三角窗(Bartlett)、漢寧窗(Hanning)、漢明窗(Hamming)和布萊克曼窗(Blackman)。其表達(dá)式如下:
4)多余元素的刪除
線性移不變離散時間(LSI)系統(tǒng)的線性卷積可記為。若
是一個M點的序列,
是一個N點的序列,那么卷積的結(jié)果
將是一個M+N-1的序列。也就是說序列
的長度為M,濾波器的長度
為N,經(jīng)過卷積后得到長度是M+N-1的序列。為了保證序列的長度與原輸入序列一樣,必須刪除邊界上的N-1個無效元素。具體刪除哪N-1個元素與卷積運算的實現(xiàn)方式有關(guān)。
考慮到LabVIEW自帶的卷積函數(shù),本文所設(shè)計的濾波器采用分別刪除序列的前(N-1)/2個元素和后(N-1)/2個元素。
FIR數(shù)字濾波器的LabVIEW設(shè)計
LabVIEW采用前面板和后面板來編程。前面板用于輸入數(shù)據(jù)和顯示結(jié)果;后面板則為濾波器設(shè)計的主程序。
程序設(shè)計共分為五部分:
圖3.1 濾波器設(shè)計框圖
1) 前面板設(shè)計
按濾波器的設(shè)計要求在前面板放置5個控件,分別為信號生成控件、濾波方式及參數(shù)控件、窗函數(shù)選擇控件、采樣參數(shù)控件和波形顯示控件。其中,前四個控件(如下圖)為用戶自定義控件。
圖3.2 用戶自定義控件
2) 后面板設(shè)計
按圖3.1分別設(shè)計各個子VI(圖3.3)。從LabVIEW函數(shù)面板取出波形生成函數(shù)并與信號生成控件和采樣參數(shù)控件連接起來構(gòu)成信號產(chǎn)生VI。將設(shè)計好的濾波器子VI跟濾波方式及參數(shù)控件連接構(gòu)成濾波器VI。窗函數(shù)子VI跟窗函數(shù)選擇控件連接構(gòu)成窗函數(shù)VI。最后將信號連接至元素刪除VI經(jīng)波形圖顯示控件顯示。
圖3.3 程序框圖
濾波結(jié)果顯示
設(shè)計一FIR低通濾波器,截止頻率為1kHz。選取包含100kHz和3kHz兩個正弦分量的信號作為輸入信號,信號采樣率為10 kHz,濾波器系數(shù)為40,窗函數(shù)選用漢寧窗。濾波顯示如圖4.1。
圖4.1 濾波顯示
結(jié)束語
本文介紹了基于LabVIEW的FIR數(shù)字濾波器的設(shè)計。本濾波器可以根據(jù)設(shè)計要求方便的調(diào)節(jié)各種參數(shù)以達(dá)到最佳的濾波效果。此濾波器主要用在與之配套的示波器上,通過讀取示波器采集的數(shù)據(jù)然后在PC機上實現(xiàn)濾波功能。相對于示波器自帶的濾波器,本文設(shè)計的濾波器運行在PC機上,能更方便快捷的處理更多的數(shù)據(jù)同時濾波效果更好。