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

📄 goldlow.m

📁 这是个扩频仿真的有关程序
💻 M
字号:
%gold sequence generator
%only for L=15,31,63,127
function [codes]=goldLow(L,Numcodes)
n=log2(L+1);
if n==4
   f=[1,0,0,1;1,1,0,0];%2*4%the coefficients of generating polynomial
elseif n==5
   f=[1,0,0,1,0;1,1,1,1,0;1,1,0,1,1;1,0,1,0,0;1,0,1,1,1;1,1,1,0,1];%6*5
elseif n==6
   f=[1,0,0,0,0,1;1,1,0,0,1,1;1,0,1,1,0,1;...
         1,1,0,0,0,0;1,1,1,0,0,1;1,1,0,1,1,0]; %6*6
elseif n==7
   f=[1,1,0,0,1,0,1;1,1,1,0,1,1,1;1,0,0,0,0,0,1;1,0,1,0,0,1,1;...
         1,1,1,0,0,1,0;1,1,1,1,0,1,1;1,1,0,0,0,0,0;1,1,0,1,0,0,1];%8*7
else
   display('error! L is an invalid number');
   break;
end

fsize=size(f);
nrow=fsize(1);
m=ones(nrow,L+n-1);
for i=1:L-1
   mf=m(:,i:i+n-1);
   m(:,i+n)=diag(rem(mf*f',2));
end

pairs=(nrow-1)*nrow/2;
Sumcodes=pairs*L+nrow;
if Numcodes>Sumcodes
   display('error! The needed number of codes is too large. Propose to increase L!');
   break;
end
c=zeros(Numcodes,L);
Sum=0;
for ii=1:nrow-1
   for jj=ii+1:nrow
      for j=1:L
         Sum=Sum+1;
         c(Sum,:)=m(ii,1:L)+Periodshift(m(jj,1:L),0,j-1);
         if Sum==Numcodes
            c=rem(c,2);
            codes=2*c(1:Numcodes,:)-1;
            break;
         end
      end
   if Sum==Numcodes break; end
   end
   if Sum==Numcodes break; end
end
if Sum<Numcodes
   c(Sumcodes-nrow+1:Sumcodes,:)=m(:,1:L);
   c=rem(c,2);
   codes=2*c(1:Numcodes,:)-1;
end
codes=codes';

⌨️ 快捷键说明

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