2、物理层基础:扩频因子、带宽、编码率、符号速率与数据速率的关系
好,咱们进入正题。物理层这东西,说白了就是 LoRa 通信的「地基」。很多朋友做网络规划时,上来就盯着终端节点数和网关数量,结果部署完发现覆盖不行,或者容量根本不够用。为什么?因为没搞懂物理层这几个参数是怎么互相拉扯的。
我个人习惯,在讲任何网络规划之前,先让团队把物理层吃透。你想想看,数据速率怎么来的?扩频因子、带宽、编码率,它们之间到底是什么关系?今天咱们就把这层窗户纸捅破。
2.1 扩频因子(SF)—— 距离与速率的博弈
扩频因子,英文叫 Spreading Factor,简称 SF。它决定了每个符号能携带多少比特信息。
简单说,SF 值越高,一个符号携带的比特数就越多。但代价是什么?符号的传输时间变长了。嗯,这里要注意,时间变长意味着空中占用时间增加,也就是 ToA(Time on Air)变长。
我在项目中遇到过,有人为了追求覆盖距离,把所有节点都设成 SF12。结果呢?一个网关下挂 200 个节点,数据根本收不过来,全部碰撞丢包。这就是典型的「只考虑覆盖,不考虑容量」。
LoRa 常用的扩频因子范围是 SF7 到 SF12。每个 SF 值对应不同的灵敏度:
| 扩频因子 (SF) | 每个符号的码片数 (Chips/Symbol) | 灵敏度增益 (相对于 SF7) |
|---|---|---|
| SF7 | 128 | 0 dB (基准) |
| SF8 | 256 | 约 +2.5 dB |
| SF9 | 512 | 约 +5.0 dB |
| SF10 | 1024 | 约 +7.5 dB |
| SF11 | 2048 | 约 +10.0 dB |
| SF12 | 4096 | 约 +12.5 dB |
你看,SF 每增加 1,灵敏度大约提升 2.5 dB。这意味着什么?同样的发射功率,SF12 比 SF7 能多传出去一倍多的距离。但代价是,SF12 的空中时间是 SF7 的 2^5 = 32 倍!
核心结论:SF 越高,覆盖越远,但容量越低。做网络规划时,必须根据实际距离动态调整 SF,而不是一刀切。
2.2 带宽(BW)—— 速度与噪声的平衡
带宽,Bandwidth,单位是 kHz。LoRa 常用的带宽有 125 kHz、250 kHz 和 500 kHz。
带宽越大,符号速率越快,数据速率自然就上去了。但问题来了,带宽越大,底噪也越高。你想想看,接收机接收的噪声功率和带宽是成正比的。带宽翻倍,噪声功率也翻倍,信噪比就下降了。
我曾经调试过一个项目,在郊区部署,环境噪声很低。我建议用 125 kHz 带宽,配合 SF10,覆盖效果很好。但客户非要改成 500 kHz,觉得速率快。结果呢?灵敏度掉了 6 dB,边缘节点全部掉线。这就是典型的「捡了芝麻丢了西瓜」。
带宽与数据速率的关系,可以用这个公式来理解:
符号速率 (Rs) = 带宽 (BW) / 2^SF
注意,这里的符号速率是物理层原始的符号速率,不是最终的数据速率。但它是计算数据速率的基础。
我的建议:在大多数场景下,优先使用 125 kHz 带宽。只有在需要高吞吐量且覆盖距离要求不高时,才考虑 250 kHz 或 500 kHz。
2.3 编码率(CR)—— 纠错能力与有效载荷的取舍
编码率,Code Rate,表示有效数据在传输数据中的占比。LoRa 支持 4/5、4/6、4/7、4/8 四种编码率。
编码率 4/5 意味着每 5 个传输比特中,有 4 个是有效数据,1 个是纠错码。编码率 4/8 则是每 8 个比特中只有 4 个有效数据,纠错码占了一半。
编码率越低,纠错能力越强,但有效数据速率也越低。怎么选?
- 信号质量好(近端节点):用 4/5,速率高,浪费少。
- 信号质量差(边缘节点、干扰大):用 4/8,宁可慢一点,也要保证数据能正确解出来。
我记得有一次做工厂环境测试,现场电机干扰特别大。用默认的 4/5 编码率,丢包率高达 30%。后来改成 4/7,丢包率降到 2% 以下。虽然速率降了,但至少数据能上来,对吧?
注意:编码率不是越低越好。编码率 4/8 虽然纠错强,但有效数据速率只有 4/5 的一半。如果信号本身很好,用低编码率纯粹是浪费空中时间。
2.4 符号速率与数据速率 —— 最终的计算公式
好,前面铺垫了这么多,现在咱们把公式摆出来。数据速率 DR 的计算公式是:
DR = SF * (BW / 2^SF) * CR
其中:
- SF:扩频因子,单位是 bits/symbol
- BW / 2^SF:符号速率,单位是 symbols/s
- CR:编码率,4/5 = 0.8,4/6 ≈ 0.667,4/7 ≈ 0.571,4/8 = 0.5
举个例子,SF7、BW 125 kHz、CR 4/5:
DR = 7 * (125000 / 128) * 0.8
= 7 * 976.5625 * 0.8
≈ 5468.75 bps
≈ 5.47 kbps
再算一个 SF12、BW 125 kHz、CR 4/5:
DR = 12 * (125000 / 4096) * 0.8
= 12 * 30.5176 * 0.8
≈ 293.0 bps
看到了吗?SF7 到 SF12,数据速率差了将近 19 倍。这就是为什么我说,SF 的选择直接决定了你的网络容量上限。
关键点:数据速率越低,单个数据包的空中时间越长,单位时间内能处理的数据包就越少。网络容量 = 数据速率 × 可用时间 / 数据包大小。这个逻辑链一定要理清楚。
2.5 各参数组合下的数据速率速查表
为了方便大家做规划,我整理了一个常用组合的数据速率表。这个表我项目里经常用,建议收藏:
| 扩频因子 (SF) | 带宽 (BW) | 编码率 (CR) | 数据速率 (bps) | 典型应用场景 |
|---|---|---|---|---|
| SF7 | 125 kHz | 4/5 | 5,469 | 近端节点,高吞吐量 |
| SF8 | 125 kHz | 4/5 | 3,125 | 中等距离,平衡型 |
| SF9 | 125 kHz | 4/5 | 1,758 | 较远距离,低速率 |
| SF10 | 125 kHz | 4/5 | 977 | 远距离,传感器数据 |
| SF11 | 125 kHz | 4/5 | 537 | 超远距离,小数据包 |
| SF12 | 125 kHz | 4/5 | 293 | 极限覆盖,紧急数据 |
| SF7 | 500 kHz | 4/5 | 21,875 | 高速率,近距离 |
避坑指南:我曾经见过有人用 SF7 + 500 kHz 去覆盖 5 公里距离,结果网关根本收不到。为什么?因为 500 kHz 带宽下,SF7 的灵敏度只有 -123 dBm 左右,而 5 公里路径损耗早就超过 130 dB 了。物理层参数的选择,一定要结合链路预算来做,不能拍脑袋。
2.6 小结 —— 物理层参数的选择逻辑
好了,咱们把今天的内容串一下。扩频因子、带宽、编码率,这三个参数共同决定了 LoRa 的物理层性能。它们之间的关系,可以用一句话概括:
「扩频因子决定灵敏度,带宽决定符号速率,编码率决定纠错能力,三者共同决定数据速率。」
做网络规划时,我的建议是:
- 先定覆盖目标:根据最远节点的距离,确定最低可用的 SF 值。
- 再选带宽:优先 125 kHz,除非有明确的速率需求。
- 最后调编码率:根据现场干扰情况,在速率和可靠性之间做取舍。
下一章,咱们会讲 LoRaWAN 的 MAC 层机制,包括信道接入、确认重传、占空比限制等。这些内容直接关系到网络容量怎么算。但前提是,你得先把物理层这几个参数搞明白。否则,后面的容量计算全是空中楼阁。
嗯,今天就到这儿。有什么问题,咱们课后交流。