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

📄 aspect.m

📁 本源代码给出了伽利略卫星导航系统的码跟踪算法
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% --------- ASPeCT algorithm -----------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%*****************************************************
% Assumption:No freq error and No external disturbance
%*****************************************************
%%% 说明:GPS伪码PN其自相关函数主瓣单边宽度为1chip,所以其相关
%%% 空间最大为1chip,即利用迟早门算法前后移动0.5chip;而sBOC(1,1)
%%% 自相关函数主瓣单边宽度为0.33chip,所以其相关空间为0.33chip,即
%%% 利用迟早门算法前后移动0.165chip
a = 0.5;
x = -1:0.05:1;
%%%%%%%%%% different value of beta %%%%%%%%%%%
beta = 1.0;
beta0 = 1.1;
beta1 = 1.2;
beta2 = 1.3;
beta3 = 1.4;
%%%%%%%%%% different value of beta %%%%%%%%%%%
delta = 0.2;
P = 1;

RB = tri(2*a,x) - (tri(a,x-a) + tri(a,x+a));   % sBOC(1,1) autocorrelation function
RBP = 0.5*(tri(a,x-a) - tri(a,x+a));           % sBOC(1,1)and PRN correlation function

RB_1 = tri(2*a,x-delta/2) - (tri(a,x-delta/2-a) + tri(a,x-delta/2+a));  % RB(x-d/2)
RB_2 = tri(2*a,x+delta/2) - (tri(a,x+delta/2-a) + tri(a,x+delta/2+a));  % RB(x+d/2)

RBP_1 = 0.5*(tri(a,x-delta/2-a) - tri(a,x-delta/2+a));                  % RBP(x-d/2)
RBP_2 = 0.5*(tri(a,x+delta/2-a) - tri(a,x+delta/2+a));                  % RBP(x+d/2)
%%%%%%%%%%%%Square of sBOC(1,1) autocorrelation function%%%%%%%%%%%%%%%%
RB_s = RB.^2;

%%%%%%%%%%%%Square of sBOC(1,1)and PRN correlation function%%%%%%%%%%%%%%
RBP_s = RBP.^2;


%%%%%%%%%%% ASPeCT correlation function %%%%%%%%%%%%
R_ASPeCT = RB.^2 - beta*RBP.^2;
R_ASPeCT0 = RB.^2 - beta0*RBP.^2;
R_ASPeCT1 = RB.^2 - beta1*RBP.^2;
R_ASPeCT2 = RB.^2 - beta2*RBP.^2;
R_ASPeCT3 = RB.^2 - beta3*RBP.^2;

%%%%%%%%%%% Traditional algorithm %%%%%%%%%%%%
Demlp = (RB_1.^2 - RB_2.^2);
Ddp = (RB_1 - RB_2).*RB;

%%%%%%%%%%%%%% ASPeCT algorithm %%%%%%%%%%%%%%%
Demlp_ASPeCT = ((RB_1.^2-RB_2.^2) - beta*(RBP_1.^2-RBP_2.^2));          % Demlp_ASPeCT Algorithm  different value of beta

Demlp_ASPeCT0 = ((RB_1.^2-RB_2.^2) - beta0*(RBP_1.^2-RBP_2.^2));
Demlp_ASPeCT1 = ((RB_1.^2-RB_2.^2) - beta1*(RBP_1.^2-RBP_2.^2));
Demlp_ASPeCT2 = ((RB_1.^2-RB_2.^2) - beta2*(RBP_1.^2-RBP_2.^2));
Demlp_ASPeCT3 = ((RB_1.^2-RB_2.^2) - beta3*(RBP_1.^2-RBP_2.^2));

Ddp_ASPeCT = ((RB_1-RB_2).*RB - beta*(RBP_1-RBP_2).*RBP);               % Ddp_ASPeCT Algorithm  different value of beta

Ddp_ASPeCT0 = ((RB_1-RB_2).*RB - beta0*(RBP_1-RBP_2).*RBP);
Ddp_ASPeCT1 = ((RB_1-RB_2).*RB - beta1*(RBP_1-RBP_2).*RBP);
Ddp_ASPeCT2 = ((RB_1-RB_2).*RB - beta2*(RBP_1-RBP_2).*RBP);
Ddp_ASPeCT3 = ((RB_1-RB_2).*RB - beta3*(RBP_1-RBP_2).*RBP);

kk = 0;
while kk == 0
    k = menu('ASPeCT algorithm','Compare correlation function','ASPeCT correlation function',...
        'EMLP algorithm','DP algorithm','Demlp_ASPeCT Algorithm',...
        'Ddp_ASPeCT Algorithm','Exit program');
    if k == 1
        %%%%%%%%%% Compare correlation function %%%%%%%%%%%
%         plot(x,RB_s,'r',x,RBP_s,'b',x,R_ASPeCT,'k');
        plot(x,RB_s,'k');
        xlabel('Code Offset');
        ylabel('Squared Correlation Function');
%         grid on
%         legend('RBs','RBPs','RASPeCT')
    end
    if k == 2
        %%%%%%%%%%% ASPeCT correlation function %%%%%%%%%%%%
        plot(x,R_ASPeCT,'r',x,R_ASPeCT0,'b',x,R_ASPeCT1,'k',...
            x,R_ASPeCT2,'y',x,R_ASPeCT3,'g');      % replace  "hold on  plot "
        title('ASPeCT correlation function');
        xlabel('Code Offset');
        ylabel('Synthesized Correlation Function');
        grid on
        legend('beta','beta0','beta1','beta2','beta3')
    end
    if k == 3
        %%%%%%%%%%%%%% EMLP algorithm %%%%%%%%%%%%%%%%
%        plot(x,Demlp,'r',x,Demlp_ASPeCT)
       plot(x,Demlp,'k')
       title('EMLP algorithm');
       xlabel('Code Offset');
       ylabel('Discriminator Output');
       axis([-1 1 -1 1]);
%        legend('Traditional','ASPeCTEMLP')
%        grid on
    end
    if k == 4
        %%%%%%%%%%%%%% DP algorithm %%%%%%%%%%%%%%%%%
       plot(x,Ddp,'r',x,Ddp_ASPeCT)
       title('DP algorithm');
       xlabel('Code Offset');
       ylabel('Discriminator Output');
       axis([-1 1 -1 1]);
       legend('Traditional','ASPeCTDdp')
       grid on
     end
     if k == 5
        %%%%%%%%%% Demlp_ASPeCT Algorithm %%%%%%%%%%%%%%
        plot(x,Demlp_ASPeCT,'r',x,Demlp_ASPeCT0,'b',x,Demlp_ASPeCT1,'k',...
            x,Demlp_ASPeCT2,'y',x,Demlp_ASPeCT3,'g');
        title('DemlpASPeCT Algorithm');
        xlabel('Code Offset');
        ylabel('Discriminator Output');
        grid on
        legend('beta','beta0','beta1','beta2','beta3')
      end
      if k == 6 
         %%%%%%%%%% Ddp_ASPeCT Algorithm %%%%%%%%%%%%%%
        plot(x,Ddp_ASPeCT,'r',x,Ddp_ASPeCT0,'b',x,Ddp_ASPeCT1,'k',...
            x,Ddp_ASPeCT2,'y',x,Ddp_ASPeCT3,'g');
        axis([-1 1 -1 1]);
        title('DdpASPeCT Algorithm');
        xlabel('Code Offset');
        ylabel('Discriminator Output');
        grid on
        legend('beta','beta0','beta1','beta2','beta3')
       end
      if k == 7
        kk = 1;
      end  % End of if
end  % End of while    
         

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 进一步R(x) = 1 - a*|x|  for x <= 1 chip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% a = 3;
% delta = 0.33;
% beta = 1;
% P = 1;
% tao = -1:.01:1;
% % Demlp = P*a*(2-a*delta)*tao;
% Demlp = P*(a*(2-a*delta)+beta*delta)*tao;
% % Ddp = P*a*(1-a*abs(tao)).*tao;
% Ddp = P*(a*(1-a*abs(tao))+beta*delta/2).*tao;
% 
% plot(tao,Demlp,'r')
% hold on 
% plot(tao,Ddp)
% axis([-1 1 -1 1])


⌨️ 快捷键说明

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