这个示例演示了如何生成一个时域波形,其中包含一个子帧的物理下行共享信道(PDSCH)、相应的物理下行控制信道(PDCCH)传输和物理控制格式指示信道(PCFICH)。
这个例子演示了如何使用来自LTE工具箱™的功能,为6个资源块、4个天线传输分集生成完整的下行共享信道(DL-SCH)传输。以下物理通道被建模:
物理下行共享信道(PDSCH)
物理下行控制信道(PDCCH)
物理下行控制格式指示信道(PCFICH)
这个例子为所有4个天线端口生成一个时域(后OFDM调制)。在本例中考虑单个子帧(编号0)。
注意:产生RMC波形的推荐方法是使用lteRMCDLTool
,这个例子展示了如何通过创建和组合单独的物理通道来构建波形,就像在LTE系统中发生的那样。
eNodeB设置以结构形式进行配置。
enb。NDLRB = 6;%下行资源块数(DL-RB)enb。CyclicPrefix =“正常”;% CP长度enb。PHICHDuration =“正常”;%正常PHICH持续时间enb。DuplexMode =“FDD”;% FDD双工模式enb。CFI = 3;% 4 PDCCH符号enb。Ng =“六”;% - 9组enb。CellRefP = 4;% 4天线端口enb。NCellID = 10;%细胞idenb。NSubframe = 0;%子帧号0
控件可以轻松创建资源网格lteDLResourceGrid
函数。这将为一个子帧创建一个空的资源网格。子框架是一个三维矩阵。行数表示可用子载波的数量,这等于12 * enb。NDLRB
因为每个资源块有12个子载波。列数等于一个子帧中的OFDM符号数,即7*2,因为我们对于普通循环前缀每个槽有7个OFDM符号,而一个子帧中有2个槽。子帧的3维平面数为4个,对应于图中所示的4个天线端口enb。CellRefP
.
子帧= lteDLResourceGrid (enb);
DL-SCH和PDSCH使用一个结构进行配置pdsch
.这里的设置配置4个天线发射分集与QPSK调制。
pdsch。NLayers = 4;%层数pdsch。TxScheme =“TxDiversity”;%传输方案pdsch。调制=“正交相移编码”;%调制方案pdsch。RNTI = 1;% 16位特定于ue的掩码pdsch。房车= 0;%冗余版本
使用该方法生成将PDSCH复杂符号映射到子帧资源网格的索引ltePDSCHIndices
.中所需的参数包括单元格范围的一些设置enb
,信道传输配置pdsch
物理资源块(prb)。后者表示PDSCH传输的资源分配。在本例中,我们假设所有资源块都分配给了PDSCH。这是使用列向量指定的,如下所示。
这些索引是“基于1”的,用于在资源网格上直接映射,因为MATLAB®使用1基于索引。在本例中,我们假设子帧中的两个槽共享相同的资源分配。通过指定一个两列矩阵作为分配,可以对每个槽有不同的分配,其中每一列将引用子帧中的每个槽。
由此产生的矩阵pdschIndices
有4列,每列包含一组线性样式的索引,指向每个天线端口中用于PDSCH的资源元素。注意,这个函数返回的索引避免了分配给引用信号、控制区域、广播通道和同步信号的资源元素。
生成的索引用MATLAB使用的1基格式表示,但可以使用该选项使其基于标准的0基于“0”
而不是“基于1”
.如果没有指定此选项,则默认是基于1的索引生成。
DL-SCH传输的编码块大小可以通过ltePDSCHIndices
函数。的ltePDSCHIndices
函数返回一个信息结构作为其第二个输出,其中包含参数G
指定编码和速率匹配的DL-SCH数据位的数目,以满足物理PDSCH容量。随后将使用这个值来参数化DL-SCH信道编码。
pdsch。PRBSet = (0: enb.NDLRB-1)。';%子帧资源分配[pdschIndices, pdschInfo] =...ltePDSCHIndices (enb pdsch pdsch。PRBSet, {“基于1”});
我们现在生成DL-SCH位并应用信道编码。这包括CRC计算、码块分割和CRC插入、turbo编码、速率匹配和码块拼接。它可以使用lteDLSCH
.
DL-SCH运输块尺寸根据TS36.101附件A.2.1.2的规则选择[1用目标码率“确定有效载荷大小”和每个子帧的比特数codedTrBlkSize
.
codedTrBlkSize = pdschInfo.G;%可用PDSCH位transportBlkSize = 152;%传输块大小dlschTransportBlk = randi([0 1], transportBlkSize, 1);执行信道编码百分比(enb, pdsch, codedTrBlkSize,...dlschTransportBlk);
对编码传输块进行以下操作以生成物理下行共享信道复杂符号:置乱、调制、层映射和预编码。这可以通过使用ltePDSCH
.以及中指定的一些单元格范围设置enb
该功能还需要与调制和信道传输配置相关的其他参数,pdsch
.由此产生的矩阵pdschSymbols
有4列。每一列包含映射到每个天线端口的复杂符号。
pdschSymbols = ltePDSCH(enb, pdsch, codedTrBlock);
通过简单的分配操作,可以将复杂的PDSCH符号轻松地映射到每个天线端口的每个资源网格。PDSCH符号在资源网格中的位置由pdschIndices
.
%映射资源网格上的PDSCH符号子帧(pdschIndices) = pdschSymbols;
下行控制信息(DCI),传递关于DL-SCH资源分配、传输格式以及与DL-SCH混合ARQ相关的信息。lteDCI
可以用来生成一个DCI消息,并将其映射到物理下行链路控制通道(PDCCH)。这些参数包括下行资源块(RBs)的数量、DCI格式和资源指示值(RIV)。26的RIV对应全带宽分配。的lteDCI
函数返回一个结构和一个包含DCI消息位的向量。两者包含相同的信息。这种结构更具可读性,而序列化的DCI消息是发送到信道编码阶段的更合适格式。
dci。DCIFormat =“Format1A”;% DCI消息格式dci.Allocation.RIV = 26;%资源指示值[dciMessage, dciMessageBits] = lteDCI(enb, dci);% DCI消息
DCI消息位是信道编码的。这包括以下操作:CRC插入、尾咬卷积编码和速率匹配。这个领域PDCCHFormat
表示一个控制通道元素(CCE)用于传输PDCCH,其中一个CCE由36个有用的资源元素组成。
pdcch。NDLRB= enb.NDLRB;% DL-RB在总BW中的数量pdcch。RNTI = pdsch.RNTI;% 16位数值pdcch。PDCCHFormat = 0;聚合级别1的% 1- cce%执行DCI消息位编码,形成编码的DCI位codedDciBits = lteDCIEncode(pdcch, dciMessageBits);
控制区域的容量取决于带宽、CFI (control Format Indicator)、天线端口数量和PHICH组。PDCCH可用的资源总数可以通过以下方法计算ltePDCCHInfo
.返回一个结构pdcchInfo
其中不同的字段以不同的单位表示PDCCH可用的资源:位、cce、资源元素(REs)和资源元素组(REGs)。PDCCH区域可用的总比特数可以在现场找到pdcchInfo。MTot
.这允许我们构建具有适当数量元素的向量。PDCCH区域中并非所有可用位都必须使用。因此,采用的惯例是将未使用的位设置为-1,而使用值为0或1的位位置。
注意,我们已经初始化了pdcchBits
为-1,表示最初所有位都未使用。的元素codedDciBits
映射到适当的位置pdcchBits
.
只是所有位的子集pdcchBits
可能被使用,这些被称为候选位。这些索引可以使用ltePDCCHSpace
.这将返回一个两列矩阵。每行指示所提供的单元格范围设置的可用候选位置enb
PDCCH配置结构pdcch
.第一列和第二列分别包含每组候选者的第一个和最后一个位置的索引。在这种情况下,这些索引是基于1的,并引用位,因此它们可以用来访问中的位置pdcchBits
.向量pdcchBits
有664个元素。72位codedDciBits
映射到pdcchBits
.因此,在664个元素中,72个接受0和1的值,而其余的保持为-1。ltePDCCH
将这些位置解释为未使用的,只考虑那些带有1和0的位置。
pdcchInfo = ltePDCCHInfo (enb);%获取PDCCH的总资源pdcchBits = 1 * 1 (pdcchInfo。MTot, 1);%初始化为-1%对特定于ue的控件通道候选进行搜索= ltePDCCHSpace(enb, pdcch, {)“位”,“基于1”});%在可用的特定于ue的候选上映射PDCCH负载。在这个例子中%第一个可用的候选者用于映射编码的DCI位。pdcchBits(候选人(1,1):候选人(1,2))= codedDciBits;
中使用的位的集合pdcchBits
(值未设为-1)生成PDCCH复符号。需要进行以下操作:置乱、QPSK调制、层映射和预编码。
的ltePDCCH
函数接受一组PDCCH位并生成执行上述操作的复数PDCCH符号。在这种情况下,pdchsymbols是一个4列矩阵,每个对应于每个天线端口。
pdcchSymbols = ltePDCCH(enb, pdcchBits);
生成PDCCH索引用于资源网格上的符号映射。pdcchIndices
是一个有4列的矩阵,每个天线端口一列。这些行包含以线性形式将PDCCH符号映射到子帧资源网格的索引。
pdcchIndices = ltePDCCHIndices(enb, {)“基于1”});%可以很容易地将复杂的PDCCH符号映射到每个资源网格%为每个天线端口子帧(pdcchIndices) = pdcchSymbols;
一个子帧中的OFDM符号数与控制格式指示器(CFI)值相关联。它是设置结构enb
指定CFI值为3,即在下行资源块为6的情况下,控制区域使用4个OFDM符号。CFI是使用信道编码lteCFI
.编码位的结果集是一个32元素的向量。
cfiBits = lteCFI (enb);
然后,CFI编码位被打乱,QPSK调制,映射到层和预编码形成PCFICH复杂符号。的pcfichSymbols
是一个有4列的矩阵,每列包含映射到每个天线端口的PCFICH复杂符号。
pcfichSymbols = ltePCFICH(enb, cfiBits);
使用适当的映射索引将PCFICH复杂符号映射到子帧资源网格。这些是使用ltePCFICHIndices
用于将PCFICH符号四联体映射到子帧中第一个OFDM符号中的资源元素组。考虑所有天线端口,并避免参考信号(RSs)使用的资源元素。注意,得到的矩阵有4列;每一列包含每个天线端口的线性索引。这些索引是基于1的,但是它们也可以使用基于0的方法生成。使用的线性索引风格使资源网格映射过程更加直观。得到的矩阵包含了复杂的符号pcfichSymbols
在指定的位置pcfichIndices
.
pcfichIndices = ltePCFICHIndices (enb);%将PCFICH符号映射到资源网格子帧(pcfichIndices) = pcfichSymbols;
绘制第一个天线的资源网格。这包括(黄色部分)在示例中添加的物理通道:PDSCH、PDCCH和PCFICH。
冲浪(abs(子帧(:,:1)));视图(2);轴紧;包含(OFDM符号的);ylabel (副载波的);标题(“资源网格”);
通过对下行符号进行OFDM调制进行时域映射。得到的矩阵有4列;每一列包含每个天线端口的样品。
[timeDomainMapped, timeDomainInfo] = lteOFDMModulate(enb, subframe); / /设置子帧
3GPP TS 36.101《用户设备(UE)无线电发射和接收》