主要内容

细胞间干扰对MMSE-IRC接收器PDSCH吞吐量的影响

该实施例证明吞吐量PDSCH上的小区间干扰的影响最小均方误差(MMSE)和最小均方误差 - 干扰抑制合并(MMSE-IRC)接收机。服务小区和两个干扰eNodeB的考虑。在TS 36.101,章节8.2.1.4.1B [规定的条件1使用)。

介绍

本实施例中的措施在与小区间干扰的服务小区从两个主要的干扰小区达到的吞吐量为用户设备(UE)。服务小区使用RMC R.47在FDD模式。用于服务和干扰小区包括功率电平和噪声电平的参数在TS 36.101中描述了,第8.2.1.4.1B [1].

模拟设置

默认模拟长度设置为四帧,以保持模拟时间低。增加nframes.增加模拟时间和生产统计显著吞吐量结果。使用变量eqmethod.设置接收端均衡,可以取值‘MMSE’和‘MMSE_IRC’。

nframes = 4;%帧数eqMethod=“MMSE_IRC”%MMSE,MMSE_IRC

测试中规定了信号、干扰源和噪声功率级(TS 36.101,第8.2.1.4.1B节[1),使用以下参数:信噪比(SINR)、主干扰比(DIP)和噪声功率谱密度。

sinr = 0.8;%sinr在db中dip2 = -1.73;%单元格2的单位为dBDIP3 = -8.66;%单元格3的单位为dBNOC = -98;%dBm/15kHz平均功率谱密度

DIP表征每个干扰单元,并且被定义为:

$DIP2=Ior2/(Ior2+Ior3+Noc)$

$DIP3=Ior3/(Ior2+Ior3+Noc)$

在哪里$ Ior2 $$ io3 $从小区2和3,分别平均接收功率谱密度。$Noc$为白噪声源的平均功率谱密度(相对于子载波间距归一化的每资源单元的平均功率)。

服务eNodeB配置

所考虑的测试在FDD模式下使用参考信道R.47。(TS 36.101,表A.3.3.2.1-2)中规定了与该参考通道相关的参数[1]).结构eNB1.描述服务单元的特征。

%设置随机数发生器种子rng (“默认”);%设置小区1 eNodeB配置根据R.47SimulationParameters = struct;SimulationParameters.ndlrb = 50;SimulationParameters.cellrefp = 2;SimulationParameters.ncellid = 0;SimulationParameters.cfi = 2;SimulationParameters.DuplexMode =.'FDD';SimulationParameters.TotsubFrames = 1;%这不是总数%在模拟中使用的子帧,只是我们使用的子帧的数量对波形发生器的每次调用产生的%。%指定PDSCH配置子结构SimulationParameters.pdsch.txscheme ='spatialmux';SimulationParameters.pdsch.modulation = {16 qam的};simulationParameters.PDSCH.NLayers=1;simulationParameters.PDSCH.Rho=-3;simulationParameters.PDSCH.PRBSet=(0:49)';%表A.3.3.2.1-2,TS 36.101simulationparameters . pdschr . trblksize = [8760 8760 8760 8760 8760 0 8760 8760 8760 8760 8760 8760 8760 8760 8760 8760 8760 8760 8760 8760 8760 8760 8760 8760 8760];%表A.3.3.2.1-2,TS 36.101simulationParameters.PDSCH.CodedTrBlkSizes = [24768 26400 26400 26400 26400 0 26400 26400 26400 26400]。simulationParameters.PDSCH.CSIMode =“PUCCH 1 - 1”;simulationParameters.PDSCH.PMIMode =“宽带”;simulationParameters.PDSCH.CSI='在';simulationParameters.PDSCH.W = [];simulationParameters.PDSCH.CodebookSubset ='1111'%指定PDSCH OCNG配置simulationParameters.OCNGPDSCHEnable ='在'%启用OCNG填充simulationParameters.OCNGPDSCHPower=-3;% OCNG功率与PDSCH Rho相同simulationParameters.OCNGPDSCH.RNTI=0;%虚拟UE RNTIsimulationParameters.OCNGPDSCH.Modulation =“QPSK”OCNG符号调制百分比simulationParameters.OCNGPDSCH.TxScheme=“TxDiversity”%OCNG传输模式2

称呼ltermcdltool.产生在未指定的默认参数的eNodeBsimulationParameters

enb1 = ltermcdl(SimulationParameters);

干涉eNodeBs组态

两个干涉细胞的特征在于由以下结构eNB2.eNB3.。这些有相同的字段值作为服务小区(eNB1.),但下列情况除外:

  • Cell Id的值为1和2eNB2.eNB3., 分别。

  • PDSCH调制方案由传输模式4 (TM4)干扰模型(TS 36.101, B.5.3)指定[1])。此值在子帧基础上逐子帧更改,并在主处理循环中修改。

%第2单元enb2 = enb1;enb2.ncellid = 1;enb2.ocngpdschenable ='离开'%第三单元enb3 = enb1;enb3。NCellID = 2;enb3。OCNGPDSCHEnable ='离开'

传播信道和信道估计配置

本节设置三个传播通道的参数

  • 服务小区UE

  • 首先干扰UE

  • 第二干扰小区UE

如在(TS 36.101中指定,表8.2.1.4.1B-2 [1])使用EVA5通道条件。

%eNodeB1到UE的传播信道channel1=struct;通道配置结构channel1.seed = 20;%通道种子channel1.NRxAnts = 2;%2接收天线。DelayProfile =“爱娃”%延迟曲线channel1.DopplerFreq=5;%多普勒频率。MIMOCorrelation ='低的'% Multi-antenna相关性channel1.nterms = 16;衰落模型中使用的振荡器channel1.ModelType =“GMEDS”%瑞利衰落模型类型channel1.InitPhase =“随机”%随机初始相位channel1.normalizepathgains ='在'%正常化延迟分布电源channel1.normalizetxants ='在'%发射天线的标准化

信道采样率取决于OFDM调制器中FFT的大小。这可以使用函数获得lteofdminfo.

OFDMINFO = LTEOFDMINFO(ENB1);Channel1.SamplingRate = OFDMINFO.SAMPLINGRATE;对UE传播信道的%eNodeB2(干扰)channel2=channel1;channel2.Seed=122;%通道种子UE传播通道% eNodeB3(干扰)Channel3 = Channel1;channel3.seed = 36;%通道种子

的变量perfectChanEstimator控制信道估计性能。有效值真的假的。当设置为真的完美的信道估计被用于否则有缺陷的估计被用于,基于接收导频信号的值。

%信道估计行为PerfectChanestimator = True;%的信道估计器的配置结构被定义如下。这%频率和时间平均窗口大小的选择相对跨越一个%大量资源元素。选择大窗口尺寸%平均值和资源中可能的干扰一样%元素。请注意,时间和/或频率的平均窗口太大%将导致由于平均频道变化而导致信息丢失。%这产生了日益不完全信道估计这会影响均衡器的性能。cec = struct;%信道估计配置结构cec.pilotaverage =.“用户定义”导频码元的平均%类型cec.freqwindow = 31;频率窗口大小cec.timewindow = 23;%时间窗口大小cec.InterpType=“立方”%二维插值类型cec.interpwindow =“居中”%插值窗口类型cec.InterpWinSize=1;插值窗口大小

信号、干扰和噪声功率级

从SINR, DIP和NOC.值我们可以计算缩放因子,以应用于来自服务和干扰单元的信号,以及噪声水平。

功能henbscalingfactors.m.计算缩放因子K1K2K3应用于来自考虑的三个单元格的通道过滤的波形。缩放系数适用于高斯白噪声也被计算出来。这些值保证了信号功率,干扰功率和噪声功率是按照指定的SINR和DIP值。

%信道噪声设置nocLin=10^(Noc/10)*(1e-3);瓦特%线性%考虑FFT (OFDM)缩放no = sqrt(noclin /(2 * double(Ofdminfo.nfft)))));%信号和干扰幅度缩放因子计算[K1,K2,K3]=hENBscalingFactors(DIP2,DIP3,Noc,SINR,enb1,enb2,enb3);

主循环初始化

主处理循环之前,我们需要建立混合自动重复请求(HARQ)进程和初始化中间变量。对应于该配置的HARQ过程ID序列输出由所述ltermcdltool.函数。一个HARQ进程(id为1到8)关联到每一个子帧。序列中的值为0表示数据没有在相应的子帧中传输。这可能是因为它是上行子帧,或者因为下行子帧中没有数据被调度(类似于本例中的子帧5)。

所有HARQ过程的初始化%状态HarqProcesses = HNewHarqProcess(ENB1);%将HARQ进程ID初始化为1作为第一个非零传输%块将总是使用第一HARQ过程进行发送。这个%将通过lteRMCDLTool后全力输出序列进行更新%第一次调用该函数harqProcessSequence=1;%为主循环设置变量lastOffset=0;初始化前一帧的帧定时偏移量FrameOffset = 0;初始化帧定时偏移nPMI = 0;%初始化预编码矩阵指示数计算值(PMI)计算blkcrc = [];%阻塞所有考虑的子帧的CRCbittput = [];每个子帧的成功接收的比特的数量%txedTrBlkSizes = [];%每子帧传输的比特数每一帧计算的总传输比特数的向量。runningMaxThPut = [];%存储成功接收位数的向量,为每个子帧。runningSimThPut=[];%获得发射天线的数量。dims = ltedlresourcegridsize(enb1);p =昏暗(3);%为每个码字和传输分配冗余版本序列%每个子帧的块大小rvequence = enb1.pdsch.rvseq;trblksize = enb1.pdsch.trblksizes;%设置闭环空间复用的PMI延迟pmiDelay = 8;%如TS 36.101,表8.2.1.4.1B-1所示%初始化第一个“pmiDelay”子帧的PMIspmiDims = ltePMIInfo (enb1 enb1.PDSCH);(pmiDims txPMIs = 0。NSubbands pmiDelay);%标志,指示是否从UE获得有效的PMI反馈pmiReady = FALSE;

主循环

主循环遍历指定数量的子帧。对于每个有数据的下行子帧,执行如下操作:

  • 检查HARQ进程,并确定是否发送一个新的包,或者如果需要重传

  • 从服务小区和干扰单元生成下行链路波形

  • 与传播信道滤波器的波形,并添加高斯白噪声

  • 对来自服务单元的信号进行同步和OFDM解调

  • 估计服务小区的传播信道

  • 均衡和解码PDSCH

  • 解码DL-SCH

  • 使用获得的块CRC确定吞吐量性能

fprintf中('\ nSimulating%d(多个)帧\ N', NFrames);for循环%主营:对所有的子帧为了subframeNo = 0: (NFrames * 10 - 1)%为每个子帧重新初始化通道种子以增加可变性。种子= 1 + subframeNo;channel2。种子= 1 + subframeNo + (NFrames * 10);channel3。种子= 1 + subframeNo + 2 * (NFrames * 10);%更新子帧号enb1.NSubframe = subframeNo;enb2.NSubframe = subframeNo;enb3.NSubframe = subframeNo;duplexInfo = lteDuplexingInfo(ENB1);如果duplexInfo.NSymbolsDL〜= 0%目标仅下行链路子帧%从HARQ进程序列中获取子帧的HARQ进程IDharqid = harqprocesssequence(mod(subframeno,length(harqprocesssequence))+ 1);%当前子帧中调度了一个传输块%(由非零'harqid'表示),执行传输和%接待。否则,继续下一个子帧。如果harqid == 0.继续结尾%更新当前HARQ进程harqProcesses(harqID)= hHARQScheduling(......harqProcesses(harqID)、子帧、rvSequence);提取当前子帧传输块大小trBlk = trBlkSizes(:,MOD(subframeNo,10)1)'。%使用HARQ进程状态更新PDSCH传输配置enb1.pdsch.rvseq = harqprocesses(harqid).txconfig.rvseq;enb1.pdsch.rv = harqprocesses(harqid).txconfig.rv;dlschtransportblk = harqprocesses(harqid).data;%在延迟队列中设置相应的PMI值如果strcmpi (enb1.PDSCH.TxScheme'spatialmux')PMIIDX​​ = MOD(子阵容,PMIDELAY);延迟队列中的% PMI索引enb1.PDSCH。PMISet = txPMIs(:, pmiIdx+1);%设置采购经理人指数结尾%创建发射波形[tx,~,enbOut]=LTERMCDLTOL(enb1,dlschTransportBlk);%填充25个样本,以覆盖信道预期的延迟范围%建模(实现延迟和通道延迟的组合)% 传播)txWaveform1 = [TX;零(25,P)];%从“enbout”获取HARQ ID序列以进行HARQ处理harqProcessSequence = enbOut.PDSCH.HARQProcessSequence;%根据TS 36.101,B.5.3.生成干扰源模型%功能hTM4InterfModel产生干扰的发射信号。txwaveform2 = [htm4interfmodel(enb2);零(25,p)];txwaveform3 = [htm4interfmodel(enb3);零(25,p)];%指定当前子帧的通道时间channel1.inittime = subframeno / 1000;channel2.inittime = channel1.Inittime;channel3.inittime = channel1.Inittime;%通过通道传递数据rxwaveorm1=lteFadingChannel(信道1,txwaveorm1);rxwaveorm2=lteFadingChannel(信道2,txwaveorm2);rxwaveorm3=lteFadingChannel(信道3,txwaveorm3);%生成噪音噪声=否*复杂(Randn(randn(rxwaveform1)),......randn(大小(rxWaveform1));%将AWGN添加到接收的时域波形中rxWaveform=K1*rxwaveorm1+K2*rxwaveorm2+K3*rxwaveorm3+噪声;%接受者%一旦每一帧,在子帧0,计算一个新的同步%抵消如果(MOD(subframeNo,10)== 0)帧偏移= lteDLFrameOffset(ENB1,rxWaveform);如果(frameOffset>25)frameOffset=lastOffset;结尾lastOffset=帧偏移;结尾%同步接收波形rxwaveform = rxwaveform(1 + frameoffset:结束,:);%SCALE RXWAVEFORM由1 / K1避免数值问题%信道解码阶段rxwaveform = rxwaveform / k1;%在接收数据上执行OFDM解调以获取%资源网格rxSubframe=lteOFDMDemodulate(enb1,rxWaveform);%执行信道估计如果(perfectChanEstimator) estChannelGrid = lteDLPerfectChannelEstimate(enb1, channel1, frameOffset);*rxWaveform2 + K3*rxWaveform3 + noise;noiseInterf = noiseInterf / K1;noiseGrid = lteOFDMDemodulate(enb1, noiseInterf(1+frameOffset:end,:));噪音= var (noiseGrid (:));其他的[EstchannelGrid,噪声] = LTedLchanneLeStimate(......ENB1,enb1.PDSCH,CEC,rxSubframe);结尾%获得PDSCH指数pdschIndices = ltePDSCHIndices(ENB1,enb1.PDSCH,enb1.PDSCH.PRBSet);%获取PDSCH资源元素。按比例缩放接收的子帧%PDSCH功率因数RHO。[pdschrx,pdschhest] = lteextractresources(pdschindices,......rxSubframe * (10 ^ (-enb1.PDSCH.Rho / 20)), estChannelGrid);%执行均衡和预编码如果STRCMP(eqMethod,'MMSE'% MIMO均衡和预编码(基于MMSE)[rxdepecoded,csi] = lteequalizemimo(enb1,enb1.pdsch,......pdschRx,pdschHest,noiseEst);其他的%MIMO均衡和编码(基于MMSE-IRC)[rxDeprecoded, csi] = hEqualizeMMSEIRC (enb1 enb1。PDSCH,......rxSubframe estChannelGrid,噪音);结尾%执行层解映射、解调和解扰cws=ltePDSCHDecode(enb1,设置字段(enb1.PDSCH,“TxScheme”......“端口7-14”),rxDeprecoded);%PDSCH传输方案为:%修改为端口7-14,以跳过编码操作%按CSI缩放llrCWS = hCSIscaling(enb1.PDSCH,CWS,CSI);%解码DL-SCH[decbits,harqprocesses(harqid).blkerr,harqprocesses(harqid).decstate] =......lteDLSCHDecode (enb1 enb1。PDSCH trBlk,水煤浆,......harqProcesses (harqID) .decState);%存储计算吞吐量的值%仅适用于具有数据和有效的PMI反馈子如果any(trBlk)和&pmiredy-blkCRC=[blkCRC-harqProcesses(harqID).blkerr];txedtrlksize=[txedtrlksize-trBlk];bitTput=[bitTput-trBlk.*(1-harqProcesses(harqID).blkerr];结尾runningSimThPut=[runningSimThPut和(比特输出,2)];runningmaxtput=[runningmaxtput和(txedTrBlkSizes,2)];%向eNodeB提供PMI反馈如果strcmpi (enb1.PDSCH.TxScheme'spatialmux')PMI = ltePMISelect(ENB1,enb1.PDSCH,estChannelGrid,noiseEst);txPMIs(:, pmiIdx + 1)= PMI;NPMI = NPMI + 1;如果NPMI> = pmidelay pmiready = true;结尾结尾结尾结尾
模拟4(多个)帧

结果

本节计算实现的吞吐量。还提供了所有模拟子帧的运行测量吞吐量图。

maxthrougpult = sum(txedtrblksizes);%最大可能吞吐量simthroughts=sum(比特输出,2);%模拟吞吐量显示达到的吞吐量百分比DISP(['实现吞吐量'num2str(单吞吐量*100/最大吞吐量)'%'])%剧情片吞吐量图;图(runningSimThPut * 100 / runningMaxThPut)ylabel('吞吐量(%)');Xlabel(“模拟子”);标题(“吞吐量”);
实现吞吐量78.5714%

在统计上有效的结果,应该为更大数量的帧运行模拟。下图显示了模拟1000帧时的吞吐量结果。

附录

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

精选书目

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

  2. 3GPP TR 36.829 “用于LTE用户设备(UE)增强性能要求”