本节摘要:LoRa 物理层的核心是 CSS 扩频——把窄带符号按扩频因子展宽,接收端用相关运算把能量收回来,换来约 2.5dB/档的灵敏度。本节讲清楚"扩频 = 用带宽换余量"这笔账,并给出 SF、带宽、灵敏度三者的换算表。位置:1.3 算了链路总账,本节把物理层最大的那笔收入(处理增益)拆开看。
CSS(Chirp Spread Spectrum)把每一个符号编码成一个线性调频脉冲(chirp),脉冲的起始频率在带宽内连续扫动。扩频因子 SF 表示"一个符号用多少比特表达",SF7 意味着 2^7=128 种 chirp 形态,SF12 则是 2^12=4096 种。
接收端做的是相关运算:把收到的信号与本地生成的 chirp 序列逐一对齐,找到峰值。噪声是随机的,相关运算只对"与本地序列匹配的信号"产生强峰——这就是处理增益的来源:信号能量被相干叠加,噪声没有。处理增益近似为:
处理增益 ≈ 10 × log10(2^SF) dB
SF12 约 36dB 的处理增益(理论),对比窄带传输,这是 LoRa 能在 -137dBm 灵敏度下工作的根本原因。
| 扩频因子 | 符号速率(125kHz 下) | 灵敏度(约) | 相比 SF7 |
|---|---|---|---|
| SF7 | 约 9769 符号/秒 | -123dBm | 基准 |
| SF8 | 约 5469 符号/秒 | -126dBm | +3dB |
| SF9 | 约 2929 符号/秒 | -129dBm | +6dB |
| SF10 | 约 1465 符号/秒 | -132dBm | +9dB |
| SF11 | 约 732 符号/秒 | -134.5dBm | +11.5dB |
| SF12 | 约 366 符号/秒 | -137dBm | +14dB |
带宽的影响:带宽翻倍,符号时间减半、灵敏度约降 3dB。所以 500kHz 带宽下 SF12 的灵敏度(约 -134dBm)反而不如 125kHz 带宽下的 SF12(-137dBm)——这也是为什么默认配置普遍用 125kHz:用带宽换灵敏度,在低速传感场景里更划算。
含义一:SF 是覆盖半径的调节器。1.3 的算例里,SF7 到 SF12 灵敏度差 14dB,对应覆盖半径接近翻倍。含义二:SF 是空中时间的放大镜。符号时间随 2^SF 增长,SF12 的报文空中时间约为 SF7 的 16 倍——省电与覆盖是一对反方向的旋钮。含义三:SF 之间是"伪正交"的。不同 SF 的信号可以在同一频段共存而互不干扰(正交性不完美但有实用价值),这是网关能"一收多路"的物理基础(第 7 章展开)。
扩频的另一个被低估的价值是伪正交:不同 SF 的 chirp 序列互相关性低,可以共用同一频段而互不干扰。网关的并发解调能力正是建立在这一点上(第 7 章展开)。
| SF 组合 | 可同时解调 | 工程含义 |
|---|---|---|
| 同一 SF | 是(不同通道) | 8 通道中多个同 SF 设备可并发 |
| 不同 SF | 是(同一通道) | 一个通道可同时收 SF7 与 SF12 报文 |
| 同频同 SF 同时发 | 否(碰撞) | 仍靠随机退避与信道跳频避免 |
伪正交不是绝对正交:不同 SF 之间存在一定互干扰(尤其功率差超过 20dB 时,"近端强信号压制远端弱信号"的远近效应依然存在)。工程上因此要求网关做功率控制与 SF 分配——这正是 ADR 的另一个作用:让弱信号设备用低速率(高灵敏度)慢慢爬,强信号设备用高速率快速过,避免互相压制。
把灵敏度当成覆盖的全部,是常见误区。覆盖半径还受三件事约束:发射功率(法规上限内)、天线增益与高度(天线每升高一倍,视距与第一菲涅尔区都变好)、环境衰落(树冠、建筑、雨雪)。三件套里,天线高度与位置往往比多 2dB 灵敏度更立竿见影——架高 10 米与架高 3 米,覆盖半径可以差两倍以上。部署规划时,先调天线再调参数,是投入产出比最高的顺序。
扩频参数不只是物理层的事:ADR 改变 SF 时,MAC 层的空中时间、占空比消耗、电池电流同步变化(2.2 展开)。因此"把 SF 从 12 调到 7"不是一个物理层动作,而是一个横跨三层的联动动作。实现协议栈时,SF 变更必须触发:速率表切换、接收窗口符号数更新、占空比记账重新计算——漏掉任何一环,都会出现"速率变了但时间账没跟着变"的 bug。
要点回顾:CSS 用相关运算把信号能量收拢,换取灵敏度;SF 每升一档约得 2.5–3dB 灵敏度、速率减半;带宽是另一个旋钮,翻倍降 3dB。下一节把 SF 与带宽合成一张表,算"一条消息到底要飞多久"。
扩频这笔账的三条主线:处理增益换灵敏度、符号时间换速率、伪正交换并发。记住一个关键数字——SF 每升一档约 +2.5~3dB 灵敏度、速率减半、空中时间翻倍,三者永远联动。延伸思考:既然扩频增益这么大,为什么不把 SF 拉到最高档一劳永逸?答案在 2.2 的空中时间账里:SF12 的报文时间约为 SF7 的 16 倍,电池与信道双双扛不住。所以工程常态是"默认中高速率 + ADR 按需降速",而不是"默认最低速率"。
扩频因子不是自由选择,它被区域参数表约束:EU868 的 DR0–DR6 规定了 SF12→SF7 的固定档位,US915 的跳频模式对 SF 与带宽的组合有专门限制。实现协议栈时,SF 的切换必须通过"区域参数表查询"完成,不能直接写死"SF7=默认"——同一份代码要能按区域自动选择合法组合。这也解释了为什么 ADR 的档位映射表(6.1)与区域参数表(6.2)是一体的:它们共享同一份"DR → (SF, 带宽, 速率)"的字典。