Engee 文档

EngeeDSP.gpsWaveformGenerator

GPS信号发生器(传统的L1和L2,升级的L1C,L2C和L5)。

库::`工程师` 座:: GPS Waveform Generator

资料描述

一个对象 EngeeDSP.gpsWaveformGenerator 创建支持以下GPS信号的全球定位系统(GPS)信号发生器:

  • 传统的L1和L2-用于属性*SignalType*值指定时 "遗产".

  • 升级的L1C-用于属性*[参数:SignalType]*指定值时 "l1c".

  • 升级的L2C-当属性*<参数:SignalType>>*指定值时使用 "l2c".

  • 升级的L5-用于属性*[参数:SignalType]*指定值时 "l5".

要创建GPS信号发生器对象,请按照以下步骤操作:

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

  2. 用参数调用对象,就好像它是一个函数一样。

若要了解有关如何使用系统对象的详细信息,请参阅 AnyMath系统对象.

语法

创造

  • gpsWaveObj=gpsWaveformGenerator() -创建系统对象 EngeeDSP.gpsWaveformGenerator 具有默认属性。

  • gpsWaveObj=gpsWaveformGenerator("名称",值) -创建系统对象 EngeeDSP.gpsWaveformGenerator 具有指定的属性 "姓名",设置为指定值 价值. 您可以以任何顺序将其他参数指定为名称-值对("名称1", 价值1,…,"纳门", 瓦伦).

使用

  • 波形=gpsWaveObj(navdata) -在时域中产生GPS信号。

    waveform = gpsWaveObj(navdata)
  • 波形=gpsWaveObj(LNAV,CNAV) -在时域中产生GPS信号。

    waveform = gpsWaveObj(LNAV, CNAV)

争论

输入参数

navdata-导航数据

+ 二元矩阵

Details

作为二进制矩阵的导航数据集-列数必须等于属性*PRNID*的长度,因为每列对应于*PRNID*。 行数表示导航数据的比特数。

依赖关系

若要使用此参数,请将属性设置为*SignalType*value "遗产", "l1c""l5".

数据类型

AbstractMatrix{Integer}

LNAV—传统导航信息的位

+ 二元矩阵

Details

传统导航电文的位,指定为二进制矩阵。

如果为属性*SignalType*值集 "l2c" 如果给出了一个输入参数,则 gpsWaveObj 将相同的值分配给LNAV和CNAV。

依赖关系

若要使用此参数,请将属性设置为*SignalType*value "l2c".

数据类型

AbstractMatrix{Integer}

CNAV-民用导航电文位

+ 二元矩阵

Details

民用导航电文的比特设置为二进制矩阵,维数与 LNAV相同

如果为属性*SignalType*值集 "l2c" 如果给出了一个输入参数,则 gpsWaveObj 将相同的值分配给LNAV和CNAV。

依赖关系

若要使用此参数,请将属性设置为*SignalType*value "l2c".

数据类型

AbstractMatrix{Integer}

输出参数

波形-生成的GPS信号

+ 矩阵

Details

每列代表一个对应于属性值的信号*PRNID*。

行数等于乘积*BitDurationSampleRate×numBits,其中 numBits 是输入位数,等于 尺寸(导航数据,1).

信号的采样频率对应于属性*SampleRate*中指定的值。

数据类型

AbstractArray{Real}, AbstractArray{ComplexF64}

特征

# 信号类型 — 产生的基带信号的类型

+ "遗产" (默认情况下)| "l1c" | "l2c" | "l5"

Details

产生的基带信号的类型,设为:

  • "遗产" —使用此值生成传统的L1或L2信号。

  • "l1c" -使用此值生成升级的L1信号。

  • "l2c" -使用此值生成升级的L2信号。

  • "l5" -使用此值生成升级的L5信号。

# PRNID 是 伪随机卫星代码的索引

+ 1 (默认情况下)| [1,210]范围内的整数 | 范围[1,210]的整数向量

Details

卫星的卫星伪随机码索引(PRN),设为:

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

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

如果为属性*SignalType*值集 "l2c",那么PRN索引应该在范围内 [1, 63][159, 210].

# IsL2CInPhaseQuadrature — 实现l2c和L2P的正交密封

+ 真的1 (默认情况下)| 错误0

Details

用于为L2C和L2P启用相位正交的属性,设置为数字或逻辑值:

  • 真的 —使用此选项设置同相分支(I分支)的精密码(P代码),以及中等持续时间的民用码(CM)和正交分支(Q分支)的民用长码(CL;

  • 错误 -使用此选项安装I-branch中的所有代码。

依赖关系

若要使用此属性,请将属性设置为*SignalType*value "l2c".

# EnablePCode — P-代码指示器

+ 真的1 (默认)| 错误0

Details

P代码指示器,设置为数字或逻辑值。

在不需要P代码的情况下,将此属性设置为 错误 以提高执行速度。

如果值设置为 错误,I分支中的P代码设置为 0.

依赖关系

若要使用此属性,请将属性设置为*SignalType*value "遗产""l2c".

# HasDataWithPCode — 使用P码传输数据的能力

+ 真的1 (默认情况下)| 错误0

Details

使用P码传输数据的能力,指定为数字或逻辑值。 如果值设置为 真的,然后数据与P码一起传输。

依赖关系

若要使用此属性,请将属性设置为*SignalType*value "遗产""l2c",并且对于*[Argument property:EnablePCode]*值 真的.

# HasDataWithCACode — 使用粗捕获代码(C/a代码)传输数据的能力

+ 真的1 (默认情况下)| 错误0

Details

用粗捕获码(C/a码)传输数据的能力,设置为数字或逻辑值。 如果值设置为 真的,然后数据与C/a代码一起传输。

依赖关系

若要使用此属性,请将属性设置为*SignalType*value "遗产".

# 初始时间 — 一周的开始时间,从

+ 0 (默认情况下)| 范围[1,604800]中的真正标量

Details

一周的初始时间以秒为单位,设置为范围内的真实标量 [0, 604800].

依赖关系

若要使用此属性,请将属性设置为*SignalType*value "遗产",并且对于*[Argument property:EnablePCode]*值 错误.

# 采样 是 信号的采样频率,Hz

+ 10.23e6 (默认情况下)| 标量大于1e6

Details

以Hz为单位的信号的采样频率,设置为标量,大于 1e6. 此属性确定信号的采样频率。

# BitDuration — 输入位的持续时间

+ "0.01" | "0.02"

Details

此属性是只读的。 输入位的持续时间,表示为这些值之一:

  • "0.01" -如果属性*SignalType*具有值 "l1c""l5".

  • "0.02" -如果属性*SignalType*具有值 "遗产""l2c".

# 芯片率 — 信号中最慢代码的处理速度

+ "1.023e6" | "511.5e3" | "10.23e6"

Details

此属性是只读的。 信号中最慢代码的处理速度,表示为这些值之一:

  • "1.023e6" -如果属性*SignalType*具有值 "遗产""l1c".

  • "511.5e3" -如果属性*SignalType*具有值 "l2c".

  • "10.23e6" -如果属性*SignalType*具有值 "l5".

方法

所有系统对象通用

步!::运行系统对象运算算法 释放!::允许更改系统对象属性的值 重置!::重置系统对象的内部状态

例子:

产生传统的GPS信号

Details

我们将生成导航数据的随机片段。

using EngeeDSP, EngeeSatellites

navdata = rand(0:1, 2, 1)

创建对象 EngeeDSP.gpsWaveformGenerator 并设置其属性。

gpswaveobj = gpsWaveformGenerator()
gpswaveobj.EnablePCode = true
gpswaveobj.SampleRate = 4*10.23e6

让我们生成一个传统的GPS信号并绘制其频谱。

waveform = gpswaveobj(navdata)
txscope = spectrumAnalyzer(SampleRate=gpswaveobj.SampleRate)
txscope(waveform)

gpswaveformgenerator 1

GPS L1C信号生成

Details

让我们设置PRN索引并生成导航数据的随机位。

prn = [4 70]
numsat = length(prn)
numbits = 100
msg = rand(0:1, numbits, numsat)

创建对象 EngeeDSP.gpsWaveformGenerator 并设置其属性。

fs = 25e6
gpswaveobj = gpsWaveformGenerator(
    "SignalType","l1c",
    "PRNID",prn,
    "SampleRate",fs
)

让我们生成GPS L1C信号并绘制其频谱。

waveform = gpswaveobj(msg)
txscope = spectrumAnalyzer(SampleRate=fs)
txscope(waveform)

gpswaveformgenerator 2

GPS L2C信号生成

Details

我们将为四颗GPS卫星生成带有随机LNAV和CNAV数据的L2C GPS信号。

让我们设置PRN索引并生成随机LNAV和CNAV数据。

prn = [7 11 20 28]
numsat = length(prn)
numbits = 10
lnavdata = rand(0:1, numbits, numsat)
cnavdata = rand(0:1, numbits, numsat)

创建对象 EngeeDSP.gpsWaveformGenerator 并设置其属性。

gpswaveobj = gpsWaveformGenerator()
gpswaveobj.SignalType = "l2c"
gpswaveobj.PRNID = prn
gpswaveobj.SampleRate = 15e6
gpswaveobj.EnablePCode = true

让我们生成一个GPS L2C信号并绘制其频谱。

waveform = gpswaveobj([lnavdata, cnavdata])
txscope = spectrumAnalyzer()
txscope(waveform)

gpswaveformgenerator 3

GPS L5信号生成

Details

让我们设置PRN索引并生成随机导航数据。

prn = [185, 189]
numsat = length(prn)
numbits = 40
msg = rand(0:1, numbits, numsat)

创建对象 EngeeDSP.gpsWaveformGenerator 并设置其属性。

fs = 25e6
gpswaveobj = gpsWaveformGenerator(
    "SignalType", "l5",
    "PRNID", prn,
    "InitialTime", 42123,
    "SampleRate", fs
)

让我们生成一个GPS L2C信号并绘制其频谱。

waveform = gpswaveobj(msg)
txscope = spectrumAnalyzer(SampleRate=fs)
txscope(waveform)

gpswaveformgenerator 4