📄 bd1.m
字号:
% 仿真4*4MIMO(QPSK调制)系统 MMSE Vblast接收机的检测性能,绘制误比特率~信噪比曲线。
% 发端
% 发射天线数tx,接收天线数rx,发射矩阵长度L(帧长)
tx=4;
rx=4;
L=10000;
Modulation='QPSK';
EbNo=[0:5:20];
B=30000;
Ts=1/24300;
SNR=EbNo-10*log10(Ts*B);
A=randint(tx*L,1); % 信源A
X=zeros(tx,L); % 经过QPSK调制的V-Blast发射矩阵X
for k=1:tx %
X(k,:)=((-1).^(A(k:tx:end)+1))'; %
end %
% 信道
% Rayleigh信道
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)=H(:,:,k)*X(:,k);
end
%MMSE检测
disp('MMSE')
berm=[];
for m=SNR
m
snr=10^(m/10);
R_noised=R+sqrt(1/snr)*n;
x=[];
a=zeros(tx*L,1);
for t=1:L
r=R_noised(:,t);
HH=H(:,:,t);
xtemp=zeros(tx,1);
w=inv(HH'*HH+(1/snr)*eye(tx))*HH';
y=w*r;
xtemp=(y>=0)-(y<0)+0;
x=[x,xtemp];
end
for k=1:tx
a(k:tx:end)=(x(k:tx:end)+1)/2;
end
[errbit,temp_ber]=biterr(A,a);
berm=[berm,temp_ber];
end
semilogy(EbNo,berm,'s- b')
legend('MMSE');
xlabel('Eb/No(dB)');
ylabel('误比特率');
title('MMSE检测效果');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -