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

📄 c_a_code.m

📁 gps c/a码程序以及模拟卫星定位的源代码、地球模型
💻 M
字号:
% 产生C/A码的方法一
clear
close all;
k1=2;k2=6;delay=5;                        %定义参数k1、k2以及延迟
Reg=-ones(1,10);                          %定义寄存器1~10的初始值为-1
% 通过循环产生长度为1024的MLS序列以及G2序列
for j=1:1023;
    MLS(j)=Reg(10);                       %将10号寄存器的输出作MLS输出
    modulo=Reg(2)*Reg(3)*Reg(6)*Reg(8)*Reg(9)*Reg(10);
    Reg(2:10)=Reg(1:9);                   %循环移位
    Reg(1)=modulo;
    g2(j)=Reg(k1)*Reg(k2);                %将参数k1和k2所代表的寄存器模二相加后作为G2输出
end
%将G2与MLS进行延迟检验
if MLS==g2([delay:1023 1:delay-1])
    disp('OK')
else
    disp('not match')
end
%在G2序列中找出-1并转换为0,找出1并转换为1
ind1=find(g2==-1);
ind2=find(g2==1);
g2(ind1)=ones(1,length(ind1));
g2(ind2)=zeros(1,length(ind2));
temp=g2(1:120);
x(1)=0;show(1)=temp(1);
P=2;
%下面的循环是为了将结果显示成方波形式
for i=2:length(temp)
    if((temp(i)==temp(i-1)))
        x(P)=i-1;
        show(P)=temp(i-1);
        x(P+1)=i-1+0.01;
        show(P+1)=temp(i);
        P=P+2;
    else
        show(P)=temp(i);
        x(P)=i;
        P=P+1;
    end
end
%画出仿真波形
subplot(2,1,1)
plot(x,show);
axis([0 length(x)-60 -0.1 1.1]);
grid;
subplot(2,1,2)
plot(x,show);
grid;

⌨️ 快捷键说明

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