资源简介
这是一个用matlab编写的读取renix文件的代码,运行该代码可以很容易读取renix文件
代码片段和文件信息
function EphDat = Read_N_Renix(filename)
%Read the N-file with the renix format
%Input:
% filename: the name of file including the file path
%Output:
% EphDat: a structure storing the ephemeris
% .SatPRN; //the Sat code
% .toc; //gpsweeksec
% .a0; //different of the sat clock(second)
% .a1; //sat clock drift (s/s)
% .a2; //the rate of the Sat clock drift(s/s^2)
% .IODE; //星历数据有效期IODE=Toe -Tl;
% .Crs; //轨道半径正弦调和改正项振幅(m)
% .DetaN; //平均运动修正量
% .M0; //Toe时的平近点角
% .Cuc; //纬度幅角余弦调和改正项振幅
% .e; //卫星轨道扁心率
% .Cus; //纬度幅角正弦调和改正项振幅
% .sqrtA; //卫星轨道长半径方根
% .Toe; //星历参考时间
% .Cic; //轨道倾角余弦调和改正项振幅
% .OMG0; //升交点赤经
% .Cis; //轨道倾角正弦调和改正项振幅
% .I0; //轨道倾角
% .Crc; //轨道半径余弦调和改正项振幅(m)
% .omg; //近地点角距
% .OMG0dot; //升交点赤经变化率
% .I0dot; //轨道倾角变化率
% .ISL2; //L2 数据标志
% .GpsWn; //GPS week number
% .ISL2P; //L2 P 数据标志
% .SatAccu; //The accuracy of the satellite(m)
% .SatHth; //The health of the Satellite (MSB)
% .Tgd; //单频接收机延迟改正数
% .IODC; //时钟数据有效期
%Begin program
fp=fopen(filename‘r‘);
if(fp==-1)
error(‘error to open the ‘+ filename);
end
%read the file header
while (1)
strTemp=fgets(fp);
if(strTemp==-1)
error(‘error in the header file of ‘+ filename);
end
if(length(strTemp)<73)
strTemp(length(strTemp)+1:73)=‘X‘;
end
if(strTemp(61:73)==‘END OF HEADER‘)
break;
end
end
%read the N file data
%read the first epoch
strTemp=fgets(fp);
EphDat(1).SatPRN=str2num(strTemp(1:2));
Year=str2num(strTemp(4:5));Mon=str2num(strTemp(7:8));
Day=str2num(strTemp(10:11));THour=str2num(strTemp(13:14));
TMin=str2num(strTemp(16:17));TSec=str2num(strTemp(19:22));
if (Year>80) %GPS从20C80年代上商用
Year=Year+1900;
else
Year=Year+2000;
end
EphDat(1).toc=ConvertGpsTime(YearMonDayTHourTMinTSec); %转换成GPS周秒
EphDat(1).a0=str2num(strTemp(23:41)); %DE需要转化。。。。。。。。。。
EphDat(1).a1=str2num(strTemp(42:60));
EphDat(1).a2=str2num(strTemp(61:79));
strTemp=fgets(fp);; %read the second line
EphDat(1).IODE=str2num(strTemp(1:22));
EphDat(1).Crs=str2num(strTemp(23:41));
EphDat(1).DetaN=str2num(strTemp(42:60));
EphDat(1).M0=str2num(strTemp(61:79));
strTemp=fgets(fp); %read the third line
EphDat(1).Cuc=str2num(strTemp(1:22));
EphDat(1).e=str2num(strTemp(23:41));
EphDat(1).Cus=str2num(strTemp(42:60));
EphDat(1).sqrtA=str2num(strTemp(61:79));
strTemp=fgets(fp); %read the fourth line
EphDat(1).Toe=str2num(strTemp(1:22));
EphDat(1).Cic=str2num(strTemp(23:41));
EphDat(1).OMG0=str2num(strTemp(42:60));
EphDat(1).Cis=str2num(strTemp(61:79));
strTemp=fgets(fp); %read t
- 上一篇:引入3个调节因子的改进S变换程序
- 下一篇:动态帧时隙ALOHA
相关资源
- 粒子滤波算法介绍及MATLAB工具箱
- 广义预测控制Matlab程序
- 通过knn算法,实现WiFi室内定位在mat
- 云计算,matlab
- 用户均衡流量分配模型UE的matlab求解程
- 回溯搜索算法 matlab BSA.m
- 概率神经网络分类matlab代码
- 何凯明去雾MATLAB代码(.M).zip
- 《神经.模糊.预测控制及其MATLAB实现》
- 柴油发电机matlab模型
- morlet小波matlab代码
- 振动课程MATLAB代码
- FRFT分数阶傅里叶变换matlab代码
- matlab密码登陆界面的实现
- 拟一维喷管流动的数值解MATLAB程序
- kd树的创建及搜索 matlab实现
- matlab音乐合成.zip
- 永磁同步电机直接转矩控制仿真图M
- svm多分类matlab程序
- 对图像进行傅里叶变换和逆变换
- MATLAB图像增强程序举例
- EM算法在高斯混合模型中的应用有ma
- 基于matlab的发动机特性曲线拟合
- 卡尔曼滤波器matlab程序
- 基于MATLAB的数字可视化图像处理GUI设
- Matlab registration
- 卷积码及维特比译码matlab程序
- Matlab三次样条插值函数
- 主动轮廓模型图像分割程序 matlab
- 基于MATLAB的布朗运动的仿真
评论
共有 条评论