【MATLAB】GNSS观测文件采样频率1Hz转换为10Hz

%%%%GNSS观测文件采样频率1Hz转换为10Hz脚本
%%%%作者:LZ_CUMT
%%%%1Hz数据秒数为实数,取整数数据即转换为10Hz数据

clc
clear all

%%%%文件读取并转化为cell存储
fid1 = fopen('rover_trimble.obs','r');
n = 1;
while feof(fid1) == 0    
   Data{n,1} = fgetl(fid1);
   n = n+1;
end

flag=ones(n-1,1);
fid2 = fopen('rover_trimble.obs','r');

%%%%再次读取文件,找到观测值中的时间行,判断历元是否为整数,不是则对该历元下各数据的行数flag置为0
for i=1:n-1
    raw = fgetl(fid2);
    if strcmp(raw(1),'>')
        tt=str2num(raw(14:15))*3600+str2num(raw(17:18))*60+str2num(raw(20:29));
        satnum=str2num(raw(34:35));
        if (tt-round(tt)~=0.0)
            for j=i:i+satnum
                flag(j)=0;
            end
        end
    end
end

%%%%写入新文件,标记为0的数据所在行不予写入新文件
fid1 = fopen('new rover_trimble.obs','w');
for i=1:n-1 
    if(flag(i))
        fprintf(fid1,'%c',Data{i,1});
        fprintf(fid1,'\n');
    end
end

转换前:

【MATLAB】GNSS观测文件采样频率1Hz转换为10Hz_第1张图片

转换后:【MATLAB】GNSS观测文件采样频率1Hz转换为10Hz_第2张图片

你可能感兴趣的:(GNSS,MATLAB)