📄 c_a_code.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 + -