主要内容

细胞间干扰对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_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表征每个干扰单元,并且被定义为:

$ 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 (“默认”);%根据R.47设置cell 1的eNodeB配置SimulationParameters = 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;%虚拟终端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

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

% eNodeB1转UE传播通道channel1 =结构;通道配置结构channel1.seed = 20;%通道种子。NRxAnts = 2;% 2接收天线。DelayProfile =“爱娃”%延迟概要。DopplerFreq = 5;%多普勒频率。MIMOCorrelation ='低的'% Multi-antenna相关性channel1.nterms = 16;衰落模型中使用的振荡器。ModelType =“GMEDS”%瑞利衰落模型类型。InitPhase =“随机”%随机初始阶段channel1.normalizepathgains =“上”正规化延迟轮廓功率channel1.normalizetxants =“上”传送天线规格化

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

OFDMINFO = LTEOFDMINFO(ENB1);channel1.samplingrate = ofdminfo.samplingrate;%eNodeB2(干扰)到UE传播信道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进程号顺序由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确定吞吐量性能

流(“\ nSimulating % d帧(s) \ n”, NFrames);% Main 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,lenge(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;0(25日P)];%从“enbout”获取HARQ ID序列以进行HARQ处理harqProcessSequence = enbOut.PDSCH.HARQProcessSequence;%根据TS 36.101, B.5.3生成干涉模型。的htm4intermodel产生干扰发送信号。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(大小(rxWaveform1)),......randn(大小(rxWaveform1)));%将AWGN添加到接收的时域波形中rxwaveform = k1 * rxwaveform1 + k2 * rxwaveform2 + k3 * rxwaveform3 +噪声;%接收在子帧0上,每帧计算一次新的同步%抵消如果(mod(subframeNo,10) == 0) frameOffset = lteDLFrameOffset(enb1, rxWaveform); / /帧偏移如果(frameOffset > 25) frameOffset = lastOffset;结束lastOffset = frameOffset;结束%同步接收的波形rxwaveform = rxwaveform(1 + frameoffset:结束,:);%缩放rx波形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,噪音] =拉德堪仲欣(......enb1 enb1。PDSCH,cec, rxSubframe);结束%获得PDSCH指数pdschIndices = ltePDSCHIndices (enb1 enb1.PDSCH enb1.PDSCH.PRBSet);获取PDSCH资源元素。缩放接收的子帧% PDSCH功率因数[pdschrx,pdschhest] = lteextractresources(pdschindices,......rxSubframe * (10 ^ (-enb1.PDSCH.Rho / 20)), estChannelGrid);%执行均衡和预编码如果比较字符串(eqMethod“患者”% MIMO均衡和预编码(基于MMSE)[rxdeprecoded,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缩放llr水煤浆= hCSIscaling (enb1.PDSCH,水煤浆,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, noiseEst); txPMIs(:, pmiIdx+1) = PMI; nPMI = nPMI+1;如果npmi> = pmidelay pmiready = true;结束结束结束结束
模拟4帧(s)

结果

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

maxthrougpult = sum(txedtrblksizes);最大可能吞吐量simThroughput = (bitTput, 2)之和;%模拟吞吐量显示达到的吞吐量百分比DISP(['实现吞吐量'num2str (simThroughput * 100 / maxThroughput)“%”])图运行吞吐量人物,情节(runningSimThPut * 100. / runningMaxThPut) ylabel ('吞吐量(%)');包含(模拟的子帧的);标题(的吞吐量);
实现吞吐量78.5714%

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

附录

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

选定的参考书目

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

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