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

📄 cacode.m

📁 C/A码发生器Matlab程序
💻 M
字号:
clear;
clc;
%产生MLS和G2输出并核对延迟时间
%输入
%K1,K2:两个延迟抽头的位置
%K3:延迟时间

% k = input('enter[k1 k2 k3]=');
k(1)=1;
k(2)=2;
k(3)=3;
inp1=-ones(1,10);
for j=1:1023
    mlsout(j)=inp1(10);
    modulo=inp1(2)*inp1(3)*inp1(6)*inp1(8)*inp1(9)*inp1(10);
    inp1(2:10)=inp1(1:9);
    inp1(1)=modulo;
    g2(j)=inp1(k(1))*inp1(k(2));
end

if mlsout==g2([k(3):1023 1:k(3)-1])
    disp('OK');
else
    disp('not match');
end


%产生由D.Akos发明J.Tsui改进的32个C/A码中的一个
svnum=input('enter the satellite number c');
%ca:含有想要的输出序列的一个向量
%g2s向量进行适当的相移后产生g2码
%the C/A码(ex. for SV#19 - use a G2 shift of g2s(19)c471)
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];
g2shiftg2s(svnum,1);
%Generate G1code
%装载移位寄存器
reg=-1*one(1,10);
for i=1:1023,
    g1(i)=reg(10);
    slave1=reg(3)*reg(10);
    reg(1,2:10)=reg(1,1:9);
    reg(1)=save1;
end,

%产生G2码
%装载移位寄存器
reg=-1*one(1,10);
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,

%相移G2码
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;

%变换到1、0输出
ind1=find(ca==-1);
ind2=find(ca==1);
ca(ind1)=ones(1,length(ind1));
ca(ind2)=zeros(1,length(ind2));
ca(1:10)

⌨️ 快捷键说明

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