主要内容

上行载波聚合波形的产生、解调和分析

这个例子展示了如何使用LTE Toolbox™生成、聚合和解调多个上行载波。根据TS 36.101附录F,测量了解调载波的误差矢量量级(EVM)和带内发射[1].

简介

本例使用载波聚合(CA)对LTE上行波形进行建模。组件运营商(CC)的数量和各自的带宽可以指定为一个参数。根据TS 36.101 V15.4.0,考虑带内连续CA情况。

为了生成聚合上行波形,为每个组件运营商配置用户设备(UE)。计算载波聚合参数并用于为每个CC配置生成调制波形。所有分量载波调制波形都被重新采样到一个共同的采样率,以便它们可以被组合以创建一个聚合波形。对聚合波形进行解调和滤波,提取出感兴趣的分量载波。然后测量该CC的EVM和带内发射,最后通过执行PUSCH解码进行CRC校验。

组件载波数和带宽

一个向量NULRB每个组件运营商的资源块(RBs)数量。这个向量的长度对应于cc的数量。的元素NULRB必须在集合{6,15,25,50,75,100}RBs中。表5.6A. TS 36.1011 - 1 (1列出了用于运营商聚合的有效带宽组合。

配置一组nulb值来描述运营商%聚合Nulrb = [50 75 100];建立组件运营商的数量numCC =元素个数(NULRB);numCC CCBWs = 0 (1);如果numCC < 2错误('请指定多个CC带宽值');结束

各部件运营商终端配置

为使用的每个CC生成配置结构lteRMCUL.为了显示带内发射,考虑对每个CC进行部分RB分配。所有CC的配置结构存储在单元阵列中。

指定要生成的子帧的数量numSubframes = 10;%配置CCsfrc =细胞(1、numCC);我= 1:numCC开关NULRB(我)情况下6 frc{i} = lteRMCUL(“A3-1”);frc{我}.PUSCH。PRBSet =(0:2)。';情况下15 frc{i} = lteRMCUL(“A1-2”);frc{我}.PUSCH。PRBSet =(0:8)。';情况下25 frc{i} = lteRMCUL(“A1-3”);frc{我}.PUSCH。PRBSet =(0:15)。';情况下50 frc{i} = lteRMCUL(“A3-5”);frc{我}.PUSCH。PRBSet =(0:39)。';情况下75 frc{i} = lteRMCUL(“A3-6”);frc{我}.PUSCH。PRBSet =(0:59)。';情况下100 frc{i} = lteRMCUL(“A3-7”);frc{我}.PUSCH。PRBSet =(0:80)。';否则流('资源块数量无效:%d\n'...NULRB (i));返回结束CCBWs (i) = hNRBToBandwidth (NULRB(我));frc{}。带宽= CCBWs(我);frc{}。TotSubframes = numSubframes;frc{我}.PUSCH。RVSeq = 0;结束

信道估计配置

使用该结构对接收端信道估计器进行参数化cec下面的定义。

cec =结构;通道估计配置结构cec。PilotAverage =“UserDefined”导频符号平均的类型cec。FreqWindow = 15;%频率窗口大小cec。TimeWindow = 15;%时间窗口大小cec。InterpType =“立方”% 2D插值类型cec。InterpWindow =“中心”插值窗口类型cec。InterpWinSize = 1;插值窗口大小cec。参考=“天线”的指定参考点%信道估计。

载波聚合参数计算

执行TS 36.101第5.6和5.7节所述的频率参数的载波聚合[1)计算。这些参数如下图所示。

这就产生了三个变量:

  • F_c是包含每个CC中心频率的向量吗

  • ccSpacing包含以MHz为单位的cc之间的间隔

  • BW_channel_CA所有cc的信道带宽之和是多少

在下面的代码中,我们首先计算所有cc的值,假设较低的cc以基带(0 Hz)为中心。一旦BW_channel_CA计算时,所有的值都被移动,使聚合带宽的中心位于基带(0hz)。

定义Delta_f1参数,单位为MHz,用于标称保护频带和频率%偏移量的计算。在上行链路中,Delta_f1为零% (TS 36.101,表5.6A-1)Delta_f1 = 0;%在兆赫maxBW = max (CCBWs);初始化中心频率和CC间距向量numCC F_c = 0 (1);%的中心频率numCC-1 ccSpacing = 0 (1);% CC间距%计算标称保护带,TS 36.101 5.6A-1nominalGuardBand = 0.05 * maxbw - 0.5 * Delta_f1;初始假设较低的载频在基带F_c (1) = 0;计算CC间距和中心频率k = 2:numCC ccSpacing(k-1) = hCarrierAggregationChannelSpacing(...frc {k - 1}。带宽,frc {k} .Bandwidth);F_c(k) = F_c(k-1) + ccSpacing(k-1);结束计算低频和高频偏移量,TS 36.101 5.6AF_offset_low = (0.18*NULRB(1)+Delta_f1)/2 + nominalGuardBand;F_offset_high = (0.18*NULRB(end)+Delta_f1)/2 + nominalGuardBand;%计算低频和高频边,TS 36.101 5.6AF_edge_low = F_c(1) - F_offset_low;F_edge_high = F_c(end) + F_offset_high;计算聚合通道带宽,TS 36.101 5.6ABW_channel_CA = F_edge_high - F_edge_low;流(“BW_channel_CA: f % 0.4 MHz \ n”, BW_channel_CA);%计算到中心基带的位移shiftToCenter = -1*(BW_channel_CA/2 + F_edge_low);移动中心频率,使聚合带宽居中%在基带F_c = F_c + shiftToCenter;F_edge_low = F_c(1) - F_offset_low;F_edge_high = F_c(end) + F_offset_high;%显示频带边缘流(“F_edge_low: f % 0.4 MHz \ n”, F_edge_low);流(“F_edge_high: f % 0.4 MHz \ n”, F_edge_high);流(“F_offset_low: f % 0.4 MHz \ n”, F_offset_low);流(“F_offset_high: f % 0.4 MHz \ n”, F_offset_high);%显示载波频率流(' \ n ');i = 1:numCC fprintf(“分量载波% d: \ n”,我);流(舰队指挥官:f % 0.4 MHz \ n的F_c(我));结束
BW_channel_CA: 44.6000 MHz F_edge_low: -22.3000 MHz F_edge_high: 22.3000 MHz F_offset_low: 5.5000 MHz F_offset_high: 10.0000 MHz组件运营商1:Fc: -16.8000 MHz组件运营商2:Fc: -4.8000 MHz组件运营商3:Fc: 12.3000 MHz

所需过采样率计算

每个分量载波所需的过采样因子osr为聚合信号的公共采样率计算。

%考虑带宽利用率为85%bwfraction = 0.85;计算各组成载波的采样率numCC CCSR = 0 (1);i = 1:numCC info = lteSCFDMAInfo(frc{i});CCSR (i) = info.SamplingRate;结束计算聚合信号的总体采样率计算过采样比(对于最大的BW CC),以确保%信号占聚合信道带宽的85% (bwfraction)OSR = (BW_channel_CA / bwfraction) / (max (CCSR) / 1 e6);为简化重采样操作,选择过采样比作为大于或等于OSR的2的最小次幂OSR = 2 ^装天花板(log2 (OSR));SR = OSR *马克斯(CCSR);流('\n输出采样率:%0.4f Ms/s\n\n'1、SR / e6);计算各组成载波的个别过采样因子老osr = / CCSR;
输出采样速率:61.4400 Ms/s

波形生成和载波聚合

为每个CC使用生成波形lteRMCULTool,然后重新采样到一个共同的采样率。最后,将每个CC调频到适当的中心频率,并将它们加在一起形成聚合信号多波段组合器

%生成组件载体tx =细胞(1、numCC);i = 1:numCC tx{i} = lteRMCULTool(frc{i},randi([0 1],1000,1));tx{我}=重新取样(tx {}, osr(我),1)/ osr(我);结束聚合所有CC. com . multibandcombiner应用频率偏移量%并将结果信号相加。sigAggregator = comm.MultibandCombiner(InputSampleRate = SR,...e6 FrequencyOffsets = F_c * 1,...OutputSampleRateSource =“属性”...OutputSampleRate = SR);波形= sigAggregator ((tx {:}));

绘制载波聚合波形频谱图

使用hPlotSpectrum.m显示载波聚合信号的功率谱。在频谱中,单个载波带宽是可见的。注意,聚合带宽的中心位于基带(0 Hz),因为在本例中信号没有调制到RF。

specPlot = hPlotSpectrum(波形、SR、...“载波聚合波形功率谱”...“载波聚合信号”});

感兴趣CC的解调与滤波

本节将展示如何解调、滤波和下采样一个感兴趣的CC。下面的步骤是:

  • 解调感兴趣的CC并将其带到基带(0 Hz)。

  • 过滤掉相邻的cc并下采样。设计一个合适的滤波器来去除下采样过程中不需要的相邻cc。滤波器的设计将对恢复信号的质量和EVM产生影响。滤波器可能需要调整不同的带宽和CC值来解调。

首先选择CC进行解调,并根据计算出的通带和阻带频率设计合适的下采样滤波器。

选择CC解调CCofInterest = 1;如果CCofInterest <= 0 error(CCofInterest <= 0 error)'无法解调CC编号%d,有%d个CC \n'...CCofInterest numCC);结束定义下采样过滤器顺序filterOrder = 301;%为所有CC预计算通带和阻带值firPassbandVec = (0.18*NULRB+Delta_f1)/2 / (SR/1e6/2);firStopbandVec = hCarrierAggregationStopband (ccSpacing NULRB, SR);为感兴趣的载波定义通带和阻带firPassband = firPassbandVec (CCofInterest);firStopband = firStopbandVec (CCofInterest);%提取并解码感兴趣的CC流(1,'提取CC编号%d: \n', CCofInterest);Pad信号带零,以考虑滤波器瞬态响应%的长度波形=[波形;0 (filterOrder + 1、大小(波形,2)));解调感兴趣的载体demodulatedCC =...hCarrierAggregationModulate(波形、SR、-F_c (CCofInterest) * 1 e6);如果过滤器太窄,下采样分为两个阶段。。这简化了过滤器的设计要求。如果是这样的话,那就是首字母应用了%的下采样因子4。你可以考虑换个%滤镜设计在这个初始阶段如果产生质量问题%信号不可接受。如果(firStopband < 0.1)%下降抽样4SRC = 4;demodulatedCC =重新取样(demodulatedCC 1 SRC);%更新通带和阻带以考虑第一次下采样= firPassband * SRC;firStopband = firStopband * SRC;其他的%不预滤器SRC = 1;结束设计低通滤波器过滤掉感兴趣的CCfrEdges = [0 firPassband firStopband 1];firFilter = dsp.FIRFilter;firFilter。分子= firpm(filterOrder,frEdges,[1 1 0 0]);
提取CC号1:

显示了所设计滤波器的响应。

fvtool (firFilter“分析”“频率”);

然后对解调后的波形进行滤波,提取出感兴趣的CC。绘制了滤波前后解调波形的频谱图。

对信号进行过滤以提取感兴趣的分量rxWaveform = firFilter (demodulatedCC);绘制解调和滤波后的信号频谱。filteredSpecPlot =...hPlotSpectrum ([demodulatedCC rxWaveform],老...“解调滤波波形的功率谱”...“载波聚合信号”“过滤信号”});

在这一点上,滤波波形可以下采样到它的基带速率。

rxWaveform = downsample (rxWaveform osr (CCofInterest) / SRC);

同步

在EVM和带内发射测量之前,对产生的信号进行同步处理。

获取感兴趣的CC的参数FRC = FRC {CCofInterest};PUSCH = FRC.PUSCH;%同步接收波形抵消= lteULFrameOffset (FRC PUSCH rxWaveform);rx波形= rx波形(1+offset:end,:);

EVM,带内发射测量和PUSCH解码

下面的代码提供PUSCH EVM, PUSCH DRS EVM和带内排放计算使用hPUSCHEVM

EVM是时域一个槽位测量间隔内重构的理想符号与实测的接收符号之间的差值。重构理想符号的过程包括:

  • 单载波频分多址(SC-FDMA)解调获得接收的资源网格

  • 信道估计

  • PUSCH均衡

  • 符号解调

  • 解码,然后对接收到的比特进行重新编码,重新排列和重构

平均EVM在两个时间点(低和高,记为美元$ \眉题{EVM_ {l}}而且美元$ \眉题{EVM_ {h}}),其中的低和高位置对应于FFT窗口在循环前缀的开始和结束内的对齐。LTE Toolbox要求将低位置和高位置指定为循环前缀长度的一部分。

带内发射是对落入非分配RBs的干扰的度量。每个都计算了带内辐射$ \ Delta_ {RB} $槽位号,其中$ \ Delta_ {RB} $为已分配RB与实测未分配RB之间的起始频率偏移(如:$ \ Delta_ {RB} = 1美元对于分配带宽以外的第一个相邻RB)。

根据上述测量结果,还可以得出以下图:

  • EVM与OFDM符号的对比

  • 维生素和副载波

  • EVM与资源块的对比

  • EVM与OFDM符号和子载波(即EVM资源网格)的对比

  • 未分配RBs的上行带内排放

注意,根据LTE标准,命令窗口中显示的EVM测量值仅跨分配的PUSCH资源块计算。EVM图显示在所有资源块(已分配或未分配)上,允许查看带内排放。在未分配的资源块中,假设接收到的资源元素的期望值为零,则计算EVM。

然后对恢复信号的PUSCH进行解码,并检查得到的CRC是否有错误。

为EVM测量配置通道估计结构cecEVM = cec;cecEVM。PilotAverage =“TestEVM”;[evpusush, evmdrs, emissions, plots] = hPUSCHEVM(frc{CCofInterest},cecEVM, rx波形);绘制绝对带内发射如果(~ isempty (emissions.DeltaRB) hPUSCHEVMEmissionsPlot(排放);结束执行SC-FDMA解调rxWaveform rxGrid = lteSCFDMADemodulate (FRC);获取接收到的子帧数和每个子帧的OFDM符号= lteSCFDMAInfo dim (FRC);samplesPerSubframe = dims.SamplingRate / 1000;nRxSubframes = floor(size(rx波形,1)/samplesPerSubframe);FRC。TotSubframes = 1;resGridSize = lteResourceGridSize (FRC);L = resGridSize (2);disp (解码传输的子帧并检查CRC);n = 0: nRxSubframes-1%提取子帧rxSubframe = rxGrid (:, (1: L) + (n * L):);获取当前子帧的传输块大小FRC。NSubframe = n;trBlkSize = PUSCH.TrBlkSizes (n + 1);%执行通道估计[estChannelGrid, noiseEst] = lteULChannelEstimate(...FRC, PUSCH, cec, rxSubframe);生成PUSCH索引并从接收到的和中提取符号%通道估计网格,为PUSCH解码做准备ind = ltePUSCHIndices(FRC, PUSCH);[rxSym,hestSym] = lteExtractResources(ind, rxSubframe, estChannelGrid);更新PUSCH以携带完整的UL-SCH编码信息PUSCH = lteULSCHInfo(FRC, PUSCH, trBlkSize,“chsconcat”);%执行均衡,转换解码,层demapping,%解调,并使用通道对接收的数据进行解调%的估计[rxEncodedBits, puschsymbols] = ltePUSCHDecode(FRC, PUSCH,...rxSym hestSym,噪音);译码上行共享通道(UL-SCH)decState = [];(decbits, crc) =...lteULSCHDecode(FRC, PUSCH, trBlkSize,rxEncodedBits, decState);如果crc disp ([“子帧”num2str (n)“:CRC失败”]);其他的disp ([“子帧”num2str (n): CRC传递的]);结束结束
低边缘PUSCH维生素,槽0:0.165%低边缘PUSCH维生素,插槽1:0.244%低边缘DRS维生素与槽0:0.210%低边缘DRS维生素与插槽1:0.199%高边缘PUSCH维生素,槽0:0.264%高边缘PUSCH维生素,插槽1:0.253%高边缘DRS维生素与槽0:0.208%高边缘DRS维生素与插槽1:0.242%低边缘PUSCH维生素,槽2:0.213%低边缘PUSCH维生素,槽3:0.175%低边缘DRS维生素与槽2:0.186%低边缘DRS维生素与槽3:0.307%高边缘PUSCH维生素,槽2:0.220%高边缘PUSCH维生素,槽3:0.258%高边缘DRS维生素、槽2:0.264%高边缘DRS维生素与槽3:0.367%低边缘PUSCH维生素,槽4:0.225%低边缘PUSCH维生素,槽5:0.175%低边缘DRS维生素与槽4:0.180%低边缘DRS维生素与槽5:0.236%高边缘PUSCH维生素,槽4:0.260%高边缘PUSCH维生素,槽5:0.243%高边缘DRS维生素与槽4:0.234%高边缘DRS维生素与槽5:0.261%低边缘PUSCH维生素,槽6:0.228%低边缘PUSCH维生素,槽7:0.194%低边缘DRS维生素与槽6:0.294%低边缘DRS维生素与槽7:0.149%高边缘PUSCH维生素,槽6:0.306%高边缘PUSCH维生素,槽7:0.243%高边缘DRS维生素与槽6:0.290%高边缘DRS维生素与槽7:0.216%低边缘PUSCH维生素,槽8:0.205%低边缘PUSCH维生素,槽9:0.203%低边缘DRS维生素与槽8:0.269%低边缘DRS维生素与槽9:0.164%高边缘PUSCH维生素,槽8:0.244%高边缘PUSCH维生素,槽9:0.268%高边缘DRS维生素与槽8:0.342%高边缘DRS维生素与槽9:0.201%低边缘PUSCH维生素,槽10:0.184%低边缘PUSCH维生素,槽11:0.249%低边DRS维生素、槽10:0.211%低边缘DRS维生素与槽11:0.203%高边缘PUSCH维生素,槽10:0.246%高边缘PUSCH维生素,槽11:0.327%高边缘DRS维生素与槽10:0.206%高边缘DRS维生素与槽11:0.410%低边缘PUSCH维生素,槽12:0.221%低边缘PUSCH维生素,插槽13:0.273%低边缘DRS维生素与槽12:0.170%低边缘DRS维生素与插槽13:0.255%高边缘PUSCH维生素,槽12:0.322%高边缘PUSCH维生素,插槽13:0.285%高边缘DRS维生素与槽12:0.297%高边缘DRS维生素与插槽13:0.362%低边缘PUSCH维生素,插槽14:0.215%低边缘PUSCH维生素,槽15:0.214%低边缘DRS维生素与槽14:0.274%低边缘DRS维生素与槽15:0.183%高边缘PUSCH维生素,插槽14:0.232%高边缘PUSCH维生素,槽15:0.253%高边缘DRS维生素与槽14:0.405%高边缘DRS维生素与槽15:0.251%低边缘PUSCH维生素,槽16:0.224%低边缘PUSCH维生素,槽17:0.240%低边缘DRS维生素与槽16:0.278%低边缘DRS维生素与槽17:0.260%高边缘PUSCH维生素,槽16:0.248%高边缘PUSCH维生素,槽17:0.310%高边缘DRS维生素、槽16:0.197%高边缘DRS维生素与槽17:0.409%低边缘PUSCH维生素,槽18:0.290%低边缘PUSCH维生素,槽19:0.214%低边缘DRS维生素与槽18:0.279%低边缘DRS维生素与槽19:0.190%高边缘PUSCH维生素,槽18:0.304%高边缘PUSCH维生素,槽19:0.261%高边缘DRS维生素与槽18:0.335%高边缘DRS维生素与槽19:0.264%平均挣值管理优势PUSCH都低,0:帧平均高0.220%边缘PUSCH维生素,帧0:0.269%平均PUSCH维生素与帧0:0.269%平均DRS EVM帧0:0.297%平均整体PUSCH EVM: 0.269%平均整体DRS EVM: 0.297%解码传输子帧和检查CRC。子帧0:CRC通过子帧1:CRC通过子帧2:CRC通过子帧3:CRC通过子帧4:CRC通过子帧5:CRC通过子帧6:CRC通过子帧7:CRC通过子帧8:CRC通过子帧9:CRC通过

选定的参考书目

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