小区间干扰的影响PDSCH吞吐量与MMSE-IRC接收机

该实施例证明吞吐量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]。

仿真设置

默认模拟长度设置为四帧,以保持模拟时间低。增加n帧增加模拟时间和生产统计显著吞吐量结果。使用变量eqMethod设置接收器的均衡,这可以取值“MMSE”和“MMSE_IRC”。

n帧= 4;帧的数量%eqMethod ='MMSE_IRC';%MMSE,MMSE_IRC

的信号,干扰和噪声功率电平在测试中指定(TS 36.101,第8.2.1.4.1B [1]),使用以下参数:信号与干扰加噪声比(SINR),显着干扰源的比例(DIP)和噪声功率谱密度。

SINR = 0.8;以dB%SINRDIP2 = -1.73;以dB%DIP小区2DIP3 = -8.66;以dB%DIP为小区3NOC = -98;%dBm的/ 15kHz的平均功率谱密度

所述DIP表征每个干扰小区的并且被定义为:

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

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

哪里$ Ior2 $$ 110 3 $从小区2和3,分别平均接收功率谱密度。$ NOC $是白噪声源的平均功率谱密度(每相对于归一化到子载波间隔的资源元素的平均功率)。

服务eNodeB配置

该试验考虑用途参考通道R.47在FDD模式。与此参考信道相关联的参数在(TS 36.101,表A.3.3.2.1-2 [指定1])。结构ENB1表征服务小区。

%设置随机数发生器种子RNG('默认');根据R.47%设定电池1的eNodeB配置simulationParameters =结构;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 = {'16QAM'};simulationParameters.PDSCH.NLayers = 1;simulationParameters.PDSCH.Rho = -3;simulationParameters.PDSCH.PRBSet =(0:49)';%表A.3.3.2.1-2,TS 36.101simulationParameters.PDSCH.TrBlkSizes = [8760 8760 8760 8760 8760 0 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功率相同的Rho PDSCHsimulationParameters.OCNGPDSCH.RNTI = 0;%虚拟UE RNTIsimulationParameters.OCNGPDSCH.Modulation ='QPSK';%OCNG符号调制simulationParameters.OCNGPDSCH.TxScheme ='TxDiversity';%OCNG传输模式2

呼叫lteRMCDLTool产生在未指定的默认参数的eNodeBsimulationParameters

ENB1 = lteRMCDL(simulationParameters);

干扰eNodeB的配置

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

  • 小区ID所采用的值1和2为ENB2ENB3, 分别。

  • 所述PDSCH的调制方案是通过将传输模式4(TM4)的干扰模型(TS 36.101,B.5.3 [指定1])。此值在子帧逐子帧为基础改变,并在主处理循环被修改。

%小区2ENB2 = ENB1;enb2.NCellID = 1;enb2.OCNGPDSCHEnable =“关”;%细胞3ENB3 = ENB1;enb3.NCellID = 2;enb3.OCNGPDSCHEnable =“关”;

传播信道和信道估计配置

此部分设置的参数为3的传播信道

  • 服务小区UE

  • 首先干扰小区UE

  • 第二干扰小区UE

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

%eNodeB1到UE的传播信道通道1 =结构;%频道配置结构channel1.Seed = 20;%频道种子channel1.NRxAnts = 2;%2接收天线channel1.DelayProfile ='EVA';%延迟分布channel1.DopplerFreq = 5;%多普勒频率channel1.MIMOCorrelation ='低';%的多天线相关channel1.NTerms = 16;在衰落模型用于%振荡器channel1.ModelType ='GMEDS';%瑞利衰落模型类型channel1.InitPhase ='随机';%随机初始阶段channel1.NormalizePathGains ='上';%正常化延迟分布电源channel1.NormalizeTxAnts ='上';用于发射天线%规格化

信道的采样率依赖于OFDM调制器中使用的FFT大小。这可以使用函数来获得lteOFDMInfo

ofdmInfo = lteOFDMInfo(ENB1);channel1.SamplingRate = ofdmInfo.SamplingRate;%eNodeB2(干扰)到UE的传播信道通道2 =通道1;channel2.Seed = 122;%频道种子%eNodeB3(干扰)到UE的传播信道通道3 =通道1;channel3.Seed = 36;%频道种子

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

%信道估计的行为perfectChanEstimator = TRUE;%的信道估计器的配置结构被定义如下。该%的频率和时间平均窗口的大小被选择为跨越相对%大量的资源要素。大窗口大小被选择以%的平均不亚于资源可能噪声和干扰%的元素。请注意,在时间和/或频率太大的平均窗%会导致信息丢失,由于平均出的信道变化。%这产生了日益不完全信道估计这会影响%的均衡器的性能。CEC =结构;%的信道估计的配置结构cec.PilotAverage ='用户自定义';导频码元的平均%类型cec.FreqWindow = 31;%频率窗口大小cec.TimeWindow = 23;%时间窗口大小cec.InterpType ='立方体';%2D插值类型cec.InterpWindow =“中心”;%插值窗型cec.InterpWinSize = 1;%插值窗口大小

信号,干扰和噪声功率电平

从SINR,DIP和NOC值,我们可以计算出比例因子应用到信号从服务和干扰小区,以及噪声电平。

功能hENBscalingFactors.m计算比例因子K1K2K3到适用于从所考虑的三个小区的信道滤波的波形。缩放因子没有适用于高斯白噪声也被计算出来。这些值保证了信号功率,干扰功率和噪声功率是按照指定的SINR和DIP值。

%信道噪声设置nocLin = 10 ^(NOC / 10)*(1E-3)。在瓦%线性%考虑到FFT(OFDM)缩放否= SQRT(nocLin /(2 *双(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;%初始化帧定时从以前的帧偏移帧偏移= 0;%初始化帧定时偏移NPMI = 0;%初始化预编码矩阵指示的数目%(PMI)组计算blkCRC = [];%块CRC所有考虑子bitTput = [];每个子帧的成功接收的比特的数量%txedTrBlkSizes = [];每子帧发送的比特的数量%传输的比特,对每个子帧计算出的总数的%矢量。runningMaxThPut = [];%矢量存储成功接收的比特数,计算出%每个子帧。runningSimThPut = [];%获得发射天线的数目。DIMS = lteDLResourceGridSize(ENB1);P =变暗(3);%分配每个码字和传输冗余版本序列%块大小对于每个子帧rvSequence = enb1.PDSCH.RVSeq;trBlkSizes = enb1.PDSCH.TrBlkSizes;%设置闭环空间复用的PMI延迟pmiDelay = 8;%如TS 36.101中指定,表8.2.1.4.1B-1%初始化的PMI为先“pmiDelay”子帧pmiDims = ltePMIInfo(ENB1,enb1.PDSCH);txPMIs =零(pmiDims.NSubbands,pmiDelay);%指示标志是否有效PMI反馈可从UEpmiReady = FALSE;

主循环

主循环迭代子帧的指定数量。用于与数据的每个下行链路子帧执行以下操作:

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

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

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

  • 同步和OFDM解调来自服务小区的信号

  • 针对服务小区估计传播信道

  • 均衡化和解码PDSCH

  • 解码DL-SCH

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

fprintf中('\ nSimulating%d(多个)帧\ N',n帧);for循环%主营:对所有的子帧对于subframeNo = 0:(n帧* 10-1)对于每个子帧,以增加可变性%重新初始化信道种子channel1.Seed = 1 + subframeNo;channel2.Seed = 1 + subframeNo +(n帧×10);channel3.Seed = 1 + subframeNo + 2 *(n帧×10);%更新子帧号enb1.NSubframe = subframeNo;enb2.NSubframe = subframeNo;enb3.NSubframe = subframeNo;duplexInfo = lteDuplexingInfo(ENB1);如果duplexInfo.NSymbolsDL〜= 0%的目标仅下行链路子帧%获得HARQ过程ID用于从HARQ处理序列的子帧harqID = harqProcessSequence(MOD(subframeNo,长度(harqProcessSequence))+ 1);%如果有计划在当前子帧的传输块%(以非零“harqID”表示),执行发送和%接收。否则,继续下一子。如果harqID == 0继续;结束%更新当前HARQ进程harqProcesses(harqID)= hHARQScheduling(...harqProcesses(harqID),subframeNo,rvSequence);%提取当前子帧的传输块大小(S)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)。数据;%将PMI在延迟队列适当的值如果strcmpi(enb1.PDSCH.TxScheme,'SpatialMux')pmiIdx = MOD(subframeNo,pmiDelay);%PMI索引在延迟队列enb1.PDSCH.PMISet = txPMIs(:, pmiIdx + 1);%设定PMI结束%创建发射波形[TX,〜,enbOut] = lteRMCDLTool(ENB1,dlschTransportBlk);%垫25个样品,以覆盖延迟的从信道所期望的范围%建模(实施延迟和信道延迟的组合% 传播)txWaveform1 = [TX;零(25,P)];%获得从“enbOut”用于HARQ处理的HARQ ID序列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;通过该信道%通行证数据rxWaveform1 = lteFadingChannel(通道1,txWaveform1);rxWaveform2 = lteFadingChannel(通道2,txWaveform2);rxWaveform3 = lteFadingChannel(通道3,txWaveform3);%产生噪声噪声=否*复合物(randn(大小(rxWaveform1)),...randn(大小(rxWaveform1)));%添加AWGN对接收的时域波形rxWaveform = K1 * rxWaveform1 + K2 * rxWaveform2 + K3 * rxWaveform3 +噪声;%接收机%一旦每一帧,在子帧0,计算一个新的同步%偏置如果(MOD(subframeNo,10)== 0)帧偏移= lteDLFrameOffset(ENB1,rxWaveform);如果(帧偏移> 25)帧偏移= lastOffset;结束lastOffset =帧偏移;结束%同步接收波形rxWaveform = rxWaveform(1 +帧偏移:端,:);%量表rxWaveform由1 / K1,以避免与数值问题%信道解码阶段rxWaveform = rxWaveform / K1;%对接收的数据执行OFDM解调以获得%资源网格rxSubframe = lteOFDMDemodulate(ENB1,rxWaveform);%进行信道估计如果(perfectChanEstimator)estChannelGrid = lteDLPerfectChannelEstimate(ENB1,通道1,帧偏移);noiseInterf = K2 * rxWaveform2 + K3 * rxWaveform3 +噪声;noiseInterf = noiseInterf / K1;noiseGrid = lteOFDMDemodulate(ENB1,noiseInterf(1 +帧偏移:端,:));noiseEst = VAR(noiseGrid(:));其他[estChannelGrid,noiseEst] = 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);%执行均衡和deprecoding如果STRCMP(eqMethod,'MMSE'%MIMO均衡和deprecoding(基于MMSE)[rxDeprecoded,CSI] = lteEqualizeMIMO(ENB1,enb1.PDSCH,...pdschRx,pdschHest,noiseEst);其他%MIMO均衡和deprecoding(MMSE-IRC基于)[rxDeprecoded,CSI] = hEqualizeMMSEIRC(ENB1,enb1.PDSCH,...rxSubframe,estChannelGrid,noiseEst);结束%进行层解映射,解调和解扰CWS = ltePDSCHDecode(ENB1,setfield(enb1.PDSCH,'TxScheme'...'Port7-14'),rxDeprecoded);%的PDSCH传输方案是%的改性成port7-14,以便跳过deprecoding操作%缩放的LLR通过CSICWS = hCSIscaling(enb1.PDSCH,CWS,CSI);%译码DL-SCH[decbits,harqProcesses(harqID).blkerr,harqProcesses(harqID).decState] =...lteDLSCHDecode(ENB1,enb1.PDSCH,trBlk,水煤浆,...harqProcesses(harqID).decState);%存储值来计算吞吐量%仅适用于具有数据和有效的PMI反馈子如果任何(trBlk)&& pmiReady blkCRC = [blkCRC harqProcesses(harqID).blkerr];txedTrBlkSizes = [txedTrBlkSizes trBlk];bitTput = [。bitTput trBlk *(1-harqProcesses(harqID).blkerr)];结束runningSimThPut = [runningSimThPut总和(bitTput,2)];runningMaxThPut = [runningMaxThPut总和(txedTrBlkSizes,2)];%PMI提供反馈给eNodeB如果strcmpi(enb1.PDSCH.TxScheme,'SpatialMux')PMI = ltePMISelect(ENB1,enb1.PDSCH,estChannelGrid,noiseEst);txPMIs(:, pmiIdx + 1)= PMI;NPMI = NPMI + 1;如果NPMI> = pmiDelay pmiReady = TRUE;结束结束结束结束
模拟4(多个)帧

结果

这部分计算达到的吞吐量。还提供与正在运行的测量可针对所有模拟个子帧的身影。

maxThroughput =总和(txedTrBlkSizes);%最大可能的吞吐量simThroughput = SUM(bitTput,2);%模拟吞吐量%显示比例吞吐量实现DISP([“所获吞吐量”num2str(simThroughput * 100 / maxThroughput)'%'])%剧情片吞吐量图;图(runningSimThPut * 100 / runningMaxThPut)ylabel('吞吐量(%)');xlabel(“模拟子”);标题(“吞吐量”);
所获吞吐量78.5714%

对于统计学上有效的结果,仿真应该帧的较大数量的运行。下面示出了可以通过结果图仿真1000帧时。

附录

此示例使用以下辅助功能:

选择的参考书目

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

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