主要内容

非码本预编码方案的PDSCH吞吐量:端口5 (TM7),端口7或8或端口7-8 (TM8),端口7-14 (TM9和TM10)

此示例演示如何使用LTE工具箱测量物理下行链路共享信道(PDSCH)吞吐量性能™ 对于以下基于非码本的预编码传输模式(TM):

  • TM7:基于非码本的单层预编码(端口5)

  • TM8:最多两层的基于非码本的预编码(双层端口7-8,或单天线端口7或8)

  • TM9和TM10:最多八层端口7-14或单天线端口、端口7或8的非码本预编码

支持FDD和TDD双工方案。万博1manbetx该示例还展示了如何为不同的传输模式参数化和自定义设置。它还支持使用并行万博1manbetx计算工具箱™来减少有效的模拟时间。

介绍

此示例测量多个SNR点的吞吐量。提供的代码可以在多种传输模式下运行:TM7、TM8、TM9和TM10。支持FDD和TDD双工方案。有关如何建模TM1、TM2、TM3、TM4和TM6的信息,请查看以下示例:万博1manbetx单天线(TM1)、发射分集(TM2)、开环(TM3)和闭环(TM4/6)空间复用PDSCH吞吐量一致性测试

由于考虑了基于非码本的TMs,因此必须计算预编码(波束形成)矩阵。这是使用奇异值分解(SVD)方法实现的。假设对信道有充分的了解。

对于每个考虑的SNR点,在子帧到子帧的基础上操作:

  • 预编码(波束形成)矩阵是从一个完美的信道估计计算出来的。

  • 生成填充的资源网格,并对OFDM进行调制,以创建要传输的波形。

  • 生成的波形通过噪声衰落信道。

  • 执行接收机操作(信道估计、均衡、解调和解码)。

  • PDSCH的吞吐量性能是使用信道解码器输出处的块CRC结果来确定的。

A.帕弗可以使用循环来代替用于SNR计算的循环。示例中指出了这一点帕弗语句是并行计算工具箱的一部分,并行执行SNR循环以减少总的模拟时间。

模拟配置

该示例在模拟长度为的情况下执行n框架=多个SNR点的2帧。大量n框架应用于产生有意义的吞吐量结果。斯林可以是值数组或标量。某些TMs和某些调制方案比其他方案对噪声和信道损伤更为鲁棒,因此不同的参数集可能必须使用不同的SNR值。

n帧=2;%帧数SNRIn=[-41];%信噪比范围(dB)

最初为所有TMs指定了一组公共参数,这些参数包括带宽、期望码率、调制方案和分配的资源块集。不指定RMC编号可确保调度所有下行链路子帧。如果指定了RMC(例如“R.0”),则子帧调度如TS 36.101中所定义[1.].

变量txMode通过switch语句选择TM。对于每个TM,都指定了所需的参数。此示例不执行DCI格式解码,因此DCIFormat字段不是严格必需的。但是,由于DCI格式与TM紧密相连,因此包含它是为了完整性。

在本例中,TM9和TM10除了DCI格式外是相同的,但是,为了完整性起见,它们在switch语句中是分开的。

一旦指定了基本参数集,调用lteRMCDL需要完全填充下行链路参数结构enb

模拟参数=[];%清除模拟参数simulationParameters.NDLRB=50;simulationParameters.PDSCH.TargetCodeRate=0.5;simulationParameters.PDSCH.Modulation={“16QAM”};simulationParameters.PDSCH.PRBSet=(0:9)';txMode=“TM8”%TM7,TM8,TM9,TM10双工模式=“TDD”%“FDD”、“TDD”转换txMode案例“TM7”%单层(端口5)simulationParameters.PDSCH.DCIFormat=“格式1”;simulationParameters.PDSCH.TxScheme =“端口5”;simulationParameters.PDSCH.NLayers=1;ntxants=4;案例“TM8”%最多两层(双层端口7-8或单天线%端口,端口7或8)simulationParameters.PDSCH.DCIFormat=“Format2B”;simulationParameters.PDSCH.TxScheme =“端口7-8”%“端口7-8”,“端口8”simulationParameters.PDSCH.NLayers = 2;ntxants = 4;simulationParameters.PDSCH.NSCID = 0;案例“TM9”%最多八层(最多八层端口7-14或单端口%天线端口,端口7或8)simulationParameters.PDSCH.DCIFormat=“格式2C”;simulationParameters.PDSCH.TxScheme =“Port7-14”;simulationParameters.PDSCH.NLayers = 4;ntxants = 8;simulationParameters。CSIRefP = ntxants;案例“TM10”%多达8层(多达8层端口7-14或%单天线端口,端口7或8)simulationParameters.PDSCH.DCIFormat=“Format2D”;simulationParameters.PDSCH.TxScheme =“Port7-14”;simulationParameters.PDSCH.NLayers = 4;ntxants = 8;simulationParameters。CSIRefP = ntxants;否则错误(“传输模式应该是TM7, TM8, TM9或TM10之一。”)结束

预编码矩阵的大小W(波束形成矩阵)是恩莱尔斯-借-ntxants.发射天线的数量从W在随后的工具箱函数调用中。接收天线的数量稍后指定为传播信道的一部分。

%将W初始化为零simulationParameters.PDSCH.W=零(simulationParameters.PDSCH.NLayers,ntxants);

设置双工模式,并指定子帧数为1。代码每次重复生成一个子帧,直到总数为n框架都是生成的。

simulationParameters.DuplexMode=DuplexMode;simulationParameters.TotSubframes=1;

呼叫lteRMCDL生成中未指定的默认eNodeB参数模拟参数。以后需要使用这些工具来生成波形麦克多尔酒店

enb = lteRMCDL (simulationParameters);

输出enb结构包含传输块大小和帧内每个码字子帧的冗余版本序列等字段。这些将在后面的模拟中使用。

trBlkSizes=enb.PDSCH.trBlkSizes;rvSequence=enb.PDSCH.RVSeq;

码字的数量,ncw,是中的项目数enb.PDSCH.调制领域

作战飞机=长度(string (enb.PDSCH.Modulation));

打印一些更相关的模拟参数的摘要。确认参数设置与预期值一致。在手动指定传输块大小时,显示的报告代码速率可用于检测问题。典型值为1/3、1/2和3/4。

hDisplayENBParameterSummary(enb,txMode);
--参数摘要:------------------------------------------------------------双工模式:TDD传输模式:TM8传输方案:端口7-8下行链路资源块数:50分配的资源块数:10个小区特定参考信号端口:1个发射天线数:4个发射层:2个码字数:1个调制码字1:16QAM传输块大小码字1:4584 4008 0 4584 4584 4008 0 4584码率码字1:0.5053 0.4941 0 0 0.5053 0.5053 0.4941 0 0.5053------------------------------------------------------------------

传播信道和信道估计器配置

结构通道包含通道模型配置参数。

通道=结构;%通道配置结构种子=6;%通道种子通道。NRxAnts = 8;%接收天线的数量频道延迟配置文件=“环保署”%延迟曲线channel.DopplerFreq=5;%多普勒频率信道相关性=“低”%多天线相关channel.NTerms=16;%衰落模型中的振荡器channel.ModelType=“GMEDS”%瑞利衰落模型类型通道初始化阶段=“随机”%随机初始相位信道增益=“开”%正常化延迟剖面功率通道。NormalizeTxAnts =“开”传送天线规格化%信道采样率取决于OFDM中使用的FFT大小%调制器。这可以使用LTEOFDINFO函数获得。ofdmInfo=lteOFDMInfo(enb);channel.SamplingRate=ofdmInfo.SamplingRate;

定义信道估计器配置结构。由于使用基于非码本的TMs,因此将DMRS设置为信道估计的参考信号。

cec=结构;%信道估计配置结构飞行员平均数=“UserDefined”%导频符号平均的类型cec.FreqWindow=41;%频率窗口大小cec.TimeWindow=27;%时间窗口大小cec。InterpType =“立方”%二维插值类型电子窗口=“中心”%插值窗口类型cec.InterpWinSize=1;%插值窗口大小cec.参考=“DMRS”%使用DMRS作为参考信号

显示仿真信息

变量显示模拟信息控制模拟信息的显示,例如用于每个子帧的HARQ进程ID。如果CRC错误,还将显示RV序列的索引值。

displaySimulationInformation=true;

加工链

为了确定每个SNR点处的吞吐量,逐子帧PDSCH处理链包括:

  • 计算预编码矩阵-完美信道估计用于计算预编码矩阵。FDD和TDD之间的计算过程略有不同。下一节将对此步骤进行详细说明。

  • 更新当前HARQ进程-HARQ过程要么携带新的传输数据,要么重传先前发送的传输数据,这取决于基于CRC结果的确认(ACK)或否定确认(NACK)。所有这些都是由HARQ调度程序处理的,hHARQScheduling.根据HARQ状态更新PDSCH数据。

  • 创建发射波形-将HARQ进程生成的数据传递给麦克多尔酒店产生包含物理信道和信号的OFDM调制波形。

  • 噪声信道建模-将波形通过衰落信道并添加噪声(AWGN)。

  • 执行同步和OFDM解调-对接收到的符号进行偏移,以考虑实现延迟和信道延迟扩展的组合。OFDM解调符号。

  • 执行信道估计-估计信道响应和噪声水平。使用这些估计值对PDSCH进行解码。

  • 解码PDSCH-使用以下方法获得接收码字的估计值:ltePDSCHDecode对所有发射和接收天线对的恢复的PDSCH符号进行解调和解扰。

  • 解码下行链路共享信道(DL-SCH)并存储用于HARQ处理的块CRC错误-将解码软位向量传递给lteDLSCHDecode,对码字进行解码并返回用于确定系统吞吐量的块CRC错误。新软缓冲区的内容,哈克普罗克(哈奇德),德克斯塔,在此函数的输出中可用,用于解码下一个子帧。

预编码矩阵计算

由于建立了基于非码本的TMs模型,因此必须计算基于信道估计的预编码(波束形成)矩阵。为简单起见,假设对通道有完全的了解。

该图显示了与信道估计、预编码矩阵相关联的定时WFDD和TDD模式的计算和预编码操作。

对于TDD(上行链路-下行链路配置1帧结构),在DL子帧之前的最后一个UL子帧中估计信道。该信道估计用于计算预编码矩阵W。直到下一UL子帧的所有后续DL子帧(包括特殊子帧)都使用该矩阵预编码W

对于FDD,在预编码矩阵的计算之间存在一个子帧的延迟W以及使用它的子框架。例如,子帧中使用的预编码矩阵N用子帧中获得的信道估计进行了计算吗n-1,如图所示。

功能HCalculateRecodingMatrix计算W作者:

  • 为所考虑的子帧获得一个完美的信道估计

  • 平均所有分配RB的信道估计值

  • 计算奇异值分解并提取第一个恩莱尔斯列以获取预编码向量。

如果需要,可以使用不同的计算或W可以用在这里而不是调用HCalculateRecodingMatrix

此图显示了信道估计平均过程和W计算

所描述的过程显示了单信道矩阵如何进行估计,H,通过随时间和频率的平均,从整个分配的资源块集合中获得。使用这个信道估计,H,预编码矩阵,W,通过奇异值分解得到。

注意,对于单个资源块的分配,预编码矩阵W通常会与信道条件很好地匹配,与最佳预编码的偏差很小。但随着分配大小的增加,预编码矩阵会考虑整个分配中信道条件的平均值。这种平均值会导致与最佳预编码矩阵的偏差。因此,您可以预期随着资源分配规模的增加,性能会发生变化。

处理循环

下面包括用于SNR点处理的“for”循环。要启用并行计算以提高速度,请在循环中使用“parfor”而不是“for”。这需要并行计算工具箱。如果未安装此工具箱,“parfor”将默认为正常的“for”语句。如果使用“parfor”,建议使用变量显示模拟信息如果以上设置为false,则每个SNR点的模拟信息显示将重叠。

%初始化模拟和分析中使用的变量%阵列以存储所有SNR点的最大吞吐量最大吞吐量=零(长度(SNRIn),1);%阵列存储所有SNR点的模拟吞吐量simthroughts=0(长度(SNRIn),1);%用于存储RV序列索引历史记录的数组allRvSeqIdxHistory =细胞(1,元素个数(SNRIn));%复制通道结构以优化并行处理(仅当%使用并行计算工具箱运行示例)channelInit=通道;%在模拟过程中,enb的一些字段将被更新,请复制到%在模拟每个SNR点时重新初始化enbInit=enb;%对于子帧类型的TDD预计算向量:下行链路的D、S和U,%分别为专用和上行链路如果strcmpi(双工模式,“TDD”)subframeType=char(10,1);initialSubframeNo=enb.NSubframe;sNo=0:9%对于帧中的所有子帧enb.NSubframe=sNo;duplexInfo=lteDuplexingInfo(enb);子帧类型(sNo+1)=duplexInfo.subframeType(1);%第一个字符:D, S或U结束enb.NSubframe=初始子帧号;结束%CFI可以是标量或向量,创建CFI的本地副本作为向量%(每个子帧一个值)如果numel(enb.CFI)==1 CFI=repmat(enb.CFI,1,10);其他的CFI=enb.CFI;结束%获取用于HARQ处理的HARQ ID序列。这是索引列表%用于HARQ进程调度。[~,~,enbOut]=lteRMCDLTool(enb,[]);harqProcessSequenceInit=enbOut.PDSCH.HARQProcessSequence;snrIdx=1:numel(SNRIn)%并行计算的注释%parfor snrIdx=1:numel(SNRIn)%uncomment用于并行计算%根据循环变量设置随机数生成器种子%确保独立的随机流rng (snrIdx“combRecursive”);%重新初始化变量(在每个SNR点修改变量%(模拟)enb=enbInit;channel=channelInit;harqProcessSequence=harqProcessSequenceInit;%初始化所有HARQ进程的状态harqProcesses=hneharqprocess(enb);%为主循环设置变量lastOffset=7;%初始化整个帧定时偏移%(设置为通道实现延迟)帧偏移=7;%初始化帧定时偏移%(设置为通道实现延迟)九广铁路公司=[];%所有考虑的子帧的块CRC比特输出=[];%每子帧成功接收比特数txedTrBlkSizes=[];%每个子帧传输的比特数预编码矩阵=[];%预编码矩阵rxSymbols = [];%星座图的DL-SCH符号(码字1)rxSymbols2=[];%星座图的DL-SCH符号(码字2)%变量rvSeqIdxHistory存储%所有HARQ进程的RV索引序列rvSeqIdxHistory = nan(ncw, NFrames*10);%指示预编码矩阵W是否可用的标志。这是有用的%如果在模拟开始时未计算W。iscorady=false;%表示要处理的子帧。设为true%在子帧中存在要处理的数据,即DL子帧或%非零传输块大小。processSubframe=false;%主循环:用于所有子帧子帧编号=0:(n帧*10-1)%更新子帧编号enb.NSubframe=子帧号;%为当前子帧加载CFIenb。CFI = CFI (mod (subframeNo长度(CFI)) + 1);%当前子帧的信道时间channel.InitTime=子帧/1000;%从HARQ处理序列获取子帧的HARQ处理IDharqID=harqProcessSequence(mod(子帧,长度(harqProcessSequence))+1);%提取当前子帧传输块大小trBlk=trBlkSizes(:,mod(子帧,10)+1)。”;%加载前一子帧中计算的预编码矩阵,如果%存在,并且如果有数据要传输。将标志设置为触发器%子帧处理。如果isflorady&&any(trBlk)harqProcesses(harqID)。txConfig.W=预编码矩阵;processSubframe=true;其他的processSubframe=false;结束%预编码矩阵计算如果strcmpi(双工模式,“TDD”)%UL子帧中的信道估计如果strcmp(子帧类型(模块(子帧,10)+1),“U”)processSubframe=false;%UL子帧,无DL数据%仅在下一个子帧为DL时执行信道估计如果strcmp(子帧类型(mod((子帧+1),10)+1),“D”)预编码矩阵=hCalculatePrecodingMatrix(enb,信道);iscorady=true;结束结束其他的% FDD%获取下一个子帧的传输块trBlkNext=trBlkSizes(:,mod(子帧+1,10)+1)。”;%仅在以下情况下计算下一子帧的预编码矩阵:%携带数据(即非零trBlkNext)如果any(trBlkNext)预编码矩阵=hCalculatePrecodingMatrix(enb,信道);isFlorady=true;其他的iscorady=false;结束结束%子帧处理如果processSubframe%更新当前HARQ进程harqProcesses(harqID)=hHARQScheduling(...harqProcesses(harqID)、子帧、rvSequence);%显示运行时信息如果显示模拟信息和任何(trBlk)显示(' ');disp(['子帧:'num2str(子帧)“.HARQ进程索引:”num2str (harqID)]);结束%更新RV序列索引表rvSeqIdxHistory(:,子帧号+1)=...harqProcesses(harqID).txConfig.RVIdx';%使用HARQ更新PDSCH传输配置%过程状态enb.PDSCH=harqProcesses(harqID).txConfig;%细胞有效载荷dlschTransportBlk=harqProcesses(harqID).data;%创建发射波形txWaveform=LTERMCDLTOL(enb,dlschTransportBlk);%添加25个样本填充。这是为了覆盖延迟范围%预期来自渠道建模(以下组合)实现延迟和信道延迟扩展%)txWaveform=[txWaveform;零(25,ntxants)];% #好< AGROW >%通过通道模型传递数据rxNoiselessWaveform=lteFadingChannel(通道,txWaveform);%计算噪声增益,包括对下行链路的补偿%权力分配SNR=10^((SNRIn(snrIdx)-enb.PDSCH.Rho)/20);%将噪声功率标准化,以考虑采样率,%这是OFDM中使用的IFFT大小的函数%调制和天线数量N0=1/(sqrt(2.0*ntxants*double(ofdmInfo.Nfft))*SNR);%创建加性高斯白噪声噪声=N0*复数(randn(大小(rxNoiselessWaveform)),...randn(大小(RxNoiseless波形));%将AWGN添加到接收到的时域波形和刻度所需功率%RX波形=RX无噪声波形+噪声;%接受者%在子帧0上,每帧计算一次新的%同步偏移量。范围内的偏移量从通道建模预期的延迟%(一个组合%实施延迟和信道延迟扩展的定义)%表示成功如果(mod(subframeNo,10)==0) frameOffset = lteDLFrameOffset(enb,rxWaveform);如果(frameOffset > 25) frameOffset = lastOffset;结束lastOffset = frameOffset;结束rxWaveform=rxWaveform(1+frameOffset:end,:);%对接收到的数据执行OFDM解调以获得%资源网格rxSubframe=lteOFDMDemodulate(enb,rxWaveform);%信道估计[estChannelGrid,noiseEst]=...ltedlchannel估计(enb、enb.PDSCH、cec、rx子帧);%执行均衡、编码、层解映射、,%使用%信道估计。%获取PDSCH索引pdschIndices=ltePDSCHIndices(enb,enb.PDSCH,enb.PDSCH.PRBSet);%获取PDSCH资源元素。缩放接收到的子帧%通过PDSCH功率因数ρ。PDSCH通过%Rho,而单元格参考符号用于通道%估计(用于PDSCH解码阶段)不适用。[pdschRx,pdschHest]=LTE提取资源(pdschIndices,...rxSubframe*(10^(-enb.PDSCH.Rho/20)),estChannelGrid);%解码PDSCH[dlschBits,dlschSymbols]=ltePDSCHDecode(enb,enb.PDSCH,...pdschRx pdschHest,噪音);%存储星座的已解码DLSCH符号%策划rxSymbols = [rxSymbols;dlschSymbols {1} (:));% #好< AGROW >如果ncw>1 rxSymbols2 = [rxSymbols2;dlschSymbols {2} (:));% #好< AGROW >结束解码DL-SCH[decbits,harqProcesses(harqID).blkerr,harqProcesses(harqID).decState]=...lteDLSCHDecode(enb、enb.PDSCH、trBlk、dlschBits、,...harqProcesses(harqID.decState);%显示块错误如果显示模拟信息如果any(harqProcesses(harqID).blkerr)disp(['块错误。RV索引:'num2str(harqProcesses(harqID).txConfig.RVIdx)“,CRC:”num2str(harqProcesses(harqID.blkerr)])其他的disp(['无错误。RV索引:'num2str(harqProcesses(harqID).txConfig.RVIdx)“,CRC:”num2str(harqProcesses(harqID.blkerr)])结束结束%存储计算吞吐量所需的值%仅用于带有数据的子帧如果(any(trBlk))blkCRC=[blkCRC-harqProcesses(harqID).blkerr];% #好< AGROW >bitTput=[bitTput trBlk.*(1-...harqProcesses(harqID.blkerr)];% #好< AGROW >txedTrBlkSizes=[txedTrBlkSizes trBlk];% #好< AGROW >结束结束结束% Plot收到符号星座如果显示模拟信息图形;绘图(RX符号,“r”);头衔([“接收星座,信噪比”...num2str (SNRIn (snrIdx))'dB.码字1'])xlabel(“同相振幅”); 伊拉贝尔(“正交振幅”);如果ncw>1图;绘图(RXSYMBOLS 2,“r”);头衔([“接收星座,信噪比”...num2str (SNRIn (snrIdx))'dB.码字2'])xlabel(“同相振幅”); 伊拉贝尔(“正交振幅”);结束结束%计算最大吞吐量和模拟吞吐量最大吞吐量(snrIdx)=总和(txedTrBlkSizes);%最大可能吞吐量simThroughput(snrIdx)=和(比特输出,2);%模拟吞吐量%在命令窗口中动态显示结果fprintf(“\nSNR=%d帧的%.2f dB.吞吐量=%.4f Mbps\n”,...SNRIn (snrIdx) NFrames 1 e-6 * simThroughput (snrIdx) / (NFrames * 10 e - 3));fprintf('信噪比= %。2 f dB。吞吐量(%%)为%d帧(s) = %。4 f % % \ n”,...SNRIn(snrIdx),NFrames,simThroughput(snrIdx)*100/maxThroughput(snrIdx));allrvsekidxhistory{snrIdx}=rvsekidxhistory;结束
副帧:4。HARQ进程索引:3个块错误。RV索引:1,CRC:1子帧:5。HARQ进程索引:4块错误。RV索引:1,CRC:1子帧:6。HARQ进程索引:5个块错误。RV索引:1,CRC:1子帧:9。HARQ进程索引:6块错误。RV索引:1,CRC:1子帧:10。HARQ进程索引:7块错误。RV索引:1,CRC:1子帧:11。HARQ进程索引:2个块错误。RV索引:1,CRC:1子帧:14。HARQ进程索引:1个块错误。RV索引:1,CRC:1子帧:15。HARQ进程索引:3无错误。RV索引:2,CRC:0子帧:16。HARQ进程索引:5无错误。RV索引:2,CRC:0子帧:19。HARQ进程索引:4无错误。RV指数:2,CRC:0信噪比=-4.00 dB。2帧的吞吐量=0.6588 Mbps SNR=-4.00 dB。2帧的吞吐量(%)=29.8694%子帧:4。HARQ进程索引:3无错误。RV索引:1,CRC:0子帧:5。HARQ进程索引:4无错误。RV索引:1,CRC:0子帧:6。HARQ进程索引:5无错误。RV索引:1,CRC:0子帧:9。HARQ进程索引:6无错误。RV索引:1,CRC:0子帧:10。HARQ进程索引:7无错误。RV索引:1,CRC:0子帧:11。HARQ进程索引:2无错误。RV索引:1,CRC:0子帧:14。HARQ进程索引:1无错误。RV索引:1,CRC:0子帧:15。HARQ进程索引:3无错误。RV索引:1,CRC:0子帧:16。HARQ进程索引:5无错误。RV索引:1,CRC:0子帧:19。HARQ进程索引:4无错误。RV指数:1,CRC:0 SNR=1.00 dB。2帧的吞吐量=2.2056 Mbps SNR=1.00 dB。2帧的吞吐量(%)=100.0000%

RV序列索引图

下面的代码使用模拟子帧RV序列中元素的索引值生成绘图。这提供了所需重传的概念。绘制索引而不是RV值的原因是后者可能不是按升序组织的。例如,在某些情况下,RV序列可以e[0,2,3,1]。在使用这些值时绘制这些值并不能提供所需重传次数的清晰概念。

传输新传输块时,使用RV序列的第一个元素,并且该子帧的值为1。这是模拟开始时的情况。如果需要重新传输,则选择RV序列中的下一个元素并增加索引。将为发生重传的子帧绘制值2。如果需要进一步重新传输,则索引值将进一步增加。这些图在连续帧的子帧5中不显示任何值。这是因为对于本示例中使用的设置,在这些子帧中不传输数据。

HPLOTRV序列(SNRIn、allRvSeqIdxHistory、NFrames);

吞吐量结果

完成每个SNR点后,吞吐量结果将显示在MATLAB®命令窗口中。它们也将在输出阵列中捕获模拟吞吐量最大吞吐量模拟吞吐量存储所有模拟SNR点的测量吞吐量(以位数表示)。最大吞吐量存储每个模拟SNR点的最大可能吞吐量(位数)。

%绘制吞吐量图legendString=[char(txMode)': 'num2str(simulationParameters.PDSCH.NLayers)...'层,'num2str(ntxants)“蚁(s)”]; 绘图(SNRIn,SimThroughts*100./MaxThroughts,* - - - - - -。);xlabel(‘信噪比(dB)’); 伊拉贝尔(“吞吐量(%)”);头衔(吞吐量和信噪比的);图例(legendString,“位置”,“西北”); 网格在…上

对于统计上有效的结果,应针对更多的帧运行模拟。下图比较了模拟1000帧时TDD和FDD的吞吐量结果。

附录

此示例使用以下帮助器函数。

选定的参考书目

  1. 3GPP TS 36.101“用户设备(UE)无线传输和接收”