BeiDou (COMPASS) первые эксперименты

28 января, 2013

27 декабря 2012 года была опубликована полная версия интерфейсного контрольного документа на китайскую глобальную навигационную спутниковую систему BeiDou-2 (также известную как COMPASS). Это событие открыло путь к изготовлению приёмников, работающих с сигналами диапазона B1 этой системы.
Многие коммерческие производители приемников уже выпустили прошивки, позволяющие работать с BeiDou, среди них: ublox, NovAtel, Septentrio, javad и другие.
В данной заметке представлены результаты некоторых экспериментов с обработкой сигналов COMPASS. На рисунке 1 представлен график обнаружения сигналов. До 5 негеостационарных спутников можно наблюдать из моего местоположения.

BeiDou acquisition
Рисунок 1 График обнаружения сигналов негеостационарных спутников

Следует обратить внимание на то, что сигналы BeiDou-2 похожи на сигналы GPS L1 C/A с одним существенным исключением. Каждый символ навигационных данных дополнительно модулируется кодом Неймана-Хоффмана (0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0) (подробности приведены на рисунке 2, взятом из ИКД).

BeiDou secondary code
Рисунок 2 Подробности использования вторичного кода Неймана-Хоффмана

Это означает, что процедура поиска относительно слабых сигналов не может напрямую использовать длительное когерентное накопление (до 10 мс), как для сигналов GPS L1 C/A. Простейший подход к преодолению этой проблемы заключается в следующем. (Прежде всего хотелось бы отметить, что когерентное накопление более 10 мс обычно не используется в программных приемниках, так как требует слишком много времени).
Одним из хорошо известных методов обнаружения сигналов, которые могут изменять знак на каждом периоде дальномерного кода является дополнение нулями (zerro-padding). Идея данного метода хорошо описана в phd работе "Development and Testing of an L1 Combined GPS-Galileo Software Receiver" Florence Macchi (PLAN, Calgary, 2010). Если взять один период дальномерного кода и дополнить его нулями (длина дополнения нулями должна быть равна длительности дальномерного кода) и выполнить быструю корреляцию с входным сигналом длиной в два периода дальномерного кода, то в результате будет, как минимум один пик, соответствующей искомой задержке дальномерного кода. Этот метода хорошо подходит для GALILEO E1 BOC(1,1) или для ГЛОНАСС L3 канала с данными. Однако в случае BeiDou-2 данный метод позволит выполнить накопление сигнала либо в течение 1мс, либо в течение 20мс, что неудобно. Накопления в течение 1мс обычно недостаточно для обнаружения всех видимых спутников на открытом небе, а накопление в течение 20мс требует слишком много вычислительных ресурсов.
Как можно изменить алгоритм, чтобы иметь возможность выполнять накопление сигнала в диапазоне от 1мс до 20мс? Простейшее решение заключается в том, чтобы повторить несколько раз процедуру обнаружения с требуемым временем накопления, чтобы покрыть весь интервал в 20 символов кода Неймана-Хоффмана. Например, если требуется использовать 5мс когерентное накопление, то следует взять 25 мс входного сигнала, разделить их на 4 части (0..10мс, 5..15мс, 10..20мс, 15..25мс) и выполнить корреляцию каждой части с, например, первыми 5мс кода Неймана-Хоффмана (0,0,0,0,0 в нашем случае). Этот вариант поиска был реализован в программном приемнике для SciLab, последняя версия которого, как всегда, доступна на googlecode. В файле initSettings.sci доступно три варианта для поиска (1/3/5мс когерентного накопления).

Для слежения за несущей сигнала используется комбинированный контур фазовой и частотной подстройки. Эксперименты с записанными сигналами COMPASS позволили обнаружить ошибку, которая не проявлялась на старых сигналах (таких как GPS L1 C/A или ГЛОНАСС L1 ПТ). Ошибка связана с некорректной реализацией частотного дискриминатора. В моменты смены знака фазы на 180 градусов, вызываемой цифровыми данными (или кодом Неймана-Хоффмана в случае COMPASS B1/ГЛОНАСС L3) некорректно рассчитывалась ошибка по частоте. В результате контур слежения за несущей работал некорректно. Результат некорректной работы можно наблюдать на рисунке 3.

BeiDou wrong tracking
Результат некорректной работы контура слежения за несущей из-за ошибки в частотном дискриминаторе

После исправления ошибки слежение за несущей стало работать корректно (рисунок 4).

BeiDou correct tracking
Рисунок 4 Корректный результат слежения за несущей (результат обработки того же сигнала, как на рисунке 3)

Также была предпринята попытка получить навигационное решение, но результаты пока неудовлетворительные (рисунок 5).

BeiDou pvt wrong
Рисунок 5 Навигационное решение для сигналов COMPASS

Комментарии

11 января, 2017  •  12:05:13

Hi,

Can you please send me the Compass IF signal record for post processing upto position fix.

Thank you

Оставить комментарий