?

通過Python 實現WiFi 測試數據分析

2020-05-27 12:15周春宇
通信電源技術 2020年6期
關鍵詞:測試數據控件直方圖

周春宇

(英華達(上海)科技有限公司,上海 201114)

0 引言

如今工程師、分析師在數據分析上面臨眾多挑戰,他們希望用最小的編程代價進行數據分析,Python 是滿足他們需要的一個利器。Python 是一種流行的通用編程語言,使用Python 可以寫出簡潔、易讀、缺陷少的代碼[1]。使用Python 對XML 格式的測試數據進行分析前,須先對XML 的數據結構進行分析,即分析XML中有哪些數據是需要獲取的。因為WiFi 工作在兩個頻率段2.4 GHz 和5 GHz,每個頻段有許多的信道,需要對獲取的數據按照信道來進行分類,對同信道的數據進行分析才有意義。此外,使用Qt Designer 制作一個GUI 程序界面,批量導入和解析測試數據,然后使用模塊matplotlib 對數據進行圖型分析。

1 解析XML 數據

1.1 分析XML 格式

通過分析WiFi 的XML 數據格式(見圖1),發現每個TestStep 節點包含頻率Freq,TestStep 下面的節點Meas 包含測項名稱POWER_AVG_DBM 和測試值Val,我們需要將測試值按照測試項目名稱和頻率獲取放入列表中。

1.2 獲取XML 數據

使用xml.dom.minidom 模塊來讀取XML,獲取需要的節點數據,相關代碼如下。

圖1 WiFi 的XML 數據格式

到此已經獲取POWER_AVG_DBM測試值的列表,其他的測試值依此方式獲取,將解析XML 數據的代碼存儲成模塊Traversal_xml_path,以便后續調用。

2 測試數據分類

下面對POWER_AVG_DBM 測試值按照信道進行分類,需要對每個頻點的測試項目撰寫一個獲取數據的函數,以獲取信道CH1 的POWER_AVG_DBM 為例,代碼如下。

函數最后返回一個名稱為tx_2412_0_power_list 的列表,信道CH1 測項POWER_AVG_DBM 的測試數據就存儲在這個列表中,其他的測試值依此方式分類,將實現測試數據分類的代碼存儲成模塊Test_Value,以便后續調用。

3 GUI 界面

本文使用Qt Designer來創建GUI界面。Qt Designer 可以用來創建主窗口、自定義窗口部件等用戶界面。這里創建一個Widget 窗口,然后在窗口上創建控 件Label、LineEdit、PushButton、ComboBox。Label是標簽,用來顯示文字,搭配其他控件使用,顯示控件的名稱;LineEdit 是單行文本編輯框,用于顯示已選擇測試數據文件夾的路徑;PushButton 是按鈕,點擊后實現被調用函數的功能;ComboBox 是下拉列表框,列表中編輯多個選項,使用時根據需求選擇列表中的某個選項[3]。最后創建成功的GUI 界面如圖2 所示。

圖2 創建成功的GUI 界面

窗口創建好后保存會生成一個.ui 的文件,使用pyuic5 可以把它轉化為python 的純代碼形式。新建一個bat 批處理文件,文件內編輯如下指令,運行后就會生成一個.py 的文件。

接下來對新生成的.py 文件,編寫控件需要實現的功能函數。

3.1 按鈕Select Path 功能

點擊這個按鈕后,會出現選擇存放數據的文件夾窗口,同時會把已選擇的文件夾的路徑顯示在文本編輯框內。

3.2 按鈕Load Data 功能

解析所選文件夾內的測試數據。

3.3 按鈕Calculate WiFi Chart 功能

將解析的XML 測試數據生成圖形,可以使用matplotlib 模塊來實現,這里以直方圖為例來進行分析。使用matplotlib 模塊前需先導入模塊,代碼是import matplotlib.pyplot as plt[2]。下面代碼中“chal”“chan”“test”分別為下拉列表框“Channel”“Chain”“TestItem”選擇的值。

3.4 信號槽

利用信號槽機制,將各個控件與事件函數連接起來。下面代碼是與按鈕相連接的函數名,按鈕被觸發時函數就被執行。

到此,整個GUI 界面及相應的功能都已經被實現。

4 生成直方圖

直接運行這個GUI 程序,選取數據路徑并進行數據解析,選取“Channel”“Chain”“TestItem”的值,點擊按鈕Calculate WiFi Chart,就會生成直方圖,如圖3 所示,到這里基本上實現了通過python 解析XML 測試數據進行圖形分析的要求。這里只是以直方圖為例進行說明,當然也可以使用matplotlib 模塊進行其他的圖形分析,如折線圖、散點圖等。

圖3 直方圖

5 結論

由于Python 結構簡單,代碼定義清晰,易維護,且Python 擁有豐富的庫,特別是matplotlib、pandas 等進行圖形分析和數據分析的庫,因此利用Python 對測試數據進行分析起到方便高效的作用。本文闡述了如何通過Python 對智能音響WiFi 的XML 測試數據,進行解析、分類、圖形分析等,所提及的方法對其他電子產品WiFi 測試數據的分析是很好的借鑒。

猜你喜歡
測試數據控件直方圖
符合差分隱私的流數據統計直方圖發布
基于.net的用戶定義驗證控件的應用分析
基于FPGA的直方圖均衡圖像增強算法設計及實現
用直方圖控制畫面影調
測試數據管理系統設計與實現
關于.net控件數組的探討
中考頻數分布直方圖題型展示
基于自適應粒子群優化算法的測試數據擴增方法
空間co-location挖掘模式在學生體能測試數據中的應用
影響《標準》測試數據真實性的因素及破解策略
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合