BatchDrake/SigDigger
GitHub: BatchDrake/SigDigger
一款基于 Qt 的免费开源数字信号分析仪,用于从未知无线电信号中实时提取和解调信息。
Stars: 2043 | Forks: 215
# SigDigger - 免费数字信号分析仪
SigDigger 是一款适用于 GNU/Linux 和 macOS 的免费数字信号分析仪,旨在从未知的无线电信号中提取信息。它通过 SoapySDR 支持多种 SDR 设备,并允许对 FSK、PSK 和 ASK 信号进行可调节的解调,解码模拟视频,分析突发信号以及监听模拟语音频道(所有操作均可实时进行)。

## 现有用户须知
我们不再克隆 `develop` 分支。所有四个项目(SigDigger、SuWidgets、Suscan 和 Sigutils)均将最新的有效更改保留在 `master` 分支中。
## 首次使用须知
你可能想先看看[**用户手册**](https://github.com/BatchDrake/SigDigger/blob/master/doc/SigDigger_User_Manual.pdf)。
SigDigger 是一个 GUI 工具,用作 Suscan 和 Sigutils 等底层库的封装,因此你需要先构建这些依赖项。如果你想避免麻烦并立即开始使用 SigDigger,可以尝试以下方法:
* 下载最新的[**开发版构建**](https://github.com/BatchDrake/SigDigger/releases/tag/latest),这是一个独立的 AppImage 文件(仅限 GNU/Linux)
* 申请定制的 `.dmg` 文件(仅限 macOS 用户,我必须根据需求来创建这些文件,因为我目前没有任何苹果机器,而且每个版本之间都需要做一些小的调整)
* 从源代码构建并在全系统范围内安装(通常适用于 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](https://actinid.org/blsd) 脚本为你处理所有这些细节(GNU/Linux)。此脚本将在当前工作目录下的一个目录中构建 SigDigger(不会向系统范围安装任何内容)。此目录可以放置在你喜欢的任何位置,并包含一个用于启动 SigDigger 的脚本。
% wget https://actinid.org/blsd
% chmod a+x blsd
% ./blsd
* **附加提示:**你可以向 `blsd` 传递参数,以指定要下载并与 SigDigger 捆绑的插件。这些插件的名称就是我的 GitHub 账户中拉取代码的仓库名称。我推荐使用 [AmateurDSN 插件](https://github.com/BatchDrake/AmateurDSN),因为它功能非常全面,但你也可能想看看 [APTPlugin](https://github.com/BatchDrake/APTPlugin)、[AntSDRPlugin](https://github.com/BatchDrake/AntSDRPlugin) 和 [ZeroMQPlugin](https://github.com/BatchDrake/ZeroMQPlugin)。
* **Windows 用户:**抱歉,Windows 比较混乱,我也没有 Windows 机器,目前无法以可重现的方式确保 Windows 构建包含所有的 DLL 依赖项。你可以尝试自行从源代码构建,不过在这种情况下,我建议你按照[**用户手册**](https://github.com/BatchDrake/SigDigger/blob/master/doc/SigDigger_User_Manual.pdf)中的步骤进行操作。
## 等等,为什么它看起来像 Gqrx?
在处理 SDR 软件多年后,我意识到 Gqrx 拥有所有软件中最好的 UI:极简而实用。早期版本的 UI 有些不同,但在经过大量调试后,我得出结论,如果我仅仅是尝试模仿现有(且成功的)软件,减少新功能集的学习曲线,效果会更好。
你可能会注意到频谱组件看起来非常像 Gqrx。这是因为频谱组件实际上就是 Gqrx 的组件,只是做了一些~~极小的~~修改(比如支持可配置的 Waterfall 调色板,或 OpenGL 后端)。我曾尝试在 Suscan 中编写自己的 Waterfall 组件,结果导致 Xorg 占用了大量 CPU,所以我不再重复造轮子了:我决定扩展现有的 Gqrx Plotter 组件,使其符合 SigDigger 的功能集。
除了 UI 布局和 Plotter 组件之外,SigDigger 与 Gqrx 几乎没有相似之处:Gqrx 依赖于 GNU Radio,而 SigDigger 是 Suscan 的 Qt5 前端。两者的 DSP 链完全不同,并且 Suscan 的线程模型针对非常特定的任务集进行了优化。
## 我应该如何编译它?
SigDigger 依赖于三个不同的项目:**Sigutils**、**Suscan** 和 **SuWidgets**。在编译 SigDigger 之前,你需要先在计算机上构建并安装这些项目。
* Sigutils 的构建说明可以在[这里](https://github.com/BatchDrake/sigutils/blob/master/README.md)找到。
* Suscan 的构建说明可以在[这里](https://github.com/BatchDrake/suscan/blob/master/README.md)找到。
在成功构建 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 错误追踪系统。它运作良好,也能让我更轻松地追踪现有的问题。
期待你的反馈!:)
73 de EA1IYR
标签:ASK解调, Bash脚本, C++, FSK解调, GNU/Linux, GUI应用, PSK解调, Qt开发, SDR软件, Sigutils, SoapySDR, Suscan, UML, 二进制发布, 云资产清单, 信号解调, 实时信号处理, 射频信号分析, 开源工具, 数字信号分析, 数据擦除, 无线电监测, 模拟视频解码, 突发信号分析, 语音监听, 调试插件, 软件无线电, 逆向工程, 通信协议分析, 频谱分析