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