该示例演示了使用LTE工具箱在下行链路共享信道(DL-SCH)传输中的混合自动重复请求(混合ARQ)增量冗余(IR)™.
下行链路共享信道(DL-SCH)如TS36.212第5.3.2节所述[2].这个例子演示了发射器如何在单层上使用不同的冗余版本(RV)重新传输单个码字,直到接收码字的CRC表示成功传输。DL-SCH传输是用1/2目标编码率调制的16QAM通过单个天线端口传输。本例中使用的设置是基于TS36.101表A.3.3.1-2中定义的固定参考通道R.3 [1].
混合自动重复请求(混合ARQ)是前向纠错(FEC)的组合和以最佳方式自动重复请求。混合ARQ方案通常用于促进在噪声无线信道上的可靠通信。HARQ能够补偿链路自适应错误,并提供更细的编码率粒度,从而比其他FEC方案具有更好的吞吐量性能。
混合ARQ有三种类型:I型、II型和III型。
最简单的方法:Hybrid ARQ Type I使用CRC检测传输中是否发生了错误。如果发现一个包是错误的,将向发送器发送一个重传请求,并且错误的包将被丢弃。然后,发送器将重新发送相同的包,直到接收方成功解码包或达到最大重传限制。
Hybrid ARQ Type I可以扩展为包组合,这被称为Hybrid ARQ Type I with packet梳理或Chase组合。在每次失败的重传之后,错误的数据包被存储在缓冲区中。然后,接收器使用最大比率组合,将每个接收的信道位与之前任何相同位的传输组合起来,并将组合后的信号送入解码器。逐行合并不产生额外的编码增益,只增加了累计接收信噪比对于每次重传。
在混合ARQ II型中,也称为全增量冗余(IR),每次重新传输不一定与原始传输相同。相反,会生成多组编码位,并且每当需要重新传输时,重新传输的数据表示与上一次传输不同的一组编码位。接收器将重新传输与以前的传输尝试相结合相同的数据包。由于重新传输包含以前的传输尝试中未包含的额外奇偶校验位,因此产生的码率通常会通过后续的重新传输而降低。每次传输包含一组不同的奇偶校验位,与逐段合并相比,产生更高的编码增益。
最后一种方法Hybrid ARQ Type III,也称为部分IR,通过在每次重传中发送额外的冗余位来降低编码率。然而,它确实确保了重传能够自我解码。这意味着重新发送的数据包可以和之前的数据包一起被追赶,从而增加分集增益。
LTE利用IR HARQ和用于FEC的1/3 turbo编码器。传输块(TB)CRC用于检测错误。接收器仅接收相同turbo编码数据的不同屏蔽版本;每个重传都是自解码的。因此,它属于III型混合ARQ。
在LTE中,重发以1/2或3/4的初始编码率发送。TS36.213第7条规定的同时DL-HARQ进程的最大数量(提供的PDSCH传输数量)限制在8个[3.].
在LTE中,N信道停止和等待协议用作混合ARQ协议,因为它提供低缓冲要求和低确认(ACK)/负确认(NACK)反馈开销。
在此示例中,生成传输块并进行DL-SCH编码以创建码字。该码字进行物理下行链路共享信道编码以形成复杂调制符号。
将加性高斯白噪声添加到符号中。带噪符号随后经过接收器处理以获得发送的码字。然后对码字进行涡轮速率恢复、码块去分段和CRC块解码,以检查传输是否成功。如果在传输块中检测到CRC错误,则重新传输e使用不同的RV。此过程持续进行,直到传输成功或达到重新传输限制。
单元格宽度设置在结构中指定enb
.
enb.NDLRB=50;%总BW中的下行链路RB数量enb.CyclicPrefix=“正常”;%CP长度持续时间=“正常”;%PHICH持续时间enb.NCellID=10;%单元IDenb.CellRefP=1;%单天线端口enb。DuplexMode =“FDD”;%FDD双工模式enb.CFI=2;%2个PDCCH符号enb.Ng=“第六”;% - 9组enb。NSubframe = 0;%子帧编号0
物理下行链路共享信道(PDSCH)使用一种结构来配置pdsch
对于单天线传输方案。
pdsch.NLayers=1;%要映射传输块的图层数pdsch.TxScheme=“端口0”;%传输方案pdsch.调制={“16QAM”};%调制pdsch。房车= 0;% Initialize Redundancy版本号pdsch.RNTI=500;%无线网络临时标识符pdsch.NTurboDecIts=5;%turbo解码器迭代次数pdsch.PRBSet=(0:enb.NDLRB-1)。”;%定义PRBSetpdsch.CSI=“上”;%软比特的CSI缩放
定义DL-SCH编码所需的参数。这里使用的传输块大小是TS36.101表A.3.3.1-2中对R.3 RMC的定义[1].的DL-SCH编码块大小可以计算ltePDSCHIndices函数使用enb
和pdsch
.ltePDSCHIndices返回包含参数的信息结构作为其第二个输出G
指定满足物理PDSCH容量的编码和速率匹配DL-SCH数据位的数量。
rvIndex = 0;版本索引transportBlkSize=12960;%传输块大小[~,pdschIndicesInfo]=ltePDSCHIndices(enb,pdsch,pdsch.PRBSet);codedTrBlkSize=pdschIndicesInfo.G;%可用PDSCH位dlschTransportBlk=randi([0 1],transportBlkSize,1);%DL-SCH数据位%可能的冗余版本(重传次数)redundancyVersions = 0:3;
本示例为单个HARQ进程建模。每次传输后的值blkCRCerr
用于检查传输块的成功传输。如果检测到CRC错误,即。blkCRCerr > = 1
然后使用不同的RV值执行重传。
第一次传输使用0的RV完成,这表示初始化阶段。如果用户设备(UE)检测到CRC错误,则它向基站(BS)发送NACK,以便使用不同的RV值启动重传。块CRC错误返回1或更大的值。
eNodeB将使用不同的RV值持续发送相同的传输块,直到UE接收到无错误传输块或出现总的重传限制。在LTE中,在任何给定时间可以启动的HARQ进程的总数为8。
要发送和接收传输块,请执行以下步骤:
DL-SCH信道编码。生成DL-SCH位并进行信道编码。该过程包括传输块24A型CRC插入、码块分段和码块CRC插入、turbo编码、速率匹配和码块级联。每个段中的码块分段和CRC插入数量取决于给定的传输块大小。每个分段块在码块24B型CRC插入后分别进行turbo编码和速率匹配。级联过程应用于速率匹配的turbo编码块以形成码字。如果传输导致错误,则UE发出NACK信号。使用不同的RVs完成错误数据包的重传。Each RV对应于来自同一编码块的一组不同奇偶校验位;RV控制这种变化。所有这些操作都可以使用工具箱功能执行lteDLSCH.
PDSCH复杂符号生成。对编码传输块进行置乱、调制、层映射和预编码,生成PDSCH复符号。这是通过使用ltePDSCH.
噪音之外。然后将生成的噪声添加到PDSCH复杂符号中。通过改变方差的值nVariance
重新传输的数量也会变化,这是因为检测到的错误数量会随着符号上的噪声量而波动。
PDSCH接收机处理。在PDSCH接收机解预编码中,对带噪声的PDSCH复符号进行层解图、软解调和解编。
DL-SCH信道解码。信道解码使用lteDLSCHDecode它执行速率恢复、软组合、代码块取消分段、CRC删除和块CRC解码。此功能将软缓冲区作为输入参数,然后在解码位之前与接收到的码字软位进行软组合。
定义软缓冲区decState=[];%可以改变噪声功率,以查看不同的RV信噪比=4;% dB%初始值blkCRCerr=1;虽然blkCRCerr>=1%每次重传的增量冗余版本rvIndex = rvIndex + 1;如果rvIndex>长度(冗余版本)错误(“传输失败”);终止pdsch。房车= redundancyVersions (rvIndex);% PDSCH载荷codedTrBlock=lteDLSCH(enb、pdsch、codedTrBlkSize、,...DLK);%PDSCH符号生成pdschSymbols = ltePDSCH(enb, pdsch, {codedTrBlock}); / /输出%添加噪声到pdschSymbols以创建有噪声的复调制符号PDSCHSYMBOLSNORY=awgn(pdschSymbols,SNR);% PDSCH接收器处理rxCW=ltePDSCHDecode(enb、pdsch、pdschsymbols);%DL-SCH信道解码[rxBits,blkCRCerr,decState]=lteDLSCHDecode(enb,...pdsch, transportBlkSize, rxCW, decState);终止
blkCRCerr
是接收到的传输块的块CRC错误。如果UE在接收到的传输块上检测到CRC错误,则发送NACK。此外,新的软缓冲区,十国
,此函数的输出中有可供下次使用的内容。
通过这个例子,可以观察噪声对成功接收所需的重发次数的影响。在本例中,对于给定水平的噪声添加到发送的符号,总共需要1次重传才能成功接收数据。
fprintf([“\n\n传输成功,冗余总数”...“使用的版本是”num2str(冗余版本(rvIndex)+1)“\ n \ n”]);
传输成功,使用的冗余版本总数为2
3GPP TS 36.101“用户设备(UE)无线传输和接收”
3GPP TS 36.212“多路复用和信道编码”
3GPP TS 36.213“物理层程序”