Вычисление положения (Position Computation)
Функция leastSquaresPos вычисляет положение приемника из данных измеренных псевдодальностей. Если по какой-либо причине полные эфемериды спутника недоступны, псевдодальность исключается из вычисления (см. Рисунок A.6).
При первом вычислении, углы восхождения всех спутников устанавливаются на максимум. Это необходимо для определения положения приемника и для вычисления истинных углов восхождения всех спутников. Все последующие вычисления положения будут исключать вычисления псевдодальностей от спутников с углами восхождения ниже, чем маска восхождения (elevation-Mask).
Функция постнавигация - postNavigation использует несколько других функций, которые являются слегка модифицированными версиями функций из Easy Suite (Удобный Набор); см. Борр (Borre) (2003 год).
В конце функции postNavigation , координаты ECEF преобразуются в геодезическую систему координат UTM. Результаты сохраняются в структуре navSolutions.
РИСУНОК A.6. Схема последовательности операций вычисления положения методом наименьших квадратов
B
Имитация сигналов ГНСС (GNSS)
B. 1 Имитация сигналов GPS
При использовании частей GPS приемника, которые предназначены для обработки сигнала, необходимо иметь некоторые данные, которые пригодны для проверки их функций. Окончательной целью в данном случае является иметь приемник GPS, работающий в режиме реального времени на данных, полученных с антенны GPS через внешний интерфейс ВЧ (RF) и АЦП (ADC). На стадии построения алгоритмов обработки сигналов, использование реальных сэмплированных, однако, не является оптимальным. Основной причиной этого является то, что невозможно контролировать свойства принятых и сэмплированных сигналов GPS. Контролировать принятые сигналы не только невозможно, но также невозможно знать все характеристики принятых сигналов.
Решением проблемы является использование имитированных данных. В отсутствии пригодного симулятора сигнала GPS, может быть необходимо его использовать.
Пригодный для этих целей симулятор сигнала LI GPS должен включать следующие глобальные параметры, связанные с преобразованием с понижением частоты и сэмплированием сигнала:
Промежуточная частота Должен быть возможным ввод величины ПЧ (IF). ПЧ (IF) в этом случае будет опорной частотой, с которой допплеровский сдвиг частоты сигналов спутника должен сравниваться.
Частота сэмплирования Должен быть возможным ввод величины частоты сэмплирования, используемой для сэмплирования сигналов GPS.
С возможностью установки этих параметров, будет возможно тестировать алгоритмы с имитированными данными, обладающими теми же характеристиками, как данные, сэмплированные с антенны GPS через внешний интерфейс ВЧ (RF).
Ниже мы перечислим характеристики GPS сигнала с одного спутника —
смотрите Главу 2 для получения дополнительной подробной информации о сигналах спутников:
PRN Число псевдослучайного шума (помех), соответствующее данному спутнику.
Это число показывает какие из кодов C/A должны использоваться.
Doppler Счет Допплера - это частотное отклонение от ПЧ (IF). Счет Допплера напрямую связан с динамикой прямой видимости меду спутником и приемником.
Code Phase Временной сдвиг кода является настройкой кода PRN в принятых данных.
P(Y) Code В дополнение к коду C/A, сигнал LI содержит P(Y) код. Данный код модулирован на несущую волну как квадратурная составляющая, в то время, как код C/A представлен как синфазная составляющая.
Data Bits Биты навигационных данных наложены с фазовой модуляцией на несущую волну с частотой 50 Гц.
Signal Strength В связи с большим расстоянием пути сигнала от спутника к приемнику в совокупности с низкой мощностью передатчика на спутнике, принятый сигнал очень слаб. Дополнительной характеристикой сигнала GPS является соотношение сигнал-шум (ССШ - SNR), то есть соотношение между сигналом и шумом, возникающим при прохождении сигнала.
Симулятор сигналов должен соответствовать вышеуказанному описанию глобальных параметров и характеристик сигналов GPS. Для каждого спутника должно быть возможным определить PRN, Doppler, и временной сдвиг кода. Код P(Y) не является важным для алгоритмов получения и трекинга. В результате этого, данный компонент в симуляторе упрощен. Код P(Y) имитируется как цифровой сигнал, изменяющийся между —1 и 1 с соотношением кода P( Y) равным 10.23 МГЦ. В большинстве случаев данные навигации не являются важными для алгоритмов получения и трекинга. Поэтому по умолчанию сигнал навигационных данных также имитируется как цифровой сигнал, изменяющийся между —1 и 1 с частотой передачи данных навигации равной 50 Гц. Этот обеспечивает передачу бита данных каждые 20 мс. Если необходима реальная последовательность навигационных данных, то должно быть возможным обеспечение ее симулятором.
Реализация Simulink
Симулятор сигнала GPS может быть реализован посредством инструментальных средств разработки, обеспечиваемых различным программным обеспечением.
Единственными требованиями к программе, кроме возможности реализации необходимых функций, являются следующие:
- Должна быть обеспечена возможность легкой смены параметров имитации.
- Должна быть обеспечена возможность сохранения данных имитации в файле, который может читаться программным обеспечением MATLAB.
РИСУНОК B.I. Полный симулятор сигналов GPS для одного спутника выполненный на основе Simulink. Часть A генерирует код C/A. Часть B содержит генерацию навигационных данных, и Часть C генерирует упрощенный P(Y) код.
Инструментарий MATLAB Simulink был выбран в качестве инструментального средства разработки симулятора сигналов GPS. Основной причиной для данного выбора было то, что Simulink имеет хорошо разработанный интуитивный пользовательский интерфейс объединенный с многочисленными функциями. Одной из важных особенностей в данном случае было то, что Simulink прекрасно работает и с обычными M-файлами.
Реализация Simulink имеет двухуровневую архитектуру. Верхний уровень - это уровень, на котором каждый спутник вносит свой вклад в инициализацию результирующего сигнала. Также на этом уровне определяется файл данных, в котором данные должны сохраняться. Нижний уровень - это уровень реализации для каждого спутника. На этом уровне генерируется сигнал, исходящий от каждого спутника. Сигналы должны включать следующие четыре компонента:
- C/A код
- Навигационные данные
- P(Y)код
- Шум.
Рисунок B.I показывает образ экрана низшего уровня реализации Simulink,
представляющий генерирование сигнала не спутнике.
Нижеследующий текст пояснит работу четырех вышеуказанных частей генератора сигнала.
Генерация кода C/A
Генерация компонента кода C/A сигнала GPS обозначена буквой A на Рисунке B.l. Если начать с левой стороны рисунка, источником генератора кода C/A является осциллятор. Осциллятор производит прямоугольные импульсы с частотой
РИСУНОК B.2. Выход счетчика кода C/A, (a) Полный цикл через все индексы кода, (b) Первые сэмплы выхода счетчика. Начальной величиной счетчика является временной сдвиг кода PRN. В данном случае, временной сдвиг равен 51.
1.023 МГц, соответствующей скорости элементарных посылок кода C/A. Этот импульс используется как вход счетчика.
Данный счетчик разработан для счета от 0 до 1022, относящегося к 1023 элементарным посылкам в одной последовательности PRN. Счетчик увеличивает свою величину каждый раз при возникновении заднего фронта в импульсном сигнале, что происходит с частотой 1.023 МГц. Начальное значение счетчика устанавливается временным сдвигом кода PRN, который используется для имитации в качестве параметра. Временной сдвиг кода PRN переключает настройку времени кода PRN. Рисунок B.2 показывает выход счетчика. Эти чертежи сделаны по имитации с частотой сэмплирования 12 МГц. Частота сэмплирования равная 12 МГц обеспечивает 12.000 для последней 1 мс, что соответствует одному полному периоду кода PRN.
Рисунок B.2a показывает выход счетчика в полном периоде кода PRN. В нуле сэмплирования выход счетчика соответствует временному сдвигу кода PRN. Когда выход достигает 1022 приблизительно на 11,000 сэмпле, выходная величина переустанавливается на начальное значение 0. Рисунок B.2b показывает крупный план первых сэмплов выхода со счетчика. Временной сдвиг кода является начальной величиной выхода, которая в данном случае имеет значение равное 51. Данный рисунок показывает функцию шага счетчика. Каждый раз, когда период элементарной посылки проходит по выходу, счетчик увеличивает свое значение на
1. При сэмплировании с частотой 12 МГц, период элементарной посылки 1 мс/1023 длится приблизительно в течение 12 сэмплов.
Выход со счетчика является одновременно входом для следующего блока той части, которая занимается генерированием сода C/A. Этот блок представляет собой так называемую таблицу соответствия, которая фактически является двухмерным массивом, содержащим 32 возможных значения кодов PRN: см. Секцию 2.3 чтобы ознакомиться с подробностями, касающимися кодов PRN. Первое измерение указывает, который из 32 кодов PRN должен использоваться. Это спутник, который
используется для имитации. Второе измерение указывает, к которой из 1023 элементарных посылок должен быть обеспечен доступ. Это представляет собой вход блока таблицы соответствия. В данном случае, массив является входом для имитации из рабочей области памяти MATLAB. Таким образом, перед запуском имитации должен быть генерирован массив с кодами PRN. Реализация генератора кодов PRN описана в Секции 6.2. Результирующий сигнал кода C/A показан на Рисунке B.3.
РИСУНОК B.3. Код C/A code, (a) Полный цикл в течение полного периода кодаA complete cycle through a complete PRN, (b) Первые сэмплы кода C/A.
Сэмплированный код C/A перемножается с сэмплированными навигационными данными в следующем блоке. Навигационные данные также представляют собой двоичную последовательность данных состоящую из — l и 1. Генерирование сэмплированных навигационных данных будет рассмотрено в следующей секции.
Когда код C/A объединяется с навигационными данными, они должны быть модулированы на несущую частоту. Данная несущая частота генерируется как косинусоидальная гармоническая волна в осцилляторе, управляемом напряжением (ОУН - VCO). ОУН (VCO) получает входной сигнал от блока регулятора (ramp block). Данный блок имитирует изменение частоты как функцию от коэффициента смещения Допплера. Если коэффициент смещения Допплера равен нулю, то частота ОУН (VCO) остается постоянной.
Модуляция BPSK (binary phase shift keying - двоичная фазовая модуляция) кода C/A и данных сигнала реализована как умножение сигнала на генерированную несущую волну.