SDR Software

Програмне забезпечення для роботи з SDR.

GUI програми

SDR# (Windows)

Завантаження: https://airspy.com/download/

Особливості:
- Простий інтерфейс
- Багато плагінів
- Підтримка багатьох SDR
- Безкоштовний

Налаштування:
1. Вибрати Source (RTL-SDR, Airspy, etc.)
2. Налаштувати частоту
3. Вибрати модуляцію (WFM, NFM, AM, SSB)
4. Play

GQRX (Linux/macOS)

# Встановлення
sudo apt install gqrx-sdr

# Запуск
gqrx

Особливості:
- Відкритий код
- GNU Radio backend
- Простий інтерфейс
- UDP audio output

CubicSDR (Cross-platform)

sudo apt install cubicsdr

Особливості:
- Кросплатформенний
- Waterfall з масштабуванням
- Закладки
- Запис аудіо

SDRangel (Cross-platform)

# Збірка
git clone https://github.com/f4exb/sdrangel.git
cd sdrangel
mkdir build && cd build
cmake ..
make

Особливості:
- Багато демодуляторів
- TX підтримка
- Plugins
- Сигнальний аналізатор

Командна строка

rtl_sdr / rtl_fm

# Запис сырих даних
rtl_sdr -f 100M -s 2.4M -g 40 recording.bin

# FM радіо
rtl_fm -f 100.1M -M wbfm -s 200k - | aplay -r 32k -f S16_LE

# NFM
rtl_fm -f 145.5M -M fm -s 22050 - | aplay -r 22050 -f S16_LE

# AM
rtl_fm -f 1000k -M am -s 12k - | aplay -r 12k -f S16_LE

rtl_power

# Сканування спектру
rtl_power -f 88M:108M:50k -g 40 -i 1s fm_band.csv

# Широкий скан
rtl_power -f 24M:1700M:1M -g 40 -i 60s full_scan.csv

hackrf_transfer

# Прийом
hackrf_transfer -r rx.bin -f 433920000 -s 8000000 -g 40 -l 32

# Передача
hackrf_transfer -t tx.bin -f 433920000 -s 8000000 -x 40 -a 1

GNU Radio

Встановлення

# Ubuntu
sudo apt install gnuradio

# Arch
sudo pacman -S gnuradio

# macOS
brew install gnuradio

GNU Radio Companion

gnuradio-companion

Візуальний редактор flowgraph для створення SDR обробки.

Приклад FM приймача

#!/usr/bin/env python3
from gnuradio import gr, blocks, analog, audio, filter
import osmosdr

class fm_receiver(gr.top_block):
    def __init__(self, freq=100e6):
        gr.top_block.__init__(self)

        # SDR джерело
        self.src = osmosdr.source(args="numchan=1")
        self.src.set_sample_rate(2e6)
        self.src.set_center_freq(freq)
        self.src.set_gain(40)

        # Фільтр
        self.lpf = filter.fir_filter_ccf(
            10,
            filter.firdes.low_pass(1, 2e6, 100e3, 10e3)
        )

        # FM демодулятор
        self.demod = analog.wfm_rcv(
            quad_rate=200e3,
            audio_decimation=4
        )

        # Аудіо вихід
        self.audio = audio.sink(50000)

        self.connect(self.src, self.lpf, self.demod, self.audio)

if __name__ == "__main__":
    tb = fm_receiver(100.7e6)
    tb.run()

Декодери

Multimon-ng

# Встановлення
sudo apt install multimon-ng

# POCSAG пейджери
rtl_fm -f 153350000 -s 22050 - | multimon-ng -t raw -a POCSAG512 -a POCSAG1200 -

# FLEX пейджери
rtl_fm -f 929000000 -s 22050 - | multimon-ng -t raw -a FLEX -

# DTMF
multimon-ng -t wav -a DTMF audio.wav

dump1090 (ADS-B)

# Встановлення
git clone https://github.com/antirez/dump1090.git
cd dump1090 && make

# Запуск
./dump1090 --interactive --net

# Веб-інтерфейс
./dump1090 --net --net-http-port 8080
# http://localhost:8080

rtl_433 (ISM)

# Встановлення
sudo apt install rtl-433

# Запуск
rtl_433 -f 433920000

# JSON вивід
rtl_433 -F json

# Конкретний протокол
rtl_433 -R 12

Direwolf (APRS)

# Встановлення
sudo apt install direwolf

# З RTL-SDR
rtl_fm -f 144.8M -s 22050 - | direwolf -c sdr.conf -r 22050 -

# Конфігурація sdr.conf
ADEVICE stdin null
CHANNEL 0
MODEM 1200

Спектральний аналіз

Inspectrum

# Встановлення
sudo apt install inspectrum

# Запуск
inspectrum recording.bin

# Аналіз:
# - Курсори для вимірювання
# - Пошук символів
# - Export символів

Baudline

# Запуск
baudline -stdin < recording.bin

# Аналіз:
# - FFT
# - Autocorrelation
# - Histogram

SigDigger

# Збірка з джерел
git clone https://github.com/BatchDrake/SigDigger.git
# ... dependencies and build

# Особливості:
# - Символьний аналіз
# - Вбудовані декодери
# - Suscan backend

Спеціалізоване ПЗ

SDRTrunk (P25/DMR)

# Завантажити JAR
java -jar sdrtrunk.jar

# Функції:
# - P25 Phase 1/2
# - DMR Tier II/III
# - Trunk tracking

DSD+ (Digital Speech)

Підтримка:
- P25 Phase 1
- DMR
- NXDN
- dPMR
- D-STAR

Windows only, freeware

OP25 (P25)

# Встановлення
git clone https://github.com/osmocom/op25.git
cd op25/op25/gr-op25_repeater
./install.sh

# Запуск
./rx.py --args "rtl" -f 851.0125e6

GNU AIS

# Встановлення
sudo apt install gnuais

# Запуск
rtl_fm -f 161.975M -s 48000 - | gnuais

Автоматизація

Python + pyrtlsdr

from rtlsdr import RtlSdr
import numpy as np

sdr = RtlSdr()
sdr.sample_rate = 2.4e6
sdr.center_freq = 100e6
sdr.gain = 40

samples = sdr.read_samples(256*1024)
sdr.close()

# Обробка
power = 10 * np.log10(np.mean(np.abs(samples)**2))
print(f"Power: {power:.1f} dB")

SoapySDR

import SoapySDR
import numpy as np

# Пошук пристроїв
devices = SoapySDR.Device.enumerate()

# Підключення
sdr = SoapySDR.Device(dict(driver="rtlsdr"))

# Налаштування
sdr.setSampleRate(SoapySDR.SOAPY_SDR_RX, 0, 2.4e6)
sdr.setFrequency(SoapySDR.SOAPY_SDR_RX, 0, 100e6)
sdr.setGain(SoapySDR.SOAPY_SDR_RX, 0, 40)

# Прийом
rxStream = sdr.setupStream(SoapySDR.SOAPY_SDR_RX, SoapySDR.SOAPY_SDR_CF32)
sdr.activateStream(rxStream)

buff = np.array([0]*1024, np.complex64)
sr = sdr.readStream(rxStream, [buff], len(buff))

Веб-інтерфейси

OpenWebRX

# Встановлення
sudo add-apt-repository -y ppa:jketterl/openwebrx
sudo apt install openwebrx

# Конфігурація
sudo openwebrx admin adduser admin

# http://localhost:8073

WebSDR (клієнт)

Публічні WebSDR:
- http://websdr.org
- http://sdr.hu

Доступ до віддалених SDR через браузер

Ресурси

Документація

GNU Radio: https://wiki.gnuradio.org
RTL-SDR: https://www.rtl-sdr.com
Signal ID: https://www.sigidwiki.com

Бази даних

RadioReference: https://www.radioreference.com
SigID Wiki: https://www.sigidwiki.com
ARRL Band Plan: http://www.arrl.org/band-plan

Шлях: sdr/software.md

UMTC Wiki © 2026 | Ukrainian Military Tactical Communications