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

📄 ca2.m

📁 GPS捕获算法中本地CA码的生成
💻 M
字号:
%产生C/A码的方法二
%本程序要求输入卫星的编号,在仿真图中显示的是第四颗卫星产生的C/A码,即输入为4
svnum=input('enter the satellite number=');
g2s=[5;6;7;8;17;18;139;140;141;251;252;254;255;256;257;258;469;470;471;472;473;474;509;512;513;514;515;516;859;860;861;862];
g2shift=g2s(svnum,1);

reg=-1*ones(1,10);                           %将1-10号寄存器的初始值设为-1
%将10号寄存器的输出作为G1码
%并将10号寄存器与3号寄存器输出模二相加后反馈给1号寄存器
for i=1:1023,
    g1(i)=reg(10);
    slave1=reg(3)*reg(10);
    reg(1,2:10)=reg(1,1:9);
    reg(1)=slave1;
end

reg=-1*ones(1,10);                           %将1-10号寄存器的初值设为-1
%将10号寄存器的输出作为G2码
%并将10、9、8、6、3、2寄存器输出模二相加后反馈给1号寄存器
for i=1:1023,
    g2(i)=reg(10);
    save2=reg(2)*reg(3)*reg(6)*reg(8)*reg(9)*reg(10);
    reg(1,2:10)=reg(1,1:9);
    reg(1)=save2;
end
g2tmp(1,1:g2shift)=g2(1,1023-g2shift+1:1023);
g2tmp(1,g2shift+1:1023)=g2(1,1:1023-g2shift);
g2=g2tmp;
%G1和G2卷积后得到C/A码
ss_ca=g1.*g2;
ca=ss_ca;
%在C/A码的序列中找出-1并转换为1,找出1并转换为0
ind1=find(ca==-1);
ind2=find(ca==-1);
ca(ind1)=ones(1,length(ind1));
ca(ind2)=zeros(1,length(ind2));
temp=ca(1:102);
%下面的循环是为了将结果显示成方波形式
x(1)=0;Show(1)=temp(1);
P=2;
for i=2:length(temp)
    if ((temp(i)~=temp(i-1)))
        x(P)=i;
        Show(P)=temp(i-1);
        x(P+1)=i+0.01;
        Show(P+1)=temp(i);
        P=P+2;
    else
        Show(P)=temp(i);
        x(P)=i;
        P=P+1;
    end
end
%画出仿真结果图
plot(x,Show);
axis([0 length(x+5) -1 1.5]);
grid;

⌨️ 快捷键说明

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