智能化測控技術課程設計
第二章
基于Labview虛擬濾波器的設計
2.1
labview簡介
LabVIEW
是NI(National
INSTRUMENT,美國國家儀器)公司推出的一種基于G
語言的虛擬儀器(virtual
INSTRUMENT,VI)開發工具。LabVIEW
編程使用圖形化語言,它是非計算機專業人員使用的工具,它為設計者提供了一個便捷、輕松的設計環境,因此,LabVIEW
在世界范圍內的眾多領域如航空、航天、通信、電力、汽車、化學等領域得到廣泛應用。
LabVIEW
有兩個基本窗口:前面板窗口和流程圖窗口。編譯環境下顯示兩個窗口,前面板用于放置控制對象和顯示對象,控制對象相當于常規儀器的控制和調節按鈕;前面板用于顯示程序運行結果,相當于常規儀器的顯示屏幕或指針。流程圖窗口用于編寫和顯示程序的圖形源代碼,它相當于語言編程中一行行的語句,它由各種能完成一定功能的模塊通過連線連接而成。當編寫的LabVIEW
程序調試無誤后,可將程序編譯成應用程序。此時,設計的虛擬儀器可以脫離LabVIEW
開發環境,用戶只需通過前面板進行控制和觀測。
2.2
基于labview的數字濾波器設計
數字濾波器的傳統設計過程可歸納為以下三個步驟:
(1)按照實際需要確定濾波器的性能要求。
(2)用一個因果穩定的系統函數(即傳遞函數)去逼近這個性能要求。此函數可以分為兩類:即IIR
傳遞函數和FIR
傳遞函數。
(3)用一個有限精度的運算去實現這個傳遞函數。
FIR
濾波器設計實質是確定能滿足要求的轉移序列或脈沖響應的常數,設計方法主要有窗函數法、頻率采樣法和等波紋最佳逼近法等。目前,FIR
濾波器設計沒有封閉的設計公式。雖然窗函數法對窗口函數可給出計算公式,但計算通帶與阻帶衰減仍無計算公式。FIR
濾波器的設計只有計算程序可循,因此對計算工具要求較高,不用計算機編程一般很難實現。
IIR
濾波器的設計源于模擬濾波器設計,它通過對低通濾波器進行模擬頻率變換得到。常用的IIR
濾波器有巴特沃斯濾波器、切比雪夫濾波器、切比雪夫Ⅱ濾波器、橢圓濾波器和貝塞爾濾波器。目前,IIR
濾波器的設計可以借助模擬濾波器的成果,有封閉形式的設計公式,對計算工具的要求不高。
IIR
濾波器的設計雖然簡單,但脫離不了模擬濾波器的設計模式,主要用于設計低通、高通、帶通及帶阻濾波器。而FIR
濾波器的設計要靈活得多,尤其是頻率采樣設計法更易適應各種幅度特性和相位特性的要求。
電力系統濾波器可以從電力信號中將所需頻段的信號提取出來并將干擾信號濾除或大大衰減。利用LabVIEW
可以設計出滿足電力系統需要的濾波器,利用LabVIEW
設計的IIR
數字濾波器前面板,前面板上有參數設置、波形顯示兩個區域。在參數設置區域有六個設置項:濾波器選擇、濾波器類型、下截止頻率、上截止頻率、采樣頻率、階次、紋波、衰減;選擇的濾波器不同時,需要設置的項也不同。波形顯示區域用于顯示濾波前后的波形,在此區域可直觀地看出濾波效果。
利用LabVIEW
實現的數字濾波,采用了圖形語言編程,與采用文本語言編程相比,能縮短40%~70%的開發時間;與硬件儀器相比,又具有容易調整濾波器類型、降低成本、濾波效果直觀等優點。基于LabVIEW
編寫的程序還可以將其作為子程序在其他虛擬儀器系統中調用,大大增強了程序的通用性。
2.3
數字濾波器的選擇步驟
LabVIEW
為設計者提供了FIR
和IIR
濾波器VI,使用起來非常方便,只需要輸入相應的指標參數即可,不需要進行復雜的函數設計和大量的運算。濾波器VI
位于LabVIEW
流程圖面Function>>Analyze>>SignalProcessing>>Filters
上。不同濾波器VI
濾波時均有各自的特點,因此它們用途各異。在利用LabVIEW
實現濾波功能時,選擇合適的濾波器是關鍵,在選擇濾波器時,可參照不同濾波器的特點,考慮濾波的實際要求來選擇合適的濾波器。各種濾波器的特點及選擇濾波器的步驟見下圖。
圖2-1
數字濾波器選擇步驟
第三章
軟件設計
3.1前面板的設計
在Labview環境下開發的應用程序稱為VI(Virtual
Instrument)。VI是Labview的核心,有一個人機交互的界面——前面板,和相當于源代碼功能的菜單框圖程序——后面板組成,前面板是程序的界面,在這一界面上有控制量和顯示量兩類對象。在前面板中,控制量模擬了儀器的輸入裝置并把數據提供給VI的框圖程序,例如開關、旋鈕等,而顯示量則是模擬了儀器的輸入裝置并顯示由框圖程序獲得或產生的數據,例如用于顯示波形的窗口等。后面板又稱為代碼窗口或流程圖,是VI圖形化的源程序,在流程圖中對VI編程,以控制和操縱定義在前面板上的輸入和輸出等功能,流程圖中包括前面板上沒有但編程必須有的對象,如函數、結構和連線等[2]。
前面板如圖3-1所示,由以下幾個部分組成:參考信號的參數設置、待處理信號的參數設置、濾波結果的實時顯示以及原始信號的波形圖和濾波結果的波形圖,可以設置參考信號的幅值和頻率,也可以對3路正弦信號設置頻率幅值和相位,程序成功運行后就可以從濾波實時顯示區得到濾波結果的頻率幅值和初相位,同時在波形顯示區中也可以得到相應的波形,使結果更為直觀地反映出來。
數字濾波器的前面板如下圖所示。前面板用于設置輸入數值和觀察輸出量,用于模擬真實濾波器的前面板。由于虛擬面板直接面向用戶,是虛擬濾波器控制軟件的核心。在設計這部分時,主要考慮界面美觀、操作簡潔,用戶能通過面板上的各種按鈕、開關等控鍵來控制虛擬濾波器的工作。實際中的待測信號可以由
數據采集卡實時采集濾波,也可以由數據采集卡采集后保存為LabVIEW所能夠識別的文件形式,之后再由LabVIEW進行分析濾波。在這里用基本的信號(正弦波,余弦波,方波,鋸齒波)來模擬原始信號。程序采用窗函數法的計算流程,將窗函數與需要濾波的信號進行卷積實現信號的濾波。使用者可對原始信號,噪聲信號和濾波器參數進行設置。原始信號的波形圖,濾波的結果都可得到實時顯示。這樣,在程序成功的運行后就可以從顯示區得到結果,使結果更為直觀的反映出來。
圖3-1
前面板的設計
3.2
流程圖的設計
本數字濾波器的后面板即程序代碼框圖如圖3-2所示。框圖程序是由節點、端點、圖框和連線四種元素構成的。節點類似于文本語言程序的語句、函數或者
子程序。框圖中的每一個對象端點與前面板上的對象(控制或顯示)一一對應。不同的線型代表不同的數據類型,在彩顯上,每種數據類型還以不同的顏色予以強調。后面板如圖3-2所示,后面板中的控件與前面板中的控件相對應,并且通過連線、添加程序以及加入各種信號等措施進行編程,實現自相關濾波的功能,同時通過在前面板設置各種不同的參數,成功地運行程序,實現所要求的目標,為了實現這一功能,筆者又添加了激勵信號源、濾波器加法器和乘法器等各種運算器,經過運行程序,測試結果顯示能夠實現從一個包含多種頻率成分的信號中提取出所需單一頻率信號的功能,相當于實現了濾波,由于這種濾波的思路是從相關函數的定義出發的,因此成為相關濾波器。
在這里,用仿真信號發生器來模擬待測的信號,在實際中這個待測信號通常由數據采集卡采集得到,輸入的待測信號為3路正弦信號的疊加,需要從中檢測出20Hz的信號,這個測試VI實現了相關濾波過程的動態顯示,使用了循環結構。
圖3-2
濾波器的后面板
附錄
圖1
數字濾波器的輸入輸出信號波形