本节摘要:SDR 已成为现代通信系统开发的标准基础设施:5G 原型验证、卫星地面站、物联网波形研究都构建在 SDR 平台上。本节讲清 SDR 在系统开发流程中的位置——从链路预算到原型到外场测试——并演示一个最小链路预算计算,把第 2 章的硬件指标与真实系统的设计过程接通。
现代无线系统的研发节奏是"标准先行、原型紧跟":3GPP 的规范文档定义了波形与协议,但规范落地前必须回答"物理上可行吗、性能达标吗"——SDR 原型平台就是回答者。相比传统"专用样机"路线,SDR 原型有两大优势:波形改动以天计(第 1.2 节的时间维度),且同一平台可覆盖从算法仿真到外场测试的全流程。
开发流程通常分四级:纯仿真(MATLAB 或 Python 里的链路级模型,无硬件);半实物(SDR 发射真实波形、接收端回环或对发,验证同步与定时等仿真难覆盖的环节);有线闭环(两台 SDR 用电缆加衰减器对连,控制信噪比做可控实验);外场实测(真实信道,验证移动性、多径与干扰下的表现)。GNU Radio 在每一级都有对应形态:仿真用其随机源与信道模型块,闭环用两台设备互为主从。第 5 章的流图能力在这条线上逐级复用。
任何系统设计从链路预算开始——把从发射到接收的每一分增益与损耗列成表,看链路余量够不够。以 NOAA 气象卫星(8.4 节的主角)为例算一笔账:
| 项目 | 数值 | 说明 |
|---|---|---|
| 发射功率 EIRP | 约 +37 dBm | 卫星侧含天线增益 |
| 自由空间损耗 | 约 -146 dB | 137 MHz、1500 km 距离 |
| 接收天线增益 | 约 +5 dBi | 简易交叉偶极或 V 形 |
| 馈线与极化损耗 | 约 -4 dB | 同轴加失配 |
| 接收机噪声底 | 约 -104 dBm | 3.5 dB 噪声系数、35 kHz 带宽 |
| 解调门限 | 约 +10 dB 信噪比 | FM 门限效应(第 4.2 节) |
计算:信号落地方案 37 减 146 加 5 减 4 等于 -108 dBm,比噪声底高 4 dB——低于 10 dB 门限。这笔账预告了实收体验:简易天线在低仰角时图像断续,只有过顶高仰角窗口才能出完整图。链路预算的价值就在于此:实测中的每一次成功与失败,都能在表里找到对应项。改进方向也随之显形:提高天线增益(+6 dBi 的定向天线)、压窄接收带宽、降低馈线损耗,每一项都能换回实打实的分贝。
现在把第 2.2 节的五指标放回系统语境,它们的"系统含义"显现出来。频率范围决定你的系统工作在哪段频谱、天线怎么设计;采样率决定同时处理的信道数;位数(动态范围)决定系统在强干扰下的弱信号能力——城市里部署的物联网网关对此最敏感;噪声系数直接进入链路预算表;频率稳定度决定同步方案:正负 100 ppm 的晶振收窄带信号必须闭环校频(第 2.2 节的校准),1 ppm 的温补晶振则可开环工作。设备选型从"参数比较"升级为"系统约束求解"。
把流程走一遍的最小案例:两台设备(或一台 PlutoSDR 自收自发)建立 433 MHz 的 FSK 遥测链,传送温度数据。发射侧流图:Message Source(模拟温度读数)到字节转符号,到 FSK 调制(用 Frequency Mod 块,调制灵敏度按频偏 5 kHz 设置),经 RRC 成形后发射。接收侧即第 5 章流图的窄带版:限带、鉴频(第 4.2 节公式)、符号定时恢复(Gardner)、帧同步(搜索已知前导码)、CRC 校验。
这个案例会暴露仿真永远教不了的三课:发射与接收的时钟差要求帧里留保护间隔;AGC 响应速度影响帧头捕获概率;对方设备温漂会让中心频率慢移,接收侧需要留出跟踪带宽。收尾时把三个问题记进实验笔记——它们就是链路预算表里"余量"二字的物理含义。
链路预算不该是手算一次的表格,而应是可改参数复算的脚本——系统设计迭代的本质就是反复调这张表:
def link_budget(freq_hz, dist_km, eirp_dbm, g_rx_dbi, loss_other_db, nf_db, bandwidth_hz, snr_req_db): FSPL = 20*np.log10(dist_km) + 20*np.log10(freq_hz/1e6) + 92.45 rx_power = eirp_dbm - FSPL + g_rx_dbi - loss_other_db noise = -174 + 10*np.log10(bandwidth_hz) + nf_db margin = rx_power - noise - snr_req_db print(f"自由空间损耗 {FSPL:.1f} dB,落地功率 {rx_power:.1f} dBm," f"链路余量 {margin:.1f} dB") return margin # NOAA 卫星:137 MHz、1500 km、最大仰角工况 link_budget(137e6, 1500, 37, 5, 4, 3.5, 35e3, 10) # 余量约 +1.4 dB link_budget(137e6, 3000, 37, 5, 4, 3.5, 35e3, 10) # 低仰角:约 -4.6 dB
两行调用直接解释了第 8.4 节的现象:最大仰角余量为正(能收),低仰角余量为负(断续)。系统设计里"现象可预算"的踏实感,就是这个脚本的价值。
有三个替代:同一台 PlutoSDR 自收自发(全双工设备可同时开收发链);单机加电缆回环(把发射输出经衰减器接回自己的接收口,验证整条数字链路);纯软件仿真(GNU Radio 的信道模型块加随机源)。三者的真实度依次递减,但都能把同步、定时、帧结构验证到位。
余量为负只说明"当前参数不可行",改进方向从表里找:发射端加功率或增益(政策允许内)、换更高增益天线、压窄接收带宽、换更低噪声系数的前端。每项措施的收益都能在表里算出来再动手——这就是预算表当"决策工具"用的方式。
部分环节用。完整的 5G 物理层过于庞大,常见形态是"商用参考软件加 SDR 射频前端",或用开源项目(如 srsRAN)在通用处理器实现协议栈、SDR 只承担射频收发。GNU Radio 更多出现在物理层算法研究与教学原型上——分工是"协议栈归专用框架,波形实验归 GNU Radio"。
系统开发的视角建立后,下一节转向另一个广阔天地:业余无线电社区与 citizen science。