1. 程式人生 > 其它 >自適應MSER波束形成輔助接收機的MATLAB模擬

自適應MSER波束形成輔助接收機的MATLAB模擬

目錄

一、理論基礎

二、MATLAB程式

三、模擬結論


一、理論基礎

運用波束形成技術,利用麥克風陣列估計指定方向上的混有噪聲和干擾的期望訊號。這些麥克風陣元位於不同的空間位置,對聲波進行空間取樣,然後對取樣訊號進行處理以衰減干擾訊號並提取期望訊號。這樣就得到一個特定的陣列空間響應,其主瓣指向期望訊號而對干擾進行陷波。

自適應波束形成能夠分離在相同載波頻率上傳輸的使用者訊號,因此提供了在分空間多重進接場景中支援多使用者的實用手段。此外,為了進一步提高可實現的頻寬效率,高吞吐量正交幅度調製QAM方案在許多無線網路標準中變得流行,特別是在最近的WiMax標準中。多天線輔助多使用者系統的自適應波束形成輔助檢測其採用高階QAM信令。

傳統上,最小均方誤差(MMSE)自適應波束形成輔助接收機的設計被認為是最先進的。然而,最近工作[1]提出了一種新的波束形成輔助最小符號誤位元速率(MSER)設計並且證明了這種MSER設計提供了顯著的效能增強,在可實現的符號錯誤率方面超過標準MMSE設計。該MSER波束形成設計在此貢獻中得到充分發展。特別是MSER的自適應實現詳細研究了波束形成演算法,即最小符號誤位元速率演算法。在模擬中評估了所提出的自適應MSER波束形成方案,並與自適應MMSE波束形成基準。

該演算法的流程和理論公式如下:

二、MATLAB程式

clc;
clear;
close all;
warning off;

SNR_set = [10:1:24];
BER = 1;
nRx = 4;
nTx = 3;
frame_length = 1000;
Bers = [];
%論文table 2
alpha = [0,-70,65,32];
SIR = [0,0,0,0];
for SNR = SNR_set;
N0 = 1/(10^(SNR/10));
delta2 = N0;
error_count = 0;
bit_count = 0;
index = 0;
ERR_NUM = [];
tmps = 0;
while error_count < 500000
index = index+1;
for kk=1:nTx
bits(kk,:) = round(rand(1,frame_length));
symbols(kk,:) = qammod(bits(kk,:),16);
end
%transmit signal
s = symbols;
u = reshape(s,nTx,nRx,length(s)/nRx);
%Channel
h = 1/sqrt(2)*[randn(nRx,nTx,length(s)/nRx) + j*randn(nRx,nTx,length(s)/nRx)];
for ij = 1:nTx
p(:,ij,:) = h(:,ij,:).*exp(j*alpha(ij)*pi/180);
end
%mmse beamforming
WK = [];
WK2 = [];
w = [];
LMS = zeros(1,length(s)/nRx);
dt = [];
for i=1:length(s)/nRx
for ii = 1:length(SIR)
u2(:,ii) = u(:,ii,i)*10^(SIR(ii)/10);
end
XN(:,:,i)= awgn(u2,SNR,'measured');
%定義接收訊號
w(:,:,i) = inv(p(:,:,i)*p(:,:,i)'+2*delta2^2*eye(nRx))*p(:,1,i);
Nsb = nRx;
M = nRx;
r =(2*sqrt(M)-2)/sqrt(M);
if i == 1
WK = w(:,:,i)'*p(:,:,i);
dt = -0.0001*[ones(1,Nsb)]';
else
bk = bits(1,nRx*(i-2)+1:nRx*(i-1));
bk = 2*bk-1;
x1_ = bk;
p1 = p(:,1,i);
yr = real(yhat(:,:,i-1));
cr = real(w(:,:,i));
for iii = 1:Nsb
l = iii;
ul = 2*l-sqrt(M) - 1;
Rt{iii} = exp(-(yr(iii) - cr(iii)*(ul-1))^2/(2*delta2^2))*((yr(iii) - cr(iii)*(ul-1))*w(:,:,i) - x1_(iii) + (ul-1)*p1);
end
PER= r/(2*Nsb*sqrt(2*pi)*delta2) * (Rt{1} + Rt{2} + Rt{3} + Rt{4});
yi = imag(yhat(:,:,i-1));
ci = imag(w(:,:,i));
for iii = 1:Nsb
q = iii;
uq = 2*q-sqrt(M) - 1;
It{iii} = exp(-(yi(iii) - ci(iii)*(uq-1))^2/(2*delta2^2))*((yi(iii) - ci(iii)*(uq-1))*w(:,:,i) + sqrt(-1)*x1_(iii) + (uq-1)*p1);
end
PEI= r/(2*Nsb*sqrt(2*pi)*delta2) * (It{1} + It{2} + It{3} + It{4});
PEB= PER + sqrt(-1)*PEI;
for is = 1:length(PEB)
if isnan(abs(PEB(is))) == 1
PEB(is) = 1;
end
end
WWt(:,i-1) = PEB;
if i>3
fai=max(min((abs(WWt(:,i-1)).^2)./(abs(WWt(:,i-2)).^2),1),0);
else
fai=ones(nRx,1);
end
dt = fai.*dt - PEB;
miu = 5e-6;
WK = WK + miu*[dt(1:nTx)]';
end
WK = WK/(max(abs(WK)));
yhat(:,:,i) = WK*XN(:,:,i);
R1 = real(yhat(:,:,i));
I1 = imag(yhat(:,:,i));
s_hat(:,:,i)= qamdemod(R1+sqrt(-1)*I1,16);
end
s_hat1 = squeeze(s_hat);
recovered_bits = reshape(s_hat1,1,length(s));
ERR_NUM = sum(recovered_bits ~= bits(1,:));
%異常錯誤不進行統計
% if index <= 200
% tmps = tmps + ERR_NUM;
% else
% if ERR_NUM/(tmps/200) < 20
SNR
error_count
error_count = error_count + ERR_NUM;
bit_count = bit_count + frame_length;
% end
% end
end
%Calculate the BER
BER = error_count/bit_count;
Bers = [Bers,BER];
end
error_count
bit_count
figure;
semilogy(SNR_set,Bers,'b-o');
axis([10,40,1.0001e-6,1]);
ylabel('BER');
xlabel('SNR');
grid on
% save r2ber.mat SNR_set Bers

三、模擬結論

模擬結果如下:

提出了一種用於多天線輔助的自適應MSER波束形成技術採用高通量QAM信令的多使用者通訊系統。已經證明了MSER波束形成設計可以在可實現系統的SER方面提供比標準MMSE設計顯著的效能增強。它已經還已經證明,MSER波束形成設計提供了更高的使用者容量與傳統的MMSE波束形成相比,在遠近感測器中更為魯棒設計已經使用稱為LSER技術的隨機梯度自適應演算法實現了MSER波束形成解決方案的自適應實現。模擬研究結果清楚地表明,自適應LSER波束形成能夠:在快速衰落條件下成功執行,其效能始終優於自適應LMS波束形成基準。

A01-14