NB-IoT学习(2)物理层之信号

要实现一个NB-IoT编解码芯片/模块,那么我们就需要从最底层开始学习。但是无论如何,单独地从物理层开始单调地学习是不现实的。所以我们需要始终结合整个系统,了解数据流具体是如何运行的。

相关基础知识

频点

频点的定义是固定频率带宽的一个编号,只是一个编号而已,例如TD-LTE D频段频率范围为2575~2635MHz,而LTE规定的频率带宽为20MHz(即频率间隔为20MHz),那么d频段共60MHz带宽就可以分为1,2,3共3个频点。

正交频分复用OFDM[1]

若使用单一的频率传输信号,当发送码元的频率过高时,可能发生码间串扰现象,即相邻两波形混在一起,难以判别。如果同时使用多个频率传输信号,就相当于将串行的信号改成了并行的,每条线传输速度不变的情况下,提高带宽了,加大了传输的数据量。而且同时使用多个频率传输,还能防止特定频率受到干扰(常表现为多径衰落),便于后续使用纠错码还原被干扰的数据。

当然了,并不是每个频率都发送一个波形那么简单,要实现OFDM还需要相位的调制。具体的就不赘述了。

子载波 Subcarry:可以理解为其中一个频率。

OFDM Symbol:表示某一时刻的某一子载波频谱。

时频结构图概述

LTE时频结构图

时频结构图往往使用纵轴表示频率,横轴表示时间,来交织成一个表格。其中每一个小格为RE (Resource Element)。一个Slot表示几个间隙构成的一段时间。RB表示可以资源分配的最小单位。

频段带宽

频段是指可以使用的所有的频率(如LTE标准表示为B1、B2、B3等,5G表示为N1、N2等),可包含多个RB。比如说LTE频段带宽为20Mbps,每个RB使用带宽200kbps,那么一个频段内可以同时使用100个RB。LTE技术中,还可同时使用多个频段,叫做载波聚合,可以同时利用多个频段。

ZC序列

ZC序列全称Zadoff-Chu Sequence。ZC序列有优良的性质如:循环移位后与原序列正交、具有恒定幅度特性。因此可以被用来区分同小区的不同用户等用途。

生成公式:

x_q(m)=exp(-j\frac{\pi qm(m+1)}{N_{ZC}^{RS}}), 0\leq m \leq Z_{ZC}^{RS}-1

其中q为“根序列的索引”,(就像生成随机数所需的seed值一样),必须有q才能生成这个序列。

m表示这个序列第m+1个序列点的值。

现在看起来可能有点晕,之后还会提到如何使用ZC序列,不用担心。

工作带宽、三种空口部署方式

NB-IoT的工作带宽为180KHz,这样设计是为了能沿用200KHz的GSM频点、并且能兼容LTE1个RB的带宽。

NB-IoT下行子载波间隔为15kHz,数量为12个,与LTE标准一致;上行子载波间隔为3.75kHz,数量为48个。二者总带宽均为180kHz。上行使用3.75kHz载波间隔是为了进一步提升覆盖范围。

所以,NB-IoT有三种空口部署方式,分别为“独立Stand-Alone”、“带内In-Band”、“保护带Guard-Band”。对应为取代一个GSM频段、使用LTE频段中的一个RB、使用LTE两个频段之间的保护带。

帧格式

首先看NB-IoT帧结构的总览图:

NB-IoT帧结构

其中一个Slot,或者一个“半帧”,为基本的调度单位。正如上面提到过的时频结构图,一个Slot表示如下:

NB-IoT一个Slot的时频结构图(载波间隔15kHz)
  • 一个最小的单元,即一个RE被称为signal
  • 每个频率上的signal和起来形成一纵列,形成一symbol
  • 7个symbol形成一个slot,为“半帧”,时间为0.5ms
  • 2个slot构成一个子帧,时间为1ms
  • 10个子帧构成一个无线帧(10ms)
  • 1024个无线帧构成一个系统帧(SFN)
  • 1024个系统帧构成一个超帧(OVER/H-SFN),时间可长达2.9h

而对于载波间隔为3.75kHz的方式,1 slot变成2ms,由5个slot构成一帧。一个帧为10ms,其他的相同。

可以看到,载波数量变为4倍的同时,也调整帧率为1/4,两种载波间隔的方式传输数据的速率是相等的。

还需要注意的一点是,由于部分NB-IoT可以按照IB方式部署(带内部署,见上一小节),为了与LTE协议区分,就需要避开LTE某些帧定义的数据,具体的做法是在上面的slot内选着使用。具体打孔打在哪里,后面再具体介绍。不过可以肯定的是,每一个子帧的前3个符号、以及最高频率的那个11号子载波都是不能使用的。

频域调度

NB-IoT标准中,将频率的管理继续细化,细化到子载波的程度。(相比于LTE管理RBG-RB Group,不能继续细化到子载波的程度)

Single-Tone表示使用单个子载波,Multi-Tone表示使用多个子载波。Multi-Tone适用于带宽要求较高的IoT设备,且只支持15kHz间隔的子载波。也就是说若设备使用3.75kHz的频段,则只能使用1个子载波。

由于不同NB-IoT设备的需求不同,那么如何协调各种使用不同子载波的设备呢?

对于下行数据,只有一种载波方式,即载波间隔为15kHz。频域上的调度最小单位为子载波,时域上最小单位为子帧(即TTI=1ms)。

而对于上行数据,由于不同设备使用不同载波方式(3.75kHz或15kHz间隔),且可选择使用Single-Tone或者Multi-Tone方式,所以制定了一个新的单位——RU(Resource Unit),并以此来调度。

使用15kHz子载波间隔时,若使用所有12个子载波,则规定每个RU含有2个slots,则可以计算出每个RU持续1ms。以此为基准,保持数据量不变的原则,可以得出以下表格:

入网流程

NB-IoT UE入网流程 图源CSDN

物理信道

下行主同步信号NPSS

NPSS概述

NPSS处于0-9中的第5号子帧,并且占用该帧全部内容。根据之前的知识,可以看出重复间隔为10ms。对于第5帧中的具体内容,为了在IB部署中避开LTE协议,仅仅能使用部分RE。具体如图:

第5帧中,仅蓝色区域可用为传输NB-IoT的NPSS信道内容

NPSS作用:协助终端实现频率和时间同步。设备上电开机后,首先要做的就是帧听NPSS帧,进行同步。

NPSS生成

我们使用基础序列长度为11的ZC序列生成公式生成:

d_l(n)=S(l)\cdot exp(-j\frac{\pi un(n+1)}{11}), n=0,1, \cdots, 10

其中规定固定u=5;S(l)伪随机码:

S([3:13])=1,1,1,1,-1,-1,1,1,1,-1,1

具体地解释到底如何将这些数字放到填进每个RE:

生成序列到NPSS帧的映射

简单地说,先取时域序号(3-13)为l,查表S(l)得值,再取频域序号(0-10),全部待入上式,就可得每个RE的值。对于IB部署,被占用的几个RE可忽略,匹配剩余的RE即可。

下行辅同步序号NSSS

NSSS概述

NSSS处于每个偶数帧中0-9中的第9号子帧,并且占用该帧全部内容,意味着周期为20ms。同样地,IB部署中,需要挖孔避免与LTE冲突。

NPSS、NSSS帧RE使用情况 绿色为NSSS可用RE

可见时域上可用3-13,频域上可用全部。

NSSS作用是:

  • 便于终端获取504个小区信息(PCI)
  • 便于终端获取80ms的定时信息(80ms分界线)

NSSS生成

小区信息PCI为0-503的整数,表示为N。

首先使用N生成不同128位的扰码b:

q=\lfloor N_{ID}^{Ncell}\rfloor
扰码表 来源3GPP TS 36.211 R15 Table 10.2.7.2.1-1

然后使用N生成不同长度为132的ZC序列rp:

r_p=exp(-j\frac{\pi un'(n'+1)}{131}) \\
n =  0, 1, \cdots, 131 \\
n'=n\mod 131 \\
u = N_{ID}^{Ncell} \mod 126 + 3

最后因为80ms的帧定时,加上帧定时循环移位(每一个值都移相nf/2*pi/2+n*(pi/2/132)):

r = exp(-j2\pi \theta_f n) \\
\theta_f = \frac{33}{132} (n_f/2) \mod 4

和起来就是这样一个公式:

d(n)=b_q(m)exp(-j2\pi \theta_fn)exp(-j\frac{\pi un'(n'+1)}{131})

其中:

n=0,1,\cdots,131 \\
n' = n \mod 131 \\
m = n \mod 128 \\
u = N_{ID}^{Ncell} \mod 126 + 3 \\
q = \lfloor \frac{N_{ID}^{Ncell}}{126}\rfloor \\
\theta_f = \frac{33}{132}(n_f/2)\mod 4

下行参考信号NRS

NRS与NPBCH/NPDCCH/NPDSCH信道混用同一帧,且只能在0、4、非NSSS的9号子帧上出现。

RE使用如下:

SA/GB部署下NRS所占RE情况
IB部署下NRS信号占用RE情况(IB下只能使用2天线模式)

NRS作用是保持同步、下行质量测量,可用于小区重选

NRS先介绍到这里,具体的以后再补充。

参考文献

[1] 樊昌信, 曹丽娜. 通信原理[M]. 第六版. 北京:国防工业出版社, 2019 :251-256.

发表评论