利用matlab编制的gps单点定位程序

上传人:第*** 文档编号:99115362 上传时间:2019-09-17 格式:DOC 页数:12 大小:70KB
返回 下载 相关 举报
利用matlab编制的gps单点定位程序_第1页
第1页 / 共12页
利用matlab编制的gps单点定位程序_第2页
第2页 / 共12页
利用matlab编制的gps单点定位程序_第3页
第3页 / 共12页
利用matlab编制的gps单点定位程序_第4页
第4页 / 共12页
利用matlab编制的gps单点定位程序_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《利用matlab编制的gps单点定位程序》由会员分享,可在线阅读,更多相关《利用matlab编制的gps单点定位程序(12页珍藏版)》请在金锄头文库上搜索。

1、function t=TimetoJD(Y,M,D,h,f,s)if(Y=80) Y=Y+1900;else Y=Y+2000;endif M=2 Y=Y-1; M=M+12;endJD=fix(365.25*Y)+fix(30.6001*(M+1)+D+h/24+f/1440+s/24/3600+1720981.5;t=JD-2444244.5;function head,obs=ReadObsData%读接收机观测数据文件%HeadODat :a structure stores header information if o-file% .ApproXYZ3; /approximate

2、coordinate% .interval; /intervals of two adjacent epochs% .SiteName; /point name% .Ant_H; /antenna height% .Ant_E; /east offset of the antenna center% .Ant_N; /north offset of then antenna center% .TimeOB; /first epoch time in modifuied Julian time% .TimeOE; /last epoch time in modifuied Julian time

3、% .SumOType; /number of types of observables% .SumOOSumOType; /type of observables 0-L1,1-L2,2-C1,3-P1,4-P2,5-D1,6-D2,%ObsODat :a structure stores observables by one and one epoch% .TimeOEpp2; /reciever time of epoch% .SatSum; /number of satellites% .SatCodeSatSum; /satellites PRN% .Obs_FreL1SatSum;

4、 % .Obs_FreL2SatSum;% .Obs_RangeC1SatSum;% .Obs_RangeP1SatSum;% .Obs_RangeP2SatSum;global HeadODat;global ObsODat; fname,fpath=uigetfile(*.*,选择一个O文件); O_filename=strcat(fpath,fname); fid1=fopen(O_filename,rt); if (fid1=-1) msgbox(file invalide,warning,warn); return; end %将文件头数据存入结构体HeadODat中 t=0; wh

5、ile(t100) s=fgets(fid1); t=t+1; L=size(s,2); if L81 s(L+1:81)= ; end instrS=s(61:81); %测站点近似坐标 if strncmp(instrS,APPROX POSITION XYZ,19) HeadODat.ApproXYZ=zeros(1,3); HeadODat.ApproXYZ(1,1)=str2num(s(1:14); HeadODat.ApproXYZ(1,2)=str2num(s(15:28); HeadODat.ApproXYZ(1,3)=str2num(s(29:42); %历元间隔; else

6、if strncmp(instrS,INTERVAL,8) HeadODat.interval=str2num(s(5:11); %测站点号 elseif strncmp(instrS,MARKER NAME,11) HeadODat.SiteName=s(1:4) %天线中心改正 elseif strncmp(instrS,ANTENNA: DELTA H/E/N,20) HeadODat.Ant_H=str2num(s(1:14); HeadODat.Ant_E=str2num(s(15:28); HeadODat.Ant_N=str2num(s(29:42); %第一个历元时间 else

7、if strncmp(instrS,TIME OF FIRST OBS,17) year=str2num(s(1:6); month=str2num(s(7:12); day=str2num(s(13:18); hour=str2num(s(19:24); minute=str2num(s(25:30); second=str2num(s(31:42); HeadODat.TimeOB=TimetoJD(year,month,day,hour,minute,second); %最后一个历元时间 elseif strncmp(instrS,TIME OF LAST OBS,16) year=st

8、r2num(s(1:6); month=str2num(s(7:12); day=str2num(s(13:18); hour=str2num(s(19:24); minute=str2num(s(25:30); second=str2num(s(31:42); HeadODat.TimeOE=TimetoJD(year,month,day,hour,minute,second); %观测值类型 elseif strncmp(instrS,# / TYPES OF OBSERV,19) HeadODat.SumOType=str2num(s(1:6); HeadODat.SumOO=ones(

9、1,HeadODat.SumOType)*-1; for k=1:HeadODat.SumOType f=s(k*6+5:k*6+6); if strcmp(f,L1) HeadODat.SumOO(1,k)=0; elseif strcmp(f,L2) HeadODat.SumOO(1,k)=1; elseif strcmp(f,C1) HeadODat.SumOO(1,k)=2; elseif strcmp(f,P1) HeadODat.SumOO(1,k)=3; elseif strcmp(f,P2) HeadODat.SumOO(1,k)=4; elseif strcmp(f,D1)

10、HeadODat.SumOO(1,k)=5; elseif strcmp(f,D2) HeadODat.SumOO(1,k)=6; end end %头文件结束 elseif strncmp(instrS,END OF HEADER,13) break; else continue; end end %观测数据结构体%观测数据结构 t=0; while feof(fid1) %每个历元的第一行数据,时间和观测到的卫星号 s=fgets(fid1); t=t+1; year=str2num(s(1:3); month=str2num(s(4:6); day=str2num(s(7:9); hour=str2num(s(10:12); minute=str2num(s(13:15); second=str2num(s(16:26); %历元时间 ObsODat(t).TimeOEp=year,month,day,hour,minute,second; ObsODat(t).TimeOEpp=TimetoJD(year,month,day,hour,minute,second); %该历元观测到的卫星数 ObsODat(t).SatSum=str2num(s(30:32); %该历元观测到的卫星号 ObsODat(t).SatCode=zero

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号