EngeeDSP.gpsWaveformGenerator
Генератор сигнала GPS (традиционные L1 и L2, модернизированные L1C, L2C и L5).
| Библиотека |
|
| Блок |
Описание
Объект EngeeDSP.gpsWaveformGenerator создает генератор сигналов глобальной системы позиционирования (Global Positioning System, GPS), поддерживающий следующие сигналы GPS:
-
Традиционные L1 и L2 — используется, когда для свойства SignalType указано значение
"legacy". -
Модернизированный L1C — используется, когда для свойства SignalType указано значение
"l1c". -
Модернизированный L2C — используется, когда для свойства SignalType указано значение
"l2c". -
Модернизированный L5 — используется, когда для свойства SignalType указано значение
"l5".
Чтобы создать объект генератора сигналов GPS, выполните следующие действия:
-
Создайте объект EngeeDSP.gpsWaveformGenerator и установите его свойства.
-
Вызовите объект с аргументами, как если бы это была функция.
Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.
Синтаксис
Создание
-
gpsWaveObj = gpsWaveformGenerator()— создает системный объект EngeeDSP.gpsWaveformGenerator со свойствами по умолчанию. -
gpsWaveObj = gpsWaveformGenerator("Name",value)— создает системный объект EngeeDSP.gpsWaveformGenerator с указанным свойством"Name", установленным на указанное значениеValue. Вы можете указать дополнительные аргументы в виде пары имя-значение в любом порядке ("Name1",Value1,…,"NameN",ValueN).
Аргументы
Входные аргументы
navdata — навигационные данные
двоичная матрица
Details
Навигационные данные, заданные как двоичная матрица — количество столбцов должно быть равно длине свойства PRNID, поскольку каждый столбец соответствует PRNID. Количество строк представляет собой количество битов навигационных данных.
Зависимости
Чтобы использовать этот аргумент, установите для свойства SignalType значение "legacy", "l1c" или "l5".
| Типы данных |
|
LNAV — биты традиционного навигационного сообщения
двоичная матрица
Details
Биты традиционного навигационного сообщения, заданные как двоичная матрица.
Если для свойства SignalType установлено значение "l2c" и задан один входной аргумент, то gpsWaveObj присваивает одинаковое значение LNAV и CNAV.
|
Зависимости
Чтобы использовать этот аргумент, установите для свойства SignalType значение "l2c".
| Типы данных |
|
CNAV — биты гражданского навигационного сообщения
двоичная матрица
Details
Биты гражданского навигационного сообщения заданные как двоичная матрица, той же размерности, что и LNAV
Если для свойства SignalType установлено значение "l2c" и задан один входной аргумент, то gpsWaveObj присваивает одинаковое значение LNAV и CNAV.
|
Зависимости
Чтобы использовать этот аргумент, установите для свойства SignalType значение "l2c".
| Типы данных |
|
Выходные аргументы
waveform — сгенерированный GPS сигнал
матрица
Details
Каждый столбец представляет собой сигнал, соответствующий значению свойства PRNID.
Количество строк равно произведению BitDuration × SampleRate × numBits, где numBits — количество входных битов и равно size(navdata,1).
Частота дискретизации сигнала соответствует значению, указанному в свойстве SampleRate.
| Типы данных |
|
Свойства
#
SignalType —
тип генерируемого сигнала основной полосы частот
"legacy" (по умолчанию) | "l1c" | "l2c" | "l5"
Details
Тип генерируемого сигнала основной полосы частот, заданный как:
-
"legacy"— используйте это значение для генерации традиционного сигнала 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
true или 1 (по умолчанию) | false или 0
Details
Свойство для включения фазовой квадратуры для L2C и L2P, заданный в виде числового или логического значения:
-
true— используйте эту опцию, чтобы задать код точности (P-код) для синфазной ветви (I-ветвь), а также гражданский код средней длительности (CM) и гражданский длинный код (CL) для квадратурной ветви (Q-ветвь); -
false— используйте эту опцию для установки всех кодов в I-ветви.
Зависимости
Чтобы использовать это свойство, установите для свойства SignalType значение "l2c".
#
EnablePCode —
индикатор P-кода
true или 1 (по умолчанию) | false или 0
Details
Индикатор P-кода, заданный в виде числового или логического значения.
В тех случаях, когда не нужен P-код, установите для этого свойства значение false, чтобы повысить скорость выполнения.
Если установлено значение false, P-код в I-ветви устанавливается равным 0.
Зависимости
Чтобы использовать это свойство, установите для свойства SignalType значение "legacy" или "l2c".
#
HasDataWithPCode —
возможность передачи данных с помощью P-кода
true или 1 (по умолчанию) | false или 0
Details
Возможность передачи данных с помощью P-кода, заданная в виде числового или логического значения. Если установлено значение true, то данные передаются вместе с P-кодом.
Зависимости
Чтобы использовать это свойство, установите для свойства SignalType значение "legacy" или "l2c", а для свойства EnablePCode значение true.
#
HasDataWithCACode —
возможность передачи данных с кодом грубого захвата (C/A-код)
true или 1 (по умолчанию) | false или 0
Details
Возможность передачи данных с кодом грубого захвата (C/A-код), заданная в виде числового или логического значения. Если установлено значение true, то данные передаются вместе с C/A-кодом.
Зависимости
Чтобы использовать это свойство, установите для свойства SignalType значение "legacy".
#
InitialTime —
начальное время в течение одной недели, с
0 (по умолчанию) | вещественный скаляр в диапазоне [1, 604800]
Details
Начальное время в течение одной недели в секундах, заданное как вещественный скаляр в диапазоне [0, 604800].
Зависимости
Чтобы использовать это свойство, установите для свойства SignalType значение "legacy", а для свойства EnablePCode значение false.
#
SampleRate —
частота дискретизации сигнала, Гц
10.23e6 (по умолчанию) | скаляр больше 1e6
Details
Частота дискретизации сигнала в Гц, заданная в виде скаляра больше 1e6. Это свойство определяет частоту дискретизации сигнала.
#
BitDuration —
длительность входных битов
"0.01" | "0.02"
Details
Это свойство доступно только для чтения. Длительность входных битов, представленная в виде одного из этих значений:
-
"0.01"— если свойство SignalType имеет значение"l1c"или"l5". -
"0.02"— если свойство SignalType имеет значение"legacy"или"l2c".
#
ChipRate —
скорость обработки самого медленного кода в сигнале
"1.023e6" | "511.5e3" | "10.23e6"
Details
Это свойство доступно только для чтения. Скорость обработки самого медленного кода в сигнале, представленная в виде одного из этих значений:
-
"1.023e6"— если свойство SignalType имеет значение"legacy"или"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)

Генерация сигнала 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)

Генерация сигнала GPS L2C
Details
Сгенерируем сигнал GPS L2C со случайными данными LNAV и CNAV для четырех спутников 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)

Генерация сигнала 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)
