# SDR 工具特有坑与边界 ## 硬件坑(RTL-SDR / HackRF) - **带宽上限不是标称值**:RTL-SDR 标称最高 3.2MHz,实际 2.4MHz 以上 USB 传输不稳定(掉采样/乱码)——常规采集用 ≤2.4M,宽带需求换 HackRF - **镜像频率(镜像混叠)**:直接采样架构下,中心频率 ± 采样率/2 之外的能量会折叠到带内——强信号源附近出现「幽灵信号」时先怀疑镜像,用滤波器/换频率验证,别当成真实信号分析 - **ppm 频率误差**:RTL-SDR 晶振偏差(典型几十 ppm),频率越高偏移越大——`rtl_test -p` 测稳定值,采集加 `-e `;窄带信号(遥控器类)对频率偏移最敏感 - **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`、Fedora `rtl-433`、macOS `rtl_433`(下划线)、Arch `rtl_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 文件保留原始副本(重放/复分析复用)