1. 引言
信道估計是OFDM 中的關鍵技術,其目的是給出接收端進行的信道均衡、信號檢測、信道質量測量和軟譯碼等處理時所需要的信道參數,其性能直接關系到整個OFDM 通信系統誤碼率性能[1] [2]。
基于參考信號(RS)的OFDM 的信道估計方法主要包括LS 算法和MMSE 算法:LS 算法簡單,適用于一般無線環境;MMSE 算法可靠性較高,但過于復雜[3] [4]。結合MIMO 技術的OFDM 系統上的信道估計要考慮對每根接收天線接收到多根發射天線的導頻進行分離,以及對多根接收天線接收數據進行協調處理[5]。目前在FPGA 上進行MIMO-OFDM 系統信道估計的設計方案還比較少,一些傳統方案[5]-[7]中,每條信道都需要設置一個信道估計器來估計導頻位置信道頻率響應,插值估計通過復數乘法器實現,這樣將會消耗大量的硬件資源。本文基于文獻[8]中的MIMO-OFDM 系統,在ML605 開發板上進行信道估計的方案設計實現。根據系統應用環境,考慮資源消耗與復雜度,采用LS 估計算法以及線性插值算法進行模塊化設計,具有良好的擴展性。基于傳統信道估計方案對LS 估計模塊進行精簡,對插值模塊內插系數計算進行優化,減少FPGA 運算單元及存儲單元消耗。經測試,將該方案加入視頻傳輸系統后,視頻信號清晰穩定。
?
2. MIMO-OFDM接收端鏈路模型
圖1顯示的是用于進行視頻實時傳輸的雙層物理層接收鏈路模型。接收端信號經過OFDM解調后,分離出用戶數據信號和參考信號。信道估計模塊利用接收到的的參考信號與本地存儲的參考信號共軛相乘得到信道參數[9] ,根據MIMO分集空頻解碼公式,將用戶數據信號與信道參數整理后輸出給MIMO解碼模塊進行處理,從而減少無線信道干擾。系統全局時鐘頻率為100 MHz,系統帶寬10 MHz,子載波數量為600個,MIMO采用2T × 2R天線矩陣。
3. 信道估計模塊總體設計
本文進行的信道估計模塊設計,首先在Xlinx ISE上使用VHDL語言進行建模,并加入到接收端鏈
Figure 1. Architecture of receiver of video transmission system
圖1. 視頻傳輸系統接收鏈路模型
路中進行仿真測試;之后在Xlinx XPS上將物理鏈路作為硬件外設掛載到系統中,配置Microblaze IP核;最后將接收端和發送端程序分別下載到兩塊ML605開發板中,在發送端接上攝像機和視頻服務器,接收端通過解碼器解碼,在顯示器上可以看到攝像機捕獲的視頻圖像。
信道估計模塊采用雙層鏈路結構,分別對兩根接收天線的接收數據進行處理。頂層模塊由四種模塊構成:LS估計模塊、內插模塊、數據處理模塊和輸出模塊,如圖2所示。
圖2中RS00和RS10分別表示接收天線0所接收到的兩根發送天線發送的參考信號,RS01和RS11分別表示接收天線1所接收到的兩根發送天線發送的參考信號。LS估計模塊接收到參考信號(Reference signal, RS)后估計出RS所在位置的信道參數hls,并輸出給內插模塊;內插模塊根據導頻圖案,利用接收到的導頻位置信道參數,通過頻域和時域插值計算用戶數據位置的信道參數h,并存儲在RAM中;數據處理模塊接收用戶數據,并將數據整理成MIMO解碼模塊需要的格式后輸出給輸出模塊;輸出模塊利用從OFDM解調模塊接收到的用戶數據地址,從RAM中提取相應用戶數據位置的四條信道(兩根發射天線分別到兩根接收天線)的信道參數,將用戶數據與信道參數一同輸出。
為方便以后對物理鏈路進行優化升級,各項功能采用模塊化設計,模塊外部接口統一采用AXI-Stream接口,模塊之間通過一個具有AXI-Stream格式接口的FIFO進行數據緩沖相連,如圖3。
AXI-Stream協議下,時鐘上升沿到來時,接收端或者發送端的READY和VALID兩個握手信號同時為“1”時完成一次數據傳輸。FIFO輸出的READY信號為“1”時,指示FIFO未滿;FIFO輸出VALID信號為“1”時,指示FIFO中存在有效數據。
視頻傳輸系統采用LTE下行規定的幀結構與導頻圖案[10] ,如圖4所示。導頻圖案中白格表示承載用戶數據及控制信息的資源粒子(RE),黑格表示承載導頻數據的RE,叉格表示不承載任何信息的空白RE。
3.1. LS估計模塊
LS估計模塊主要用LS算法估計出RS位置的信道參數。設接收到的RS為,本地存儲的RS為。根據LS算法得到:
(1)
由于與均為復數,設,,帶入式(1)后得到:
(2)
根據式(2),運用二叉樹流水線技術對LS估計器進行設計。二叉樹流水線結構能夠充分發揮FPGA并行流水線的優勢,提高系統計算效率,減少寄存器消耗。在流水線設計時,首先需要選擇合適的流水線級數來減少處理延時。例如對于N個數據參與處理,并且需要經過七次相乘或者相加運算得到結果的算式,在實現時流水線級數應該設置為。其次,每一級流水線不能承擔過多的計算,否則會降低整體流水線處理速度。本文中LS估計器的設計采用三級流水線,每一級流水線承擔一次運算任務,延時一個時鐘周期,如圖5所示。
Figure 2. Architecture of channel estimation module
圖2. 信道估計模塊頂層結構
Figure 3. Architecture of AXI-Stream interface
圖3. AXI-Stream協議接口結構
Figure 4. The frame structure and the double-antenna pilot pattern of the system
圖4. 系統幀結構與雙天線導頻圖案
本地RS由Matlab生成后,存入ROM當中,由狀態機控制ROM地址,輸出相應的RS。傳統信道估計方案中,每根接收天線需要兩個LS估計器進行RS位置信道參數估計[5] [6] 。以天線0接收到的RS為例,RS00以及RS01分別需要一個LS估計器以及一個存儲本地RS的ROM進行參數估計。由于天線0和天線1發送的RS相同,本方案中將RS00和RS01合并后,利用狀態機控制交替輸入到一個LS估計器,減少一半運算單元以及ROM等資源的使用。
3.2. 內插模塊
內插模塊根據導頻圖案進行線性插值。首先進行頻域插值,以天線0發送的導頻圖案為例。頻域插值公式如式(3)所示。
其中表示頻率方向RS間隔,表示頻率、時間位置上的信道響應。通過從估計模塊獲得的hls估計出RS所在OFDM符號上(符號0和符號4,以符號0為例)RS位置之間的信道參數,存入相應的FIFO中。每個符號中有100個RS,所以循環99次。循環過后將邊沿處子載波信道參數直接賦值為最近的RS位置的信道參數。流程如圖6所示。
然后進行時域線性插值,時域插值公式如式(4)所示:
其中表示時間方向導頻間隔,表示頻率、時間位置上的信道響應。通過fifo中由頻域插值得到的符號0和符號4的信道參數估計出其他符號上所有子載波的信道參數,將其映射到相應符號RAM中的對應地址當中,便于輸出模塊用接收到的數據地址讀取相應位置的信道參數。由于系統配置子載波數為600個,所以設置循環600次。時域插值中符號0和符號4的每個符號的信道參數需要使用2次,因此在第一次接收并進行插值計算后,該符號信道參數將存入臨時fifo (temp)中以備下一輪循環插值使用。流程如圖7所示。
為了減少FPGA中有限的乘法器資源消耗,計算內插系數時通過輸入數據移位計算來實現。傳統插值估計在內插系數分母不為時,需要使用乘法器將輸入數據和預先存儲在ROM中的插值系數相乘[7] 。本設計中,當內插系數分母不為時,選擇在數據低位增加8位數據小數位長度,移位計算出原始數據的多個分之1,通過二叉樹流水線相加后再截取高16位數據得到,如公式(5) (6) (7) (8)所示,系數誤差控制在213分之1左右。
3.3. 數據處理模塊和輸出模塊
MIMO發射分集方案選擇LTE標準的空頻編碼。在MIMO解碼模塊進行極大似然譯碼時,需要接收對應的用戶數據和信道參數來構造判決矢量。根據判決矢量構造公式可以知道,在每次構造判決矢量時需要兩條接受鏈路上連續兩個RE上的用戶數據和四條信道的信道參數[11] 參與計算。數據處理模塊分別將接收到的兩層鏈路中連續兩個RE上用戶數據進行串行合并,然后輸出到輸出模塊。輸出模塊根據接收到的用戶數據地址,計算兩個RE地址的信道參數的均值,和用戶數據一同輸出給MIMO解碼模塊。
3.4. 綜合測試與仿真
建模完成后,需要在ISE上進行綜合。綜合后可以在ISE中查看信道估計模塊的資源消耗,如表1所示。
Figure 5. Architecture of LS estimation module
圖5. LS估計模塊內部結構
Figure 6. The flow chart of frequency domain interpolation
圖6. 頻域插值流程圖
綜合成功后將信道估計模塊加入到整個MIMO-OFDM物理收發鏈路中,在發送端輸入數據源,利用Modelsim進行仿真。為了在FPGA上進行計算,所有數據都已經量化為16位定點小數,其中最高位為符號位,次高位為整數位,其余14位為小數位,因此,數據范圍在?2~+2之間。信道參數輸出如圖8所示。
盡管數據處理過程中引入了定點誤差和截位誤差,信道00和信道11的信道參數實部的定點16位數據(CH00_OUT_RE和CH01_OUT_RE)依然接近16,384 (即表示1)。在有線的環境下,由于信道01和信道10沒有接收數據,信道參數的實部和虛部定點16位數據接近0 (0)。MIMO-OFDM基帶傳輸鏈路輸入輸出如圖9所示,其中valid信號表示數據有效性。數據輸入鏈路的發送端(tx)后,接收端(rx)輸出數據準確,且沒有丟失。因此信道估計模塊在有線環境下能夠使系統正確恢復發射端數據。
4. 視頻傳輸測試
將設計完成的物理層鏈路的發送端和接收端分別作為外設掛載到XPS工程中。配置ML605開發板中Microblaze IP核,用于在發送端接接收并封裝視頻服務器發送的視頻信息,通過邏輯信道發送給物理層鏈路;在接收端接收并解析物理層的數據信息,發送給視頻解碼器解碼。Microblaze IP核與物理層鏈路通過PLB (Processor Local Bus)總線進行數據傳輸。配置完成后,將生成的比特流文件下載到ML605
Table 1. Hardware resource consumption
表1. 硬件資源消耗
Figure 7. The flow chart of time domain interpolation
圖7. 時域插值流程圖
Figure 8. Simulation of channel parameters output
圖8. 信道估計模塊信道參數輸出仿真
Figure 9. Simulation of input and output of MIMO-OFDM link圖9. MIMO-OFDM鏈路收發仿真
開發板中,設置攝像機與視頻服務器,在接收端視頻流通過解碼器解碼后,顯示器上可以看到攝像機拍攝到的視頻,如圖10所示。兩套設備置于相鄰的兩個實驗室中,可以看到本地攝像頭拍攝圖像與接收到的
Figure 10. Video transmission test
圖10. 視頻傳輸測試
圖像清晰穩定,驗證了在實驗室簡單環境下信道估計模塊可以有效抵抗信道衰落,提高系統傳輸可靠性。
5. 結論
本文針對MIMO-OFDM視頻傳輸系統,利用LS算法和線性插值算法,設計了一種結構優化,消耗FPGA邏輯資源少的信道估計方案,使得FPGA芯片上有足夠的空間對物理層鏈路進行進一步的設計。最大支持282.509 MHz時鐘頻率,經測試:加入信道估計后,視頻傳輸系統能夠在實驗室簡單固定的環境下進行無線視頻傳輸,圖像清晰穩定。
評論
查看更多