空分復用MIMO通信系統簡介及FPGA實現
信道矩陣預處理器確定了空分復用復合信號每一層的最佳檢測次序。該預處理器負責計算信道矩陣的偽逆矩陣范數,并根據這些范數,選擇待處理的下一個傳輸流。偽逆矩陣中范數最小的行對應著最強傳輸流(檢波后噪聲放大最小),而范數最大的行對應著質量最差的層(檢波后噪聲放大最大)。我們的實施方案首先檢測最弱的層,然后按最低噪聲放大到最高噪聲放大的次序逐層檢測。對排序過程中的每一步,信道矩陣中相應的列隨后會被清空,然后簡化后的矩陣進入下一級的天線排序處理流水線。
在預處理算法中,偽逆矩陣的計算要求最高。這個過程的核心是矩陣求逆,通常通過吉文斯(Givens) 旋轉進行 QR 分解 (QRD) 來實現。常用的角度估算和平面旋轉算法(如 CORDIC)會造成嚴重的系統時延,對我們的系統來說是不可接受的。因此,我們的目標是運用 FPGA 的嵌入式 DSP 資源(比如 Virtex-5 器件中的 DSP48E),找出矢量旋轉和相位估算的替代性解決方案。
QRD 的脈動陣列結構由兩種類型的處理單元構成——對角線單元或邊界單元和非對角線單元或內部單元。邊界單元執(zhí)行矢量函數,可以生成陣列內部單元使用的旋轉角度。要想得到想要的旋轉角度,可以把非對角線單元中的值與對角線單元中的共軛復數相乘,然后除以復數的倒數即可。相除實際是用乘法的方式完成的,即在觀察到函數接近線性的時候,乘以根據定義的間隔的多項式近似值計算出的倒數。圖 3 顯示了采用這種近似值在對角線脈動單元中完成這種復雜旋轉的信號流程圖。
圖 3. 對角線脈動單元結構圖
發(fā)送到非對角線單元中的數據是旋轉矢量的同相部分和正交部分除以相應的近似值得出的結果。我們不僅通過在對角線單元和非對角線單元采用流水線架構實現了高數據吞吐量,同時還通過對跨5個信道的硬件進行時分復用的方式控制了近似值模塊和復雜乘法器引起的時延。
對 4x4 矩陣,我們使用了 1 個對角線單元和 7 個非對角線單元。分解單個矩陣所花的處理時間為 4x4=16 個數據周期,而該設計交付數據的速度是每三個時鐘周期一個樣本,因此分解單個矩陣的所用的總時長為 3x4x4=48 個時鐘周期(低于可用的 64 個時鐘周期)。我們對分解后的矩陣使用了回代法(back subsTItution),同時以相同的 TDM 方式進一步進行了重新排序操作。
球形檢測器
球形檢測器采用PED 單元進行范數計算。根據樹的層次,我們采用了三種不同類型的 PED 單元。根節(jié)點 PED 模塊負責計算所有可能的 PED。二級 PED 模塊針對上一級計算得出的 8 個幸存路徑計算出 8 個可能的 PED。這樣在樹的下一級索引中,我們就有 64 個生成的 PED。第三種類型的PED模塊用于其它樹級,負責計算上一級計算出的所有 PED 的最鄰近的節(jié)點 PED。
球形檢測器 (SD) 的流水線架構可以在每個時鐘周期中處理數據。其結果就是樹的每級只需要一個 PED 模塊。因此,對 4x4 64-QAM 系統而言,PED 單元的總數為 8,與樹的級數相等。
SD 可以采用硬解碼和軟解碼兩種類型的解碼技術。硬解碼能夠用貫穿樹的各級的最小距離矩陣度量次序;軟解碼,用對數似然比來代表輸出的每個比特。對數似然比一般被當作優(yōu)先輸入值提供給信道解碼器,比如 turbo 解碼器。
評論