Радио в облаках. Многоканальный имитатор GPS

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Cкорости сетей и вычислительные возможности компьютеров непрерывно и быстро растут. Это делает реализуемыми и экономически оправданными некоторые приложения из мира радио. Говоря философскими категориями, количество переходит в качество, и на стыке отраслей появляются невиданные доселе технологии. Сегодня мы не только расскажем об одной из них, каждый из вас сможет опробовать ее самостоятельно.

Недавно нам посчастливилось запустить многоканальный имитатор GPS и проверить его на устройстве наших уважаемых коллег. Подробно об этом читайте в статье "Многоканальный имитатор сигнала GPS на RFSoC". Кратко - мы взяли существующий открытый код имитатора GPS от prof. Takuji Ebinuma, сделали его многоканальным и выдали на ВЧ с помощью RFSoC. И оно заработало!

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

Конфигурация имитатора задается файлом JSON. Разберем простейшую конфигурацию имитатора.

{
  "Gps": {
    "Enable": true,
    "Snr_dbhz": 50
  },
  "JammingSources": [
  ],
  "Receiver_llh": [
    59,
    30,
    350
  ],
  "SamplesFreq_hz": 5000000,
  "Duration_s": 10,
  "Antennas_m": [
    [
      0,
      1,
      0
    ]
  ]
}
  • "Gps" - тип сигнала, сейчас это только GPS, сигнал включен ("Enable" : true) и задано его отношение сигнал-шум (SNR) - 50 dB-Hz;

  • "JammingSources" - описание источников помех, рассмотрим позже;

  • "Receiver_llh" - географические координаты приемника;

  • "SamplesFreq_hz" - частота дискретизации выходного сигнала в Герцах;

  • "Duration_s" - длительность выборки в секундах;

  • "Antennas_m" - описание геометрии антенной решетки в виде координат антенн в метрах. Для простоты рассмотрения в файле выше задана одна антенна.

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

Тогда усилиями @catscury имитатор был перенесен в облако - cloud.amungo-navigation.com. Интерфейс сайта прост и понятен интуитивно. Здесь нужно зарегистрироваться и сгенерировать файл(ы) сигнала, задав файл конфигурации имитатора. Файл конфигурации доступен в онлайн редакторе. Его можно сохранить, чтобы в следующем сеансе загрузить в систему. В случае ошибки в файле конфигурации или в случае выхода за ограничения имитатора, выдаются подсказки. Когда конфигурация заполнена правильно, нужно нажать кнопку "Generate Gps". После продолжительного (будьте терпеливы) старта, начинается скачивание файлов.

Получив файл с сигналом с расширением bin, его можно проверить программным приемником от prof. Dennis Akos. Вы также можете загрузить файл в любую подходящую SDR-плату для передачи в эфир.

Теперь рассмотрим, как задать параметры, которые делают этот облачный имитатор уникальным. Антенная решетка задается так:

"Antennas_m": [
    [
      0,
      0,
      0
    ],
    [
      1,
      0,
      0
    ],
    [
      0,
      1,
      0
    ]
  ]

Здесь заданы координаты антенн в метрах относительно координат приемника, заданных в поле Receiver_llh. Напомним, что это географические координаты в формате <широта, долгота, высота>.

Если не задавать помеху сколь-нибудь значительного уровня, то выходные файлы имитатора можно использовать для генерации на высокой частоте с целями тестирования систем спутниковой ориентации, как было описано здесь. Вы также можете использовать эти файлы для тестирования систем высокоточного позиционирования RTK. Для файла, сгенерированного без помех, программный приемник выдает такую картинку:

Для помехи задаются ее координаты и мощность. Координаты задаются в географическом ("PositionType": "llh") или в декартовом виде ("PositionType": "neu") в метрах относительно Receiver_llh. Мощность задается в линейном масштабе напряжений, как амплитуда. Это значит, что для увеличения помехи на 20 дБ нужно увеличить значение в 10 раз. Грубо говоря, это напряжение или напряженность поля, которая обратно-пропорциональна расстоянию от источника излучения. В имитаторе учитывается затухание сигнала в соответствие с расстоянием до приемника. С этой точки зрения задание мощности помехи амплитудой довольно удобно. Если мы увеличили расстояние до источника помехи в N раз, то в N раз нужно увеличить мощность, если мы хотим, чтобы мощность помехи на входе приемника сохранилась прежней.

  "JammingSources": [
    {
      "AmplitudeGain": 5,
      "PositionType": "llh",
      "Position": [
        60,
        30.5,
        450
      ]
    },
    {
      "AmplitudeGain": 5,
      "PositionType": "neu",
      "Position": [
        1000,
        -3000,
        50
      ]
    }
  ],

Во фрагменте конфигурации, представленном выше, задано две помехи одинаковой мощностью на 14 дБ выше шума. Кстати, при таком значении помехи используемый нами программный приемник еще обнаруживает сигнал спутников, хотя и со снижением SNR. Координаты первой помехи заданы в географическом виде, второй - в декартовом North-East-Up в метрах. Внутренние параметры приемника, работающего под помехой, представлены ниже. Чтобы справляться с более большими помехами, понадобятся алгоритмы, подобным тем, что мы рассматриваем в этой статье.

Следует отметить, что сигнал сохраняется в целочисленном комплексном виде с разрядностью 16 бит на составляющую. Указанный выше программный приемник "из коробки" настроен на такой сигнал с частотой дискретизации 5МГц. Нужно только указать имя файла с сигналом на входе.

Сейчас имитатор имеет некоторые ограничения. Например, нельзя установить большое число каналов и помех и большую длительность выборки. Это сделано, чтобы мы не вылетели в трубу из-за "облачных" счетов.

Мы просим всех, кто станет пользоваться облачным имитатором, сообщать нам о проблемах, неполадках и своих пожеланиях. Мы кое-что знаем про радио, но новички в облачном деле, нам нужно еще поучиться у специалистов. Любые советы приветствуются.

Источник: https://habr.com/ru/post/583872/


Интересные статьи

Интересные статьи

В этой статье мы рассмотрим, как система управления 1С-Битрикс справляется с большими нагрузками. Данный вопрос особенно актуален сегодня, когда электронная торговля начинает конкурировать по обороту ...
Возможно многие не знают, (или успели забыть) но в конце 90х, начале 2000х годов, во времена перехода с аналогового на цифровое спутниковое ТВ вещание, были популярны приёмники от Nok...
Битрикс24 — популярная в малом бизнесе CRM c большими возможностями даже на бесплатном тарифе. Благодаря API Битрикс24 (даже в облачной редакции) можно легко интегрировать с другими системами.
Периодически мне в разных вариантах задают вопрос, который «в среднем» звучит так: «что лучше: заказать интернет-магазин на бесплатной CMS или купить готовое решение на 1С-Битрикс и сделать магазин на...
Если вы последние лет десять следите за обновлениями «коробочной версии» Битрикса (не 24), то давно уже заметили, что обновляется только модуль магазина и его окружение. Все остальные модули как ...