Инженер-программист
0,0
рейтинг
18 января в 18:57

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

К моему удивлению, предыдущую статью приняли достаточно тепло. Сегодня продолжим рассмотрение этого вопроса.



Меры по борьбе с помехами

В навигации уровень шума всегда превышает уровень сигнала. Для определения уровня помехи (отношение помеха/сигнал, J/S ratio) считают, насколько помеха превышает уровень шума. Далее рассмотрены методы увеличения помехоустойчивости приёмников вместе с максимальной помехой, против которой эти методы являются эффективными.



1. Увеличение полосы сигнала (до 10 дБ);
2. Увеличение мощности передатчика на КА (до 20 дБ);
3. Комплексирование навигационных приёмников (до 30 дБ);
4. Использование цифровых аппаратных фильтров (до 40 дБ);
5. Использование частотно-временной коррекции (до 50 дБ);
6. Использование антенных методов (до 70 дБ);

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



Комплексирование навигационных приёмников не позволяет значительно увеличить помехоустойчивость навигационного приёмника. Это объясняется тем, что инерциальные навигационные системы (ИНС) не подвержены влиянию радиотехнических помех и имеют высокую точность измерений в краткосрочной перспективе. Однако ошибка определения навигационных параметров накапливается с течением времени и требует коррекции от ГНСС. Выше изображена схема, где при помощи фильтра Калмана производится комплексирование навигационного приёмника.

Использование частотно-временной коррекции (подавление помех в частотной области) является эффективным методом, но очень сложно реализуемым в реальном масштабе времени. Это вызвано тем, что выполнение этого метода следует проводить при помощи микро-ЭВМ параллельно с работой петель слежения, дискриминаторов, решением навигационной и скоростной задач и разрешением неоднозначностей при работе в режиме RTK. Исходя из этого, для возможности производить подавление помехи в частотной области, необходимо иметь значительный запас вычислительных мощностей, которые не будут задействованы при отсутствии помех.

Среди цифровых фильтров выделяют две категории:

1. Рекурсивные фильтры (с бесконечной импульсной характеристикой);
2. Нерекурсивные фильтры (с конечной импульсной характеристикой).

А что выбрать?

Вопрос выбора сильно зависит от доступной аппаратуры. Оптимальными с точки зрения сложности реализации и стоимости конечного устройства являются цифровые фильтры. В навигационных приёмниках можно найти как БИХ-, так и КИХ-фильтры. У КИХ-фильтров есть преимущество в виде возможности создания фильтра с линейной ФЧХ и, вследствие этого, постоянной групповой задержкой. Это означает, что различные частотные составляющие будут задержаны на одинаковое количество тактов при прохождении фильтра. Однако, при использовании БИХ-фильтра можно добиться гораздо более узкого окна режекции и суммарно меньшей переходной полосы при том же порядке фильтра.

Как оно работает?

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



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

Пару слов о моей разработке



Передо мной стояла задача в существующей структуре навигационного приёмника на базе СБИС 1879ВЯ1Я производства НТЦ «Модуль» разработать подавитель. Если вкратце рассказать об этой аппаратно-программной платформе, то можно выделить:

1. 4 12-битовых АЦП с частотой дискретизации 81.92 МГц;
2. Ядро ARM1176;
3. 2 DSP-ядра NeuroMatrix, имеющих векторно-матричный перемножитель, способный успешно распараллеливать операции с малоразрядными величинами;
4. Аппаратный блок предварительный обработки сигналов (БПОС).



Остальные детали можно найти на сайте, сейчас больше внимания уделим БПОС-у. Общая схема приёмника приведена выше. Он содержит антенну, аналоговый тракт (например, ГЛОНАСС L1, но сейчас это не играет роли), АЦП, цифровые каналы и сигнальный процессор. БПОС содержит 24 цифровых канала, 12 из которых имеют доступ к трём блокам КИХ-фильтров. Каждый из блоков содержит 4 КИХ-фильтра 64-го порядка с 8-битными коэффициентами. Внутри одного блока фильтры могут быть коммутированы последовательно или параллельно для реализации от одного до четырёх подавителей. Цифровые каналы содержат цифровой гетеродин, ФНЧ, дециматор (для понижения частоты дискретизации), а также нормализатор. В сигнальном процессоре (NeuroMatrix, не ARM), происходит работа алгоритмов обнаружения помех, расчёта коэффициентов аппаратных фильтров, корреляционная обработка и петли слежения (ФАП и ССЗ).

При использовании фильтра 128-го порядка с 16-битными коэффициентами удалось достигнуть работоспособности приёмника при воздействии узкополосной помехи мощностью 67 дБ, находящейся в главном лепестке спектра сигнала.

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

Небольшой апдейт

Совсем забыл привести две самые интересные картинки. Ниже приведен спектр навигационного сигнала при наличии узкополосной помехи до и после прохождения разработанного фильтра:



А также выход согласованного фильтра для этих спектров:



Как можно заметить, при наличии узкополосной помехи корреляционный пик не может быть различен в выходе коррелятора.
Также следует отметить, что у фильтра имеется особенность, а именно вносимая групповая задержка, равная половине размера фильтра. Эта величина учитывается при последующем решении навигационной задачи и, тем самым, полностью компенсируется.
@NelSon29
карма
19,2
рейтинг 0,0
Инженер-программист
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (38)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.