GHz高頻信號的LabVIEW和MATLAB混合處理新方法
摘要:探討了對高頻信號進行采集和處理的設計難點,提出將LabVIEW的采集數(shù)據(jù)的特性與MATLAB強大的計算能力相結合的方法,并以此設計了一個系統(tǒng)。然后通過3種不同的方法,分別是將txt文件引入MATLAB、使用MATLAB script、使用Math Script RT,來結合LabVIEW和MATLAB,以采集得到的信號和內部產(chǎn)生信號的均方差及相關系數(shù)為標度來分析不同方法的可行性及效率,通過對比結果,最終確定了一種最佳的方案。
關鍵詞:高頻信號;均方差;相關系數(shù);LabVIEW;MATLAB
隨著技術力量的不斷提升,被處理的信號的頻率越來越高。例如,手機的信號便是上GHz的超高頻信號。在采集這類超高頻信號的過程中,系統(tǒng)很容易受到各種電磁波的干擾,從而使有用信號夾帶各式各樣的諧波成分,這就給后續(xù)的信號處理帶來了很大的麻煩,諸如數(shù)據(jù)量過大,計算復雜等。因此設計一套效率高,可用性強的系統(tǒng)來對高頻信號進行采集及處理顯得尤其重要。
1 設計思路
在這篇文章中,作者討論一種可行的方法,即是使用LabVIEW來進行數(shù)據(jù)采集,使用MATLAB作為數(shù)據(jù)處理的平臺。那么如何高效的將兩者結合將成為設計的關鍵。本文將對不同的結合方法進行實驗,具體執(zhí)行步驟如下:首先使用LabVIEW將高頻信號采集回來并暫時保存;鑒于MATLAB強大的計算能力,作者使用它來產(chǎn)生一個用于比較的高采樣率的波形,并將這個波形通過3種不同的技術引入LabVIEW;最后通過均方差與相關性,可行性與速度的對比,分析哪一種方法才是最好的。
2 文獻調查
在文獻中,作者介紹了在LabVIEW平臺如何運用DAQ工具進行基本采集的相關操作。文獻中的作者介紹了在MATLAB上對信號進行各種處理的基本方法。在文獻中,作者展示了在NI平臺上如何運用Math Script RT模塊來開發(fā)MATLAB代碼。文獻介紹了在LabVIEW中使用MATLABscript模塊進行接口設計。
3 軟件介紹說明
LabVIEW是一種基于數(shù)據(jù)流的編程語言,而MATLAB是第四代編程語言,用來執(zhí)行數(shù)字計算的任務。
LabVIEW的數(shù)據(jù)流編程是一種基于圖標的,因而常被人們稱為G語言。用這些圖標連成的程序叫做VIs(虛擬儀器)。程序的接口是基于前面板的,它能夠接收輸入和提供輸出,在前面板中各部分模塊以圖標連線的方式組成一個結構框架。前面板中的另外一個重要的特性是連線板,它的作用是在一個VI中以圖標的方式使用另一個VI。
人們最初使用LabVIEW只是用來測量,自動化控制,但是隨著LabVIEW集成了越來越多的特性,它逐漸轉變成了一種完善的開發(fā)環(huán)境。G語言最大的優(yōu)勢就在于他并行執(zhí)行的能力。
MATLAB常被人們稱為第四代語言。它具有嚴謹?shù)臄?shù)字化矩陣操作,如果用一些簡單的語言,如:C,C++,來執(zhí)行這些操作的話,那不論對編程者還是計算機來說都將是非常困難的。MATLAB起初是用來計算復雜的矩陣的。它也集成了不同的特性來滿足各種各樣的要求。例如,添加的Simulink就是MATLAB朝圖形模塊化發(fā)展的重要的一步。
使用LabVIEW還是MATLAB來完成特定的功能,取決于編程者的個人愛好。但是由于某些原因,作者需要將一種編程環(huán)境的特性使用在另一種環(huán)境中,比如:將一個使用MATIAB寫的代碼使用在并行執(zhí)行的環(huán)境中。本文主要研究了LabVIEW與MATLAB相結合的3種解決方法,并通過一個用來標度的信號發(fā)生器來分析使用3種不同方法的優(yōu)劣。
4 系統(tǒng)
所設計的系統(tǒng)結構如圖1所示。
4.1 產(chǎn)生信號
當要對一個高頻信號(比如高達2 GHz的信號)進行采集和處理的時候,通常會設計一個高速或者超高速硬件采集電路。包括放大部分、濾波部分;A/D和D/A轉換部分等,這對電路的要求非常高,要求邊采集邊存儲,電路速度高,而且要考慮各種輻射干擾等,同時,目前市場上的高頻信號發(fā)生器價格普遍昂貴。因此作者使用LabVIEW的DAQmx工具包,產(chǎn)生虛擬高頻信號。
DAQmx產(chǎn)生的虛擬高頻信號可調參數(shù)多,且能夠產(chǎn)生諸如正弦波,方波,鋸齒波等波形。作者使用不同參數(shù)的信號,以使得結果更具有說服力。例如:頻率范圍:500 M~10 GHz,分辨率為10 Hz。
4.2 LabVIEW進行采集及顯示
先在DAQmx定時VI中設定好采樣模式及采樣率,這里作者設定的是連續(xù)采樣模式和1 000的采樣率;接著在DAQmx讀取VI中,作者設定為模擬多通道多采樣2D DBL,超時設為2;最后將DAQmx開始任務VI、DAQmx停止任務VI、DAQmx清除任務VI與前面兩個VI連接,這樣就完成了基本的采集設計。將產(chǎn)生的模擬信號直接連接到波形圖表VI可以很直觀的看到波形。
前面板設計如圖2所示。
其主要部分是顯示采集波形的圖表,和內部產(chǎn)生波形數(shù)據(jù)的圖表。表盤和其左方的波形圖是均方差的相關表述,數(shù)字控件描述的是均方差和相關系數(shù)的值。
相比起其他的信號比較法,如:基線信號比較法、信噪比和有效數(shù)據(jù)位比較法等,采用均方差來比較波形顯得更加的簡便,可靠。而相關性揭示了2個波形的相似度,即是2個數(shù)據(jù)間的線性關系。
采集的數(shù)據(jù)在LabVIEW中被保存為一個txt文檔,這只需要將數(shù)據(jù)連線到寫入文本文件VI即可。保存的數(shù)據(jù)可以被用來進行處理、分析或者是其它用途,同時這也提供了備份以防止不可遇見的事故發(fā)生。
4.3 MATLAB進行處理
MATLAB被用來執(zhí)行數(shù)據(jù)計算來比較2個波形。
4.3.1 均方差
均方差的代碼實現(xiàn)了將2個波形數(shù)據(jù)按照矩陣的形式代入方程中,然后將所得結果返回給LabVIEW并顯示出來。均方差的公式由下式給出
4.3.2 相關系數(shù)
相關系數(shù)可以用以下命令實現(xiàn)
R=corrcoef(X) (2)
這條命令將2個矩陣(一個是采集得到的,一個是內部生成的)建立相關性,并輸出計算得到的相關系數(shù)。
相關系數(shù)的公式如下
4.3.3 參考信號
參考信號用來與采集得到的信號數(shù)據(jù)進行均方差與相關性的對比。它由MATLAB產(chǎn)生,因為MATLAB擁有豐富的數(shù)學函數(shù)庫及強大的各種工具箱(ToolBox),這就使得作者可以很方便靈活的產(chǎn)生各種參數(shù)的不同信號,而且使用MATLAB能得到較高的采樣率,并且對信號的處理也比較簡單,同時也避免了將參考信號引入MATLAB script模塊的麻煩。
5 3種方法
5.1 第一種
為了實現(xiàn)第一種方法,作者運用LabVIEW的DAO工具包,設定好產(chǎn)生虛擬信號的參數(shù),再將信號采集回來,并將數(shù)據(jù)保存為一個txt文件。將這個txt文件引入MATLAB,并與MATLAB內部產(chǎn)生的信號進行對比,通過計算得到均方差和相關系數(shù)。
5.2 第二種方法
第二種方法只使用LabVIEW一個軟件,首先采集信號數(shù)據(jù)并保存,接著使用LabVIEW的MATLAB script模塊產(chǎn)生內部信號,最后將倆信號對比并計算均方差和相關系數(shù),如圖3所示。
5.3 第三種方法
第三種方法借助LabVIEW內部的Math Script RT來完成,具體步驟和第二種方法類似,如圖4所示。
6 結果分析
實驗環(huán)境為CPU:Intel Pentium D 2.8 GHz,內存:1G,顯卡:GT220。系統(tǒng):Windows XP。
產(chǎn)生高頻信號為1 GHz,深度為1 024 M,重復實驗10次。
對于一些小誤差,如校準誤差,幾乎可以忽略不計,因為都是在同一個環(huán)境下試驗完成的。因此作者集中分析方法的可行性,然后對比3種方法,最后得出結論哪一種是最好的。
6.1 引入txt文件
這種方法非常耗時。首先,使用LabVIEW采集得到數(shù)據(jù)并將之保存為一個txt文件,然后再將這個文件引入MATLAB。即是用戶需要在打開一個軟件后再打開另外一個軟件來完成操作,這是很繁瑣的。
從開發(fā)者的角度來說,這種方法也許很簡單或者說是不那么復雜。但是,這種方法可行性最低。因為除了耗時,它還需要對這兩種軟件有一定的認識,因此花在查找文獻上的時間也相應的增多了。
另外,這種方法增加了電腦的負擔,畢竟是開了兩個程序。如果你使用的是一臺老電腦的話,那么這可能會降低你的工作效率。
綜上,作者不建議使用這種方法。
6.2 使用MATLAB script
這種方法經(jīng)過驗證比上一種要好。因為用戶不必打開兩個應用程序來執(zhí)行程序,所以相對的比較可行。
但是,這種方法也需要安裝MATLAB軟件,才能在LabVIEW中調用MATLAB script模塊。這樣就導致了程序執(zhí)行的緩慢,因為用戶必須等待一段時間讓計算機進行切換計算。
除了操作性的難題,這種方法最主要的問題還是不能夠實時計算。采集的數(shù)據(jù)必須先保存為矩陣的形式,然后再調用MATLAB script模塊進行處理。這樣就不僅浪費了時間,而且還需要另外的算法來臨時保存數(shù)據(jù)。
6.3 使用Math Script RT
這種方法使用了內嵌的Math Script模塊,它集合了LabVIEW和MATLAB的優(yōu)點,而且還不需要安裝另外的軟件。Math Script模塊沒有必要調用MATLAB軟件,因為它本身就能夠識別800多條命令,也就是說使用。Math Script模塊的話就不需要再安裝MATLAB軟件了。
相比上一種方法,最主要的優(yōu)勢除了運行快還有就是能夠進行實時處理。因為其不需要對數(shù)據(jù)進行臨時的數(shù)據(jù)存儲,也沒有丟失實時的信息,這就使得它的運行速度是最快的。測試結果如圖5所示。
7 結論
為了最優(yōu)化系統(tǒng)的性能,本文提倡對不同目的使用不同的軟件。使用LabVIEW進行數(shù)據(jù)采集,運用MATLAB進行數(shù)據(jù)處理,這是很多項目的需要,也是很多程序員的需要。文中使用3種方法將LabVIEW與MATLAB的特性相結合:引入txt文件到MATLAB,使用MATLAB script模塊,使用Math Script RT。通過分析得到的結果,證實了使用Math Script RT無論在速度和可行性方面都是最好的。