<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于LabVIEW的相關(guān)濾波器的設(shè)計(jì)與改進(jìn)技術(shù)

          基于LabVIEW的相關(guān)濾波器的設(shè)計(jì)與改進(jìn)技術(shù)

          作者: 時(shí)間:2008-07-22 來源:網(wǎng)絡(luò) 收藏

          1 引言
            在目前的測試領(lǐng)域中,越來越廣泛地利用相關(guān)檢測的方法進(jìn)行濾波。利用相關(guān)濾波可以方便地從復(fù)雜的待測信號(hào)(包括有用信號(hào)、直流偏置、隨機(jī)噪聲和諧波頻率成分等)中分離出某一特定頻率的信號(hào)。在數(shù)字技術(shù)迅速發(fā)展以后,相關(guān)濾波也經(jīng)常利用A/D板對(duì)信號(hào)采樣后,在計(jì)算機(jī)中實(shí)現(xiàn),成為數(shù)字濾波的一種形式。本文設(shè)計(jì)了一種實(shí)現(xiàn)相關(guān)濾波的方法,這是相關(guān)分析在測試技術(shù)中的一個(gè)典型應(yīng)用。圖l所示為相關(guān)濾波器的典型框圖。

            Labview是美國國家儀器公司推出的一種基于“圖形”方式的集成化程序開發(fā)環(huán)境,是目前國際上惟一的編譯型圖形化編程語言。在以PC機(jī)為基礎(chǔ)的測量和工控軟件中,Labview的市場普及率僅次于C++/C語言。Labview開發(fā)環(huán)境具有一系列優(yōu)點(diǎn),從流程圖式的編程,不需要預(yù)先編譯就存在語法檢測和調(diào)試過程使用的數(shù)據(jù)指針,到其豐富的函數(shù)、數(shù)值分析、信號(hào)處理和設(shè)備驅(qū)動(dòng)等功能。應(yīng)用Lab-view進(jìn)行濾波器設(shè)計(jì),效率高,操作簡單,并能對(duì)誤差精度進(jìn)行實(shí)時(shí)調(diào)整。把傳統(tǒng)儀器利用Labview用軟件的方法來實(shí)現(xiàn),開發(fā)周期短,易于維護(hù)和升級(jí),可以設(shè)計(jì)出傳統(tǒng)儀器所不能比擬的虛擬儀器,“軟件就是儀器”——這就是虛擬儀器技術(shù)的精髓。
            模擬自相關(guān)濾波器

          2 虛擬相關(guān)濾波器的設(shè)計(jì)
            2.1 前面板的設(shè)計(jì)
            在Labview環(huán)境下開發(fā)的應(yīng)用程序稱為VI(Virtual Instrument)。VI是Labview的核心,有一個(gè)人機(jī)交互的界面——前面板,和相當(dāng)于源代碼功能菜單框圖程序——后面板組成。前面板是程序的界面,在這一界面上有控制量和顯示量兩類對(duì)象。在前面板中,控制量模擬了儀器的輸入裝置并把數(shù)據(jù)提供給VI的框圖程序,例如開關(guān)、旋鈕等;而顯示量則是模擬了儀器的輸入裝置并顯示由框圖程序獲得或產(chǎn)生的數(shù)據(jù),例如用于顯示波形的窗口等。后面板又稱為代碼窗口或流程圖,是VI圖形化的源程序,在流程圖中對(duì)VI編程,以控制和操縱定義在前面板上的輸入和輸出等功能。流程圖中包括前面板上沒有但編程必須有的對(duì)象,如函數(shù)、結(jié)構(gòu)和連線等。
            前面板如圖2所示,由以下幾個(gè)部分組成:參考信號(hào)的參數(shù)設(shè)置、待處理信號(hào)的參數(shù)設(shè)置、濾波結(jié)果的實(shí)時(shí)顯示以及原始信號(hào)的波形圖和濾波結(jié)果的波形圖。可以設(shè)置參考信號(hào)的幅值和頻率,也可以對(duì)3路正弦信號(hào)設(shè)置頻率幅值和相位。程序成功運(yùn)行后就可以從濾波實(shí)時(shí)顯示區(qū)得到濾波結(jié)果的頻率幅值和初相位,同時(shí)在波形顯示區(qū)中也可以得到相應(yīng)的波形,使結(jié)果更為直觀地反映出來。
            2.2 后面板的設(shè)計(jì)
            后面板如圖3所示。后面板中的控件與前面板中的控件相對(duì)應(yīng),并且通過連線、添加程序以及加入各種信號(hào)等措施進(jìn)行編程,實(shí)現(xiàn)自相關(guān)濾波的功能。同時(shí)通過在前面板設(shè)置各種不同的參數(shù),成功地運(yùn)行程序,實(shí)現(xiàn)所要求的目標(biāo)。為了實(shí)現(xiàn)這一功能,筆者又掭加了激勵(lì)信號(hào)源、濾波器加法器和乘法器等各種運(yùn)算器。經(jīng)過運(yùn)行程序.測試結(jié)果顯示能夠?qū)崿F(xiàn)從一個(gè)包含多種頻率成分的信號(hào)中提取出所需單一頻率信號(hào)的功能,相當(dāng)于實(shí)現(xiàn)了濾波。由于這種濾波的思路是從相關(guān)函數(shù)的定義出發(fā)的,因此成為相關(guān)濾波器。

            在這里,筆者用仿真信號(hào)發(fā)生器來模擬待測的信號(hào),在實(shí)際中這個(gè)待測信號(hào)通常由數(shù)據(jù)采集卡采集得到。輸入的待測信號(hào)為3路正弦信號(hào)的疊加,需要從中檢測出20 Hz的信號(hào)。這個(gè)測試VI實(shí)現(xiàn)了相關(guān)濾波過程的動(dòng)態(tài)顯示,使用了循環(huán)結(jié)構(gòu)。
            3 改進(jìn)后的濾波器設(shè)計(jì)
            上述實(shí)現(xiàn)相關(guān)濾波的基礎(chǔ)上,還可以進(jìn)一步改進(jìn),使程序更加簡單。改進(jìn)后的前面板如圖4所示,將多路信號(hào)集于一個(gè)圖中顯示,更加直觀。同時(shí)增加了粗調(diào)和細(xì)調(diào)旋鈕,顯得更加精確。改進(jìn)后的前面板結(jié)構(gòu)更加緊湊,設(shè)計(jì)也更加合理。

            改進(jìn)后的后面板如圖5所示??梢钥吹?,濾波器用一個(gè)信號(hào)平均值測量VI代替了原來的濾波器VI。這是因?yàn)樵谙嚓P(guān)濾波中,濾波器的作用實(shí)際上就是求取測試信號(hào)的直流分量,因此這樣同樣可以實(shí)現(xiàn)相關(guān)濾波。利用相關(guān)函數(shù),可以識(shí)別并提取混淆在噪聲中的信號(hào),即進(jìn)行相關(guān)濾波。

            在數(shù)字技術(shù)迅速發(fā)展以后,相關(guān)濾波經(jīng)常利用A/D板對(duì)信號(hào)采樣后在計(jì)算機(jī)中實(shí)現(xiàn),成為數(shù)字濾波的一種形式。而在Labview中實(shí)現(xiàn)相關(guān)濾波的方法,也是相關(guān)分析在測試技術(shù)中的一個(gè)典型應(yīng)用。
            4 結(jié)束語
            虛擬儀器已經(jīng)為越來越多的人所使用和接受,因?yàn)樘摂M儀器系統(tǒng)更快速簡捷和方便,也可以節(jié)省硬件資源。通過虛擬濾波器設(shè)計(jì),可對(duì)虛擬儀器有更深的理解和領(lǐng)悟,也為以后進(jìn)行更進(jìn)一步的研究提供了基礎(chǔ)。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();