gpsPCode

Сгенерируйте Псевдокод для спутников GPS

Описание

gpsPCode Система object™ генерирует код точности (Псевдокод) для спутника Системы глобального позиционирования (GPS), как задано в Разделе IS-GPS-200L 3.3.2.2 [1].

Сгенерировать Псевдокод для спутника GPS:

  1. Создайте gpsPCode объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?

Создание

Описание

пример

pgenerator = gpsPCode создает Системный объект генератора Псевдокода по умолчанию.

пример

pgenerator = gpsPCode(Name,Value) Свойства наборов с помощью одной или нескольких пар "имя-значение". Например, 'PRNID',10 задает ID псевдослучайного шума (PRN) 10.

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Спутник GPS PRN индексирует в виде одной из этих опций.

  • Целое число в области значений [1, 210] — Использование эта опция, чтобы ввести индекс PRN для одного спутника.

  • Вектор из целочисленных элементов в области значений [1, 210] — Использование эта опция в индексы входа PRN для нескольких спутников.

Для получения дополнительной информации на Значениях идентификаторов PRN, см. Таблицы IS-GPS-200L, С 3 ia, 3-Ib, и 6-I [1].

Типы данных: double | uint8

Выведите разрядность кода в виде положительного целого числа. Эта длина задает количество строк в выходном Псевдокоде.

Значение по умолчанию 10230 соответствует 1 миллисекунде Псевдокода, как микросхемы Псевдокода на уровне 10,23 МГц.

Настраиваемый: да

Типы данных: double | uint64

Формат начального состояния в виде "seconds"datetime, или "chips".

Типы данных: char | string

Начальное время в течение одной недели в виде одной из этих опций.

  • Целое число в области значений [0, 604,800] — Использование эта опция, когда вы устанавливаете InitialStateFormat свойство к "seconds". В этом случае начальное время задает секунды, которые протекли с начала недели.

  • datetime объект — Использование эта опция, когда вы устанавливаете InitialStateFormat свойство к "datetime". В этом случае начальное время указывает, что время протекло с начала недели ко времени, заданному datetime объект.

Примечание

Псевдокод одна неделя длиной.

Значение по умолчанию 0 принимает, что вы устанавливаете InitialStateFormat свойство к "seconds".

Зависимости

Чтобы включить это свойство, установите InitialStateFormat свойство к "seconds" или "datetime".

Типы данных: double

Начальное количество прошедших микросхем Псевдокода, с начала недели в виде целого числа в области значений [0, 604,800x10.23e6].

Максимальное входное значение, 604,800x10.23e6, является общим количеством микросхем, истекших за одну неделю (7×24×60×60×10.23e6).

Примечание

10.23e6 количество микросхем, истекших за одну секунду.

Зависимости

Чтобы включить это свойство, установите InitialStateFormat свойство к "chips".

Типы данных: double | uint64

Использование

Синтаксис

Описание

code = pgenerator()

Выходные аргументы

развернуть все

Сгенерированный Псевдокод с бинарным знаком в виде одной из этих опций.

  • Вектор — Системный объект возвращает эту опцию, когда вы задаете свойство PRNID как скаляр.

  • Матрица — Системный объект возвращает эту опцию, когда вы задаете свойство PRNID как вектор. Каждый столбец этой матрицы представляет сгенерированный Псевдокод, соответствующий элементу в PRNID вектор.

Количество строк равно значению свойства OutputCodeLength. Количество столбцов равно длине PRNID свойство. Каждый элемент вектора или матрицы имеет тип данных int8.

Типы данных: int8

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

infoХарактеристическая информация об объекте
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
cloneСоздайте объект дублированной системы
isLockedОпределите, используется ли Системный объект
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Создайте генератор кода точности (Псевдокод) Система object™, и затем установите ее свойства.

pgen = gpsPCode;
pgen.PRNID = [10 50];         % 2 satellites
pgen.OutputCodeLength = 1024;
pgen.InitialTime = 1800;      % Seconds (default)
disp(pgen)
  gpsPCode with properties:

                 PRNID: [10 50]
      OutputCodeLength: 1024
    InitialStateFormat: "seconds"
           InitialTime: 1800

Сгенерируйте псевдокод.

code = pgen();

Создайте Систему Псевдокода object™ и установите ее свойства.

pgen = gpsPCode;
pgen.PRNID = 45;
pgen.OutputCodeLength = 102400;

Установите формат начального состояния как микросхемы. Сгенерируйте Псевдокод для последних 5 000 микросхем за одну неделю.

pgen.InitialStateFormat = "chips";
% 604,800 is the total seconds in one week
% 10.23e6 is the number of P-code chips that elapsed in one second
pgen.InitialNumChipsElapsed = 604800*10.23e6 - 5000;
code = pgen();

Создайте Систему Псевдокода object™ и задайте индекс PRN и выходную разрядность кода.

Установите формат начального состояния как datetime объект. Сгенерируйте Псевдокод в течение текущего времени.

pgen = gpsPCode;
pgen.PRNID = 25;
pgen.OutputCodeLength = 20460;
pgen.InitialStateFormat = "datetime";
pgen.InitialTime = datetime("now");
code = pgen();

Отобразите свойства генератора Псевдокода.

disp(pgen)
  gpsPCode with properties:

                 PRNID: 25
      OutputCodeLength: 20460
    InitialStateFormat: "datetime"
           InitialTime: 25-Aug-2021 11:24:16

Получите информацию от gpsPCode Система object™ при помощи info объектная функция. Наблюдайте, как точность начального времени влияет на генерацию Псевдокода.

Создайте Систему генератора Псевдокода object™, и затем задайте ее свойства.

format long
pgen = gpsPCode
pgen = 
  gpsPCode with properties:

                 PRNID: 1
      OutputCodeLength: 10230
    InitialStateFormat: "seconds"
           InitialTime: 0

pgen.InitialStateFormat = "chips";
pgen.InitialNumChipsElapsed = 8388600;

Получите характеристическую информацию о генераторе Псевдокода.

pgen.info
ans = struct with fields:
    TotalNumChipsElapsed: 8388600
     TotalSecondsElapsed: 0.820000000000000

Усовершенствуйте время к четверти времени чипа Псевдокода (то есть, 0.25/10.23e6).

pgen1 = gpsPCode;
pgen1.InitialTime = pgen.info.TotalSecondsElapsed + 0.25/10.23e6
pgen1 = 
  gpsPCode with properties:

                 PRNID: 1
      OutputCodeLength: 10230
    InitialStateFormat: "seconds"
           InitialTime: 0.820000024437928

pgen1.info
ans = struct with fields:
    TotalNumChipsElapsed: 8388600
     TotalSecondsElapsed: 0.820000000000000

info функциональный выход не показывает шага в TotalNumChipsElapsed в этом случае, потому что TotalNumChipsElapsed вычисляется внутренне с помощью функционального round.

Усовершенствуйте время к половине времени чипа Псевдокода теперь (то есть, 0.5/10.23e6).

pgen2 = gpsPCode;
pgen2.InitialTime = pgen.info.TotalSecondsElapsed + 0.5/10.23e6
pgen2 = 
  gpsPCode with properties:

                 PRNID: 1
      OutputCodeLength: 10230
    InitialStateFormat: "seconds"
           InitialTime: 0.820000048875855

pgen2.info
ans = struct with fields:
    TotalNumChipsElapsed: 8388601
     TotalSecondsElapsed: 0.820000097751711

info функциональный выход теперь показывает TotalNumChipsElapsed постепенно увеличивается одним, из-за внутреннего использования round() функция.

Сравните выход каждого вызова Системного объекта.

code = pgen();
code1 = pgen1();
code2 = pgen2();
isequal(code, code1) % code and code1 are equal
ans = logical
   1

isequal(code1,code2) % code1 and code2 are unequal
ans = logical
   0

Ссылки

[1] IS-GPS-200L. "Космический сегмент GPS NAVSTAR / Пользовательские Интерфейсы Сегмента Навигации". GPS Enterprise Space & Missile Systems Center (SMC) - LAAFB, 14 мая 2020.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

Функции

Объекты

Введенный в R2021b