主要内容

NR HDL MIB Recovery for FR2

本示例演示如何设计一个5G NR主信息块(MIB)恢复模型,该模型为HDL代码生成和硬件实现进行了优化,并支持频率范围1 (FR1)和频率范围2 (FR2)。金宝app

介绍

5G信号塔可以在FR1或FR2频段工作。FR1覆盖6ghz以上的频段,FR2覆盖6ghz以上的频段,包括毫米波频段。这个示例介绍了支持FR2所需的功能以及升级现有FR1设计的过程。金宝app

本例中描金宝app述的Simulink®模型是用于5G NR FR1和FR2的MIB恢复的定点hdl优化实现。本示例是一个相关示例,展示了设计和部署5G NR单元搜索和MIB恢复算法到硬件的工作流。该图显示了完整的工作流。

此工作流中的每一步都由一个或多个相关示例演示。

  1. MATLAB黄金参考算法步骤由NR Cell Search and MIB and SIB1 Recovery(5 g工具箱)示例,其中显示了浮点黄金参考算法。

  2. MATLAB硬件参考算法步骤由NR HDL下行链路接收器MATLAB参考例如,它对硬件友好的算法建模并生成测试波形。此MATLAB®代码操作浮点数据样本的向量和矩阵,不支持HDL代码生成。金宝app

  3. 金宝appSimulink定点实现模型Step包含多个示例。的NR HDL细胞搜索示例演示了一个使用与MATLAB参考相同算法的5G小区搜索Simulink子金宝app系统。的NR HDL MIB恢复example增加广播信道解码和MIB恢复子系统。的NR HDL SIB1恢复示例添加了一个恢复SIB1资源网格的子系统,并展示了如何使用MATLAB参考代码解码其输出。FR2的NR HDL MIB恢复示例(本示例)展示了扩展到支持FR2的单元格搜索和MIB恢复模型。金宝app这些模型对定点数据进行操作,并针对HDL代码生成进行了优化。

  4. 金宝appSimulink SoC部署模型步骤由在soc上部署NR HDL参考应用示例,它构建在定点实现模型之上,并使用硬件支持包在硬件上部署算法。金宝app

有关如何使用MATLAB和Simulink一起开发可部署模型的一般描述,请参见金宝appfpga和asic的无线通信设计

文件结构

本示例使用这些文件。

金宝app仿真软件模型

  • nrhdlMIBRecovery.slx:这个Simu金宝applink模型将SSB检测器和SSB解码器的处理结合到一个集成模型中,显示了完整的MIB恢复过程。该模型使用nrhdlSSBDetectionCore.slxnrhdlSSBDecodingCore.slx模型参考。

  • nrhdlSSBDecodingCore.slx:该模型参考实现单边带译码算法。

  • nrhdlSSBDetectionCore.slx:该模型参考实现SSB检测算法。

金宝app模型数据字典

  • nrhdlReceiverData.sldd:此Simul金宝appink数据字典包含定义示例模型中包含的总线的总线对象。

MATLAB代码

  • runMIBRecoveryModelFR2.m:该脚本运行并验证nrhdlMIBRecovery模型具有FR2波形。

  • nrhdlexamples:此包包含MATLAB参考代码和验证实现模型的实用函数。

单边带检测

介绍设备中SSB检测的变更情况NR HDL细胞搜索支持FR2所需的示例。金宝app它详细说明了MATLAB参考和Simulink实现的算法需求,并描述了为HDL代码生成所做的优化。金宝app

单边带检测算法执行搜索和解调给定的子载波间隔(SCS)。SCS可选择15 kHz或30 kHz的FR1和120 kHz或240 kHz的FR2。要添加FR2功能,必须支持新的SCS选项。金宝app探测器根据SCS将接收到的信号向下采样到表中所示的速率之一来搜索单边带。然后将信号与PSS序列相互关联。

SCS千赫采样率(MHz ) _________ _________________ 15 3.84 7.68 120 30.72 240 61.44

为了适应FR2中ssb增加的带宽,使用了122.88 Msps的输入采样率(相比之下,FR1的设计为61.44 Msps)。定时参考单位不变,仍然在样品中测量61.44 Msps。对于SCS为15、30、120和240 kHz,定时参考计数器的步长分别为16、8、2和1。该模型包括一个改进的DDC设计,支持这些额外的副载波间隔及其相应的采样率。金宝appDDC校正频率偏移,然后向下采样数据到61.44 MHz。DDC的输出是SCS选择子系统的输入。这个子系统为每个SCS选项创建数据流,通过用半带滤波器连续地向下采样数据。所有四个流都是对齐的,当在不同的子载波间隔之间切换时,可以保持定时参考。所选的流与三个PSS序列中的每个相关联,以检测ssb。

这些相关器在时域的FPGA实现使用576个dsp,比只支持FR1的版本多4倍。金宝app资源的这种变化是因为采样率减少了可以在过滤器中实现的资源共享的数量。采用频域重叠叠加的方法来最小化DSP的使用,以增加延迟为代价。图中显示了nrhdlSSBDetectionCore模型。该子系统计算重叠添加方法的四个阶段:FFT,乘以三组频域系数(每个PSS一个),IFFT,以及后续窗口的重叠和添加。该实现使用了一个FFT、三个复乘子和三个ifft,总共需要48个DSP块。

单边带解码

介绍SSB解码算法增加FR2支持所需的更新。金宝app有关FR1模型的完整描述,请参阅NR HDL MIB恢复的例子。这个例子详细说明了MATLAB参考和Simulink实现的算法要求。金宝app

SSB译码算法解码SSB中包含的广播信道(BCH)。解码过程输出被检测SSB的MIB和波束索引。在FR1中,可以独立波束形成的ssb的最大数目是8个。FR2支金宝app持发射64个ssb,每个ssb都有自己的波束。BCH的含量在FR1和FR2之间变化,以适应不同的最大束数。

nrhdlexamples.ssbDecode功能和nrhdlSSBDecodingCore模型接受Lmax作为输入。Lmax是一个蜂窝基站可以传输的最大波束数,其值取决于载波频率。有效的设置LmaxFR1为4或8,FR2为64。Lmax影响BCH处理子系统的解码和最终BCH有效负载的解析方式。

MIB复苏模拟

使用runMIBRecoveryModelFR2脚本运行一个FR2 MIB恢复仿真并验证结果。脚本在MATLAB命令窗口中显示其进度。模拟使用nrhdlMIBRecovery模型,它引用nrhdlSSBDetectionCorenrhdlSSBDecodingCore模型。模拟的输入刺激是包含SS突发的FR2波形。

  • SSB模式是情况D。

  • 副载波间距为120khz。

  • NCellID是249。

  • 主动SSB通过SSB指数24:31传输。

这个脚本生成一个图,显示突发波形的资源网格。每个资源元素的颜色表示其振幅。图中显示了8个发射的ssb。ssb以不同的功率级别产生,以模拟UE通常接收到的信号。

仿真使用MATLAB参考在波形中搜索SSBs。该表显示了搜索过程中检测到的ssb及其参数。选择PSS相关性最强的单边带进行解调和解码,进行测试nrhdlMIBRecovery模型。将子载波间距、PSS序列、定时偏移和频率偏移估计传递到模型中,以指定要解调和解码的SSB。这个表格显示了解码过程的最终结果。其中包括仿真和MATLAB参考结果进行比较。

runMIBRecoveryModelFR2;
搜索ssb使用MATLAB参考。MATLAB中找到的SSBs:NCellID2 timingOffset pssCorrelation pssEnergy frequencyOffset ________ ____________ ______________ _________ _______________ 0 1.0918e+05 0.42856 0.9903 51134 0 1.1137e+05 0.76446 1.6985 49836 0 1.1576e+05 0.27392 0.66928 48771 0 1.1795e+05 4.138 7.8159 49815 0 1.2456e+05 0.58574 1.249 51829 0 1.2675e+05 1.2834 2.7073 49390 0 1.3131 e+05 0.18099使用MATLAB参考解调最强的SSBs。使用MATLAB参考对单边带进行解码。利用Simulink模型对最强的单边带进行解调。金宝appnrhdlMIBRecovery运行。### nrhdlSSBDecodingCore的模型参考仿真目标是最新的。### nrhdlSSBDetectionCore模型参考仿真目标是最新的。构建时间:0h 0m 7.1689s .............. Successfully decoded SSB with Simulink model MATLAB decoded information pbchPayload: 218103955 ssbIndex: 27 hrf: 0 err: 0 mib: [1×1 struct] Simulink decoded information pbchPayload: 218103955 ssbIndex: 27 hrf: 0 err: 0 mib: [1×1 struct] MATLAB decoded MIB parameters NFrame: 105 SubcarrierSpacingCommon: 120 k_SSB: 0 DMRSTypeAPosition: 2 PDCCHConfigSIB1: 0 CellBarred: 0 IntraFreqReselection: 0 Simulink decoded MIB parameters NFrame: 105 SubcarrierSpacingCommon: 120 k_SSB: 0 DMRSTypeAPosition: 2 PDCCHConfigSIB1: 0 CellBarred: 0 IntraFreqReselection: 0

HDL代码生成与实现结果

要为本示例生成HDL代码,您必须拥有HDL Coder™产品。使用makehdlmakehdltb命令来生成HDL代码和nrhdlmibrerecovery /MIB Recovery子系统的HDL测试台。合成了用于Xilinx®Zynq®-7000 ZC706评估板的HDL代码。该表显示了每个模型参考和组合模型的岗位和路线资源利用结果。该设计满足时钟频率为200mhz的定时要求。

资源nrhdlMIBRecovery nrhdlSSBDetectionCore nrhdlSSBDecodingCore _______________ ________________ _____________________ ____________________ Slice register 64317 55969 8302 Slice LUTs 43304 32380 11138 RAMB18 40 34 6 RAMB36 10 55 DSP48 207 170 37

相关的话题