Pull to refresh

Comments 38

Пап, ты с кем сейчас разговаривал?
Нет чтобы порадоваться таким нечастым отличным статьям на хабре…
А если помеха широкополосная? При современном уровне развития техники сделать генератор белого шума на весь диапазон частот GPS не составляет труда. Ждал второй части в надежде, что будут открыты какие то секреты приема навигационной информации в обход помех.
Широкополосные помехи тоже бывают разные. Например, вы привели белый шум. Создать шумовую помеху в полосе GPS такой мощности, чтобы подавить работоспособность приёмников очень непросто. Именно из-за структуры шума. В качестве широкополосных помех применяют, например, ЛЧМ-сигнал, проходящий весь диапазон L1 за 0.1-1 мс.

Против подобных помех эффективны антенные методы, однако я слышал о разработках, когда в приёмнике формируется копия помехи и компенсируется.

А секретов нет, есть только периодический анализ помеховой обстановки по прямым и косвенным признакам, а также подходы к подавлению.
Позвольте поинтересоваться, почему гауссов шум обрезанный до полосы приемника будет значительно менее эффективен чем ЛЧМ? Это некая особенность ЛЧИ что она легко срывает слежение?
Потому что при генерации шум занимает очень большую полосу, т.е. мощность передатчика тратится на частоты, не находящиеся в полосе ГНСС. А при генерации ЛЧМ-сигнала крайние частоты задаются в явном виде, так что никакой магии и особенностей. :)
А еси сделать передатчик который шумит только в нужной полосе, например промодулировав центральную несущую белым шумом с полосой равной половине ширины ГНСС?
Чисто технически это сделать сложнее. Нужно сгенерировать шум, пропустить через фильтр, перенести на несущую, ещё разок отфильтровать. ЛЧМ сделать проще и, соответственно, дешевле
В качестве дополнения. После фильтрации вылезет главная проблема — распределение помехи станет гауссовским с большим пик-фактором. Вместо помехи с постоянной огибающей, как было бы в случае ЛЧМ или ФМ. В итоге снизятся при прочих равных возможности передатчика.
Очень точное и верное дополнение, спасибо.
Кстати, Илья, спасибо вам ещё раз за помощь, которую вы оказали с дипломным проектом в сентябре по почте. :)
=) Мир тесен. А в нашей профессиональной области вообще напоминает коммунальную квартиру!
Круто конечно! И приятно читать, что такие интересные вещи реализуются на отечественной ЭБ.

Почему реализация помехоподавителя именно на этой микросхеме? Куча параллельных каналов — почему не ПЛИС?

Ну и раз уж всё делается на ARM11, — то такой вопрос: какую ОСРВ использовали? Оценивали загрузку ЦП и БПОС? Я так понимаю, хоть навигационное решение выдаётся 1-10 раз в секунду, но ведь за помехами-то следить надо гораздо чаще — в режиме реального времени. Если не ошибаюсь, то битовая скорость сигналов ГНСС — около 512 бит/с, то есть ~2мс/бит. Какая скорость решения задачи получилась — в 2мс укладываетесь?
Энергопотребление и размер. Аппаратная платформа в статье — это уже готовый приёмник. В сети есть предложения по созданию приёмников на ПЛИС, но они много потребляют, требуют дополнительного обвеса и вычислителя (того же RPi или Intel Edison). К тому же, есть успешные попытки создания 12-канальных приёмников без фильтров, а фильтры в кремнии занимают достаточно много места.

А вот тут вы недоглядели, задача целиком и полностью решается на DSP, т.е. на Нейроматриксе. Таким образом, ARM остаётся свободен и незадействован.

За помехами нужно следить в реальном масштабе времени, но это достаточно делать раз в секунду, не чаще, да и то по косвенным признакам (например, по резкому падению отношения сигнал/шум всех спутников). Если эта проверка показала возможное наличие помехи, срабатывает алгоритм обнаружения в частотной области с дальнейшим расчётом параметров подавителя.

Есть несколько составных частей сигнала, к которым в ГНСС может относится понятие битовая скорость: псевдослучайная последовательность, меандр (для ГЛОНАСС), а так же навигационное сообщение. Про ПСП обычно говорят про частоту чипа (одного импульса), она составляет 511 1023 кГц для ГЛОНАСС и GPS соответственно. Тут происходит корреляционная обработка. Далее в ГЛОНАСС'е есть меандр, который меняет знак каждые 5 мс. Его вводили, как дополнительную меру помехоустойчивости, но, если честно, я так и не понял зачем, а проблем при обработке сигналов он добавляет. И есть навигационное сообщение, каждый бит которого длится 20 мс. Вот их нежелательно пропускать.

Отвечая на ваш вопрос: сейчас алгоритм обнаружения помех, расчёта коэффициентов и записи их в регистры БПОС'а происходит за 10-12 мс. Если векторизовать код, а также отказаться в паре мест от плавающей точки (что не было сделано из лени), то можно будет уложиться в 1 мс
Интересно, спасибо! А я думал, с помехами бороться надо как с потоком воды в реке — а тут, 1 раз в секунду рубанули, и снова забыли :)
А насколько реализуем «простой» аналоговый спуфинг? принимаем сигнал со спутников, вносим задержки, усиливаем, переизлучаем. Манипулируя величинами задержек можем ничего не зная о кодировке сигнала (выделять сигнал конкретного спутника можно направленной антенной) как угодно манипулировать координатами в рамках видимых спутников.
Это не спуфинг, это просто ещё один вид помех. Для уже работающего приёмника (который следит за спутниками) эффект будет выражаться в дополнительном ухудшении отношения сигнал/шум. На это может «клюнуть» приёмник, запускаемый в режиме холодного старта, но и в том случае результаты обработки такого задержанного сигнала будут отбракованы.

Спуфинг это именно имитация и синтез созвездия спутников, это сделать гораздо сложнее, чем просто переизлучить сигнал. :)
А в чем принципиальная разница для приемника, как именно был сформирован фальшивый сигнал: задержкой реальных сигналов с реальных спутников, или же сгенерирован с чистого листа? Для телепортации в другое полушарие первый метод точно не подойдет, а вот исказить сигнал на единицы-десятки километров им по идее вполне можно, причем независимо от кодировки сигнала: по сути дела единственная навигационная информация — разница в задержках с разных спутников.
Или я что-то не так понимаю?
Разница в том, что при переизлучении сигнала вносится дополнительная задержка распространения. При решении навигационной задачи производится решение серьезных векторно-матричных уравнений (если интересно, посмотрите приложение взвешенного метода наименьших квадратов), где в результате у спутника с выбивающимися результатами оказывается ничтожно малый весовой коэффициент и, таким образом, он исключается из обработки.
Что с одним спутником не сработает, это понятно.
Идея в том, чтобы такую операцию проделать со ВСЕМИ видимыми спутниками. Не так их и много.

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

Приемник, уже следивший за спутниками, может обнаружить, что у него после включения ретранслятора стали спешить внутренние часы (хотя, если есть время, то наверное можно нарастить групповую задержку достаточно плавно).

Приемник с холодным стартом подвоха увидеть не должен вообще.

Как противодействовать этому?
Самый очевидный метод: антеннами. Последовательно обнулять сектора обзора, если вдруг резко пропадут все ложные спутники, за которые зацепились, значит там спуфер. Это если использовать антенные решетки. Можно использовать обычные антенны и техники вроде фазовых пеленгаторов. Определив направление прихода сигнала, если он пришёл из одной точки, значит там спуфер.

Сейчас вы мне возразите, мол, а если несколько ретрансляторов. Мы пришли к тому, как развивалась радиоэлектронная борьба. Сначала придумали помеху, потом способ её подавления. Далее изменили помеху и всё пошло по кругу.
Классно! Хорошая тема.
Обнаружение узкополосных помех удобно производить в частотной области, в то время как для обнаружения спуфинговых атак следует анализировать поведение псевдозадержек, энергетического потенциала и доплеровского смещения на наличие перескоков.

Скажите, а Вы решали обе задачи — с узкополосными помехами и спуфингом? Было бы интересно побольше узнать как обнаруживается спуфинг на практике (там же вряди ли согласованный фильтр сработает?). И какие предположения делаются про отношение сигнал/шум?

И еще один вопрос. На картинке с фильтром Калмана помимо екомпаса и гироскопа еще есть датчик давления. Интересно, для чего он там? :)
Лично я решал задачу лишь с узкополосными помехами, по спуфингу изучал литературу. Есть коллега, который этим занимался подробнее, могу у него уточнить на этот счёт.

Картинку взял из интернета для иллюстрации того факта, что используется множество MEMS-датчиков. Датчик давления служит для определения высоты.
А можете порекомендовать литературу по работе при большом отношении помеха/сигнал вообще и по узкополосным помехам в частности?
Конечно. Есть очень интересный труд, совмещающий в себе как описание помех, так и подробное толкование методов подавления: GNSS Interference Threats and Countermeasures — Fabio Dovis. Можно найти на google books.

По работе при наличии помех есть статья GNSS Signal Acquisition in The Presence of Narrowband Interference — Mohammad Abdizadeh. Достаточно новая (конец 2013 года) и обширная (более 200 страниц).

Это из основных. Вкратце описано в Каплане (монументальный труд по GPS, находится по первому запросу в гугле). Если после прочтения этих материалов останутся вопросы, то уже более конкретные, а для этих целей уже служат различные технические статьи и патенты
Спасибо, очень интересная статья, жедм продолжения. Приавильно ли я понимаю, исходя из провала в спектре сигнала после фильтра, что для вашего фильтра помеха с полосой в 20-30кГц это все еще узкополосный сигнал?
Верно понимаете, при текущей конфигурации фильтр спокойно подавляет не только однотоновые помехи, но и узкополосные сигналы (АМ-, ЧМ-, ФМ-модулированные). Помимо этого, если полоса помехи больше (50-100 кГц), то она просто определяется как несколько рядом стоящих с соответствующим расширением окна подавления
Сейчас для демонстрации захардкодил в алгоритме обнаружения помех, что есть ещё на двух смежных частотах для демонстрации расширения окна подавления
image
День добрый!

Подскажите как найти задержку координат выдаваемых приемником (ГПС/ГЛОНАСС модулем)? Не нашел этого в спеках к модулю.
Но это нужно для того что бы свести данные от ИНС с координатами приемника, т.е. найти ошибку (и коррекцию соот-но) координат между расчетным от ИНС и координатами на выходе модуля.

Я пробовал след-е решение:
1) синхронизируем часы ПК с атомными часами (посредством спец. утилит… погрешность пару мс)
2) читаем время с приемника через послед-й порт или USB (задержку порта не учитивал, т.к. интересен результат хотябы с точностью до 100-150мс)
3) находим разность между атомным временем и данными с приемника

Тут есть не ясные моменты касательно времени выдаваемого приемником:
1) учитывается ли время прохождения сигнала от спутника до приемника (~65мс), т.е. есть ли компенсация этой задержки во времени которое отдает приемник.
2) Приемник отдает кооординаты и время одним пакетом. Так вот это время получения сигнала/пакетов со спутников (по которым расчитывались координаты)? Или приемник пытается выдать атомное время на выходе (т.е. с учетом коррекции на прохождения сигнала от спутников и обсчета координат)?
3) Потоянна ли задержка выдачи координат? На одном из модулей наблюдал раность задержки в ~100мс до 3Д фикса и после.

Все конечно может зависеть от конкретной прошивки модуля, но наверняка есть общие стандарты и принципы.

А возможно все проще. Подскажите ))
Это очень обширная тема, но если вкратце, то всё зависит от самого используемого модуля. В приёмниках идёт синхронизация с часами системы с последующим выводом координат раз в какое-то время (см. Navigation Rate. Обычно 1-10 Гц).

По вопросам:
1) Расчёты производятся на момент измерения, а не излучения. Таким образом проблемы, о которой вы говорите, нет.
2) Приёмник выдаёт показания часов по собственной шкале времени. В зависимости от сложности приёмника, эта шкала может корректироваться различным образом: от одиночной коррекции при первом решении нав. задачи, до постоянного слежения за скоростью ухода часов при помощи скоростной задачи. Это очень глубокая тема, на неё написано множество научных работ и с наскоку в неё не получится погрузится.
3) Ответ вытекает из предыдущего пункта: постоянна по внутренней шкале времени приёмника.
Спасибо!

Если я правильно понял «моим» методом задержку выдачи координат не высчитать.

Тогда вижу другой топорный путь :) Закинуть модуль в машину и погонять записывая логи акселерометра и приемника и уже по графикам примерно выщемить задержку :)
В навигационных модулях есть выход pps, к импульсу которого и привязаны измерения. Обычно точность около десятков нс. То, что идет по последовательному порту — значения на момент импульса. Время передачи данных практически случайно — лишь бы успеть до следующего pps.
Спасибо за интересную статью! Возник ряд вопросов, ответьте на те, что не являются коммерческой тайной:
1. Указанные 24 цифровых канала получаются при какой тактовой частоте отсчетов (после предварительной децимации, именно во время свертки в корреляторе)?
2. Сколько отводов по задержке в корреляторе?
3. Вы представитель НТЦ Модуль или МАИшной команды?
1. 24 канала реализованы физически в железе. Исходная частота дискретизации до 81.92 МГц, при использовании фильтра необходимо понизить хотя бы до 20.48 МГц. Эмпирически в качестве оптимальной частоты дискретизации при использовании подавителя используется порядка 2-4 МГц.
2. Корреляционная обработка осуществляется в цифре при помощи согласованных фильтров. Соответственно, шаг по задержке пропорционален частоте дискретизации.
3. Работаю в Модуле, полторы недели назад окончил МАИ. Но если под маёвской командой вы подразумеваете именно тех инженеров, которые разрабатывают приёмник, то нет, к той разработке отношения не имею
1. Летом я присутствовал на встрече с представителем НТЦ, он предлагал построить приемник на базе Нейроматрицы. Т.к. человек был высокий, то на конкретные приземленные вопросы у него не было ответов. А вопрос простой — сколько можно запихать корреляторов в матрицу? Судя по описанной им структуре приемника, ответ обратно пропорционален полосе сигнала (через частоту дискретизации, после входных фильтров и децимации). Вот я и пытаюсь понять, 24 канала влезли для каких сигналов? Для дискретизированных на 20.48 МГц, т.е. сигналов полосой до 10.24 МГц?
2. Осознал.
3. Любопытство удовлетворил.
Сейчас, к сожалению, не располагаю подобной информацией, как узнаю, сообщу.
p.s. Прошу прощения за -1 к комментарию в начале ветки, неправильно кликнул. Компенсировал на удалённом комментарии
Сегодня уточнил по поводу количества корреляторов: сейчас на частоте 8.192 МГц реализовано 30 спутниковых каналов, в каждом из которых по три коррелятора (EPL). Таким образом, всего их 90 и количество пропорционально частоте дискретизации, т.е. на 4 МГц будет 180 и т.д.
Sign up to leave a comment.

Articles