www.pudn.com > pcode_generation.rar > 2s_pcode.m


%1.5s_x1a 
reg_x1a=[1 1 1 -1 1 1 -1 1 1 -1 1 1];               %给x1a寄存器赋初始值 
%将12号寄存器的输出值作为x1a码 
%将6,8,11,12寄存器输出模二加后反馈输给1号寄存器 
for i=1:4095, 
    orig_x1a(i)=reg_x1a(12); 
    save1a=reg_x1a(6)*reg_x1a(8)*reg_x1a(11)*reg_x1a(12); 
    reg_x1a(2:12)=reg_x1a(1:11); 
    reg_x1a(1)=save1a; 
end 
x1a=orig_x1a(1:4092); 
x1a=[x1a x1a x1a x1a];                    %4*x1a 
x1a=[x1a x1a x1a x1a];                    %16*x1a       
x1a=[x1a x1a x1a x1a];                    %64*x1a 
x1a=[x1a x1a x1a x1a];                    %256*x1a 
x1a=[x1a x1a x1a x1a];                    %1024*x1a 
x1a=[x1a x1a x1a x1a];                    %2048*x1a 
x1a=[x1a x1a x1a x1a];                    %4096*x1a 
x1a_1p5s=x1a(1:15345000); 
 
%2s_x1a 
x1a_0p5s=x1a_1p5s(1:5115000); 
x1a_2s=[x1a_1p5s x1a_0p5s]; 
 
 
%1.5s_x1b 
reg_x1b=[1 1 -1 1 -1 1 -1 1 -1 1 -1 1]; 
for j=1:4095, 
    orig_x1b(j)=reg_x1b(12); 
    save1b=reg_x1b(1)*reg_x1b(2)*reg_x1b(5)*reg_x1b(8)*reg_x1b(9)*reg_x1b(10)*reg_x1b(11)*reg_x1b(12); 
    reg_x1b(2:12)=reg_x1b(1:11); 
    reg_x1b(1)=save1b; 
end 
x1b=orig_x1b(1:4093); 
x1b=[x1b x1b x1b x1b]; 
x1b=[x1b x1b x1b x1b]; 
x1b=[x1b x1b x1b x1b]; 
x1b=[x1b x1b x1b x1b]; 
x1b=[x1b x1b x1b x1b]; 
x1b=[x1b x1b x1b x1b]; 
x1b=[x1b x1b x1b x1b]; 
x1b_hold=x1b(1:15344657); 
hold=x1b_hold(15344657); 
hold343=hold*ones(1,343); 
x1b_1p5s=[x1b_hold hold343]; 
 
%2s_x1b 
x1b_0p5s=x1b_1p5s(1:5115000); 
x1b_2s=[x1b_1p5s x1b_0p5s]; 
 
 
%x2a_1p5s+37chips_delay 
reg_x2a=[-1 1 -1 1 1 -1 1 1 -1 1 1 -1]; 
for m=1:4095, 
    orig_x2a(m)=reg_x2a(12); 
    save2a=reg_x2a(1)*reg_x2a(3)*reg_x2a(4)*reg_x2a(5)*reg_x2a(7)*reg_x2a(8)*reg_x2a(9)*reg_x2a(10)*reg_x2a(11)*reg_x2a(12); 
    reg_x2a(2:12)=reg_x2a(1:11); 
    reg_x2a(1)=save2a; 
end 
x2a=orig_x2a(1:4092); 
x2a=[x2a x2a x2a x2a]; 
x2a=[x2a x2a x2a x2a]; 
x2a=[x2a x2a x2a x2a]; 
x2a=[x2a x2a x2a x2a]; 
x2a=[x2a x2a x2a x2a]; 
x2a=[x2a x2a x2a x2a]; 
x2a=[x2a x2a x2a x2a]; 
x2a_1p5s=x2a(1:15345000); 
hold2=x2a_1p5s(15345000); 
hold37=hold2*ones(1,37); 
d_x2a=[x2a_1p5s hold37]; 
 
%2s_x2a 
x2a_rest=d_x2a(1:5114963); 
x2a_2s=[d_x2a x2a_rest]; 
 
 
%x2b_1p5s+37chips_delay 
reg_x2b=[1 1 -1 1 -1 1 -1 1 -1 1 -1 1]; 
for n=1:4095, 
    orig_x2b(n)=reg_x2b(12); 
    save2b=reg_x2b(2)*reg_x2b(3)*reg_x2b(4)*reg_x2b(8)*reg_x2b(9)*reg_x2b(12); 
    reg_x2b(2:12)=reg_x2b(1:11); 
    reg_x2b(1)=save2b; 
end 
x2b=orig_x2b(1:4093); 
x2b=[x2b x2b x2b x2b]; 
x2b=[x2b x2b x2b x2b]; 
x2b=[x2b x2b x2b x2b]; 
x2b=[x2b x2b x2b x2b]; 
x2b=[x2b x2b x2b x2b]; 
x2b=[x2b x2b x2b x2b]; 
x2b=[x2b x2b x2b x2b]; 
x2b_hold=x2b(1:15344657); 
hold3=x2b_hold(15344657); 
hold380=hold3*ones(1,380); 
d_x2b=[x2b_hold hold380];                                                                                %保持37chips 
 
%2s_x2b 
x2b_rest=d_x2b(1:5114963); 
x2b_2s=[d_x2b x2b_rest]; 
 
 
%generate 2s_pcode 
x1_2s=x1a_2s.*x1b_2s; 
x2_2s=x2a_2s.*x2b_2s; 
x2_20=x2_2s(1:20);                                                                                        %i=20 
x2_rest=x2_2s(21:20460000); 
x2i=[x2_rest x2_20]; 
pcode_2s=x1_2s.*x2i; 
 
 
 
 
%%%%%%%50ms长度的P码自相关值峰值为511500,次峰值为20000,MARGIN为25.575,符合文献值范围,经验证,生成P码成功%%%%%%%