Русский
Русский
English
Статистика
Реклама

Antenna array

Серебряная пуля для кремлевского демона

27.02.2021 08:11:18 | Автор: admin

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


Это интересное пространственная обработка сигналов с антенных решеток. В обычной, особенно любительской, практике радиосвязи и радионавигации такое все еще редко встречается. Виной тому дополнительные кратные затраты на количество радио-трактов. Но иногда это вполне допустимо. Например, в мобильной связи. Здесь широко применяется пространственная обработка, MIMO. Даже в обычной точке доступа WiFi она уже есть давно.


Хотя в любительской радиотехнике все еще мало примеров использования пространственной обработки, она начинает завоевывать свое место. Этому способствует снижение цен на платы SDR с 2x2 MIMO, такие как LimeSDR или XTRX. Существуют даже относительно недорогие решения и для Massive MIMO.


В практике спутниковой радионавигации антенные решетки встречаются еще реже. Наверное, это происходит из-за узости области знаний, но не только. Немаловажным фактором остается сложность схем обработки. Сигналы спутников GPS, ГЛОНАСС и других имеют на поверхности Земли столь малую мощность, что даже неискушенный нарушитель легко создает помеху, в миллионы раз превышающую эту мощность. Что уж говорить про государственных нарушителей, за которыми мне пришлось гоняться несколько лет назад. Вся Москва не даст соврать. Кремлевские демоны!


Проблема общенародная, поэтому срочно переходим к практике. Берем четырехканальную антенную решетку диапазона L1. Берем четырехканальную SDR-плату для спутниковой навигации. Соединяем.


image


Делаем синхронную запись сигнала с четырех антенн с подоконника. При этом с выхода LimeSDR излучаем гармоническую помеху на центральной частоте GPS L1 1575.42МГц. Спектр сигнала получается такой:


image


Для построения спектра мы используем программу на Matlab, полученную от prof. Dennis Akos и слегка модифицированную для работы с 16-битным комплексным сигналом. Здесь лежит архив с исходниками.


Кроме спектра, программа выводит более подробные параметры сигнала: гистограмма и график во времени.


image
image


Анализ графиков показывает, что входной сигнал заполняет практически весь доступный динамический диапазон цифрового тракта. От максимума сигнала до шума примерно 60 дБ, что, даже с учетом усиления от обработки БПФ, довольно много. Проверим, что этого достаточно, чтобы сигналы спутников не находились коррелятором.


image


Как видно, "спектр" сигналов GPS L1 C/A-code равномерный, без всплесков. Это значит, что сигналы спутников не обнаружены. Проверяем так четыре файла (с каждой антенны) ничего.


Теперь ударим легкой математикой по радио-электронной преступности. Возьмем такой простой код на Matlab:


% clean upclear;close all;clc;% read data from 4 filesfileNames = ['c:\work\aj\habr1\dump2\Dump_15_channel_0.int16';...             'c:\work\aj\habr1\dump2\Dump_15_channel_1.int16';...             'c:\work\aj\habr1\dump2\Dump_15_channel_2.int16';...             'c:\work\aj\habr1\dump2\Dump_15_channel_3.int16'];countFiles = size(fileNames,1);countInSamples = 5000000;dataArr = zeros(countFiles, countInSamples);fID = 0;for i = 1:countFiles    fID = fopen(fileNames(i,:));    if (fID == -1)        fprintf('This file does not exist: %s\n', fileNames(i,:));        return;    else        data = fread(fID, countInSamples, 'int16');        dataArr(i,:) = data;        fclose(fID);    endendcountInSamples% create I/Q arraydataArrIQ = zeros(countFiles, countInSamples/2);for i = 1:countFiles    k = 1;    for j = 1:2:countInSamples        dataArrIQ(i, k) = complex(dataArr(i, j), dataArr(i, j + 1));        k = k + 1;    endend20*log10(mean(abs(dataArrIQ),2))res = (diag(diag(inv(corrcoef(dataArrIQ'))).^(-1)) / corrcoef(dataArrIQ')) * dataArrIQ;20*log10(mean(abs(res),2))% write the result into 4 filesfor i = 1:countFiles    out = zeros(1, countInSamples);    for j = 1:(countInSamples/2)        out(2*j-1) = real(res(i,j));        out(2*j) = imag(res(i,j));    end    fID = fopen(strcat('out',num2str(i),'.int16'),'w');    fwrite(fID, out, 'int16');    fclose(fID);end

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


image


По спектру мы видим, что помеха не пропала совсем, но уменьшилась по уровню примерно на 30 дБ. Почему же она не упала ниже? Следующий график даёт нам разгадку.


image


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


image


Итак, помеха уменьшилась на 30 дБ. Что же теперь покажет нам коррелятор? Сможет ли он найти сигнал?


image


Вуаля! Сигнал найден! Приемник обнаружил спутник в номером 1. Уровень корреляции не очень, но давайте дадим приемнику немного поработать и посмотрим на результаты.


image


На верхних графиках мы можем довольно четко видеть сигнальное созвездие и результат демодуляции. Результаты работы коррелятора, петли по фазе и по задержке выглядят не очень. Они со временем загибаются. Это можно объяснить недостатками представленного алгоритма компенсатора, о которых мы поговорим позже. Но это не меняет главного: помеха удалена силой математики!


Благодаря Матлабу вся математика заключена в одной строчке кода:


res = (diag(diag(inv(corrcoef(dataArrIQ'))).^(-1)) / corrcoef(dataArrIQ')) * dataArrIQ;

В более читаемом виде код будет таким:


cm = corrcoef(dataArrIQ');cc = diag(diag(inv(cm)).^(-1));res = (cc / cm) * dataArrIQ;

Сначала вычисляется матрица автокорреляции входного сигнала. Затем эта матрица обращается и каждая строка обратной матрицы поэлементно делится на соответствующий ей диагональный элемент. Нормированная таким образом обратная матрица умножается на входной сигнал и в результате получается очищенный от помехи выходной сигнал. Смысл этой операции заключается в "декорреляции" сигналов, полученных с разных антенн и сильно коррелированных из-за присутствия помехи. Формула вычислений такая:


$\left(\begin{array}{c} y_1 \\ \vdots \\ \vdots \\ y_N \end{array}\right) = \left(\begin{array}{cccc} R_{11}^{-1} &0 &\ldots &0 \\ 0 &R_{22}^{-1} &\ldots &0 \\ \vdots &\vdots &\ddots &\vdots \\ 0 &0 &\ldots &R_{NN}^{-1} \end{array}\right) R \left(\begin{array}{c} x_1 \\ \vdots \\ \vdots \\ x_N \end{array}\right)$


Вот такой простой математикой можно вытащить GPS-приемник из пасти демона и получить вполне хороший SNR.


image


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


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


Все рассказанное выше вы можете проделать сами. Код компенсатора берите из статьи. Код приемника от профессора Акоса здесь. Файлы с записями берите здесь. Не забудьте, они все вместе весят больше гигабайта.


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


Большое спасибо за участие в подготовке этой статьи и кода в ней нашему математику-программисту vtsarik!

Подробнее..

Подавление спутниковой навигации на Кремлевской набережной незаконно

28.02.2021 20:13:53 | Автор: admin
Чтобы не пытаться вместить этот довольно длинный текст в комментарий, я создал отдельную статью. Заранее прошу прощения у юристов, я сам технарь, но легкомысленные комментарии к моей статье Серебряная пуля для кремлевского демона вынудили меня заняться не своим делом и полезть в законы. Я прошу провести экспертизу моих юридических изысканий.

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

Я нашел Федеральный закон от 14 февраля 2009 г. N 22-ФЗ О навигационной деятельности. Вы все без труда найдете ссылку на его текст. Приведу здесь некоторый выдержки.

Статья 1. Сфера действия настоящего Федерального закона

1. Настоящий Федеральный закон устанавливает правовые основы осуществления навигационной деятельности и направлен на создание условий для удовлетворения потребностей в средствах навигации и услугах в сфере навигационной деятельности.

2. Действие настоящего Федерального закона распространяется на отношения, возникающие в связи с осуществлением навигационной деятельности и оказанием услуг в сфере навигационной деятельности, включая создание государственных навигационных карт и навигационных карт для автомобильных дорог, в том числе в целях обеспечения обороны и безопасности Российской Федерации.

Осмысление первой статьи показывает, что сферой ее является, в том числе, навигация на моем смартфоне или автомобильном навигаторе.

Определения пропускаем, сами откроете и прочитаете. Но чего мы там не знаем? Все понятно, далее.

Статья 3. Субъекты правовых отношений в сфере навигационной деятельности

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

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

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

Статьи восемь и девять для нас самые главные.

Статья 8. Участие физических и юридических лиц в навигационной деятельности

Физические и юридические лица могут осуществлять навигационную деятельность для собственных нужд и оказание услуг в сфере навигационной деятельности на всей территории Российской Федерации без ограничения точности определения координат объектов навигационной деятельности, за исключением территорий и объектов, для которых законодательством Российской Федерации установлен особый режим безопасного функционирования и перечень которых утверждается Правительством Российской Федерации.

Статья 9. Условия предоставления навигационных сигналов с открытым доступом

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

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

Указанный выше перечень утвержден Постановлением Правительства РФ от 5 июля 2001 г. N 508 Об утверждении перечня закрытых административно-территориальных образований и расположенных на их территориях населенных пунктов. С изменениями и дополнениями от:
16 апреля 2007 г., 16 июля 2009 г., 16 апреля 2015 г., 18 августа, 23 декабря 2016 г., 14 февраля, 19 апреля 2017 г., 18 апреля, 29 августа 2019 г., 16 февраля 2021 г. указанный перечень содержит:

image
image
image

Москвы в перечне нет. Прошу специалистов указать мне на ошибки в этой моей юридической инсинуации.

Весь материал я подготовил сам, ни один юрист не пострадал. Заранее спасибо!
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru