文/李靜 霍利英
隨著計(jì)算機(jī)技術(shù)快速發(fā)展,射頻網(wǎng)絡(luò)自動(dòng)化測(cè)試平臺(tái)的建設(shè)越來(lái)越普遍。關(guān)于自動(dòng)測(cè)試方面的研究很多,但是對(duì)于通過(guò)自動(dòng)測(cè)試系統(tǒng)采集后的數(shù)據(jù)處理方面,鮮有指導(dǎo)性的資料可參考。
通常射頻網(wǎng)絡(luò)用來(lái)描述大型多端口射頻組件或系統(tǒng),往往可以是單件多端口,或者是多個(gè)單件級(jí)聯(lián)而成的網(wǎng)絡(luò),用來(lái)實(shí)現(xiàn)雷達(dá)信號(hào)的按需分配或合成,這樣大型的射頻網(wǎng)絡(luò)測(cè)試便會(huì)涉及很多的數(shù)據(jù)需要分析。
以一分N功分器為例,測(cè)試順序一般是總口連接矢量網(wǎng)絡(luò)分析儀(以下簡(jiǎn)稱(chēng)矢網(wǎng))一端不動(dòng),矢網(wǎng)另一端口依次連接每個(gè)分口,實(shí)現(xiàn)測(cè)試N個(gè)分口的指標(biāo)。每次連接一個(gè)分口,從理論層面可視為一次“二端口網(wǎng)絡(luò)”測(cè)試,如圖1所示。此時(shí)其他分口均連接匹配負(fù)載,儀表僅體現(xiàn)總口XS0到分口XS1之間的能量傳輸關(guān)系和信號(hào)反射情況。根據(jù)二端口網(wǎng)絡(luò)S參數(shù)矩陣可知,需要測(cè)試“S11、S12、S21、S22”四個(gè)參數(shù),對(duì)應(yīng)了“總口駐波、幅度、相位、分口駐波”指標(biāo),共測(cè)試N組。每組數(shù)據(jù)的每個(gè)參數(shù)按照設(shè)計(jì)要求需采集頻段內(nèi)201個(gè)點(diǎn),從而獲得接近真實(shí)測(cè)試曲線的數(shù)據(jù)。由此可見(jiàn),測(cè)試一個(gè)一分N功分器,最終產(chǎn)生的數(shù)據(jù)量是N*4*201。
二端口網(wǎng)絡(luò)S參數(shù)矩陣如下面公式所示:
判斷分析一個(gè)射頻網(wǎng)絡(luò)性能是否滿足使用要求,需要對(duì)測(cè)試結(jié)果進(jìn)行判斷和處理。駐波較直觀,比較大小即可。幅度和相位通常有加權(quán),需要與理論值進(jìn)行比較,頻段內(nèi)的起伏及同頻點(diǎn)的一致性需要計(jì)算。如何快速將數(shù)據(jù)進(jìn)行處理,找出異常點(diǎn)及時(shí)修正,對(duì)于射頻網(wǎng)絡(luò)的調(diào)試測(cè)試而言,問(wèn)題就顯得很突出。
以某綜合射頻網(wǎng)絡(luò)測(cè)試為例,一件被測(cè)件,程控儀表采集的數(shù)據(jù)有162個(gè)端口,每個(gè)端口產(chǎn)生4種不同后綴名的文件,每個(gè)批次有8件,那么一個(gè)批次就有5184個(gè)文件需要分析處理,而且每個(gè)文件內(nèi)包含201個(gè)頻點(diǎn)的指標(biāo)。這么大的數(shù)據(jù)量進(jìn)行人工分析是不現(xiàn)實(shí)的,必須利用軟件來(lái)處理、分析、提取相關(guān)數(shù)據(jù)信息。這種問(wèn)題在大型射頻網(wǎng)絡(luò)測(cè)試中普遍存在,如何找到一種相對(duì)簡(jiǎn)單靈活又能普遍推廣于各類(lèi)型射頻網(wǎng)絡(luò)測(cè)試的數(shù)據(jù)處理方式,是本文主要解決的問(wèn)題。
基于數(shù)據(jù)采集卡和矢網(wǎng)建立的自動(dòng)測(cè)試平臺(tái)的測(cè)試軟件是用C#開(kāi)發(fā)的,我們知道其并不善于用來(lái)做數(shù)據(jù)處理和分析。那么我們很容易想到簡(jiǎn)單實(shí)用的辦公軟件Excel,然而還面臨兩個(gè)問(wèn)題:一是幾千份測(cè)試文件如何根據(jù)批次、類(lèi)型等快速分類(lèi)導(dǎo)入Excel文件;二是導(dǎo)入Excel文件后,如何對(duì)這些數(shù)據(jù)進(jìn)行計(jì)算和分析并生成固定格式報(bào)表。本文介紹的利用Windows的批處理功能和Excel內(nèi)嵌的VBA技術(shù)相結(jié)合完美地解決了這些問(wèn)題。
圖1:等效“二端口網(wǎng)絡(luò)測(cè)試”示意圖
圖2:軟件框架圖
圖3:Windows批處理語(yǔ)句示意圖
圖4:VBA程序設(shè)計(jì)開(kāi)發(fā)環(huán)境界面
批處理腳本,是一種簡(jiǎn)化的腳本語(yǔ)言,擴(kuò)展名為bat,應(yīng)用于DOS和Windows系統(tǒng)中。目前比較常見(jiàn)的批處理包含兩類(lèi):DOS批處理和PS批處理。本文則是使用DOS批處理,它是基于DOS命令的,用來(lái)自動(dòng)地批量地執(zhí)行DOS命令以實(shí)現(xiàn)特定操作的腳本。同時(shí)也需要使用if、for、goto等命令控制程式的運(yùn)行以解決更復(fù)雜的情況,如同C、Basic等高級(jí)語(yǔ)言一樣,最終達(dá)到對(duì)某對(duì)象進(jìn)行批量的處理的目的。
VBA(Visual Basic for Applications) 是Visual Basic的一種宏語(yǔ)言,是微軟開(kāi)發(fā)出來(lái)在其桌面應(yīng)用程序中執(zhí)行通用的自動(dòng)化(OLE)任務(wù)的編程語(yǔ)言。主要能用來(lái)擴(kuò)展Windows的應(yīng)用程序功能,也可說(shuō)是一種應(yīng)用程式視覺(jué)化的Basic腳本。它是應(yīng)用程序開(kāi)發(fā)語(yǔ)言VB子集, 在結(jié)構(gòu)構(gòu)成上,兩者相似度很高,但仍存在的區(qū)別:
(1)VB是適用于標(biāo)準(zhǔn)應(yīng)用程序的創(chuàng)建上,而VBA則是促使已有應(yīng)用程序的自動(dòng)化發(fā)展;
(2)VB的獨(dú)立性較強(qiáng),并且有自己的開(kāi)發(fā)環(huán)境,而對(duì)于VBA來(lái)說(shuō),它的運(yùn)行就必須要在Office辦公環(huán)境下獨(dú)立進(jìn)行;
(3)上述所說(shuō)的VBA獨(dú)立運(yùn)行的限制性,它可以利用運(yùn)行平臺(tái)的功能來(lái)進(jìn)一步的強(qiáng)化自身使開(kāi)發(fā)周期簡(jiǎn)化縮短,而這是VB不具備的。VBA提供了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,易于學(xué)習(xí)掌握,使用宏記錄器記錄用戶的各種操作并將其轉(zhuǎn)換為VBA程序代碼,在這些代碼的作用下可以方便用戶的各種操作。
為滿足多頻段超寬帶綜合網(wǎng)絡(luò)測(cè)試、分析、提取數(shù)據(jù)的要求, 自動(dòng)化平臺(tái)的軟件劃分為三個(gè)部分,分別包含C#測(cè)試程序、Windows批處理程序和Excel數(shù)據(jù)處理程序,圖2給出了軟件設(shè)計(jì)框架圖。
本系統(tǒng)的測(cè)試程序是在Windows XP操作系統(tǒng)下,以Visual C#作為開(kāi)發(fā)平臺(tái)開(kāi)發(fā)的,實(shí)現(xiàn)了矢量網(wǎng)絡(luò)分析儀和計(jì)算機(jī)之間的交互控制從而達(dá)到采集被測(cè)網(wǎng)絡(luò)的S參數(shù)的目的。在對(duì)矢量網(wǎng)絡(luò)分析儀進(jìn)行交互和控制之前必須安裝I/O庫(kù)。I/O庫(kù)是一些函數(shù)集合,這些函數(shù)是用來(lái)對(duì)設(shè)備發(fā)送命令和接收設(shè)備數(shù)據(jù)的。SCPI、IO庫(kù)函數(shù)和編程語(yǔ)言一起使用,就可以實(shí)現(xiàn)矢量網(wǎng)絡(luò)分析儀的遠(yuǎn)程控制。
經(jīng)過(guò)測(cè)試軟件的數(shù)據(jù)采集,在某路徑下會(huì)生成幅度格式為*a.amp、相位格式為*p.pha、總口駐波格式為*w1.amp、分口駐波格式為*w2.pha多個(gè)批次的四種文件。為了將測(cè)試文件根據(jù)需求快速導(dǎo)入Excel文件,我們先利用Windows 批處理方式將這些測(cè)試文件按類(lèi)別把多個(gè)批次文件進(jìn)行合并,最終生成幅度am.txt、相位ph.txt、總口駐波S11.txt和分口駐波S22.txt文件,其中每個(gè)文件含有多個(gè)批次的數(shù)據(jù)信息。
在批次處理.bat程序里我們使用for語(yǔ)句來(lái)實(shí)現(xiàn)數(shù)據(jù)整合的功能,具體實(shí)現(xiàn)語(yǔ)句如圖3所示。
在數(shù)據(jù)處理和報(bào)表生成部分,我們選擇了具有強(qiáng)大功能優(yōu)勢(shì)的Excel,運(yùn)用VBA技術(shù),設(shè)計(jì)Excel模板,使用VBA編寫(xiě)自定義模塊。在編寫(xiě)宏代碼之前,需要將Excel文件另存為啟用宏的工作薄。在Excel 菜單中選擇“工具->宏->Visual Basic編輯器”,然后打開(kāi)VB編輯器界面,它是VBA 程序設(shè)計(jì)的開(kāi)發(fā)環(huán)境,此時(shí)即可在這里進(jìn)行代碼的編寫(xiě)以及對(duì)話框的設(shè)計(jì)等,本項(xiàng)目中包含了五個(gè)工作表和七個(gè)模塊,如圖4所示。
以幅度工作表為例,在幅度工作表中添加一個(gè)命令按鈕,把這個(gè)按鈕指定給宏,再插入模塊1并在其中用VBA 編寫(xiě)宏代碼,實(shí)現(xiàn)點(diǎn)擊按鈕會(huì)彈出對(duì)話框,在對(duì)話框中選擇am.txt幅度文件所在路徑,從而根據(jù)特定要求和格式分揀讀取幅度am.txt文件內(nèi)數(shù)據(jù)。下面僅給出部分關(guān)鍵語(yǔ)句,在編制宏代碼中首先通過(guò)運(yùn)用Split()語(yǔ)句,實(shí)現(xiàn)將am.txt幅度文件按照特定的格式寫(xiě)入Excel文件,這樣使不同頻段的數(shù)據(jù)按照射頻網(wǎng)絡(luò)端口號(hào)一一得以歸類(lèi),以便后面的數(shù)據(jù)提取可以順利進(jìn)行,代碼如下:
圖5:數(shù)據(jù)分析顯示界面
圖6:Excel檢驗(yàn)報(bào)表模板
在原始數(shù)據(jù)按照既定格式讀入Excel文件后,我們通過(guò)編寫(xiě)宏代碼計(jì)算被測(cè)件損耗、幅度起伏和一致性等各項(xiàng)指標(biāo),并實(shí)時(shí)給出合格與否的判斷,對(duì)于有問(wèn)題的地方使用顏色提示,能快速給測(cè)試工作指明下一步工作方向,提高工作效率,圖5是數(shù)據(jù)分析顯示界面。
下面給出了計(jì)算頻帶內(nèi)幅度起伏、判斷超差后改變顏色、統(tǒng)計(jì)個(gè)數(shù)等操作語(yǔ)句示例,代碼如下:
對(duì)于相位工作表、總口駐波工作表、分口駐波工作表的宏代碼編寫(xiě)類(lèi)似于上述介紹的幅度工作表的宏代碼編寫(xiě),此處不再贅述。
最后,經(jīng)過(guò)對(duì)原始被測(cè)件的幅度、相位、駐波等數(shù)據(jù)的處理,提取有效的調(diào)試數(shù)據(jù),生成直觀可靠的Excel檢驗(yàn)報(bào)表,如圖6所示。
基于VBA編寫(xiě)的宏代碼程序采用自定義模塊,效率高、易修改,能廣泛應(yīng)用于多種形式射頻網(wǎng)絡(luò)的數(shù)據(jù)處理和分析,數(shù)據(jù)量大小并無(wú)限制,調(diào)試測(cè)試人員可根據(jù)需要配合測(cè)試軟件進(jìn)行靈活使用,極大地提高了工作效率。
本文介紹了一種基于Windows批處理和VBA技術(shù)相結(jié)合的方式快速處理和分析射頻網(wǎng)絡(luò)測(cè)試數(shù)據(jù)的方法,解決了大型射頻網(wǎng)絡(luò)測(cè)試產(chǎn)生的大量數(shù)據(jù)處理的問(wèn)題。隨著射頻網(wǎng)絡(luò)越來(lái)越高度集成,調(diào)試測(cè)試工作的智能化是未來(lái)技術(shù)發(fā)展的趨勢(shì)。
本文中提到數(shù)據(jù)處理方法已在實(shí)際的工作中投入使用,已應(yīng)用于多型雷達(dá)的射頻網(wǎng)絡(luò)及微波器件的調(diào)試、測(cè)試與驗(yàn)收。該系統(tǒng)具有開(kāi)發(fā)難度小、周期短、功能實(shí)用的特點(diǎn),也有利于擴(kuò)展應(yīng)用。