LabVIEW與MATLAB混合編程在數字天線陣列測試中的應用
引言
數字天線陣列是天線和數字信號處理技術結合的產物,它具有工作方式靈活、抗干擾性能卓越和超角分辨等眾多優(yōu)點,因此在軍事和民用領域都得到了廣泛的應用。陣列系統(tǒng)的多天線單元和多收發(fā)通道必然帶來陣列系統(tǒng)的誤差,這些誤差會引起系統(tǒng)性能的下降,甚至會使各種先進的信號處理算法完全失效。因此,必須對數字天線陣列系統(tǒng)進行校正。一般陣列天線校正和波瓣測量需要采集大量的數據,進行多次循環(huán)計算,工作效率低且動用的儀器設備眾多。而LabVIEW作為軟件化儀表在數據采集及控制、數據分析和顯示等方面具有強大的功能,其支持的信號接口卡豐富,用戶能夠快捷方便地對各個輸入數據參數進行即時設置和調試,程序運行結果也十分直觀。因此在陣列天線測試中,LabVIEW的優(yōu)勢十分明顯,它可以實現對大量通道信號同時采集和實時監(jiān)控、分析等工作,這樣既節(jié)省了資源,也簡化了測試過程,提高了工作效率。
但是,LabVIEW在數值處理分析和算法工具等方面效率低、功能簡單,不能滿足工程上多方面的需求。而MATLAB因其強大的數學處理功能,特別是矩陣運算功能而廣泛應用于工程分析。MATLAB的缺點是不方便實現實時操作和控制。因此在某接收數字天線陣列系統(tǒng)測試過程中,將LabVIEW和MATLAB結合運用,實現優(yōu)勢互補,完成了測試過程中數據采集、通道監(jiān)視和最后驗證等工作,為系統(tǒng)測試帶來極大便利。
1 系統(tǒng)簡介
在系統(tǒng)接收端,接收天線各單元通道將接收到的信號通過接收前端放大后,直接送到數字接收機和采集計算機。由數據采集卡對接收機輸出的I/Q信號和天線方位等機械參數、觸發(fā)信號進行采集和控制,并最終在終端控制處理訃算機上計算出天線波瓣圖。系統(tǒng)工作過程如圖1所示。
在測試過程中,采用LabVIEW設計用戶圖形界面,負責數據采集,并調用由MATLAB牛成的COM組件對象或者在后臺直接調用MATLAB。LabVIEW中數據采集系統(tǒng)由采集硬件、硬件驅動程序和數據采集函數等組成。安裝的硬件驅動程序包含了硬件可以接收的操作命令,在使用這些硬件之前,根據需要進行硬件和軟件設置,以滿足采樣頻率等方面的要求。水系統(tǒng)中采用NI公司的PCI-6534采集卡,LabVIEW通過控制數據采集卡對接收機輸出的I/Q信號以及其他機械參數等進行采集。在完成采集卡的設置后,就可以進行采集和監(jiān)控等工作。
2 系統(tǒng)軟件的實現
下面將結合實例來介紹LabVIEW與MATLAB混合編程在天線測試過程中的具體應用。
2.1 LabVIEW與MATLAB的接口實現
LabVIEW已提供了MATLAB Script節(jié)點來調用MATLAB語言開發(fā)的算法,這實際上就是通過Activex控件與MATLAB Server進行通信,用該方法實現它們的混合編程簡單實用,但是不能脫離MATLAB的環(huán)境,而只是將它在后臺執(zhí)行,因此十分不利于獨立應用程序的開發(fā)。相對于此,有3種所謂無縫集成的方法即COM組件法、中間文件傳遞法以及VC++參數類型轉化法。在本系統(tǒng)中,基于MATLAB平臺,根據使用要求的不同,在通道監(jiān)視中采用COM組什法,在測量驗證中利用了 MATLAB Script節(jié)點。MATLABScript節(jié)點的調用十分簡單,不再贅述,這里只簡要介紹COM組件法。使用MATLAB的MATLAB Builderfor COM創(chuàng)建COM組件非常簡單,只要創(chuàng)建工程、管理M文件和MEX文件、編譯生成組件、打包和發(fā)布組件4個步驟。在MATLAB Builder for COM中創(chuàng)建對象(object)后,加入編寫好的M文件,編譯后生成一個dll文件(如test_1_0.dll)。然后在LabVIEW 中選擇自動化引用(Automation Refnum)控制量,再從對象列表中選擇自己生成的test 1.0 Type Library Version 1.0,這樣該dll文件就添加到LabVIEW程序中。為簡化訪問自動化服務器的過程,LabVIEW提供了一組與組件操作相關的子VI(虛擬儀器),其中Automation Open打開一個與COM對象相連的Refnum,然后Refnum能夠傳遞給其他節(jié)點。值得注意的是,LabVIEW程序員必須清楚COM對象所返回的數據類型,如果選擇了錯誤的數據類型,LabVIEW將反饋錯誤的信息。下面分別對測試過程中幾個設計實例進行介紹。
2.2 通道監(jiān)視
由于整個系統(tǒng)由多個通道構成,為了保證在校正過程中各個通道處于正常工作狀態(tài),在校正開始前需要對通道進行檢查。同時,由于本系統(tǒng)工作頻帶位于民用通信頻帶內,為了避免其對校正過程的影響,也需要對外界電磁信號進行臨視。因此,通道監(jiān)視是確保校正順利進行的重要一步。
圖2是通道監(jiān)視VI的前面板界面。圖中使用了Dialog Tab Control控件,從而可以在多通道同時監(jiān)控與單通道觀測間切換。在該VI中,除了可以直觀監(jiān)視各個通道是否正常工作外,還可以測量、比較各個通道功率增益的差異,并完成對通道時域信號幅度、I/Q信號正交度等信息的監(jiān)控。
圖3是通道監(jiān)視Ⅵ的框圖。圖中調用了COM組件對象,它完成的主要任務是將采集卡輸出的多個通道串行數據流按通道進行分組,并根據需要進行數制轉換和數據分析等工作,這些功能提高了程序運行速度,并大大簡化甚至完成了一些LabVIEW很難完成的任務。與調用MATLAB Script節(jié)點相比,COM組件法具有運行速度更快、內存管理更好和運行穩(wěn)定等優(yōu)點。
2.3 數據采集和測量驗證
數據采集是測試過程中最基本、最重要的環(huán)節(jié),其前面板見圖4。
在數據采集VI中不但可以控制采集的起止,還可通過在前面板修改參數控制采集數據的長度,從幾十kHz到幾十MHz都可以實現連續(xù)采集。
由于天線測試尤其是遠場測試必須到合適的環(huán)境中才能完成,所以在完成天線陣列的校正后,除了仔細分析結果外還希望能夠驗證一下測試的結果。因此,在用校正系數進行補償后采用DBF(數字波束合成)技術在空間實時形成同時多波束,以遠場輻射源為目標,用比幅法進行了波瓣實時測試和測角性能驗證,其結果令人滿意。前面板見圖5。
在該VI采用了MATLAB Script節(jié)點,這是因為,雖然采用MATLAB Script節(jié)點不能脫離MATLAB環(huán)境,要在后臺肩動MATLAB,不利于獨立應用程序的開發(fā),但是根據實際情況的不同,MATLAB Script節(jié)點有時顯得更為方便和實用。在本例中,一方面,實時性已不是我們考慮的最重要因素,另一方面,在調試過程中可以在MATLAB Script節(jié)點中方便地修改MATLAB程序,而不必像調用COM組件那樣反復進行編譯,而且在測試過程中不僅需要測量的最終結果,一些中間變量也是我們感興趣的。這時通過查看在后臺運行的MATLAB上作空間就可以方便地看到這些數據,而這在調用COM組件法中是無法或者不方便實現的。
3 結束語
通過以上幾個主要程序和其他一些輔助程序,完成了在天線測試過程巾從通道監(jiān)視、數據采集到最后驗證的完整過程。本系統(tǒng)充分利用了LabVIEW在軟件化測量編程、數據采集和MATLAB在數據處理方面的優(yōu)勢,通過混合編程將兩者有效、合理地結合,并經過了實踐的驗證。