主要内容

PUSCH吞吐量一致性测试

这个案例展示了如何测量物理上行共享通道(PUSCH)吞吐量性能使用LTE工具箱™TS36.104一致性测试条件下定义的。

介绍

TS 36.104 [1]定义了物理上行共享信道的性能要求(PUSCH)作为给定信噪比假设的最小流量混合自动重发请求(HARQ)重发。这个例子演示了如何使用LTE工具箱可以构造一致性测试。

使用扩展传输模拟行人(EPA)传播通道模型使用8 HARQ进程。信道噪声添加到接收到的波形然后SC-FDMA解调,导致了资源网格对于每一个接收天线。信道估计来确定执行每一对传输/接收天线之间的通道。最小均方误差(MMSE)在接收到的资源上执行均衡网格使用估计的信道资源网格中恢复过来。然后PUSCH数据被提取并解码从这个资源网格中恢复过来。使用块CRC的结果,确定传输/接收链的吞吐量性能。

模拟配置

的例子是执行模拟1帧的长度在-4.1 dB的信噪比,-2.0 dB和0.1 dB / TS 36.104,表8.2.1.1-1 [1]。大量的NFrames应该用于吞吐量产生有意义的结果。SNRIn可以是一个数组的值或一个标量。

NFrames = 1;%的帧数来模拟在每个信噪比SNRIn = (-4.1, -2.0, 0.1);%信噪比点来模拟

问题的配置

用户设备(UE)设置中指定的一种结构形式。

问题。TotSubframes = 1;%的子帧生成的波形问题。NCellID = 10;%细胞身份问题。RC =“A3-2”;% FRC数量ue.PUSCH。NLayers = 1;%的层数问题。NTxAnts = 1;%的发送天线数量

传播通道模型配置

传播通道模型特点设置使用一个结构包含以下字段指定。这些设置根据TS 36.104,表8.2.1.1-1 [1]。

chcfg。NRxAnts = 2;%的接收天线chcfg。DelayProfile =“环保署”;%延迟概要chcfg。DopplerFreq = 5.0;%多普勒频率chcfg。MIMOCorrelation =“低”;% MIMO相关chcfg。种子= 100;%通道种子chcfg。NTerms = 16;%振荡器用于衰落模型chcfg。ModelType =“GMEDS”;%瑞利衰落模型类型chcfg。InitPhase =“随机”;%随机初始阶段chcfg。NormalizePathGains =“上”;%正常化延迟概要文件的权力chcfg。NormalizeTxAnts =“上”;%正常化传输天线

信道估计配置

信道估计设置使用一个结构定义cec。EPA延迟配置文件导致信道响应频率发生变化。因此,一个大的频率平均13窗口资源元素(REs)。解调参考信号(DRS)包含在每个槽只有一个符号,因此时间平均窗口1的使用。这将不包括任何飞行员从相邻槽平均。

如果ue.PUSCH。NLayers = = 1 freqWindow = 13;其他的freqWindow = 12;%平均利用正交dmr多层结束cec。FreqWindow = FreqWindow;%频率平均REs的窗户cec。PilotAverage =“UserDefined”;%的试点,平均cec。TimeWindow = 1;%的时间平均REs的窗户cec。InterpType =“立方”;%插值型cec。参考=“天线”;%参考信道估计

上行RMC配置

生成了LTE上行通道参考模型(RMC)工具箱函数lteRMCULlteRMCULTool使用。lteRMCUL创建一个配置结构对于给定问题设置;特定于给定的固定参考通道(FRC)。这种配置结构构造按TS36.104附件(1)和使用lteRMCULTool生成一个SC-FDMA调制波形。子结构的PUSCH定义与PUSCH相关的参数;包含向量定义每个子帧传输数据的能力。这些长度时使用解码上行通道(UL-SCH)共享。

%为A3-2生成FRC配置结构frc = lteRMCUL(问题);%的传输块大小为每个子帧内帧trBlkSizes = frc.PUSCH.TrBlkSizes;codedTrBlkSizes = frc.PUSCH.CodedTrBlkSizes;%冗余版本序列rvSequence = frc.PUSCH.RVSeq;

设定传播通道模型采样率

通道模型的采样率设置使用返回的值lteSCFDMAInfo

信息= lteSCFDMAInfo (frc);chcfg。SamplingRate = info.SamplingRate;

处理循环

吞吐量测试进行的信噪比点。在信噪比点确定吞吐量,PUSCH数据分析子帧的子帧的基础上使用以下步骤:

  • 更新当前HARQ进程。每8子帧后,鉴于HARQ进程带来新的传输数据或重新传输之前发送的运输数据根据确认(ACK)或消极的确认(纳)基于CRC的结果。这一切都是由HARQ调度器,hHARQScheduling.m

  • 创建传输波形。使用输入数据生成的HARQ调度器和frc结构,lteRMCULTool产生SC-FDMA调制波形和密集的资源网格包含物理通道和信号。

  • 噪声信道建模。波形通过衰落信道和加性高斯白噪声(AWGN)补充道。

  • 执行同步和SC-FDMA解调。接收到的符号同步占的组合实现延迟和通道延迟传播。这些符号然后SC-FDMA解调。

  • 执行信道和噪声的功率谱密度估计。信道和噪声功率谱密度估计帮助均衡和解码。

  • 执行MMSE均衡。信道和噪声估计是用来平衡收到PUSCH符号。

  • PUSCH解码。恢复PUSCH符号传输和接收天线对,随着噪声估计,解调和descrambledltePUSCHDecode获得接收的码字估计。

  • UL-SCH通道解码。_软解码比特传递给的向量lteULSCHDecode;这个块CRC解码码字并返回错误,这是用来确定系统的吞吐量。新软缓冲区的内容,harqProc .decState (harqID),可以在这个函数的输出用于下一子帧。传输块大小是获得一个查找表为每个子帧的大小。

%初始化变量用于模拟和分析totalBLKCRC = 0(元素个数(SNRIn) NFrames * 10);%总块CRC向量bitThroughput = 0(元素个数(SNRIn) NFrames * 10);%总吞吐量向量resultIndex = 1;%初始化帧计数器指数SNRdB = SNRIn流(在% g \ nSimulating dB信噪比总% d帧(s) ',SNRdB NFrames);%计算所需AWGN信道噪声信噪比= 10 ^ (SNRdB / 20);N = 1 /(信噪比*√(双(info.Nfft))) / sqrt (2.0);rng (“默认”);%为每个子帧存储结果信噪比bitTp = 0 (1, NFrames * 10);%中间位吞吐量向量blkCRC = 0 (1, NFrames * 10);%中间块CRC向量%初始化所有HARQ进程的状态harqProcesses = hNewHARQProcess (frc);%初始化HARQ进程id为1作为第一个非零运输%块使用第一个HARQ过程总是会传播。这%将更新后由lteRMCULTool输出完整的序列%第一次调用函数harqProcessSequence = 1;offsetused = 0;subframeNo = 0: (NFrames * 10 - 1)%更新子帧数frc。NSubframe = subframeNo;%从HARQ过程得到HARQ进程ID为子帧序列harqID = harqProcessSequence (mod (subframeNo长度(harqProcessSequence)) + 1);%如果有一块运输计划在当前的子帧%(零harqID),执行和传播%接待。否则继续接下来的子帧如果harqID = = 0继续;结束%更新当前HARQ进程harqProcesses (harqID) = hHARQScheduling (harqProcesses (harqID)、subframeNo rvSequence);%更新PUSCH传输配置与HARQ进程状态frc。PUSCH = harqProcesses (harqID) .txConfig;data = harqProcesses (harqID) . data;%建立传输波形和HARQ调度ID序列%从“frcOut”结构也包含波形输出%的配置和OFDM调制参数[txWaveform, ~, frcOut] = lteRMCULTool (frc、数据);% 25样品添加填充。这是延迟的范围%预期从信道建模(的组合%实现延迟和延迟扩展频道)txWaveform = [txWaveform;frc.NTxAnts 0(25日)];% #好< AGROW >%得到HARQ ID序列的frcOut HARQ处理harqProcessSequence = frcOut.PUSCH.HARQProcessSequence;%初始化通道建模将每个子帧的时间%来模拟连续不同的频道chcfg。InitTime = subframeNo / 1000;%通过通道模型传递数据rxWaveform = lteFadingChannel (chcfg txWaveform);%增加接收机的噪声v = N *复杂(randn(大小(rxWaveform)), randn(大小(rxWaveform)));rxWaveform = rxWaveform + v;%计算同步补偿抵消= lteULFrameOffset (frc frc。PUSCH rxWaveform);如果(抵消< 25)offsetused =抵消;结束% SC-FDMA解调rxSubframe = lteSCFDMADemodulate (frc),rxWaveform (1 + offsetused:最终,:));%信道和噪声的功率谱密度估计[estChannelGrid,噪音]= lteULChannelEstimate (frc,frc。PUSCH、cec rxSubframe);%从给定的子帧中提取REs PUSCH对应%所有接收天线和信道估计frc.PUSCH puschIndices = ltePUSCHIndices (frc);[puschRx, puschEstCh] = lteExtractResources (puschIndices、rxSubframe estChannelGrid);% MMSE均衡rxSymbols = lteEqualizeMMSE (puschRx puschEstCh、噪音);%更新frc。PUSCHto carry complete information of the UL-SCH%编码配置trBlkSize = trBlkSizes (mod (subframeNo, 10) + 1);frc。PUSCH = lteULSCHInfo (frc frc。PUSCH trBlkSize,“chsconcat”);%解码PUSCHrxEncodedBits = ltePUSCHDecode (frc frc。PUSCH rxSymbols);%解码UL-SCH信道和存储块CRC错误% HARQ过程[rxDecodedBits harqProcesses .blkerr (harqID),harqProcesses (harqID) .decState] = lteULSCHDecode (frc frc。PUSCH,trBlkSize,rxEncodedBits harqProcesses (harqID) .decState);%存储CRC计算和每个子帧的比特总数%成功解码blkCRC (subframeNo + 1) = harqProcesses (harqID) .blkerr;bitTp (subframeNo + 1) = trBlkSize。* (1-harqProcesses (harqID) .blkerr);结束%记录块CRC错误和吞吐量的总数%框架模拟在一个特定的信噪比totalBLKCRC (resultIndex:) = blkCRC;bitThroughput (resultIndex:) = bitTp;resultIndex = resultIndex + 1;结束
模拟为-4.1 dB信噪比总共1帧(s)模拟2 dB信噪比总共1帧(s)模拟为0.1 dB信噪比1总框架(s)

显示吞吐量结果

吞吐量结果绘制总容量的比例和实际吞吐量输入信噪比的值的范围内使用hPUSCHResults.m

%吞吐量计算百分比吞吐量= 100 *(1,就意味着(totalBLKCRC 2))”;hPUSCHResults (SNRIn NFrames trBlkSizes,吞吐量,bitThroughput);

附录

这个示例使用这些辅助函数。

选定的参考书目

  1. 3 gpp TS 36.104”基站(BS)无线电发射和接受“