schmijul/sdr-signal-analyzer

GitHub: schmijul/sdr-signal-analyzer

一个确定性 SDR 分析后端,专注于可复现的信号检测与 RF 特征提取,而非实时解调。

Stars: 0 | Forks: 0

# SDR 信号分析仪 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d94f230982224602.svg)](https://github.com/schmijul/sdr-signal-analyzer/actions/workflows/ci.yml) [![Docs](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/810dc7ceee224603.svg)](https://github.com/schmijul/sdr-signal-analyzer/actions/workflows/docs.yml) [![Python](https://img.shields.io/badge/python-3.10--3.12-blue)](https://github.com/schmijul/sdr-signal-analyzer/blob/main/pyproject.toml) 确定性 SDR 分析后端,适用于可复现的信号检查。 这不是解调器,也不是完整的 SDR 栈。 它是一个适用于可复现工作流的确定性分析后端。 ## 你得到什么 - 可复现的信号分析 - 可脚本化的 CLI - 可嵌入的核心 - 可测试的流水线 ## 你得不到什么 - 实时 DSP 栈 - 解调 - 生产级 SDR 控制层 ## 为何存在这个项目 该项目适用于那些可复现性比实时调节便利性更重要的工作流。CLI、GUI 和 Python 绑定都位于同一分析流水线,因此测试、自动化和手动检查使用相同的后端行为。 ## 为何选择它而不是现有工具? | 工具 | 重点 | 限制 | | --- | --- | --- | | Inspectrum | GUI 分析 | 无自动化,无后端 | | GQRX | 实时 SDR | 非确定性,不可测试 | | 本项目 | 后端 + 回放 | 不是完整的 SDR 栈 | ## 3 分钟示例 ``` sdr-analyzer-cli \ --source replay \ --input tests/fixtures/tone_cf32.sigmf-data \ --meta tests/fixtures/tone_cf32.sigmf-meta \ --frames 4 ``` 预期结果: - 在 `100.15 MHz` 附近确定性检测 - 相同的回放装置,在每次运行中产生相同的信号指标 请参阅 [docs/proof.md](docs/proof.md) 获取仓库支持的证据路径。 想先使用 GUI 而非 CLI? ``` sdr-signal-analyzer-gui ``` GUI 默认选择模拟器配置,因此首次运行无需硬件设置。 更喜欢非 GUI 的一行命令? ``` sdr-analyzer-cli --source replay --input tests/fixtures/tone_cf32.sigmf-data --meta tests/fixtures/tone_cf32.sigmf-meta --frames 4 ``` ## 示例输出 ![Replay-backed FFT example](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/960fc00470224605.png) ## 功能特性 - 已提交 IQ 装置的确定性回放 - 在 CLI、GUI 和 Python 绑定之间共享分析流水线 - 通过 `scikit-build-core` 打包的嵌入式 C++ 核心 - 用于结构化测量的 JSONL 导出 - 模拟器优先的工作流,适用于开发和 CI - 可选实时源支持 `rtl_tcp`、UHD 和 SoapySDR ## 架构 - 数据源将 IQ 帧馈入单一分析流水线 - 会话层负责编排、诊断和导出 - CLI、GUI 和 Python API 使用相同的后端结果 更多细节: - [架构](docs/architecture.md) - [回放与录制](docs/replay-and-recording.md) - [源指南](docs/sources/index.md) ## 状态与验证 ### 硬件状态 - 回放:已在仓库中完全验证 - `rtl_tcp`:CI 中通过模拟服务器验证代码路径 - UHD / Soapy:尚未在附加硬件上验证 请参阅 [docs/proof.md](docs/proof.md) 获取具体证据,以及 [docs/hardware_validation_status.md](docs/hardware_validation_status.md) 获取后端状态详情。 当前验证信号: - 回放装置在 [`tests/fixtures`](tests/fixtures) 中已提交 - 原生测试和 Python 冒烟测试在 CI 中运行 - 文档以严格模式构建 - 附加设备证据仍在等待中,并已明确记录 ## 路线图 - [ ] 首个已提交的附加设备验证报告 - [ ] UHD 验证 - [ ] 多设备支持 - [ ] 性能基准测试 ## 安装 目前从源码安装: ``` sudo apt install -y cmake g++ libegl1 libxcb-cursor0 libxkbcommon-x11-0 ninja-build python3-dev python -m pip install ".[gui]" ``` 软件包元数据和发布自动化已针对 `sdr-signal-analyzer` 包名在 [`pyproject.toml`](pyproject.toml) 中配置。 ## 文档 - [文档主页](https://schmijul.github.io/sdr-signal-analyzer/) - [证明页面](docs/proof.md) - [测试与验证](docs/testing.md) - [诊断](docs/diagnostics.md) - [发布准备](docs/release.md)
标签:IQ数据, Python后端, SDR, 二进制发布, 信号分析, 信号回放, 信号处理, 信号检测, 可重现分析, 射频特征提取, 嵌入式核心, 开源工具, 无线电探测, 时序数据库, 测试流水线, 瀑布图, 确定性分析, 自动化分析, 跨站脚本, 软件定义无线电, 逆向工具, 频谱分析, 频谱监测