文/李靜 霍利英
隨著計算機技術快速發展,射頻網絡自動化測試平臺的建設越來越普遍。關于自動測試方面的研究很多,但是對于通過自動測試系統采集后的數據處理方面,鮮有指導性的資料可參考。
通常射頻網絡用來描述大型多端口射頻組件或系統,往往可以是單件多端口,或者是多個單件級聯而成的網絡,用來實現雷達信號的按需分配或合成,這樣大型的射頻網絡測試便會涉及很多的數據需要分析。
以一分N功分器為例,測試順序一般是總口連接矢量網絡分析儀(以下簡稱矢網)一端不動,矢網另一端口依次連接每個分口,實現測試N個分口的指標。每次連接一個分口,從理論層面可視為一次“二端口網絡”測試,如圖1所示。此時其他分口均連接匹配負載,儀表僅體現總口XS0到分口XS1之間的能量傳輸關系和信號反射情況。根據二端口網絡S參數矩陣可知,需要測試“S11、S12、S21、S22”四個參數,對應了“總口駐波、幅度、相位、分口駐波”指標,共測試N組。每組數據的每個參數按照設計要求需采集頻段內201個點,從而獲得接近真實測試曲線的數據。由此可見,測試一個一分N功分器,最終產生的數據量是N*4*201。
二端口網絡S參數矩陣如下面公式所示:

判斷分析一個射頻網絡性能是否滿足使用要求,需要對測試結果進行判斷和處理。駐波較直觀,比較大小即可。幅度和相位通常有加權,需要與理論值進行比較,頻段內的起伏及同頻點的一致性需要計算。如何快速將數據進行處理,找出異常點及時修正,對于射頻網絡的調試測試而言,問題就顯得很突出。
以某綜合射頻網絡測試為例,一件被測件,程控儀表采集的數據有162個端口,每個端口產生4種不同后綴名的文件,每個批次有8件,那么一個批次就有5184個文件需要分析處理,而且每個文件內包含201個頻點的指標。這么大的數據量進行人工分析是不現實的,必須利用軟件來處理、分析、提取相關數據信息。這種問題在大型射頻網絡測試中普遍存在,如何找到一種相對簡單靈活又能普遍推廣于各類型射頻網絡測試的數據處理方式,是本文主要解決的問題。
基于數據采集卡和矢網建立的自動測試平臺的測試軟件是用C#開發的,我們知道其并不善于用來做數據處理和分析。那么我們很容易想到簡單實用的辦公軟件Excel,然而還面臨兩個問題:一是幾千份測試文件如何根據批次、類型等快速分類導入Excel文件;二是導入Excel文件后,如何對這些數據進行計算和分析并生成固定格式報表。本文介紹的利用Windows的批處理功能和Excel內嵌的VBA技術相結合完美地解決了這些問題。

圖1:等效“二端口網絡測試”示意圖

圖2:軟件框架圖

圖3:Windows批處理語句示意圖

圖4:VBA程序設計開發環境界面
批處理腳本,是一種簡化的腳本語言,擴展名為bat,應用于DOS和Windows系統中。目前比較常見的批處理包含兩類:DOS批處理和PS批處理。本文則是使用DOS批處理,它是基于DOS命令的,用來自動地批量地執行DOS命令以實現特定操作的腳本。同時也需要使用if、for、goto等命令控制程式的運行以解決更復雜的情況,如同C、Basic等高級語言一樣,最終達到對某對象進行批量的處理的目的。
VBA(Visual Basic for Applications) 是Visual Basic的一種宏語言,是微軟開發出來在其桌面應用程序中執行通用的自動化(OLE)任務的編程語言。主要能用來擴展Windows的應用程序功能,也可說是一種應用程式視覺化的Basic腳本。它是應用程序開發語言VB子集, 在結構構成上,兩者相似度很高,但仍存在的區別:
(1)VB是適用于標準應用程序的創建上,而VBA則是促使已有應用程序的自動化發展;
(2)VB的獨立性較強,并且有自己的開發環境,而對于VBA來說,它的運行就必須要在Office辦公環境下獨立進行;
(3)上述所說的VBA獨立運行的限制性,它可以利用運行平臺的功能來進一步的強化自身使開發周期簡化縮短,而這是VB不具備的。VBA提供了面向對象的程序設計方法,易于學習掌握,使用宏記錄器記錄用戶的各種操作并將其轉換為VBA程序代碼,在這些代碼的作用下可以方便用戶的各種操作。
為滿足多頻段超寬帶綜合網絡測試、分析、提取數據的要求, 自動化平臺的軟件劃分為三個部分,分別包含C#測試程序、Windows批處理程序和Excel數據處理程序,圖2給出了軟件設計框架圖。
本系統的測試程序是在Windows XP操作系統下,以Visual C#作為開發平臺開發的,實現了矢量網絡分析儀和計算機之間的交互控制從而達到采集被測網絡的S參數的目的。在對矢量網絡分析儀進行交互和控制之前必須安裝I/O庫。I/O庫是一些函數集合,這些函數是用來對設備發送命令和接收設備數據的。SCPI、IO庫函數和編程語言一起使用,就可以實現矢量網絡分析儀的遠程控制。
經過測試軟件的數據采集,在某路徑下會生成幅度格式為*a.amp、相位格式為*p.pha、總口駐波格式為*w1.amp、分口駐波格式為*w2.pha多個批次的四種文件。為了將測試文件根據需求快速導入Excel文件,我們先利用Windows 批處理方式將這些測試文件按類別把多個批次文件進行合并,最終生成幅度am.txt、相位ph.txt、總口駐波S11.txt和分口駐波S22.txt文件,其中每個文件含有多個批次的數據信息。
在批次處理.bat程序里我們使用for語句來實現數據整合的功能,具體實現語句如圖3所示。
在數據處理和報表生成部分,我們選擇了具有強大功能優勢的Excel,運用VBA技術,設計Excel模板,使用VBA編寫自定義模塊。在編寫宏代碼之前,需要將Excel文件另存為啟用宏的工作薄。在Excel 菜單中選擇“工具->宏->Visual Basic編輯器”,然后打開VB編輯器界面,它是VBA 程序設計的開發環境,此時即可在這里進行代碼的編寫以及對話框的設計等,本項目中包含了五個工作表和七個模塊,如圖4所示。
以幅度工作表為例,在幅度工作表中添加一個命令按鈕,把這個按鈕指定給宏,再插入模塊1并在其中用VBA 編寫宏代碼,實現點擊按鈕會彈出對話框,在對話框中選擇am.txt幅度文件所在路徑,從而根據特定要求和格式分揀讀取幅度am.txt文件內數據。下面僅給出部分關鍵語句,在編制宏代碼中首先通過運用Split()語句,實現將am.txt幅度文件按照特定的格式寫入Excel文件,這樣使不同頻段的數據按照射頻網絡端口號一一得以歸類,以便后面的數據提取可以順利進行,代碼如下:



圖5:數據分析顯示界面

圖6:Excel檢驗報表模板
在原始數據按照既定格式讀入Excel文件后,我們通過編寫宏代碼計算被測件損耗、幅度起伏和一致性等各項指標,并實時給出合格與否的判斷,對于有問題的地方使用顏色提示,能快速給測試工作指明下一步工作方向,提高工作效率,圖5是數據分析顯示界面。
下面給出了計算頻帶內幅度起伏、判斷超差后改變顏色、統計個數等操作語句示例,代碼如下:


對于相位工作表、總口駐波工作表、分口駐波工作表的宏代碼編寫類似于上述介紹的幅度工作表的宏代碼編寫,此處不再贅述。
最后,經過對原始被測件的幅度、相位、駐波等數據的處理,提取有效的調試數據,生成直觀可靠的Excel檢驗報表,如圖6所示。
基于VBA編寫的宏代碼程序采用自定義模塊,效率高、易修改,能廣泛應用于多種形式射頻網絡的數據處理和分析,數據量大小并無限制,調試測試人員可根據需要配合測試軟件進行靈活使用,極大地提高了工作效率。
本文介紹了一種基于Windows批處理和VBA技術相結合的方式快速處理和分析射頻網絡測試數據的方法,解決了大型射頻網絡測試產生的大量數據處理的問題。隨著射頻網絡越來越高度集成,調試測試工作的智能化是未來技術發展的趨勢。
本文中提到數據處理方法已在實際的工作中投入使用,已應用于多型雷達的射頻網絡及微波器件的調試、測試與驗收。該系統具有開發難度小、周期短、功能實用的特點,也有利于擴展應用。