EASY10.M
上传用户:sfyaiting
上传日期:2009-10-25
资源大小:320k
文件大小:2k
源码类别:

GPS编程

开发平台:

Matlab

  1. % EASY10 plots ionospheric delay from phase observations.
  2. %        The present code does not handle
  3. %     1. cycle slips, and
  4. %      2. outliers.
  5. %Kai Borre 27-07-2002
  6. %Copyright (c) by Kai Borre
  7. %$Revision: 1.0 $  $Date: 2002/07/27  $
  8. % Initial computations of constants
  9. v_light = 299792458;      % vacuum speed of light m/s
  10. f1 = 154*10.23E6;      % L1 frequency Hz
  11. f2 = 120*10.23E6;  % L2 frequency Hz
  12. lambda1 = v_light/f1;      % wavelength on L1:  .19029367  m
  13. lambda2 = v_light/f2;      % wavelength on L2:  .244210213 m
  14. % We identify the observation file and open it
  15. ofile = 'kofi1.01o'; 
  16. fid = fopen(ofile,'rt');
  17. [Obs_types, ant_delta, ifound_types, eof1] = anheader(ofile);
  18. NoObs_types = size(Obs_types,2)/2;
  19. obsstr(1,1:2) = 'P1'; % P1
  20. obsstr(2,1:2) = 'P2'; % P2
  21. obsstr(3,1:2) = 'L1'; % Phi1
  22. obsstr(4,1:2) = 'L2'; % Phi2
  23. match = zeros(1,4);
  24. for t = 1:4
  25.     for ii = 1:NoObs_types
  26.         mat = strmatch(obsstr(t,1:2),Obs_types(1,2*ii-1:2*ii),'exact');
  27.         if isempty(mat) == 0, match(1,t) = ii; end
  28.     end
  29. end
  30. Oc = match; 
  31. qend = 300;
  32. phase_diff = zeros(32,qend)*inf;
  33. disp(' ')
  34. disp('Please wait for creation of plot!')
  35. for q = 1:qend
  36.     [time, dt, sats, eof] = fepoch_0(fid);
  37.     NoSv = size(sats,1);
  38.     obsm = grabdata(fid, NoSv, NoObs_types);
  39.     obs = obsm(:,Oc); % P1 P2 Phi1 Phi2
  40.     for t = 1:NoSv
  41.         Phi1 = obs(t,3)*lambda1; 
  42.         Phi2 = obs(t,4)*lambda2; 
  43.         sat = sats(t);
  44.         phase_diff(sat,q) = Phi1-Phi2;
  45.     end
  46. end; 
  47. pd = phase_diff-phase_diff(:,1)*ones(1,qend);
  48. prn = find(~isnan(pd(:,1)));
  49. % We must delete rows with NaN's in order to cycle correctly through the colours
  50. pd(isnan(pd(:,1:qend))) = []; 
  51. pd = reshape(pd,length(prn),qend);
  52. pd = pd/(1-(f1/f2)^2);
  53. [m,n] = size(pd);
  54. figure(1);
  55. plot_handles = plot(1:n,1000*pd(1,:)','-',...
  56.                     1:n,1000*pd(2,:)','--',...
  57.                     1:n,1000*pd(3,:)','-.',...
  58.                     1:n,1000*pd(4,:)',':',...
  59.                     1:n,1000*pd(5,:)','.',...
  60.                     1:n,1000*pd(6,:)','o',...
  61.                     1:n,1000*pd(7,:)','*');
  62. set(gca,'fontsize',16)
  63. set(plot_handles,'linewidth',1,'markersize',1)
  64. legend(eval('num2str(prn)'),2)
  65. title('Ionospheric Delay From {itL}_1 and {itL}_2 Phases')
  66. ylabel('Delay [mm]')
  67. xlabel('Epochs [1 s interval]')
  68. legend
  69. print -deps easy10
  70. %%%%%%%%%%%%%%%%%%%%%% end easy10.m  %%%%%%%%%%%%%%%%%%%