
Цифровой анализатор сигналов на основе Qt, использующий ядро Suscan и DSP-библиотеку Sigutils.
SigDigger — это бесплатный анализатор цифровых сигналов для GNU/Linux и macOS, предназначенный для извлечения информации из неизвестных радиосигналов. Он поддерживает различные SDR-устройства через SoapySDR, обеспечивает регулируемую демодуляцию сигналов FSK, PSK и ASK, декодирование аналогового видео, анализ импульсных сигналов и прослушивание аналоговых голосовых каналов (все в реальном времени).

Мы больше не используем ветку develop. Все четыре проекта (SigDigger, SuWidgets, Suscan и Sigutils) хранят последние рабочие изменения в ветке master.
Возможно, вам стоит начать с Руководства пользователя.
SigDigger — это GUI-инструмент, который является обёрткой над низкоуровневыми библиотеками, такими как Suscan и Sigutils, поэтому сначала вам потребуется собрать эти зависимости. Если вы хотите избежать проблем и начать использовать SigDigger прямо сейчас, попробуйте любой из следующих способов:
Загрузите последнюю сборочную версию для разработки в виде автономного файла AppImage (только GNU/Linux)
Запросите собственный .dmg (только для пользователей macOS; мне приходится собирать их по запросу, поскольку сейчас у меня нет ни одной машины Apple, и от версии к версии приходится вносить небольшие правки)
Соберите из исходников и установите в систему (в целом для Unix):
% git clone --recursive https://github.com/BatchDrake/sigutils
% cd sigutils && mkdir -p build && cd build && cmake .. && make && sudo make install && cd ../..
% git clone --recursive https://github.com/BatchDrake/suscan
% cd suscan && mkdir -p build && cd build && cmake .. && make && sudo make install && cd ../..
% git clone https://github.com/BatchDrake/SuWidgets
% cd SuWidgets && qmake6 SuWidgetsLib.pro && make && sudo make install && cd ..
% git clone https://github.com/BatchDrake/SigDigger
% cd SigDigger && qmake6 SigDigger.pro && make && sudo make install && cd ..
Позвольте сценарию blsd взять на себя все эти детали (GNU/Linux). Этот сценарий соберёт SigDigger в каталоге внутри текущего рабочего каталога (ничего не устанавливается в систему). Этот каталог можно разместить где угодно, и он содержит сценарий, запускающий SigDigger.
% wget https://actinid.org/blsd
% chmod a+x blsd
% ./blsd
blsd, чтобы указать, какие плагины нужно загрузить и включить в поставку SigDigger. Имена плагинов — это просто названия репозиториев в моей учётной записи GitHub, из которых берётся код. Я рекомендую из-за его универсальности, но вы также можете посмотреть на , и .После многих лет работы с SDR-программным обеспечением я понял, что у Gqrx лучший интерфейс из всех: минималистичный, но при этом функциональный. Более ранние версии интерфейса выглядели несколько иначе, но после долгой отладки я пришёл к выводу, что будет лучше просто попытаться подражать существующему (и успешному) программному обеспечению, снижая порог входа для нового набора функций.
Вы можете заметить, что виджет спектра очень похож на виджет Gqrx. Это потому, что виджет спектра на самом деле является виджетом Gqrx с минимальными доработками (например, поддержка настраиваемых палитр Waterfall или бэкенд OpenGL). Я пытался написать собственный виджет Waterfall в Suscan, но Xorg в итоге пожирал весь CPU, так что я больше не изобретаю велосипед: я решил расширить существующий виджет Plotter от Gqrx, чтобы он соответствовал набору функций SigDigger.
Помимо компоновки интерфейса и виджета Plotter, у SigDigger мало общего с Gqrx: Gqrx зависит от GNU Radio, тогда как SigDigger — это Qt5-фронтенд для Suscan. Цепочки DSP совершенно разные, а потоковая модель Suscan оптимизирована под очень специфический набор задач.
SigDigger зависит от трёх разных проектов: Sigutils, Suscan и SuWidgets. Перед компиляцией SigDigger вам необходимо собрать и установить эти проекты на своём компьютере.
После успешной сборки Sigutils и Suscan можно переходить к сборке SuWidgets. SuWidgets — это графическая библиотека Qt5/Qt6, содержащая все пользовательские виджеты SigDigger. Для её сборки убедитесь, что в системе установлен как минимум фреймворк разработки Qt5 (>= 5.9), а затем выполните:
% git clone https://github.com/BatchDrake/SuWidgets
% cd SuWidgets
% qmake SuWidgetsLib.pro
% make
% sudo make install
Если описанные выше шаги выполнены успешно, вполне вероятно, что сборка SigDigger тоже пройдёт успешно. Чтобы собрать SigDigger, выполните:
% git clone https://github.com/BatchDrake/SigDigger
% cd SigDigger
% qmake SigDigger.pro
% make
% sudo make install
И, чтобы запустить SigDigger, просто введите:
% SigDigger
Если команда выше не сработала, возможно, SigDigger установлен в другом месте, например в /opt/SigDigger. В этом случае попробуйте запустить:
% /opt/SigDigger/bin/SigDigger
Готовые сборки можно найти на вкладке «Releases» в этом репозитории. На данный момент эти сборки предназначены только для x64 Linux (желательно для дистрибутивов, подобных Debian) и прошли минимальное тестирование. Хотя у меня есть планы портировать Sigutils, Suscan и SigDigger на другие платформы, я хотел бы сначала получить стабильную кодовую базу, прежде чем двигаться дальше.
Очевидно, что ваши отзывы облегчат мою работу. Если у вас возникнут проблемы при сборке или использовании SigDigger, смело пользуйтесь отличной системой отслеживания ошибок GitHub. Она работает довольно хорошо, и мне так гораздо легче отслеживать существующие проблемы.
С нетерпением жду ваших отзывов! :)
73 de EA1IYR
Пользователям Windows: простите, Windows — это полный бардак, у меня тоже нет машин с Windows, и сейчас невозможно обеспечить воспроизводимую сборку Windows со всеми зависимостями DLL. Вы можете попробовать собрать его из исходников самостоятельно, хотя в этом случае я рекомендую следовать шагам из Руководства пользователя