1.本文是根据温金辉《深入理解LTE-A》整理而来。 2.欢迎指正。
1.HARQ:Hybrid Automatic Repeat reQuest,混合式自动重传请求,是一种结合FEC(Forwad Error Correction)与ARQ方法的技术。
- LTE中提供两级重传处理机制:MAC层的HARQ机制和RLC层的ARQ(只针对AM模式数据传输)机制。
- 丢失或者出错的数据主要是由HARQ机制处理,ARQ机制进行补充。
- FEC通过添加冗余信息,使得接收端能够纠正一部分错误,从而减少重传次数。
- 对于FEC无法纠正的错误,接收端会根据ARQ机制请求发送端重发数据。接收端使用检错码(CRC校验码),检测接收到的数据是否出错。无错,发送ACK,发送端接着发送新的数据;有错,发送NACK,发送端重发相同的数据。
2.HARQ 进程
- HARQ使用stop-and-wait protocal(停等协议)来发送数据。在停等协议中,发送端每发送一个TB后,就会停下来等待确认信息(ACK/NACK)。每次传输后发送端就停下来等待确认,会导致吞储量很低。因此LTE中使用多个stop-and-wait process:当一个HARQ process在等待确认信息时,发送端会使用另一个HARQ process继续发送数据。

图1所示:
- 每个TTI,每个HARQ process只处理一个TB。 TB和HARQ process一一对应。
- 每个HARQ process在接收端有独立的HARQ buffer,对接收到的数据进行软合并。
- 空分服复用中,一个TTI会并行传输两2个TB,每个TB有各自独立的HARQ确认信息,并使用不同的HARQ process来处理。此时,一个HARQ实体包括2个HARQ process集合。
- 使用多个HARQ process,会导致接收端的MAC层送往RLC层数据是乱序的。图1中,传输块5在传输块1前解码成功,导致传输块5先发送到RLC层,RLC层需要对接收到的数据进行重排序。
3.HARQ 相关概念
- HARQ process number:唯一指定HARQ process。
- NDI:New Data Indicator,用于指示当前数据是新传还是重传。
- RV:Redundancy Version,指示当前传输使用的冗余版本,取值范围在0~3。
- MCS:调制编码方式。
- TBS:Transport Block Size,重传的TBS保持不变,否则无法进行软合并。
- PRB数和PRB所在的频域位置:重传的TBS不变,但下行重传以及上行自适应重传的PRB数、PRB所在的频域位置和MCS可以改变,为调度提供灵活性。

4.HARQ同步异步、自适应非自适应
- 针对同一TB的初传和重传而言。
- HARQ协议在时域上分为同步和异步,异步意味着重传可以发生在任意时刻,能以任意顺序使用HARQ process,同步意味着只能在规定时刻重传,在某个特定的子帧,只能使用特定的HARQ process。同步HARQ好处是在于HARQ process number可以直接从系统帧号/子帧号推导出来,无需显示发送HARQ process number;异步HARQ好处在于重传调度更加灵活。
- 自适应HARQ(adaptiveHARQ)意味着可以改变重传所使用的PRB资源以及MCS。非自适应HARQ(non-adaptiveHARQ)意味着重传必须与前一次传输(新传或前一次重传)使用相同的PRB资源和MCS 。

5.BLER
无线网络中,按块(block,就是TB)为传送数据单位的。发送端使用块中的数据计算出一个CRC,并随着该块一起发到接收端。接收端根据收到的数据计算出一个CRC与接收到的CRC比较,如果二者相等,接收端就认为收到了正确的数据,发送一个ACK;如果二者不相等,接收端就认为收到了错误数据,发送NACK,要求重传该块。如果在规定时间内,发送端没有接收到接收端的回复,认为发送失败,会自动重传该块。
- BLER,block error rate,误块率,出错的块在所有发送的块中所占的百分比(只计算初传的block)。如LTE中数据信道的BLER要求为10%以下,控制信道的BLER则在1%以下。当BLER不超过10%时,UE将向eNodeB上报它所能解码的最高MCS(通过CQI)。
- 计算举例:假设发送500个block数据,其中499个block回复ACK,1个block回复NACK,则BLER=1/500=0.2%。
6.下行HARQ
6.1 简介
- 下行HARQ使用异步、自适应方式,意味着重传发生在任意时刻和频域位置。
- 下行重传总是通过PDCCH来重新调度。
- 下行PDSCH传输对应的ACK/NACK在PUCCH或者PUSCH上发送。
- 通常eNodeB和UE侧的解码处理时间至少为3ms。
- 下行HARQ最大重传次数是由eNodeB确定的,不同的厂家可能有不同的实现,UE并不知道下行最大重传次数(可以知道上行的),只能根据收到的NDI决定是进行软合并(重传)还是清空HARQ buffer(新传)。

6.2 timing
- 下行传输中,除配置的周期性SPS子帧上的PDSCH传输外,PDSCH总是伴随PDCCH在同一个子帧上传输。下行HARQ的初传和重传、重传和重传之间没有固定的timing关系,但是PDSCH传输与 对应的ACK/NACK之间有固定的timing关系。
- 对于FDD,如果UE在下行子帧n-4上检测到PDSCH传输,或检测到一个指示下行SPS释放的PDCCH,则UE会在上行子帧n上回复ACK/NACK。
- 对于TDD,多个下行子帧发送的PDSCH可能需要在同一个上行子帧回复ACK/NACK。如表3。

6.3 HARQ bundling
将同一小区的多个下行子帧对应同一codeword的ACK/NACK做逻辑与操作,最终得到1比特或=2比特的ACK/NACK信息。举例如图13-6。

- HARQ bundling只适用于单个Cell的场景,载波聚合下没有HARQ bundling。
问题:假如eNodeB在第三个子帧上发送了PDCCH和PDSCH,但是UE没有检测到,此时UE应该反馈00。但由于UE不知道eNodeB是否在第三个子帧上发送了数据,根据HARQ bundling原理,反馈回01。
为了解决上述的问题,PDCCH中引入了DAI(DownLink Assignment Index),用于告诉UE在HARQ反馈窗口内有多少个子帧包含下行传输。
注:FDD中,一个上行子帧内只需要对一个下行子帧的PDSCH回应,因此没有DAI概念!!
6.4 HARQ multiolexing
将同一小区的同一下行子帧发送的2个codeword对应的ACK/NACK做逻辑与操作,得到1比特ACK/NACK信息。如图13-10。

7.HARQ分类
3类型编辑根据重传内容的不同,在3GPP标准和建议中主要有3种混合自动重传请求机制,包括HARQ-I、HARQ-II和HARQ-III等。
7.1 HARQ-I型
HARQ-I即为传统HARQ方案,它仅在ARQ的基础上引入了纠错编码,即对发送数据包增加循环冗余校验(CRC)比特并进行FEC编码。收端对接收的数据进行FEC译码和CRC校验,如果有错则放弃错误分组的数据,并向发送端反馈NACK信息请求重传与上一帧相同的数据包。一般来说,物理层设有最大重发次数的限制,防止由于信道长期处于恶劣的慢衰落而导致某个用户的数据包不断地重发,从而浪费信道资源。如果达到最大的重传次数时,接收端仍不能正确译码 (在3G LTE系统中设置的最大重传次数为3),则确定该数据包传输错误并丢弃该包,然后通知发送端发送新的数据包。这种HARQ方案对错误数据包采取了简单的丢弃,而没有充分利用错误数据包中存在的有用信息。所以,HARQ-I型的性能主要依赖于FEC的纠错能力。
参考文献:
- 《重传,ARQ和HARQ》–简书,ARQ和HARQ概念讲解容易理解和记忆 https://www.jianshu.com/p/fb
- 《HARQ 和 ARQ》 http://blog.sina.com.cn/s/blog_746b60460102uwzo.html
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203122.html原文链接:https://javaforall.net
