Pull to refresh
81
0
Илья Корогодин @Korogodin

Спутниковые навигационные системы

Send message

Согласно заголовку, это S1C - отношение сигнал/шум для гражданского сигнала в первом частотном диапазоне

Если использовать англоязычные термины, то для этого подстраивается фаза NCO, а не LO. NCO - это цифровые генераторы колебаний, индивидуальные для каждого сигнала. Подстраиваются они PLL канала обработки этого сигнала. В простейшем случае это классическая следящая система: фазовый дискриминатор, фильтр, по выходному сигналу фильтра коррекция частоты NCO. Фильтр, как правило, 3 порядка, полоса от 3 до 30 Гц. Дискриминатор - простая функция корреляционных сумм, полученных взятием скалярного произведения обрабатываемого и опорного сигналов. Опорный сигнал - тот самый, частотой которого управляет фильтр через NCO.

В более сложных случаях данные разных каналов могут объединяться для устранения общей составляющей, вызванной нестабильностью опорного генератора (coop tracking), разные сигналы одного спутника могут объединяться в один метасигнал, может компенсироваться движение приемника на базе данных от инерциальных датчиков, объединяться наблюдения от нескольких антенн и т.д., но это все специальные решения

Ни разу не встречал приемник, в котором требовалось бы подстраивать фазу LO. Максимум - фазу клока. Такая мысль может возникнуть, если у вас многоантенная обработка и важно сохранить фазовое распределение между каналами различных антенн. Но в этом случае проще выполнить доворот фазы уже на этапе цифровой обработки. Типично - просто довернуть квадратуры на выходе коррелятора.

LO формируется с помощью PLL: VCO, дискриминатора и делителя. Берете сигнал опорного колебания - кварца на 10 МГц. Стабилизируете фазу сигнала, полученного от VCO делением, сравнивая его дискиминатором с опорным колебанием. Связав фазу VCO с фазой опорного колебания, из VCO получаете LO для всех частотных диапазонов делением. В навигации, как правило, используются целые коэффициенты, т.е. не используется fractional режим синтезатора. Иначе фаза сигнала и фаза огибающей начинают расходиться.

Подстраивать частоту LO смысла нет, не IXX век. Даже дешевый OCXO дает разброс частоты LO около 1 кГц. Сигнал точно пройдет ПЧ фильтры. Но в некоторых приемниках может быть физическое дисциплинирование не LO, а опорного генератора, если он потом используется для тактирования каких-то внешних устройств. Но это экзотика

Могу нескромно дать ссылку на свое учебное пособие по курсу навигационных приемников:

https://github.com/Korogodin/gnssrec

К сожалению, оно так и не опубликовано, поэтому часть глав в незавершенном виде, и нет редактуры

Отладочные платы через дистрибьютеров можно взять у производителей, либо обратиться к проектам на базе этих микросхем. Например, NUT4NT от уважаемого и широкого известного хабру @itsar

Если же записи нужны для самообучения и удовольствия, то проще использовать почти любой SDR. Или просто воспользоваться готовыми записями, например, от GNSS SDR

Самый популярный выбор: NT1065, MAX2771, MAX2769

В большинстве систем - буквально параметры эллипса. В ГЛОНАСС - векторы мгновенного положения, скорости, и ускорения, которые можно пересчитать вперед/назад на 15 минут

Сделать небольшое выколотое пятно размером со страну не получится, если вы об этом

Реализация Makefile’ов и tcl-скриптов от хабропользователя Владислава: https://github.com/vborchsh/make-fpga

Спасибо :)

Тут скорее автор образца 2022 года репостит себя образца 2016 года по просьбам, поступившим после предыдущей статьи про автоматизирование (ага, вот это "вы часто спрашиваете меня в комментациях", когда на самом деле написал один человек)

Tcl-скрипт для bd-файла надо было обновлять руками (нажимать кнопку в интерфейсе File->Export при открытом Block Design в IP Integrator'е). Разработчик легко может забыть это сделать после правки BD файла, дополнительный риск.

IP ядра не используем. Если самописные модули, то оформляем сабмодулями, как описано выше. Если это ядра от Xilinx, то это нас потом ограничит при переносе проекта на ASIC.

Немного про то, как собираемость прошивки проверяется в GitlabCI можно почитать тут: https://habr.com/en/post/673254/

IP ядра сейчас не используем (если только для дебага), т.к. проекты переносятся в итоге на ASIC

Спасибо за замечение! Эльфиник бы копировался скриптом, но он у нас менялся очень редко, а пару лет назад мы вообще отказались от микроблейза. Поэтому к моменту автоматизации тестирования этой проблемы уже не было

Как-нибудь распишу на досуге. Ну или приходите в МЭИ на лекции :)

Я бы сказал, больше головняка было с GPS L1C. Галилео заставил реализовать поиск сигналов с табличным кодом, остальное относительно безболезненно у нас прошло.

Если при выключении питание сбрасывалось с часов и инерциалки, то придется подождать, как я сказал, 2-3 часа. За это время можно сделать гирокомпасирование и пронаблюдать спутник в разных точках небосклона. Гирокомпасирование даст ориентацию, спутник - положение. А дальше можно уже работать по инерциалке.

Соль в том, что последние несколько десятков лет график в среднем был выше нуля и мы постепенно прибавляли липсеконды. А теперь есть шанс набежать отрицательной секунде. А это потенциально сломает много кода

Я не чувствую себя сильным в геофизике и астрономии, но думаю, что у IERS основные методы - наблюдение углового положения удаленных звезд.

На навигацию скорость вращения Земли влияет непосредственно. Замедления или ускорения вращения Земли будут проявляться в групповом тренде долготы восходящего узла в эфемеридах спутников. Думаю, если их проанализировать, мы сможем построить график аналогичный приведенному выше с точностью не лучше 10 мкс. И потом окажется, что ещё какой-нибудь другой эффект забыли учесть, типа влияния ретроградного Меркурия. По звездам надежнее как-то :)

Идеальные атомные часы и идеальный инерциальный модуль - это идеальные значения производных геометрических параметров, а не их абсолютные значения. В этом случае вы можете выставить начальную точку по старой доброй ГНСС, а дальше работать по идеальным приборам, отсчитывая от этой начальной точки.

Альтернативный вариант - разыграть количество спутников на время. По вращению Земли определить направление на север, по реакции опоры - вертикаль, пронаблюдав несколько часов один спутник - определить своё местоположение. В этом случае да, навигационная система могла бы состоять из одного спутника, идеальных часов и идеальных инерциальных датчиков. Но часа 2-3 на инициализацию уйдет.

Более того, 1.59 мс - это отклонение от номинала, а не приращение ко дню вчерашнему:

1
23 ...

Information

Rating
Does not participate
Date of birth
Registered
Activity