主要内容

发布12下行载波聚合波形的产生、解调和分析

这个示例展示了如何使用LTE工具箱™生成、聚合和进一步解调多个下行载波。

介绍

本示例使用载波聚合(CA)模拟LTE Release 12波形。子载波的数量和带宽可以作为参数指定。考虑带内连续CA情况。

为了生成汇聚的下行波形,需要为每个组件运营商配置eNodeB。计算组件载波参数,并用于生成每个eNodeB配置的调制波形。所有的CC调制波形都被重新采样到一个共同的采样率,这样它们就可以被组合成一个聚合波形。

组件运营商数量和带宽

一个向量NDLRB指定每个组件载体(CC)的资源块(RBs)的数量。这个向量的长度相当于CCs的数量。的元素NDLRB必须在集合{6,15,25,50,75,100}RBs中。表5.6A。1 - 1 (1]列出用于载波聚合的有效带宽组合。

%配置NDLRB值的集合来描述运营商%聚合NDLRB = [50 75 100];%建立了组件载体的数量numCC =元素个数(NDLRB);如果numCC < 2错误(“请指定多个CC带宽值。”);结尾

组件载波配置

每个CC使用配置结构lteRMCDL.所有CCS的配置结构存储在单元阵列中。

%配置要生成的子帧数numSubframes = 10;% CC配置enb =细胞(1、numCC);为了我= 1:numCC开关NDLRB(我)情况下6 enb{i} = lteRMCDL('r.4');情况下15 enb{i} = lteRMCDL('r.5');情况下25 enb{i} = lteRMCDL('r.6');情况下50 enb{i} = lteRMCDL('r.7');情况下75 enb{i} = lteRMCDL(“R.8”);情况下100 enb{i} = lteRMCDL('r.9');否则FPRINTF('没有有效的资源块数量:%d\n'...NDLRB (i));返回结尾enb{}。NDLRB= NDLRB(i); enb{i}.Bandwidth = hNRBToBandwidth(NDLRB(i)); enb{i}.TotSubframes = numSubframes; enb{i}.PDSCH.PRBSet = (0:enb{i}.NDLRB-1).'; enb{i}.PDSCH.RVSeq = 0; enb{i}.NCellID = 10;结尾

信道估计配置

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

cec =结构;%信道估计配置结构cec。PilotAverage =“UserDefined”%类型的导频符号平均cec。FreqWindow = 15;频率窗口大小cec。TimeWindow = 15;%时间窗口大小cec。InterpType =“立方”二维插值型cec。InterpWindow =“中心”插值窗口类型cec。InterpWinSize = 1;插值窗口大小

载波聚合参数计算

要执行载波聚合,TS 36.16.101中描述的频率参数,部分5.6和5.7 [1)计算。这些参数总结如下图所示。

这导致三个变量:

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

  • ccSpacing包含CC之间的间隔(以MHz为单位)

  • BW_channel_CA是所有CC的聚合信道带宽

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

%为额定保护频带和频率定义MHz中的Delta_f1参数%偏移量计算。在下行链路delta_f1中是子载波间距%(TS 36.101,表5.6A-1)delta_f1 = 0.015;% (MHz), LTE子载波间隔(MHz)maxBW = hNRBToBandwidth (max (NDLRB));numCC F_c = 0 (1);numCC-1 ccSpacing = 0 (1);% CC间距计算公称保护带,TS 36.101 5.6A-1名词威达带= 0.05 * maxbw-0.5 * delta_f1;%最初假设基带的载波频率较低F_c (1) = 0;%计算CC间距和载波值为了numCC ccSpacing(k-1) = hCarrierAggregationChannelSpacing(...eNB {K-1} .BandWidth,eNB {k} .BandWidth);f_c(k)= f_c(k-1)+ ccspacing(k-1);结尾计算低频和高频偏移,TS 36.101 5.6Af_offset_low =(0.18 * ndlrb(1)+ delta_f1)/ 2 +名义根带;f_offset_high =(0.18 * ndlrb(end)+ delta_f1)/ 2 +名称是;%计算低频和高频边缘,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;FPRINTF(“BW_channel_CA: f % 0.4 MHz \ n”, BW_channel_CA);计算移动到中心基带shiftTocenter = -1 *(bw_channel_ca / 2 + f_edge_low);%聚合带宽以基带为中心F_c = F_c + shift;F_edge_low = F_c(1) - F_offset_low;F_edge_high = F_c(end) + F_offset_high;%显示频带边缘FPRINTF(“F_edge_low: f % 0.4 MHz \ n”, F_edge_low);FPRINTF(“F_edge_high: f % 0.4 MHz \ n”, F_edge_high);FPRINTF(“F_offset_low: f % 0.4 MHz \ n”, F_offset_low);FPRINTF(“F_offset_high: f % 0.4 MHz \ n”,f_offset_high);显示载波频率FPRINTF(' \ n ');为了i = 1:numCC fprintf(“分量载波% d: \ n”,我);FPRINTF(' Fc: %0.4f 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 = lteofdminfo(eNB {i});ccsr(i)= info.samplingrate;结尾%计算聚合信号的总体采样率计算过采样比率(最大BW CC),以确保%信号占用总带宽的85% (bwfraction)OSR =(BW_CHANNEL_CA / BWFRACTECT)/(最大(CCSR)/ 1E6);为了简化重采样操作,选择一个过采样比%是2的幂:计算OSR以上2的下一个幂osr = 2 ^ ceil(log2(osr));sr = osr * max(ccsr);FPRINTF('\nOutput采样率:%0.4f Ms/s\n\n'1、SR / e6);%计算组件载体的单个过采样因子老osr = / CCSR;
输出采样率:61.4400 ms / s

波形生成和载波聚合

lteRMCDLTool用于生成每个CC的波形。每个CC被重新采样到一个共同的采样率。最后,多波段组合器用于将每个CC调制到适当的中心频率并将它们一起添加以形成聚合信号。

生成组件载波Tx = Cell(1,NumCC);为了i = 1:numCC tx{i} = lteRMCDLTool(enb{i},randi([0 1],1000,1));tx{我}=重新取样(tx {}, osr(我),1)/ osr(我);结尾%聚合所有cc.com . com . multibandcombiner应用频率偏移%并将得到的信号相加。sigAggregator = comm.MultibandCombiner(InputSampleRate = SR,...频率OFFSETS = f_c * 1e6,...OutputSampleRateSource =“属性”...OutputSampleRate = SR);波形= sigAggregator ((tx {:}));

绘制载波聚合波形谱

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

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

感兴趣的CC的解调与滤波

本节解调,过滤器和下沿CCS中的一个。所遵循的步骤是:

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

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

我们首先选择CC来解调和设计适当的下采样过滤器。计算通带和停机频率。

%选择CC解调CCofInterest = 1;如果CCofInterest > numCC ||“无法解调CC号%d,有%d CC \n”...CCOFINTEREST,NUMCC);结尾%定义下采样过滤器顺序filterOrder = 201;预计算所有CC的通频带和阻频带值firPassbandVec = (0.18*NDLRB+Delta_f1)/2 / (SR/1e6/2);firStopbandVec = hCarrierAggregationStopband (ccSpacing NDLRB, SR);定义感兴趣载波的通频带和阻频带firPassband = firPassbandVec (CCofInterest);firStopband = firStopbandVec (CCofInterest);%提取物和解码感兴趣的CC流(1,'提取CC数%d: \n', CCofInterest);%填充零信号以考虑滤波器瞬态响应%的长度波形=[波形;0 (filterOrder + 1、大小(波形,2)));%解调感兴趣的载波DemodulatedCC =...hcArrieraggregationModulate(波形,SR,-F_C(CCOFINTEREST)* 1E6);如果滤镜太窄,下采样分两阶段进行。这%简化过滤器设计要求。如果是这样的话,首字母缩写%下降采样系数为4。你可以考虑换个不同的滤光片的设计在这一初始阶段若质量不佳%信号不可接受。如果(firStopband < 0.1)百分比下样品4src = 4;DemodulatedCC =重组(DemodulatedCC,1,SRC);%更新传递和停机带,以便首先进行下采样firPassband = firPassband * SRC;firStopband = firStopband * SRC;其他的%不预滤器SRC = 1;结尾%设计低通滤波器滤出感兴趣的CCFredges = [0 FirepassBand FirstopBand 1];firfilter = dsp.firfilter;firfilter.numerator = FILPM(FilterOrder,Fredges,[1 1 0 0]);
提取CC编号1:

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

fvtool (firFilter“分析”'弗雷克');

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

对信号进行滤波,提取感兴趣的分量rxWaveform = firFilter (demodulatedCC);%绘制解调滤波信号频谱filteredSpecPlot =...hplotspectrum([DemodulatedCC,RxWaveForm],SR,...“解调和滤波的波形功率谱”...{'载波聚合信号'“过滤信号”});

此时可以将滤波后的波形下采样到其基带速率。

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

同步

同步应用于所产生的信号。

%利息CC参数eNodeB = enb {CCofInterest};PDSCH = eNodeB.PDSCH;同步接收波形offset = ltedlframeoffset(eNodeB,RxWaveForm);rxwaveform = rxwaveform(1 + offset:结束,:);

EVM测量和PDSCH解码

下面的代码提供了每个子帧和平均EVM测量值。图与EVM与时间,资源块和子载波也显示。

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

用于EVM测量的%信道估计结构cecEVM = cec;cecEVM。PilotAverage =“TestEVM”;[evmmeas, plot] = hPDSCHEVM(enb{CCofInterest},cecEVM, rx波形);% OFDM解调rxGrid = lteOFDMDemodulate (eNodeB rxWaveform);%获取每一帧接收的子帧数和OFDM符号数dims = lteofdminfo(eNodeB);Samplespserubframe = dims.samplingrate / 1000;nrxsubframes =楼层(大小(rxwaveform,1)/ samplespersubframe);eNodeB.TotsubFrames = 1;RESGRIDSIZE = LteresourceGridSize(eNodeB);L = Resgridsize(2);DISP(解码传输的子帧并检查CRC);为了n = 0: nRxSubframes-1%提取子帧rxSubframe = rxGrid (:, (1: L) + (n * L):);当前子帧的传输块大小eNodeB.NSUBFrame = n;trblksize = pdsch.trblksizes(n + 1);%信道估计[estChannelGrid, noiseEst] = lteDLChannelEstimate(...eNodeB、cec rxSubframe);%执行贬低,层解映射,解调和解码%的接收数据使用信道估计[rxEncodedBits, pdschsymbols] = ltePDSCHDecode(eNodeB,PDSCH,...rxSubframe * (10 ^ (-PDSCH.Rho / 20)), estChannelGrid,噪音);解码下行共享信道(DL-SCH)(decbits, crc) =...lteDLSCHDecode (eNodeB PDSCH、trBlkSize rxEncodedBits {1});如果crc disp ([“子帧”num2str (n)':CRC失败']);其他的disp ([“子帧”num2str (n): CRC传递的]);结尾结尾
低边缘EVM,子帧0:0.647%高边缘EVM,子帧0:0.629%低边缘EVM,子帧1:0.682%高边缘EVM,子帧1:0.650%低边缘EVM,子帧2:0.680%高边缘EVM,子帧2:0.676%低边EVM,子帧3:0.676%高边缘EVM,子帧3:0.641%低边缘EVM,子帧4:0.640%高边缘EVM,子帧4:0.648%低边缘EVM,子帧6:0.698%高边缘EVM,子帧6:0.642%低边缘EVM,子帧7:0.645%高边EVM,子帧7:0.649%低边缘EVM,子帧8:0.700%高边缘EVM,子帧8:0.647%低边缘EVM,子帧9:0.694%高边缘EVM,子帧9:0.685%平均低边缘EVM,框架0:0.674%平均高边缘EVM,框架0:0.652%平均EVM帧0:0.674%平均总体EVM:0.674%的总体eVM:0.674%解码传输的子帧和检查CRC。子帧0:CRC传递子帧1:CRC传递的子帧2:CRC传递的子帧3:CRC传递的子帧4:CRC传递的子帧5:CRC传递的子帧6:CRC传递的子帧7:CRC传递的子帧8:CRC通过子帧9:CRC通过了CRC

参考书目

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