LoRa 物理层调制

  LoRa 基于 Chirp Spectrum Spreading(CSS)技术对 Symbol 进行调制,其中 Chirp 是 LoRa 物理层的重要概念。

  考虑我们有一段可用的带宽 BW, 以及设定的 Symbol Duration T T T ,即一个 Symbol 的传输时间。Chirp 可以看做一个在此带宽上的扫频,如下图所示。

LoRa-instantaneous-frequency

  其中红色直线表示 Chirp 信号瞬时频率与实践的关系,其值域是 [ − B W ω , B W ω ] [-\frac{BW}{\omega},\frac{BW}{\omega}] [ωBWωBW] ,定义域在( 0 , T 0,T 0T )上。绿色曲线则反映了其在时域上的部分表示,可以看到频率绝对值高的地方,两个波峰距离更短,这是从直观上对 Chirp 的理解。

我们可以写出 Chirp 信号瞬时频率与时间 t t t 的关系,即
f c h i r p ( t ) = − B W 2 + B W T t f_{chirp}(t)=-\frac{BW}{2}+\frac{BW}{T}t fchirp(t)=2BW+TBWt
实际上,对于一个复函数 y ( t ) = e j ϕ ( t ) y(t) = e^{j\phi(t)} y(t)=ejϕ(t) 为虚数单位,即 -1 的平方根,其瞬时频率的表达式为
f y ( t ) = ϕ ′ ( t ) 2 π f_y(t) = \frac{\phi'(t)}{2\pi} fy(t)=2πϕ(t)
因此了得到 Chirp 信号在时域上的表达式,我们可以求出 ϕ ( t ) \phi(t) ϕ(t),即
ϕ ( t ) = ∫ f c h i r p ( t ) d t = 2 π t ( − B W 2 + B W 2 T t ) \begin{aligned} \phi(t) & = \int f_{chirp}(t) dt \\ & = 2\pi t (-\frac{BW}{2} + \frac{BW}{2T} t) \end{aligned} ϕ(t)=fchirp(t)dt=2πt(2BW+2TBWt)
于是我们就得到了 Chirp 在时域上复信号
y u p c h i r p ( t ) = e j 2 π t ( − B W 2 + B W 2 T t ) y_{upchirp}(t) = e^{j2\pi t (-\frac{BW}{2} + \frac{BW}{2T} t)} yupchirp(t)=ej2πt(2BW+2TBWt)
我们称上述 Chirp 信号为一个标准 upchirp,类似的我们可以构造标准 downchirp,写作
y d o w n c h i r p ( t ) = e j 2 π t ( B W 2 − B W 2 T t ) y_{downchirp}(t) = e^{j2\pi t (\frac{BW}{2} - \frac{BW}{2T} t)} ydownchirp(t)=ej2πt(2BW2TBWt)
如果我们将标准 upchirp 与标准 downchirp 做乘法,即
s ( t ) = y u p c h i r p ( t ) y d o w n c h i r p ( t ) = e j 2 π t ( − B W 2 + B W 2 T t ) e j 2 π t ( B W 2 − B W 2 T t ) = e 0 = 1 \begin{aligned} s(t) & = y_{upchirp}(t)y_{downchirp}(t) \\ & = e^{j2\pi t (-\frac{BW}{2} + \frac{BW}{2T} t)}e^{j2\pi t (\frac{BW}{2} - \frac{BW}{2T} t)} \\ & = e^0 \\ & = 1 \end{aligned} s(t)=yupchirp(t)ydownchirp(t)=ej2πt(2BW+2TBWt)ej2πt(2BW2TBWt)=e0=1
有时我们将 upchirp 写作
C = e j 2 π t ( − B W 2 + B W 2 T t ) C = e^{j2\pi t (-\frac{BW}{2} + \frac{BW}{2T} t)} C=ej2πt(2BW+2TBWt)
而 downchirp 写作

C − 1 = e j 2 π t ( B W 2 − B W 2 T t ) C^{-1} = e^{j2\pi t (\frac{BW}{2} - \frac{BW}{2T} t)} C1=ej2πt(2BW2TBWt)
这符合大多数公理系统的逆运算,即满足 C C − 1 = 1 CC^{-1} = 1 CC1=1

  LoRa 基于 upchirp 来进行 Symbol 调制,其方法是对一个标准 upchirp 进行循环移动,例如下图所示,右侧是一个标准 upchirp,左侧相当于是将标准 upchirp 从某处切开,并将切开的两部分交换得到的。

LoRa-upanddownchirp
  通过这个“切口”的位置,我们可以调制不同的 Symbol。例如我们要调制一个 Symbol n n n, 满足 n n n 为整数且 n ∈ [ 0 , 255 ] n \in [0,255] n[0255],则得到的 Chirp 表达式为
y n ( t ) = e j 2 π t ( − B W 2 + B W 2 T t + n T ) = e j 2 π n T t C \begin{aligned} y_n(t) & = e^{j2\pi t (-\frac{BW}{2} + \frac{BW}{2T} t + \frac{n}{T})} \\ & = e^{j2\pi\frac{n}{T}t}C \end{aligned} yn(t)=ej2πt(2BW+2TBWt+Tn)=ej2πTntC
该信号由发送端调制并基于某个载波发送,接收端接收到这一信号,进行 dechirp,如下:
s n ( t ) = y n ( t ) C − 1 = e j 2 π n T t \begin{aligned} s_n(t) & = y_n(t)C^{-1} \\ & = e^{j2\pi\frac{n}{T}t} \end{aligned} sn(t)=yn(t)C1=ej2πTnt
不难发现,dechirp 后的信号仅包含一个恒定的频率,对于这个频率,傅里叶变换(FFT)可以帮助我们找到它。考虑采样率刚好为 B W BW BW, 则一个Symbol 将包含 N N N个采样点,经过傅里叶变换得到 N N N个 FFT bins,满足

F ( k ) = F ( s n ( t ) ) = { 2 S F , k = n 0 , o t h e r w i s e F(k) = \mathbf{F}(s_n(t))= \begin{cases}2^{SF}, k = n \\ 0, otherwise \end{cases} F(k)=F(sn(t))={2SF,k=n0,otherwise
也就是说,傅里叶变换将会在第 n n n 个 bin 上得到峰值,其余为 0,且 n n n 恰好就是调制的Symbol。

  • 15
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值