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