主要内容

Inter-Cell干扰效果与MMSE-IRC接收机PDSCH吞吐量

这个例子演示了inter-cell干扰PDSCH吞吐量的影响与最小均方误差(MMSE)和最小均方误差-组合(MMSE-IRC)接收机抗干扰能力。一份细胞和两个干扰eNodeBs被认为是。TS 36.101中指定的条件,部分8.2.1.4.1B [1使用)。

介绍

这个例子的措施实现吞吐量为用户设备(UE)的细胞与inter-cell干扰两种主要干扰细胞。为细胞使用RMC R.47 FDD模式。提供的参数和干扰细胞包括功率和噪声水平TS 36.101中描述,部分8.2.1.4.1B [1]。

仿真设置

默认仿真长度设置为四个帧保持较低的仿真时间。增加NFrames提高仿真的时间和产生吞吐量统计上显著的结果。使用变量eqMethod设置接收均衡,可以采取“细微”和“MMSE_IRC”的值。

NFrames = 4;%的帧数eqMethod =“MMSE_IRC”;%的患者,MMSE_IRC

陷,信号和噪声功率水平测试(TS 36.101部分中指定8.2.1.4.1B [1)使用以下参数:signal-to-interference-plus-noise比(SINR),占主导地位的影响比例(下降)和噪声功率谱密度。

SINR = 0.8;%的SINR dBDIP2 = -1.73;%蘸dB 2细胞DIP3 = -8.66;%蘸细胞3 dBNoc = -98;% dBm / 15 khz平均功率谱密度

干扰细胞的倾向描述每个被定义为:

美元DIP2 = Ior2 / (Ior2 + Ior3 + Noc)美元

美元DIP3 = Ior3 / (Ior2 + Ior3 + Noc)美元

在哪里Ior2美元Io3美元平均接收功率谱密度从细胞2和3,分别。Noc美元是一个白噪声来源的平均功率谱密度(平均功率/资源元素归一化对副载波间距)。

eNodeB服务配置

测试考虑使用参考通道R.47 FDD模式。与此相关的参数(TS 36.101,表中指定的参考通道A.3.3.2.1-2 [1])。结构enb1特征的细胞。

%设置随机数生成器的种子rng (“默认”);%设置单元1根据R.47 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。调制= {16 qam的};simulationParameters.PDSCH。NLayers = 1;simulationParameters.PDSCH。ρ= 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 PDSCHρ一样simulationParameters.OCNGPDSCH。RNTI = 0;%虚拟问题RNTIsimulationParameters.OCNGPDSCH。调制=“正交相移编码”;% OCNG符号调制simulationParameters.OCNGPDSCH。TxScheme =“TxDiversity”;% OCNG传输模式2

调用lteRMCDLTool生成默认eNodeB参数中指定simulationParameters

enb1 = lteRMCDL (simulationParameters);

干扰eNodeBs配置

这两种干扰细胞的结构特点enb2enb3。这些服务有相同的字段值作为细胞(enb1)以下异常:

  • 细胞Id值1和2enb2enb3,分别。

  • PDSCH调制方案指定的传输模式4 (TM4)干扰模型(TS 36.101, B.5.3 [1])。这个值变化对subframe-by-subframe基础和主要处理循环的修改。

%细胞2enb2 = enb1;enb2。NCellID = 1;enb2。OCNGPDSCHEnable =“关闭”;%细胞3enb3 = enb1;enb3。NCellID = 2;enb3。OCNGPDSCHEnable =“关闭”;

传播通道和通道估计配置

本节设置参数三个传播渠道

  • 细胞问题服务

  • 第一个问题的干扰细胞

  • 第二个问题干扰细胞

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

% eNodeB1问题传播渠道channel1 =结构;%通道配置结构。种子= 20;%通道种子。NRxAnts = 2;% 2接收天线。DelayProfile =“爱娃”;%延迟概要。DopplerFreq = 5;%多普勒频率。MIMOCorrelation =“低”;% Multi-antenna相关性。NTerms = 16;%振荡器用于衰落模型。ModelType =“GMEDS”;%瑞利衰落模型类型。InitPhase =“随机”;%随机初始阶段。没有rmalizePathGains =“上”;%正常化延迟概要文件的权力。没有rmalizeTxAnts =“上”;%正常化传输天线

通道采样率取决于FFT大小用于OFDM调制器。这可以使用函数lteOFDMInfo

ofdmInfo = lteOFDMInfo (enb1);。SamplingRate = ofdmInfo.SamplingRate;% eNodeB2(干扰)问题传播渠道channel2 = channel1;channel2。种子= 122;%通道种子% eNodeB3(干扰)问题传播渠道channel3 = channel1;channel3。种子= 36;%通道种子

的变量perfectChanEstimator控制信道估计行为。有效的值真正的。当设置为真正的使用一个完美的信道估计,否则一个不完美的估计,基于飞行员收到信号的值。

%信道估计的行为perfectChanEstimator = true;%的通道估计配置结构如下定义。的%的频率和时间平均窗口大小选择跨度相对%的大量资源元素。大窗口大小选择%尽可能平均噪声和干扰的资源%的元素。注意,太大时间和/或频率的平均窗口%将导致损失的信息由于平均信道变化。%这产生越来越不完美的信道估计可以影响%均衡器的性能。cec =结构;%信道估计配置结构cec。PilotAverage =“UserDefined”;%的试点,平均象征cec。FreqWindow = 31;%频率窗口大小cec。TimeWindow = 23;%的时间窗口大小cec。InterpType =“立方”;% 2 d插值类型cec。InterpWindow =“中心”;%插值窗口类型cec。InterpWinSize = 1;%插值窗口大小

信号、干扰和噪声功率水平

从SINR,和Noc值我们可以计算比例因素从服务适用于信号和干扰细胞,以及噪声水平。

这个函数hENBscalingFactors.m计算扩展因素K1,K2K3适用于三个单元的通道过滤后的波形。比例因子没有适用于高斯白噪声也计算。这些值确保信号功率、干扰功率和噪声功率是根据指定的SINR和倾角值。

%信道噪声的设置nocLin = 10 ^ (Noc / 10) * (1 e - 3);%线性瓦%考虑FFT (OFDM)扩展没有=√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;%初始化时间抵消从之前的帧frameOffset = 0;%初始化帧定时偏移量nPMI = 0;%初始化矩阵预编码器信号的数量% (PMI)计算blkCRC = [];%块CRC认为子帧bitTput = [];%成功收到位/子帧的数量txedTrBlkSizes = [];%每个子帧的传输比特数%总传输的比特数的向量,计算每个子帧。runningMaxThPut = [];%向量存储成功收到位的数量,计算每个子帧%。runningSimThPut = [];%获得发射天线的数量。= lteDLResourceGridSize dim (enb1);P = dim (3);%分配冗余版本为每个码字序列和运输%为每个子帧块大小rvSequence = enb1.PDSCH.RVSeq;trBlkSizes = enb1.PDSCH.TrBlkSizes;%设置的PMI延迟闭环空间复用pmiDelay = 8;%在TS 36.101中,指定表8.2.1.4.1B-1%初始化采购经理人指数第一pmiDelay子帧pmiDims = ltePMIInfo (enb1 enb1.PDSCH);(pmiDims txPMIs = 0。NSubbands pmiDelay);%国旗表明如果一个有效的采购经理人指数可以从问题的反馈pmiReady = false;

主循环

主循环遍历指定的子帧的数量。为每个下行子帧数据执行以下操作:

  • 检查HARQ过程和决定是否发送一个新包或如果需要重传

  • 从细胞和生成下行波形干扰细胞

  • 滤波器波形和传播渠道和添加高斯白噪声

  • 同步和OFDM解调信号的细胞

  • 估计服务的传播通道细胞

  • 平衡和解码PDSCH

  • 解码DL-SCH

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

流(“\ nSimulating % d帧(s) \ 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进程ID为子帧序列harqID = harqProcessSequence (mod (subframeNo长度(harqProcessSequence)) + 1);%如果有一块运输计划在当前的子帧%(零harqID),执行和传播%接待。否则,继续下一子帧。如果harqID = = 0继续;结束%更新当前HARQ进程harqProcesses (harqID) = hHARQScheduling (harqProcesses (harqID)、subframeNo rvSequence);%提取当前子帧传输块大小(s)trBlk = trBlkSizes(:,国防部(subframeNo, 10) + 1)”;%更新PDSCH传输配置与HARQ进程状态enb1.PDSCH。RVSeq = harqProcesses (harqID) .txConfig.RVSeq;enb1.PDSCH。房车= harqProcesses (harqID) .txConfig.RV;dlschTransportBlk = harqProcesses (harqID) . data;%将PMI设置为适当的值在延迟队列如果strcmpi (enb1.PDSCH.TxScheme“SpatialMux”)pmiIdx =国防部(subframeNo pmiDelay);%的PMI指数延迟队列enb1.PDSCH。PMISet = txPMIs (:, pmiIdx + 1);%设置采购经理人指数结束%建立传输波形[tx, ~, enbOut] = lteRMCDLTool (enb1 dlschTransportBlk);% 25样品垫覆盖的范围延误预计从通道%建模(实现延迟和通道延迟的组合%传播)txWaveform1 = [tx;0(25日P)];%得到HARQ ID序列的enbOut HARQ处理harqProcessSequence = enbOut.PDSCH.HARQProcessSequence;按每TS %生成干涉模型36.101,B.5.3。的% hTM4InterfModel函数生成干涉传输信号。txWaveform2 = [hTM4InterfModel (enb2);0(25日P)];txWaveform3 = [hTM4InterfModel (enb3);0(25日P)];%指定频道目前的子帧的时间。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)));%添加情况下接收到的时域波形rxWaveform = K1 * rxWaveform1 + K2 * * rxWaveform3 rxWaveform2 + K3 +噪声;%接收%每帧,在子帧0,计算一个新的同步%抵消如果(国防部(subframeNo 10) = = 0) frameOffset = lteDLFrameOffset (enb1 rxWaveform);如果(frameOffset > 25) frameOffset = lastOffset;结束lastOffset = frameOffset;结束%同步接收到的波形rxWaveform = rxWaveform (1 + frameOffset:最终,);由1 / %规模rxWaveform K1避免数值问题%信道解码阶段rxWaveform = rxWaveform / K1;%完成OFDM解调接收的数据获取%资源网格rxSubframe = lteOFDMDemodulate (enb1 rxWaveform);%进行信道估计如果(perfectChanEstimator) estChannelGrid = lteDLPerfectChannelEstimate (enb1, channel1 frameOffset);noiseInterf = K2 * * rxWaveform3 rxWaveform2 + K3 +噪声;noiseInterf = noiseInterf / K1;noiseGrid = lteOFDMDemodulate (enb1 noiseInterf (1 + frameOffset:最终,));噪音= var (noiseGrid (:));其他的[estChannelGrid,噪音]= lteDLChannelEstimate (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);%执行均衡和deprecoding如果比较字符串(eqMethod“患者”)基于%分配均衡和deprecoding (MMSE)[rxDeprecoded, csi] = lteEqualizeMIMO (enb1 enb1.PDSCH,pdschRx pdschHest,噪音);其他的%分配均衡和deprecoding(基于MMSE-IRC)[rxDeprecoded, csi] = hEqualizeMMSEIRC (enb1 enb1.PDSCH,rxSubframe estChannelGrid,噪音);结束%执行层demapping解调和descrambling水煤浆= ltePDSCHDecode (enb1 setfield (enb1.PDSCH“TxScheme”,“Port7-14”),rxDeprecoded);% PDSCH传输方案%修改成port7-14,为了跳过deprecoding操作%比例llr CSI水煤浆= 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总和(bitTput, 2)];runningMaxThPut = [runningMaxThPut总和(txedTrBlkSizes, 2)];% eNodeB提供PMI的反馈如果strcmpi (enb1.PDSCH.TxScheme“SpatialMux”)采购经理人指数= ltePMISelect (enb1 enb1。PDSCH estChannelGrid,噪音);txPMIs (:, pmiIdx + 1) =采购经理人指数;nPMI = nPMI + 1;如果nPMI > = pmiDelay pmiReady = true;结束结束结束结束
模拟4帧(s)

结果

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

maxThroughput =总和(txedTrBlkSizes);%最大吞吐量simThroughput = (bitTput, 2)之和;%模拟吞吐量%显示实现吞吐量的百分比disp ([“实现吞吐量”num2str (simThroughput * 100 / maxThroughput)“%”])%的阴谋运行吞吐量人物,情节(runningSimThPut * 100. / runningMaxThPut) ylabel (的吞吐量(%));包含(模拟的子帧的);标题(的吞吐量);
实现吞吐量78.5714%

统计学上有效的结果,仿真应该参加更多的帧。下图展示了在模拟1000帧吞吐量结果。

附录

这个示例使用以下辅助函数:

选定的参考书目

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

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