分享一个我最近在弄的免费软件 SweepSA 。它主要是给 PlutoSDR 做的,顺带支持 HackRF One 。
视频
关于扫频速度的原理:
AD936x 芯片自带一个叫 fastlock 的功能,能把 VCO profile 配置存下来,切换时几乎瞬间完成,不用重新上锁。芯片只有 8 个槽位。所以 SweepSA 用了“滑动窗口”的机制:在当前频段扫的时候,提前把后面几个频段的 VCO 配置填进空闲槽位里。这样就实现很快的扫频。
跳频、采集、FFT 在 ZYNQ 的 PS 运行,传到计算机上只有一个迹线,所以 6G VBW 能从 USB2.0 虚拟网卡出来。
实测速度
在 AntSDR E310 和 LibreSDR 上:
- 全频段 (70 MHz – 6 GHz): 大概 500–800 ms
- 几百 MHz 的跨度: 大概 10–60 ms
作为对比,HackRF One 在 SweepSA 里扫全频段大概要 730 ms ,两者在全频段上速度差不多。但在 AD936x 板子上,Fastlock 带来的优势是每段 40–56 MHz 带宽的无缝快速扫描。
主要功能
- 4 条迹线:CR 、max hold 、min hold 、avg
- 8 个 mark 点: 普通/差值标记、峰值搜索、跳到下一个峰值、标记到中心频率/参考电平、噪声标记
- 检波器: 峰值、负峰值、采样、RMS
- RBW: 根据实际 FFT 点数和窗函数算出来的,显示的是真实值
- 瀑布图
- zero span
- 导出: 迹线 CSV 、截图 PNG 、仪器状态 JSON
缺陷
- sdr 没办法测量绝对功率,所以电平单位是 dBFS 。没加载幅度校正文件之前,界面上会一直亮着“UNCAL”标志。
- 有谐波,杂散和拼接痕迹
支持的硬件和平台
- AD936x 板子: 跑 Pluto 风格固件,带 Zynq ARM (已测 AntSDR E310 、LibreSDR )
- HackRF One
- 桌面端:Windows x86_64 、Linux x86_64 、macOS arm64