主要内容

LTE HDL细胞搜索

本示例展示如何设计针对HDL代码生成和硬件实现进行优化的LTE小区搜索和选择系统。

介绍

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

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

  • 频率恢复

  • 主次同步信号检测

  • OFDM解调

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

一旦模型完成小区搜索和选择过程,它将输出小区ID、双工模式和小区的非均衡资源网格。此功能如下所示。模型支持具有15 kHz子载波间隔和正常循环前缀长度的下行链路信号。频分双工(FDD)和时分双工(TDD)两种模式都受支持。双工模式将自动检测。金宝app

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

示例结构

模型由5个文件组成:

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

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

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

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

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

请注意LTEHDLDOWNLinkSyncDerm.slx不会出现在示例工作文件夹中,因为它与其他示例共享。该文件在MATLAB路径上,可以通过输入打开LTEHDLDOWNLinkSyncDerm在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如下所示。这个模型的引用LTEHDLDOWNLinkSyncDerm.slxltehdlCellSearch_init.m是由InitFcn回调,ltehdlCellSearch_analyze.m是由StopFcn回调。该模型使用停止当(i)中的任意一个子帧产量为5或(ii)cellSearchDone断言真正的没有检测到细胞。的HDL代码可以生成手机搜索高密度脂蛋白子系统。

手机搜索高密度脂蛋白子系统主要是LTEHDLDOWNLinkSyncDerm模型它包含一个模型挡块(下行同步解调)哪些参考文献LTEHDLDOWNLinkSyncDerm.slx,及诊断到工作区子系统,它记录所有诊断输出。诊断输出由ltehdlCellSearch_analyze.m生成显示内部操作的图。

下行同步和解调模型参考

LTEHDLDOWNLinkSyncDerm模型参考实现了所有小区搜索、同步和OFDM解调功能。附录B详细说明了该模型实现的单元搜索和选择算法。最高层LTEHDLDOWNLinkSyncDerm与前面介绍的体系结构非常匹配。

模型输入:

  • dataIn:承载基带输入信号的复杂有符号16位数据。

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

  • 开始:Boolean.断言此输入真正的为一个周期,在任何时候启动细胞搜索。这被称为启动命令。

模型输出:

  • NCellID:检测到的enode的9位cell ID。

  • TDD模式:布尔值,表示检测单元的双工模式:错误的对于FDD,真正的TDD。

  • 定时偏移:19位定时偏移。表示从进入接收器的第一个采样到第一个完整帧的第一个采样的采样数,从0到307199。

  • 频繁:14位有符号频率偏移估计。将此输出乘以15e3/2^14,以便转换为Hz,如图所示LTEHDLCellSearch模型。

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

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

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

  • gridData:16位数据,承载解调后的资源网格。

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

  • 诊断:总线信号,携带各种诊断输出。

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

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

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

cellDetectorConfig = ltehdlDownlinkSyncDemodConstants (30.72 e6);

内部结构LTEHDLDOWNLinkSyncDerm显示。

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

FrequencyEstimation子系统使用循环前缀来估计传入信号的频率偏移。每960个样品AngleAtMaximum子系统选择最强的相关峰并记录其相位角。的AngleFilter子系统实现了一个窗口持续时间为10 ms的平均滤波器。产生的相位角用作频率估计。频率估计算法针对存在连续LTE信号的场景进行了优化。算法性能随着信号在时域中的稀疏性而降低,例如在具有低下行链路与上行链路比率的TDD模式配置中。这种退化会降低后续处理阶段检测和解码信号的能力。附录B提供了有关如何使用循环前缀来估计频率偏移的更多信息。

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

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

相关器子系统包含三个PSS序列的每个匹配滤波器,以及一组确定阈值的子系统。为防止小信号触发误报,在阈值上设置了一个下限。PSS相关器和阈值产生逻辑有不同的管道延迟,因此,流同步器被用来重新对齐它们的输出。

一旦手机搜索正在进行SSS搜索器在循环缓冲液中持续存储样品。一旦检测到PSS,它将继续将样本加载到缓冲区中,直到到达并存储SSS搜索位置。方法提供的PSS时序信息计算出SSS搜索位置PSSEndTimingOffset信号。接下来,从缓冲区读取FDD位置样本,通过128点FFT,然后马克斯SSS可能性子系统计算相关度量和阈值。然后对TDD位置样本应用相同的操作马克斯SSS可能性子系统选择超过阈值的最大相关度量,并确定双工模式和帧定时。最后,计算帧定时偏移。

初始化和分析脚本

初始化脚本

ltehdlCellSearch_init.m被称为InitFcn收回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范围内。数据输入=0.95*数据输入/最大值(绝对值(数据输入));%开始1个子帧进入波形(任意选择)。startIn = false(长度(dataIn), 1);startIn (1 e - 3 * SamplingRate) = true;%配置PSS和SSS尝试次数PSSAttempts = 2;SSSAttempts = 4;确定停止时间。simParams。stopTime = ((dataIn) 1)长度/ SamplingRate;

分析脚本

ltehdlCellSearch_analyze.m被称为StopFcn收回ltehdlCellSearch.slx。该脚本严重依赖于ltehdlCellSearchTools.m分析模型输出并显示图形。

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

分析工具类

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

仿真输出与分析

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

NCellIDTDD模式定时偏移频繁cellDetectedcellSearchDone所有输出都有关联显示块。它们的值如下所示,在使用捕获的非空中波形(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搜索plot显示了成功SSS检测尝试的相关度量,以及SSS阈值。如前所述,SSS检测算法确定双工模式和半帧位置,以及cell ID。因此,在每次尝试中计算出4*168 = 672个相关度量。相关指标沿x轴的顺序如下:

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

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

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

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

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

ncelllid = 3* ncelllid1 + ncelllid2 = 76。

HDL代码生成与验证

要为本例生成HDL代码,您必须具有HDL编码器™ 许可证。使用makehdlmakehdltb用于生成HDL代码和HDL测试台的命令手机搜索高密度脂蛋白子系统。请注意,由于生成的测试向量的长度,测试台生成可能需要一段时间。

手机搜索高密度脂蛋白子系统在Xilinx®Zynq®-7000 ZC706评估板上合成。驿站和路线资源利用结果如下表所示。该设计满足200 MHz时钟频率的定时要求。

资源使用_______________ _____ Slice register 44658 Slice LUTs 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符号。这种相对定时的差异允许接收端区分两种双工模式。PSS和SSS在FDD和TDD模式下无线电帧中的位置如下图所示。

有关更多详情,请参阅同步信号(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搜索窗口
对于k=1到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“物理层”

相关的话题