- PVSM.RU - https://www.pvsm.ru -
Традиционные радиолокационные системы (РЛС) — это огромные антенны, киловатты мощности, разрешения на частоты и бюджеты уровня «военного отдела». Нам же хотелось видеть небо, не нарушая ни законов физики, ни законодательства.
Так родилась идея собрать пассивную когерентную локацию (PCL) — систему, которая ничего не излучает, а просто слушает уже существующие сигналы в эфире.
FM-радио, LTE, цифровое ТВ — всё это мощные «осветители», которые и так покрывают территорию. Почему бы не использовать их?
Мы выбрали сигнал DVB-T2 (546 МГц) — стабильный, мощный, и что особенно приятно — с известной структурой (OFDM).
Результат? Получился радар без передатчика, который можно запустить хоть на балконе. И да, всё это — на полностью open source стеке.
Чтобы превратить ТВ-сигнал в радар, нам понадобилось не так уж много железа, но с хитростью.
Capture Unit (RPi 5 + KrakenSDR)
Снимает IQ-потоки с 5 приёмных каналов, синхронизированных по PPS и GPSDO.
Processing Server
Получает UDP-потоки, вычисляет CAF (Cross-Ambiguity Function) и CFAR-детекции, объединяет треки с помощью Kalman Filter и Hungarian algorithm
WebSocket API
Рассылает JSON-треки в реальном времени клиентам — веб-панелям, картам и системам визуализации.
|
Компонент |
Назначение |
Примечание |
|---|---|---|
|
KrakenSDR (5 каналов) |
Приём сигналов с антенн |
Многоканальность нужна для фазовых измерений и пеленгации |
|
Антенный массив (5× Yagi-Uda) |
1 референсная антенна + 4 следящие |
Референсная ловит прямой сигнал DVB-T2, остальные — отражения |
|
Raspberry Pi 5 |
Вычислительный блок |
Обрабатывает IQ-потоки в реальном (или почти реальном) времени |
|
Осветитель (Illuminator) |
Сеть DVB-T2 |
Некооперативный, но стабильный источник сигнала |
На практике это выглядит довольно забавно: несколько антенн на крыше, Pi5 с Kraken’ом на столе, и ноутбук с Python’ом, который «слушает телевизор» и находит дроны самолетного типа.
Главная задача — отделить динамические отражённые сигналы от всего остального: земли, домов и гор.
Сырые IQ-потоки проходят через несколько ключевых этапов цифровой обработки.
Мы вычисляем Cross Ambiguity Function (CAF) — по сути, это двумерная карта, где:
ось задержки (delay) показывает расстояние,
ось Доплера — скорость объекта.
Результат похож на тепловую карту, где почти весь центр — это «статический столб» (clutter).
Чтобы выделить движущиеся объекты, мы применяем MTI-фильтр (Moving Target Indication).
Принцип простой: вычитаем предыдущий кадр из текущего.
# MTI: удаляем статику, оставляем движение
filtered_caf = caf_frame_t - caf_frame_t_minus_1
Если сигнал не изменился — исчезает.
Если что-то движется — появляется всплеск.
После этого “тишина эфира” превращается в живую картину с подвижными точками.
CFAR (Constant False Alarm Rate) — адаптивный детектор, который ищет цели, не увеличивая ложные срабатывания.
А Kalman Filter помогает связать отдельные кадры в треки и предсказать движение объектов.
Чтобы не путать цели, используем Hungarian algorithm для сопоставления детекций между кадрами.
🧭 Результат: каждая цель получает свой ID и непрерывно отслеживается, даже если сигнал временно пропадает.
Сейчас проект активно развивается, и вот с чем мы боремся:
🔹 Фазовая когерентность KrakenSDR.
Как синхронизировать четыре приёмных канала, если источник (DVB-T2) никак с нами не связан? Пока пробуем софтверную компенсацию.
🔹 Оптимизация DSP на Raspberry Pi 5.
Расчёт CAF прожорлив: NumPy и SciPy не всегда успевают.
Пробуем переносить части расчётов на GPU через OpenCL или CUDA.
🔹 Особенности OFDM.
Хотим минимизировать боковые лепестки и артефакты при обработке DVB-T2 — поле для экспериментов и дискуссий.
Весь проект — open source.
KrakenSDR и Raspberry Pi 5 стоят не дороже роутера, поэтому можно собирать целые сети пассивных приёмников.
Они могут совместно покрывать территории на сотни километров, естественно там где присутствует FM, LTE,
📦 Репозиторий:
👉 github.com/Stanislav-sipiko/passive-sdr-radar [1]
Если вы разбираетесь в SDR, цифровой обработке, оптимизации Python или просто хотите помочь улучшить алгоритмы — будем рады вашей помощи.
Автор: astronotius
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/radiotehnika/436483
Ссылки в тексте:
[1] github.com/Stanislav-sipiko/passive-sdr-radar: https://github.com/Stanislav-sipiko/passive-sdr-radar
[2] Источник: https://habr.com/ru/articles/966044/?utm_source=habrahabr&utm_medium=rss&utm_campaign=966044
Нажмите здесь для печати.