⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2v4.m

📁 论文仿真原型程序,仿真四种(ZF,ZF-SIC,MMSE,MMSE-SIC) Vblast接收的检测性能
💻 M
字号:
% 论文仿真原型程序,仿真四种(ZF,ZF-SIC,MMSE,MMSE-SIC) Vblast接收的检测性能,绘制误比特率~信噪比曲线。
% 发端初始化===============================================================
% 发射天线数tx,接收天线数rx,发射矩阵长度L(帧长)
tx=2;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=2,rx=4');
 xlabel('EbN0(dB)');
 ylabel('误比特率');
 title('ZF接收性能与发送天线关系')
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -