文档

LTE OFDM调制器和检测器的HDL实现验证

这个例子展示了如何构建一个LTE兼容的OFDM调制器和检测器,并使用HDL Coder™实现,并使用LTE System Toolbox™验证HDL实现模型。

简介

这个例子解决了与实现OFDM调制和检测HDL代码生成相关的实际问题。调制器包括直流载波插入、循环前缀插入和加窗,检测器实现主同步信号(PSS)和次同步信号(SSS)检测,以确定物理层单元标识。LTE系统工具箱™通过提供输入刺激和黄金参考输出波形来验证HDL模型的功能。调制器和检测器的原理图如下所示。

LTE Modulator HDL子系统采用预生成的长期演进(LTE)下行链路(DL)资源网格,该资源网格使用LTE系统工具箱LTE系统工具箱,并按照LTE标准进行OFDM调制。调制器子系统是可参数化的,并支持所有标准LTE信道带宽。万博1manbetx为了验证HDL实现的输出,一个黄金参考,使用LTE系统工具箱创建OFDM调制波形lteTestModellteTestModel而且lteTestModelToollteTestModelTool功能。用于验证的默认黄金参考波形是根据E-UTRA测试模型(E-TM) 1.1生成的,带宽为$BW = 5\mathrm{MHz}$.有关E-TM 1.1的更多资料,请参阅[2]。

下表提供了支持的带宽以及相关的万博1manbetxIFFT长度和采样率的详细信息。

使用一个浮点信道模型channel来添加衰减、信道噪声和时延,以演示接收机的工作。LTE检测器HDL子系统实现OFDM接收器功能的初始阶段,以识别LTE Cell ID。

LTE系统工具箱功能

本例中使用了来自LTE系统工具箱的各种功能来生成黄金参考调制波形,该波形用于验证HDL实现。下面突出显示了这些函数及其在示例中的位置。通过函数名中的链接可以找到关于函数的更多信息。

LTE初始化脚本中使用的函数:

  • lteTestModellteTestModel:生成与进化通用地面无线电接入(E-UTRA)测试模型(E-TM)对应的黄金参考LTE结构配置

后仿真分析脚本中使用的函数:

通过双击Simulink模型顶层的标记按钮,可以查看初始化和后期仿真分析脚本。万博1manbetx

示例结构

OFDM示例的顶层结构如下图所示。在这个模型中,Modulator和Detector子系统被配置为HDL代码生成。

LTE Modulator HDL子系统的详细结构如下图所示。

LTE Modulator HDL子系统包含以下组件,这些组件在LTE Modulator的HDL实现一节中有更详细的描述。

  • OFDM符号映射:将输入数据样本映射到IFFT的中心子载波上,进行DC子载波插入,并为循环前缀(CP)扩展预留正确数量的样本

  • FFT移位:将输入数据样本重新排序到IFFT,以便调制的LTE信号在频谱内正确对齐

  • IFFT:对LTE资源网格数据进行IFFT (Inverse Fast Fourier Transform)调制

  • CP扩展和窗口:调度CP扩展并执行重叠和添加窗口操作

  • 滤波:对发射信号进行滤波,以确保其满足所需的光谱掩模要求

通道的结构如下所示。信道子系统是一个带有信道噪声、衰减和时延的AWGN信道的粗略近似。该通道模型应用于软件中,子系统未配置为HDL代码生成。在进入信道后,传输的信号被转换为双信号,模拟数字模拟转换器(DAC)的操作。然后,在模拟模数转换器(ADC)的情况下,信号被转换回信道子系统输出的不动点。一个Time Delay和AWGN应用于传输的信号,一个增益块衰减信号。FIR抽取滤波器向下转换接收到的信号,只捕获中心的6个下行链路资源块,并将采样频率降低到1.92 Msps。

下图显示了LTE Detector HDL子系统的详细结构。

LTE检测器HDL子系统包含以下组件,这些组件在LTE检测器的HDL实现一节中有更详细的描述。

  • PSS检测:将接收的信号与三个可能的主同步信号(PSSs)进行相互关联,以确定组内的小区标识,并计算接收的定时偏移

  • 定时校正:使用计算的定时偏移值来调度数据的输入到FFT

  • FFT:对接收到的数据流进行FFT (Fast傅立叶变换)解调

  • SSS检测:对接收到的频域样本和168个可能的二次同步信号(SSSs)进行点积,以确定小区组。

  • 确定Cell ID:从检测到的Cell组(通过SSS检测)计算LTE Cell标识,以及在Cell组内检测到的位置(通过PSS检测)。

LTE Modulator (LTE Modulator HDL)的HDL实现

LTE调制器的HDL实现包含OFDM符号映射、FFT移位、IFFT、CP扩展和加窗以及过滤块,这些块将在以下部分详细描述。

1 - OFDM符号映射

IFFT子载波计数器产生一个0到IFFT长度范围内的计数器信号,其中每个值对应一个IFFT bin(或OFDM子载波)。OFDM符号映射块顶层逻辑的其余部分将LTE DL资源网格数据映射到IFFT的中心子载波,对DC(零频率)子载波进行归零,并为CP扩展操作保留正确数量的样本。还生成一个有效的输出信号,以指示信号处理路径下数据的有效性。由于存在与符号映射阶段相关的管道延迟,因此有效信号被延迟以匹配数据路径的管道延迟。

  • IFFT子载波计数器:IFFT子载波计数器如下图所示。在LTE系统中,每个槽位有7个OFDM符号,第一个符号的CP长度比其余6个符号长。因此,有必要改变为CP扩展过程保留的样品数量。这是使用两个计数器的组合实现的——一个计数器计算子载波号加上当前CP长度,另一个计数器计算符号号。对于有效的数据样本,IFFT子载波端口输出当前IFFT子载波号(在0到IFFT大小- 1的范围内),对于保留给CP的样本,IFFT大小输出。

2 - FFT移位

为了使OFDM调制的LTE信号在频谱内正确对齐(在零频率与直流子载波集中对齐),IFFT操作的输入必须重新排序,以便直流子载波样本与第一个IFFT仓对齐。这是通过使用fftshiftfftshift操作。该子系统实现了硬件优化的实现fftshiftfftshift操作。传入的OFDM符号样本被写入可寻址范围为2倍IFFT大小的双端口RAM块。经过一个IFFT帧的初始延迟后,可以从RAM中读取第一个FFT移位的样本。FFT移位样本的正确读地址由计算读地址子系统计算。由于从RAM块读取数据有一个单独的时钟周期延迟,因此有效信号相应地被延迟。

  • 计算读地址:计算读地址子系统如下图所示。当rdEnable信号变高时,计数器被触发,计数一个完整的IFFT帧。由于RAM同时写入新的样本,同时读出旧的样本,因此必须确保正在读取的样本不是来自当前正在写入的RAM的同一半。子系统下半部分的逻辑通过在两个初始读地址之间切换或“ping/ ping”来确保这种情况的发生。fftshift操作是使用IFFT索引计数器值和初始读地址的位异或实现的。IFFT索引值和IFFT大小/2的读地址之间的异或操作翻转索引值的MSB,而具有IFFT大小的异或操作翻转RAM的两半之间的ping/pong。

3 - if

快速反傅立叶变换(IFFT)是使用IFFT HDL Optimized块实现的,它实现了一个流水线的Radix-2表单,为流数据应用程序提供硬件和速度优化。看到IFFT HDL优化IFFT HDL优化有关该块功能的更多信息。

4 - CP扩展和窗口

计算CP直通索引子系统检测当前OFDM符号的结束,确定与该符号对应的CP的长度,并从IFFT长度中减去它,以创建fftMinusCP输出。此值用于调度CP扩展。另一个输出fftMinusCPandWindow被创建并用于调度窗口操作。Check Window Multiply子系统通过创建控制和索引信号来调度开窗操作,这些信号被Multiply by Window子系统用来将OFDM符号的“头”和“尾”乘以抬弦开窗样本。

  • 计算CP直通索引:由于每个槽位的第一个符号的CP长度较长,因此需要检测每个OFDM符号的末尾。符号的结束可以通过validIn信号的电平变化来确定。检测逻辑为单个时钟周期创建一个高频闪,进而使OFDM符号计数器前进。

  • 乘以窗口:符合功能的lteOFDMModulatelteOFDMModulate功能LTE系统工具箱LTE系统工具箱,该窗口过程被分成两个子过程(一个用于符号的头部,一个用于符号的尾部),以允许大于CP的窗口长度。如果窗口长度被限制为小于或等于CP的窗口长度,该过程可以优化为使用单一计数器和查找表(LUT)组合。乘以OFDM符号头部的块位于子系统的顶部。由于OFDM调制器需要循环前缀扩展,根据窗口长度的不同,头的加窗只能应用于CP样本,而不能应用于组成符号本身的样本。对于相关的CP数据样本(0到窗口长度),向上计数器用于查找包含预计算的上升余弦窗口样本的查找表(LUT)。然后将RC Window Lookup的输出乘以传入的CP数据样本。所有的非窗口样本都乘以1。在OFDM符号尾部执行窗口乘法的块位于子系统的下半部分。与头部样本的开窗类似,对于相关的尾部样本(最终IFFT长度-窗口长度-1到IFFT长度-1的样本),下计数器处理包含开窗样本的LUT。然后将RC Window Lookup的输出乘以传入的CP数据样本。所有的非窗口样本都乘以1。

  • 重叠和相加:开窗过程的第二部分是重叠和相加。在这个子系统中,当前OFDM符号的尾部与下一个OFDM符号的头部重叠,并相加在一起。计数器计算在整个LTE无线电帧上调制的OFDM和CP样本的数量(加上额外的窗口长度以补偿捕获的无线电帧头),以确定帧的开始和结束。这对于从headRAM中无线电帧的开始调度头部捕获,并在无线电帧的末端与尾部重叠和添加是必要的。当控制信号添加窗口较大,且totSampleCount值小于无线电帧中样本总数时,子系统的输出为来自连续OFDM符号的重叠头尾样本之和。当Add Window值较高,且totSampleCount值大于无线电帧中样本总数时,子系统的输出为存储在headRAM中的重叠头样本和无线电帧的加窗尾样本之和。当Add Window值较低时,子系统的输出是未加窗的符号样本。

5 -过滤

滤波子系统实现了一个低通FIR滤波器,以确保调制的LTE OFDM波形在LTE标准概述的所需频谱掩码要求内。

LTE检测器的HDL实现(LTE检测器HDL)

LTE检测器的HDL实现包含PSS检测、定时调整和FFT块,这些块将在接下来的章节中详细描述。

1 - PSS检测

PSS检测子系统被进一步划分为三个子系统:交叉相关滤波和阈值、峰值检测和确定单元ID和偏移量。PSS检测主要有两个原因:

  • 确定LTE小区组内的物理层标识;而且

  • 确定PSS在接收信号内的位置,以便进行定时调整

看到同步信号(PSS和SSS)同步信号(PSS和SSS)参阅更多有关LTE同步信号的结构和形成的详情。

  • 交叉相关滤波和阈值:交叉相关滤波和阈值分为两个子系统。Count包含一个简单的HDL计数器块,它计算每个接收到的样本,以便为接收到的PSS的时间偏移提供参考。

交叉相关子系统如下所示。子系统将接收到的数据信号与三种可能的时域PSS序列中的每一个相互关联,然后计算每个相互关联的平方幅度。为了优化所需的硬件面积,并利用1.92 Msps的低采样率,互相相关是通过匹配滤波实现的全串行FIR滤波器来实现的。通过平均滤波器计算接收信号的平均功率,也产生了阈值信号。阈值信号用于峰值检测。

  • 峰值检测:峰值检测子系统检查来自三个匹配过滤器的互相相关输出是否超过阈值。如果超过阈值,则对当前样本进行本地搜索,并对后续的9个样本进行搜索。这确保了互相相关峰值的准确样本被识别出来,而不是具有相似功率的相邻样本。

  • 确定Cell ID和Offset:为了根据PSS检测过程提供输出数据,实现了逻辑来确定一些变量:

  1. PSS检测的峰值功率

  2. LTE小区组内的物理层标识

  3. 定时偏移值

计算了被检测PSS随时间的互相关输出,以及相应的PSS检测频闪。

2 -定时调整

定时调整子系统负责确保FFT操作的输入及时正确对齐。这是必需的,以便正确的接收样本与正确的FFT子载波相匹配,从而确保解调信号包含正确的频域样本。子系统使用PSS检测输入频闪器创建一个布尔有效信号,用于启用下游块。由于在第一个时域PSS序列的128个样本中(映射到0号槽位的OFDM符号6),PSS频闪器只被触发一次,频闪器指示接收信号的时间位置。已知最后一个PSS样本的确切位置,并且知道第一个SSS序列被映射到前一个OFDM符号(0号槽位的符号5),通过应用适当的延迟,可以调整FFT的第一个输入,使其与时域SSS序列的128个样本完全对齐。延迟值的计算方法为:

$$delay = PSSlength + SSSlength + ShortCPLength$$

$$delay = 128 + 128 + 9$$

$$delay = 265$$

3 - FFT

快速傅立叶变换(FFT)是使用FFT HDL Optimized块实现的,该块实现了一个流水线的Radix-2表单,为流数据应用程序提供硬件和速度优化。看到FFT HDL优化FFT HDL优化有关该块功能的更多信息。

FFT的输出是经过解调的OFDM符号,这些符号对应LTE传输的六个中心资源块。FFT帧输出包含了软件在后期仿真处理中检测到的频域SSS。

4 - SSS检测

SSS检测分为三个子系统:采样和存储、SSS序列更新和SSS点积。

SSS检测使用LTE系统工具箱LTE系统工具箱函数,lteSSSlteSSS,生成频域SSS序列。

SSS搜索确定物理层单元标识组。通过在HDL实现中使用PSS检测提供的值,可以知道细胞组中的物理层细胞标识,从而将可能的SSS序列的数量从504减少到168。为了确定物理层细胞标识组,接收到的解调信号与168个可能的SSS序列进行相互相关。正确的细胞识别组由提供最高峰值相关输出的SSS序列给出。

  • 样品和储存:

由于执行了定时调整,从FFT操作发出的前128个(有效)样本将包含传输的SSS序列(位于槽号0的符号5中)。因此有必要存储这128个样本,以便它们可以与168个可能的SSS序列进行比较。样本和存储子系统使用样本计数器来计数传入的数据样本。接收到的前128个样本被写入RAM。这些样本也作为有效的输出样本传递给dataOut输出。Sample Counter的输出还用于增加Group Counter,它跟踪当前单元格组(0到167)。在将前128个样本写入RAM后,Sample Counter的输出用于生成RAM的读取地址,并将存储的128个样本重复从RAM中读取到dataOut输出,直到覆盖所有168个单元格组。

传输的SSS序列由62个样本和一个直流子载波的零值样本组成。FFT的输出使得SSS序列在前32个样本和后31个样本之间被分割。根据这个结构创建一个validOut信号。

  • SSS序列更新:

SSS序列更新子系统负责为给定的LTE Cell Group (SSS)和该Cell Group (PSS)内的位置提供适当的SSS序列样本。

所有504个可能的SSS序列都存储在一个大小为62x504的二维LUT中。由于所有频域SSS序列的虚分量都为零值,所以LUT中只存储实值分量。根据检测到的PSS序列(0到2)和当前单元格组(0到167),寻址LUT的正确列。包含相应SSS样本的62行由样本计数器的输出寻址。当一个给定SSS序列的所有62个样本从LUT发射后,在endOfGroup输出上提供一个频闪仪。

  • 点积

由于发射的SSS序列的确切位置已知,所以不需要互相关来检测发射的SSS序列。相反,使用接收信号的相关样本与所有可能的SSS序列的对应样本之间的点积。

由于频域SSS样本只取{1,-1}的值,因此不需要乘法器。相反,乘上-1可以通过将接收到的样本的符号颠倒来计算。这是通过将接收到的信号拆分为实值和虚值分量,并对每个分量执行按位NOT操作来实现的,然后再重新组合为复值信号。在从SSS序列更新子系统接收到频闪信号时,累加器输出复位。由于只需要点积操作的最终输出来确定传输的SSS序列,因此使用相同的频闪器信号来生成validOut输出。

5 -确定Cell ID

Cell ID确定子系统使用SSS Detection和PSS Detection的输出来确定传输LTE信号的Cell ID。

传输的SSS序列被选择为从点积产生最大功率输出的SSS序列。

在确定了物理层细胞识别组(SSS序列)和组内位置(PSS序列)后,整个物理层细胞识别,$ N ^{细胞}_ {ID} $,计算公式为:

$$ n ^{cell}_{id} = 3n ^{(1)}_{id}+ n ^{(2)}_{id}$$

  • $ N ^ {(1)} _ {ID} $是物理层细胞标识组(0到167)

  • $ N ^ {(2)} _ {ID} $是组内的标识(0到2)

结果和显示

运行仿真后,模型显示三个不同的图形,说明输出和结果。这些数字如下图所示,以及对每个图的解释。第一个图说明了LTE OFDM调制器的输出,第二个图显示了LTE OFDM检测器中PSS检测的输出,而最后一个图提供了来自检测器最后阶段的各种基于文本的结果。

  • 传输LTE波形图

下图展示了LTE OFDM调制器的输出,并分为两个子图:

  1. 功率谱密度(PSD)图:此副图显示LTE OFDM调制器输出的功率谱密度(PSD)。结果绘制在使用LTE系统工具箱生成的黄金参考输出信号的PSD上,以直观地显示两个信号的等价性。LTE传输带宽BW也显示在图标题中。对于下图,使用的传输带宽为BW = 5MHz。

  2. 时域图:此副图显示了LTE OFDM调制器随时间的绝对值输出的放大部分。结果被绘制在使用LTE系统工具箱生成的绝对值黄金参考输出信号的相同部分上,以直观地显示两个信号的等价性。为了进一步比较输出与黄金参考信号,绘制了第三个信号,显示了HDL实现输出与黄金参考信号之间的绝对值差异(即abs(LSTreference - HDLImplementation))。这说明了两个信号之间的最小误差。

  • PSS相互关系图

下面的图说明了PSS检测的输出。图中显示的是接收信号与检测到的PSS序列随时间的相互关系的功率输出。此外,还绘制了平均阈值信号以说明识别过程。超过阈值的可见峰值表明已经检测到这个PSS序列。当PSS序列每LTE无线电帧传输两次时,可以看到两个峰值。

  • 相互关系图

下面的图显示了SSS检测的输出。图中所示为接收信号与可能的SSS序列之间的点积的功率输出。x轴上的值对应可能的SSS序列。对于每个SSS序列,只画出点积的最终值。选择输出点积功率最大的SSS序列作为传输序列。

  • 最终仿真输出

下面的图提供了模拟最后阶段的基于文本的结果。它分为三个部分:

  1. Detected Cell ID:显示LTE Cell搜索的最终结果。

  2. PSS互关值:显示PSS检测的峰值互关功率和时间偏移量。

  3. HDL实现TX误差矢量量(EVM):显示LTE OFDM调制器HDL实现的峰值和RMS误差矢量量(EVM)值,与LTE系统工具箱黄金参考信号相比。

HDL代码生成

要检查和生成此示例的HDL代码,您必须拥有HDL Coder™许可证。

为Modulator子系统生成HDL代码和测试台架,使用以下命令:

makhdltb ('HDLOFDMVerificationLTEExample/LTE Modulator HDL')

类似地,您可以使用以下命令为检测器子系统生成HDL代码和测试台架:

makhdltb ('HDLOFDMVerificationLTEExample/LTE检测器HDL')

注意:由于仿真中数据量大,生成测试台架需要很长时间。您可能希望在生成测试台架之前减少模拟时间。

参考文献

  1. S. Sesia, I. Toufik和M. Baker,《LTE - UMTS的长期演变:从理论到实践》,John Wiley & Sons, 2009年2月。

  2. 3gpp ts 36.141。基站(BS)一致性测试第三代伙伴关系项目;技术规范组无线电接入网;进化通用地面无线电接入(E-UTRA).URL:http://www.3gpp.org

这个话题有帮助吗?