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

📄 cdma_codes.m

📁 2个用户下的Rake接收机 4径-5径多径 AWGN一级瑞利衰落信道 混合了m序列、Gold序列
💻 M
字号:
 %G:扩频增益
 %K_in:小区用户数
 %K_out:小区外用户数
 %code_type:0=random 1=hadamard 2=Gold
 % coed_seed:seed for random gen of codes
 function [C]=cdma_codes(K_in,K_out,code_type,G,code_seed)
% K_in=1;
% K_out=0;
% code_type=2;
% G=31;
% code_seed=rand('state');
 K=K_in+K_out;
 c=zeros(G,K);
 switch code_type
     case 0,%random
         rand('state',code_seed);
         c=2*round(rand(G,K))-1;
     case 1,%hadamard
         if rem(G,4)
             error('Spreading gain must be modulo 4 for hadamard codes');
         else 
             codes=hadamard(G);
             if K_in<=G
                 c=codes(:,1:K_in);
             else
                 for i=1:floor(K_in/G)%floor(a)是取a整数最近的数值
                     c(:,(i-1)*G+1:i*G)=codes(:,1:G)
                 end;
                 c(:,floor(K_in/G)*G+1:K_in)=codes(:,1:K_in-floor(K_in/G)*G);
             end;
             rand('state',code_seed);
             c=[c codes(:,ceil(G*rand(1,K_out)))];
         end
             case 2,%Gold
                 if G<=127
                     codes=GoldLow(G,K_in+K_out);
                 else
                     n=log2(G+1);
                     codes=Gold(n,G);
                 end
                 if K_in<=G
                     c=codes(:,1:K_in);
                 else
                     for i=1:floor(K_in/G)
                         c(:,(i-1)*G+1:i*G)=codes(:,1:G)
                     end;
                         c(:,floor(K_in)*G+1:K_in)=codes(:,1:K_in-floor(K_in/G)*G);
                 end;
                     rand('state',code_seed);
                     c=[c codes(:,ceil(G*rand(1,K_out)))];
                     otherwise
                         error([Code_type',num2str(code_type),'is invalid']);
                 end
                 for i=1:K
                     C(:,i)=c(:,i);%/norm(c(:,i));
                 end

⌨️ 快捷键说明

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