技术文章及通讯

理解和解调LTE信号

Marc Barberis和Graham Freeland, MathWorks


支持LTE的设备,如手机和平板电脑,现在无处不在,LTE正与原始蜂窝市场之外的组织相关。LTE提供了比3G技术更高的传输速度。然而,这种改进是以开发和实现复杂性为代价的,部分原因是LTE物理层使用了先进的通信技术,如多输入多输出(MIMO)和涡轮编码器。

解调LTE信号需要全面了解LTE信号结构,以及从原始信号中提取信息的先进算法。标准的复杂性以及所涉及的算法和概念使得开发LTE产品非常具有挑战性。分析捕获的LTE信号,验证LTE系统的内部实现,以及生成LTE信号都是需要大量工作和仔细验证的任务,它们受益于一致的设计流程和环境。

本文解释了LTE信号的结构以及如何从信号中检索信息。然后介绍了使用LTE系统工具箱™来获取和解调LTE下行信号的工作流程——从初始同步到LTE参数和数据的提取。

LTE基带信号特性

LTE被设计成以低延迟(几毫秒)有效地传输信息包。LTE基于OFDM调制,并要求使用MIMO技术。LTE信号以10毫秒为一帧进行组织。

一个LTE帧依次由10个1ms子帧组成(图1)。

LTE_Signals_Fig1_w.jpg
图1。LTE框架和子框架结构。

每个子帧包含14个OFDM符号。子帧的结构通常表示为二维的时间和频率资源网格。图2显示了单个子帧的资源网格,它由14个OFDM符号组成。电网包括72到1200个子载波。网格上的每个单元格都被称为a资源元素.一个资源块是一个12 × 7的资源元素集合。

LTE_Signals_Fig2_w.jpg
图2。空资源网格和一个资源块。

当手机等LTE设备启动时,首先要检测并连接到LTE网络。LTE可以部署在1.4MHz到20MHz的带宽范围内(对应于上面提到的72到1200个子载波)。因此,LTE标准将手机连接到网络所需的所有信息放在最窄的带宽中,也就是中间的72个子运营商。这些信息包括:

  • 主同步信号和次同步信号(PSS和SSS),帮助确定帧定时和小区识别。这些信号每五个子帧出现一次。
  • 广播通道BCH (Master Information Block),承载着MIB (Master Information Block)。MIB包括实际小区带宽(1.4MHz ~ 20mhz)等信息。BCH每10个子帧出现一次。

图3显示了PSS、SSS和BCH在帧的子帧0中的位置。

LTE_Signals_Fig3_w.jpg
图3。子帧0为1.4MHz带宽,显示BCH(红色)、PSS(绿色)和SSS(蓝色)。

如前所述,每个子帧包含14个OFDM符号。前几个符号表示控制区域。它们被保留用于控制信息,有效载荷数据将进入剩余的符号。控制符号的数量因子帧而异,并由物理控制格式指示通道(PCFICH)发出信号。

该网络包括三个额外渠道:

  • 物理混合指示信道(PHICH),用于对先前发送到基站的数据进行确认
  • 物理下行链路控制信道(PDCCH),它携带诸如网格的哪一部分分配给特定用户以及使用哪种调制和编码方案等信息
  • PDSCH (Physical Downlink Shared Channel),用于承载流量数据

图4显示了带宽为3MHz的子帧0的不同通道。用白色标记的是Cell-Specific Reference Signals (CRS),它是用于相干解调的导频符号。

LTE_Signals_Fig4_w.jpg
图4。子帧0网格与所有通道和物理信号为3MHz带宽。

在MATLAB中用LTE系统工具箱解调LTE信号

在本例中,我们将模拟手机开机时发生的情况。电话通常必须执行以下任务(图5):

  1. 在给定的LTE载波频率上获取一个信号。
  2. 基于PSS和SSS确定帧同步和单元识别(单元搜索过程)。
  3. 解码主信息块以获得带宽信息。

对于它需要解码的每一个子帧,它必须执行以下操作:

  1. 解码PCFICH以确定控制区域的大小。
  2. 定位控制信息(PDCCH),以便它可以解码相关数据(PDSCH)。
LTE_Signals_Fig5_w.jpg
图5。获取和解调LTE信号所需的步骤。

在这个例子中,我们假设信号已经被获取并存储在一个文件中。

确定帧同步和单元识别

单元格搜索包括两个步骤:

  1. 对三个可能的PSS执行运行相关,并在三个相关器中检测一个峰值。峰值的位置提供了5个子帧的不确定性帧定时,因为PSS同时出现在子帧0和子帧5中。
  2. 一旦检测到峰值,在子帧0和5中对31个可能的SSS进行关联,以找到两个SSS的168个可能组合中的一个。

这两个步骤的结果是单元识别号,一个0到3*168-1=503之间的数字(在我们的例子中是17),以及帧计时。

方法完成这些步骤lteCellSearchLTE系统工具箱中的功能。lteCellSearch计算与可能的PSS和SSS的所有相关性,并返回单元ID和帧定时。

在输入波形上执行单元格搜索[NCellID, timinggoffset] = lteCellSearch(enb,波形);同步输入信号,知道帧定时波形=波形(1+ timinggoffset:end);

图6显示了lteCellSearch函数确定输入信号的单元ID。

LTE_Signals_Fig6_w.jpg
图6。CellID的PSS/SSS的相关器输出绝对值= 17。

解码主信息块(确定带宽)

现在我们知道了帧定时和单元识别,我们可以对信号进行OFDM解调来提取OFDM网格值。然后,我们将能够根据基站传输的已知参考信号(CRS)进行信道估计1

为了执行OFDM调制,我们调用lteOFDMDemodulate而且lteDLChannelEstimateLTE系统工具箱功能:

执行OFDM解调,包括循环前缀去除rxgrid = lteOFDMDemodulate(enb,波形);估计中间6个RBs上的通道[ChannelEst, noiseEst] = lteDLChannelEstimate(enb,cec,rxgrid);

图7为OFDM解调后的网格。信号因传输障碍和噪声而严重损坏。

LTE_Signals_Fig7_w.jpg
图7。恢复的OFDM网格的绝对值。

我们现在必须计算MIB映射到的网格位置,解调该信息,解码MIB,并解释二进制字段的内容。

我们可以用四个MATLAB来完成所有这些任务®命令:

从所有接收天线和信道估计的第一个子帧中提取与PBCH对应的资源元素pbchIndices = ltePBCHIndices(enb);[pbchRx, pbchest] = lteExtractResources(...pbchIndices, rxgrid(:,1:L,:), hest(:,1:L,:,:));%解码PBCH[bchBits, pbchSymbols, nfmod4, mib, enb.]CellRefP = ltePBCHDecode(...enb, pbchRx, pbchest, nest);解析MIB位enb = ltimib (mib, enb);

enb,包含基站(或eNodeB)参数的结构如下:

NDLRB: 50 NCellID: 17 NSubframe: 0 CellRefP: 2 PHICHDuration:“正常”吴:“一个”NFrame: 404

因此,我们知道小区带宽是50个资源块(NDLRB),或10MHz。除了这个值之外,我们还从MIB中获得了更多的信息,包括天线数量(2)、帧号(404)和PHICH配置(本文中没有涉及)。

获取系统信息

在这一点上,我们已经确定了一些关键参数:

  • 细胞的身份
  • 帧时间
  • 细胞带宽
  • 蜂窝中的天线数量
  • PHICH配置

然而,在我们联系基站之前,我们需要更多地了解这个小区(包括这个小区的操作员是否是我们有合同的那个!)这些额外的信息包含在各种系统信息块(sib)中。现在我们将解调系统信息块类型1 (SIB1)。

虽然SIB1在固定的时间计划内传输,但携带SIB1的PDSCH的资源分配是动态的。它在PDCCH上携带的关联的下行链路控制信息(DCI)消息中表示。

基站使用无线网络标识符(RNTI)对所有DCI消息进行加密,RNTI用于标识预期的接收方。所有用户都对SIB1感兴趣,它的已知RNTI为65535(称为SI-RNTI或系统信息RNTI)。这使得所有终端(包括未关联的终端)都可以查找和解码SIB1。

解码SIB1控制信息

识别PDCCH非常具有挑战性,因为与BCH不同,PDCCH具有复杂的结构:PDCCH携带可变数量、可变长度的DCI消息,这些消息可以从PDCCH空间中的不同位置开始。

因此,一旦我们提取了与PDCCH对应的所有符号,就必须对将被SI-RNTI打乱的DCI消息执行盲搜索。

LTE系统工具箱包含我们需要的功能,包括执行PDCCH空间盲搜索的能力。下面的代码展示了我们如何解码PCFICH以确定控制区域的大小,然后提取PDCCH,为SI-RNTI执行PDCCH空间的盲搜索,并解码SIB1。

解码PCFICHcfiBits = ltePCFICHDecode(enb, pcfichRx, pcfichest, nest);enb。CFI = lteCFIDecode(cfiBits);%获得CFI% PDCCH解调。PDCCH现在使用与BCH和CFI接收类似的资源提取和解码函数解调和解码pdcchIndices = ltePDCCHIndices(enb);获取PDCCH指数[pdcchRx, pdcchHest] = lteExtractResources(pdcchIndices, rxgrid, hest);解码PDCCH[dciBits, pdcchSymbols] = ltePDCCHDecode(enb, pdcchRx, pdcchest, nest);% PDCCH盲搜索系统信息(SI和DCI解码)。LTE系统工具箱提供对PDCCH的全盲搜索,以查找具有指定RNTI(在本例中为SI-RNTI)的% any DCI消息。PDCCH = struct(“RNTI”, 65535);dci = ltePDCCHSearch(enb, pdcch, dciBits);在PDCCH中搜索DCI

图8显示了与PDCCH对应的星座。控制信息的调制采用QPSK方案。

LTE_Signals_Fig8_w.jpg
图8。已接收PDCCH星座。

解码SIB1数据

现在我们已经解码了与SIB1相关的控制信息,接下来可以检索和解码实际的SIB1数据。

我们对DCI报文进行解析,给出相应携带SIB1的PDSCH的配置,并对PDSCH进行解调。接收的比特被DL-SCH解码以产生SIB1比特:

pdschIndices = ltePDSCHIndices(enb, pdsch, pdsch. prbset);[pdschRx, pdschHest] = lteExtractResources(pdschIndices, rxgrid, hest);解码PDSCHdlschBits = ltePDSCHDecode(enb, pdsch, pdschRx, pdschest, nest);解码DL-SCH[sib1, crc] = lteDLSCHDecode(enb, pdsch, trblklen, dlschBits);

位向量sib1现在可以从MATLAB导出到ASN.1解码器,以解码系统信息块Type1消息。

总结

这个例子展示了如何使用LTE系统工具箱从实时LTE信号中提取系统信息。LTE系统工具箱支持信号的进一步处理,金宝app包括上行链路和TDD模式,EVM和ACLR等测量,以及一致性测试。

您可以使用LTE系统工具箱执行链路级和性能模拟,验证您自己的LTE实现,生成和分析LTE波形,或者如我们在这里所示,通过将MATLAB连接到测试和测量仪器来解调合成信号或实时信号。

1在LTE中,基站也被称为eNodeB。

发布日期:2015年9月27日

查看相关功能的文章