本文檔描述了如何使用NI LabVIEW軟件和NI USRP™(通用軟件無線電外設)硬件來搭建2x2多輸入多輸出(MIMO)系統。在對MIMO進行簡短的介紹后,本文將基于LabVIEW深入探討采用Alamouti空時分組編碼和最大比合并(maximal ratio combining, MRC)的2x2系統的軟件和硬件。
什么是MIMO?
MIMO可在不增加功耗的情況下提高無線系統的性能。它是建立在以下理論的基礎上:使用多個天線時,傳輸的信號從發射機天線沿著不同的無線信道傳輸至接收天線,通過信道分集來獲得容量增益。
開發2x2 MIMO系統
本文介紹的MIMO系統在發送端采用Alamouti空時分組編碼,在接收端采用最大比合并(MRC)。這兩種技術的結合使得2x2 MIMO系統能夠完全分集。
發射機根據Alamouti方案對符號進行如下編碼:前兩個符號(s1和s2)轉化為一個2x2矩陣,
行代表不同的發射天線,列代表連續時隙。 連續傳送的每對符號重復此過程。
2x2 MIMO系統: 硬件配置
2x2系統需要配置四個NI USRP收發器,因為單個收發器無法同步執行兩次發送或接收。推薦采用以下配置:
· 配有免費兆位以太網端口的計算機。
· 連接至計算機的兆位以太網開關。
· 第一個收發器通過以太網直接連接至開關,第二個收發器通過MIMO電纜連接至第一個收發器。這兩個收發器用作發射機。
· 第三個收發器通過以太網直接連接至開關,第四個收發器通過MIMO電纜連接至第三個收發器。這兩個收發器用作接收機。
圖1. 2x2 MIMO硬件安裝圖
圖1顯示的配置可用于同步兩個發射機之間的參考時鐘源和兩個接收機之間的參考時鐘源。每個收發器的一根天線連接至其中一個端口(NI推薦較為方便的RX1/TX1)。為了使MIMO系統的每個信道完全分集,兩個發射機的間距應大于所使用的載頻波長的一半(接收機端也是如此)。
2x2 MIMO系統: 軟件配置
以下2x2 MIMO范例為LabVIEW應用,需要配置以下軟件組件:
· NI LabVIEW 2011版(或更高版本)系統設計軟件—完整版、專業版或學生版
· NI-USRP 版本 1.1
· NI LabVIEW調制工具包版本4.3.1
· 2x2 MIMO VI范例
范例操作
將附件中的壓縮文件解壓到新文件夾并在LabVIEW中打開名為2x2QAMAlamouti.vi 的文件。
圖2. 2x2QAMAlamouti.vi范例中前面板的系統參數選項卡
在范例的前面板(圖2)上,單擊系統參數選項卡。Tx設置和Rx設置集群分別包含Tx對和Rx對的NI USRP收發器參數。按照以下指示在這些集群和鏈路參數集群中設置控件:
USRP IP地址:輸入每個Tx對和Rx對與兩個NI USRP收發器相對應的IP地址。使用分號隔開每個地址,例如: “192.168.10.6; 192.168.10.5.”
I/Q采樣率[S/sec],符號率、Tx過采樣因子和Rx 過采樣因子:在I/Q采樣率中輸入Tx對和Rx對的基帶I/Q信號采樣率,以采樣點/每秒計。輸入符號率、Tx過采樣率因子和 Rx過采樣率因子的值,I/Q采樣率應為所需符號率的偶倍數。輸入與該偶倍數對應的過采樣因子偶數值。換而言之,I/Q采樣率、符號率和過采樣因子參數之間的關系應為如下所示:
I/Q采樣率= 符號率* 過采樣因子
載波頻率[Hz]: 輸入Tx對和Rx對的正常載波頻率,單位為Hz。用戶需要選擇一個符合當地法規定的頻率。
開始觸發時間集群—整數秒,小數秒:選擇開始觸發時間的整數秒和小數秒,確保接收機開始接收的時間剛好在發射機開始傳送之前。
每個設備陣列:每個設備陣列是指包含兩個元素的集群陣列。每個陣列的元素對應Tx對或Rx對的各個NI USRP收發器。元素0對應USRP IP地址中的第一個NI USRP收發器,元素1對應USRP IP地址的第二個NI USRP收發器。用戶需要配置Tx對和Rx對的NI USRP收發器的值,使每個設備對的收發器共享同一參考頻率和時基時鐘源。用戶可設置每個設備對的一個NI USRP收發器(“初級收發器”),通過MIMO電纜連接將設置傳輸到另一個收發器(“次級收發器”)。若需設置此配置,請按照以下說明設置每個設備陣列的元素:
每個設備陣列元素0:
參考頻率源:內部
時基時鐘源:內部
每個設備陣列元素1:
參考頻率源:MIMO
時基時鐘源:MIMO
參數正確設置后,就可運行VI。這樣,Tx對發射的突發信號將由Rx對接收。出現圖3所示的波形則表明重構成功。
圖3. 最上方的大圖表明2x2系統中的4QAM成功重構,圖中顯示的是兩根接收天線的I/Q元件接收的時域信號樣本(總共4個信號)。左下方的兩個星座圖顯示的是兩個Rx NI USRP收發器接收到的信號。右下星座圖顯示的是重構后的星座圖。
使用LabVIEW搭建2x2 MIMO系統
圖4顯示的是此范例的實現框圖(LabVIEW圖形化程序)。以下部分描述的是該系統的一些主要應用領域。
圖4. 2x2QAMAlamouti.vi LabVIEW框圖由三部分組成。左上部分的代碼用于合成傳輸信號。中間靠下部分的代碼用于啟動NI USRP硬件的Tx/Rx操作。右上部分的代碼用于處理接收的信號并顯示接收的波形。
傳輸信號準備
傳輸信號準備的第一步是從LabVIEW調制工具包中調用子VI(子路徑)。調用MT Generate Bits將會生成用作信息位的PN序列。這些信息位通過調用MT Map Bits to Symbols映射為符號。
然后根據Alamouti編碼方案對上一步生成的符號(圖 5)進行編碼。結果產生一個包含兩個數據流的二維符號陣列,每個數據流對應一個發射機。
圖5. subApplyAlamoutiCode.vi的框圖,該子VI簡單明了,采用了Alamouti編碼,通過幾次陣列處理生成所需的二維符號陣列。符號編碼后,該應用將訓練符號序列置于每個數據流之前。接收機通過訓練序列實現同步和通道估計。
訓練序列加法運算將同一的序列置于每個數據流之前,并對數據進行排列,使得序列先由其中一個Tx NI USRP收發器傳輸,然后再由另一個收發器傳輸——例如,兩個Tx NI USRP收發器中的其中一個收發器傳輸序列時,另一個收發器為靜止狀態。而另一個收發器傳輸相同的序列時,前一個收發器就處于靜止狀態。
發射/接收信號之前信號合成的最后一步是以Tx過采樣控件中指定的速率對即將傳輸的符號空間樣本進行上采樣,然后通過脈沖整形濾波器對上采樣信號進行濾波。
信號恢復
在接收端,USRP Fetch Rx Data VI恢復為接收信號的二維陣列,每一行代表從每根天線接收的信號樣本的數據流。
在信號恢復的第一步,用戶需要從接收端的數據幀中提取接收的數據包。采用能量檢測算法來確定數據包的起始點,并丟棄數據幀中剩下的非數據包部分。
然后,使用匹配濾波器對每個數據流進行濾波,并對接收的二維陣列的兩行數據之間的能量進行比較,確定較強的信號。最后,對信號較強的那一行進行符號同步,并在兩行數據上加上所計算的偏移量。
圖6. 圖中顯示的是接收到的四個波形—來自兩根Rx天線的I和Q波形。 接收的數據包的起始部分可進行放大,方便用戶觀察從每個Tx天線接收的訓練序列。幀同步較為復雜,且取決于發送端的兩個訓練序列結構。在此情況下,兩個發射機使用的是相同的訓練序列,但序列之間存在偏移,因此當序列重疊時,看起來就像是一串兩倍長的連續訓練序列。該應用通過搜索接收信號中兩個包含T個符號的連續符號集(每個訓練序列的長度為T)之間關聯性最高的部分來實現幀同步。在接收到的二維陣列的兩行數據上加上所計算的幀補償量。
針對信道估計,有四個不同的信道可供選擇。二維陣列的每一行包含兩個訓練序列(每個序列對應一個發射機)。因此,通過對每行的每個訓練序列進行信號估計,就可估計四個信道的參數。
這些參數估計對于下一步非常重要,因為在下一步中用戶將會對Alamouti編碼方案進行解碼,執行MRC,從而將二維符號陣列轉化為正確的一維符號陣列。用戶可分開執行最后兩步,或者在此應用中使用單矩陣乘法。單矩陣乘法方法比大型MIMO系統更容易普及。
結果
圖3顯示的是由四個NI USRP收發器組成的2x2 MIMO系統測試運行時的兩個Rx信號星座圖。最右邊的圖顯示的是執行Alamouti解碼、MRC和信道均衡后的最終信號星座圖。該圖表明此范例運行正常。