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