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