文獻標識碼: A
文章編號: 0258-7998(2014)07-0119-03
軟件無線電和虛擬儀表技術的出現使得多種儀器平臺虛擬化成為現實,利用計算機技術,結合軟件的強大功能為軟件無線電和虛擬儀表提供了廣闊前景[1]。在軟件無線電系統開發中,對基帶數據進行實時信號分析和處理都采用了虛擬儀表技術。在發達國家虛擬儀表技術非常先進,虛擬儀表產品廣泛地應用在工業控制、通信、自動化等各種領域,擁有成熟的商業軟件產品,其中最著名的是NI公司的LabVIEW平臺[2];但是在國內,還處于傳統測試儀器與計算機脫離的狀態,投入研究和使用的虛擬儀表主要分布在高校并且都依托專用平臺LabVIEW。參考文獻[1-5]也都采用LabVIEW來實現各自的設計。但是它只能在特定的使用環境中運行,可移植性很差,無法與其他設備相嵌[3-4]。
本文針對軟件無線電的基帶信號處理部分,結合虛擬儀表技術,在通用平臺VC++6.0上實現了專門針對無線通信信號的虛擬頻譜儀,為軟件無線電的測量提供了強大的軟件平臺支持。與真實頻譜儀相比,本設計的虛擬頻譜儀操作簡單易學,且功能可以根據用戶需求進行擴展,靈活性很強。
1 虛擬頻譜儀設計
1.1 軟件無線電虛擬頻譜儀框架
軟件無線電虛擬頻譜儀框架結構如圖1所示。軟件無線電體系結構主要劃分為射頻前端(含天線)、高速模數/數模轉換器以及數字信號處理單元[5]三大部分。(1)射頻(RF)是軟件無線電不可替代的硬件入口,主要功能是完成對空中信號的獲取,以及信號的放大、濾波和混頻;(2)中頻主要實現對模擬信號與數字信號的轉換、數字信號的預處理,以及完成中頻與基帶的數據交互;(3)數字信號處理單元主要完成對信號的接收、分析和處理。在信號分析處理中,分析儀器是不可或缺的設備,而傳統的儀器儀表功能固定,價格昂貴,因而在軟件無線電系統中,對數字處理單元部分進行軟件編程實現是本文設計的核心內容。
1.2 軟件功能模塊設計
根據軟件無線電虛擬頻譜儀架構,本文的虛擬頻譜儀軟件功能模塊設計如圖2所示。
數據輸入部分分為PCIe輸入和文件輸入兩種方式。數據存儲部分負責對數據進行存儲操作,以.txt格式將數據保存到文本中。命令控制部分負責對軟件無線電系統前端進行控制。數據處理及分析部分包括窗函數選擇和FFT變換。交互界面部分模仿真實儀器的工作面板,其功能包括:提供用戶直觀的圖形顯示;在顯示窗口中顯示信號的參數信息,如幅值、頻率、分辨率等;進行參數設置以及圖形顯示變換等。
2 虛擬頻譜儀實現
根據虛擬頻譜儀的軟件功能設計,具體的實現過程如下所述:各模塊經過系統初始化后,開始根據不同數據輸入方式分別進行處理,并顯示波形。
2.1 系統初始化
虛擬頻譜儀軟件通過窗口分割界面,設計了3個視圖窗口:波形顯示窗口、頻譜顯示窗口和操作窗口。為了能方便地改變波形頻譜的顯示方式,在軟件界面中添加了一個工具條。程序中菜單頁面主要分為菜單欄上的設置按鈕加載和波形、頻譜視圖中響應鼠標右擊的頁面加載。
2.2 命令控制
命令控制的主要目的是保證FPGA與上位機的實時通信。本軟件采用網口通信方式,以實現FPGA與上位機的交互和命令控制。
通過系統初始化、參數設置、PCIe初始化等步驟后,點擊操作視圖上的“Connection”按鈕,在消息響應函數中進行套接字的初始化,連接FPGA服務器端。首先調用函數socket()創建TCP套接字,并設置地址結構體SOCKADDR_IN,其中結構體成員變量中需要設置服務器端的IP地址和交互的端口號。然后再調用connect函數請求鏈接。當成功鏈接到FPGA后,程序中調用SetTimer函數開啟定時器,系統會每隔一定時間發送WM_TIMER消息,在消息響應函數OnTimer中進行數據的發送與接收。
2.3 數據接收
數據接收過程主要包括參數設置、數據接收方式選擇以及數據提取。圖3為數據接收流程圖。
由于串口、網口、USB等接口無法滿足移動信號的高速率傳輸要求,故本文采用PCIe接口對數據進行接收。其中,數據接收采用PCIe總線傳送,在參數配置完成后,首先對PCIe設備進行初始化,成功打開PCIe設備后再準備數據接收。在FPGA端,信號經過數字下變頻后分為I、Q兩路信號。此外,根據單個數據的位寬為16 bit,定義了short型變量real和image來分別提取I路和Q路數據。然后,根據上位機命令控制接收相應的數據,并對其進行處理與分析,以最終實現對時域和頻域波形圖的顯示。
2.4 數據存儲
數據存儲也是虛擬頻譜儀軟件的主要功能之一,主要用于保存用戶接收到的有用數據,并為后續工作提供實時數據源,且對研究無線通信信號的基帶數據特征具有很大幫助。
2.5 數據處理與分析
該模塊的主要功能是對軟件輸入信號進行數據處理與相應分析。該軟件目前采用了FFT信號處理方式,并同時使用加窗函數和重疊分段FFT優化頻譜顯示效果。此項功能主要在頻譜視圖類中處理實現,此方法在對實時數據進行頻譜分析時具有比較明顯的改善效果。而窗函數的設置選擇項進一步優化了頻譜圖。程序中主要加入了常用的矩形窗、三角窗、海明窗3個窗函數供用戶選擇。
2.6 圖形顯示
圖形顯示包括時域與頻域波形顯示。時域波形主要在具有示波器功能的CWaveformView類中實現;頻域的頻譜圖則在CFreSpectrumView類中進行處理。
圖形顯示的位置由視圖坐標系中的坐標值決定。為了能夠正確地將波形繪制在視圖中的網格坐標內,需要把波形數據值轉化為視圖坐標值,如圖4所示。
在圖4中,外方框區域為視圖區域,左上角為視圖區域的起始點(0,0),內方框為繪制的網格區域,左上角的視圖坐標起始點值為(lefttop_x,lefttop_y),右下角的視圖坐標值為(rightbottom_x, rightbottom_y),且視圖坐標值沿X軸、Y軸方向增大。程序中,在頻譜顯示時只顯示前N/2個點。
3 測試結果及分析
本文數據測試過程在軟件無線電硬件測試平臺上完成。 利用SMJ100A信號發生器生成了一個頻率為100 kHz的正弦信號,并以此為虛擬儀表軟件的輸入數據。然后用DS1102E示波器、FSL頻譜分析儀進行顯示,并與軟件產生的波形圖、頻譜圖進行對比,如圖5所示。其中圖5(a)、圖5(c)分別為真實儀器的時域與頻域顯示,圖5(b)、圖5(d)為本設計實現軟件對應的顯示圖。
圖6為參與測試的WCDMA信號在真實頻譜儀上的顯示結果。通過菜單欄下的設置功能選擇文件輸入項,顯示保存的WCDMA文本數據如圖7(a)所示;通過動態設置X、Y坐標, 對信號的局部波形進行放大,如圖7(b)所示。圖7(a)的時域參數顯示結果為min=-0.36 mV, max=21.29 mV;頻域參數顯示結果為min=-33.55 dBm, max=20.69 dBm,頻率分辨率為7 500.00 Hz。而圖8(b)的時域參數顯示結果為min=0.80 mV,max=19.78 mV;頻域顯示結果為min=-33.55 dBm,max=20.69 dBm,頻率分辨率為7 500.00 Hz。
圖8給出了通過PCIe和網口配置(傳送采樣率為5.12 MHz,FFT點數為16 384,設置無重復點,且選擇矩形窗)的TD-SCDMA基帶數據的波形頻譜圖。
在圖5中,圖5(a)為示波器顯示結果,其峰值約為40 mV,圖5(b)顯示結果峰值為43.20 mV;圖5(c)為示波器顯示結果,其峰值約為40 mV,圖5(d)顯示結果峰值為43.20 mV;圖5(c)顯示結果可知其信號頻率為100 kHz,在圖5(d)中顯示的結果為100 000.29 Hz。對比以上結果可知,本軟件測試精度約為±0.30 dB,完全符合頻譜儀的性能指標。
當為文本輸入時,對比圖6和圖7可知,本軟件可以正確顯示WCDMA信號,且能觀測其局部特征;當為PCIe輸入時,由圖8的顯示結果可知,其波形顯示結果與TD-SCDMA信號本身特征一致。綜合說明,本文設計的虛擬頻譜儀軟件能夠正確、穩定地顯示通信信號的波形。
與真實的頻譜儀相比,本設計的虛擬頻譜儀不僅能夠正確快速地顯示常用簡單波形,而且可以準確地接收和測量通信信號,測量精度為0.01 dB。與真實儀器相比,能夠直接接收實時數據,不需要中間處理過程就能顯示復雜的通信信號,大大減少了工程工作量。
本文設計并實現了一種基于軟件無線電的虛擬頻譜儀軟件,實現了對文件的讀取與數據存儲功能并對它們進行了頻譜分析。此外,通過對網口傳遞參數配置,利用PCIe接口對實時數據進行接收,并完成對波形、頻譜的正確、穩定顯示。測試結果表明,該軟件可以有效滿足軟件無線電在數字信號處理與分析模塊中的功能需求,并且在課題要求范圍內符合各個不同無線通信系統的實時接收數據需求,能夠完成測試要求。
參考文獻
[1] 張勇, 董浩斌. 基于STM32和LabVIEW的地震數據采集卡的設計[J].電子技術應用, 2012,38(10):72-74.
[2] 馬志飛, 張亞, 李波, 等. SLD 光源可靠性試驗數據采集系統設計[J]. 電子技術應用, 2013, 39(9): 96-98.
[3] 陳明星, 朱靈, 張龍,等. 基于LabVIEW的光纖傅里葉變換光譜儀數據處理技術[J]. 儀器儀表學報, 2010, 31(3):488-492.
[4] 程乃平, 席有猷, 趙陽. 基于Labwindows/CVI的虛擬頻譜分析儀設計[J]. 電子測量技術, 2009, 32(7):109-111.
[5] 何樂生.基于DDS算法的12導聯心電信號發生器設計[J].儀器儀表學報, 2010, 31(2):275-279.