Comments 36
Интересно. Если действительно утыкать все многоэтажки такими пассивными антеннами то можно дроны пеленговать?..
Можно и так, но зачем? Есть гораздо более простые и интересные варианты. Просто креативя такие вещи, вы каждый раз должны спрашивать, кому больше пользы принесёт это изобретение будучи распространённым, и ставши трансграничным, вам, или сопернику? — если конечно не хотите получить убытки от нововведения вместо прибыли
А смысл?! Вам его обнаружить надо на подходе сильно заранее, а не когда он уже в городе. На первом этапе бы на своем железе неплохо реализовать функции телевизионного приемника DVB-T2. Потом, приемника с расширенными сервисными функциями анализа сигнала. Ну а потом можно идти дальше.
Нам же хотелось видеть небо, не нарушая ни законов физики
"Нарушают законы физики" - только какие-нибудь альтернативщики с рентв. Как вы можете нарушить законы физики?
Так а результаты-то какие-то есть?
плюсики за статью считаются?
Да, результаты есть 🙂
Для валидации модели пассивного радара (KrakenSDR + DVB-T2) мы собирали IQ-данные примерно в 12 км от аэродрома со спортивными одноместными самолётами — они по параметрам ближе всего к дронам самолётного типа среднего класса..
Цель была — набрать хотя бы 8–10 тыс. положительных CAF-патчей («воздушная цель») и столько же отрицательных для baseline. После настройки систему перенесли в «коридор» вероятного пролёта дронов и развернули 3 узла на расстоянии ~5 км друг от друга, на высоте 15–20 м.
За неделю через сектор пролетели четыре цели — три уверенно задетектировали и оттрекали до выхода из зоны, четвертая прошла по касательной и засеклась одним прибором.
Дальность устойчивого обнаружения — порядка 12–15 км, зависит от азимута и высоты цели и естественно от высоты наших антенн.
Задумка на 5, реализация на непонятно сколько, описание на двоечку. Что от статьи что от репозитория и документов в нем настолько пахнет чатгпт, плюс никаких результатов не опубликовано, что я даже затрудняюсь оценить техническую сторону проекта. Поэтому пожалуй прокомментирую по статье:
Теория. Если всё же почитать статью не по диагонали, то оказывается там не описано как работает радар, соответственно непонятно что вы делаете. Идет описание архитектуры, а потом сразу пайплайн. Что вся это штука делает в общем - непонятно.
Наглядные материалы. Вам сложно было стырить пару схематических картинок по запросу passive coherent location radar? Если у вас в репозитории есть че-то сказано про визуализацию, то что, сложно было показать пример этой вашей "тепловой карты"?
Терминология. Как говорили великие: "Ты - чудовище" и "это полный пи****". Статья вызовет кринж не то что у студента радиоэлектроники, а у любого кто читал хоть какие-то материалы по радио на русском языке. Какой, к чёрту, антенный массив? CFAR, CAF, MTI имеют устоявшиеся переводы. Оставлять почему-то фильтр Калмана без перевода, где он как раз дословный, ну это просто пушка.
Пока я всё это проверял, потому что не особо верил своим глазам, заметил ещё одну большую проблему. У вас в статье нигде не сказано, каким же образом вы используете кракена. Вы сделали антенную решётку на 5 элементов или всё же, как нормальные люди, на 4, а пятый канал принимает чистный сигнал от передатчика DVB-T2/LTE, вместо отраженных?
Про проблему синхронизации тоже не понял. Источник фактически точечный, что вы там хотите синхронизировать то?
Да, у нас антенная решётка на 5 элементов, где одна антенна — референсная, принимает прямой сигнал от передатчика DVB-T2, а четыре остальные — surveillance-каналы, ловят отражёнку. Так что архитектура вполне «нормальная»
Что касается синхронизации — речь не про источник, а про внутреннюю фазовую когерентность между каналами KrakenSDR. Несмотря на общий опорный генератор и GPSDO, на практике между каналами остаются небольшие фазовые и временные дрейфы. Для задач DOA и PCL это критично — особенно когда источник (DVB-T2) не когерентен с приёмником. Поэтому приходится компенсировать сдвиги уже на уровне DSP, чтобы CAF не «размазывался».
Не работал с KrakenSDR, но так, с дивана. У вас же включена автоматическая рекалибровка? А в курсе зачем она там нужна вообще? Кроме того что вся аналоговая часть получает одинаковую частоту, но разную фазу есть ещё одна проблема, цифровая логика также тактуется не синфазно. Кроме наличия постоянного сдвига фазы в KrakenSDR ещё и не гарантируется выравнивание буферов отдельных каналов между собой после передачи по USB. Поэтому там и нужна периодическая рекалибровка, без которой со временем каналы будут расходиться по времени
Да, вы всё верно описали — без автоматической рекалибровки KrakenSDR каналы через пару часов реально начнут «танцевать вразнобой»
У нас рекалибровка включена, и она решает сразу несколько проблем: фазовые сдвиги между каналами, рассинхрон цифровой логики и рассогласование буферов после USB. Без неё CAF и треки постепенно теряли бы точность.
Кроме встроенной процедуры, мы добавляем DSP-компенсацию, чтобы минимизировать остаточные сдвиги и обеспечить стабильность DOA/CAF при длительных записях.
Если интересно, могу коротко описать, как реализована эта фазовая коррекция и интерполяция сигналов на Python — там есть несколько забавных нюансов, которые неожиданно сильно влияют на точность.
Спасибо за разбор — приятно, что кто-то реально дочитал до конца.
Да, согласен: статья не претендует на учебник по радиолокации. Цель была показать, что пассивный радар на KrakenSDR и DVB-T2 реально работает, а не расписать весь DSP пайплайн в деталях. Сейчас готовим отдельный пост с результатами: CAF-карты, CFAR-детекции, треки по Kalman filter’у и т.п. — будет куда нагляднее.
По терминам — да, мешанина сознательная. Мы держали фокус на англоязычном SDR/DSP комьюнити, где CAF, CFAR и MTI никто не переводит, в котором мы последние 20 лет вращаемся. А вот «антенный массив» оставили по-русски, чтобы не писать array . В будущем сделаем нормальную редактуру для рускоязычного клиента, чтобы не резало глаз радиотехникам.
Схемы и «тепловые карты» добавим — просто хотелось выкатить проект в живом виде, пока он дышит, а не отполированный PDF через полгода.
Если интересно, кину в комменты пару кадров CAF/MTI с реальных данных — чтобы было видно, что это не фейк и не «сгенерил ChatGPT»
KrakenSDR и Raspberry Pi 5 стоят не дороже роутера
У вас какие-то странные представления о цене KrakenSDR, вы случайно с HackRF не путаете?
Да, KrakenSDR дороже HackRF, но для 5-канального стенда с RPi5 бюджет всё ещё вполне «домашний». Главная мысль была — многоканальный SDR уже не требует профессиональной РЛС, и собрать рабочий стенд реально без грантов.
KrakenSDR как я сейчас вижу - стоит под 100к и это не очень похоже на домашний бюджет
а вместо кракена 5 хакрф не подойдут? или там 2-3 лайма.
Подойдут, но там придется вручную делать синхронизацию. Если есть опыт с такими страшными вещами как Vivado, то на али можно взять парочку клонов PlutoSDR, там иногда встречается вход гетеродина, так что используя его и вход 10 МГц можно вполне себе собрать многоканальный приёмник без кучи софтварной синхронизации в постобработке.
Зачем вообще делать радар из телевизора?
Традиционные радиолокационные системы (РЛС) — это огромные антенны, киловатты мощности, разрешения на частоты и бюджеты уровня «военного отдела». Нам же хотелось видеть небо, не нарушая ни законов физики, ни законодательства.
Зачем вообще делать радар из телевизора? хотелось видеть небо!
А зачем видеть небо, расскажите? Это не для всех очевидно
Когда-то интересовался темой пассивной радиолокации, чисто для себя разобраться. Осталась подборка статей, возможно вам там что-то покажется интересным: https://disk.yandex.ru/d/HCUNnvbGUA1kAw
Мои выводы по этой теме:
Нужна сеть SDR приемников, которые по толстому каналу транслируют спектор на центральный пост, где данные всех приемников обрабатываются хитрыми математическими алгоритмами (см. подборку).
Такая конструкция позволяет обнаруживать объекты с приемлемой точностью на дальности примерно равной базе пеленгации. Которая, например, в случае сети спутников может быть и сотни километров.
Я не знаю что именно используется в кракене. Как я понимаю, метод многопозиционной локации (при движущейся цели или движущемся относительно цели приемнике) может дать в идеальный условиях точность пеленгации порядка полградуса - 8 тысячных от дальности цели.
Хотя в случае выявления бпла точность пеленгации побоку, главное выявить сигнал на фоне шумов, а если он выявлен, доразведать возможно другими средствами. Тут опять таки, можно посмотреть в сторону математических алгоритмов, типа MUSIC, позволяющих выявлять сигналы с низким соотношением сигнал/шум.
Я бы все-таки вам посоветовал двигаться от кракена в сторону Pluto+ SDR - пространственно разнесенной сети приемников, подключенных через оптику, которая в каждый дом протянута, к серверу, который каким-либо алгоритмом будет обрабатывать их сигнал. Плуто и двухканальный, что позволяет в TDOA/FDOA методы пеленгации, и по частотам, и по наличию ethernet и по цене практически безальтернативный вариант на мой взгляд.
Слышал, такие отзывы, что методы (MUSIC и MVDR) плохо справляются с наличием сигналов одинаковой частоты, в том числе отражения, а классический Beamforming лучше справляется, но у него точность пеленгации похуже.
https://disk.yandex.ru/d/HCUNnvbGUA1kAw
Ничего не найдено
В ссылке опечатка, либо владелец удалил файлы или закрыл к ним доступ.
Что-то совсем не по цене роутера этот рекламируемый Кракен, хотя по сути это кажется пять синхронных rtl-sdr на одной плате. Покажите хоть картинки как выглядят антенны, собранная система и ее работа.
Когда-то по отражёнке телевизионного сигнала от дома напротив (картинка слегка двоилась) можно было рассчитать расстояние до него.
Бесит вот такой стиль. Это так чатик Гэ Пэ Тэ удобряет свои тексты... И списки вечные туда же! Нет, чего-то тяп-ляп.
Расскажите как вы осуществляете синхронизацию кадра ofdm. Вот у вас есть поток векторов IQ. Что вы делаете чтобы найти начало кадра?
С удовольствием.
Спасибо за вопрос по делу.
Итак, что мы имеем
Поток комплексных отсчётов IQ с reference-антенны (прямой сигнал DVB-T2).
Наша задача — найти границу OFDM-кадра / символа, чтобы потом корректно делать CAF.
Как мы находим начало кадра
Используем P1-символ
В DVB-T2 каждый кадр начинается с P1 — это специально зарезервированный уникальный OFDM-символ с известной паттерной структурой.
Мы делаем:
корреляцию входного потока IQ с эталоном P1,
ищем максимум корреляции,
пик корреляции → начало кадра.
Это даёт очень устойчивую синхронизацию даже при низком SNR.
2. Дополнительная проверка по циклическому префиксу
После грубой синхронизации по P1, делаем тонкую синхронизацию:
сверяем основную часть OFDM-символа с копией из CP,
ищем максимум совпадения,
уточняем временной сдвиг до точности десятков отсчётов.
3. Коррекция частоты (CFO)
Перед CAF это важно:
оцениваем остаточный частотный сдвиг по фазе CP,
компенсируем
нормализуем символы
4. Вырезаем ровно N отсчётов для каждого символа
Когда начало кадра найдено, дальше уже несложно:
N_fft отсчётов — сам OFDM-символ
CP_len отсчётов — циклический префикс
Мы адаптивно “подтягиваем” рамку по CP, чтобы дрейф не накапливался.
Корреляция с P1 — поиск начала кадра :
На вход сюда подаётся:
iq — ваш поток IQ с reference-канала
p1_ref — заранее сгенерированный эталонный P1 (есть в стандарте DVB-T2, или берётся из предварительного захвата)
Этот шаг обычно находит границу кадра с точностью ±5…10 отсчётов даже на низком SNR.
import numpy as np
from numpy.fft import fft, ifft
def correlate_with_p1(iq, p1_ref):
"""
iq - поток комплексных IQ-отсчётов
p1_ref - эталонный P1-символ (комплексный массив)
"""
# нормируем для устойчивости
p1_norm = p1_ref / np.linalg.norm(p1_ref)
iq_norm = iq / (np.abs(iq).mean() + 1e-6)# кросс-корреляция (через FFT для скорости)
corr = np.abs(np.fft.ifft(np.fft.fft(iq_norm) * np.conj(np.fft.fft(p1_norm, len(iq_norm)))))
# индекс максимума = начало кадра
frame_start = np.argmax(corr)
return frame_start, corr
Если заинтересует, могу сбросить в мессаге полный пайплайн с тонкой синхронизацией по циклическому префиксу (CP)
Так это не радар, а радиолокационный детектор!
Ну как бы я не сказал что вы правы, так как 1)- Детектор — пассивное устройство, которое только принимает и оповещает о сигналах, 2)а это будет ближе к - пассивной радиолокационной системе, основанной на использовании сторонних передатчиков используя отраженный сигнал и сравнивая его изминения от прямого сигнала от источника, в данном случае от тв вышки DVB-T/T2. Если не прав то поправте


Как мы превратили цифровое ТВ в радар