主要内容

NR HDL MIB恢复

本例展示了如何设计一个针对HDL代码生成和硬件实现优化的5G NR同步信号块(SSB)解码和主信息块(MIB)恢复模型。

简介

本例中描金宝app述的Simulink®模型是5G NR频率范围1 (FR1)的SSB解码和MIB恢复的定点HDL优化实现。这个例子是一个相关的集合,更多信息见NR HDL参考应用概述

MIB恢复需要SSB检测、解调和解码。本例主要讨论SSB解码。描述了SSB检测和解调NR HDL单元搜索的例子。本例介绍了SSB解码Simulink模型,并使用MATLAB参考生成测试输入并验证金宝app模型的行为。然后,该示例描述了一个结合了SSB检测、解调和解码的Simu金宝applink模型,以从基带波形中恢复MIB。

SSB被检测到并解调后,需要对其进行解码,提取MIB的内容。SSB解码需要搜索解调参考信号(DMRS)、信道估计和相位均衡、广播信道(BCH)解码等步骤,如下图所示。

文件结构

本例使用这些文件。

金宝app仿真软件模型

  • nrhdlSSBDecoding.slx:该Simul金宝appink模型模拟了MIB恢复过程中SSB解码步骤的行为。

  • nrhdlMIBRecovery.slx:该Simul金宝appink模型将SSB检测器和SSB解码器的处理结合到一个集成模型中,说明了完整的MIB恢复过程。

  • nrhdlSSBDecodingCore.slx:该模型实现了SSB解码算法。

  • nrhdlPolarDecodingChainCore.slx:该模型实现了共极性解码链。

  • nrhdlSSBDetectionFR1Core.slx:该模型实现了SSB检测算法。

  • nrhdlDDCFR1Core.slx:这个模型实现了一个DDC来为SIB1和ssb创建样本流。

金宝appSimulink数据字典

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

MATLAB代码

  • runSSBDecodingModel.m:此脚本使用MATLAB参考实现单元格搜索算法,然后运行nrhdlSSBDecoding金宝app仿真软件模型。该脚本使用5G工具箱和MATLAB参考代码验证模型的操作。

  • runMIBRecoveryModel.m:该脚本使用MATLAB参考来执行SSB检测算法的搜索模式,然后运行nrhdlMIBRecovery金宝app仿真软件模型。该脚本使用5G工具箱和MATLAB参考代码验证模型的操作。

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

NR HDL SSB解码

这张图显示了nrhdlSSBDecoding模型。模型的顶层从MATLAB基本工作空间读取信号,将它们传递给SSB解码子系统,并将输出写回工作空间。ParseMIB子系统接受pbchPayload并解释位字段以产生MIB参数输出。

SSB解码子系统

单边带解码子系统引用nrhdlSSBDecodingCore而且nrhdlPolarDecodingChainCore模型。该子系统实现DMRS搜索、信道估计和均衡、QPSK符号解调、解扰、速率恢复、极性解码和CRC解码。此处理被分为两个模型,以允许nrhdlPolarDecodingChainCore在SSB解码和SIB1 CORESET0解码之间共享NR HDL SIB1恢复的例子。本节描述该模型的输入和输出。

输入

  • startProcessing: 1位控制信号,表示所有数据已写入且cellID和Lmax有效。

  • cellID: 10位无符号数字,用于为检测到的SSB提供cell ID号。

  • Lmax: 2位无符号数,表示突发最大ssb数。0表示4个,1表示8个。

  • 数据: 16位有符号复值信号,携带SSB的4个OFDM符号。

  • dataValid:验证数据的1位控制信号。

  • 重置:复位处理的1位控制信号。

输出

  • pbchStatus: 2位无符号值,表示PBCH解码的进度。有关此信号的可能值的更多信息,请参阅下面。

  • bchStatus: 3位无符号值,表示BCH解码的进度。有关此信号的可能值的更多信息,请参阅下面。

  • ssbIndex3Lsb: 3位无符号值,是DMRS搜索过程和Lmax计算的SSB索引的最低有效位的3位。

  • pbchPayload: 32位无符号值,包含MIB和额外的PBCH定时数据。

  • validOut:验证ssbIndex3Lsb和pbchPayload的1位控制信号。

  • nextSSB: 1位控制信号,指示核心何时可以开始处理下一个SSB。可用于对背靠背SSB解码的输入。

PBCH Status信号状态

  • 0:闲置

  • 1: SSB网格数据读入

  • 2:执行DMRS搜索

  • 3.:进行PBCH符号解调

BCH Status信号状态

  • 0:闲置

  • 1:执行速率恢复

  • 2:进行极性解码

  • 3.: CRC错误(结束状态)

  • 4: CRC通过,MIB检测到(结束状态)

SSB解码模型

的顶层nrhdlSSBDecodingCore模型。输入数据是包含同步信号块(SSB)的4个OFDM符号,其值在+/-1范围内缩放。当所有SSB数据都输入到模型中时,模型开始处理,并且断言startProcessing。startProcessing信号还表明NCellID和Lmax输入是有效的。

SSB缓冲+ DMRS搜索子系统执行DMRS搜索。传入数据存储在RAM缓冲区中,直到断言startProcessing为止,这表明所有必需的信息都可用来启动DMRS搜索过程。DMRS搜索从RAM中读取DMRS符号,并与8个可能的DMRS序列进行关联,选择最强的相关值来确定ibar_SSB。DMRS搜索完成后,将使用ibar_SSB生成信道估计所需的参考DMRS。参考DMRS连同接收到的PBCH符号和相关的DMRS从模型中输出。这是用来驱动nrhdlPolarDecodingChainCore模型。

方法返回的有效负载位的解扰和解交织nrhdlPolarDecodingChainCore模型。

极性解码链模型

nrhdlPolarDecodingChain该模型执行信道估计和均衡、QPSK符号解调、解扰、速率恢复以及极性和CRC解码。这种信号处理链对于BCH和下行控制信息(DCI)的解码都是常见的。

信道est +均衡子系统使用接收到的数据和参考DMRS进行信道估计。信道估计在OFDM符号内的DMRS位置之间应用线性插值,但在任何剩余载波频率偏移的情况下不跨时间平均。然后执行QPSK符号的相位均衡,随后进行QPSK解调和解扰,使用解扰移位索引和NCellID输入来播种扰频器。后续处理对解扰后的数据执行速率恢复、极性解码和CRC解码。的极速率恢复子系统包括信号缩放和字长缩减,为极性解码准备数据。然后将伸缩的、速率恢复的软位传递给NR Polar解码器块,后者也执行CRC解码。NR Polar Decoder块的err输出端口指示解码是否成功或遇到任何错误。

SSB解码模拟设置

框图显示了这个示例实现的模拟设置。5G Toolbox™功能用于生成测试波形。然后使用SSB检测器的MATLAB参考代码搜索并解调波形内最强的SSB。该结果为SSB解码阶段提供了测试输入。将测试数据传递给MATLAB和Simulink实现,并对输出进行比较,验证Simuli金宝appnk模型的运行。

SSB解码模拟

使用runSSBDecodingModel脚本运行SSB解码模拟。脚本在MATLAB命令提示符中显示其进度。最后给出了在MATLAB和Simulink中对SSB进行解码的结果,结果表明两者完全匹配。金宝appDMRS搜索相关性强度与均衡后的PBCH QPSK符号的图表明MATLAB和Simulink的信号匹配度很好。金宝app

runSSBDecodingModel;
生成测试波形。选择模拟案例:模拟情况下单边带模式共同PDCCH副载波间距配置SIB1信噪比dB Lmax最强的单边带索引  _______________ ___________ _________________________ _________________ ______ ___________________ ____ " SimCase 1”“C”30 164 50 4 8寻找SSBs使用MATLAB的参考。解调最强SSB使用MATLAB参考。使用MATLAB参考解码SSB。利用Simulink模型对SSB进行解码。金宝appnrhdlSSBDecoding运行。开始串行模型参考仿真构建nrhdlPolarDecodingChainCore的模型参考仿真目标是最新的。模型参考模拟目标nrhdlSSBDecodingCore是最新的。构建总结0的2个模型构建(2个模型已经更新)构建持续时间:0h 0m 0.59046s ..........MIB successfully decoding by金宝app Simulink model MATLAB解码的信息pbchPayload: 17637376 ssbIndex: 4 hrf: 0 err: 0 MIB: [1×1 struct] Simulink解码的信息pbchPayload: 17637376 ssbIndex: 4 hrf: 0 err: 0 MIB: [1×1 struct] MATLAB解码的MIB参数NFrame: 0 SubcarrierSpacingCommon: 30 k_SSB: 0 DMRSTypeAPosition: 3 PDCCHConfigSIB1: 164 cellblocked: 0 IntraFreqReselection: 0 Simulink解码的MIB参数NFrame: 0 SubcarrierSpacingCommon: 30 k_SSB: 0 DMRSTypeAPosition: 3 PDCCHConfigSIB1: 164 CellBarred: 0 IntraFreqReselection: 0

MIB恢复模型

nrhdlMIBRecovery模型连接了for SSB解码模型和SSB检测模型,以创建一个完整的MIB恢复实现。该模型可用于从5G基带波形中恢复MIB。这个脚本runMIBRecoveryModel可以用来运行这个模型,并与MATLAB参考进行比较。为了减少所需的处理时间,算法的单元搜索部分在MATLAB中执行,然后,一旦确定了最强的SSB,使用Simulink模型重新获取,解调和解码SSB。金宝app

当SSB解码器达到状态8时,检测器的状态信号用于启动SSB解码器,表示解调完成,已找到SSS,解调网格已输出。当SSB解码器得到解调网格并接收到startProcessing信号时,它将解码SSB,输出PBCH负载,然后解析PBCH负载以提取MIB数据。

HDL代码生成和实现结果

要为这个示例生成HDL代码,您必须拥有HDL Coder™许可证。使用makehdl而且makehdltb命令来生成HDL代码和一个HDL测试台nrhdlSSBDecoding /单边带解码nrhdlMIBRecovery / MIB恢复子系统。由此产生的HDL代码合成了Xilinx®Zynq®-7000 ZC706评估板。该表显示了哨所和路线资源利用的结果。该设计满足时钟频率为150mhz的定时要求。

nrhdlSSBDecoding模型的资源利用率:

资源使用情况_______________ _____ Slice Registers 9114 Slice LUTs 11635 RAMB18 8 RAMB36 5 DSP48 37

nrhdlMIBRecovery模型的资源利用情况:

资源使用情况_______________ _____ Slice Registers 45540 Slice LUTs 32186 RAMB18 21 RAMB36 5 DSP48 255

相关的例子

更多关于