dec.m

来自「adaptive mmse space-time multiuser detec」· M 代码 · 共 62 行

M
62
字号
function pd=dec(snrindb,PN1,PN2,PN3,PN4)
r11=1;r12=sum(PN1.*PN2)/31;r13=sum(PN1.*PN3)/31;r14=sum(PN1.*PN4)/31;
  r22=1;r21=sum(PN1.*PN2)/31;r23=sum(PN2.*PN3)/31;r24=sum(PN2.*PN4)/31;
  r33=1;r31=sum(PN1.*PN3)/31;r32=sum(PN2.*PN3)/31;r34=sum(PN3.*PN4)/31;
  r44=1;r41=sum(PN1.*PN4)/31;r42=sum(PN2.*PN4)/31;r43=sum(PN3.*PN4)/31;
  R=[r11 r12 r13 r14;r21 r22 r23 r24;r31 r32 r33 r34;r41 r42 r43 r44];
  snr=10^(snrindb/10);
%噪声方差假设为1,信号的幅度也设为1
sgma=1;
%比特能量
Eb=2*sgma^2*snr;
%码片能量
%E_chip=Eb/Lc;
N=10000;
numoferr=0;
%产生10000个数据比特
for i=1:N;
    %产生第一个用户数据
    temp=rand;
    if (temp<0.5);
        data1=-1;
    else
        data1=1;
    end;
    %产生第二个用户数据
    temp=rand;
    if (temp<0.5);
        data2=-1;
    else
        data2=1;
    end;
    %产生第三个用户数据
    temp=rand;
    if (temp<0.5),
        data3=-1;
    else
        data3=1;
    end;
    %产生第四个用户数据
    temp=rand;
    if (temp<0.5);
        data4=-1;
    else
        data4=1;
    end;
    b=[data1 data2 data3 data4]';
  v=[sqrt(Eb) sqrt(Eb) sqrt(Eb) sqrt(Eb)];
  w=diag(v);
    y=R*w*b+sgma*randn(1,4)';
    y1=inv(R*w)*y;
    for j=1:4;
        if y1(j)<0;
            b1(j)=-1;
        else b1(j)=1;
            if b1(j)~=b(j);
                numoferr=numoferr+1;
            end;
        end;
    end;
end;
pd=numoferr/(4*N);
    

⌨️ 快捷键说明

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