《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于LabVIEW的軟件無線電解調(diào)系統(tǒng)的設(shè)計(jì)
基于LabVIEW的軟件無線電解調(diào)系統(tǒng)的設(shè)計(jì)
2014年微型機(jī)與應(yīng)用第24期
劉正瓊,郝曉博
(合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230009)
摘要: 結(jié)合當(dāng)下流行的數(shù)據(jù)采集和虛擬儀器技術(shù),采用G語言和LabVIEW IDE對(duì)通信系統(tǒng)中的解調(diào)系統(tǒng)進(jìn)行了軟件無線電設(shè)計(jì)。對(duì)本地文件中已有的已調(diào)信號(hào)以及外部通用數(shù)據(jù)采集卡采集的調(diào)幅和調(diào)頻信號(hào)進(jìn)行解調(diào)和分析,對(duì)調(diào)頻信號(hào)的解調(diào)提出了一種軟件脈沖均值標(biāo)記濾波算法,該算法可以很好地實(shí)現(xiàn)調(diào)頻波的解調(diào)。本系統(tǒng)還可以對(duì)實(shí)時(shí)信號(hào)波形數(shù)據(jù)進(jìn)行保存、打印和對(duì)歷史信號(hào)的回放。該系統(tǒng)彰顯了數(shù)據(jù)采集技術(shù)和虛擬儀器技術(shù)在無線電領(lǐng)域的應(yīng)用優(yōu)越性。
Abstract:
Key words :

  摘  要: 結(jié)合當(dāng)下流行的數(shù)據(jù)采集和虛擬儀器技術(shù),采用G語言和LabVIEW IDE對(duì)通信系統(tǒng)中的解調(diào)系統(tǒng)進(jìn)行了軟件無線電設(shè)計(jì)。對(duì)本地文件中已有的已調(diào)信號(hào)以及外部通用數(shù)據(jù)采集卡采集的調(diào)幅和調(diào)頻信號(hào)進(jìn)行解調(diào)和分析,對(duì)調(diào)頻信號(hào)的解調(diào)提出了一種軟件脈沖均值標(biāo)記濾波算法,該算法可以很好地實(shí)現(xiàn)調(diào)頻波的解調(diào)。本系統(tǒng)還可以對(duì)實(shí)時(shí)信號(hào)波形數(shù)據(jù)進(jìn)行保存、打印和對(duì)歷史信號(hào)的回放。該系統(tǒng)彰顯了數(shù)據(jù)采集技術(shù)和虛擬儀器技術(shù)在無線電領(lǐng)域的應(yīng)用優(yōu)越性。

  關(guān)鍵詞: 數(shù)據(jù)采集;軟件無線電;LabVIEW;脈沖均值

0 引言

  隨著通信技術(shù)的飛速發(fā)展,以通用硬件和配套軟件為核心的軟件無線電技術(shù)應(yīng)運(yùn)而生。軟件的靈活性和可移植性大大地減小了通信系統(tǒng)的設(shè)計(jì)難度和開發(fā)成本,從而促使傳統(tǒng)的通信系統(tǒng)逐漸擺脫硬件的束縛,而更多地依靠軟件編程來實(shí)現(xiàn)硬件難以實(shí)現(xiàn)的功能。在軟件無線電通信接收系統(tǒng)中,數(shù)據(jù)的采集和處理是其關(guān)鍵技術(shù)。近些年來隨著計(jì)算機(jī)軟硬件的快速發(fā)展,虛擬儀器技術(shù)具有的精度高、通用性強(qiáng)、成本低廉等許多優(yōu)點(diǎn),使其在儀器控制和數(shù)據(jù)采集、分析、處理等領(lǐng)域得到了廣泛的應(yīng)用。虛擬儀器將大部分傳統(tǒng)的處理分析部分從硬件設(shè)計(jì)當(dāng)中脫離開來,它的興起可以大大縮短用戶軟件的開發(fā)周期,增加程序的可復(fù)用性和可完善性[1]。由NI公司開發(fā)的LabVIEW是虛擬儀器領(lǐng)域中最具有代表性的圖形化編程開發(fā)平臺(tái)[2],它與傳統(tǒng)文本語言的不同之處在于:傳統(tǒng)編程語言是用文本語言編程,而LabVIEW是用圖形化語言(G語言)編程[3]。LabVIEW程序主要由前面板、框圖程序、節(jié)點(diǎn)三部分構(gòu)成。節(jié)點(diǎn)包括圖標(biāo)、端口和連線,接線端口用于不同節(jié)點(diǎn)間數(shù)據(jù)傳遞。LabVIEW中子程序(在LabVIEW中稱為子VI)可以保存起來供其他函數(shù)調(diào)用,這使LabVIEW得以實(shí)現(xiàn)層次化、模塊化編程。它不僅避免了傳統(tǒng)開發(fā)語言的繁瑣性,還具有強(qiáng)大的測控功能平臺(tái)并可同時(shí)保持系統(tǒng)的靈活性[4]。本文結(jié)合當(dāng)下流行的虛擬儀器技術(shù),提出了一種基于LabVIEW的軟件無線電解調(diào)系統(tǒng)的設(shè)計(jì),并對(duì)其實(shí)現(xiàn)的關(guān)鍵技術(shù)進(jìn)行了深入的研究,最后給出了實(shí)現(xiàn)的測試系統(tǒng),并對(duì)其進(jìn)行了實(shí)驗(yàn)驗(yàn)證。

1 系統(tǒng)的總體方案


001.jpg

  完整的軟件無線電解調(diào)系統(tǒng)由硬件和軟件兩部分構(gòu)成,系統(tǒng)總體框圖如圖1所示。外部設(shè)備用于提供需要處理的信號(hào),采集卡主要完成外部信號(hào)的采集,驅(qū)動(dòng)通信程序主要實(shí)現(xiàn)采集卡的識(shí)別以及與LabVIEW之間的通信。虛擬儀器軟件平臺(tái)主要實(shí)現(xiàn)以下功能:(1)參數(shù)設(shè)置,參數(shù)包括采樣頻率、采樣點(diǎn)數(shù)、放大倍數(shù),需要解調(diào)的已調(diào)波的類型、已調(diào)波的來源,采用的濾波器的階數(shù)、類型等;(2)解調(diào)處理完成已調(diào)波的解調(diào),并顯示解調(diào)前后的波形;(3)對(duì)解調(diào)前后的波形進(jìn)行頻譜分析;(4)對(duì)已采集到的數(shù)據(jù)和處理后的數(shù)據(jù)進(jìn)行保存;(5)允許用戶通過TDMS查看器進(jìn)行對(duì)歷史記錄文件的查看;(6)通過LabVIEW的報(bào)表工具包來完成相關(guān)數(shù)據(jù)的打印。

2 實(shí)現(xiàn)的關(guān)鍵技術(shù)

  2.1 采集卡與LabVIEW通信

  LabVIEW提供了大量的數(shù)據(jù)采集子程序,但是這些子程序只支持NI公司提供的數(shù)據(jù)采集卡(DAQ),此類采集卡雖然性能優(yōu)良,但價(jià)格昂貴[5]。本文舍棄了NI公司的采集卡,選取小型、功能相對(duì)齊全完善、能滿足系統(tǒng)設(shè)計(jì)需求的USB集成普通采集卡。對(duì)于非NI公司的數(shù)據(jù)采集卡,要完成與LabVIEW的數(shù)據(jù)通信,可以通過調(diào)用動(dòng)態(tài)鏈接庫程序(DLL)來實(shí)現(xiàn)。動(dòng)態(tài)鏈接庫是在運(yùn)行時(shí)鏈接可執(zhí)行代碼和數(shù)據(jù)模塊,為進(jìn)程提供數(shù)據(jù)、代碼和資源,任何用到采集卡的程序均可共享使用該動(dòng)態(tài)鏈接庫的函數(shù)[6]。在LabVIEW中有自動(dòng)批量導(dǎo)入共享庫的工具,在“工具”—“導(dǎo)入”—“共享庫dll”中,開發(fā)人員可根據(jù)具體需要選擇要導(dǎo)入和封裝的函數(shù),LabVIEW自動(dòng)封裝工具會(huì)自動(dòng)將庫中函數(shù)的參數(shù)數(shù)據(jù)類型映射成LabVIEW的數(shù)據(jù)類型,但是在LabVIEW中是不支持指針類型的,LabVIEW自動(dòng)封裝工具會(huì)將庫中出現(xiàn)的指針封裝成雙精度的浮點(diǎn)型,這是錯(cuò)誤的。此時(shí)需手動(dòng)更改相關(guān)設(shè)置,本文以庫中的int AD_continu(int chan,int Num_Sample,int Rate_Sample,float*databuf)函數(shù)為例,它的返回參數(shù)數(shù)據(jù)類型為單精度浮點(diǎn)型數(shù)組指針,它指向了存放采集到的信號(hào)數(shù)據(jù)的內(nèi)存地址。在“控件類型”中可選擇其映射LabVIEW前面板的控件;“輸入輸出方式”中可配置其輸入輸出的許可性;“傳遞類型”中默認(rèn)的為指針傳遞,這里需要將其改成數(shù)組傳遞,這是非常重要的一個(gè)設(shè)置,這直接關(guān)系到能否成功地從采集卡中讀到數(shù)據(jù)。庫中函數(shù)封裝好以后,可以在函數(shù)選板的用戶中查看到,如圖2所示。

002.jpg

  2.2 軟件的設(shè)計(jì)思想

  本系統(tǒng)主要實(shí)現(xiàn)采集和處理分析兩大功能。如果采取單一的順序結(jié)構(gòu),就必須等數(shù)據(jù)采集完成后才能進(jìn)行處理和分析,等處理分析完成后才能進(jìn)行下次采集,影響系統(tǒng)的實(shí)時(shí)性,降低了系統(tǒng)的執(zhí)行效率,因此本系統(tǒng)采用了生產(chǎn)者-消費(fèi)者的模式。本系統(tǒng)中,生產(chǎn)者是采集,消費(fèi)者是處理和分析,在LabVIEW中通過采用隊(duì)列操作來完成這一模式。在生產(chǎn)者循環(huán)I中,不管通過什么渠道,每次循環(huán)采集到的數(shù)據(jù)都通過“入隊(duì)列”操作進(jìn)入隊(duì)列;在消費(fèi)者循環(huán)J中,從同一隊(duì)列中通過“出隊(duì)列”操作取出采集數(shù)據(jù)進(jìn)行各種處理。該模型如圖3所示。

003.jpg

  但是生產(chǎn)者的生產(chǎn)速度和消費(fèi)者的消費(fèi)速度是不相同的,如果在消費(fèi)者模塊中發(fā)現(xiàn)隊(duì)列中沒有可用數(shù)據(jù),有些VI就會(huì)報(bào)錯(cuò),如果將超時(shí)或者錯(cuò)誤輸出連線至消費(fèi)者循環(huán)的停止條件端子上,那么很可能消費(fèi)者循環(huán)就此徹底停止“消費(fèi)”。最壞的一種情況是,程序先執(zhí)行消費(fèi)者,后執(zhí)行生產(chǎn)者,那么一開始消費(fèi)者因?yàn)殛?duì)列沒有可用數(shù)據(jù)而徹底跳出循環(huán),而后生產(chǎn)者采集到的數(shù)據(jù)一次也不會(huì)被處理和分析,甚至到最后,隊(duì)列中積壓了大量的數(shù)據(jù)而沒有被“消費(fèi)銷毀”釋放內(nèi)存,而造成系統(tǒng)內(nèi)存崩潰。所以協(xié)調(diào)兩個(gè)循環(huán)間數(shù)據(jù)的共享顯得非常重要,尤其是在消費(fèi)者分支當(dāng)中。本文通過在消費(fèi)者分支當(dāng)中采用獲取“隊(duì)列狀態(tài)”來控制這一問題,如果隊(duì)列中沒有元素則不執(zhí)行任何程序但不允許結(jié)束“消費(fèi)”循環(huán),當(dāng)隊(duì)列不為空時(shí)才進(jìn)行相應(yīng)的處理。采集和處理的流程圖如圖4所示。

004.jpg

  2.3 解調(diào)算法的實(shí)現(xiàn)

  2.3.1 調(diào)頻波的解調(diào)算法

  對(duì)于調(diào)頻信號(hào),分為寬帶調(diào)頻(WBFM)和窄帶調(diào)頻(NBFM)兩大類,由于WBFM信號(hào)不像NBFM能分解成同相分量與正交分量之和,因此對(duì)于寬帶信號(hào)只能采用非相干解調(diào)方法,非相干解調(diào)方法不需要本地提供與發(fā)送端同頻同相的載波,這是它的優(yōu)點(diǎn)[7]。傳統(tǒng)的非相干解調(diào)硬件實(shí)現(xiàn)過程需要通過限幅放大、微分、半波整流、單穩(wěn)電路及低通濾波才可以實(shí)現(xiàn),可見電路比較復(fù)雜[8]。本文提出采用脈沖均值濾波法來實(shí)現(xiàn),該方法不需要經(jīng)過傳統(tǒng)的繁瑣步驟,只需要判斷FM信號(hào)當(dāng)前采樣點(diǎn)數(shù)據(jù)x(n)是不是滿足下面兩個(gè)條件即可快速地提取出脈沖序列,這兩個(gè)條件是:x(n)為正數(shù)和x(n-1)是負(fù)數(shù),這里需用到上次的采樣值x(n-1)。在LabVIEW的循環(huán)中通過開啟“移位寄存器”實(shí)現(xiàn)記錄x(n-1),如果兩個(gè)條件均滿足則此時(shí)刻標(biāo)記一個(gè)脈沖,否則不標(biāo)記。其框圖程序如圖5所示。循環(huán)邊框上的三角圖標(biāo)為“移位寄存器”,用來存儲(chǔ)上次循環(huán)的數(shù)據(jù)供下次循環(huán)使用?!耙莆患拇嫫鳌鼻昂筮B接的輸入輸出數(shù)據(jù)將會(huì)被LabVIEW自動(dòng)編譯為同址操作,即占用同一塊內(nèi)存。當(dāng)循環(huán)結(jié)束,輸入端數(shù)據(jù)的內(nèi)存會(huì)被自動(dòng)釋放并被輸出端數(shù)據(jù)占用。通過這樣的方式可顯式地告訴LabVIEW同址操作,以節(jié)省內(nèi)存。

005.jpg

  2.3.2 調(diào)幅波的解調(diào)算法

  調(diào)幅信號(hào)不論是DSB還是SSB,信號(hào)都可以用相干解調(diào)的方法來解調(diào)。接收到的調(diào)幅波與本地載波相乘后,在經(jīng)過低通濾波后即可得到原調(diào)制信號(hào)。調(diào)幅解調(diào)的VI如圖6所示。

006.jpg

3 系統(tǒng)的測試


007.jpg


  整個(gè)系統(tǒng)的主界面如圖7所示,包括參數(shù)設(shè)置、解調(diào)處理、解調(diào)分析、保存、查看歷史、打印6個(gè)選項(xiàng)卡,需要解調(diào)的信號(hào)既可以來自采集卡,又可以來自系統(tǒng)已有的信號(hào),既可以進(jìn)行實(shí)現(xiàn)調(diào)頻波的解調(diào),又可以實(shí)現(xiàn)調(diào)幅波的解調(diào)。從采集卡采集過來的調(diào)頻波經(jīng)過解調(diào)后的波形和頻譜分析如圖8和9所示,來自本地已有的DSB信號(hào)經(jīng)過解調(diào)后的波形如圖10所示。從測試的結(jié)果可以看出該系統(tǒng)可以很好地實(shí)現(xiàn)軟件無線電的功能。

4 結(jié)論

  本文研究了虛擬儀器技術(shù)在軟件無線電領(lǐng)域的應(yīng)用,采用LabVIEW圖形化語言的軟件開發(fā)平臺(tái),開發(fā)了一套軟件無線電解調(diào)系統(tǒng)。該系統(tǒng)不僅可以對(duì)本地文件中已有的已調(diào)信號(hào)和外部采集卡采集的已調(diào)信號(hào)進(jìn)行處理和分析,還可以對(duì)實(shí)時(shí)信號(hào)波形數(shù)據(jù)進(jìn)行保存、打印和對(duì)歷史信號(hào)的回放。實(shí)際測試彰顯了數(shù)據(jù)采集技術(shù)和虛擬儀器技術(shù)在軟件無線電領(lǐng)域的應(yīng)用優(yōu)越性,為軟件無線電的研究奠定了一定的基礎(chǔ)。

參考文獻(xiàn)

  [1] 向科峰.基于LabVIEW的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械管理開發(fā),2011,8(4):191-192.

  [2] 榮鑫.基于虛擬儀器的數(shù)據(jù)采集與處理系統(tǒng)設(shè)計(jì)[D].太原:中北大學(xué),2011.

  [3] 劉其和,李云明.LabVIEW虛擬儀器程序設(shè)計(jì)與應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2011.

  [4] 袁媛,李紹穩(wěn),汪偉偉,等.基于LabVIEW的虛擬儀器技術(shù)研究與應(yīng)用[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2005(4):6-9.

  [5] 姚麗,劉東東.基于LabVIEW的數(shù)據(jù)采集與信號(hào)處理系統(tǒng)設(shè)計(jì)[J].電子科技,2012,25(5):79-80.

  [6] 陳樹學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.

  [7] 樊昌信,曹麗娜.通信原理[M].北京:國防工業(yè)出版社,2010.

  [8] 陽昌漢,謝紅,宮芳.高頻電子線路[M].哈爾濱:哈爾濱工程大學(xué)出版社,2011.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。