基于NI技術(shù)的OFDM發(fā)射接收系統(tǒng)
無論收端還是發(fā)端系統(tǒng),上層軟件算法產(chǎn)生的數(shù)據(jù)和PXI板卡的數(shù)據(jù)交互需要由主機(jī)內(nèi)存和板卡RAM來完成,其中DMA控制主機(jī)內(nèi)存和板卡RAM間的數(shù)據(jù)傳遞,最大可達(dá)到1Gbytes/s的數(shù)據(jù)吞吐量。板卡RAM采用的是一種SMC(Synchronization and Memory Core)技術(shù),該技術(shù)無須將指令和數(shù)據(jù)分開存儲,RAM中的FPGA模塊不但能處理上層軟件產(chǎn)生的所有指令,對OSP各模塊進(jìn)行配置,而且能對數(shù)據(jù)流進(jìn)行緩存,最后由OSP的讀取引擎,并以上層軟件中所設(shè)的IQ速率讀取數(shù)據(jù),送入OSP中進(jìn)行重采樣、濾波、變頻等處理。
本文引用地址:http://cafeforensic.com/article/108856.htm基帶處理算法的設(shè)計(jì)與實(shí)現(xiàn)
基帶處理算法的實(shí)現(xiàn)是基于LabWndows/CVI8.5的軟件平臺,它是一個交互式開發(fā)平臺,集成了標(biāo)準(zhǔn)C的編譯、鏈接、調(diào)試等,并且采用簡單直觀的用戶界面設(shè)計(jì),用戶只需在函數(shù)面板上直接輸入?yún)?shù),就會以事件驅(qū)動回調(diào)函數(shù)的方式運(yùn)行整個程序,并可以將數(shù)據(jù)以圖形的形式在界面上顯示,提高了整個工程的運(yùn)行效率。圖2為本系統(tǒng)發(fā)端和收端的應(yīng)用界面。
圖2 OFDM發(fā)、收系統(tǒng)界面
對于單線程系統(tǒng),一般分為數(shù)據(jù)的采集模塊、分析處理模塊、顯示存儲模塊。這三個模塊在時間上是順序執(zhí)行的,即后一個模塊需等待前一個模塊數(shù)據(jù)的到來時才開始工作。然而本系統(tǒng)對實(shí)時性要求比較高,比如在收端,USB聲卡的播放需要收端的音頻譯碼模塊在400ms內(nèi)處理完一幀,才能及時提供給USB聲卡樣點(diǎn)連續(xù)地播放聲音,這就需要音頻譯碼模塊前的所有基帶處理部分需要在400ms內(nèi)完成一個物理幀到音頻幀的解調(diào)。同樣在發(fā)端,USB聲卡每秒采集19200個樣點(diǎn)給音頻編碼模塊進(jìn)行編碼,每400ms輸出一音頻編碼幀,F(xiàn)EC、映射及OFDM成幀等模塊也必須在400ms內(nèi)處理完成,否則會出現(xiàn)丟幀和覆蓋的現(xiàn)象。可以肯定,用單線程這種順序化的執(zhí)行方式效率很低,每個模塊都要等待前一個模塊的數(shù)據(jù),對于實(shí)時性要求較高和復(fù)雜性較高的系統(tǒng)不適用。
本系統(tǒng)使用的是多線程技術(shù),可以將處理模塊拆分成多個線程,使多個線程并行運(yùn)行,只要保證每個線程的運(yùn)行時間小于音頻處理模塊,系統(tǒng)就會正常工作。其中發(fā)端算法用3個線程完成音頻編碼,F(xiàn)EC、映射、OFDM成幀等處理,并將OFDM數(shù)據(jù)寫到板卡RAM中。收端算法用6個線程完成從板卡RAM中讀取OFDM基帶數(shù)據(jù)、同步、均衡、FFT、解映射、解FEC等處理,最后由音頻譯碼模塊將音頻幀送給USB聲卡進(jìn)行播放。
評論