MU_MIMO_MLD_2user.zip

  • 知乎
    了解作者
  • matlab
    开发工具
  • 1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 4
    下载次数
  • 2018-11-09 11:33
    上传日期
此程序为MUMIMO两个用户的学习程序,里面包含了BD方法,个用户接收端分贝使用了MLD
MU_MIMO_MLD_2user.zip
  • MU_MIMO_MLD_2user.m
    3.5KB
内容介绍
%****************22MIMO Nulling****************************** clear,clc Tx=4; Rx=4; Ux1=2; Ux2=2; maxbit=2048; length=maxbit/2; mini_err=100000; error=0; skip=5; % sn=30; %//////////////////////SN LOOP////////////////////////// for sn=0:skip:30; %/////////////////////////////////////////////////////// snr=10^(sn/10); sd=sqrt(0.5/(snr*2)); error=0; cnt=0; while(error<=mini_err) % Error Control cnt=cnt+1; %****************H Matrix************************ r1=1/sqrt(2.0); path=1;%Numder of path dur=0;%Ratio of DU % ch h11 h12 h21 h22 for ch=1:Tx*Tx gsum(ch)=0; for k=1:path pr(ch,k) = (1.0)*sqrt(-log(rand));%rand swing prc(ch,k)=pr(ch,k)*exp((2*pi*rand*j)); ga(ch,k)=10^(-dur*(k-1)/20.0);%%dB transformation gsum(ch) = gsum(ch) + abs(ga(ch,k))^2; end for k=1:path ga(ch,k) = ga(ch,k)/sqrt(gsum(ch))*prc(ch,k); end end h=reshape(ga,Rx,Tx); [u1,s1,v1]=svd(h(3:4,:)); [u2,s2,v2]=svd(h(1:2,:)); m=[v1(:,3:4),v2(:,3:4)]; hm=h*m; h1_ch=hm(1:2,1:2); h2_ch=hm(3:4,3:4); %*****************TRANSMIT SIGNAL VECTORS***************** ip = (2*(rand(Tx,length)>0.5)-1) + j*(2*(rand(Tx,length)>0.5)-1); % QPSK signal generation s = (1/sqrt(2))*ip; % normalization of energy to 1 tran_s1=s(1:2,:); tran_s2=s(3:4,:); ss=reshape(s,1,Tx*length); %*******************Receiver *********************** y1(1,:)=hm(1,1)*tran_s1(1,:)+hm(1,2)*tran_s1(2,:)... +hm(1,3)*tran_s2(1,:)+hm(1,4)*tran_s2(2,:)+sd*sqrt(Ux1)*(randn+j*randn); y1(2,:)=hm(2,1)*tran_s1(1,:)+hm(2,2)*tran_s1(2,:)... +hm(2,3)*tran_s2(1,:)+hm(2,4)*tran_s2(2,:)+sd*sqrt(Ux1)*(randn+j*randn); y2(1,:)=hm(3,1)*tran_s1(1,:)+hm(3,2)*tran_s1(2,:)... +hm(3,3)*tran_s2(1,:)+hm(3,4)*tran_s2(2,:)+sd*sqrt(Ux2)*(randn+j*randn); y2(2,:)=hm(4,1)*tran_s1(1,:)+hm(4,2)*tran_s1(2,:)... +hm(4,3)*tran_s2(1,:)+hm(4,4)*tran_s2(2,:)+sd*sqrt(Ux2)*(randn+j*randn); %*************MLD********************************* rep_matr=zeros(Ux1,4^Ux1); for k=1:Ux1 for l=1:4 switch l case 1 sb=r1*(1+j); case 2 sb=r1*(1-j); case 3 sb=r1*(-1+j); case 4 sb=r1*(-1-j); end raw1=ones(1,4^(k-1))*sb; if(l==1) raw=raw1; else raw=[raw,raw1]; end end rep_matr(k,1:4^Ux1)=repmat(raw,1,4^(Ux1-k)); end repmat_y1=h1_ch*rep_matr;%ユーザ1、2のレプリカ受信ベクトル生成 repmat_y2=h2_ch*rep_matr; %********Min(||y-Hs||^2)********************* for i=1:length % User1 for k=1:4^Ux1 %ユークリット距離最小のものを推定結果とする。 mse1(k)=sum(abs(y1(:,i)-repmat_y1(:,k)).^2); end [minvalue1,index1]=min(mse1); if (i==1) detec_x1=rep_matr(:,index1); else detec_x1=[detec_x1,rep_matr(:,index1)]; end % User2 for k=1:4^Ux2 %ユークリット距離最小のものを推定結果とする。 mse2(k)=sum(abs(y2(:,i)-repmat_y2(:,k)).^2); end [minvalue2,index2]=min(mse2); if (i==1) detec_x2=rep_matr(:,index2); else detec_x2=[detec_x2,rep_matr(:,index2)]; end end detec_x=[detec_x1;detec_x2]; xx=reshape(detec_x,1,Tx*length); % counting the errors error= error+size(find([real(ss)-real(xx)]),2)+size(find([imag(ss)-imag(xx)]),2); end % end of while %===================================================================== % BER %===================================================================== BER(sn/skip+1,1)=error/(2*Tx*length*cnt); sn,BER if(BER(sn/skip+1,1)<=1.e-5) break; end end % END OF SN
评论
    相关推荐
    • MU_MIMO.zip
      多用户MIMO预编码技术的对比,bd预编码,zf预编码,mmse预编码等,对学习多用户mimo系统很有帮助。
    • MU_MIMO.rar
      多用户多输入多输出系统中的信道估计方法,包含matlab代码和C代码
    • MU-MIMO.zip
      IMPLEMENTING MIMO WIRELESS SYSTEM
    • MUMIMO.zip
      本文章主要讲述了多用户mimo的关键技术,对多用户mimo具有很好的把握
    • mumimo.zip
      多用户MIMO的文献参考,对您有很大的帮助。谢谢
    • MU_MIMO.zip
      multi user MIMO system
    • MU-MIMO.rar
      decrible for multi user multiple input
    • 23 mimo信道模型案例.zip
      MIMO系统由于在空间中具有多个发送和接收天线,因此其信道模型也具有其特有的复杂性。尽管具有这种复杂性,对MIMO信道进行建模仍然十分必要。因为在MIMO传输技术的研发过程中,需要对新技术进行链路级或系统级的仿真...
    • 复现mimo.zip
      具体内容是控制激活天线的数量来完成massive mimo的波束赋形.复现的文献在里面IEEEAccess2018-Oct-TsU(1)
    • 99273911MU_MIMO.zip
      多用户MIMO预编码的Matlab代码,亲测可用,注释清晰且完整,可二次开发!