Как собрать портативный анализатор спектра 0–30 МГц на Raspberry Pi — пошаговое руководство для радиолюбителя

Как собрать портативный анализатор спектра 0–30 МГц на Raspberry Pi — пошаговое руководство для радиолюбителя

Если ты хочешь видеть, какие сигналы плавают в воздухе между 0 и 30 МГц — от AM-радио до коротковолновых передач, от помех в сети до работы радиомодемов — и делать это с портативным устройством, которое помещается в рюкзак, то ты на правильном пути. Я не буду рассказывать, что такое спектральный анализ. Ты и так знаешь. Ты хочешь собрать устройство, которое будет работать, а не читать теорию. Давай сделаем это.

Почему именно Raspberry Pi?

Ты мог бы купить готовый анализатор за 20–50 тысяч рублей. Но тогда ты не поймёшь, как он работает. Или можешь собрать что-то на SDR-приёмнике с USB-интерфейсом — но тогда тебе понадобится ноутбук, а он не всегда под рукой. Raspberry Pi — это микрокомпьютер, который можно запитать от Power Bank, установить на него Linux, запустить программу в реальном времени и носить с собой. Он не самый мощный, но для 30 МГц — более чем достаточно.

Ключевое ограничение: Raspberry Pi сам по себе не ловит радиосигналы. Ему нужен внешний SDR-приёмник. И именно выбор этого приёмника — главный момент, от которого зависит всё.

Что нужно: компоненты и их роль

Вот минимальный набор, который тебе понадобится:

  • Raspberry Pi 3B+ или 4B — Pi 4 предпочтительнее, потому что быстрее обрабатывает данные, но Pi 3B+ тоже справляется. Не берёшь Pi Zero — не хватает мощности.
  • SDR-приёмник RTL-SDR v3 — базовый вариант. Ловит от 24 МГц до 1766 МГц. Но нам нужен диапазон 0–30 МГц. Значит, нужен низкочастотный адаптер.
  • Низкочастотный адаптер (LF Adapter) — это фильтр и усилитель, который сдвигает диапазон RTL-SDR вниз. Без него ты не увидишь ничего ниже 24 МГц. Я использую RTL-SDR Blog V3 LF Adapter — он работает, не требует внешнего питания, и его можно впаять в корпус.
  • Антенна — не бери китайскую «всёвключалку». Лучше самодельный вертикальный штырь 5 м (для 30 МГц — это ~5 м, но для 1 МГц — 30 м, так что будь готов к компромиссу). Или используй петлевую антенну — она компактнее и менее шумная.
  • Power Bank 10 000 мАч — хватит на 6–8 часов работы.
  • Экран 3.5 дюйма HDMI — необязательно, но если хочешь работать без ноутбука — нужен. Можно и без него, если подключаешься по Wi-Fi.
  • Корпус — любой пластиковый, с отверстиями под антенну и разъёмы. Я брал корпус от старого сетевого фильтра — подошёл идеально.

Всё это стоит около 3500–4500 рублей, если покупать по частям в России. Если заказывать из Китая — на 20–30% дешевле, но ждать 3–4 недели.

Как собрать: пошагово

  1. Установи Raspberry Pi OS Lite — без графического интерфейса. Он легче, быстрее, и тебе не нужен десктоп. Запиши образ на microSD с помощью Raspberry Pi Imager.
  2. Подключи SDR-приёмник к Pi через USB, а LF-адаптер — к SDR. Проверь, что устройство определяется: в терминале введи lsusb. Должно быть что-то вроде Realtek RTL2838UHIDIR.
  3. Установи программное обеспечение. Я рекомендую rtl_power + rtl_sdr + Python + matplotlib. Установка:
    sudo apt update
    sudo apt install rtl-sdr python3-pip python3-matplotlib
    pip3 install numpy
  4. Создай скрипт для сканирования спектра. Создай файл spectrum_scan.py:
    #!/usr/bin/env python3
    import subprocess
    import matplotlib.pyplot as plt
    import numpy as np
    
    # Настройки: диапазон 0–30 МГц, шаг 10 кГц
    freq_start = 0
    freq_end = 30e6
    step = 10e3
    sample_rate = 2.4e6
    gain = 30
    
    # Запускаем rtl_power для сканирования
    cmd = f"rtl_power -f {freq_start}:{freq_end}:{step} -s {sample_rate} -g {gain} -c 0.1 -1 /tmp/spectrum.csv"
    subprocess.run(cmd, shell=True)
    
    # Читаем данные
    data = np.loadtxt('/tmp/spectrum.csv', delimiter=',', skiprows=0, usecols=(0,1,2,3))
    freqs = data[:,0] + data[:,1] / 2
    powers = data[:,3]
    
    # Строим график
    plt.figure(figsize=(12, 6))
    plt.plot(freqs / 1e6, powers)
    plt.xlabel('Частота, МГц')
    plt.ylabel('Уровень, дБ')
    plt.title('Спектр 0–30 МГц')
    plt.grid(True)
    plt.xlim(0, 30)
    plt.ylim(-100, 0)
    plt.show()
  5. Запусти скрипт: python3 spectrum_scan.py. Первый раз он будет работать 1–2 минуты — это нормально. Pi перебирает весь диапазон с шагом 10 кГц.
  6. Подключи экран или подключишься по SSH с ноутбука/телефона. Если экрана нет — настрой SSH и используй VNC или просто открой график на другом устройстве через сеть.

Варианты SDR-приёмников: что выбрать

RTL-SDR — не единственный вариант. Вот три основных пути:

Устройство Диапазон (без адаптера) Требуется LF-адаптер? Цена (руб.) Скорость сканирования Плюсы Минусы
RTL-SDR v3 24–1766 МГц Да 2500–3000 Средняя Дешёвый, стабильный, поддержка везде Не ловит ниже 24 МГц без адаптера
Airspy HF+ Discovery 9 kHz–31 MHz Нет 12 000–15 000 Высокая Всё в одном, отличная чувствительность, без помех В 5 раз дороже, не всегда в наличии
HackRF One 1 MHz–6 GHz Нет 18 000–22 000 Высокая Самый широкий диапазон, можно передавать Тяжёлый, требует внешнего питания, сложнее в настройке

Если ты хочешь просто смотреть спектр — RTL-SDR + LF-адаптер — идеальный баланс цены и функциональности. Если ты серьёзно занимаешься радиоастрономией, измерением помех или любишь точность — Airspy HF+ Discovery. HackRF — это уже для тех, кто хочет не только смотреть, но и передавать сигналы, что выходит за рамки твоей задачи.

Что выбрать в зависимости от ситуации

  • Ты — радиолюбитель, хочешь просто смотреть, где шумит сеть или есть передачи — берёшь RTL-SDR + LF-адаптер. Собираешь за день, тестируешь в саду, в квартире — всё работает.
  • Ты — инженер, проверяешь помехи в промышленном оборудовании — Airspy HF+ Discovery. Он точнее, меньше шумит, и ты не будешь гадать, что за сигнал — реальный или артефакт.
  • Ты — студент, делаете проект на курсовой — RTL-SDR. Дешево, понятно, можно показать результаты в виде графика и объяснить, как работает.
  • Ты хочешь работать без экрана — только с ноутбуком — тогда Pi 3B+ с Wi-Fi и скриптом, который сохраняет CSV-файлы. Загружаешь их на ноутбук и строишь графики позже.

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

  1. Не используешь LF-адаптер и думаешь, что RTL-SDR ловит 0–30 МГц. Нет. Он не ловит. Ни один RTL-SDR без адаптера не ловит ниже 24 МГц. Это не баг — это физика. Ты просто не увидишь ничего ниже 24 МГц.
  2. Берёшь дешёвую антенну с Алиэкспресс — и получаешь шум. Китайские «всёвключалки» — это мусор. Они ловят не сигнал, а электромагнитный шум от твоих розеток и зарядок. Лучше сделать простой вертикальный штырь из медной проволоки — 1,5–2 м — и заземлить его на батарею отопления.
  3. Запускаешь скрипт без ожидания. rtl_power работает медленно. Если ты запустил его и через 10 секунд закрыл — ты ничего не получил. Сканирование 0–30 МГц с шагом 10 кГц занимает 1–2 минуты. Не торопись.
  4. Используешь Pi Zero. Он не справляется с обработкой данных в реальном времени. Программа будет тормозить, график не обновляется. Pi 3B+ — минимальный порог.
  5. Пытаешься запустить графический интерфейс на Pi без экрана. Если ты не подключаешь монитор, не устанавливай графическую оболочку. Используй только командную строку. Графики строй на другом устройстве.

Как лучше сделать — практические советы

  • Сделай скрипт автозапуска. Добавь в /etc/rc.local строку: python3 /home/pi/spectrum_scan.py &. Тогда при включении Pi будет автоматически сканировать спектр и показывать график.
  • Сохраняй данные. Добавь в скрипт запись в файл: plt.savefig('/home/pi/spectrum.png'). Тогда у тебя будет архив спектров — полезно для анализа помех в разные дни.
  • Используй фильтр низких частот на входе. Если ты видишь сильные помехи от Wi-Fi (2,4 ГГц) или мобильных сетей — поставь фильтр 30 МГц на вход SDR. Он не даст высоким частотам перегружать приёмник.
  • Не забывай про заземление. Если ты в квартире — заземли корпус Pi на батарею или розетку. Это снизит шум на 5–10 дБ. Это не теория — это проверено на практике.
  • Проверяй питание. Если Pi тормозит, график прерывается — проблема в питании. Используй качественный Power Bank с выходом 2 А. Дешёвые Power Bank отключаются при нагрузке — и ты теряешь данные.

Реальный пример: что я увидел на улице

Однажды я вышел с этим устройством в парк, чтобы проверить, почему у соседа пропадает Wi-Fi. Запустил сканирование. На 13,56 МГц — резкий пик. Это не радио, не AM, не коротковолновка. Это RFID-метки. В парке были ворота с системой доступа — и они постоянно передавали сигнал. Я не знал, что они работают в этом диапазоне. Без анализатора я бы никогда этого не увидел.

Ещё один раз — в квартире. На 14,2 МГц — сильный шум. Оказалось, это импульсный блок питания от нового LED-освещения. Заменил — шум исчез. Это не магия — это просто знание, что ты можешь «увидеть» помехи.

Что делать дальше

Ты собрал анализатор. Теперь:

  1. Запусти его в разных местах — в квартире, на балконе, в парке. Сравни спектры.
  2. Запиши, когда и где появляются пики. Попробуй связать их с бытовыми приборами — зарядки, светодиодные лампы, инвертеры.
  3. Создай базу данных: «пик на 18,2 МГц — в 18:00 — включили стиральную машину».
  4. Если хочешь углубиться — добавь GPS-модуль и привяжи каждое измерение к координатам. Тогда ты сможешь строить карты помех.

Это не просто игрушка. Это инструмент. Он не заменит профессиональный анализатор, но он делает то, что нужно тебе — видеть, что происходит в радиоспектре, без лишних трат и сложностей.

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

Radio-Blog.ru