Как собрать и откалибровать спектральный анализатор на базе HackRF One

Если вы зашли на эту страницу, скорее всего, у вас уже есть HackRF One — или вы планируете его купить и хотите понять, реально ли сделать из него нормальный спектральный анализатор. Ответ: да, реально, но с оговорками. HackRF — это не готовый анализатор спектра вроде тех, что стоят на столе у радиоинженера. Это SDR-приёмник, который при правильном подходе можно превратить в вполне рабочий инструмент для наблюдения радиочастот. Разберёмся, как именно.

Что реально можно получить от HackRF в роли анализатора спектра

HackRF One — это программно-определяемый радиоприёмник, который работает в диапазоне от 1 МГц до 6 ГГц. Ширина мгновенной полосы — до 20 МГц. Этого достаточно для наблюдения широкополосных сигналов: Wi-Fi, LTE, LoRa, аналогового телевидения, радиомаяков, гармоник и помех. Но важно понимать ограничения:

  • Нет встроенного генератора — вы не сможете провести полноценное сканирование в режиме анализатора цепей (VNA). Только приём.
  • Разрешение по частоте зависит от выбранной полосы и БПФ. При 20 МГц полосы и БПФ 2048 точек — шаг около 10 кГц. Для грубого анализа нормально, для точного — маловато.
  • Динамический диапазон ограничен 8-битным АЦП. Одновременно видеть слабый сигнал рядом с сильным не получится — сильный «ослепит» приёмник.
  • Чувствительность ниже, чем у специализированных анализаторов. Слабые сигналы ниже шума собственной платы вы не увидите.

Тем не менее, для диагностики радиоэфира, поиска источников помех, проверки работоспособности передатчиков и обучения — этого вполне достаточно.

Что понадобится помимо самого HackRF

Одного только «китайского» корпича с антенной недостаточно для адекватной работы. Вот минимальный набор:

  • HackRF One — оригинал или качественный клон. С дешёвыми клонами бывают проблемы с тактовым генератором и уровнем шума.
  • Антенна — штатная не годится для серьёзной работы. Нужна под ваш диапазон: широкополансовая (лог-периодическая, discone) или узкополосная (патч, штырьёвая) под конкретный диапазон.
  • Аттенюатор (10–20 дБ) — если вы собираетесь смотреть на сигналы высокой мощности (передатчики, вышки сотовой связи). Без него можно спалить вход.
  • Фильтр ВЧ — полосовой или ФВЧ, чтобы отсечь внеполосные помехи. Например, если вы работаете на 2,4 ГГц, фильтр уберёт влияние мощных сигналов ниже 2 ГГц.
  • Кабель — качественный, с хорошими разъёмами. SMA, не переходники на марку.
  • Компьютер — желательно с USB 3.0, чтобы не было потерь при потоковой передаче данных с полосой 20 МГц.

Программное обеспечение: что ставить

Без софта HackRF — просто плата. Вот основные варианты для работы в режиме спектрального анализатора:

Программа Платформа Режим спектра Удобство Примечание
SDR# (SDRSharp) Windows Встроенный спектрограмма + водопад Высокое Самый популярный вариант для начинающих. Много плагинов.
GQRX Linux, macOS Спектр + водопад, запись IQ Среднее Стабильный, удобный интерфейс. Хорошо работает на Linux.
GNU Radio Linux Любой — настраивается через блоки Низкое (порог входа) Максимальная гибкость, но нужно собирать схему самому.
Universal Radio Hacker Linux, Windows Спектр, анализ модуляции, запись Среднее Хорош для исследования протоколов, не только спектра.
inspectrum Linux, macOS Водопад, анализ сигналов с модуляцией Среднее Удобен для разбора цифровых сигналов после записи IQ.

Для начала рекомендую SDR# на Windows или GQRX на Linux. Они дают картинку спектра сразу после установки, без необходимости собирать схемы.

Пошаговая настройка и калибровка

Шаг 1. Установка драйверов и софта

  1. Подключите HackRF к компьютеру через USB.
  2. Если Windows — установите драйверы через Zadig (выберите HackRF One, установите WinUSB).
  3. Установите SDR# или GQRX. Для SDR# скачайте последнюю версию с официального репозитория, распакуйте, запустите.
  4. В настройках выберите источник — HackRF. Установите частоту, например, 100 МГц (FM-диапазон) для проверки работоспособности.

Шаг 2. Первичная проверка

Вы должны увидеть шумовую подложку и, если рядом есть радиостанции, — пики на частотах FM-станций. Если видите ровный шум без единого пика — проверьте антенну и частоту. Если видите «лес» из сигналов везде — скорее всего, наводки от USB или питания. Попробуйте отключить другие USB-устройства или использовать ферритовый фильтр на кабель.

Шаг 3. Настройка усиления

В SDR# есть ползунки усиления: LNA (малошумящий усилитель), VGA (усилитель с переменным усилением) и усиление ЦАП. Вот как их правильно выставить:

  • LNA — ставьте около 16–24 дБ для начала. Слишком высокое значение даст искажения от сильных сигналов.
  • VGA — 20–30 дБ. Подбирайте так, чтобы шумовая подложка была видна, но не «заливала» весь экран.
  • Усиление ЦАП — обычно оставляют около 30–40 дБ.

Главное правило: лучше меньше усиления и более чистая картина, чем больше усиления и куча искажений.

Шаг 4. Калибровка частоты

У HackRF есть кварцевый генератор с погрешностью до 20 ppm (частей на миллион). Это означает, что на частоте 1 ГГц реальная частота может отличаться от указанной на ±20 кГц. Для грубой работы это не критично, но если вам нужна точность — откалибруйте:

  1. Найдите сигнал с известной точной частотой. Например, маяк сигнала точного времени (в России — РBU на 66,(6) кГц, но это вне диапазона HackRF), или GPS-частоту L1 (1575,42 МГц), или известную FM-станцию.
  2. В SDR# или GQRX настройтесь на эту частоту и посмотрите, куда реально попадает пик.
  3. Запишите смещение в герцах. В SDR# это делается через настройку «Frequency Correction» (в ppm). В GQRX — через параметр коррекции частоты.
  4. Подставьте формулу: если на частоте 1575 МГц вы видите сигнал на 1575,418 МГц вместо 1575,420 МГц, смещение — 2 кГц. В ppm это 2000 / 1575,42 = около 1,27 ppm. Введите это значение со знаком минус в поле коррекции.

После этого частота должна совпадать с реальной в пределах 1–2 кГц, что для большинства задач достаточно.

Шаг 5. Калибровка мощности (амплитуды)

Это сложнее и требует эталонного источника. Если у вас есть генератор сигналов с известной выходной мощностью:

  1. Подключите генератор ко входу HackRF через аттенюатор (чтобы не перегрузить вход).
  2. Установите генератор на нужную частоту и мощность, например, −30 дБм на 900 МГц.
  3. В SDR# посмотрите уровень пика на спектрограмме. Запишите значение в дБ (относительно полной шкалы).
  4. Постройте таблицу соответствия: реальная мощность (дБм) против показаний SDR. Это и будет ваша калибровочная кривая.

Если генератора нет — можно использовать известные сигналы из эфира. Например, сигналы сотовой связи на вышках имеют примерно известную мощность, но с большой погрешностью. Для серьёзной калибровки без генератора не обойтись.

Шаг 6. Настройка разрешения и скорости обновления

В SDR# настройте:

  • Разрешение БПФ (FFT) — 2048 или 4096 для лучшего частотного разрешения. 8192 — для детального анализа узкополосных сигналов, но скорость обновления упадёт.
  • Время усреднения — 0–5 кадров. Больше усреднение — более гладкая картинка, но медленнее реакция на изменение сигнала.
  • Полоса просмотра (span) — 2–20 МГц. Узкая полоса — больше деталей, широкая — обзор всего диапазона.

Типичные сценарии использования

Сценарий 1: Поиск источника помех

Если у вас появились наводки в эфире — например, мешает приёму радио или падает скорость Wi-Fi:

  1. Настройтесь на частоту интереса (например, 2437 МГц — 6-й канал Wi-Fi).
  2. Включите режим водопада с усреднением по времени.
  3. Наблюдайте, когда появляется помеха — постоянно или периодически.
  4. Перемещайтесь с HackRF и антенной, отслеживая изменение уровня сигнала. Направление на максимум — примерное направление на источник.

Сценарий 2: Проверка передатчика

Нужно убедиться, что ваш передатчик (например, на 433 МГц или 868 МГц) работает и выдаёт ожидаемую мощность:

  1. Подключите передатчик к HackRF через аттенюатор 20 дБ (обязательно, иначе сожжёте вход).
  2. Настройтесь на частоту передатчика.
  3. Включите передатчик и посмотрите на пик спектра. Сравните уровень с калибровочной таблицей.
  4. Проверьте ширину спектра сигнала — нет ли нежелательных излучений за пределами полосы.

Сценарий 3: Обучение и исследование сигналов

HackRF — отличный инструмент для изучения радиосвязи. Вы можете записывать IQ-данные и разбирать их в GNU Radio или Universal Radio Hacker. Это даёт понимание того, как работают различные виды модуляции, как выглядят реальные сигналы в эфире.

Частые ошибки и как их избежать

  • Перегрузка входа. Подключение антенны рядом с мощным передатчиком без аттенюатора. Результат — интермодуляционные искажения, ложные сигналы по всему спектру. Всегда используйте аттенюатор, если не уверены в уровне сигнала.
  • Плохая антенна. Штатная антенна от комплекта — кусок провода. Она работает, но плохо. Купите хотя бы простую широкополосную антенну за разумные деньги — разница будет заметна сразу.
  • Игнорирование калибровки частоты. Без коррекции генератора вы будете настраиваться не туда, куда думаете. Особенно критично на высоких частотах (выше 2 ГГц).
  • Работа без фильтрации. В городском эфире столько мощных сигналов, что без полосового фильтра вы получите кашу. Фильтр под ваш диапазон — не роскошь, а необходимость.
  • Потеря данных через USB. Если компьютер не справляется с потоком 20 МГц, вы будете видеть пропуски данных. Снизьте полосу до 8–10 МГц или используйте компьютер с USB 3.0 и быстрым процессором.
  • Ожидания от дорогого анализатора. HackRF — это не Rohde & Schwarz. Он не покажет вам уровень шума −150 дБм/Гц или раздваивание сигналов на 1 кГц. Он даст общую картину эфира, и это нормально.

Как лучше сделать: практические рекомендации

Если вы новичок: начните с SDR# на Windows. Установите, подключите HackRF, настройтесь на FM-диапазон и посмотрите на радиостанции. Это даст понимание того, как работает спектр. Потом переходите к конкретным задачам.

Если вы работаете на Linux: GQRX — ваш лучший выбор для начала. Он стабильный, с хорошим интерфейсом и поддержкой записи IQ. Для глубокого анализа — GNU Radio, но будьте готовы потратить время на обучение.

Если вам нужна мобильность: HackRF + Raspberry Pi 4 + портативный экран. Получается компактный анализатор, который можно брать с собой. Установите GQRX или напишите скрипт на Python с библиотекой hackrf для автоматического сканирования.

Если бюджет позволяет улучшить систему: добавьте внешний малошумящий усилитель (LNA) перед HackRF. Например, на базе микросхемы PGA-103+ или SPF5189Z. Это заметно улучшит чувствительность, особенно на высоких частотах.

Итог

HackRF One — это не анализатор спектра в классическом смысле, но при грамотной настройке и калибровке он становится мощным инструментом для наблюдения радиоэфира. Ключевые шаги: установите софт (SDR# или GQRX), откалибруйте частоту по известному сигналу, настройте усиление без перегрузки, используйте фильтры и аттенюатор при необходимости. Не ждите от него лабораторной точности — но для диагностики помех, проверки передатчиков и изучения радиосигналов его возможностей более чем достаточно.

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

Radio-Blog.ru