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