目錄
1.算法運行效果圖預覽
2.算法運行軟件版本
3.部分核心程序
4.算法理論概述
5.算法完整程序工程
1.算法運行效果圖預覽
2.算法運行軟件版本
matlab2022a
3.部分核心程序
.....................................................................
idxx=0;
while idxx<20
.....................................................................%信道生成receivedW = collectPlaneWave(GM.BSarray, [y_1*(1/sqrt(path_loss_t1)) y_2*(1/sqrt(path_loss_t2)) y_3*(1/sqrt(path_loss_i1)) y_3*(1/sqrt(path_loss_i2))], [t1Angles' t2Angles' i1Angles' i2Angles'], Pars.fc);%添加噪聲chOut = awgn(receivedW, snr, 'measured');%在終端1上沒有波束賦形的情況下計算BERsubplot(3,2,3);title='終端1上沒有波束賦形的星座圖';bits=func_OFDM_demod(y_ofdm,chOut(:,end),NOrder,true,title);[numbError,ratio]=biterr(x_1,bits);%在終端2上沒有波束賦形的情況下計算BERsubplot(3,2,4);title='終端2上沒有波束賦形的星座圖';bits=func_OFDM_demod(y_ofdm,chOut(:,end),NOrder,true,title);[numbError,ratio]=biterr(x_2,bits);%相移波束賦形% 終端1通過PhaseShiftBeamformer進行波束賦形beamformerV1 = phased.PhaseShiftBeamformer('SensorArray',GM.BSarray,'OperatingFrequency',Pars.fc,'PropagationSpeed',Pars.c,'Direction',t1Angles','WeightsOutputPort',true);[y1,w1] = beamformerV1(chOut);%在終端1上使用相移波束賦形的情況下計算BERsubplot(3,2,5); title='終端1上使用相移波束賦形的星座圖';bits=func_OFDM_demod(y_ofdm,y1,NOrder,true,title);[numbError,ratio]=biterr(x_1,bits);% 終端2通過PhaseShiftBeamformer進行波束賦形beamformerV2 = phased.PhaseShiftBeamformer('SensorArray',GM.BSarray,'OperatingFrequency',Pars.fc,'PropagationSpeed',Pars.c,'Direction',t2Angles','WeightsOutputPort',true);[y2,w2] = beamformerV2(chOut);%使用LMS算法進行波束賦形subplot(3,2,6); title='終端2上使用相移波束賦形的星座圖';bits=func_OFDM_demod(y_ofdm,y2,NOrder,true,title);[numbError,ratio]=biterr(x_2,bits);figure(2);subplot(2,2,[1,2]);polarplot( deg2rad(az_t1),t1_dist_BS/max(t1_dist_BS,t2_dist_BS), 'or','LineWidth',1.5)hold onpolarplot( deg2rad(az_t2),t2_dist_BS/max(t1_dist_BS,t2_dist_BS),'ob','LineWidth',1.5)hold onH=pattern(GM.BSarray,Pars.fc,[-180:180],el_t1,'PropagationSpeed',Pars.c,'Type','power','CoordinateSystem','polar','Weights',conj(w1));hold on polarplot(H,'r')H=pattern(GM.BSarray,Pars.fc,[-180:180],el_t2,'PropagationSpeed',Pars.c,'Type','power','CoordinateSystem','polar','Weights',conj(w2));hold on polarplot(H,'b')%計算LMS權重optimalWeight1 = func_LMS(chOut,y_1,numArray); optimalWeight2 = func_LMS(chOut,y_2,numArray); %將接收信號與權重相乘y1=chOut*((optimalWeight1));y2=chOut*((optimalWeight2)); %在終端1上使用LMS波束賦形的情況下計算BERsubplot(2,2,3);title='終端1上使用LMS的星座圖';bits=func_OFDM_demod(y_ofdm,(y1),NOrder,true,title);[numbError,ratio]=biterr(x_1,bits);%在終端2上使用LMS波束賦形的情況下計算BERsubplot(2,2,4);title='終端2上使用LMS的星座圖';bits=func_OFDM_demod(y_ofdm,(y2),NOrder,true,title);[numbError,ratio]=biterr(x_2,bits);pause(1);end
0044
4.算法理論概述
? ? ? ? 在移動通信系統中,由于信號傳播環境的復雜性,通信信號受到多徑效應、干擾和噪聲的影響,導致信號質量下降。自適應波束成形技術可以在多天線接收端對信號進行處理,以增強感興趣的信號,并抑制不需要的干擾和噪聲。
? ? ? ? 自適應波束成形技術的核心思想是通過調整多個天線的權重系數,使得在特定方向上的信號增益最大化,同時減小其他方向上的信號增益。其中,最小均方(LMS)算法是一種常用的自適應算法,用于計算權重系數。以下是LMS自適應波束成形的基本原理:
LMS自適應波束成形技術的實現過程包括以下步驟:
數據采集: 從多個天線接收信號,并對信號進行預處理,如去除直流分量等。
初始化權重: 初始時,設置權重向量的初始值,通常為隨機值或單位向量。
計算輸出: 根據當前權重向量和接收信號計算輸出信號。
計算誤差: 計算期望響應與實際輸出之間的誤差信號。
更新權重: 使用LMS算法更新權重向量的系數。
重復迭代: 重復進行2-5步驟,直至誤差信號達到滿意的水平或達到預設的迭代次數。
LMS自適應波束成形技術在移動通信系統中有廣泛的應用,包括但不限于以下領域:
無線通信: 在多天線接收端,通過抑制干擾和多徑效應,提高信號質量和通信效率。
無線局域網(WLAN): 用于提升Wi-Fi信號覆蓋范圍和穩定性。
無線傳感器網絡: 用于在復雜的信號環境中,準確地接收和識別傳感器數據。
? ? ? ?LMS自適應波束成形技術是一種重要的信號處理方法,通過調整天線的權重系數,實現對特定方向上信號的增強和干擾的抑制。在移動通信系統中,它可以顯著提升信號的質量和可靠性,適用于多種應用場景。
5.算法完整程序工程
OOOOO
OOO
O