文件用UltraEdith32打开如下: 

     2.11           NAVIGATION DATA     G (GPS)             RINEX VERSION / TYPE
DAT2RINW 3.10 001   1                   16APR08  9:51:13    PGM / RUN BY / DATE
                                                            COMMENT            
     .0000D+00   .0000D+00   .0000D+00   .0000D+00          ION ALPHA          
     .0000D+00   .0000D+00   .0000D+00   .0000D+00          ION BETA           
     .000000000000D+00  .000000000000D+00        0     1536 DELTA-UTC: A0,A1,T,W
     0                                                      LEAP SECONDS       
                                                            END OF HEADER      
 3 08  1  8  2  0  0.0  .169645063579D-03  .545696821064D-11  .000000000000D+00
     .360000000000D+02  .168125000000D+02  .566059288332D-08  .187730600259D+01
     .827014446259D-06  .103016884532D-01  .574626028538D-05  .515365054893D+04
     .180000000000D+06 -.223517417908D-06  .119458216673D+01 -.614672899246D-07
     .925474060201D+00  .250531250000D+03  .804069353196D+00 -.846213854544D-08
     .442875597306D-09  .100000000000D+01  .146100000000D+04  .000000000000D+00
     .240000000000D+01  .000000000000D+00 -.419095158577D-08  .360000000000D+02
     .175626000000D+06  .400000000000D+01
 8 08  1  8  2  0  0.0 -.136284623295D-03 -.136424205266D-11  .000000000000D+00
     .630000000000D+02 -.134843750000D+03  .393373511542D-08 -.219239155871D+00
    -.722706317902D-05  .101347706513D-01  .461563467979D-05  .515365814018D+04
     .180000000000D+06  .195577740669D-06 -.746096452266D+00 -.108033418655D-06
     .981573463389D+00  .300781250000D+03  .285613712656D+01 -.800961963421D-08
    -.336085437258D-09  .100000000000D+01  .146100000000D+04  .000000000000D+00
     .340000000000D+01  .000000000000D+00 -.419095158577D-08  .630000000000D+02
     .175638000000D+06  .400000000000D+01

一个同学让我帮忙用MATLAB读取GPS导航电文数据,我现在对GPS还不了解,也没仔细看数据文件的格式说明,(我本来把D当E,不知道怎么回事儿MATLAB自己就这么处理了),试着读了下。下面是MATLAB的脚本文件

%%%%%%%%%%%%%

%打开文件
fid=fopen('90540080.nav');
%跳过文件头 方法比较笨
while 1
    tline=fgets(fid);          
    if findstr(tline, 'END OF HEADE')>1       
        break;
    end
end
%读取导航电文数据
i=1;
while ~feof(fid)
    tmpstr= fscanf(fid,'%s',7);%之所以这样是因为文件最后有空白行,只用feof不能很好的结束文件
    if tmpstr                           %或者数据最后的空白行本来没有吧
       h(i).p = tmpstr;              %最近喜欢MATLAB中的structure,就用了
       for j=1:29
          q(j)=str2num(fscanf(fid,'%s',1));
       end
       h(i).d=q;
       i=i+1;
    else
        break;
    end
end
fclose(fid);
format long;

%%%%%%%%%%%%%

posted on 2008-12-15 04:47  秋波渡  阅读(5606)  评论(0编辑  收藏  举报