譚 凱,彭 端 發表於 2017-11-15 20:48:01
針對自適應MIMO-OFDM無線基帶傳輸系統,提出了一種並行復用的基4-FFT/IFFT算法的FPGA實現方法,並對其中的自適應數字調製、STBC編碼和FFT/IFFT模塊進行了FPGA實現研究和仿真。仿真結果表明,該方法實現了模塊的功能,且性能良好,具有一定的應用價值。
0 引言
OFDM(Orthogonal Frequency-Division Multiplexing)技術由於其頻譜利用率高和抗頻率選擇性衰落的優點,已經成為無線通信系統中最受歡迎的調製技術。多輸入多輸出(Multi Input Multi Output,MIMO)技術採用多根天線實現信號在空域和時域的多重複用,在不增加帶寬和天線發送功率的情況下,可以成倍地提高頻譜利用率,還能在一定程度上對抗多徑衰落。基於以上這些優點,MIMO技術已成為進一步提升OFDM系統性能的關鍵技術。目前,MIMO-OFDM技術已廣泛運用到高速無線通信系統中,比如:LTE、WLAN、WiMAX、微波通信以及未來的5G通信等[1]。
自適應調製技術利用無線鏈路的反饋息,動態地對發射功率、編碼方式、調製階數、載波分配等進行調整,使系統在適應時變信道的同時,儘可能地優化吞吐量、誤比特率和發射功率[2]。將自適應調製技術應用於MIMO-OFDM系統中,可以優化系統的資源分配,進一步提升系統的性能,具有很好的應用前景[3]。
FPGA具有開發周期短、可並行處理、設計靈活、低成本等優點,用FPGA來驗證和實現,是一種很好的開發無線通信系統的方法。
本文設計了一個自適應MIMO-OFDM無線基帶傳輸系統,介紹了系統的關鍵技術,並對其中的自適應數字調製、STBC編碼和FFT/IFFT模塊進行了FPGA設計和仿真,分析了仿真結果。
1 系統模型
一個基本的自適應MIMO-OFDM無線基帶傳輸系統如圖1所示。信源經過信道編碼和交織後被送入數字調製模塊,此模塊根據接收端反饋回的信道信息選擇合適的調製方案。被調製的信號送入STBC編碼模塊,經過Alamouti空時編碼後生成兩路正交的碼流,再經過串並轉換後進入IFFT模塊進行OFDM調製。解調端的處理是調製的逆過程,需要注意的是在解調端需要引入信道估計模塊,用於採集信道信息以實現系統的同步和發射端的自適應調製。
2 FPGA設計
2.1 自適應數字調製模塊
本文採用信噪比參數來衡量信道信息,不同的信噪比取值對應於不同的調製方式。利用信噪比作為參數來配置自適應調製的關鍵在於確定好每種調製編碼模式的判決門限。這就需要通過大量的實驗測量在不同信噪比條件下,選擇何種調製編碼模式能使系統的性能達到最優,以找到不同的參數與調製編碼模式的映射關係。信噪比與調製方式的映射關係如表1所示。
自適應調製頂層模塊接收到對應的SNR參數後,根據表1的映射規則,選擇對應的調製子模塊,使其使能端有效以啟動此模塊。隨後,將子模塊的數據輸入埠連接到頂層模塊的信號輸入接口,以使外部信源數據輸入到子模塊,實現對應的調製處理。其實現框圖如圖2所示。
2.2 STBC編碼模塊
STBC編碼模塊接收到來自上一個模塊的數據,將數據兩個一組保存下來。Alamouti編碼模塊經過相應的邏輯處理生成兩個數據的共軛形式,再將原數據和其共軛形式一起保存到下一級寄存器,最後分成兩路數據輸出。其設計原理如圖3所示。
2.3 FFT/IFFT模塊
本文採用基4-FFT/IFFT算法來實現64點OFDM調製解調。常見的的FFT實現方法有流水線和並行陣列方法。此兩種方法各自有其優缺點。流水線以犧牲時間來換取邏輯資源花費的減少,這種方法佔用的邏輯資源少,但是延時很高。並行陣列方法每一級之間也是採用流水線的設計思想,只不過每一級採用多個蝶形並行運算,只消耗一個蝶形運算時間,這樣就極大地節省了運算時間,減少了延時,但是會消耗大量的邏輯資源。本文採用這兩種方法折中的方法——並行復用法。64點基4-FFT以4點蝶形運算為基本單元,如圖4所示。
輸入數據按二進位倒位序4點為一組,送入蝶形單元。值得注意的是,圖中的乘以-j只需要交換實部和虛部後,再取虛部的相反數即可實現。因此以上蝶形單元不需要使用乘法器,這就節省了邏輯資源的使用。輸出的數據是倒位序,需要經過整序以輸出正常排序的數據。64點的FFT需要log464=3級運算,每一級需要64/4=16次蝶形運算。本文的設計總共包含16個蝶形運算單元,每一級處理數據時,同時啟動16個蝶形單元並行運算,這樣完成整級的運算就只需要1個蝶形運算時間單元。除了最後一級的運算,其餘每級運算的輸出都要乘以相應的旋轉因子。因此在設計之初,可以將所有會用到的旋轉因子事先保存下來。圖5為FFT模塊的基本架構。
串/並模塊由一個深度為64的RAM實現,將輸入數據經過倒序後4個一組並行輸出。每一組數據輸入到蝶形運算模塊中對應的蝶形單元,模塊的16個蝶形運算單元接收到數據後同時啟動蝶形運算,只需要一個運算時間單元就能完成一級運算。每一級的輸出受控制模塊控制,如果為最後一級,則不需要乘以旋轉因子,經過整序後就可以直接輸出。如果不是最後一級的輸出,那輸出後的數據還要乘上對應的旋轉因子,然後經過相應的整序後,輸出數據被重新送到蝶形運算單元作為輸入執行下一級的運算。直到最後一級的運算完成並輸出後,蝶形運算單元才會等待下一組64點數據的到來,接收並作為新的輸入,執行新一輪運算。模塊每一級的運算重複利用這16個碟形運算單元,實現了並行復用的思想。運算全程受控制模塊控制,採用狀態機控制每一級的運行狀態,狀態圖如圖6所示。
3 仿真測試
本次設計採用Xilinx全新的FPGA開發軟體Vivado作為開發工具,硬體描述語言使用Verilog語言。為了便於時序控制,設計採用同步時序邏輯,系統時鐘設置為50 MHz。仿真工具採用Vivado集成的仿真工具。
3.1 自適應數字調製
設置不同的參數,自適應調製能實現階數不同的調製。圖7~圖8分別展示了16QAM、64QAM的調製結果。
圖中的IM_RE和DM_IM分別表示I、Q兩路信號,用帶符號8位二進位數表示,保留6位小數,圖中以十進位顯示。DM_INDEX表示數據的序號。
3.2 STBC編碼
圖9展示了16QAM調製信號經STBC編碼後的仿真結果。
圖中RE_OUT0、IM_OUT0和RE_OUT1、IM_OUT1分別表示經過STBC編碼後的兩路相互正交的信號,STBC_ORDER表示數據序號。
3.3 FFT/IFFT
IFFT的運算結構和FFT相同,只需將數據做簡單的共軛處理,就可以利用FFT的運算模塊計算IFFT。數據經過STBC編碼處理後,再做IFFT變換以實現OFDM調製。FFT實現了IFFT解調,因此輸出數據因等於STBC編碼的輸出。圖10~圖11分別展示了IFFT、FFT的仿真結果。
通過對比圖11和圖9可以看出,圖11的仿真結果並不完全等於圖9,這是由於系統採用的是二進位定點數運算,存在誤差。不過從圖中可以看出,誤差在可接受的範圍內。因此,可以認為FFT/IFFT模塊正確地實現了調製和解調。
該系統採用Vivado集成的綜合工具綜合和布局布線,在Xilinx ZYNQ7020上實現,其資源消耗情況如表2所示。
4 結語
本文針對自適應MIMO-OFDM無線基帶傳輸系統的關鍵技術,研究了基帶傳輸系統的FPGA實現,並對其中的自適應數字調製、STBC編碼和FFT/IFFT模塊進行了FPGA設計與仿真。針對FFT/IFFT模塊的設計,在延時和邏輯資源佔有上折中,提出了一種並行復用方法,結合基4FFT/IFFT算法來實現設計。仿真結果表明,自適應數字調製能動態地調整調製方式,STBC編碼實現了信號的分集,提高了信號的可靠性。FFT/IFFT模塊能正確實現OFDM調製和解調,並在延時和邏輯佔有率上取得了平衡,具有一定的應用價值。
打開APP閱讀更多精彩內容聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴