?? 4v4.m
字號:
% 論文仿真原型程序,仿真四種(ZF,ZF-SIC,MMSE,MMSE-SIC) Vblast接收的檢測性能,繪制誤比特率~信噪比曲線。
% 發端初始化===============================================================
% 發射天線數tx,接收天線數rx,發射矩陣長度L(幀長)
tx=4;rx=4;L=10000;
Modulation='BPSK';
EbN0=[0:5:20];
B=30000;Ts=1/24300;
% 建立EbN0與SNR之間的換算關系
SNR=EbN0-10*log10(Ts*B);
% 信源A
A=randint(tx*L,1);
% 經過BPSK調制的V-Blast發射矩陣X
X=zeros(tx,L);
for k=1:tx
X(k,:)=(-1).^(A(k:tx:end)+1);
end
% 信道傳輸=================================================================
% 快衰落Rayleigh信道H
H=sqrt(1/2)*(randn(rx,tx,L)+i*randn(rx,tx,L));
% 均值為0方差為1的高斯白噪聲n
n=sqrt(1/2)*(randn(rx,L)+i*randn(rx,L));
% 未疊加噪聲的接收信號R
R=zeros(rx,L);
for k=1:L
R(:,k)=sqrt(1/tx)*H(:,:,k)*X(:,k);
end
% 檢測
%ZF========================================================================
disp('berz');
berz=[];
% 在不同的信噪比下計算ZF接收機誤比特率berz
for m=SNR
m
% 每個子信道的平均信噪比為snr的接受信號R_noised
snr=10^(m/10);
R_noised=R+sqrt(1/snr)*n;
x=[];
a=zeros(tx*L,1);
% 逐時隙對接收符號矢量進行檢測,合并得到一幀發射矩陣X的估計x
for t=1:L
r=R_noised(:,t);
% 迫零矩陣G
G=pinv(H(:,:,t));
y=G*r;
xtemp=(y>=0)-(y<0)+0;
x=[x,xtemp];
end
% 從x求A的估計a
for k=1:tx
a(k:tx:end)=(x(k:tx:end)+1)/2;
end
% 比較A和a計算錯值率temp_ber
[errbit,temp_ber]=biterr(A,a);
berz=[berz,temp_ber];
end
figure
semilogy(EbN0,berz,'o- b'),grid on
legend('tx=4,rx=4');
xlabel('EbN0(dB)');
ylabel('誤比特率');
title('ZF接收性能與發送天線關系')
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -