劉松林,嚴家明,李 超
(西北工業(yè)大學 陜西 西安 710129)
在未來無線通信系統中,存在著多徑衰落和帶寬效率兩方面嚴重的挑戰(zhàn)。OFDM技術通過在頻域內將頻率選擇性信道轉變?yōu)槠教剐诺溃瑴p小多徑衰落的影響。而MIMO技術能在空間產生獨立的并行信道,同時傳輸多路數據流,這樣就能有效提高系統傳輸速率,即由MIMO提供的空間復用技術能在不增加系統帶寬的情況下,提高頻譜效率。因此,將OFDM與MIMO結合,就能使系統不但具備很高的傳輸速率,而且達到很強的可靠性[1]。這些突出優(yōu)點使它們的結合成為未來無線通信的必然趨勢。
分層空時碼是MIMO技術實現空時復用的具體實現方法之一,D-BLAST是Foschini等提出的一種對角分層空時編碼[2],它利用空間維度大大提高了傳輸速率。
FPGA具有開發(fā)周期短、設計靈活等優(yōu)點[3],將D-BLAST在FPGA中實現驗證,成為未來移動通信實驗系統采用的一種方式。
MIMO-OFDM基帶系統發(fā)射機基本結構框圖如圖1所示。在發(fā)射端,基帶數據經過基帶調制再經過串并轉換,輸入至空時編碼器進行D-BLAST空時編碼,進入空時編碼之后的信息流變成N路并行的低速數據流,分別對應一個發(fā)射天線;之后對信息流做插入導頻處理,用于在接收端進行信道估計;OFDM調制利用IFFT變換實現;經過IFFT變換的信號從頻域信號變成了時域信號,在經過插入循環(huán)前綴等,最后數據通過濾波器被送到D/A進行數模轉換,然后上變頻到一定的發(fā)射頻率上發(fā)送出去。本設計發(fā)射天線數Nt=2,且暫時沒有考慮同步和峰均比抑制問題。

圖1 MIMO-OFDM基帶系統發(fā)射機基本結構框圖Fig.1 Structure diagram of MIMO-OFDM baseband system transmitter
本設計的主要參數如表1所示。
在實際應用中,有兩類用的最多的數字調制方式:線性調制和非線性調制。線性調制即數字相位調制技術,主要包括相移鍵控(PSK)和正交相移鍵控(QPSK)等,其優(yōu)點為頻譜利用率很高。

表1 系統參數Tab.1 System parameters
為了減少傳輸信號頻帶,提高信道頻帶利用率,可以將二進制數據變換為多進制(即M進制)數據來傳輸。用M進制數據控制載波的相位,就是M相相移鍵控。當M=4時,就是四相相移鍵控,即QPSK調制。QPSK的4種輸出相位有相等的幅度,而且2個相鄰的相位相差值為90o(I,Q組合為4種[0 0],[0 1],[1 0]和[1 1])。
從數據范圍、精度以及硬件開銷的整體考慮出發(fā),本文采用16位定點格式數據,7~0位表示小數位,14~8位表示整數位,第15位表示符號位,且在硬件計算過程中,數據都是以二進制補碼的形式存在的,所以,映射后的數據“1”表示成00000001_00000000,“-1”表示成 11111111_00000000。
分層空時碼技術的基本思想是:在發(fā)送端將待傳輸的串行發(fā)送數據,經過多路分解器轉換成Nt個并行數據,所得數據輸入到信號編碼器、分層空時編碼器,從而得到Nt個待發(fā)送的信號組,分別由Nt個發(fā)送天線進行傳輸。分層空時編碼是將輸入編碼器的序列映射到發(fā)送天線上。根據空間映射方式,分層空時碼可以分為:水平分層空時碼,垂直分層空時碼和對角分層空時碼。對角分層空時碼相對前兩種分層空時碼具有最好的空時特性[4]。
為了更清楚地了解D-BLAST編碼過程,考慮一個例子,其中的Nt=4,即共有4層,因此,每個碼字分為4塊。一個碼字中塊的數目應等于Nt,這一約束是譯碼過程強加的。傳輸過程如圖2所示。首先,a1從第1根發(fā)射天線發(fā)射;其次,d1和a2分別從第1根和第2根天線上同時發(fā)射;再次,c1、d2和a3也分別從第1根、第2根和第3根天線上同時發(fā)射,該過程一直會持續(xù)到bK從最后一根天線上發(fā)射出,這意味著每層共有K/4個碼字。由于在每次傳輸周期的開始和結束,一些發(fā)射天線是出于空閑狀態(tài)的,因此,最終的傳輸速率稍低于RcbNt,其中,Rc代表所采用的信道碼速率,2b是信號星座大小,但這是一個小問題,尤其是當傳輸周期較長時。
對于本設計,如果串行數據流為a1a2d1d2c1c2b1b2…,串并轉換之后的數據分別為a1d1c1b1…和a2d2c2b2…,則D-BLAST編碼之后的輸出為a1d1c1b1…和0a2d2c2b2…。

圖2 D-BLAST傳輸過程Fig.2 Transmission process of D-BLAST
為了信道估計,在發(fā)射端以一定的間隔把已知的導頻符號插入到OFDM符號中,經過信道后,接收端提取這些位置的信道響應,利用這些位置的信道響應作內插濾波,從而估計出其它位置的信道頻率響應。OFDM系統中常用的倒頻圖案一般有3種,分為塊狀倒頻、梳狀導頻和間隔式倒頻[5],文中選擇梳狀導頻,采取隔3個子載波插入一個導頻符號,因此在64個子載波中有16個是用于傳輸導頻信號的,其實現原理圖如圖3所示。

圖3 插入導頻實現原理圖Fig.3 Implementation principle diagram of pilot inserting
該模塊把空時編碼后的數據以時鐘clk_48存入RAM中,同時以clk_48讀入導頻,每隔3個數據插入一個導頻符號,之后以時鐘clk_64從RAM中依次讀取數據,從而實現插入導頻。輸入時鐘clk_48和輸出時鐘clk_64采用不同的頻率,因為進入導頻插入模塊的輸入數據個數為48,插入導頻后,輸出個數為64,而整個模塊輸入輸出要求是同時完成的,因此輸入、輸出時鐘具有3:4的比例關系。
OFDM技術使用多載波調制技術,各個子載波相互正交,且各個子載波的頻譜有一半的重疊。IFFT部分是整個OFDM發(fā)射機中最核心的部分,通過它才能真正地實現正交的功能。文中利用Altera公司的IFFT/FFT IP核,其具有更高的性能,占用更少的資源,且整個IFFT/FFT的應用流程相對簡單,可以在QuartusII軟件中很方便地進行配置并將IFFT/FFT模塊加入到自己的工程設計中。
FFT Core支持4種I/O數據流結構:流(Streaming):允許輸入數據連續(xù)處理,并輸出連續(xù)的復數據流,這個過程不需要停止FFT函數數據流的進出;變量流(Variable Streaming):允許輸入數據連續(xù)處理,并產生一個與流結構相似連續(xù)輸出數據流;緩沖突發(fā)(Buffered Burst):需要的存儲器資源比流動I/O數據流結構少,但平均模塊吞吐量減少;突發(fā)(Burst):執(zhí)行過程和緩沖突發(fā)結構相同,但對于給定參數設置,突發(fā)結構在降低平均吞吐量的前提下需要更少的存儲資源。
本設計設置IFFT/FFT IP核參數時,Target Device Family選擇 Stratix,Transform Length 選擇 64points,Data Precision 和Twiddle Precision選擇 16 bits,I/O Data Flow 選擇 Streaming。當設置FFT方向時,inverse為0時作FFT變換,為1時作IFFT變換。
采用OFDM技術的最主要原因之一在于其能夠有效的對抗多徑時延擴展和由于多徑傳播而引起的符號間干擾(ISI)。ISI對OFDM符號的影響還可以通過在每個符號的開始位置加上額外的保護間隔來改善,且該保護間隔長度Tg一般要大于無線信道中的最大時延擴展,這樣一個符號的多徑分量就不會對下一個符號產生干擾。
循環(huán)前綴就是把每個OFDM符號后Tg時間中的樣點復制到OFDM符號前面以形成前綴。插入循環(huán)前綴更重要的作用是可以有效消除子載波間干擾[6]。其實現原理如圖4所示。

圖4 插入循環(huán)前綴原理圖Fig.4 Implementation principle diagram of cyclic prefix inserting
本設計中選擇的循環(huán)前綴長度為OFDM符號的1/4,即將OFDM的后16個采樣點復制到符號前面。這里使用2個64×16 bit的RAM構成乒乓?guī)僮鳌?/p>
寫控制產生兩個寫使能信號和一個寫地址信號,以clk_64為時鐘輸入,以64個時鐘脈沖為一個周期,交替地使兩個RAM的輸入有效,寫地址以0~63的順序循環(huán)輸出,將OFDM符號的64個數據依次寫入RAM中;讀控制產生兩個讀使能信號和一個讀地址信號,以clk_80為時鐘輸入,以80個時鐘脈沖為一個周期,交替地使兩個RAM的輸出有效,先讀出RAM中的后16個數據,再從首地址依次讀出全部64個數據,這樣就實現了將后16個數據插入到OFDM符號前面的過程,且整個符號的長度為80個數據。最后,以clk_80為時鐘,交替選取2個RAM的輸出作為循環(huán)前綴整體模塊的輸出。
系統中所用的 FPGA是 Altera公司的 Stratix EP1S25F780C5,其結合了高密度、高性能以及豐富的特性。軟件使用Altera的QuartusII集成開發(fā)軟件,另外,使用ModelSim作為仿真軟件。利用Verilog HDL語言來完成各個模塊的代碼編寫工作。
在進行發(fā)射機驗證時,將一組隨機的0,1數據存入一個文本中,之后使用MoedlSim仿真軟件將其讀取,作為輸入數據,將發(fā)射機的一個天線上的輸出數據以模擬波形的形式輸出,如圖5所示。再將相同的數據輸入到Matlab中,進行仿真,如圖6所示。分析并對比兩組數據和波形。
從以上的波形可以看出,發(fā)射機功能正確。

圖5 ModelSim仿真結果Fig.5 Simulation results of ModelSim

圖6 Matlab仿真結果Fig.6 Simulation results of Matlab
MIMO-OFDM系統通過MIMO與OFDM的結合,使一個信號能夠從空、時、頻三維來聯合設計,充分利用了無線信道在空、時、頻三個維度上呈現不同特性的條件,從而使解決問題的手段和理論研究更加豐富。本設計以FPGA為硬件平臺來實現發(fā)射機,電路簡單,設計靈活,便于修改和調試,可靠性高。軟件設計采用模塊化設計思想,提高了系統的可靠性和維護性。整個發(fā)射機設計簡單、快速和高效等特點,達到了設計要求。
[1]謝顯中.基于TDD的第四代移動通信技術[M].1版.北京:電子工業(yè)出版社,2006.
[2]Foschini G J.Layered space-time architecture for wireless communication in a fading environment when using multielement antennas[J].Bell Labs Technical Journal,1996:41-59.
[3]王誠.Altera FPGA/CPLD設計[M].1版.北京:人民郵電出版社,2005.
[4]Tolga M.Duman.MIMO通信系統編碼[M].艾渤,譯.北京:電子工業(yè)出版社,2008.
[5]Cheng S L,Miri A,TET H Y.Efficient FPGA implementation of FFT based multipliers [C]//IEEE CCECE.New York:IEEE Press,2005:1300-1303.
[6]Muquet B.Cyclic prefixing or zero padding for wireless multi-carrier transmissions[J]. IEEE Transactions on Communications,2002:2136-2148.