• 大小: 6KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: C/C++
  • 标签: matlabGPS  

资源简介

基于MATLAB使用C语言的读取GPS的rinex3.0的N文件,亲测好用,特来分享

资源截图

代码片段和文件信息

function  [navData] = ReadNav

%% 打开导航文件
NAVfilepath = ‘.\cuta1680.14p‘;
fid      =  fopen(NAVfilepath);

gpsnav        = 0;%记录gps卫星数目
bdsnav        = 0;%记录北斗卫星数目
%% 跳过头文件
while ~feof(fid)%feof若未结束返回0值
    line = fgetl(fid);
    if strcmp(line(61:73)‘END OF HEADER‘)break;end
end

%% 读取导航文件信息
while ~feof(fid)
   line = fgetl(fid);
    if line(1)==‘G‘ % 判断卫星种类
        flag = 1;%GPS标志位
        gpsnav = gpsnav + 1;  % 记录GPS卫星数目
        %% line 1 
        data4line = sscanf(line(2:end)‘%e‘);
        navData.type(flag).sat(gpsnav).prn = data4line(1);
        time4utc = data4line(2:7);
        gpst = cal2gps(time4utc);%转换时间
        navData.type(flag).sat(gpsnav).gpst = gpst ;%toc钟参数与toe对应
        navData.type(flag).sat(gpsnav).svClkBias = data4line(8);%偏差
        navData.type(flag).sat(gpsnav).svClkDrf  = data4line(9);%漂移
        navData.type(flag).sat(gpsnav).svDrfRate = data4line(10);%漂移速度
        %% line 2
        line = fgetl(fid);
        data4line = sscanf(line‘%e‘);
        navData.type(flag).sat(gpsnav).IODE = data4line(1);%数据发布时间
        navData.type(flag).sat(gpsnav).Crs = data4line(2);
        navData.type(flag).sat(gpsnav).Deltan = data4line(3);
        navData.type(flag).sat(gpsnav).Mo = data4line(4);
        %% line 3
        line = fgetl(fid);
        data4line = sscanf(line‘%e‘);
        navData.type(flag).sat(gpsnav).Cuc = data4line(1);
        navData.type(flag).sat(gpsnav).e = data4line(2);%轨道偏心角
        navData.type(flag).sat(gpsnav).Cus = data4line(3);
        navData.type(flag).sat(gpsnav).sqrta = data4line(4);%轨道长半径开方
        %% line 4
        line = fgetl(fid);
        data4line = sscanf(line‘%e‘);
        navData.type(flag).sat(gpsnav).toe = data4line(1);%星历参考时间(GPS周内秒数)
        navData.type(flag).sat(gpsnav).Cic = data4line(2);
        navData.type(flag).sat(gpsnav).OMEGA0 = data4line(3);
        navData.type(flag).sat(gpsnav).Cis = data4line(4);
        %% line 5
        line = fgetl(fid);
        data4line = sscanf(line‘%e‘);
        navData.type(flag).sat(gpsnav).io = data4line(1);%GPS周内秒数
        navData.type(flag).sat(gpsnav).Crc = data4line(2);
        navData.type(flag).sat(gpsnav).omega = data4line(3);%近地点角距
        navData.type(flag).sat(gpsnav).OMEGAdot = data4line(4);
        %% line 6
        line = fgetl(fid);
        data4line = sscanf(line‘%e‘);
        navData.type(flag).sat(gpsnav).idot = data4line(1);
        navData.type(flag).sat(gpsnav).L2 = data4line(2);%L2上的码
        navData.type(flag).sat(gpsnav).GPSWeek = data4line(3);%GPS周数
        navData.type(flag).sat(gpsnav).L2P = data4line(4);%L2P码数据标记
        %% line 7
        line = fgetl(fid);
        data4line = sscanf(line‘%e‘);
        navData.type(flag).sat(gpsnav).SVaccuracy = data4line(1);%卫星精度
        navData.type(flag).sat(gpsnav).SVhealth = data4line(2);%卫星健康状态
        navData.type(flag).sat(gpsnav).TGD = data4line(3);
        navData.type(flag).sat(gpsnav).IODC = data4line(

评论

共有 条评论

相关资源