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

📄 cacode_generate.m

📁 该程序能产生GPS1~32号卫星的CA码
💻 M
字号:
function code_New=generate(num,n)
%这是产生C/A码的程序
%输入变量num是要产生C/A码的卫星号,n是要产生C/A码的长度

satellite = [2 6;3 7;4 8;5 9;1 9;2 10;1 8;2 9;3 10;2 3;3 4;5 6;6 7;7 8;8 9;
    9 10;1 4;2 5;3 6;4 7;5 8;6 9;1 3;4 6;5 7;6 8;7 9;8 10;1 6;2 7;3 8;4 9];
d1=zeros(10,n);d2=zeros(10,n);
code1=zeros(1,n);code2=zeros(1,n);
code=zeros(1,n);
d1(1,1)=1;      d2(1,1)=1;
d1(2,1)=1;      d2(2,1)=1;
d1(3,1)=1;      d2(3,1)=1;
d1(4,1)=1;      d2(4,1)=1;
d1(5,1)=1;      d2(5,1)=1;
d1(6,1)=1;      d2(6,1)=1;
d1(7,1)=1;      d2(7,1)=1;
d1(8,1)=1;      d2(8,1)=1;
d1(9,1)=1;      d2(9,1)=1;
d1(10,1)=1;     d2(10,1)=1;
%第一组10级移位寄存器的循环
for j=1:1:n
      code1(1,j) = d1(10,j);
      feedback1 = xor(d1(3,j),d1(10,j));
      for i = 2:1:10
         d1(i,j+1)=d1(i-1,j);
         d1(1,j+1)=feedback1;
      end   
end
%第二组10级移位寄存器的循环
for r=1:1:n 
      code2(1,r)=xor(d2(satellite(num,1),r),d2(satellite(num,2),r));
      sum=d2(2,r)+d2(3,r)+d2(6,r)+d2(8,r)+d2(9,r)+d2(10,r);
      feedback2=rem(sum,2);
      for s=2:1:10
         d2(s,r+1)=d2(s-1,r);
         d2(1,r+1)=feedback2;
      end   
end
%两组10级线性移位寄存器的输出
code=mod(code1+code2,2);
%把code码中的0变为-1
for i = 1:length(code)
    if code(i) ==0
        code_New(i) = -1;
    else
        code_New(i) = 1;
    end
end

⌨️ 快捷键说明

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