3.8 KiB
3.8 KiB
SDR 工具特有坑与边界
硬件坑(RTL-SDR / HackRF)
- 带宽上限不是标称值:RTL-SDR 标称最高 3.2MHz,实际 2.4MHz 以上 USB 传输不稳定(掉采样/乱码)——常规采集用 ≤2.4M,宽带需求换 HackRF
- 镜像频率(镜像混叠):直接采样架构下,中心频率 ± 采样率/2 之外的能量会折叠到带内——强信号源附近出现「幽灵信号」时先怀疑镜像,用滤波器/换频率验证,别当成真实信号分析
- ppm 频率误差:RTL-SDR 晶振偏差(典型几十 ppm),频率越高偏移越大——
rtl_test -p测稳定值,采集加-e <ppm>;窄带信号(遥控器类)对频率偏移最敏感 - HackRF 半双工:HackRF One 同一时刻只能收或发(半双工)——「一边录一边回放」做不到,先录后放;全双工需要更高级硬件
- 增益不当:
-g过高削波(IQ 值顶到 255 饱和,解调全错)、过低淹没噪声——看rtl_sdr输出统计或瀑布图调节;自动增益-g 0是稳定起点 - 采样率不匹配(重放):回放参数(采样率/增益)与采集时不一致,目标收不到或解调错——重放前核对采集命令参数,最好用同一设备同一参数
信号分析坑
- 调制误判:FSK 与 PSK 频谱相似(都像平坦带)——看时域(inspectrum)区分:FSK 有明确符号跳变、PSK 相位突变;先听/看瀑布再定解调方案
- 编码反转/位序:位流全反(NRZ-I 类)或字节序反——URH 里试反相与编码组合;转字节前确认 MSB/LSB
- 载波偏移:信号不在采集中心频率正中(偏出滤波器通带)解调质量差——采集前用 Gqrx 精调中心频率,或在解调链加频偏校正(GNU Radio
freq_xlating_fir_filter思路) - 帧截断:触发时机晚/带宽不够导致帧不全——延长采集窗口、按同步字触发(GNU Radio 触发块)、多采集几段取完整帧
- URH 对复杂调制支持弱:DSSS/OFDM/跳频解不出稳定位流——这类信号用 GNU Radio 搭完整链(解扩/均衡),URH 只做位流后处理
- 干扰/谐波:相邻频段强发射源(WiFi、FM 广播)谐波/互调落入目标频段——换频点或加带通滤波器(硬件)排除
工具坑(按工具)
- gqrx 包名(Debian):包名是
gqrx-sdr不是gqrx(apt install gqrx找不到包);Arch/Fedora 才是gqrx - rtl_433 包名平台差异:Debian
rtl-433、Fedorartl-433、macOSrtl_433(下划线)、Archrtl_433——跨平台脚本里注意包名不统一 - URH 版本节奏:
pip install urh装的是 PyPI 最新版,更新节奏慢于主仓库——新硬件/新调制支持查 URH 仓库 release;GUI 与命令行接口以安装版本帮助为准 - inspectrum 只读分析:inspectrum 不能解调/导出位流——它是可视化确认工具,位流工作仍走 URH/GNU Radio
- rtl_power CSV 解析:输出按
date,time,Hz_start,Hz_step,samples,power1,power2,...排列——写脚本解析时按行尾功率列处理,别错位
授权红线(工具无关)
- 采集接收侧一般无限制(法律上依地区规定);发射/重放/干扰属于主动交互——仅限授权目标与频段,先确认当地无线电法规
- 重放验证做前先记录目标行为基线(授权范围内),结果只用于分析结论,不扩散
- 滚动码/加密设备重放无效属正常(算法层面问题)——转 re-crypto-id / re-crypto-decrypt 分析算法,别反复盲放
使用注意
- 全部在沙箱/授权环境内执行(re-analyze/platform-tips 最高原则);发射类操作默认沙箱物理隔离
- 采集参数(频率/采样率/增益/时间)完整记录;IQ 文件保留原始副本(重放/复分析复用)