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

GPS编程

开发平台:

Matlab

  1. function [tcorr,rho,X_ECEF] = get_rho(tR_RAW,pseudorange,Eph,X_receiver)
  2. %GET_RHO  Calculation of distance in ECEF system between
  3. %       satellite and receiver at time tR_RAW given the
  4. %       ephemeris Eph.
  5. %Kai Borre 04-01-96
  6. %Copyright (c) by Kai Borre
  7. %$Revision: 1.0 $  $Date: 1997/09/23  $
  8. % Initial assigment of constants
  9. vlight = 299792458;          % vacuum speed of light in m/s
  10. Omegae = 7.292115147e-5;  % rotation rate of the earth in rad/s
  11. %signal sended time=signal received time-signal transmission time
  12. tx_RAW = tR_RAW-pseudorange/vlight;
  13. %time correction acording to system time
  14. toc = Eph(21);
  15.       dt = check_t(tx_RAW-toc);
  16.       tcorr = (Eph(2)*dt + Eph(20))*dt + Eph(19);
  17.       tx_GPS = tx_RAW-tcorr;
  18.       dt = check_t(tx_GPS-toc);
  19.       tcorr = (Eph(2)*dt + Eph(20))*dt + Eph(19);
  20.       tx_GPS = tx_RAW-tcorr; 
  21. % satellite position 
  22. X = satpos(tx_GPS, Eph);
  23. %geometric range
  24. rho = norm(X-X_receiver(1:3));
  25. %satellite coordinates into inertial coordinate system
  26. omegatau = Omegae*rho/vlight;
  27. R3 = [ cos(omegatau) sin(omegatau) 0;
  28.       -sin(omegatau) cos(omegatau) 0;
  29.               0        0      1];
  30. X_ECEF = R3*X;
  31. %geometric range acording to inertial coordinate system
  32. rho = norm(X_ECEF-X_receiver(1:3));
  33. %%%%%%%%% end get_rho.m %%%%%%%%%