generate.m

来自「主要是关于GPS卫星C/A码信号的产生、捕获以及跟踪的S曲线图」· M 代码 · 共 46 行

M
46
字号
%这是产生GPS1号卫星C/A码的程序
%n是要产生C/A码的长度(可任意设置,C/A码周期是1023)
function [code,code_New]=generate(n)
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(2,r),d2(6,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 + =
减小字号Ctrl + -
显示快捷键?