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

GPS编程

开发平台:

Matlab

  1. % EASY3   Read RINEX navigation file reformat into Matlab Eph matrix.
  2. %         Open a RINEX observation file analyse the header and identify
  3. %         observation types. The function fepoch_0 finds epoch time 
  4. %         and observed PRNs in an OK epoch (digit 0, RTK observations 
  5. %         will have a 2 in this place). Next we read the observations 
  6. %         and use recpo_ls to get a least-squares estimate for the 
  7. %         (stand alone) receiver position.
  8. %Kai Borre 27-07-2002
  9. %Copyright (c) by Kai Borre
  10. %$Revision: 1.0 $  $Date: 2002/07/27  $
  11. % Read RINEX ephemerides file and convert to
  12. % internal Matlab format
  13. rinexe('SITE247J.01N','eph.dat');
  14. Eph = get_eph('eph.dat');
  15. % We identify the observation file and open it
  16. ofile1 = 'SITE247J.01O';
  17. fid1 = fopen(ofile1,'rt');
  18. [Obs_types1, ant_delta1, ifound_types1, eof11] = anheader(ofile1);
  19. NoObs_types1 = size(Obs_types1,2)/2;
  20. Pos = [];
  21. % There are 20 epochs of data in ofile1
  22. for q = 1:20
  23.     [time1, dt1, sats1, eof1] = fepoch_0(fid1);
  24.     NoSv1 = size(sats1,1);
  25.     % We pick the observed P2 pseudoranges
  26.     obs1 = grabdata(fid1, NoSv1, NoObs_types1);
  27.     i = fobs_typ(Obs_types1,'P2');
  28.     pos = recpo_ls(obs1(:,i),sats1,time1,Eph);
  29.     Pos = [Pos pos];
  30. end
  31. me = mean(Pos,2);
  32. fprintf('nMean position as computed from 20 epochs:')
  33. fprintf('nnX: %12.3f  Y: %12.3f  Z: %12.3f', me(1,1), me(2,1), me(3,1))
  34. plot_handles = plot(1:q,(Pos(1,:)-Pos(1,1)*ones(1,q))','-',... 
  35.                     1:q,(Pos(2,:)-Pos(2,1)*ones(1,q))','--',... 
  36.                     1:q,(Pos(3,:)-Pos(3,1)*ones(1,q))','-.')
  37. set(gca,'fontsize',16)
  38. set(plot_handles,'linewidth',2)
  39. title('Pseudorange Positions Over Time')
  40. xlabel('Epochs [1 s interval]')
  41. ylabel('Variation in Coordinates, Relative to the First Epoch [m]')
  42. legend('X','Y','Z')
  43. print -deps easy3
  44. %%%%%%%%%%%%%%%%%%%%% end easy3.m %%%%%%%%%%%%%%%