主要内容

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模型执行以下功能:

  • 频率恢复

  • 主次同步信号检测

  • 正交频分复用解调

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

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

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。频率恢复和PSS检测在1.92 Msps数据路径上执行。使用此采样率有两个原因。首先,在这个阶段,小区带宽是未知的,因此对于频率恢复,假设最小的LTE带宽为1.4mhz。这种方法不考虑实际小区带宽。其次,PSS和SSS仅占用六个中央资源块(1.4 MHz)。因此,可以在1.92 Msps下有效地执行检测,并且可以使用资源共享技术来优化硬件实现。

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

  1. 频率估计块估计10ms周期上的频率偏移。

  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万博1manbetx模型

最高级的ltehdlCellSearch.slx如下所示。该模型引用了ltehdlDownlinkSyncDemod.slxltehdlCellSearch_init.m是由InitFcn回调,ltehdlCellSearch_analyze.m是由StopFcn回拨。该模型使用了停止当(i)中的任意一个subframeNum输出为5或(ii)cellSearchDone是断言真正的没有检测到细胞。的HDL代码可以生成手机搜索高密度脂蛋白子系统。

这个手机搜索高密度脂蛋白子系统主要是ltehdlDownlinkSyncDemod模型。它包含一个模型块(下行同步解调),引用ltehdlDownlinkSyncDemod.slx和一个工作区诊断记录所有诊断输出的子系统。诊断输出由以下部件使用:ltehdlCellSearch_analyze.m生成显示内部操作的绘图。

下行同步和解调模型参考

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

模型的输入:

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

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

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

模型输出:

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

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

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

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

  • 细胞检测:布尔值,表示已找到单元格。

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

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

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

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

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

ltehdlDownlinkSyncDemod在初始化过程中使用两个无线HDL工具箱™示例函数:ltehdlDefineReceiverBusesLTEHDLDOWNLINKSYNCDEM常数ltehdlDefineReceiverBuses与其他无线HDL工具箱示例共享,并定义了一组Simulink总线。万博1manbetx函数中调用此函数InitFcnltehdlDownlinkSyncDemod.只有检测器诊断总线这里使用函数的输出。总线对象存储在基本工作区中,使其对ltehdlDownlinkSyncDemodltehdlCellSearch模型。

[~,~,~,~,检测器诊断总线]=LTEHDLDEFINECEIVERBUS();

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

cellDetectorConfig = ltehdlDownlinkSyncDemodConstants (30.72 e6);

内部结构ltehdlDownlinkSyncDemod显示。

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

这个FrequencyEstimation子系统使用循环前缀来估计输入信号的频率偏移。每960个样本最大角度子系统选择最强的相关峰并记录其相位角。这个角滤器子系统实现了一个窗口持续时间为10毫秒的平均滤波器。由此得到的相位角可作为频率估计。针对LTE信号连续的情况,优化了频率估计算法。算法性能会随着信号在时域的稀疏性而降低,例如在下行链路比较低的TDD模式配置下。这种退化会降低后续处理阶段检测和解码信号的能力。附录B提供了关于如何使用循环前缀来估计频率偏移的更多信息。

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

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

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

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

初始化和分析脚本

初始化脚本

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

%ltehdlCellSearch模型初始化脚本%生成ltehdlCellSearch模型所需的工作区变量。采样率=30.72e6;simParams.Ts=1/取样栅;%选择从文件加载捕获的无线波形,%或使用LTE工具箱生成测试波形。loadfromfile = true;如果loadfromfile%负载捕获的非空中波形。负载(“eNodeBWaveform.mat”);dataIn =重新取样(rxWaveform SamplingRate, fs);其他的%使用LTE工具箱生成测试波形。数据输入=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=(长度(数据输入)-1)/SamplingRate;

分析脚本

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

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

分析工具类

此类包含用于分析和打印模型输出的辅助函数。提到ltehdlCellSearchTools.m为更多的信息。

仿真输出与分析

要执行模拟,请使用中的“运行”按钮ltehdlCellSearch模型。万博1manbetxSimulink会自动调用ltehdlCellSearch_initltehdlCellSearch_analyze通过InitFcnStopFcn回调。请注意,将需要一段时间来构建ltehdlDownlinkSyncDemod第一次运行时的模型参考。仿真生成两种主要类型的输出:(i)陈列建筑顶层的砌块ltehdlCellSearch方框图显示了关键检测参数,(ii)在模拟结束时生成了四个图。

这个NCellID,TDDMode,timingOffset,频率,细胞检测,cellSearchDone所有输出都有关联陈列块。它们的值如下所示,在使用捕获的非空中波形(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 Coder™许可证。使用makehdlmakehdltb命令来生成HDL代码和HDL测试台手机搜索高密度脂蛋白子系统。请注意,由于生成的测试向量的长度,测试台生成可能需要一段时间。

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

资源使用_______________ _____ Slice register 44658 Slice LUTs 20271 RAMB18 25 RAMB36 11 DSP48 110

附录A-LTE下行链路同步信号

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

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

NCellID=3*NCellID1+NCellID2

其中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的SNR随时间的变化。为了在这种情况下检测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检测算法旨在通过在10ms时间窗口内选取最大PSS相关度量来选取最强的小区。以下伪代码描述了搜索算法:

初始化前10毫秒搜索窗口的位置
对于k=1到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万博1manbetxnk模型中(和在硬件上),a开始输入用于触发检测过程。接收机首先测量频率偏移,这需要10毫秒。接下来,进行第一次10毫秒PSS搜索。在这种情况下,未检测到PSS,因此启动第二次PSS搜索。这次检测到PSS。第一次SSS搜索发生在检测到的PSS定位后不到10 ms的时间内,避免了缓冲大量数据的需要,并使算法硬件友好。如图所示,在这种情况下,SSS也会进行两次尝试。从检测到的SSS的位置,接收机知道双工模型(在本例中为FDD)和帧定时。

参考文献

1.3GPP TS 36.214“物理层”

相关的话题