基于NI技術(shù)的OFDM發(fā)射接收系統
無(wú)論收端還是發(fā)端系統,上層軟件算法產(chǎn)生的數據和PXI板卡的數據交互需要由主機內存和板卡RAM來(lái)完成,其中DMA控制主機內存和板卡RAM間的數據傳遞,最大可達到1Gbytes/s的數據吞吐量。板卡RAM采用的是一種SMC(Synchronization and Memory Core)技術(shù),該技術(shù)無(wú)須將指令和數據分開(kāi)存儲,RAM中的FPGA模塊不但能處理上層軟件產(chǎn)生的所有指令,對OSP各模塊進(jìn)行配置,而且能對數據流進(jìn)行緩存,最后由OSP的讀取引擎,并以上層軟件中所設的IQ速率讀取數據,送入OSP中進(jìn)行重采樣、濾波、變頻等處理。
本文引用地址:http://dyxdggzs.com/article/108856.htm基帶處理算法的設計與實(shí)現
基帶處理算法的實(shí)現是基于LabWndows/CVI8.5的軟件平臺,它是一個(gè)交互式開(kāi)發(fā)平臺,集成了標準C的編譯、鏈接、調試等,并且采用簡(jiǎn)單直觀(guān)的用戶(hù)界面設計,用戶(hù)只需在函數面板上直接輸入參數,就會(huì )以事件驅動(dòng)回調函數的方式運行整個(gè)程序,并可以將數據以圖形的形式在界面上顯示,提高了整個(gè)工程的運行效率。圖2為本系統發(fā)端和收端的應用界面。


圖2 OFDM發(fā)、收系統界面
對于單線(xiàn)程系統,一般分為數據的采集模塊、分析處理模塊、顯示存儲模塊。這三個(gè)模塊在時(shí)間上是順序執行的,即后一個(gè)模塊需等待前一個(gè)模塊數據的到來(lái)時(shí)才開(kāi)始工作。然而本系統對實(shí)時(shí)性要求比較高,比如在收端,USB聲卡的播放需要收端的音頻譯碼模塊在400ms內處理完一幀,才能及時(shí)提供給USB聲卡樣點(diǎn)連續地播放聲音,這就需要音頻譯碼模塊前的所有基帶處理部分需要在400ms內完成一個(gè)物理幀到音頻幀的解調。同樣在發(fā)端,USB聲卡每秒采集19200個(gè)樣點(diǎn)給音頻編碼模塊進(jìn)行編碼,每400ms輸出一音頻編碼幀,FEC、映射及OFDM成幀等模塊也必須在400ms內處理完成,否則會(huì )出現丟幀和覆蓋的現象??梢钥隙?,用單線(xiàn)程這種順序化的執行方式效率很低,每個(gè)模塊都要等待前一個(gè)模塊的數據,對于實(shí)時(shí)性要求較高和復雜性較高的系統不適用。
本系統使用的是多線(xiàn)程技術(shù),可以將處理模塊拆分成多個(gè)線(xiàn)程,使多個(gè)線(xiàn)程并行運行,只要保證每個(gè)線(xiàn)程的運行時(shí)間小于音頻處理模塊,系統就會(huì )正常工作。其中發(fā)端算法用3個(gè)線(xiàn)程完成音頻編碼,FEC、映射、OFDM成幀等處理,并將OFDM數據寫(xiě)到板卡RAM中。收端算法用6個(gè)線(xiàn)程完成從板卡RAM中讀取OFDM基帶數據、同步、均衡、FFT、解映射、解FEC等處理,最后由音頻譯碼模塊將音頻幀送給USB聲卡進(jìn)行播放。
評論