主要内容

DL-SCH HARQ模型

该示例演示了使用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].

混合自动重传请求(Hybrid- arq)是前向纠错(FEC)和自动重传请求的优化组合。混合arq方案通常用于在嘈杂的无线信道上实现可靠的通信。HARQ能够补偿链路自适应错误,并提供更细粒度的编码速率,从而获得比其他FEC方案更好的吞吐量性能。

混合ARQ有三种类型:I型、II型和III型。

混合ARQ类型I

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

Hybrid ARQ Type I可以扩展为包组合,这被称为Hybrid ARQ Type I with packet梳理或Chase组合。在每次失败的重传之后,错误的数据包被存储在缓冲区中。然后,接收器使用最大比率组合,将每个接收的信道位与之前任何相同位的传输组合起来,并将组合后的信号送入解码器。逐行合并不产生额外的编码增益,只增加了累计接收信噪比$ \ mathrm {Eb} / \ mathrm {N0} $对于每个重传。

混合型ARQ II

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

混合ARQ III型

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

LTE中的HARQ进程

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

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

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

LTE工具箱中的DL-HARQ过程

在这个例子中,生成一个传输块并进行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 =“Port0”%传输方案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函数使用enbpdsch这个ltePDSCHIndices函数返回一个包含参数的信息结构作为其第二个输出G指定满足物理PDSCH容量的编码和速率匹配DL-SCH数据位的数量。

rvIndex = 0;版本索引transportBlkSize = 12960;%传输块大小[~, pdschIndicesInfo] = ltePDSCHIndices (pdsch, enb 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编码块,以形成码字。如果传输错误,则终端发出NACK信号。错误数据包的重传是使用不同的rv完成的。每个RV对应同一编码块的一组不同的奇偶校验位;RV控制这种变化。所有这些操作都可以使用工具箱函数来执行lteDLSCH

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

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

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

  • DL-SCH信道解码。信道解码使用lteDLSCHDecode实现了速率恢复、软合并、码块解分割、CRC去除和块CRC解码。该函数将软缓冲器作为输入参数,然后在解码前将软缓冲器与接收的码字软位相结合。

定义软缓冲区decState = [];%可以改变噪声功率,以查看不同的RV信噪比=4;% dB%初始值blkCRCerr = 1;虽然blkCRCerr > = 1%每次重传的增量冗余版本rvIndex = rvIndex + 1;如果rvIndex > length(redundancy) error(“传输失败”);结束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, pdschSymbolsNoisy);%DL-SCH信道解码[rxBits, blkCRCerr, decState] = lteDLSCHDecode(enb,...pdsch, transportBlkSize, rxCW, decState);结束

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

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

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

选定的参考书目

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

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

  3. 3GPP TS 36.213《物理层程序》