主要内容

LTE HDL细胞搜索

这个例子展示了如何设计一个LTE小区搜索和选择系统,优化的HDL代码生成和硬件实现。

介绍

小区搜索和选择是用户设备(UE)尝试接入LTE网络的第一步。细胞搜索和选择过程包括检测候选eNodeB信号,然后选择一个进行同步。这包括确定所选择的eNodeB的物理层单元标识(单元ID)和双工模式。此外,UE在此过程中获得频率和定时同步。一旦完成这个过程,UE就可以解调由小区传输的OFDM信号,并恢复其主信息块(MIB)。一个具有HDL代码生成功能的MIB恢复模型,它重用了这里所示的单元搜索和选择功能LTE HDL MIB恢复

本示例中的功能基于LTE工具箱的单元搜索功能Cell Search, MIB and SIB1 Recovery(LTE工具箱).然而,这些算法已经针对HDL代码生成进行了优化。LTE工具箱在本示例的开发中被广泛使用。这里描述的HDL模型执行以下功能:

  • 频率恢复

  • 一次和二次同步信号检测

  • OFDM解调

HDL模型中的频率恢复算法只能校正小于+-7.5kHz的偏移量。通过外部控制器驱动输入和监控输出,可以实现大于+-7.5kHz的大频率偏移恢复。大频率偏移校正的演示可以在LTE MIB Recovery and Cell Scanner Using Analog Devices AD9361/AD9364(Xilinx Zynq-Based Radio金宝app通信工具箱支持包)的例子。

一旦模型完成单元搜索和选择过程,就输出单元ID、双工模式和单元的不均衡资源网格。该功能如下所示。该型号支持15 kH金宝appz子载波间距和正常循环前缀长度的下行信号。支持FDD (Frequency Division Duplex)和TDD (Time Division Duplex)两种方式。金宝app自动检测双工模式。

LTE标准提供了两种物理信号以帮助细胞搜索过程。这些是主同步信号(PSS)和次级同步信号(SSS)。LTE下行同步信号详见附录A。

示例结构

模型由5个文件组成:

  • ltehdlCellSearch.slx:这是模型的顶层,用作测试平台ltehdlDownlinkSyncDemod.slx

  • ltehdlDownlinkSyncDemod.slx:实现小区搜索、同步和OFDM解调功能的模型参考。

  • ltehdlCellSearch_init.m:用于生成刺激的MATLAB®脚本。

  • ltehdlCellSearch_analyze.m: MATLAB脚本,用于分析输出并在仿真结束时显示图形。

  • ltehdlCellSearchTools.m: MATLAB类,包含用于分析和绘制结果的辅助方法。

请注意ltehdlDownlinkSyncDemod.slx不会出现在示例工作文件夹中,因为它与其他示例共享。该文件位于MATLAB路径上,可以通过输入ltehdlDownlinkSyncDemod在MATLAB命令行。

模型架构

单元搜索和选择子系统的结构如下所示。输入是以30.72 Msps采样的复杂16位数据。将信号传递到两个信号处理数据路径;一个是1.92 Msps,一个是30.72 Msps。在1.92 Msps数据路径上进行频率恢复和PSS检测。使用这个采样率有两个原因。首先,现阶段小区带宽尚不清楚,因此为恢复频率,假设LTE最小带宽为1.4 MHz。这种方法与实际的小区带宽无关。其次,PSS和SSS只占用6个中央资源块(1.4 MHz)。因此,可以有效地在1.92 Msps下进行检测,并使用资源共享技术来优化硬件实现。

下面的步骤描述接收器操作。

  1. 频率估计块在10毫秒的周期内估计频率偏移。

  2. 然后在1.92 Msps和30.72 Msps样本流上激活频率校正块。

  3. 在频率估计阶段完成后,PSS检测立即开始。

  4. 当PSS检测检测到一个有效的PSS信号时,SSS检测开始。如果找到一个有效的SSS,这意味着已经检测到一个有效的单元,并且现在已经知道双工模式。

  5. 计算单元格ID和帧的起始位置。

  6. 在下一帧边界上,接收机开始从30.72 Msps采样流中提取OFDM符号。每个符号通过2048点FFT进行OFDM解调。

附录B提供了本例中使用的单元格搜索和选择算法的更多细节。

单元搜索Simulink金宝app模型

最高级的ltehdlCellSearch.slx如下所示。这个模型的引用ltehdlDownlinkSyncDemod.slxltehdlCellSearch_init.m是由InitFcn回调和ltehdlCellSearch_analyze.m是由StopFcn回调。该模型使用停止当以下任一情况发生时,接收器终止模拟:subframeNum产量为5或(ii)手机搜索完成是断言真正的没有检测到细胞。的HDL代码可以生成单元搜索HDL子系统。

单元搜索HDL子系统主要是ltehdlDownlinkSyncDemod模型。它包含一个模型块(下行同步解调),引用ltehdlDownlinkSyncDemod.slx和一个诊断到工作区子系统,它记录所有诊断输出。诊断输出由ltehdlCellSearch_analyze.m生成显示内部操作的图。

下行同步和解调模型参考

ltehdlDownlinkSyncDemod模型参考实现了所有的cell搜索,同步和OFDM解调功能。附录B详细介绍了该模型实现的单元查找和选择算法。最高级的ltehdlDownlinkSyncDemod与前面介绍的体系结构非常匹配。

模型的输入:

  • 达坦:携带基带输入信号的16位复带符号数据。

  • validIn:布尔值,表示是否达坦是有效的。

  • 开始:布尔。维护这个输入真正的在任何时候启动单元格搜索的一个周期。这称为启动命令。

模型输出:

  • 恩塞利德:检测到的enode的9位cell ID。

  • TDDMode: Boolean,表示检测到的cell的双工模式。FDD,真正的TDD。

  • timingOffset: 19位定时偏移。表示从输入接收机的第一个样本到第一个全帧的第一个样本的采样数,从0到307199。

  • 频率: 14位带符号的频率偏移估计。将输出乘以15e3 / 2^14,以转换为Hz,如图所示LTEHDLCELL搜索模型。

  • cellDetected:布尔值,表示已找到单元格。

  • 手机搜索完成:布尔值,表示单元格搜索已完成。如果找到单元格,cellDetected手机搜索完成同时也会被认为是正确的。如果没有找到细胞,cellDetected仍将是手机搜索完成将被断言真正的在启动命令发出后的100毫秒内。花费的时间手机搜索完成是否被断言取决于多少次尝试检测PSS和SSS。详见附录B。

  • subframeNum: 4位无符号整数。指定当前正在传递的子帧gridData端口,从0到9。

  • gridData:携带解调资源网格的16位数据。

  • gridValid:布尔值,表示是否gridData是有效的。

  • 诊断学:总线信号,承载各种诊断输出。

ltehdlDownlinkSyncDemod在初始化过程中使用两个无线HDL工具箱™示例函数:ltehdlDefineReceiverBusesltehdlDownlinkSyncDemodConstantsltehdlDefineReceiverBuses与其他无线HDL工具箱示例共享,并定义了一组Simulink总线金宝appInitFcn属于ltehdlDownlinkSyncDemod.只有detectorDiagnosticsBus这里使用函数的输出。总线对象存储在基本工作区中,使其对ltehdlDownlinkSyncDemodltehdlCellSearch模型。

[~, ~, ~, ~, detectorDiagnosticsBus] = ltehdlDefineReceiverBuses ();

该模型依赖于存储在名为cellDetectorConfig.该结构由ltehdlDownlinkSyncDemodConstants函数,只在ltehdlDownlinkSyncDemod模型参考。因此,它是在模型工作区而不是基础工作区中定义的。使用模型资源管理器来查看模型工作区,其中包含以下初始化代码。

cellDetectorConfig=LTEHDLDownLinkSyncDemoConstants(30.72e6);

内部结构ltehdlDownlinkSyncDemod如图所示。

抽取滤波器子系统将输入数据从30.72 Msps重新采样到1.92 Msps。它包括CIC抽取、CIC增益补偿、CIC下降补偿和瞬态消除。滤波器链设计为具有一个群延迟,该群延迟等于1.92 Msps下的整数个采样数瞬时清除块从采样流中删除由于该组延迟而导致的初始瞬态。这很重要,因为帧定时偏移在1.92 Msps流上测量,然后用于恢复30.72 Msps流上的定时。从抽取滤波器链中删除初始瞬态简化了传输定时信息的逻辑在…上

频率估计子系统使用循环前缀来估计传入信号的频率偏移。每960个样品AngleAtMaximum子系统选择最强的相关峰并记录其相位角。的角滤器子系统实现了一个窗口持续时间为10 ms的平均滤波器。产生的相位角用作频率估计。附录B提供了有关如何使用循环前缀估计频率偏移的更多信息。

同步信号搜索子系统实现PSS和SSS的检测。在这部分设计中时间是至关重要的,因为SSS搜索器的帧定时信息PSS搜索器识别SSS搜索位置。的PSS搜索器提供了一个validOut信号,该信号由流同步器阻塞以延迟输入流并补偿PSS搜索器管道延迟。将输入流同步到PSS搜索器输出简化了设计SSS搜索器

PSS搜索器由两个子系统组成:相关器最大峰值搜索器.这些子系统共同实现了附录B中描述的PSS搜索算法。

相关器子系统包含三个PSS序列中每个序列的匹配滤波器,以及一组用于确定阈值的子系统。对阈值应用下限以防止小信号触发假警报。PSS相关器和阈值生成逻辑具有不同的管道延迟,因此,使用流同步器o重新调整其输出。

一旦开始搜查,就SSS搜索器将样本持续存储在循环缓冲区中。一旦检测到PSS,它将继续将样本加载到缓冲区中,直到到达并存储SSS搜索位置。SSS搜索位置根据PSSEndTimingOffset信号。接下来,从缓冲区读取FDD位置样本,通过128点FFT,然后马克斯SSS可能性子系统计算相关度量和阈值。然后将相同的操作应用于TDD位置示例。的马克斯SSS可能性子系统选择超过阈值的最大相关度量,决定双工模式和帧定时。最后,计算帧定时偏移量。

初始化和分析脚本

初始化脚本

ltehdlCellSearch_init.mInitFcn回调的ltehdlCellSearch.slx.刺激可以从包含捕获的空中波形的文件加载,或使用LTE工具箱生成。

搜索模型初始化脚本%生成ltehdlCellSearch模型所需的工作区变量。SamplingRate = 30.72 e6;simParams。Ts = 1 / SamplingRate;%选择从文件中加载捕获的非空中波形,%或使用LTE工具箱生成测试波形。loadfromfile=true;如果loadfromfile%从空气中捕获的负载波形。装载(“eNodeBWaveform.mat”);dataIn =重新取样(rxWaveform SamplingRate, fs);其他的使用LTE工具箱生成测试波形。dataIn = hGenerateDLRXWaveform ();结束%比例信号电平在-1到+1的范围内。/ * max(abs(dataIn)); / * max(abs(dataIn));%开始1个子帧进入波形(任意选择)。startIn = false(长度(dataIn), 1);startIn (1 e - 3 * SamplingRate) = true;%配置PSS和SSS尝试PSSAttempts = 2;SSSAttempts = 4;确定停止时间。simParams。stopTime = ((dataIn) 1)长度/ SamplingRate;

分析脚本

ltehdlCellSearch_analyze.mStopFcn回调的ltehdlCellSearch.slx.该脚本严重依赖于ltehdlCellSearchTools.m分析模型输出并显示图形。

% lthdlcellsearch模型分析脚本%后处理模型输出并生成图。检查是否存在要分析的仿真输出。如果存在(“出”“var”) & & ~ isempty (out.PSSDetected)%对模型输出进行后处理,提取关键单元参数,诊断学和信号。[signals,report]=ltehdlCellSearchTools.processOutput(数据输入、开始、输出);%绘图结果ltehdlCellSearchTools.figure (“输入波形和搜索阶段”);clf;ltehdlCellSearchTools.plotSearchStates(信号,报告);ltehdlCellSearchTools.figure (频率估计的);clf;ltehdlCellSearchTools.plotFrequencyEstimate(信号,报告);ltehdlCellSearchTools.figure (“PSS搜索”); clf;ltehdlCellSearchTools.plotPSSCorrelation(信号、报告);ltehdlCellSearchTools.figure(“SSS搜索”);ltehdlCellSearchTools.plotSSSCorrelation(信号,报告);结束

分析工具类

该类包含用于分析和绘制模型输出的辅助函数。指ltehdlCellSearchTools.m为更多的信息。

仿真输出与分析

控件中的运行按钮可执行模拟ltehdlCellSearch模型。金宝appSimulink会自动调用ltehdlCellSearch_initltehdlCellSearch_analyze通过InitFcnStopFcn回调。请注意,将需要一段时间来构建ltehdlDownlinkSyncDemod第一次运行时的模型参考。仿真生成两种主要类型的输出:(i)显示在顶层的方块ltehdlCellSearch框图显示了关键的检测参数,(ii)仿真结束时生成4个图。

恩塞利德TDDModetimingOffset频率cellDetected,手机搜索完成所有输出都有关联显示块。它们的值如下所示,在使用捕获的非空中波形(eNodeBWaveform.mat)刺激。

输入波形和搜索阶段图显示:

  • 输入波形的幅度与时间的关系。

  • 频率估计发生的时间窗口。

  • 每次尝试的PSS搜索窗口(本例中为一次)和检测到的PSS的位置。

  • 每次尝试(本例中为一次)的TDD和FDD的SSS搜索窗口,以及检测到的SSS的位置。

频率估计图显示了频率估计器与时间的输出。在10毫秒的频率估计时间窗口结束时,频率估计被加载到寄存器中,用于校正频率偏移。这个值也显示在图中。在这种情况下,频率偏移刚好低于500hz,这在频率恢复算法的-7.5 kHz到+7.5 kHz的工作范围内。

单元格ID由两个组件组成,NCellID1NCellID2,在那里NCellID1是SSS序列号,和NCellID2是PSS序列号(见附录A)PSS搜索图显示了所有三个PSS相关器输出,以及PSS阈值。因此,PSS在PSS #1的波形中检测到大约17毫秒NCellID2=1

SSS搜索图中显示了成功SSS检测尝试的相关度量和SSS阈值。如前所述,SSS检测算法确定双工模式和半帧位置以及小区ID。因此,在每次尝试期间计算4*168=672个相关度量。相关度量显示在沿x轴的顺序如下:

  • FDD1:对应于前半帧的SSS序列的FDD位置处的度量

  • FDD2:对应于2st半帧的SSS序列的FDD位置处的度量

  • TDD1: SSS序列对应于前半帧的TDD位置的度量

  • TDD2: SSS序列对应于第二半帧的TDD位置的度量

SSS序列对应于前半帧,在FDD位置检测SSS。因此SSS序列号为25NCellID1 = 25.因此,最后的单元格ID是:

ncelllid = 3* ncelllid1 + ncelllid2 = 76。

HDL代码生成与验证

要为本示例生成HDL代码,您必须拥有HDL Coder™许可证。使用makehdlmakehdltb命令来生成HDL代码和HDL测试台单元搜索HDL子系统。请注意,由于生成的测试向量的长度,测试台生成可能需要一段时间。

单元搜索HDL子系统在Xilinx®Zynq®-7000 ZC706评估板上合成。岗位和路线资源利用情况如下表所示。该设计满足时钟频率为200mhz的定时要求。

资源使用率-片寄存器44658片LUT 20271 RAMB18 25 RAMB36 11 DSP48 110

附录A - LTE下行同步信号

LTE提供两个物理信号以辅助单元搜索和同步过程。这些是主同步信号(PSS)和次级同步信号(SSS)。

eNodeB的cell ID编码在PSS和SSS中。双工模式、循环前缀长度和帧定时可以从它们在接收信号中的位置确定。PSS和SSS每帧传输两次。有3种可能的PSS序列,eNodeB每半帧传输相同的PSS。对于每个PSS,在帧的前半部分有168种可能的SSS序列,在帧的后半部分有168种不同的可能SSS序列。这意味着一旦SSS被检测到,接收器就知道它是在帧的前半部分还是后半部分。PSS和SSS序列取决于细胞ID,因此有3 * 168 = 504个可能的细胞ID。单元格ID是

ncelllid = 3* ncelllid1 + ncelllid2

其中NCellID2为0 ~ 2的PSS序列号,NCellID1为0 ~ 167的SSS序列号。PSS的每个实例占用一个OFDM符号的62个子载波,SSS的每个实例也是如此。在普通循环前缀模式下,PSS和SSS信号的位置如下:

  • FDD模式:PSS在子帧0的符号6,SSS在子帧0的符号5

  • TDD模式:PSS在子帧1的符号2,SSS在子帧0的符号13

每个子帧中有14个符号,编号从0到13。因此,在FDD模式中,PSS在SSS之后发送一个OFDM符号,而在TDD模式中,PSS在SSS之后发送三个OFDM符号。这种相对定时的差异允许接收机区分两种双工模式。在FDD和TDD模式下,PSS和SSS在无线电帧内的位置如下所示。

有关更多详细信息,请参阅同步信号(PSS和SSS)(LTE工具箱)

附录B -单元格搜索和选择算法

介绍模型检测eNodeB信号时采用的算法。该算法旨在应对真实世界的条件,如频率偏移、噪声和干扰,以及PSS和SSS的信噪比随时间的变化。为了在这种情况下检测eNodeB,该示例使用了三种技术:

  1. 频率恢复应用于PSS和SSS检测之前。

  2. 动态阈值用于验证PSS和SSS相关度量,使虚警概率最小化。

  3. 多次尝试检测PSS和SSS;例如,如果SSS的一个特定实例的相关指标没有超过阈值,检测器将等待半帧并再次尝试,直到预定义的尝试次数。

频率恢复

频率恢复是通过利用接收信号的时域结构来执行的。在LTE(与其他基于OFDM的系统一样)中,每个符号由有用的部分循环前缀(CP)。CP是通过从符号的末端复制一小片并将其前置到符号的开始而生成的。这可以在接收机中利用,通过将接收信号与自身的一个延迟版本的复共轭相乘,然后对CP持续时间进行积分,其中延迟是有用部分的持续时间。实际上,接收到的信号与自身的延迟版本是相互关联的。积分器输出的幅度在符号边界处有峰值。信号在这些峰值处的相位角与频率偏移有关。在本例中使用了这种方法,并结合额外的平均,来估计频率偏移。该算法可以检测从-7.5 kHz到+7.5 kHz的频率偏移。

PSS检测

PSS检测是通过在时域内将接收到的信号与所有三个可能的PSS序列连续相互关联来实现的。此外,在每个时间步长上计算信号在相关器范围内的能量,然后按比例缩放生成阈值。PSS检测算法的目标是通过在10 ms时间窗内选取最大的PSS相关度量来选取最强的单元。下面的伪代码描述了搜索算法:

初始化前10毫秒搜索窗口的位置
for k = 1 to 4 (PSS尝试次数)
查找超过阈值的相关水平,如果任何相关水平超过阈值,查找超过阈值的最大相关水平PSS检测到:中断循环并开始SSS搜索,否则PSS未检测到:将搜索窗口移动到下一个10ms周期结束

SSS检测

一旦PSS被定位,探测器可以将SSS的位置缩小到两个可能的位置;一个用于FDD,一个用于TDD。SSS相关度量是在频域计算,通过评估序列的点积。下面的算法用于搜索和选择SSS序列。

初始化SSS搜索窗口
for k = 1 to 8 (SSS尝试次数)
对[FDD, TDD]中的每个双工模式提取128个点搜索窗口,对当前双工模式计算FFT并提取SSS子载波,计算SSS序列对应的前半帧的相关度量,计算SSS序列对应的后半帧的相关度量,计算信号能量的阈值端
如果任何指标超过阈值,则丢弃不超过阈值的相关指标:从SSS检测到的幸存指标中选择最大的相关指标:中断循环并进入下一个处理阶段,否则SSS未检测到:将SSS搜索窗口稍后移动半帧结束
结束

手机搜索插图

cell search算法如下图所示,其中PSS和SSS分别尝试2次来检测有效信号。图中还显示了频率恢复阶段。最初,接收机不知道接收到的信号帧定时。在Simuli金宝appnk模型中(和在硬件上),a开始输入用于触发检测过程。接收机首先测量频率偏差,这需要10毫秒。接下来,进行前10毫秒的PSS搜索。在这种情况下,没有检测到PSS,因此启动第二次PSS搜索。这次检测到PSS。第一次SSS搜索发生在检测到PSS的位置后不到10毫秒,避免了缓冲大量数据的需要,并使算法硬件友好。如图所示,SSS在这种情况下也进行了两次尝试。从检测到的SSS的位置,接收器知道双工模型(在本例中是FDD)和帧定时。

参考文献

1.3GPP TS 36.214“物理层”

相关话题