SDR–; 开源SDR软件,具有可视化可修补信号图,使用Rust进行数字信号处理,并配备web UI
摘要
sdr--是一个开源软件定义无线电应用,具有可视化可修补信号图,使用Rust构建用于数字信号处理,并配备web UI以供控制和可视化。
查看缓存全文
缓存时间: 2026/09/14 14:48
Newspicel/sdrminusminus 源码:https://github.com/Newspicel/sdrminusminus
sdr–
sdr– 是一个具有可视化信号路径的软件定义无线电应用程序。你可以在画布上连接设备、解码器、显示器和记录器,然后将常用控件固定到机架上。Rust 服务器负责处理无线电和信号处理。React 界面可以在桌面窗口或浏览器中运行。你可以在一台计算机上同时运行两者,或者将服务器放在天线旁边通过网络连接。内置的信号发生器让你无需 SDR 设备也能进行尝试。
状态
sdr– 正在积极开发中。大多数解码器已通过生成的 IQ 测试套件进行测试;只有部分已在实际接收中验证。频道目录(https://newspicel.github.io/sdrminusminus/user-guide/channels.html#channel-catalog)列出了每种模式的验证证据及其限制。实验模式可能提供数据获取或测量功能,但无法解码音频或视频。
功能
- 接收 AM、NFM、立体声及 RDS 广播 FM、SSB 和支持的数字语音模式。
- 解码航空器、船舶、业余无线电、寻呼机、传感器等无线电通信。查看完整频道列表(https://newspicel.github.io/sdrminusminus/user-guide/channels.html)。
- 查看频谱、瀑布图、解码消息、位置地图和接收图像。
- 扫描频率并保存工作区、预设和书签。
- 录制设备 IQ、信道基带或音频;通过相同解码器重放 IQ 数据。
- 使用相干接收器进行测向、天线组合、波束成形和无源雷达。
- 通过 UDP 或 TCP 导出 IQ 数据,并将解码事件转发到 Webhook、Matrix 或 MQTT。
- 通过 REST、WebSocket 或 MCP 控制运行中的接收器。
安装
从 GitHub Releases(https://github.com/Newspicel/sdrminusminus/releases)下载桌面安装程序或便携式服务器。安装说明(https://newspicel.github.io/sdrminusminus/getting-started/install.html)涵盖了各软件包、Homebrew、Nix 和容器的安装方法。 在 macOS 上,使用 Homebrew 安装桌面应用:
brew tap newspicel/tap
brew install --cask sdrminusminus
对于无头服务器,使用 brew install sdrmm。
在 Linux 上使用 Docker Compose 运行服务器:
git clone https://github.com/Newspicel/sdrminusminus.git
cd sdrminusminus
docker compose up -d
打开 http://localhost:8080/。服务器默认无身份验证;设置网络访问时请参阅配置和安全文档(https://newspicel.github.io/sdrminusminus/server/configuration.html)。
尝试接收器
- 在初始 Device 节点中,选择 Signal Generator (virtual)。已连接的 Scope 将显示生成的信号。
- 选择 + Node 并添加一个 NFM 信道。
- 将 Device 的
IQ连接到 NFM 的IQ,然后将 NFM 的audio连接到 Speaker 的audio。 - 将信道频率设置为收音机中心频率上方 300 kHz,并在 Speaker 上启动音频。你应该能听到 1 kHz 的音调。 你的第一个接收器(https://newspicel.github.io/sdrminusminus/getting-started/first-receiver.html)将引导你了解控件以及如何切换到硬件设备。标准版本包含原生 RTL-SDR、HackRF、SDRplay 和 CR-8 驱动。SDRplay 和 CR-8 还需要其供应商库。桌面安装程序和容器捆绑了支持 Airspy/AirspyHF、bladeRF、LimeSDR、PlutoSDR 和 SoapyRemote 的 SoapySDR 模块。有关要求,请参阅硬件指南(https://newspicel.github.io/sdrminusminus/hardware.html)。
截图
这些截图使用了内置信号发生器或仓库中的 IQ 测试套件。可以使用 cargo xtask screenshots 重新生成。
| 频谱与瀑布图 | 机架视图 |
|---|---|
| 频谱图(已标记调谐的信道) | 机架中的三个接收器 |
| FT8 解码 | 信号识别 |
| — | — |
| 来自录制的 20 米 FT8 时隙的解码消息 | 信号测量和候选协议 |
| 航空器位置 | 船舶位置 |
| — | — |
| ADS-B 航空器和解码器日志 | 汉堡港的 AIS 位置 |
| 慢扫描电视 | 业余电视 |
| — | — |
| Robot 36 SSTV 图片 | 625 线 ATV 测试图像 |
| 寻呼机消息 | 广播 FM |
| — | — |
| 带 Webhook 输出的 POCSAG 消息 | RDS 电台名称、文本和备用频率 |
从源码构建
你需要仓库指定的 Rust 工具链、C/C++ 编译器、CMake、Node 26、pnpm 11 和 SoapySDR 0.8 开发文件。构建指南(https://newspicel.github.io/sdrminusminus/development/building.html)列出了各平台的先决条件。
git clone https://github.com/Newspicel/sdrminusminus.git
cd sdrminusminus
pnpm --dir web install --frozen-lockfile
pnpm --dir web build
cargo run -p sdrmm
打开 http://localhost:8080/。在开发模式下,cargo xtask dev 会启动服务器和前端,并支持 http://localhost:5173/ 的热重载。添加 --watch 可在后端文件更改时自动重启。
若仅使用虚拟源和网络接收器构建:
cargo run -p sdrmm --no-default-features --features net-client
开发
| 路径 | 用途 |
|---|---|
apps/sdrmm | 无头服务器二进制文件 |
apps/desktop | Tauri 桌面外壳 |
crates/dsp, crates/modem | 信号处理原语和可复用的调制解调算法 |
crates/engine | 设备和信号处理编排 |
crates/channels | 解调器和协议解码器 |
crates/device-* | 原生、SoapySDR、网络、虚拟和阵列后端 |
crates/wire | 共享 API、WebSocket 和设置类型 |
crates/server | HTTP、WebSocket、MCP、持久化和嵌入式前端 |
web | React 应用程序 |
docs | mdBook 文档 |
| 命令 | 用途 |
|---|---|
cargo xtask check | 格式化、代码检查、类型检查、构建并检查生成代码的漂移 |
cargo xtask test | 无需硬件即可运行 Rust 和前端测试 |
cargo xtask smoke | 针对服务器运行浏览器测试 |
cargo xtask codegen | 重新生成 OpenAPI 和 TypeScript API 类型 |
cargo xtask audit | 使用 cargo-deny 检查依赖项 |
有关测试、生成文件和发布的详细信息,请参阅贡献指南和开发指南(https://newspicel.github.io/sdrminusminus/development/building.html)。
文档与 API
- 用户和开发者指南(https://newspicel.github.io/sdrminusminus/)
- Swagger UI:在运行的服务器上访问
/api/docs - OpenAPI:
/api/openapi.json或仓库中的 openapi.json
许可证
版权所有 (C) 2026 sdr– 贡献者。 sdr– 根据 GNU 通用公共许可证第 3 版或更高版本 授权。THIRD_PARTY_NOTICES.md 列出了分发的依赖项和捆绑的硬件组件。它们的许可证文本也可在应用的“关于”面板中找到。
相似文章
DSPi:一款为树莓派 Pico(RP2040)和 Pico 2(RP2350)量身打造的全功能音频 DSP 固件
DSPi 是一款开源固件,可将树莓派 Pico 变身为全功能数字音频处理器,支持房间校正、参数均衡器、矩阵混音等功能。
rustdesk/rustdesk
RustDesk 是一款用 Rust 编写的开源远程桌面解决方案,开箱即用,支持自托管,让用户完全掌控自己的数据。
Xirp
Xirp 是 Spotify 构建的智能体开发环境,已在 Product Hunt 上展示。
ds4 webui
一款专为配备至少 128GB 内存的 Apple Silicon Mac 设计的 ds4 推理服务器的极简开源 Web UI 已发布。
Signal Shot:使用 Lean 验证 Signal 协议及其 Rust 实现的项目
Signal Shot 是一项重大的形式化验证项目,旨在使用 Lean 验证 Signal 协议及其 Rust 实现。该项目结合了 Rust 到 Lean 的转换(Aeneas)、数学基础(Mathlib/CSLib)、自动化策略(grind/SymM)以及 AI 辅助形式化等方面的最新进展。这是对 Lean 能否从纯数学扩展到已部署的现实世界软件系统的一次重大考验。