主要内容

DL-SCH HARQ建模

本例演示了使用LTE Toolbox™在下行链路共享信道(DL-SCH)传输中的混合自动重复请求(Hybrid- arq)增量冗余(IR)。

简介

下行共享信道(DL-SCH)见TS36.212,第5.3.2节[2].这个示例演示了发射机如何在单层上重传单个码字,每次使用不同的冗余版本(RV),直到接收码字的CRC表示成功传输。DL-SCH传输采用16QAM调制,通过单个天线端口传输1/2目标编码率。本例中使用的设置是基于TS36.101表A.3.3.1-2中定义的固定参考通道R.3 [1].

混合自动重复请求(Hybrid- arq)是前向纠错(FEC)和自动重复请求(Automatic Repeat reQuest)的最佳组合。混合arq方案通常用于在有噪声的无线信道上促进可靠的通信。HARQ能够补偿链路自适应错误,并提供更细粒度的编码率,从而获得比其他FEC方案更好的吞吐量性能。

混合ARQ有三种类型:类型I、类型ii和类型iii。

混合ARQ类型I

最简单的方法:Hybrid ARQ Type I使用CRC来检测传输中是否发生了错误。如果一个包被发现是错误的,一个重传请求将被发送到发射机,错误的包将被丢弃。然后,发送方将重发同一数据包,直到数据包被接收方成功解码或达到最大重发限制。

混合ARQ类型I可以扩展到包括分组组合,这被称为混合ARQ类型I与分组组合或追逐组合。每次重传失败后,错误的数据包被存储在缓冲区中。接收机然后使用最大比组合将每个接收的信道位与任何相同位的先前传输组合起来,并将组合后的信号馈送到解码器。Chase组合不提供任何额外的编码增益,它只增加累计接收的信噪比$ \ mathrm {Eb} / \ mathrm {N0} $对于每一次重传。

混合ARQ类型II

在混合ARQ类型II中,也称为完全增量冗余(IR),每次重传不一定与原始传输相同。相反,生成多组编码位,每当需要重新传输时,重新传输的数据表示与前一次传输不同的一组编码位。接收端将重传与同一数据包的先前传输尝试结合起来。由于重传包含额外的奇偶校验位,不包括在先前的传输尝试中,因此随后的重传通常会降低所产生的码率。每次传输包含一组不同的奇偶校验位,与追逐组合相比,产生更高的编码增益。

混合ARQ类型III

最后一种方法Hybrid ARQ Type III,也称为部分IR,通过在每次重传中发送额外的冗余位来降低编码率。然而,它确实确保重传能够自解码。这意味着重传的数据包可以与之前的数据包相结合,以增加分集增益。

LTE中的HARQ进程

LTE采用IR HARQ和用于FEC的1/3涡轮编码器。TB (Transport Block) CRC用于检测错误。接收器只接收相同涡轮编码数据的不同穿孔版本;每一次重传都是可自行解码的。因此,它属于III型混合ARQ的类别。

在LTE中,重传是以1/2或3/4的初始编码率发送的。同时DL-HARQ进程的最大数量(PDSCH传输的数量)被限制为TS36.213,第7节[3.].

在LTE中,n通道停止等待协议被用作混合ARQ协议,因为它提供了低缓冲要求和低确认(ACK)/负确认(NACK)反馈开销。

LTE工具箱中的DL-HARQ过程

在本例中,生成一个传输块,并进行DL-SCH编码以创建一个码字。码字经过物理下行共享信道编码,形成复杂的调制符号。

加性高斯白噪声被添加到符号中。然后对噪声符号进行接收处理以获得传输的码字。然后码字的turbo速率恢复,码块分解和CRC块解码,以检查传输是否成功。如果在传输块中检测到CRC错误,则使用不同的RV进行重传。此过程将继续进行,直到传输成功或达到重传输限制为止。

它是设置

单元格范围设置在结构中指定enb

enb。NDLRB = 50;下行RBs占总BW的百分比enb。CyclicPrefix =“正常”% CP长度enb。PHICHDuration =“正常”PHICH持续时间%enb。NCellID = 10;单元格IDenb。CellRefP = 1;%单天线接口enb。DuplexMode =“FDD”FDD双工模式enb。Cfi = 2;% 2 PDCCH符号enb。Ng =“六”% HICH组enb。NSubframe = 0;%子帧号0

PDSCH传输模式配置

物理下行共享通道(PDSCH)使用一个结构进行配置pdsch为单天线传输方案。

pdsch。NLayers = 1;用于映射传输块的层数pdsch。TxScheme =“Port0”传动方案pdsch。调制= {16 qam的};%调制pdsch。Rv = 0;初始化冗余版本pdsch。Rnti = 500;无线网络临时标识符pdsch。NTurboDecIts = 5;涡轮解码器迭代次数的%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指定编码和速率匹配的DL-SCH数据位的数量,以满足物理PDSCH容量。

rvIndex = 0;版本索引transportBlkSize = 12960;%传输块大小[~,pdschIndicesInfo] = ltePDSCHIndices(enb,pdsch,pdsch. prbset);codedTrBlkSize = pdschIndicesInfo.G;%可用PDSCH位dlschTransportBlk = randi([0 1], transportBlkSize, 1);% DL-SCH数据位可能的冗余版本(重传数量)冗余版本= 0:3;

重传循环

本例对单个HARQ流程建模。每一次传输后的值blkCRCerr用于检查传输块是否成功传输。如果检测到CRC错误,即。blkCRCerr > = 1然后使用不同的RV值执行重传。

第一次传输使用RV为0完成,这表示初始化阶段。如果用户设备(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信号。错误数据包的重传是使用不同的rv完成的。每个RV对应于来自相同编码块的一组不同的奇偶校验位;RV控制这种变化。所有这些操作都可以使用工具箱功能来执行lteDLSCH

  • 复杂符号生成。对编码后的传输块进行置乱、调制、层映射和预编码,生成PDSCH复合符号。这是通过使用ltePDSCHPRBS

  • 噪音之外。然后将生成的噪声添加到PDSCH复符号中。通过改变方差的值nVariance重传的数量也会变化,这是因为检测到的错误数量会随着符号上存在的噪声的数量而波动。

  • 接收器处理。在PDSCH接收机的预编码中,对有噪声的PDSCH复符号进行了分层解调、软解调和解编。

  • DL-SCH信道解码。信道解码使用lteDLSCHDecode它执行速率恢复、软组合、码块分割、CRC移除和块CRC解码。该函数以软缓冲区作为输入参数,然后在解码位之前与接收到的码字软位进行软组合。

定义软缓冲区decState = [];%噪音功率可根据不同RV而变化信噪比= 4;% dB初始值blkCRCerr = 1;blkCRCerr >= 1为每次重传增加冗余版本rvIndex = rvIndex + 1;如果rvIndex > length(冗余版本)错误(“传输失败”);结束pdsch。RV =冗余版本(rvIndex);% PDSCH有效载荷codedTrBlock = lteDLSCH(enb, pdsch, codedTrBlkSize,...dlschTransportBlk);% PDSCH符号生成pdschSymbols = ltePDSCH(enb, pdsch, {codedTrBlock});向pdschSymbols添加noise以创建有噪声的复杂调制符号pdschSymbolsNoisy = awgn(pdschSymbols,SNR);% PDSCH接收器处理rxCW = ltePDSCHDecode(enb, pdsch, pdschSymbolsNoisy);% DL-SCH信道解码[rxBits, blkCRCerr, decState] = lteDLSCHDecode(enb,...pdsch, transportBlkSize, rxCW, decState);结束

blkCRCerr是接收传输块的块CRC错误。当终端在接收的传输块上检测到CRC错误时,发送NACK。此外,新的软缓冲器,decState,在此函数的输出中有内容可供下次使用。

通过这个例子,可以观察到噪声对成功接收所需的重传次数的影响。在本例中,对于添加到传输符号的给定噪声级别,总共需要1次重传才能成功接收数据。

流([“\n\n传输成功,冗余总数”...“使用的版本是”num2str(冗余版本(rvIndex) + 1)“\ n \ n”]);
传输成功,使用的冗余版本总数为2

选定的参考书目

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

  2. 3GPP TS 36.212“多路复用和信道编码”

  3. 3GPP TS 36.213“物理层程序”