DAY5---GINav学习(SPP)

今天接着昨天继续学习,加油,冲冲冲!

对index(1)-index(4)里面的内容进行查看,输入参数headinfo.ver、SYS_GPS、opt、tobs()。

(2)decode_epoch.m

调用decode_epoch()函数,以下内容对该部分进行注释,以及相关的输出。

 定义了基本的参数,输出在右侧的工作区里面,对gls里面进行一个查看。

在定义该函数下面,通过前面查看,文件头的版本为3.02,所以只执行以下代码,在该部分代码中,将第33-35字符以双精度浮点型的形式赋予ns、如果ns的值小于0,结束该操作、将第32字符以刷个进度浮点型的形式赋予flag,如果flag的值大于等于3小于等于5时,结束操作、如果第一个字符的值不等于>时,结束操作。将第2-29字符以双精度浮点型的形式赋予time。

(3)decode_data.m

调用decode_data()函数之前,将相关的参数引入到工作区内,对其进行查看。

 步入进decode_data()进行查看。

 val(1:glc.MAXOBSTYPE)=0; lli(1:glc.MAXOBSTYPE)=0;:这行代码初始化两个数组vallli的元素为0。vallli是两个大小为glc.MAXOBSTYPE的数组,表示观测值和锁定大小指标。p(1:glc.MAXOBSTYPE)=NaN; k(1:16)=NaN;l(1:16)=NaN;:这行代码初始化三个数组pkl的元素为NaNpkl分别表示伪距观测值、多普勒观测值和相位观测值。

 

 该部分定义了一个循环,查看glc.MAXFREQ的值,里面的数字为6。

 

 通过查看p(i)与val(i),发现进行第3次的时候就会停止。

 (4)saveslips.m

 function [data,slips]=saveslips(data,slips):这行代码定义了一个名为saveslips的函数,它接受两个输入参数dataslips,并返回两个输出变量dataslips。函数名称和参数列表位于function关键字后面。

总结来说,这段代码定义了一个名为saveslips的函数,根据输入的观测数据data和已有的丢失情况slips,在slips中记录卫星的丢失情况。具体的操作是,对于每个频率,如果data.LLI(i)的第一个比特位非零,即观测值有锁定丢失,就在slips中记录该频率的卫星丢失情况。最后,将更新后的dataslips作为输出参数返回。

查看

 根据代码片段中的函数调用screent(data(1).time,opt.ts,opt.te,opt.ti)screen()是一个函数,用于对时间戳进行筛选或过滤。

 ​​​​​​​

  bitand()函数是一种位与操作,用于执行两个数字之间的逻辑位与运算。它接受两个参数,表示要进行位与操作的数字。

bitor(data.LLI(i),1)是一个逻辑位或操作,用于将data.LLI(i)的最低位(最右边的比特位)设置为1。

slips(data.sat,i)=0是一条赋值语句,将slips(data.sat,i)的值设置为0。

根据代码上下文来看,slips可能是一个包含卫星数据的矩阵或向量,data.sat可能表示卫星的索引或标识符,而i则是一个循环变量或迭代索引。

所以,slips(data.sat,i)=0将会把slips中表示第data.sat个卫星在第i个位置的数据设置为0。

 1.2readrnxnav.m

调用readrnxnav()函数与读取广播星历文件。包括头文件、主文件。

步入到readrnxnav.m文件里面,结果如下所示,在该文件中,调用了decode_rnxh()、decode_navh()、decode_navb()这三个函数,在这三个函数当中,主要是包括观测文件的头文件、广播星历头文件以及广播星历主文件。

 fid前面的参数进行步进,如何在工作栏中有一些相关的参数,同时在命令栏中有Info:reading nav file %s...一行字。

  在工作区内,有输入文件的路径,以及文件名:brdm0870.p以及一些其他的参数。

1.2.1decode_rnxh.m

第一步:先步入decode_rnxh.m文件中,该部分在DAY2里面有输入。

 具体的输出结果如下所示。

 1.2.2decode_navh.m

第二步:先步入decode_navh.m文件中,该部分在DAY2里面有输入。

 具体的输出结果如下所示。

 1.2.3decode_navb.m

第三步:步入decode_navb.m文件中,下面文件进行详细的注释以及工作栏进行参数的输出进行介绍。

在该部分,定义了一个decode_navb()的函数,输入参数包括nav、fid、opt与headinfo,输出的参数包括nav与stat。

定义一个global的全局变量glc与gls。

将1赋值为stat,10000赋值为NMAX。

repmat()为重复函数, 引入gls.eph与gls.geph里面的参数,然后构建一个10000*1的矩阵,查看具体的形式如下所示。

根据文件头的类型,进行相关的切换,其中headinfo.sys=0,所以将其值赋予sys,查看sys为0。

 步入到decode_navb_data.m文件里面,在该函数中输入参数为opt、headinfo.ver、sys与fid,输出为eph、geph、type、fid、stat0。

 (1)decode_navb_data.m

 定义了decode_navb_data()函数,输入包括opt、ver、sys与fid,输出为eph、geph、type、fid与stat。

 data=zeros(1,64)创建了一个大小为1x64的零矩阵,并将其赋给名为data的变量。也就是说,在data中创建了一个包含64个元素的向量,其中的每个元素都被设置为0。buff(1:glc.MAXRNXLEN)=' '对名为buff的变量进行了赋值操作。buff可能是一个字符向量或字符数组,glc.MAXRNXLEN可能是一个表示长度的常量。这条语句将buff中的第1到第glc.MAXRNXLEN个元素(即索引为1到glc.MAXRNXLEN的位置)都设置为字符空格(' ')。

 (1.1)set_sysmask.m

 首先定义了一个set_sysmask()函数,输入函数参数为opt,输出参数为mask。

定义一个参数mask下从一行五列的矩阵,最开始赋值为0,根据opt里面筛选出来标签为G与C,进行一个标签的查找,进行五次,得到以下的结果。

 (1.2)decode_eph.m

调用decode_eph()函数。输入ver、sat、toc与data,输出参数eph与stat。 

 输入卫星钟的三个参数

输入15个卫星轨道的参数,在工作栏进行查看,如下所示。

 

条件语句,只能满足第一个,第二个不满足,所以第一个if不满足,第二个if满足,将data(29)的值赋予eph.fit.

 (1.2.1)adjweek.m

adjweek()函数主要是解决GAL与BDS系统。

定义了一个adjweek()函数为t,其中使用timediff()函数,将t1到t2时间段的值赋予tt,一般是是在广播星历文件中,读取年月日的具体时间。

使用if条件句,timeadd()函数主要进行时间的叠加,当时间差啊小于-302400的时候将t1加上604800,将t1的值赋予t;当时间大于302400的时候,t1-604800,将t1的值赋予t,其他的话就直接将t1的值赋予t。

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值