主要内容

gpsPCode

为GPS卫星生成p码

描述

gpsPCode系统对象™为全球定位系统(GPS)卫星生成精确代码(P-code),定义见IS-GPS-200L章节3.3.2.2[1]

为GPS卫星生成p码:

  1. 创建gpsPCode对象并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

例子

pgenerator= gpsPCode创建一个默认的p代码生成器系统对象。

例子

pgenerator= gpsPCode (名称,值属性使用一个或多个名称-值对。例如,“PRNID”,10指定伪随机噪声(PRN) ID为10。

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

GPS卫星PRN索引,指定为这些选项之一。

  • 范围为[1,210]的整数-使用此选项为单个卫星输入PRN索引。

  • 范围[1,210]内整数元素的向量-使用此选项可为多个卫星输入PRN索引。

PRN ID的取值请参见IS-GPS-200L表3-Ia、表3-Ib和表6-I[1]

数据类型:|uint8

输出码长,指定为正整数。这个长度指定输出p码中的行数。

的默认值10230相当于1毫秒的p码,因为p码芯片的频率是10.23 MHz。

可调:是的

数据类型:|uint64

初始状态的格式为“秒”“datetime”,或“芯片”

数据类型:字符|字符串

初始时间在一周内,指定为这些选项之一。

  • 范围内的整数[0,604,800]-在设置InitialStateFormat财产“秒”.在本例中,初始时间指定从一周开始经过的秒数。

  • datetime对象-当您设置InitialStateFormat财产“datetime”.在本例中,初始时间指定从一周开始到指定的时间所经过的时间datetime对象。

请注意

p码为期一周。

的默认值0假设你设置了InitialStateFormat财产“秒”

依赖关系

属性可启用此属性InitialStateFormat财产“秒”“datetime”

数据类型:

经过的p码芯片的初始数量,从一周开始,指定为范围为[0,604,800x10 .23e6]的整数。

最大输入值604,800x10.23e6是一周内消耗的芯片总数(7×24×60×60×10.23e6)。

请注意

10.23 e6是一秒钟内消耗的芯片数。

依赖关系

属性可启用此属性InitialStateFormat财产“芯片”

数据类型:|uint64

使用

描述

代码= pgenerator ()

输出参数

全部展开

生成的二进制值p码,指定为这些选项之一。

  • Vector—当您指定PRNID属性作为标量。

  • 属性时,System对象返回此选项PRNID属性作为向量。中元素对应的生成的p码PRNID向量。

的行数等于OutputCodeLength财产。的列数等于的长度PRNID财产。向量或矩阵的每个元素都是数据类型int8

数据类型:int8

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

信息 对象的特征信息
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
克隆 创建重复的系统对象
isLocked 确定系统对象正在使用中
重置 重置的内部状态系统对象

例子

全部折叠

创建一个精确代码生成器(P-code)系统对象™,然后设置其属性。

pgen = gpsPCode;pgen。Prnid = [10 50];% 2卫星pgen。OutputCodeLength = 1024;pgen。InitialTime = 1800;%秒数(默认)disp (pgen)
gpsPCode属性:PRNID: [10 50] OutputCodeLength: 1024 InitialStateFormat: "seconds" InitialTime: 1800

生成p码。

代码= pgen();

创建P-code System对象™并设置其属性。

pgen = gpsPCode;pgen。Prnid = 45;pgen。OutputCodeLength = 102400;

设置初始状态格式为chips。在一周内生成最后5000个芯片的p码。

pgen。InitialStateFormat =“芯片”% 604,800是一周的总秒数% 10.23e6是一秒钟内经过的p码芯片的数量pgen。initialnumchipselaled = 604800*10.23e6 - 5000;代码= pgen();

创建一个P-code系统对象™,并指定PRN索引和输出码长度。

设置初始状态的格式为adatetime对象。生成当前时间的p码。

pgen = gpsPCode;pgen。Prnid = 25;pgen。OutputCodeLength = 20460;pgen。InitialStateFormat =“datetime”;pgen。InitialTime =日期时间(“现在”);代码= pgen();

显示P-code生成器的属性。

disp (pgen)
gpsPCode属性:PRNID: 25 OutputCodeLength: 20460 InitialStateFormat: "datetime" InitialTime: 31-Aug-2022 03:35:04

从一个gpsPCode系统对象™信息对象的功能。观察初始时间的精度如何影响p码的生成。

创建一个p代码生成器System对象™,然后指定它的属性。

格式pgen = gpsPCode
pgen = gpsPCode属性:PRNID: 1 OutputCodeLength: 10230 InitialStateFormat: "seconds" InitialTime: 0
pgen。InitialStateFormat =“芯片”;pgen。initialnumchipselied = 8388600;

获取关于P-code生成器的特征信息。

pgen.info
ans =带字段的结构:totalnumchipselsed: 8388600 totalsecondselsed: 0.820000000000000

将时间提前四分之一的p码芯片时间(即0.25/10.23e6)。

pgen1 = gpsPCode;pgen1。InitialTime = pgen.info. totalsecondselsold + 0.25/10.23e6
pgen1 = gpsPCode with properties: PRNID: 1 OutputCodeLength: 10230 InitialStateFormat: "seconds" InitialTime: 0.820000024437928
pgen1.info
ans =带字段的结构:totalnumchipselsed: 8388600 totalsecondselsed: 0.820000000000000

信息的函数输出中没有增量TotalNumChipsElapsed在这种情况下,因为TotalNumChipsElapsed内部使用函数计算

现在将时间提前一半的p码芯片时间(即0.5/10.23e6)。

pgen2 = gpsPCode;pgen2。InitialTime = pgen.info. totalsecondselsold + 0.5/10.23e6
pgen2 = gpsPCode with properties: PRNID: 1 OutputCodeLength: 10230 InitialStateFormat: "seconds" InitialTime: 0.820000048875855
pgen2.info
ans =带字段的结构:totalnumchipselsed: 8388601 totalsecondselsed: 0.820000097751711

信息函数输出现在显示TotalNumChipsElapsed是加1,由于内部使用圆的()函数。

比较每个System对象调用的输出。

代码= pgen();Code1 = pgen1();Code2 = pgen2();code1 isequal(代码)% code和code1相等
ans =逻辑1
isequal (code1 code2)% code1和code2不相等
ans =逻辑0

参考文献

[1]是gps - 200 l。导航星GPS空间段/导航用户段接口GPS企业空间与导弹系统中心(SMC) - LAAFB, 2020年5月14日。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

R2021b中引入

另请参阅

功能

对象

Baidu
map