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

📄 opdetection.m

📁 最优多用户检测
💻 M
字号:
clc
clear
fbconnection=[1 0 0 0 0 1]; % fbconnection为m序列的一个本原多项式序列
mseq=m_sequence(fbconnection); % 产生m序列
fbconnection1=[1 0 0 0 0 1];
fbconnection2=[1 1 0 0 1 1]; % fbconnection1,fbconnenction2为m序列的一对优先对
goldseq=gold_seq(fbconnection1,fbconnection2); % 产生gold序列
N=2^length(fbconnection)-1; % N为gold序列长度,即为扩频倍数(扩频增益)
 ind1=find(mseq==0);
 mseq(ind1)=-1; % 极性变换
ind2=find(goldseq==0);
goldseq(ind2)=-1;% 极性变换
bit_number=800; % bit_number为用户数据长度
% K=12; % K为DS-CDMA信号中用户个数
% n=400;
l=1;
snr=-2;
K=10;
% K1=2:2:16;
% n1=length(K1);
% Ber=zeros(1,n1);
% for l=1:n;
% a=K1(1);
% b=K1(n1);
% for K=a:2:b
    t=0;
    data=zeros(K,bit_number);
    for i=1:K
        data(i,:)=randsrc(1,bit_number);
    end % 产生K*bit_number的用户混合矩阵
    
%     power1=10;% 假设第一个用户为期望用户,发射功率为0dB,其他用户为干扰用户,干扰功率为InterpowerdB
%     Interpower=[10 10 10 10 10 10 10,10,10];
%     Power=[power1,Interpower];
    % % j=1;

    r=zeros(N,bit_number);
    for k=1:K
        r1=zeros(N,bit_number);
        r1=goldseq(k,:)'*data(k,:);
        r1=awgn(r1,snr);
        r=r+r1;
    end
    B=goldseq(1:K,:)';
    R=B'*B;
    y=B'*r;
    for s=1:bit_number
        b=zeros(1,K);
        for m=1:2^K-1         %%2^N
            base2=dec2base(m,2);%10 to 2
            temp=zeros(1,length(base2));
            for j=1:length(base2)
                temp(j)=base2(j)-48;
            end
            b(1,K-length(base2)+1:end)=temp;
            ind3=find(b==0);
             b(ind3)=-1;
            f(m)=2*b*y(:,s)-b*R*b';
            if m>1&&f(m)>f(1);
                f(1)=f(m);
                ind=m;
                ind4=b;
            end
        end
        %     data1=data';
       for k=1:K
            if ind4(1,k)~=data(k,s);
                t=t+1;
            end;
       end
    end
    Ber(l)=t/(K*bit_number)
    l=l+1;
%     [number,ber1]=symerr(ind1,data1(1,:));
    %     Ber(1,snr+3)=Ber(1,snr+3)+number;
    %     Ber1(1,snr+3)=Ber1(1,snr+3)+ber1;
% end
%  semilogy(SNR,Ber,'*')
        

  

⌨️ 快捷键说明

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