1.演算法執行效果圖預覽
(完整程式執行後無水印)
2.演算法執行軟體版本
matlab2022a
3.部分核心程式
(完整版程式碼包含詳細中文註釋和操作步驟影片)
% 計算符號能量,歸一化,以及其他引數 Energy = sqrt(mean(abs(Maps).^2)); Maps = Maps/Energy; Lmaps = length(Maps); bps = log2(Lmaps); bits = de2bi(0:Lmaps-1,bps,'left-msb'); % 生成隨機位元序列,對映到符號,新增噪聲,構建通道矩陣等 Xbits = randi([0 1],Us,bps); Ybits = bi2de(Xbits,'left-msb')+1; Zmod = Maps(Ybits).'; Noise = (randn(Us,1)+1i*randn(Us,1))/sqrt(2); H = (randn(Us,Ns)+1i*randn(Us,Ns))/sqrt(2); H1 = sqrt(1 - Herr)*H + sqrt(Herr)*(randn(Us,Ns)+1i*randn(Us,Ns)); % 遍歷預編碼器型別 for j3=1:length(Pcd_sel) % 遍歷每個SNR值 for k=1:length(SNRs) N0 = 10.^(-SNRs(k)/10); if strcmp(Pcd_sel{j3},'ZF')==1 [x,beta] = func_zf(Zmod,H1); end if strcmp(Pcd_sel{j3},'WF')==1 [x, beta, ~] = func_WF(Zmod,H1,N0); end if strcmp(Pcd_sel{j3},'MRT')==1 [x, beta, ~] = func_MRT(Zmod,H1); end if strcmp(Pcd_sel{j3},'ADMM')==1 wb = 1; [x, beta, vr] = func_ADMM(Zmod,H1,N0); Vr_sets = [Vr_sets vr]; end y = H*x + sqrt(N0)*Noise; Y_ = beta*y; [~,Iidx] = min(abs(Y_*ones(1,length(Maps))-ones(Us,1)*Maps).^2,[],2); bhat = bits(Iidx,:); err = (Ybits~=Iidx); BER(m,j3,k) = BER(m,j3,k) + sum(sum(Xbits~=bhat))/(Us*bps); end end end 154
4.演算法理論概述
在現代無線通訊系統中,多使用者多輸入多輸出(MU-MIMO, Multi-User Multiple-Input Multiple-Output)技術是提高頻譜效率和資料傳輸速率的關鍵。然而,高精度的數字模擬轉換器(DAC)在大規模MIMO系統中成本高昂,能耗巨大,因此基於1-bit DAC的預編碼技術應運而生,它透過僅使用1-bit的量化來顯著降低硬體複雜度和功耗。本文將深入探討基於1-bit DAC的MU-MIMO系統中的非線性預編碼演算法,並與傳統線性預編碼技術,如ZF(Zero-Forcing)、WF(Water-Filling)、MRT(Maximum Ratio Transmission)以及較為先進的ADMM(Alternating Direction Method of Multipliers)演算法進行對比。
4.1 基於1-bit DAC的非線性預編碼背景
在MU-MIMO系統中,預編碼的目的是將多路訊號對映到天線陣列上,以在接收端實現使用者間的干擾消除或最小化。當使用1-bit DAC時,訊號只能被量化為+1或-1,這導致預編碼過程變得非常具有挑戰性,因為它本質上是非線性的,需要設計特定的演算法來逼近理想線性預編碼的效能。
訊號量化可表示為:
其中,sk是原始的複數預編碼訊號,s^k是量化後的訊號,sign(⋅)sign(⋅)函式根據訊號的實部和虛部確定量化結果。
一種常見的非線性預編碼方法是基於符號最大化準則,即尋找一組預編碼向量,最大化各個使用者訊號經過量化後的能量,同時考慮相互間的干擾。對於一個基站天線數為N,服務使用者數為K的系統,接收訊號模型可表示為:
4.2 ZF(Zero-Forcing)
ZF預編碼的目的是完全消除使用者間的干擾,其預編碼矩陣WZF滿足:
其中,H是所有使用者通道矩陣,H∗是H的共軛轉置。
4.3 WF(Water-Filling)
WF演算法是一種功率分配策略,用於最佳化每個子載波的發射功率,以最大化系統總吞吐量。其目標是解決如下最佳化問題:
其中,p是功率分配向量,Ptotal是總功率預算,SINRk是第k個使用者的訊雜比。
4.3 MRT(Maximum Ratio Transmission)
MRT預編碼是基於通道增益的,目的是最大化訊號能量與干擾加噪聲比,其預編碼向量為:
4.4ADMM(Alternating Direction Method of Multipliers)
ADMM是一種迭代最佳化演算法,被用於解決帶約束的最佳化問題,如在MU-MIMO系統中結合功率約束最佳化預編碼矩陣。ADMM透過交替最佳化原始問題的不同子問題,達到全域性最優解或近似最優解。