www.gusucode.com > MATLAB编程伽利略和北斗的BOC捕获跟踪和解算程序 > MATLAB编程伽利略和北斗的BOC捕获跟踪和解算程序/gnss_sw_radio2/PRNCode_tb.m

    clear all; close all;

%E5aI_pc = PrimaryPRNCode('E5aI', 10230, 1); 
E5aI_pc = PrimaryPRNCode('E5aI', 20000, 1); 

c1 = E5aI_pc.getCode(1, -3*E5aI_pc.ChipPeriod);
c2 = E5aI_pc.getCode(1, 0);
c1c2_corr = xcorr(-2*c1+1, -2*c2 +1);
[val ind] = max(c1c2_corr);
ind = ind - E5aI_pc.NumberOfUpsampledSamples;
shift_in_chips = round(ind/E5aI_pc.NumberOfUpsampledSamples...
											* E5aI_pc.NumberOfChips);
fprintf(1,'The time shift of prim. code is = %f [chips] \n', shift_in_chips);
figure(1);clf;
plot(c1c2_corr);

E5aI_sc = SecondaryPRNCode('E5aI');
sc1 = E5aI_sc.getCode(1, 3);
sc2 = E5aI_sc.getCode(1, 0);
sc1sc2_corr = xcorr(-2*sc1+1, -2*sc2 +1);
[val ind] = max(sc1sc2_corr);
ind = ind - E5aI_sc.NumberOfChips;
fprintf(1,'The time shift of sec. code is = %f [chips] \n', ind);
figure(2);clf;
plot(sc1sc2_corr);