主要内容

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

该示例演示了小区间干扰对具有最小均方误差(MMSE)和最小均方误差 - 干扰拒收组合(MMSE-IRC)接收器的PDSCH吞吐量的影响。考虑服务小区和两个干扰eNodeB。TS 36.101中规定的条件,第8.2.1.4.1b条[1使用)。

介绍

该示例测量具有来自两个主要干扰小区的小区间干扰的服务小区中的用户设备(UE)的实现吞吐量。服务单元格在FDD模式下使用RMC R.47。在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;cell 2的dB中% DIPDIP3 = -8.66;cell 3在dB中的拨码noc = -98;% dBm/15kHz平均功率谱密度

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

$ dior2 = 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.PMIMIMODE ='宽带';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;%虚拟终端rtisimulationParameters.OCNGPDSCH.Modulation =“正交相移编码”OCNG符号调制百分比simulationParameters.OCNGPDSCH.TxScheme =“TxDiversity”%OCNG传输模式2

称呼ltermcdltool.生成未指定的默认eNodeB参数simulationParameters

enb1 = ltermcdl(SimulationParameters);

干扰eNodeB配置

两个干扰细胞的特征在于结构eNB2.eNB3.。这些具有与服务小区相同的字段值(eNB1.)以下例外:

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

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

%细胞2enb2 = enb1;enb2.ncellid = 1;enb2.ocngpdschenable =.'离开'%细胞3enb3 = enb1;enb3。NCellID = 2;enb3。OCNGPDSCHEnable ='离开'

传播信道和信道估计配置

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

  • 为UE提供服务

  • 首先干扰UE

  • 第二干扰细胞到UE

如(TS 36.101,表8.2.1.4.1b-2)所示[1])使用EVA5通道条件。

%eNodeB1到UE传播信道channel1 =结构;通道配置结构channel1.seed = 20;%通道种子channel1.nrxants = 2;%2接收天线。DelayProfile =“爱娃”%延迟概要。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。种子= 122;%通道种子UE传播通道% eNodeB3(干扰)Channel3 = Channel1;channel3.seed = 36;%通道种子

的变量PerfectChanestimator.控制信道估计行为。有效值是真正的。设置到真正的否则使用完美的频道估计,否则基于所接收的导频信号的值使用不完美的估计。

%信道估计行为PerfectChanestimator = True;%信道估计器配置结构如下所定义。这%频率和时间平均窗口大小的选择相对跨越一个%大量资源元素。选择大窗口尺寸%平均值和资源中可能的干扰一样%的元素。注意,时间和/或频率的平均窗口太大%将导致由于平均频道变化而导致信息丢失。%这产生了可能影响的越来越不完美的信道估计均衡器的性能。cec = struct;%信道估计配置结构cec.pilotaverage =.“UserDefined”%类型的导频符号平均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) * (1 e - 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 = [];%每子帧传输的比特数每一帧计算的总传输比特数的向量。runingmaxthput = [];%向量存储成功接收位的数目,计算为每个子帧。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('\ nsimulation%d帧\ n', NFrames);循环%MAIN:对于所有子帧为了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 = lteduplexInfo(eNB1);如果duplexInfo.nsymbolsdl〜= 0%目标仅下行链路子帧%从HARQ进程序列中获取子帧的HARQ进程IDharqid = harqprocesssequence(mod(subframeno,length(harqprocesssequence))+ 1);%当前子帧中调度了一个传输块%(由非零'harqid'表示),执行传输和%接待。否则,继续下一个子帧。如果harqid == 0.继续结尾%更新当前HARQ进程HarqProcesses(Harqid)= hharqscheduling(......harqProcesses (harqID)、subframeNo 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] = lteRMCDLTool(enb1, dlschTransportBlk);% Pad 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;%通过通道传递数据rxWaveform1 = lteFadingChannel (channel1 txWaveform1);rxWaveform2 = lteFadingChannel (channel2 txWaveform2);rxWaveform3 = lteFadingChannel (channel3 txWaveform3);%生成噪音噪声=否*复杂(Randn(randn(rxwaveform1)),......randn(大小(rxWaveform1)));%将AWGN添加到接收的时域波形中rxwaveform = k1 * rxwaveform1 + k2 * rxwaveform2 + k3 * rxwaveform3 +噪声;%接收%一度帧,在子帧0上,计算新同步%抵消如果(mod(subframeno,10)== 0)FrameOffset = LTEDLFAMEOFFSET(ENB1,RxWAVEFORM);如果(frameOffset > 25) frameOffset = lastOffset;结尾lastOffset = frameOffset;结尾%同步接收的波形rxwaveform = rxwaveform(1 + frameoffset:结束,:);%SCALE RXWAVEFORM由1 / K1避免数值问题%通道解码阶段rxwaveform = rxwaveform / k1;%在接收数据上执行OFDM解调以获取%资源网格rxSubframe = lteofdm解调器(enb1, rx波形);%执行信道估计如果(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,噪音);其他的MIMO均衡和解预编码(基于MMSE-IRC)[rxDeprecoded, csi] = hEqualizeMMSEIRC (enb1 enb1。PDSCH,......rxSubframe estChannelGrid,噪音);结尾执行层映射,解调和解码器水煤浆= ltePDSCHDecode (enb1 setfield (enb1。PDSCH,“TxScheme”......“Port7-14”),rxdeprecoded);% PDSCH传输方案为%修改为port7-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反馈的子帧的百分比如果任何(trBlk) && pmiReady blkCRC = [blkCRC harqProcesses(harqID).blkerr];txedTrBlkSizes = [txedTrBlkSizes trBlk];bitTput = [bitTput trBlk.*(1-harqProcesses(harqID).blkerr)];结尾runningSimThPut = [runningSimThPut sum(bitTput,2)];runningMaxThPut = [runningMaxThPut sum(txedTrBlkSizes,2)]; / /输出%向eNodeB提供巡检反馈信息如果strcmpi (enb1.PDSCH.TxScheme'spatialmux')PMI = LTEPMISELECT(ENB1,ENB1.PDSCH,ESTCHANNELGRID,噪声);TXPMIS(:,PMIIDX​​ + 1)= PMI;NPMI = NPMI + 1;如果NPMI> = pmidelay pmiready = true;结尾结尾结尾结尾
模拟4帧

结果

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

maxthrougpult = sum(txedtrblksizes);最大可能吞吐量simThroughput = (bitTput, 2)之和;%模拟吞吐量显示达到的吞吐量百分比DISP(['实现吞吐量'num2str (simThroughput * 100 / maxThroughput)'%'])%绘图运行吞吐量图;绘图(runningsimthput * 100. / runnmaxthput)ylabel('吞吐量(%)');Xlabel('模拟子帧');标题('吞吐量');
实现吞吐量78.5714%

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

附录

这个例子使用了以下帮助函数:

选定的参考书目

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

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