NR PDSCH吞吐量利用信道状态信息反馈gydF4y2Ba
这个引用模拟测量物理下行共享信道(PDSCH)吞吐量5 g的新收音机(NR)链接。模拟使用信道状态信息(CSI)反馈来调整这些下行共享信道(DL-SCH)和PDSCH传输参数:目标代码速率、调制、层数、多输入多输出(MIMO)预编码矩阵。此外,这种模拟可以探索CSI压缩技术超出了5 g NR基于人工智能(AI)。gydF4y2Ba
介绍gydF4y2Ba
这图显示了步骤PDSCH吞吐量在这个参考模拟估算。发射机(gNodeB)包括传输信道编码阶段(DL-SCH)和PDSCH一代。传输参数是基于的CSI测量接收机(问题)执行和反馈到发射机。这种机制的目的是适应信道传输参数条件。仿真还控制着CSI反馈延迟。gydF4y2Ba
这种模拟是基于gydF4y2BaNR PDSCH吞吐量gydF4y2Ba使用CSI的例子来自接收者的反馈调整传输参数。gydF4y2Ba
适应在5 g NR CSI反馈和链接gydF4y2Ba
用户设备(UE)使用信道状态信息参考信号(CSI-RS)估计CSI的下行信道响应和报告一组指标。CSI报告包括这些指标,定义在TS 38.214 5.2.2节:gydF4y2Ba
排名指标(RI)gydF4y2Ba
预编码矩阵指示(PMI)gydF4y2Ba
医院药学部通道质量指标()gydF4y2Ba
据gNodeB使用CSI配置目标码率,调制,层数,米姆在后续PDSCH传输预编码矩阵一个可配置的延迟。一般来说,gNodeB可以选择不同的传输参数的问题报告。然而,在这个模拟中,gNodeB严格遵循问题的建议。问题如何选择国际扶轮的更多信息,PMI,医院药学部和,请参阅gydF4y2Ba5 g NR下行CSI报告gydF4y2Ba的例子。gydF4y2Ba
适应超出5 g NR CSI反馈和链接gydF4y2Ba
您可以使用此模拟探索其他CSI技术,如描述的一个gydF4y2BaCSI与Autoencoders反馈gydF4y2Ba。您可以配置问题使用autoencoder人工智能神经网络编码信道估计和反馈这种形式的CSI gNodeB。这个gNodeB解码压缩CSI和适应目标码率,调制,层数,米姆预编码矩阵。gNodeB选择天线系统预编码矩阵的特征向量恢复通道估计和一个合适的调制和编码方案(MCS)从TS 38.214表5.1.3.1-1条件选择MIMO预编码器。最后,它适用于选定的配置在随后PDSCH传输后一个可配置的延迟。gydF4y2Ba
仿真假设这些条件CSI的两种形式的反馈:gydF4y2Ba
没有上行传输。CSI反馈传播gNodeB没有问题的错误。gydF4y2Ba
固定PDSCH复审委员会分配仿真的长度。不存在调度器适应分配信道条件。gydF4y2Ba
FDD操作。gydF4y2Ba
没有HARQ的支万博1manbetx持。gydF4y2Ba
仿真长度和信噪比点gydF4y2Ba
集的长度模拟10 ms帧的数量。生产统计上有意义的吞吐量结果,您必须更新帧的数量(gydF4y2BaNFramesgydF4y2Ba
大量。把信噪比(信噪比)来模拟。每一层的信噪比是每资源元素定义(重新),包括所有天线信号和噪声的影响。一个解释信噪比的定义,这个例子使用,看到gydF4y2Ba信噪比的定义中使用链接模拟gydF4y2Ba的例子。gydF4y2Ba
simParameters =结构();gydF4y2Ba%明显simParameters变量包含所有关键仿真参数gydF4y2BasimParameters。NFrames = 2;gydF4y2Ba% 10 ms的帧数gydF4y2BasimParameters。SNRIn = -10 [10];gydF4y2Ba%信噪比范围(dB)gydF4y2Ba
信道估计配置gydF4y2Ba
逻辑变量gydF4y2BaPerfectChannelEstimatorgydF4y2Ba
控制信道估计和同步行为。当这个变量设置gydF4y2Ba真正的gydF4y2Ba
,模拟使用完美的信道估计和同步。当这个变量设置gydF4y2Ba假gydF4y2Ba
,模拟使用实际的信道估计和同步根据接收到的值PDSCH解调参考信号(DM-RS)。gydF4y2Ba
simParameters。PerfectChannelEstimator =gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
模拟诊断gydF4y2Ba
的变量gydF4y2BaDisplaySimulationInformationgydF4y2Ba
控制仿真的显示信息。gydF4y2Ba
simParameters。DisplaySimulationInformation =gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
的gydF4y2BaDisplayDiagnosticsgydF4y2Ba
国旗使误差向量幅度的策划(维生素)每层。这个情节监控均衡后的接收信号的质量。维生素与每层图显示:gydF4y2Ba
维生素与每层每槽,这显示了维生素与随着时间不断发展。gydF4y2Ba
维生素与每层每资源块,显示频率的维生素。gydF4y2Ba
这个数字与模拟的发展和更新每个插槽。通常,低信噪比或通道消失会导致降低信号质量(高维生素)。通道影响每一层都是不同的。因此,维生素与跨层值可以不同。gydF4y2Ba
simParameters。DisplayDiagnostics =gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
载体和PDSCH配置gydF4y2Ba
设置波形类型、PDSCH数字命理学(副载波间距(SCS)和循环前缀(CP)类型),和其他传输配置参数。gydF4y2Ba
% SCS载波参数gydF4y2BasimParameters。载体= nrCarrierConfig;gydF4y2Ba%载波资源网格配置gydF4y2BasimParameters.Carrier。NSizeGrid = 52个;gydF4y2Ba%的带宽资源块的数量gydF4y2BasimParameters.Carrier。SubcarrierSpacing = 15;gydF4y2Ba% 15、30、60、120(赫兹)gydF4y2BasimParameters.Carrier。CyclicPrefix =gydF4y2Ba“正常”gydF4y2Ba;gydF4y2Ba%“正常”或“扩展”(CP相关延长60 kHz SCS)gydF4y2BasimParameters.Carrier。NCellID = 1;gydF4y2Ba%细胞身份gydF4y2Ba
指定一个full-band slot-wise PDSCH传输和储备第一2 OFDM符号。gydF4y2Ba
simParameters。PDSCH = nrPDSCHConfig;gydF4y2Ba%这个PDSCH定义是所有PDSCH传输模拟的基础gydF4y2Ba%定义PDSCH时间分配在一个插槽gydF4y2BasimParameters.PDSCH。MappingType =gydF4y2Ba“一个”gydF4y2Ba;gydF4y2Ba% PDSCH映射类型(“A”(slot-wise),“B”(非slot-wise))gydF4y2BasymAlloc = [2 simParameters.Carrier.SymbolsPerSlot-2];gydF4y2Ba%开始每个PDSCH的象征和符号的数量分配gydF4y2BasimParameters.PDSCH。SymbolAllocation = symAlloc;gydF4y2Ba%定义PDSCH每槽充满电网频率资源分配gydF4y2BasimParameters.PDSCH。PRBSet = 0: simParameters.Carrier.NSizeGrid-1;gydF4y2Ba%匆忙标识符gydF4y2BasimParameters.PDSCH。NID = simParameters.Carrier.NCellID; simParameters.PDSCH.RNTI = 1;
DM-RS配置,指定为7.4.1.1 TS 38.211中定义的部分。DM-RS端口组是动态的,根据CSI反馈(RI)。gydF4y2Ba
simParameters.PDSCH.DMRS。DMRSTypeAPosition =gydF4y2Ba2gydF4y2Ba;gydF4y2Ba%映射类型。第一个DM-RS符号位置(2、3)gydF4y2BasimParameters.PDSCH.DMRS。DMRSLength =gydF4y2Ba
1gydF4y2Ba;gydF4y2Ba%的前置DM-RS符号(1(单符号),2(双符号))gydF4y2BasimParameters.PDSCH.DMRS。DMRSAdditionalPosition =gydF4y2Ba
2gydF4y2Ba;gydF4y2Ba%额外DM-RS标志位置(最大范围0…3)gydF4y2BasimParameters.PDSCH.DMRS。DMRSConfigurationType =gydF4y2Ba
2gydF4y2Ba;gydF4y2Ba% DM-RS配置类型(1、2)gydF4y2BasimParameters.PDSCH.DMRS。NumCDMGroupsWithoutData =gydF4y2Ba
3gydF4y2Ba;gydF4y2Ba% CDM组没有数据(1、2、3)gydF4y2Ba
指定附加DL-SCH和PDSCH仿真参数。设置的频率粒度MIMO预编码器,TS 38.214节中定义5.1.2.3,调制和编码方案表,定义在TS 38.214节5.1.3.1,和开销传输块大小的计算。集gydF4y2BaXOverheadgydF4y2Ba
空(gydF4y2Ba[]gydF4y2Ba
)自动选择基于CSI-RS REs分配。gydF4y2Ba
simParameters。PDSCHExtension =结构();simParameters.PDSCHExtension。PRGBundleSize =gydF4y2Ba4gydF4y2Ba;gydF4y2Ba% 2、4或[]表示“宽带”gydF4y2BasimParameters.PDSCHExtension。MCSTable =gydF4y2Ba
“表1”gydF4y2Ba;gydF4y2Ba%“表1”,…,“Table4”gydF4y2BasimParameters.PDSCHExtension。XOverhead =gydF4y2Ba
[]gydF4y2Ba;gydF4y2Ba% 0、6、12、18或自动选择[]。gydF4y2Ba
配置LDPC译码算法和最大LDPC迭代。可用的解码算法的gydF4y2Ba信仰传播gydF4y2Ba
”、“gydF4y2Ba分层的信念传播gydF4y2Ba
”、“gydF4y2Ba规范化min-sumgydF4y2Ba
”和“gydF4y2Ba抵消min-sumgydF4y2Ba
”。gydF4y2Ba
simParameters.PDSCHExtension。LDPCDecodingAlgorithm =gydF4y2Ba
“规范化min-sum”gydF4y2Ba;simParameters.PDSCHExtension。MaximumLDPCIterationCount = 6;gydF4y2Ba
天线面板的配置gydF4y2Ba
配置天线面板几何通过指定天线面板的数量(gydF4y2Ba )和他们的尺寸(gydF4y2Ba 和gydF4y2Ba )。gydF4y2Ba 和gydF4y2Ba 是正交极化天线元素的数量为每个小组在水平和垂直方向,分别和gydF4y2Ba 的数量列数组面板。这个图显示了一个天线面板的安排及其维度。gydF4y2Ba
天线系统的预编码码TS 38.214节中定义5.2.2.2限制的值gydF4y2Ba ,gydF4y2Ba ,gydF4y2Ba 5 g NR支持。万博1manbetx对于配置输入变量传输与single-polarized天线元素的输出设置面板尺寸[1]。接收机面板尺寸并不局限的电报密码本。gydF4y2Ba
simParameters.TransmitAntennaArray。NumPanels =gydF4y2Ba1gydF4y2Ba;gydF4y2Ba%的面板水平维度(Ng)gydF4y2BasimParameters.TransmitAntennaArray。PanelDimensions =gydF4y2Ba
(2 - 2)gydF4y2Ba;gydF4y2Ba%的列和行数面板(N1、N2)gydF4y2BasimParameters.ReceiveAntennaArray。NumPanels =gydF4y2Ba
1gydF4y2Ba;gydF4y2Ba%的面板水平维度(Ng)gydF4y2BasimParameters.ReceiveAntennaArray。PanelDimensions = 1 [2];gydF4y2Ba%的列和行数面板(N1、N2)gydF4y2Ba
由于极化,天线的总数gydF4y2Ba 。gydF4y2Ba
simParameters。NTxAnts = numAntennaElements(simParameters.TransmitAntennaArray); simParameters.NRxAnts = numAntennaElements(simParameters.ReceiveAntennaArray);
CSI-RS配置gydF4y2Ba
仿真配置一个8-port CSI-RS,映射到每个天线元素的传输面板。CSI-RS端口的数量必须与传输数组面板的尺寸,如表5.2.2.2.1-2 TS 38.214中定义为单面板和表5.2.2.2.2-1多层面板电报密码本。这些表展示CSI-RS行数字兼容数组选择面板尺寸。gydF4y2Ba
配置CSI-RS传输参数。gydF4y2Ba
simParameters。csir = nrCSIRSConfig;simParameters.CSIRS。CSIRSType =gydF4y2Ba“nzp”gydF4y2Ba;gydF4y2Ba%的nzp”、“zp”gydF4y2BasimParameters.CSIRS。RowNumber =gydF4y2Ba
6gydF4y2Ba;gydF4y2Ba% 1…18gydF4y2BasimParameters.CSIRS。NumRB = simParameters.Carrier.NSizeGrid - simParameters.CSIRS.RBOffset; simParameters.CSIRS.CSIRSPeriod = [10 0]; simParameters.CSIRS.SymbolLocations = 4; simParameters.CSIRS.SubcarrierLocations = [0,3,6,9]; simParameters.CSIRS.Density =“一个”gydF4y2Ba;disp ([gydF4y2Ba“CSI-RS端口数量:”gydF4y2Banum2str (simParameters.CSIRS.NumCSIRSPorts)gydF4y2Ba“。”gydF4y2Ba])gydF4y2Ba
CSI-RS端口数量:8。gydF4y2Ba
csirsCDMLengths = getCSIRSCDMLengths (simParameters.CSIRS);gydF4y2Ba%检查CSI-RS端口和传输天线元素的数量匹配gydF4y2Ba%和多个CSI-RS资源的一致性gydF4y2BavalidateCSIRSConfig (simParameters.Carrier simParameters.CSIRS simParameters.NTxAnts);gydF4y2Ba
CSI反馈配置gydF4y2Ba
指定CSI反馈模式之一”gydF4y2BaRI-PMI-CQIgydF4y2Ba
”、“gydF4y2BaAI CSI压缩gydF4y2Ba
”,或“gydF4y2Ba完美的CSIgydF4y2Ba
”。在所有模式,问题可以使用CSI-RS执行完美的或实际的信道估计。gydF4y2Ba
RI-PMI-CQIgydF4y2Ba:问题选择和报告适当的国际扶轮,定期医院药学部PMI,。据gNodeB遵循CSI配置目标码率,调制,层数,米姆在后续传输预编码矩阵一个可配置的延迟。gydF4y2Ba
AI CSI压缩gydF4y2Ba:问题压缩通道估计使用人工智能神经网络autoencoder,并将它们报告给gNodeB定期。gNodeB复苏通道估计和选择适当的目标代码,调制,层数,米姆预编码矩阵。gNodeB适用选择配置在随后PDSCH传输后一个可配置的延迟。您可以指定文件名的神经网络。这个模拟下载pretrained神经网络是有效的只有当发射天线的数量是8和载体网格52 RB和15 kHz副载波间距的大小。对于其他发射天线数和带宽,你需要训练神经网络中描述gydF4y2BaCSI与Autoencoders反馈gydF4y2Ba。gydF4y2Ba
完美的CSIgydF4y2Ba:定期gNodeB的信道估计问题报告。这种模式相当于“gydF4y2Ba
AI CSI压缩gydF4y2Ba
”模式不压缩的损失。gydF4y2Ba
simParameters.CSIReportMode=“RI-PMI-CQI”gydF4y2Ba;gydF4y2Ba%’RI-PMI-CQI”、“AI CSI压缩”,“完美CSI”gydF4y2Ba
指定CSI报告配置。CSI报告配置的更多信息,见gydF4y2Ba5 g NR下行CSI报告gydF4y2Ba的例子。gydF4y2Ba
simParameters。CSIReportConfig =结构();simParameters.CSIReportConfig。时间= [5 0];gydF4y2Ba% Peridocity和抵消插槽的CSI报告gydF4y2Ba如果gydF4y2BasimParameters.CSIReportMode==“RI-PMI-CQI”gydF4y2BasimParameters.CSIReportConfig。CQITable =gydF4y2Ba“表1”gydF4y2Ba;gydF4y2Ba%“表1”、“表”,“Table3”gydF4y2BasimParameters.CSIReportConfig。CQIMode =gydF4y2Ba
“宽带”gydF4y2Ba;gydF4y2Ba%“宽带”、“子”gydF4y2BasimParameters.CSIReportConfig。PMIMode =gydF4y2Ba
“子”gydF4y2Ba;gydF4y2Ba%“宽带”、“子”gydF4y2BasimParameters.CSIReportConfig。CodebookType =gydF4y2Ba
“Type1SinglePanel”gydF4y2Ba;gydF4y2Ba%’Type1SinglePanel”、“Type1MultiPanel,类型2的gydF4y2BasimParameters.CSIReportConfig。SubbandSize =gydF4y2Ba
4gydF4y2Ba;gydF4y2Ba%部分波段大小RB (4、8、16、32)gydF4y2BasimParameters.CSIReportConfig。CodebookMode =gydF4y2Ba
1gydF4y2Ba;gydF4y2Ba% 1、2gydF4y2BasimParameters.CSIReportConfig。RIRestriction = [];gydF4y2Ba%空没有等级限制gydF4y2BasimParameters.CSIReportConfig。NumberOfBeams =gydF4y2Ba
2gydF4y2Ba;gydF4y2Ba% 2,3,4。只对II型电报密码本gydF4y2BasimParameters.CSIReportConfig。PhaseAlphabetSize =gydF4y2Ba
8gydF4y2Ba;gydF4y2Ba% 4、8。只对II型电报密码本gydF4y2BasimParameters.CSIReportConfig。SubbandAmplitude =gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba%真/假。只对II型电报密码本gydF4y2BasimParameters.CSIReportConfig。NStartBWP = [];gydF4y2Ba%空整个载波信号gydF4y2BasimParameters.CSIReportConfig。NSizeBWP = [];gydF4y2Ba%空整个载波信号gydF4y2Ba%配置指定的CSI与天线面板尺寸报告gydF4y2BasimParameters.CSIReportConfig。PanelDimensions =getCSIReportPanelDimensions(simParameters.TransmitAntennaArray,simParameters.CSIReportConfig.CodebookType);其他的gydF4y2Ba% AI CSI压缩gydF4y2Ba%指定文件名的人工智能神经网络gydF4y2BasimParameters。AINetworkFilename =gydF4y2Ba“csiTrainedNetwork.mat”gydF4y2Ba;gydF4y2Ba结束gydF4y2Ba
在插槽配置CSI处理延迟。问题,这个延迟时间槽的数量之间的接待CSI-RS和CSI的可用性的反馈。gNodeB,延迟是时间段的数量CSI报告的接收和传输之间使用推荐的CSI。gydF4y2Ba
simParameters。UEProcessingDelay = 7;simParameters。BSProcessingDelay = 1;gydF4y2Ba
传播通道配置gydF4y2Ba
配置延迟,延迟传播,和最大传播信道的多普勒频移的模拟。CDL和TDL通道模型都支持。万博1manbetx面板尺寸和正交极化元素中指定gydF4y2Ba天线面板的配置gydF4y2Ba定义了天线阵列的几何CDL频道。gydF4y2Ba
simParameters。DelayProfile =gydF4y2Ba“CDL-C”gydF4y2Ba;gydF4y2Ba% CDL-A,…,‘CDL-E’,‘TDL-A’,……,“TDL-E”gydF4y2BasimParameters。DelaySpread = 300 e-9;gydF4y2Ba% sgydF4y2BasimParameters。MaximumDopplerShift = 5;gydF4y2Ba%赫兹gydF4y2BasimParameters。频道= createChannel (simParameters);gydF4y2Ba
处理循环gydF4y2Ba
确定为每一个信噪比点PDSCH吞吐量,仿真执行这些步骤:gydF4y2Ba
更新DL-SCH和PDSCH传输参数(目标代码率、层数、调制和MIMO预编码矩阵)。此步骤仅适用于当一个新的CSI报告是可用的。gydF4y2Ba
CSI-RS信号映射到网格资源。gydF4y2Ba
进行信道编码(DL-SCH)和PDSCH编码。地图PDSCH和PDSCH DM-RS网格资源。gydF4y2Ba
OFDM调制生成的网格。gydF4y2Ba
信号通过与AWGN衰落信道。gydF4y2Ba
执行同步和OFDM解调。gydF4y2Ba
执行PDSCH DM-RS信道估计。gydF4y2Ba
执行均衡。gydF4y2Ba
解码PDSCH DL-SCH,测量PDSCH吞吐量。gydF4y2Ba
执行基于CSI-RS的信道估计。gydF4y2Ba
创建CSI报告。gydF4y2Ba
饲料CSI报告回发射机与适当的延迟。gydF4y2Ba
减少总模拟时间,您可以并行执行信噪比循环利用并行计算工具箱™。注释掉gydF4y2Ba为gydF4y2Ba
声明和取消gydF4y2BaparforgydF4y2Ba
声明。如果并行计算工具箱没有安装,gydF4y2BaparforgydF4y2Ba
默认为正常gydF4y2Ba为gydF4y2Ba
声明。因为parfor-loop迭代并行执行在一个不确定的秩序,为每一个信噪比点显示仿真信息可以相互交织在一起的。关闭模拟信息显示,设置gydF4y2BadisplaySimulationInformationgydF4y2Ba
变量为false。gydF4y2Ba
%数组来存储所有信噪比点的最大吞吐量gydF4y2BamaxThroughput = 0(长度(simParameters.SNRIn), 1);gydF4y2Ba%数组来存储所有信噪比点的模拟吞吐量gydF4y2BasimThroughput = 0(长度(simParameters.SNRIn), 1);gydF4y2Ba%单元阵列存储CSI报告每个信噪比点gydF4y2BaCSIReport = {};gydF4y2Ba为gydF4y2BasnrIdx = 1:元素个数(simParameters.SNRIn)gydF4y2Ba% parfor snrIdx = 1:元素个数(simParameters.SNRIn)gydF4y2Ba%减少总模拟时间,你可以执行这个循环gydF4y2Ba%并行使用并行计算工具箱。注释掉”的gydF4y2Ba%声明和取消“parfor”声明。gydF4y2Ba%重置重复性的随机数发生器gydF4y2Barng (0,gydF4y2Ba“旋风”gydF4y2Ba);gydF4y2Ba%显示模拟信息在这个信噪比点gydF4y2BadisplaySNRPointProgress (simParameters snrIdx);gydF4y2Ba%充分simulation-level参数结构,这样的副本gydF4y2Ba%不PCT变量在使用parfor播出gydF4y2BasimParamLocal = simParameters;gydF4y2Ba%设置发射机,传播渠道,接收机,CSIgydF4y2Ba%反馈配置参数。gydF4y2Ba(载体、encodeDLSCH pdsch、pdschextra csir, mtx) = setupTransmitter (simParamLocal);(通道、maxChDelay N0) = setupChannel (simParamLocal snrIdx);[decodeDLSCH, pathFilters timingOffset] = setupReceiver (simParamLocal);csiFeedbackOpts = getCSIFeedbackOptions (simParamLocal snrIdx);gydF4y2Ba%获得最初的CSI报告基于完美的信道估计gydF4y2Ba% Tx可以使用适应传输参数。gydF4y2BacsiReports = initialCSIReport (simParamLocal snrIdx,载体,csir,通道,csiFeedbackOpts);csiAvailableSlots = 0;gydF4y2Ba%的总数槽模拟时期gydF4y2BaNSlots = simParamLocal。NFrames* carrier.SlotsPerFrame;%遍历整个波形长度gydF4y2Ba为gydF4y2Banslot = 0: NSlots-1gydF4y2Ba%更新承运人槽编号为新槽gydF4y2Ba母舰。NSlot = nslot;%使用新配置层数和CSI报告gydF4y2Ba%的调制PDSCH DL-SCH如果速度和目标代码gydF4y2Ba%有一个新的报告。gydF4y2Ba[isNewReport, repIdx] = ismember (nslot csiAvailableSlots);gydF4y2Ba如果gydF4y2BaisNewReport [pdsch.Modulation pdschextra。TargetCodeRate mtx) = hCSIDecode(载体、pdsch pdschextra, csiReports (repIdx) csiFeedbackOpts);pdsch。NumLayers = size(wtx,1); encodeDLSCH.TargetCodeRate = pdschextra.TargetCodeRate;结束gydF4y2Ba%创建一个OFDM资源网格的一个插槽gydF4y2BadlGrid = nrResourceGrid(载体、csirs.NumCSIRSPorts);gydF4y2Ba% CSI-RS槽资源网格的映射gydF4y2Ba[csirsInd, csirsInfo] = nrCSIRSIndices(载体,csir);csir csirsSym = nrCSIRS(载体);dlGrid (csirsInd) = csirsSym;csirsTransmission = ~ isempty (csirsInd);gydF4y2Ba% PDSCH保留CSI-RS REsgydF4y2Bapdsch。ReservedRE = csirsInd-1;gydF4y2Ba%基于指数gydF4y2Ba% PDSCH代gydF4y2Ba%计算传输的传输块大小的槽gydF4y2Ba[pdschIndices, pdschIndicesInfo] = nrPDSCHIndices(载体,pdsch);trBlkSizes = nrTBS (pdsch.Modulation、pdsch.NumLayers元素个数(pdsch.PRBSet) pdschIndicesInfo.NREPerPRB, pdschextra.TargetCodeRate, pdschextra.XOverhead);gydF4y2Ba%交通阻塞一代gydF4y2Ba为gydF4y2BacwIdx = 1: pdsch.NumCodewordsgydF4y2Ba%的新数据对当前码字然后创建一个新的DL-SCH交通阻塞gydF4y2BatrBlk =兰迪([0,1],trBlkSizes (cwIdx), 1);setTransportBlock (encodeDLSCH trBlk cwIdx-1);resetSoftBuffer (decodeDLSCH cwIdx-1);gydF4y2Ba结束gydF4y2Ba%编码DL-SCH传输块gydF4y2Ba房车= 0 (1、pdsch.NumCodewords);codedTrBlocks = encodeDLSCH (pdsch.Modulation pdsch.NumLayers,gydF4y2Ba…gydF4y2BapdschIndicesInfo.G, RV);gydF4y2Ba% PDSCH调制和预编码gydF4y2BapdschSymbols = nrPDSCH(载体,pdsch codedTrBlocks);[pdschAntSymbols, pdschAntIndices] = hPRGPrecode(大小(dlGrid)、carrier.NStartGrid pdschSymbols, pdschIndices, mtx);dlGrid (pdschAntIndices) = pdschAntSymbols;gydF4y2Ba% PDSCH DM-RS预编码和映射gydF4y2BadmrsSymbols = nrPDSCHDMRS(载体、pdsch);dmrsIndices = nrPDSCHDMRSIndices(载体、pdsch);[dmrsAntSymbols, dmrsAntIndices] = hPRGPrecode(大小(dlGrid)、carrier.NStartGrid dmrsSymbols, dmrsIndices, mtx);dlGrid (dmrsAntIndices) = dmrsAntSymbols;gydF4y2Ba% OFDM调制gydF4y2BatxWaveform = nrOFDMModulate(载体、dlGrid);gydF4y2Ba%通过通道模型传递数据。附加零结束的时候gydF4y2Ba%传播波形冲洗频道内容。这些零gydF4y2Ba%考虑推迟引入的通道。gydF4y2BatxWaveform = [txWaveform;0 (maxChDelay、尺寸(txWaveform 2)));gydF4y2Ba% #好< AGROW >gydF4y2Ba[rxWaveform, pathGains sampleTimes] =通道(txWaveform);gydF4y2Ba%添加情况下接收到的时域波形gydF4y2Ba噪音= N0 *复杂(randn(大小(rxWaveform)), randn(大小(rxWaveform)));rxWaveform = rxWaveform +噪声;gydF4y2Ba如果gydF4y2Ba(simParamLocal.PerfectChannelEstimator)gydF4y2Ba%完美同步。使用提供的信息gydF4y2Ba%频道找到最强的多路径组件gydF4y2BapathFilters = getPathFilters(渠道);[timingOffset,杂志]= nrPerfectTimingEstimate (pathGains pathFilters);gydF4y2Ba其他的gydF4y2Ba%实际同步。将接收到的波形gydF4y2Ba%的PDSCH DM-RS获取时间偏移和gydF4y2Ba%的相关性大小。接收方更新时间偏移量gydF4y2Ba%只有当相关程度高。gydF4y2Ba(t, mag) = nrTimingEstimate(载体、rxWaveform dmrsIndices, dmrsSymbols);timingOffset = hSkipWeakTimingOffset (timingOffset t杂志);gydF4y2Ba%显示一个警告,如果估计时间抵消超过gydF4y2Ba%最大信道延迟gydF4y2Ba如果gydF4y2BatimingOffset > maxChDelay警告([gydF4y2Ba的估计时间偏移(% d)大于最大信道延迟(% d)。gydF4y2Ba…gydF4y2Ba这将导致一个解码失败。这可能是由于低信噪比,gydF4y2Ba…gydF4y2Ba”或不够DM-RS符号同步成功。”gydF4y2Ba,timingOffset maxChDelay);gydF4y2Ba结束gydF4y2Ba结束gydF4y2BarxWaveform = rxWaveform (1 + timingOffset:最终,);gydF4y2Ba%完成OFDM解调接收的数据重新创建gydF4y2Ba%网格资源,包括填充时,实用gydF4y2Ba%同步解调结果在一个不完整的槽gydF4y2BarxGrid = nrOFDMDemodulate(载体、rxWaveform);[K, L R] =大小(rxGrid);gydF4y2Ba如果gydF4y2Ba(L < carrier.SymbolsPerSlot) rxGrid =猫(2 rxGrid 0 (K, carrier.SymbolsPerSlot-L, R));gydF4y2Ba结束gydF4y2Ba如果gydF4y2Ba(simParamLocal.PerfectChannelEstimator)gydF4y2Ba%完美的信道估计,使用路径的价值收益gydF4y2Ba%由渠道提供。这个通道估计没有gydF4y2Ba%包括发射机预编码的影响gydF4y2Ba命令= nrPerfectChannelEstimate(载体,pathGains、pathFilters timingOffset, sampleTimes);gydF4y2Ba%得到完美的噪声估计(从噪声实现)gydF4y2BanoiseGrid = nrOFDMDemodulate(载体、噪音(1 + timingOffset:最终,));噪音= var (noiseGrid (:));gydF4y2Ba%得到PDSCH从接收到的网格和资源元素gydF4y2Ba%信道估计gydF4y2Ba[pdschRx pdschHest, ~, pdschHestIndices] = nrExtractResources (pdschIndices, rxGrid命令);gydF4y2Ba%预编码应用到信道估计gydF4y2BapdschHest = hPRGPrecode(大小(命令),运营商。NStartGrid,pdschHest,pdschHestIndices,permute(wtx,[2 1 3]));其他的gydF4y2Ba%实际收到网格和之间的信道估计gydF4y2Ba%每个传输层,使用PDSCH DM-RSgydF4y2Ba%层。这个通道估计包括的影响gydF4y2Ba%发射机预编码gydF4y2Ba(命令、噪音)= hSubbandChannelEstimate(载体、rxGrid dmrsIndices, dmrsSymbols, pdschextra.PRGBundleSize,gydF4y2Ba“CDMLengths”gydF4y2Ba,pdsch.DMRS.CDMLengths);gydF4y2Ba%的平均噪音估计PRGs和层gydF4y2Ba噪音=意味着(噪音,gydF4y2Ba“所有”gydF4y2Ba);gydF4y2Ba%得到PDSCH从接收到的网格和资源元素gydF4y2Ba%信道估计gydF4y2Ba[pdschRx, pdschHest] = nrExtractResources (pdschIndices rxGrid,命令);gydF4y2Ba结束gydF4y2Ba%均衡gydF4y2Ba[pdschEq, eqCSIScaling] = nrEqualizeMMSE (pdschRx pdschHest,噪音);gydF4y2Ba%解码PDSCH物理通道gydF4y2Ba[dlschLLRs, rxSymbols] = nrPDSCHDecode(载体、pdsch pdschEq,噪音);gydF4y2Ba%显示维生素与每层每槽和RBgydF4y2Ba如果gydF4y2Ba(simParamLocal.DisplayDiagnostics) plotLayerEVM (NSlots、nslot pdsch,大小(dlGrid) pdschIndices, pdschSymbols, pdschEq);gydF4y2Ba结束gydF4y2Ba% llr规模gydF4y2BaeqCSIScaling = nrLayerDemap (eqCSIScaling);gydF4y2Ba% CSI demapping扩展层gydF4y2Ba为gydF4y2BacwIdx = 1: pdsch.NumCodewordsQm = length(dlschLLRs{cwIdx})/length(rxSymbols{cwIdx});%每个符号位gydF4y2BaeqCSIScaling {cwIdx} = repmat (eqCSIScaling {cwIdx}。”、Qm 1);gydF4y2Ba%增加每个每个符号gydF4y2BadlschLLRs {cwIdx} = dlschLLRs {cwIdx}。* eqCSIScaling {cwIdx} (:);gydF4y2Ba% llr规模gydF4y2Ba结束gydF4y2Ba%解码DL-SCH传输通道gydF4y2BadecodeDLSCH。TransportBlockLength = trBlkSizes;decodeDLSCH。TargetCodeRate = pdschextra.TargetCodeRate;[decbits, blkerr] = decodeDLSCH (dlschLLRs, pdsch.Modulation pdsch.NumLayers, RV);gydF4y2Ba%存储值计算的吞吐量gydF4y2BasimThroughput (snrIdx) = simThroughput (snrIdx) + (~ blkerr。* trBlkSizes)总和;maxThroughput (snrIdx) = maxThroughput (snrIdx) +总和(trBlkSizes);gydF4y2Ba% CSI测量和编码gydF4y2Ba如果gydF4y2BacsirsTransmissiongydF4y2Ba如果gydF4y2Ba(~ simParamLocal.PerfectChannelEstimator)gydF4y2Ba%只考虑基于CSI-RS NZP-CSI-RS符号和指数gydF4y2Ba%信道估计gydF4y2Banzpind = (csirsSym ~ = 0);gydF4y2Ba基于CSI-RS %计算实际的信道估计。使用gydF4y2Ba%的时间平均覆盖所有的窗口gydF4y2Ba% CSI-RS传播符号。gydF4y2Ba(命令、噪音)= nrChannelEstimate (rxGrid载体,gydF4y2Ba…gydF4y2BacsirsInd (nzpind) csirsSym (nzpind),gydF4y2Ba“CDMLengths”gydF4y2Ba,csirsCDMLengths);gydF4y2Ba结束gydF4y2Ba%生成CSI报告。存储报告时使用gydF4y2Ba%发射机。CSI反馈的延迟gydF4y2Ba%取决于CSI周期性和问题处理报告gydF4y2Ba%的延迟。CSI的槽是可供使用的gydF4y2Ba%发射机取决于BS处理延迟。gydF4y2Bacsir rxCSIReport = hCSIEncode(载体,命令,噪音,csiFeedbackOpts);csiFeedbackSlot = nextCSISlot (1 + nslot + simParamLocal.UEProcessingDelay csiFeedbackOpts.CSIReportPeriod);csiAvailableSlots结束(+ 1)= 1 + csiFeedbackSlot + simParamLocal.BSProcessingDelay;gydF4y2Ba% #好< SAGROW >gydF4y2BacsiReports结束(+ 1)= rxCSIReport;gydF4y2Ba% #好< SAGROW >gydF4y2Ba结束gydF4y2Ba% slot-wise打印信息gydF4y2Ba如果gydF4y2Ba(simParamLocal.DisplaySimulationInformation) printSlotInfo (NSlots,载体,pdsch、pdschextra blkerr, trBlkSizes. / pdschIndicesInfo.G csirsTransmission, csiReports, repIdx)gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba为每一个信噪比点%商店CSI报告gydF4y2BaCSIReport {snrIdx} = csiReports;gydF4y2Ba% #好< SAGROW >gydF4y2Ba%动态在命令窗口中显示结果gydF4y2Ba如果gydF4y2Ba(simParamLocal.DisplaySimulationInformation)流(gydF4y2Ba' \ n 'gydF4y2Ba);gydF4y2Ba结束gydF4y2Ba流(gydF4y2Ba' \ nThroughput (Mbps) % d帧(s) = % .4f \ n 'gydF4y2BasimParamLocal.NFrames 1 e-6 * simThroughput (snrIdx) / (simParamLocal.NFrames * 10 e - 3));gydF4y2Ba结束gydF4y2Ba
模拟传输方案1 (8 x4)和SCS = 15 khz CDL-C频道在-10分贝信噪比2 10 ms框架使用RI (s),医院药学部PMI, CSI的反馈。gydF4y2Ba
(5.00%)NSlot = 0:成功传播(层= 1,Mod = 16 qam, TCR = 0.479, CR = 0.456)。使用最初的CSI。CSI-RS传播。(10.00%)NSlot = 1:传输成功(层= 1,Mod = 16 qam, TCR = 0.479, CR = 0.422)。(15.00%)NSlot = 2:传输成功(层= 1,Mod = 16 qam, TCR = 0.479, CR = 0.422)。(20.00%)NSlot = 3:传输成功(层= 1,Mod = 16 qam, TCR = 0.479, CR = 0.422)。(25.00%)NSlot = 4:传输成功(层= 1,Mod = 16 qam, TCR = 0.479, CR = 0.422)。(30.00%)NSlot = 5:传输成功(层= 1,Mod = 16 qam, TCR = 0.479, CR = 0.422)。(35.00%)NSlot = 6:传输成功(层= 1,Mod = 16 qam, TCR = 0.479, CR = 0.422)。(40.00%)NSlot = 7:传输成功(层= 1,Mod = 16 qam, TCR = 0.479, CR = 0.422)。 (45.00%) NSlot= 8: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.422). (50.00%) NSlot= 9: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.422). (55.00%) NSlot=10: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.456). CSI-RS transmission. (60.00%) NSlot=11: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.422). (65.00%) NSlot=12: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.422). Using CSI from NSlot= 0. (70.00%) NSlot=13: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.422). (75.00%) NSlot=14: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.422). (80.00%) NSlot=15: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.422). (85.00%) NSlot=16: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.422). (90.00%) NSlot=17: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.422). (95.00%) NSlot=18: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.422). (100.00%) NSlot=19: Transmission succeeded (Layers=1, Mod=16QAM, TCR=0.479, CR=0.422).
吞吐量(Mbps) 2帧(s) = 9.4800gydF4y2Ba
模拟传输方案1 (8 x4)和SCS = 15 khz CDL-C频道10 db信噪比2 10 ms框架使用RI (s),医院药学部PMI, CSI的反馈。gydF4y2Ba
(5.00%)NSlot = 0:成功传播(层= 3,Mod = 64 qam, TCR = 0.650, CR = 0.624)。使用最初的CSI。CSI-RS传播。(10.00%)NSlot = 1:传输成功(层= 3,Mod = 64 qam, TCR = 0.650, CR = 0.578)。(15.00%)NSlot = 2:传输成功(层= 3,Mod = 64 qam, TCR = 0.650, CR = 0.578)。(20.00%)NSlot = 3:传输成功(层= 3,Mod = 64 qam, TCR = 0.650, CR = 0.578)。(25.00%)NSlot = 4:传输成功(层= 3,Mod = 64 qam, TCR = 0.650, CR = 0.578)。(30.00%)NSlot = 5:传输成功(层= 3,Mod = 64 qam, TCR = 0.650, CR = 0.578)。(35.00%)NSlot = 6:传输成功(层= 3,Mod = 64 qam, TCR = 0.650, CR = 0.578)。(40.00%)NSlot = 7:传输成功(层= 3,Mod = 64 qam, TCR = 0.650, CR = 0.578)。 (45.00%) NSlot= 8: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.578). (50.00%) NSlot= 9: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.578). (55.00%) NSlot=10: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.624). CSI-RS transmission. (60.00%) NSlot=11: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.578). (65.00%) NSlot=12: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.578). Using CSI from NSlot= 0. (70.00%) NSlot=13: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.578). (75.00%) NSlot=14: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.578). (80.00%) NSlot=15: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.578). (85.00%) NSlot=16: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.578). (90.00%) NSlot=17: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.578). (95.00%) NSlot=18: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.578). (100.00%) NSlot=19: Transmission succeeded (Layers=3, Mod=64QAM, TCR=0.650, CR=0.578).
吞吐量(Mbps) 2帧(s) = 58.3840gydF4y2Ba
结果gydF4y2Ba
显示测量吞吐量随着信噪比的函数。gydF4y2Ba
图;情节(simParameters.SNRIn,1 e-6 * simThroughput / (simParameters.NFrames * 10 e - 3),gydF4y2Ba“啊——”。gydF4y2Ba)包含(gydF4y2Ba“信噪比(dB)”gydF4y2Ba);ylabel (gydF4y2Ba吞吐量(Mbps)的gydF4y2Ba);网格gydF4y2Ba在gydF4y2Ba;标题(sprintf (gydF4y2Ba' % s (%) % d) / NRB = % d / SCS = % dkHz / CSI: % s的gydF4y2Ba,gydF4y2Ba…gydF4y2BasimParameters.DelayProfile、simParameters.NTxAnts simParameters.NRxAnts,gydF4y2Ba…gydF4y2BasimParameters.Carrier.NSizeGrid simParameters.Carrier.SubcarrierSpacing,gydF4y2Ba…gydF4y2Bachar (simParameters.CSIReportMode)));gydF4y2Ba
如果gydF4y2BasimParameters.CSIReportMode==“RI-PMI-CQI”gydF4y2Baperc = 90;plotCQI (simParameters CSIReport全氯乙烯)gydF4y2Ba结束gydF4y2Ba
%包到合并结构关键参数和结果记录gydF4y2BasimResults。simParameters = simParameters;simResults。simThroughput = simThroughput;simResults。maxThroughput = maxThroughput;simResults。CSIReport = CSIReport;gydF4y2Ba
本地函数gydF4y2Ba
函数gydF4y2Ba(载体、eDLSCH pdsch、pdschextra csir, mtx) = setupTransmitter (simParameters)gydF4y2Ba%提取通道和信号电平参数,创建DL-SCH编码器和gydF4y2Ba%初始化天线系统预编码矩阵。gydF4y2Ba载体= simParameters.Carrier;pdsch = simParameters.PDSCH;pdschextra = simParameters.PDSCHExtension;csir = simParameters.CSIRS;gydF4y2Ba如果需要%选择XOverhead TBS计算gydF4y2Ba如果gydF4y2Bapdschextra isempty (pdschextra.XOverhead)。csir XOverhead = getXOverhead(载体);gydF4y2Ba结束gydF4y2Ba%创建DL-SCH编码器系统对象执行传输通道gydF4y2Ba%的编码gydF4y2BaeDLSCH = nrDLSCH;gydF4y2Ba%初始化天线系统预编码矩阵gydF4y2Bawtx = 1;gydF4y2Ba结束gydF4y2Ba函数gydF4y2Ba[decodeDLSCH, pathFilters timingOffset] = setupReceiver (simParameters)gydF4y2Ba%创建和配置DL-SCH解码器和初始化接收机参数gydF4y2Ba%创建DL-SCH解码器系统对象执行传输通道gydF4y2Ba%解码gydF4y2BadecodeDLSCH = nrDLSCHDecoder;decodeDLSCH。LDPCDecodingAlgorithm = simParameters.PDSCHExtension.LDPCDecodingAlgorithm;decodeDLSCH。MaximumLDPCIterationCount = simParameters.PDSCHExtension.MaximumLDPCIterationCount;gydF4y2Ba%初始化通道路径过滤器和时间偏移量。时间偏移量是gydF4y2Ba%更新每一个完美的同步,当槽gydF4y2Ba%为实际同步相关性强gydF4y2BapathFilters = [];timingOffset = 0;gydF4y2Ba结束gydF4y2Ba函数gydF4y2Ba频道= createChannel (simParameters)gydF4y2Ba%创建和配置传播通道。如果天线的数量gydF4y2Ba% 1,配置只有1极化,否则配置2偏振。gydF4y2Ba%的天线元素和偏振gydF4y2BanTxAnts = simParameters.NTxAnts;numTxPol = 1 + (nTxAnts > 1);nRxAnts = simParameters.NRxAnts;numRxPol = 1 + (nRxAnts > 1);gydF4y2Ba如果gydF4y2Ba包含(simParameters.DelayProfilegydF4y2BaCDL的gydF4y2Ba)gydF4y2Ba%创建CDL通道gydF4y2Ba频道= nrCDLChannel;gydF4y2Ba%在CDL Tx天线阵列配置通道。天线的数量gydF4y2Ba%元素取决于面板尺寸。天线的尺寸gydF4y2Ba%数组(M, N, P, Mg, Ng)。M和N行和列的数量gydF4y2Ba%的天线阵列。P偏振的数量(1或2)。MggydF4y2Ba% Ng是数组的行和列分别面板。请注意gydF4y2Ba%,N1和N2面板尺寸遵循不同的约定gydF4y2Ba%表示行和列的数量,分别。gydF4y2BatxArray = simParameters.TransmitAntennaArray;M = txArray.PanelDimensions (2);N = txArray.PanelDimensions (1);Ng = txArray.NumPanels;channel.TransmitAntennaArray。大小= [M N numTxPol 1 Ng);channel.TransmitAntennaArray。ElementSpacing = (0.5 - 0.5 1);gydF4y2Ba%元素波长间距gydF4y2Bachannel.TransmitAntennaArray。PolarizationAngles = 45 [-45];gydF4y2Ba%偏振角的度gydF4y2Ba% Rx CDL通道天线阵列配置gydF4y2BarxArray = simParameters.ReceiveAntennaArray;M = rxArray.PanelDimensions (2);N = rxArray.PanelDimensions (1);Ng = rxArray.NumPanels;channel.ReceiveAntennaArray。大小= [M N numRxPol 1 Ng);channel.ReceiveAntennaArray。ElementSpacing = (0.5 - 0.5 1);gydF4y2Ba%元素波长间距gydF4y2Bachannel.ReceiveAntennaArray。PolarizationAngles = [0 90];gydF4y2Ba%偏振角的度gydF4y2BaelseifgydF4y2Ba包含(simParameters.DelayProfilegydF4y2Ba“TDL”gydF4y2Ba)= nrTDLChannel频道;通道。NumTransmitAntennas = nTxAnts; channel.NumReceiveAntennas = nRxAnts;其他的gydF4y2Ba错误(gydF4y2Ba“渠道不支持。”万博1manbetxgydF4y2Ba)gydF4y2Ba结束gydF4y2Ba%配置常见的信道参数:延迟,延迟扩展gydF4y2Ba%最大的多普勒频移gydF4y2Ba通道。DelayProfile = simParameters.DelayProfile;通道。DelaySpread = simParameters.DelaySpread;通道。MaximumDopplerShift = simParameters.MaximumDopplerShift;gydF4y2Ba%得到信息后的基带波形OFDM调制的一步gydF4y2BawaveInfo = nrOFDMInfo (simParameters.Carrier);gydF4y2Ba%更新频道基于载体信息的采样率gydF4y2Ba通道。SampleRate = waveInfo.SampleRate;gydF4y2Ba结束gydF4y2Ba函数gydF4y2Ba(通道、maxChannelDelay N0) = setupChannel (simParameters snrIdx)gydF4y2Ba%重置传播渠道。获得最大的渠道gydF4y2Ba%延迟并计算AWGN标准差。gydF4y2Ba%提取通道gydF4y2Ba频道= simParameters.Channel;channel.reset ();gydF4y2Ba%获得信道的信息gydF4y2BachInfo =信息(渠道);maxChannelDelay = chInfo.MaximumChannelDelay;gydF4y2Ba%计算噪声标准差。由传输线正常化噪声功率gydF4y2Ba%大小用于OFDM调制的OFDM调制器应用gydF4y2Ba%正常化传播波形。gydF4y2BaSNRdB = simParameters.SNRIn (snrIdx);信噪比= 10 ^ (SNRdB / 10);waveInfo = nrOFDMInfo (simParameters.Carrier);N0 = 1 /√(2.0 *双(waveInfo.Nfft) *信噪比);gydF4y2Ba%也正常接收天线的数量如果通道gydF4y2Ba%这个正常化适用于输出gydF4y2Ba如果gydF4y2Ba通道。NormalizeChannelOutputs N0 = N0/sqrt(chInfo.NumOutputSignals);结束gydF4y2Ba结束gydF4y2Ba函数gydF4y2BacsiReport = initialCSIReport (simParameters snrIdx,载体,csir,通道,csiFeedbackOpts)gydF4y2Ba%得到一个初始CSI报告使用一个完美的信道估计gydF4y2Ba[命令,据nVar] = getInitialChannelEstimate(载体、通道simParameters.SNRIn (snrIdx));csiFeedbackOpts。PerfectChannelEstimator = true;csir。CSIRSPeriod =gydF4y2Ba“上”gydF4y2Ba;csir csiReport = hCSIEncode(载体,命令,据nVar, csiFeedbackOpts);gydF4y2Ba结束gydF4y2Ba函数gydF4y2Ba[estChannelGrid,据nVar] = getInitialChannelEstimate(载体、propchannel SNRdB)gydF4y2Ba%获得信道估计之前第一次传输。这可以使用gydF4y2Ba%获得初始传输参数gydF4y2BaofdmInfo = nrOFDMInfo(载体);chInfo = info (propchannel);gydF4y2Ba%克隆通道和路径收益和样品时间完美的时机gydF4y2Ba%和信道估计gydF4y2Ba频道=克隆(propchannel);释放(渠道);通道。ChannelFiltering = false;通道。NumTimeSamples = (ofdmInfo.SampleRate/1000/carrier.SlotsPerSubframe)+chInfo.MaximumChannelDelay; [pathGains,sampleTimes] = channel();%的时间同步gydF4y2BapathFilters = getPathFilters(渠道);抵消= nrPerfectTimingEstimate (pathGains pathFilters);gydF4y2Ba%完美的信道估计gydF4y2BaestChannelGrid = nrPerfectChannelEstimate(载体,pathGains pathFilters,抵消,sampleTimes);gydF4y2Ba%噪声方差(不占通道效果。)gydF4y2Ba据nVar = 10 ^ (-SNRdB / 10) /大小(estChannelGrid 3);gydF4y2Ba结束gydF4y2Ba函数gydF4y2Bacsir XOverhead = getXOverhead(载体)gydF4y2Ba%计算传输块大小XOverhead决心的基础上gydF4y2Ba% CSI-RS资源网格占用gydF4y2Ba[~,csirsInfo] = nrCSIRSIndices(载体,csir);csirsRE =长度(csirsInfo.KBarLBar{1}) *长度(csirsInfo.KPrime{1}) *长度(csirsInfo.LPrime {1});[~,XOverhead] = quantiz (csirsRE [0 6 12], [0 6 12 18]);gydF4y2Ba结束gydF4y2Ba函数gydF4y2BacdmLengths = getCSIRSCDMLengths (csir)gydF4y2Ba% CDMLENGTHS = getCSIRSCDMLengths (csir)返回给定的CDM的长度gydF4y2Bacsir % CSI-RS配置对象。gydF4y2BaCDMType = csirs.CDMType;gydF4y2Ba如果gydF4y2Ba~ iscell (csirs.CDMType) CDMType = {csirs.CDMType};gydF4y2Ba结束gydF4y2BaCDMTypeOpts = {gydF4y2Ba“noCDM”gydF4y2Ba,gydF4y2Ba“fd-CDM2”gydF4y2Ba,gydF4y2Ba“CDM4”gydF4y2Ba,gydF4y2Ba“CDM8”gydF4y2Ba};CDMLengthOpts = {[1], [2 1], [2 2], [2 - 4]};cdmLengths = CDMLengthOpts {strcmpi (CDMTypeOpts CDMType {1})};gydF4y2Ba结束gydF4y2Ba函数gydF4y2BacsiFeedbackOpts = getCSIFeedbackOptions (simParameters snrIdx)gydF4y2Ba%创建一个CSI反馈算法选择结构gydF4y2BacsiFeedbackOpts =结构();csiFeedbackOpts。CSIReportMode =simParameters.CSIReportMode;csiFeedbackOpts。CSIReportPeriod = simParameters.CSIReportConfig.Period;csiFeedbackOpts。CSIReportConfig = simParameters.CSIReportConfig;csiFeedbackOpts。PerfectChannelEstimator = simParameters.PerfectChannelEstimator;gydF4y2Ba如果gydF4y2BasimParameters.CSIReportMode==“人工智能CSI压缩”gydF4y2Ba%副本附加链接适应配置AI CSI压缩模式gydF4y2BacsiFeedbackOpts。AINetworkFilename = simParameters.AINetworkFilename;gydF4y2Ba%下载和提取pretrained CSI网络AI CSI压缩模式gydF4y2BadisplayProgress = (snrIdx = = 1);helperCSINetDownloadData (displayProgress);gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba函数gydF4y2BapanelDimensions = getCSIReportPanelDimensions (antennaArray codebookType)gydF4y2Ba据TS %配置天线阵列尺寸38.214节gydF4y2Ba% 5.2.2.2作为单一的面板向量(N1、N2)数组和一个向量gydF4y2Ba% (Ng, N1、N2)多层面板阵列。gydF4y2BapanelDimensions = antennaArray.PanelDimensions;gydF4y2Ba%添加数量的板如果电报密码本类型是多层面板gydF4y2Ba如果gydF4y2Bastrcmpi (codebookTypegydF4y2Ba“Type1MultiPanel”gydF4y2Ba(antennaArray) panelDimensions =。NumPanels panelDimensions];gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba函数gydF4y2Banslot csislot = nextCSISlot(期)gydF4y2Ba%返回第一个槽的槽数CSI反馈gydF4y2Ba%根据CSI报告周期gydF4y2Bap =时期(1);gydF4y2Ba%槽周期性gydF4y2Bao =时期(2);gydF4y2Ba%槽抵消gydF4y2Bacsislot = p *装天花板((nslot-o) / p) + o;gydF4y2Ba结束gydF4y2Ba函数gydF4y2Ba[numElemenets, numPol] = numAntennaElements (antArray)gydF4y2Ba%计算天线在天线阵列元素的数量gydF4y2Ba任何(antArray numPol = 1 +。PanelDimensions ~ = 1);numElemenets = numPol * antArray.NumPanels * prod (antArray.PanelDimensions);gydF4y2Ba结束gydF4y2Ba函数gydF4y2BavalidateCSIRSConfig(载体,csir nTxAnts)gydF4y2Ba% validateCSIRSConfig(载体,csir NTXANTS)验证CSI-RSgydF4y2Ba%的配置,给承运人特定配置对象载体,gydF4y2Bacsir % CSI-RS配置对象,发射天线的数量gydF4y2Ba% NTXANTS。gydF4y2Ba%验证CSI-RS端口的数量gydF4y2Ba如果gydF4y2Ba~ isscalar(独特(csirs.NumCSIRSPorts)错误(gydF4y2Ba“nr5g: InvalidCSIRSPorts”gydF4y2Ba,gydF4y2Ba…gydF4y2Ba所有CSI-RS资源必须配置为具有相同数量的CSI-RS港口。”gydF4y2Ba);gydF4y2Ba结束gydF4y2Ba%验证CSI-RS和TX天线阵列配置gydF4y2Ba如果gydF4y2Ba任何(csirs.Ports_Options (csirs.RowNumber) ~ = nTxAnts) rn = num2str(找到(csir。Ports_Options = = nTxAnts),gydF4y2Ba“% 3 d”,gydF4y2Ba);str =gydF4y2BaCSI-RS端口的数量必须等于Tx天线元素的数量。”gydF4y2Ba;str = (str sprintf (gydF4y2BaTx天线阵大小配置,有效CSI-RS行数(% s)。gydF4y2Barn (1: end-1)));错误(str)gydF4y2Ba结束gydF4y2Ba%验证CDM的长度gydF4y2Ba如果gydF4y2Ba~ iscell (csirs.CDMType) cdmType = {csirs.CDMType};gydF4y2Ba其他的gydF4y2BacdmType = csirs.CDMType;gydF4y2Ba结束gydF4y2Ba如果gydF4y2Ba(~ (strcmpi (cdmType cdmType{1})))错误(gydF4y2Ba“nr5g: InvalidCSIRSCDMTypes”gydF4y2Ba,gydF4y2Ba…gydF4y2Ba“所有CSI-RS资源必须配置CDM的长度相同。gydF4y2Ba);gydF4y2Ba结束gydF4y2Ba如果gydF4y2BanTxAnts ~ = csirs.NumCSIRSPorts(1)错误(gydF4y2Ba“nr5g: InvalidNumTxAnts”gydF4y2Ba,(gydF4y2Ba发射天线的数量(“gydF4y2Banum2str (nTxAnts)gydF4y2Ba…gydF4y2Ba”)必须等于CSI-RS端口的数量(“gydF4y2Banum2str (csirs.NumCSIRSPorts (1))gydF4y2Ba”)。”gydF4y2Ba]);gydF4y2Ba结束gydF4y2Ba%检查CSI-RS指数之间的重叠gydF4y2Bacsir csirsInd = nrCSIRSIndices(航空公司,gydF4y2Ba“OutputResourceFormat”gydF4y2Ba,gydF4y2Ba“细胞”gydF4y2Ba);numRes =元素个数(csirsInd);csirsIndAll =细胞(1、numRes);ratioVal = csirs.NumCSIRSPorts(1) /刺激(getCSIRSCDMLengths (csir));gydF4y2Ba为gydF4y2BaresIdx = 1: numResgydF4y2Ba如果gydF4y2Ba~ isempty (csirsInd {resIdx})网格= nrResourceGrid(载体,csirs.NumCSIRSPorts (1));[~,tempInd] = nrExtractResources (csirsInd {resIdx},网格);gydF4y2Ba如果gydF4y2Ba元素个数(tempInd) /元素个数(csirsInd {resIdx}) ~ = ratioVal错误(gydF4y2Ba“nr5g: OverlappedCSIRSREsSingleResource”gydF4y2Ba,(gydF4y2Ba“资源CSI-RS指数”gydF4y2Ba…gydF4y2Banum2str (resIdx)gydF4y2Ba“必须是唯一的。试着改变符号或副载波的位置。”gydF4y2Ba]);gydF4y2Ba结束gydF4y2BacsirsIndAll {resIdx} = tempInd (:);gydF4y2Ba为gydF4y2Baidx = 1: resIdx-1 overlappedInd = ismember (csirsIndAll {idx}, csirsIndAll {resIdx});gydF4y2Ba如果gydF4y2Ba任何(overlappedInd)错误(gydF4y2Ba“nr5g: OverlappedCSIRSREsMultipleResources”gydF4y2Ba,(gydF4y2Ba“资源的元素”gydF4y2Ba…gydF4y2Ba配置CSI-RS资源不能重叠。试着改变的符号或gydF4y2Ba…gydF4y2Ba“副载波CSI-RS资源的位置”gydF4y2Banum2str (idx)gydF4y2Ba“和资源”gydF4y2Banum2str (resIdx)gydF4y2Ba“。”gydF4y2Ba]);gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba函数gydF4y2BadisplaySNRPointProgress (simParameters snrIdx)gydF4y2Ba%输出信噪比一点进步gydF4y2Bastr = [gydF4y2Ba' \ nSimulating传输方案1 (%)% d)和“gydF4y2Ba…gydF4y2Ba' SCS = %和% s dkHz频道在% d % gdB信噪比10 ms框架(s) \ n 'gydF4y2Ba…gydF4y2Ba使用% s的CSI反馈。\ n”gydF4y2Ba];gydF4y2Ba开关gydF4y2BasimParameters.CSIReportModegydF4y2Ba情况下gydF4y2Ba“RI-PMI-CQI”gydF4y2BamodeText =gydF4y2Ba“医院药学部国际扶轮,PMI,”gydF4y2Ba;gydF4y2Ba情况下gydF4y2Ba“人工智能CSI压缩”gydF4y2BamodeText =gydF4y2Ba“压缩通道估计”gydF4y2Ba;gydF4y2Ba否则gydF4y2BamodeText =gydF4y2Ba信道估计的gydF4y2Ba;gydF4y2Ba结束gydF4y2BaSNRdB = simParameters.SNRIn (snrIdx);流(str, simParameters.NTxAnts simParameters.NRxAnts simParameters.Carrier.SubcarrierSpacing,gydF4y2Ba…gydF4y2BasimParameters.DelayProfile、SNRdB simParameters.NFrames modeText);gydF4y2Ba结束gydF4y2Ba函数gydF4y2BaprintSlotInfo (NSlots载体,pdsch、pdschextra blkerr, ECR, csirsTransmission, csiReports, reportIndex)gydF4y2Ba%打印当前的位置信息的传播gydF4y2Ba作战飞机= pdsch.NumCodewords;((pdsch cwLayers =地板。NumLayers + (0:ncw-1)) / ncw); infoStr = [];为gydF4y2BacwIdx = 1:作战飞机gydF4y2Ba如果gydF4y2Bablkerr infoStrCW =gydF4y2Ba“传输失败”gydF4y2Ba;gydF4y2Ba其他的gydF4y2BainfoStrCW =gydF4y2Ba“传输成功”gydF4y2Ba;gydF4y2Ba结束gydF4y2BainfoStrCW = sprintf (gydF4y2Ba“% 22 s(层= % d, Mod = % 5 s, TCR = %。3 f, CR = % .3f)。”gydF4y2Ba、infoStrCW cwLayers (cwIdx) pdsch.Modulation {cwIdx}, pdschextra.TargetCodeRate (cwIdx), ECR (cwIdx));gydF4y2Ba如果gydF4y2Ba(ncw > 1) infoStr = sprintf (gydF4y2Ba“% s \ n % s % s”gydF4y2Ba、infoStr sprintf (gydF4y2Ba“连续波% d: % s”gydF4y2BacwIdx-1) infoStrCW);gydF4y2Ba其他的gydF4y2BainfoStr = infoStrCW;gydF4y2Ba结束gydF4y2Ba结束gydF4y2BacsirsInfoStr = [];gydF4y2Ba如果gydF4y2BacsirsTransmission csirsInfoStr =gydF4y2Ba“CSI-RS传播。”gydF4y2Ba;gydF4y2Ba结束gydF4y2BacsifbInfoStr = [];gydF4y2Ba如果gydF4y2Ba母舰。NSlot == 0 csifbInfoStr =“使用初始CSI。”gydF4y2Ba;gydF4y2BaelseifgydF4y2BareportIndex > 0 csifbInfoStr = sprintf (gydF4y2Ba“使用CSI NSlot = % 2 d。”gydF4y2BacsiReports (reportIndex) .NSlot);gydF4y2Ba结束gydF4y2Banslot = carrier.NSlot;流(gydF4y2Ba' \ n (% 5.2 f % %) NSlot = % 2 d: % s的gydF4y2Ba100 * (nslot + 1) / NSlots nslot,加入([infoStr, csifbInfoStr csirsInfoStr]));gydF4y2Ba结束gydF4y2Ba函数gydF4y2BaplotLayerEVM (NSlots、nslot pdsch、siz pdschIndices, pdschSymbols, pdschEqSymbols)gydF4y2Ba%情节维生素与信息gydF4y2Ba持续的gydF4y2BaslotEVM;gydF4y2Ba持续的gydF4y2BarbEVMgydF4y2Ba持续的gydF4y2BaevmPerSlot;gydF4y2Ba持续的gydF4y2BanumLayers;maxNumLayers = 8;gydF4y2Ba如果gydF4y2Ba(nslot = = 0) slotEVM = comm.EVM;rbEVM = comm.EVM;evmPerSlot =南(NSlots maxNumLayers);numLayers = pdsch.NumLayers;图;gydF4y2Ba其他的gydF4y2Ba%的最大层数保持在传奇gydF4y2BanumLayers = max (numLayers pdsch.NumLayers);gydF4y2Ba结束gydF4y2Ba(Ns, P) = (pdschEqSymbols)大小;pdschEqSym = 0 (Ns, maxNumLayers);pdschSym = 0 (Ns, maxNumLayers);pdschEqSym (:, 1: P) = pdschEqSymbols;pdschSym (:, 1: P) = pdschSymbols;:evmPerSlot (nslot + 1) = slotEVM (pdschSym pdschEqSym);次要情节(2,1,1);情节(0:(NSlots-1)、evmPerSlotgydF4y2Ba“啊——”gydF4y2Ba);包含(gydF4y2Ba“槽数”gydF4y2Ba);ylabel (gydF4y2Ba'维生素(%)'gydF4y2Ba);传奇(gydF4y2Ba“层”gydF4y2Ba+ (1:numLayers),gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“EastOutside”gydF4y2Ba);标题(gydF4y2Ba“维生素与每层每槽”gydF4y2Ba);次要情节(2,1,2);(k ~ p) = ind2sub (siz pdschIndices);rbsubs =地板((k - 1) / 12);NRB = siz (1) / 12;evmPerRB =南(NRB maxNumLayers);gydF4y2Ba为gydF4y2Baν= 1:pdsch.NumLayersgydF4y2Ba为gydF4y2Barb =独特(rbsubs)。”this = (rbsubs==rb & p==nu); evmPerRB(rb+1,nu) = rbEVM(pdschSym(this),pdschEqSym(this));结束gydF4y2Ba结束gydF4y2Ba情节(0:(NRB-1)、evmPerRBgydF4y2Ba“x -”gydF4y2Ba);包含(gydF4y2Ba“资源块”gydF4y2Ba);ylabel (gydF4y2Ba'维生素(%)'gydF4y2Ba);传奇(gydF4y2Ba“层”gydF4y2Ba+ (1:numLayers),gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“EastOutside”gydF4y2Ba);标题([gydF4y2Ba“维生素与每层资源块,槽#”gydF4y2Banum2str (nslot)]);drawnow;gydF4y2Ba结束gydF4y2Ba函数gydF4y2BaplotCQI (simParameters CSIReport全氯乙烯)gydF4y2Ba%医院药学部情节值和百分位数gydF4y2Ba%计算值和百分位数gydF4y2Ba地中海= cellfun (@ (x)中位数([x.CQI]), CSIReport);p1 = cellfun (@ (x) prctile ([x.CQI], 50-perc / 2) CSIReport);p2 = cellfun (@ (x) prctile ([x.CQI], 50 +全氯乙烯/ 2),CSIReport);gydF4y2Ba%计算医院药学部的百分比而不是集{医院药学部医院药学部医院药学部值1,值、中值+ 1}gydF4y2BacqiPerc = cellfun (@ (x, y)和(abs ([x.CQI] - y) > 1) /长度(x) CSIReport, num2cell(地中海));图;次要情节(211)errorbar (p2-p1 simParameters.SNRIn,地中海,gydF4y2Ba“啊——”。gydF4y2Ba)ylabel (gydF4y2Ba医院药学部的“价值”gydF4y2Ba)标题(sprintf (gydF4y2Ba医院药学部的中值和(% g, % g)百分位数gydF4y2Ba50-perc / 2, 50 +全氯乙烯/ 2));网格次要情节(212)情节(simParameters.SNRIn cqiPerc,gydF4y2Ba“啊——”。gydF4y2Ba)包含(gydF4y2Ba“信噪比(dB)”gydF4y2Ba)ylabel (gydF4y2Ba“%”gydF4y2Ba)标题(gydF4y2Ba医院药学部的不是设置\{医院药学部医院药学部医院药学部值1,值、中值+ 1 \}”gydF4y2Ba);网格gydF4y2Ba结束gydF4y2Ba