用NI技術(shù)設(shè)計(jì)的OFDM發(fā)射接收系統(tǒng)
OFDM是一種多載波的數(shù)字傳輸體制,以其特有的優(yōu)勢(shì)被廣泛地應(yīng)用到數(shù)字音頻廣播,數(shù)字電視廣播和無(wú)線寬帶等領(lǐng)域,并將進(jìn)入到更多的領(lǐng)域中。對(duì)OFDM系統(tǒng)的仿真可以用軟件完成,但是對(duì)于硬件平臺(tái)的搭建往往需要大量的開(kāi)銷(xiāo)和時(shí)間。針對(duì)這種情況,如果具備一套軟件仿真代碼移植方便且硬件平臺(tái)搭建便捷的系統(tǒng),可以極大地縮短O(píng)FDM系統(tǒng)的開(kāi)發(fā)周期,才能在標(biāo)準(zhǔn)層出不窮的今天具有較強(qiáng)的競(jìng)爭(zhēng)優(yōu)勢(shì)。
應(yīng)用方案:基于NI虛擬儀器之PXI5671上變頻卡、PXI5661下變頻卡和Labwindows/CVI8.5正版軟件實(shí)現(xiàn)OFDM發(fā)射機(jī)與接收機(jī)的樣機(jī)。
使用產(chǎn)品:
LabWindows/CVI8.5 軟件開(kāi)發(fā)平臺(tái);PXI5671(PXI5441+PXI561);PXI5441 中頻輸出卡;PXI5610 射頻輸出卡;PXI5661(PXI5600+PXI5142);PXI5600 射頻接收卡;PXI5142 下變頻卡。
介紹:
OFDM是一種多載波的數(shù)字傳輸體制,由于具有頻譜利用率高和良好的抗多徑干擾等優(yōu)點(diǎn),已經(jīng)被廣泛應(yīng)用到數(shù)字音頻廣播,數(shù)字地面電視和無(wú)線局域網(wǎng)等領(lǐng)域,并且被看作第四代移動(dòng)通信的核心技術(shù)之一。但是對(duì)OFDM樣機(jī)的研制和開(kāi)發(fā)無(wú)論在軟件算法的編寫(xiě),還是硬件電路平臺(tái)的搭建,都需要大量的人員和開(kāi)銷(xiāo),且存在較高的風(fēng)險(xiǎn)。本文提出一種基于NI平臺(tái)的OFDM實(shí)時(shí)收發(fā)系統(tǒng)的設(shè)計(jì)方法,即在CVI軟件仿真平臺(tái)上實(shí)現(xiàn)OFDM符號(hào)的數(shù)字基帶處理算法的編寫(xiě),用NI PXI5671和NI PXI5661實(shí)現(xiàn)OFDM射頻模擬信號(hào)的發(fā)射與接收。對(duì)OFDM系統(tǒng)進(jìn)行有效的驗(yàn)證,為今后大規(guī)模芯片生產(chǎn)提供了可靠的解決方案和理論指導(dǎo)。
OFDM系統(tǒng)簡(jiǎn)介
正交頻分復(fù)用(OFDM,OrthogonalFrequency Division Multiplexing)是把高速串行數(shù)據(jù)分成多條并行的低速數(shù)據(jù),分別對(duì)多個(gè)正交子載波進(jìn)行調(diào)制,從而達(dá)到更高的頻譜效率、更大的系統(tǒng)容量,并且符號(hào)持續(xù)時(shí)間大大加長(zhǎng),在移動(dòng)、多徑、衰落環(huán)境下有很大的優(yōu)勢(shì)。
本系統(tǒng)的主要功能是用前端的USB設(shè)備對(duì)聲音信號(hào)進(jìn)行采集、處理,調(diào)制到OFDM符號(hào)中,并上變頻到射頻信號(hào)發(fā)射。收端將接收到的射頻信號(hào)進(jìn)行下變頻處理得到數(shù)字信號(hào),并解出音頻幀由USB設(shè)備播放。發(fā)端系統(tǒng)的基帶數(shù)據(jù)處理部分主要包括信源編碼、FEC、映射、OFDM成幀,硬件平臺(tái)的處理部分包括數(shù)字上變頻和射頻調(diào)制等。接收系統(tǒng)的基帶處理部分要主要包括同步、均衡、解映射、解FEC、音頻譯碼等,硬件平臺(tái)的處理部分包括射頻解調(diào)和數(shù)字下變頻。
OFDM系統(tǒng)硬件平臺(tái)架構(gòu)
整個(gè)系統(tǒng)由兩臺(tái)NI主機(jī),兩個(gè)USB聲卡設(shè)備,兩臺(tái)顯示器,一臺(tái)安杰倫頻譜儀4440A組成,如圖1所示:
圖1系統(tǒng)結(jié)構(gòu)圖
首先由發(fā)端的USB設(shè)備對(duì)輸入的聲音信號(hào)進(jìn)行采樣,樣點(diǎn)送入NI主機(jī),然后在發(fā)端的上層軟件中編寫(xiě)OFDM基帶處理等算法,生成的OFDM基帶數(shù)據(jù)輸出到PXI5671上變頻到中心頻率為10MHz的射頻信號(hào)。PXI5671由兩塊可分離的板卡PXI5441和PXI5610組成,其中PXI5441分為板卡RAM模塊和OSP(onboard signal process,板卡數(shù)字信號(hào)處理)模塊,板卡RAM模塊負(fù)責(zé)主機(jī)和PXI板卡間的數(shù)據(jù)傳遞,OSP模塊可對(duì)信號(hào)進(jìn)行重采樣濾波,數(shù)字上變頻和DA轉(zhuǎn)換等。PXI5610為射頻板卡,經(jīng)過(guò)兩級(jí)混頻放大濾波可將PXI5441輸出的模擬IF信號(hào)調(diào)制到范圍為250KHz-2.7GHz的射頻信號(hào)。收端由PXI5661對(duì)輸入的射頻信號(hào)進(jìn)行解調(diào),下變頻到數(shù)字基帶信號(hào),并輸出到NI主機(jī)上。PXI5661同樣由兩塊分離的板卡PXI5600和PXI5142組成。PXI5661完成射頻信號(hào)到中頻信號(hào)的轉(zhuǎn)換,PXI5142的兩個(gè)模塊OSP模塊和板卡RAM模塊,分別完成AD采樣、數(shù)字下變頻、重采樣濾波和主機(jī)與PXI板卡數(shù)據(jù)傳遞等功能,最后由收端的軟件上層算法解出音頻信號(hào)輸出給USB聲卡播放。無(wú)論收端還是發(fā)端系統(tǒng),上層軟件算法產(chǎn)生的數(shù)據(jù)和PXI板卡的數(shù)據(jù)交互需要由主機(jī)內(nèi)存和板卡RAM來(lái)完成,其中DMA控制主機(jī)內(nèi)存和板卡RAM間的數(shù)據(jù)傳遞,最大可達(dá)到1Gbytes/s的數(shù)據(jù)吞吐量。板卡RAM采用的是一種SMC(Synchronization and Memory Core)技術(shù),該技術(shù)無(wú)須將指令和數(shù)據(jù)分開(kāi)存儲(chǔ),RAM中的FPGA模塊不但能處理上層軟件產(chǎn)生的所有指令,對(duì)OSP各模塊進(jìn)行配置,而且能對(duì)數(shù)據(jù)流進(jìn)行緩存,最后由OSP的讀取引擎,并以上層軟件中所設(shè)的IQ速率讀取數(shù)據(jù),送入OSP中進(jìn)行重采樣、濾波、變頻等處理。
基帶處理算法的設(shè)計(jì)與實(shí)現(xiàn)
基帶處理算法的實(shí)現(xiàn)是基于LabWndows/CVI8.5的軟件平臺(tái),它是一個(gè)交互式開(kāi)發(fā)平臺(tái),集成了標(biāo)準(zhǔn)C的編譯、鏈接、調(diào)試等,并且采用簡(jiǎn)單直觀的用戶界面設(shè)計(jì),用戶只需在函數(shù)面板上直接輸入?yún)?shù),就會(huì)以事件驅(qū)動(dòng)回調(diào)函數(shù)的方式運(yùn)行整個(gè)程序,并可以將數(shù)據(jù)以圖形的形式在界面上顯示,提高了整個(gè)工程的運(yùn)行效率。圖2為本系統(tǒng)發(fā)端和收端的應(yīng)用界面。
圖2 OFDM發(fā)、收系統(tǒng)界面
對(duì)于單線程系統(tǒng),一般分為數(shù)據(jù)的采集模塊、分析處理模塊、顯示存儲(chǔ)模塊。這三個(gè)模塊在時(shí)間上是順序執(zhí)行的,即后一個(gè)模塊需等待前一個(gè)模塊數(shù)據(jù)的到來(lái)時(shí)才開(kāi)始工作。然而本系統(tǒng)對(duì)實(shí)時(shí)性要求比較高,比如在收端,USB聲卡的播放需要收端的音頻譯碼模塊在400ms內(nèi)處理完一幀,才能及時(shí)提供給USB聲卡樣點(diǎn)連續(xù)地播放聲音,這就需要音頻譯碼模塊前的所有基帶處理部分需要在400ms內(nèi)完成一個(gè)物理幀到音頻幀的解調(diào)。同樣在發(fā)端,USB聲卡每秒采集19200個(gè)樣點(diǎn)給音頻編碼模塊進(jìn)行編碼,每400ms輸出一音頻編碼幀,F(xiàn)EC、映射及OFDM成幀等模塊也必須在400ms內(nèi)處理完成,否則會(huì)出現(xiàn)丟幀和覆蓋的現(xiàn)象。可以肯定,用單線程這種順序化的執(zhí)行方式效率很低,每個(gè)模塊都要等待前一個(gè)模塊的數(shù)據(jù),對(duì)于實(shí)時(shí)性要求較高和復(fù)雜性較高的系統(tǒng)不適用。
本系統(tǒng)使用的是多線程技術(shù),可以將處理模塊拆分成多個(gè)線程,使多個(gè)線程并行運(yùn)行,只要保證每個(gè)線程的運(yùn)行時(shí)間小于音頻處理模塊,系統(tǒng)就會(huì)正常工作。其中發(fā)端算法用3個(gè)線程完成音頻編碼,F(xiàn)EC、映射、OFDM成幀等處理,并將OFDM數(shù)據(jù)寫(xiě)到板卡RAM中。收端算法用6個(gè)線程完成從板卡RAM中讀取OFDM基帶數(shù)據(jù)、同步、均衡、FFT、解映射、解FEC等處理,最后由音頻譯碼模塊將音頻幀送給USB聲卡進(jìn)行播放。為了保證線程間數(shù)據(jù)傳遞有序進(jìn)行,CVI還提供了事件通知、安全隊(duì)列、線程優(yōu)先級(jí)等函數(shù),保證線程間的同步和數(shù)據(jù)的傳遞。本系統(tǒng)使用的是全局BUFFER和安全隊(duì)列回調(diào)函數(shù)方式使兩個(gè)線程間獲得同步。即兩個(gè)線程間共享一個(gè)BUFFER和安全隊(duì)列,前一個(gè)線程將每次計(jì)算得到的數(shù)據(jù)寫(xiě)到BUFFER中,并產(chǎn)生一標(biāo)志位FLAG,寫(xiě)入安全隊(duì)列,后一線程捕捉到安全隊(duì)列中的FLAG,判斷是否滿足回調(diào)函數(shù)的條件,滿足則啟動(dòng)該線程,并將BUFFER中的數(shù)據(jù)讀出,不滿足則繼續(xù)捕捉FLAG。通過(guò)對(duì)安全隊(duì)列中FLAG的讀寫(xiě),控制線程啟動(dòng)的時(shí)間,使得兩線程對(duì)數(shù)據(jù)的讀寫(xiě)達(dá)到平衡。程序中控制流程如圖3所示。圖4為由PXI5671輸出到頻譜儀E4440A的OFDM頻譜。
圖3 線程控制流程圖
圖4 PXI5671輸出的OFDM頻譜
結(jié)論
本系統(tǒng)用LabWindows/CVI8.5軟件完成OFDM的數(shù)字基帶處理,在PXI硬件平臺(tái)上完成射頻信號(hào)的處理,有效地對(duì)OFDM系統(tǒng)進(jìn)行驗(yàn)證。而搭建FPGA PCB平臺(tái)完成OFDM Demo樣機(jī),首先在芯片的選型、制板上就需要大量的時(shí)間和人員,且具有一定的風(fēng)險(xiǎn)性;其次在軟件代碼開(kāi)發(fā)方面,需要花大量的時(shí)間對(duì)FPGA代碼進(jìn)行仿真測(cè)試和集成,而且改動(dòng)起來(lái)靈活性差。然而基于NI技術(shù)的OFDM系統(tǒng)的開(kāi)發(fā),由于在軟件上仿真代碼的可移植性,和上變頻等硬件平臺(tái)的實(shí)用性,減少了OFDM系統(tǒng)的開(kāi)發(fā)周期,節(jié)約了開(kāi)發(fā)成本和人員。
評(píng)論