3、扩频因子(SF)详解:SF7-SF12的含义、SF与数据速率的关系、SF对接收灵敏度的影响

扩频因子,英文叫 Spreading Factor,简称 SF。这是 LoRa 技术里最核心的参数之一。我经常跟刚入行的同事说,搞懂 SF,你就掌握了 LoRa 调优的 50%。

说白了,SF 就是每个数据位用多少个 chirp(啁啾信号)来编码。SF 值越高,一个 bit 占用的时间越长。LoRa 标准定义了 SF7 到 SF12 这六个档位。嗯,咱们一个一个来看。

3.1 SF7 到 SF12 到底代表什么?

先看个表格,直观感受一下:

扩频因子 (SF) 每个符号承载的比特数 扩频增益 (dB) 典型应用场景
SF7 7 ~7 dB 近距离、高速率
SF8 8 ~8 dB 中等距离
SF9 9 ~9 dB 中等偏远距离
SF10 10 ~10 dB 较远距离
SF11 11 ~11 dB 远距离
SF12 12 ~12 dB 极限距离、穿墙

你看,SF 每增加 1,扩频增益就增加约 1 dB。这个增益是怎么来的?其实就是通过时间换信噪比。你想想看,把同一个信息重复发送更多次,接收端自然更容易把它从噪声里捞出来。

核心公式速记:

数据速率 (bps) ≈ SF × (BW / 2^SF) × CR

其中 BW 是带宽,CR 是编码率。这个公式你不需要死记,但要知道:SF 越大,分母 2^SF 增长极快,所以速率会急剧下降。

3.2 SF 与数据速率的关系

这里有个很关键的点,我刚开始做 LoRa 项目时也踩过坑。SF 和数据速率不是简单的线性关系,而是指数级的反比关系。

举个例子,在 125 kHz 带宽、CR=4/5 的条件下:

  • SF7:速率约 5.47 kbps。这个速度其实挺快的,发个传感器数据绰绰有余。
  • SF9:速率约 1.76 kbps。已经慢了不少,但还能接受。
  • SF12:速率约 0.29 kbps。也就是 290 bps,发一条 20 字节的数据需要将近 1 秒钟。

为什么会这样?因为 SF 每增加 1,符号时间就翻倍。从 SF7 到 SF12,符号时间差了 32 倍。你想想看,同样的数据量,SF12 需要占用 32 倍的时间来发送。这就是为什么我说,选 SF 就是在速率和距离之间做取舍。

我的经验: 在项目中,我一般会这样配置:

  • 网关附近 200 米内的节点,用 SF7,省电又快速。
  • 500 米到 1 公里,用 SF9 或 SF10。
  • 超过 2 公里或者有遮挡,才上 SF12。

别一上来就无脑用 SF12,那样你的网络容量会大打折扣。

3.3 SF 对接收灵敏度的影响

接收灵敏度,说白了就是接收机能听到多微弱的声音。LoRa 的厉害之处就在这里——它能在噪声底下把信号捞出来。

SF 对灵敏度的影响,我直接给个经验数据(以 Semtech SX1276 为例,125 kHz 带宽):

扩频因子 典型接收灵敏度 (dBm) 相比 SF7 的提升
SF7 -123 基准
SF8 -126 3 dB
SF9 -129 6 dB
SF10 -132 9 dB
SF11 -134.5 11.5 dB
SF12 -137 14 dB

你看,从 SF7 到 SF12,灵敏度提升了整整 14 dB。这是什么概念?在自由空间传播模型中,14 dB 的增益大约能多传 2.5 倍的距离。也就是说,SF12 比 SF7 理论上能多传一倍多的距离。

注意: 灵敏度提升不是免费的午餐。SF12 的空中时间比 SF7 长了 32 倍,这意味着:

  • 节点功耗大幅增加
  • 信道占用时间变长,网络容量下降
  • 更容易受到同频干扰

我曾经在一个项目中,客户要求所有节点都用 SF12,结果网关一天只能收到 60% 的数据包。后来改成自适应 SF,收包率提升到了 95% 以上。

3.4 知识体系总览

下面这张图,是我自己总结的 SF 调优决策逻辑,你可以参考一下:

扩频因子(SF)调优决策逻辑 选择扩频因子 SF 数据速率要求 SF↑ → 速率↓ SF7: ~5.5 kbps SF12: ~0.3 kbps 接收灵敏度 SF↑ → 灵敏度↑ SF7: -123 dBm SF12: -137 dBm 功耗 & 网络容量 SF↑ → 空中时间↑ 功耗↑ 容量↓ 调优原则:在满足距离需求的前提下 尽量选择最小的 SF 值

3.5 实际项目中的 SF 选择策略

我个人习惯把 SF 选择分成三种场景:

  1. 固定 SF 模式:所有节点用同一个 SF。适合节点位置固定、距离差异不大的场景。比如工厂里的设备监控,都在 500 米范围内,统一用 SF9 就行。
  2. 自适应 SF 模式:节点根据 RSSI 或 SNR 自动切换 SF。这是我最推荐的方式。LoRaWAN 标准里就有 ADR(自适应数据速率)机制,说白了就是让网关告诉节点「你信号太好了,降一档 SF 吧」。
  3. 混合 SF 模式:不同节点用不同 SF,但网关同时监听所有 SF。这需要网关支持多 SF 并行接收,Semtech 的 SX1301 芯片就可以做到。

避坑指南: 我曾经在一个智慧农业项目中,把 200 个传感器全部设成 SF12,结果网关每 8 秒才能处理一个数据包,200 个节点轮询一遍要 20 多分钟。后来改成自适应 SF,大部分节点自动降到了 SF9,轮询时间缩短到 3 分钟以内,电池寿命反而延长了 40%。

所以我的建议是:能用 SF7 就别用 SF8,能用 SF9 就别用 SF10。别为了那虚无缥缈的「更远距离」牺牲了系统的整体性能。

好了,关于扩频因子就讲到这里。记住一句话:SF 是 LoRa 的灵魂,选对了事半功倍,选错了事倍功半。下一节咱们聊聊带宽和编码率,这两个参数和 SF 配合起来,才能真正发挥 LoRa 的潜力。


公众号:蓝海资料掘金营,微信deep3321