SigDigger 是一款面向 GNU/Linux 和 macOS 的自由数字信号分析仪,旨在从未知无线电信号中提取信息。它通过 SoapySDR 支持多种 SDR 设备,并支持对 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 账户中从中拉取代码的仓库名称。我推荐 AmateurDSN 插件,因为它功能多样,但您可能也想看看 APTPlugin、AntSDRPlugin 和 ZeroMQPlugin。Windows 用户: 抱歉,Windows 一团糟,我也没有 Windows 机器,目前无法以可重现的方式构建包含所有 DLL 依赖项的 Windows 版本。您可以尝试自己从源码构建,不过这种情况下我建议按照用户手册中的步骤进行操作。
经过多年与 SDR 软件打交道,我意识到 Gqrx 拥有其中最好的用户界面:极简但功能齐全。早期版本的用户界面有些不同,但在大量调试之后,我得出的结论是,最好直接模仿现有的(且成功的)软件,从而降低新功能集的学习曲线。
您可能会注意到频谱组件看起来很像 Gqrx 的。这是因为这个频谱组件实际上就是 Gqrx 的,只是做了一些微小修改(比如支持可配置的水波纹调色板,以及 OpenGL 后端)。我曾尝试在 Suscan 中编写自己的水波纹组件,结果 Xorg 占满了 CPU,所以我不再重新发明轮子了:我决定扩展现有的 Gqrx Plotter 组件,使其适配 SigDigger 的功能集。
除了界面布局和绘图组件之外,SigDigger 与 Gqrx 几乎没有什么相似之处:Gqrx 依赖 GNU Radio,而 SigDigger 是 Suscan 的 Qt5 前端。DSP 链路完全不同,Suscan 的线程模型针对一组非常特定的任务进行了优化。
SigDigger 依赖三个不同的项目:Sigutils、Suscan 和 SuWidgets。在编译 SigDigger 之前,您需要先在计算机上构建并安装这些项目。
成功构建 Sigutils 和 Suscan 之后,您现在可以继续构建 SuWidgets。SuWidgets 是包含 SigDigger 所有自定义组件的 Qt5/Qt6 图形库。要构建它,请确保系统中至少安装了 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 出色的 bug 跟踪系统。它运行得很好,也让我更容易跟踪现有问题。
期待您的反馈!:)
73 de EA1IYR