此示例显示了如何设计针对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下有效地执行检测,并且可以使用资源共享技术来优化硬件实现。
以下步骤描述了接收器操作。
频率估计块估计在10 ms周期上的频率偏移。
然后在1.92 MSP和30.72 MSPS样本流上激活频率校正块。
频率估计阶段完成后,PSS检测立即开始。
当PSS检测检测有效PSS信号时,SSS检测开始。如果找到有效的SSS,这意味着已检测到有效的单元格,并且现在已知双工模式。
计算单元ID和帧起始位置。
在下一个帧边界上,接收器开始从30.72 MSPS样本流中提取OFDM符号。每个符号通过2048点FFT来执行OFDM解调。
附录B提供了本例中使用的单元格搜索和选择算法的更多细节。
顶级ltehdlCellSearch.slx
如下所示。这个模型参考文献ltehdlDownlinkSyncDemod.slx
.ltehdlCellSearch_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函数中调用此函数InitFcn
的ltehdlDownlinkSyncDemod.只有Decordordiagnosticsbus.
这里使用函数的输出。总线对象存储在基本工作区中,使其可供ltehdlDownlinkSyncDemod和ltehdlCellSearch模型。
[〜,〜,〜,〜,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_init和ltehdlCellSearch\u分析通过InitFcn和stopfcn.回调分别。请注意,建立一段时间ltehdlDownlinkSyncDemod第一次运行时的模型参考。仿真生成两种主要类型的输出:(i)展示在顶级的块ltehdlCellSearch框图显示键检测参数,(ii)在模拟结束时生成四个图。
这NCellID那TDDMode.那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 Coder™许可证。使用makehdl
和makehdltb
命令来生成HDL代码和HDL测试台手机搜索高密度脂蛋白子系统。请注意,由于生成的测试向量的长度,测试禁止生成可能需要一段时间。
这手机搜索高密度脂蛋白子系统在Xilinx®Zynq®-7000 ZC706评估板上合成。岗位和路线资源利用情况如下表所示。该设计满足时钟频率为200mhz的定时要求。
资源使用_______________ _____ Slice register 44658 Slice LUTs 20271 RAMB18 25 RAMB36 11 DSP48 110
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工具箱).
本节介绍模型使用以检测eNodeB信号的算法。该算法旨在应对诸如频率偏移,噪声和干扰等现实的世界条件,以及随着时间的推移频率偏移,噪声和干扰,以及PSS和SSS的SNR的变化。为了在存在这种情况下检测eNodeB,该示例使用三种技术:
在PSS和SSS检测之前应用频率恢复。
动态阈值用于验证PSS和SSS相关度量,并最小化虚警概率。
进行多次尝试来检测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“物理层”