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

📄 blind_dec.m

📁 CDMA盲多用户检测 matlab源程序 直接执行即可 保证正确
💻 M
字号:
function brate=blind_dec()
%%%新新 %PN2=[0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0]  51,45
PN2=[-1 -1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 1 -1 1 1 1 -1 1 1 1 -1 1 -1 -1 -1 1 1 1 -1 ];
%PN4 =[ 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 0 1 0] 51,67
PN4=[-1 -1 -1 -1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 1 1 1 -1 -1 -1 1 1 -1 1 1 1 -1 1 -1 ];
%PN3=[ 0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 1 1]51,76
  PN3=[-1 -1 -1 -1 -1 -1 1 1 1 -1 -1 -1 -1 1 -1 -1 -1 -1 1 1 -1 -1 1 -1 -1 1 -1 1 1 1 1];
   %PN1 =[0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1]76,67
  PN1=[-1 -1 -1 -1 -1 1 1 1 -1 -1 1 1 -1 1 1 1 1 1 -1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1 ];
   %PN4=[ -1 1 1 1 -1 -1 1 1 -1 1 1 1 1 1 -1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1 1 -1 -1 -1];
%PN3=[ -1 -1 1 1 1 -1 -1 1 1 -1 1 1 1 1 1 -1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1 1 -1 -1];
%PN2=[ -1 -1 -1 1 1 1 -1 -1 1 1 -1 1 1 1 1 1 -1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1 1 -1];
%PN1=[ -1 -1 -1 -1 1 1 1 -1 -1 1 1 -1 1 1 1 1 1 -1 1 -1 -1 -1 1 -1 -1 1 -1 1 -1 1 1];
%gold码归一化
goldseq1 = 1/sqrt(31)*PN1;
goldseq2 = 1/sqrt(31)*PN2;
goldseq3 = 1/sqrt(31)*PN3;
goldseq4 = 1/sqrt(31)*PN4;
N=10000;
 %产生第一个用户数据
    temp=rand;
    if (temp<0.5),
        data1=-1;
    else
        data1=1;
    end;
    %重复产生的比特
    for j=1:N,
       b1(j)=data1;
    end;
   
    %产生第二个用户数据
    temp=rand;
    if (temp<0.5),
        data2=-1;
    else
        data2=1;
    end;
    %重复产生的比特
    for j=1:N,
       b2(j)=data2;
    end;
   
    %产生第三个用户数据
    temp=rand;
    if (temp<0.5),
        data3=-1;
    else
        data3=1;
    end;
    %重复产生的比特
    for j=1:N,
       b3(j)=data3;
    end;
     
    %产生第四个用户数据
    temp=rand;
    if (temp<0.5),
        data4=-1;
    else
        data4=1;
    end;
    %重复产生的比特
    for j=1:N,
       b4(j)=data4;
    end; 
 
%4个信号解相关检测
S=[goldseq1' goldseq2' goldseq3' goldseq4'];
%S=goldseq(1:4,:)';
R=S'*S;
iR=inv(R);
e1 =zeros(4,1);
e1(1) =1;
d1 =S*iR*e1;
for SNR =0:16
  %r1 =goldseq(1,:)'*b(1,:);
  r1 =goldseq1'*b1;
  r1=awgn(r1,SNR);
   %r2 =goldseq(2,:)'*b(2,:);
  r2 =goldseq2'*b2; 
r2=awgn(r2,SNR);
% r3 =goldseq(3,:)'*b(3,:);
r3 =goldseq3'*b3;
r3=awgn(r3,SNR);
 %r4 =goldseq(4,:)'*b(4,:);
 r4 =goldseq4'*b4;
r4=awgn(r4,SNR);
 r =r1+r2+r3+r4;
    y1 =d1'*r;
    y1 =sign(y1);
    [bnum(SNR+1),brate(SNR+1)] = symerr(y1,b1);
end;  
SNR = 0:16;
semilogy(SNR,brate,'-r');
title('盲多用户解相关检测');

⌨️ 快捷键说明

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