主要内容

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的大频率偏移恢复。大频率偏移校正的演示可以在LTE MIB Recovery and Cell Scanner Using Analog Devices AD9361/AD9364(基于Xilinx Zynq的无线电通信工具箱支金宝app持包)实例

一旦模型完成了小区搜索和选择过程,它会输出单元格的小区ID,双工模式和小区的不均衡资源网格。此功能如下所示。该模型支持具有15 金宝appkHz子载波间隔和正常循环前缀长度的下行链路信号。频分双工(FDD)和时分双工(TDD)模式都支持。金宝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.4MHz。无论实际的单元带宽如何,这种方法都可以运行。其次,PSS和SSS仅占六个中央资源块(1.4 MHz)。因此,可以在1.92 MSPS下有效地执行检测,并且可以使用资源共享技术来优化硬件实现。

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

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

  2. 然后在1.92 MSP和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.打回来。该模型使用停止当(i)中的任意一个次帧产出为5或(ii)cellSearchDone被断言了真正的并且没有检测到单元。可以为该单元生成HDL代码手机搜索高密度脂蛋白子系统。

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

下行同步和解调模型参考

ltehdlDownlinkSyncDemod模型引用实现所有小区搜索,同步和OFDM解调功能。附录B详细说明该模型实现的小区搜索和选择算法。顶级ltehdlDownlinkSyncDemod与早些时候呈现的架构密切相关。

模型的输入:

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

  • validIn:布尔,指示是否dataIn已验证。

  • 开始:布尔值。断言此输入真正的在任何时候一次循环启动小区搜索。这被称为start命令。

模型输出:

  • NCellID:检测到的eNodeB的9位单元ID。

  • TDDMode.:Boolean,表示检测到的单元格模式:错误的对于FDD,真正的对于TDD。

  • TimingOffset.:19位定时偏移。从0到307199中指示来自第一样本的样本数量进入接收器到第一全帧的第一样本。

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

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

  • cellSearchDone: Boolean,表示单元格搜索已完成。如果找到一个细胞,细胞cellSearchDone将同时置于真实。如果没有找到单元格,细胞将继续错误的cellSearchDone将断言真正的在启动开始命令的100毫秒内。所花费的时间cellSearchDone被置位取决于检测PSS和SSS的尝试数量。有关更多详细信息,请参阅附录B.

  • 次帧:4位无符号整数。指示当前正在从中传递的子帧网格数据端口,从0到9。

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

  • gridValid:布尔,指示是否网格数据已验证。

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

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

[〜,〜,〜,〜,detecordiagnosticsbus] = ltehddefinereceiverbuses();

该模型依赖于预先计算的常量和存储在一个调用的结构中的查找表celldetectorconfig.这种结构是由ltehddownlinksyncdemodconstants.功能,只在内部使用ltehdlDownlinkSyncDemod模型参考。因此,它在模型工作区而不是基础工作空间中定义。使用Model Explorer查看模型工作区,其中包含以下初始化代码。

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个样本,angleatmaximum.子系统选择最强的相关峰并记录其相位角。这角度亮子系统实现平均滤波器,窗口持续时间为10 ms。得到的相位角用作频率估计。频率估计算法针对存在连续LTE信号的场景进行了优化。算法性能随着时域中的信号的疏散性而劣化,例如在具有低下行链路到上行比率的TDD模式配置中。这种劣化可以降低后续处理阶段检测和解码信号的能力。附录B提供有关如何使用循环前缀如何估算频率偏移的更多信息。

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

PSS搜索者由两个子系统组成:相关器最大峰值搜索器.这些子系统一起实施附录B中所述的PSS搜索算法。

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

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

初始化和分析脚本

初始化脚本

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

%ltehdlcellsearch模型初始化脚本%生成ltehdlCellSearch模型所需的工作区变量。samplingrate = 30.72e6;SimParams.ts = 1 / SamplingRate;%选择从文件加载捕获的偏离空中波形,%或者使用LTE工具箱生成测试波形。loadfromfile = true;如果loadfromfile%负载捕获的非空中波形。负载(“eNodeBWaveform.mat”);数据输入=重采样(RX波形、采样率、fs);别的%使用LTE工具箱生成测试波形。Datain = hgeneratedlrxwaveform();结尾%比例信号电平在-1到+1的范围内。Datain = 0.95 * Datain / Max(ABS(数据));%将1子帧启动到波形(任意选择)。startIn=false(长度(数据输入),1);startIn(1e-3*SamplingRate)=true;%配置PSS和SSS尝试次数PSSAttempts = 2;SSSAttempts = 4;%确定停止时间。simparams.stoptime =(长度(数据)-1)/采样;

分析脚本

ltehdlcellsearch_analyze.m.被称为stopfcn.回调ltehdlCellSearch.slx.此脚本严重依赖于ltehdlcellsearchtools.m.分析模型输出并显示图。

%ltehdlcellsearch模型分析脚本%后处理模型输出并生成图。%检查是否存在仿真输出来分析。如果存在('出去''var')&&〜isempty(out.pssdetected)%对模型输出进行后处理,提取关键单元参数,%diganostics和信号。[signals, report] = ltehdlCellSearchTools.processOutput(dataIn,startIn,out);%绘制结果ltehdlcellsearchtools.figure('输入波形和搜索阶段'); clf;ltehdlCellSearchTools.绘图搜索状态(信号、报告);ltehdlCellSearchTools.figure(“频率估计”);clf;ltehdlcellsearchtools.plotfrequenceStimate(信号,报告);ltehdlcellsearchtools.figure('PSS搜索');clf;ltehdlCellSearchTools.plotPSSCorrelation(信号,报告);ltehdlcellsearchtools.figure('sss search');ltehdlcellsearchtools.plotssscorrelation(信号,报告);结尾

分析工具类

此类包含用于分析和绘制模型输出的辅助功能。参考ltehdlcellsearchtools.m.了解更多信息。

仿真输出与分析

要执行模拟,请使用运行按钮ltehdlCellSearchSimulin金宝appk将自动调用ltehdlCellSearch_initltehdlCellSearch\u分析通过InitFcnstopfcn.回调分别。请注意,建立一段时间ltehdlDownlinkSyncDemod第一次运行时的模型参考。仿真生成两种主要类型的输出:(i)展示在顶级的块ltehdlCellSearch框图显示键检测参数,(ii)在模拟结束时生成四个图。

NCellIDTDDMode.TimingOffset.频率细胞,cellSearchDone所有输出都有关联的展示块。它们的值在使用捕获的空中波形的模拟结束时显示如下(eNodeBWaveform.mat)刺激。

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

  • 输入波形对时间的幅度。

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

  • 每个尝试的PSS搜索窗口(在这种情况下)和检测到的PSS的位置。

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

频率估计图中显示了频率估计器的输出与时间的关系。在10 ms频率估计时间窗口结束时,频率估计被加载到寄存器中,并用于校正频率偏移。该值也显示在图上。在这种情况下,频率偏移刚好低于500 Hz,在-7.5 kHz至+7.5 kHz范围内频率恢复算法的适用范围。

小区ID由两个组件组成,ncellid1.ncellid2.哪里ncellid1.是SSS序列号,也是SSS序列号ncellid2.是PSS序列号(见附录A)。这PSS搜索图中显示了所有三个PSS相关器输出和PSS阈值。因此,在PSS#1上的波形中检测到PSS约17 msNCellID2 = 1

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

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

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

  • TDD1:TDD位置的指标,用于对应于第1个半帧的SSS序列

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

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

NCellID=3*NCellID1+NCellID2=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

其中NCELID2是0到2之间的PSS序列号,NCELID1是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持续时间跨越CP持续时间来利用这一点,其中延迟是有用部分的持续时间。实际上,接收信号与自身的延迟版本交联。积分器输出的大小在符号边界处具有峰值。这些峰值处的信号的相位角与频率偏移有关。该方法用于本示例,并与附加平均组合以估计频率偏移。该算法可以检测-7.5 kHz至+7.5 kHz的频率偏移。

PSS检测

通过将接收的信号与时域中的所有三种可能的PSS序列连续地交联来执行PSS检测。另外,在每个时间步骤中计算相关器的跨度内的信号的能量,然后缩放以产生阈值。PSS检测算法旨在通过在10毫秒的时间窗口内挑选最大PSS相关度量来选择最强的单元格。以下伪代码描述了搜索算法:

初始化前10名MS搜索窗口的位置
对于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序列的计算相关度量对应于对应于第2个半帧计算信号的SSS序列的SSS序列的SSS序列的相关度量基于阈值结束
如果任何指标超过阈值,则丢弃不超过阈值的相关指标:从SSS检测到的幸存指标中选择最大的相关指标:中断循环并进入下一个处理阶段,否则SSS未检测到:将SSS搜索窗口稍后移动半帧结束
结尾

小区搜索插图

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

参考文献

1.3GPP TS 36.214“物理层”

相关的话题