之前文章写到LoRa一些特点和传输距离。根据自由空间传播距离公式,可以得出发射功率越大,传播距离越长。
但是LoRa是低功耗,远距离传输,是如何解决这一对矛盾的?
根本原因是LoRa提高了接收机的灵敏度,从而拥有超强的链路预算,也就不需要很高的发射功率了。
1.扩频通信
LoRa接收端灵敏度要归功于扩频技术。
扩频通信,即扩展频谱通信技术(Spread Spectrum Communication),它的基本特点是其传输信息所用信号的带宽
远大于
信息本身的带宽,且
抗干扰能力强
。
扩频通信的过程:
-
待传输的信号频谱用某个特定的
扩频函数
(与待传输信号无关)扩展成宽频带信号。 - 将这个宽频带信号送到传输信道中。
- 在接收端利用相应技术将扩展的频谱进行压缩,恢复为待传输信号的带宽。
扩频信号有以下两个特性:
- 其传输信息所用信号的带宽远大于信息本身的带宽。
- 传输信息带宽是由扩频函数决定的,扩频函数通常是伪随机编码信号。
1.1扩频通信理论基础
扩频通信理论基础是基于香农公式:
其中:C—–信道容量
B——信道带宽
S——信号功率
N——噪声功率
对于上面式子,进行以下变换:
对于干扰环境,S/N<<1,那么在干扰环境中,
S/N减小(等价于噪声变大),
可以
增加带宽B
来保证
信道容量C不变
。
例如N/S=100(20dB),C=3kb/s,B=210kHZ时,就可以进行可靠通信了。
扩频通信就是利用这个原理,利用高速扩频码来增加带宽,来达到抗干扰目的。
1.2扩频通信原理
在将原理之前,我们先总结一下:
需要传输的信号要在信噪比很低的情况下传输信号,必须要增加带宽来实现这个功能。
而实现这个功能是需要伪随机码和待传输信号进行相乘来实现。
下面是一个扩频系统的模型:
现假设需要传输的信号在时域上是d(t),序列发生器出来的伪随机信号是c(t),发送端将两者相乘(调制),得到需要从发射机发出的信号d(t)c(t)。
上述是时域中的图。
脉冲宽度和带宽成反比关系,脉冲信号的脉冲宽度约窄,信号带宽越宽。
经过上述处理,就实现了对d(t)扩展频谱的目的。
1.3直接序列扩展频谱
LoRa使用的是这种方式。通常对载波进行相移键控(PSK)调制。一般FSK的信噪比需要8dB,而LoRa只需要-20dB。
1.4扩频因子(SF)
通常在调试代码时,都会调整扩频因子大小来改善LoRa性能。
扩频因子:扩频后chip速率和扩频前信号速率的比值,直接反映了扩频增益。
扩频因子决定每秒发送多少个线性调频脉冲,即数据的载体。表示了每个信息位发送的符号数量。
-
较低的 SF 意味着每秒发送更多的 Chirps;因此,您可以每秒编码更多数据。
速率更大。
-
较高的 SF 意味着每秒更少的Chirps;因此,每秒能编码的数据较少。
速率更小。
同时,SF对抗干扰能力也有影响。
-
较低的SF对信号功率采样时间变短,灵敏度下降。
抗干扰能力变弱。
-
较高的SF好处在于,更长的通话时间使接收机有更多机会对信号功率进行采样,从而提高了灵敏度。更高的灵敏度意味着您可以在更远的地方接收信号,从而获得更好的覆盖范围。
抗干扰能力变强。
LoRa扩频因子范围:
2.前向纠错
在通信过程中,如果出现发送信息错误或者出现丢包现象,那么如果在单向传输情况下,只能用纠错码来保证通信的可靠性。
LoRa应用了前向纠错编码技术,在传输信息中加入冗余,有效抵抗多径衰落。
2.1FEC
FEC(向前纠错)是一种前向性纠错技术,发送方将要发送的数据加上一定的冗余纠错码一起发送,接收方则根据纠错码对接收到的数据进行差错检测,如发现差错,则由接收方进行纠错。
特点:使用纠错码,单信道通信,发送方无需设置缓存。
FEC实质是异或
:
假如有4个数据,那么它们可以取4个异或值,其中每一个数据都可以由另外4个异或计算出来。还可以把ABCD和E想象成一个数据包,如果我们传输ABCD这四个数据包,第五个数据包传输的是E,这五个数据包可以丢失任何1个数据包。接收方收到数据之后,能够把它丢的数据恢复出来。前向纠错算法能处理的是连续数据里只丢1个包。同时丢失A和B,这个算法不能解决。
2.2编码率(CR)
通常在调试代码时,都会调整编码率大小来改善LoRa性能。
编码率(或信息率)是数据流中有用部分(非冗余)的比例。也就是说,如果编码率是k/n,则对每k位有用信息,编码器总共产生n位的数据,其中n-k是多余的。
LoRa采用循环纠错编码进行前向错误检测与纠错。
。
3.带宽(BW)
通常在调试代码时,都会调整带宽大小来改善LoRa性能。
信道带宽(BW)是限定允许通过该信道的信号下限频率和上限频率。
增加信号带宽,可以提高有效数据速率以缩短传输时间,但这是以牺牲部分一接收灵敏度为代价。
References:
扩频通信基础
丢包策略