资源简介
这个是gps精密单点定位的Matlab源码,写的很详细,适合初学gps的。

代码片段和文件信息
function [xyz]= CalPos(PRNtime)
global EphDat
t1=TimetoJD(time(1)time(2)time(3)time(4)time(5)time(6));
t2=TimetoJD(time(1)time(2)time(3)000);
if isempty(EphDat)
EphDat=ReadGpsData;
end
sz=size(EphDat2);
gg=0;
%判断最近的时间
for i=1:sz
if(EphDat(i).PRN==PRN & abs(EphDat(i).toc-t1)<0.0417*2)
G=EphDat(i);
gg=1;
break;
end
end
if (gg==0)
msgbox(‘未读到符合要求的星历文件‘‘warning‘‘warn‘);
break;
end
t3=t2-G.weekno*7;
% 减整周 数
t=t3*24*3600+time(4)*3600+time(5)*60+time(6);
%化为GPS秒
u=3.986004418E+14; %地球引力常数
we=7.292115E-5; %地球自转速度
a=G.sqa^2; %地球长半轴
n0=sqrt(u/a^3); %计算的平运动
tk=t-G.toe; %从参考历元开始的时间
if tk>=302400
tk=tk-604800;
elseif tk<-302400
tk=tk + 604800;
end
n=n0+G.dn; %改正后的运动
Mk=G.M0+n*tk;
Ek=Mk; %偏近点角 弧度
for i=1:2
Ek=Mk+G.e*sin(Ek);
end
fk=2*atan((sqrt((1+G.e)/(1-G.e))*tan(Ek/2))); %真近点角
if(fk<0)
fk=fk+2*pi;
end
cosf=(cos(Ek)-G.e)/(1-G.e*cos(Ek));
sinf=(sqrt(1-G.e^2)*sin(Ek))/(1-G.e*cos(Ek));
uk=fk+G.w; %升交角矩及轨道摄动改正项
iuk=G.Cuc*cos(2*uk)+G.Cus*sin(2*uk);
irk=G.Crc*cos(2*uk)+G.Crs*sin(2*uk);
iik=G.Cic*cos(2*uk)+G.Cis*sin(2*uk);
uk=uk+iuk ; %改正后的升角距
r=a*(1-G.e*cos(Ek))+irk; %改正后的地心相径
i=G.i0+iik+G.iDot*tk; %改正后的倾角
xx=r*cos(uk); %在轨道面中的位置
yy=r*sin(uk);
omg=G.omg0+(G.omg-we)*tk-we*G.toe; %改正后的升交点经度
x=xx*cos(omg)-yy*cos(i)*sin(omg);
y=xx*sin(omg)+yy*cos(i)*cos(omg);
z=yy*sin(i);
CalPos=[xyz];
%打印结果
% x=num2str(x‘%12.6f‘);
% y=num2str(y‘%12.6f‘);
% z=num2str(z‘%12.6f‘);
% fprintf(‘卫星号PRN:%2.0f‘PRN); fprintf(‘\n‘);
% fprintf(‘时间time:%4.0f%4.0f%4.0f%4.0f%4.0f%4.1f‘time); fprintf(‘\n‘);
% fprintf(‘所求卫星在地心坐标系中的空间坐标为:\n‘);
% fprintf(‘X = ‘);fprintf(x‘\n‘);fprintf(‘m\n‘);
% fprintf(‘Y = ‘);fprintf(y‘\n‘);fprintf(‘m\n‘);
% fprintf(‘Z = ‘);fprintf(z‘\n‘);fprintf(‘m\n‘);
%
return
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11480 2007-03-23 16:23 精密单点定位的Matlab code\40180822.07N
文件 80202 2007-03-23 16:23 精密单点定位的Matlab code\40180822.07O
文件 2443 2007-05-30 21:17 精密单点定位的Matlab code\CalPos.m
文件 3393 2007-06-03 13:05 精密单点定位的Matlab code\DDDW.m
文件 2432 2007-05-28 11:45 精密单点定位的Matlab code\ReadGpsData.m
文件 7199 2007-06-03 12:34 精密单点定位的Matlab code\ReadObsData.m
文件 212 2007-05-26 10:10 精密单点定位的Matlab code\TimetoJD.m
目录 0 2011-12-05 17:04 精密单点定位的Matlab code
----------- --------- ---------- ----- ----
107361 8
- 上一篇:matlab实现的等间隔量化的HSV颜色特征
- 下一篇:相位恢复HIO代码
相关资源
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于BP神经网络对几种字体0-9的数字识
- GPS卫星轨道动态仿真MATLAB
- 图像的二进小波分解matlab源码(保证
- MRF matlab源码
- GMM(matlab源码)
- 3点GPS定位MATLAB仿真
- GPS信号的码捕获matlab代码.7z
- 医学图像重建作业matlab源码
- matlab读取SP3文件
- 粒子群算法优化RBF网络matlab源码
- 《信息隐藏技术实验教程》MATLAB源码
- 蚁群算法实现三维路径规划Matlab源码
- 产生泊松过程Matlab源码
- 数字图像处理作业canny边缘检测坎尼边
- 《信息隐藏技术实验教程》MATLAB源码
- LTE仿真Matlab源码
- GPS定位程序代码
- 基于核回归kernel regression方法的去模糊
- 西交大模式识别编程大作业报告+MAT
- GPS基本原理及其Matlab仿真235516
- 压缩感知之GPSR算法
- 神经网络、遗传算法、支持向量机、
- matlab源码的IMM交互多目标单目标跟踪
- 无线传感器网络节点定位算法matlab源
- 各种最小二乘法总结算法+matlab源码
- GPS信号捕获跟踪的MATLAB仿真,里面有
- gps基本原理及其matlab仿真199992
- LTE系统仿真平台_matlab源码
- 2dpca的matlab源码
评论
共有 条评论