📄 cacode_generate.m
字号:
function code_New=generate(num,n)
%这是产生C/A码的程序
%输入变量num是要产生C/A码的卫星号,n是要产生C/A码的长度
satellite = [2 6;3 7;4 8;5 9;1 9;2 10;1 8;2 9;3 10;2 3;3 4;5 6;6 7;7 8;8 9;
9 10;1 4;2 5;3 6;4 7;5 8;6 9;1 3;4 6;5 7;6 8;7 9;8 10;1 6;2 7;3 8;4 9];
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(satellite(num,1),r),d2(satellite(num,2),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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -