目录
4.2 HARQ-II型:FEC前向纠错+完全递增冗余重传+组合译码
第5章 增量冗余IR(incremental redundancy)的原理
第1章 L2 MAC层的架构
1.1 RAN的架构
1.2 L2 MAC层的架构
1.3 MAC层的帧调度功能
(1)HARQ
DLSCH传输过来的数据,如果基站正常接收了,则回复ACK被ULSCH接收,否则回复NACK到ULSCH,此过程构成了MAC数据传输的一个核心功能,就是HARQ;
混合自动重传请求(Hybrid Automatic Repeat reQuest,HARQ),是一种将前向纠错编码(FEC)和自动重传请求(ARQ)相结合而形成的技术。
(2)复用与解复用
将来自上层的SDU(服务数据包, 来自其他层未经过本层处理的数据包)包,复用成发送给下层PDU(协议数据包,经过本层处理,准备发给其他层的数据包)包,也就是TB块上,构成复用解复用的主要功能;
(3)用户优先级的处理
- 不同用户的优先级,
- 同一个用户,不同逻辑信道之间的优先级
(4)COMP(协同多点传输),以支持载波聚合CA功能。
第2章 HARQ概述
2.1 差错控制技术概述
差错控制数据链路层层是一个非常重要的功能,数据链路层层需要在不太可靠的物理层来尽量实现可靠的链路层传输,靠的就是差错控制。
所谓差错控制,就是发送端对传输的数据信息检错编码、纠错编码,接收端对接收到的数据进行错误检测,加以恰当的纠错、并进行确认的处理过程。
检错是指接收方通过各种方法能发现数据中的错误并且通知发送方进行重传该信息,常见的检错技术包括CRC.
纠错是指当发现错误地时候直接能够改正,而不是通过反馈给发送方进行重传。
传输出错分下面几种情况:
(1)数据丢失,(2)数据受到干扰出错
那么和上面错误对应的就是差错控制的功能:
(1)正确接收,肯定确认:这个是最基本的情况,只要接收端认为自己收到数据是对的,就发送一个ACK告知发送方。
(2)数据丢失,超时重发:这个对应的是发送数据和确认丢失的情况。
(3)数据错误,否定确认:这个用于数据错误之后的重发 。
通过以上情况考虑,设计出来的协议就是差错控制。
通过接收方请求发送方重传出错的数据报文来恢复出错的报文,是通信中用于处理信道所带来差错的方法之一,有时也被称为后向纠错(Backward Error Correction,BEC);
“后向”纠错:表示放弃之前已经发送的数据,重新发送新的数据。
常见的差错控制技术包括:
2.2 CRC检错技术
(1)CRC校验概述
循环冗余校验(Cyclic Redundancy Check, CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术。主要用来检测或校验数据传输或者保存后可能出现的错误。
它是利用除法及余数的原理来作错误侦测的。其基本思想是将要传送的信息M(X)表示为一个多项式L,用L除以一个预先确定的多项式G(X),得到的余式就是所需的循环冗余校验码。这种校验又称多项式校验。
“循环”是指:使用传送的信息比特组成的多项式除以特征多项式,循环求余数,直到留下最后的余数。
“冗余”是指:添加一定比特的冗余比特,这些冗余比特的数值,是相除之后的余数,余数比特序列与待传输的比特序列和特征多项式是相关的。
比如:
- (1)设约定的生成多项式为G(x)=x4+x+1,其二进制表示为10011,共5位,其中k=4。
- (2)假设要发送数据序列的二进制为101011(即f(x)),共6位。
- (3)在要发送的数据后面加4个0(生成f(x)*xk),二进制表示为1010110000,共10位。
- (4)用生成多项式的二进制表示10011去除乘积1010110000,按模2算法求得余数比特序列为0100(注意余数一定是k位的)。
- (5)将余数添加到要发送的数据后面,得到真正要发送的数据的比特流:1010110100,其中前6位为原始数据,后4位为CRC校验码。
- (6)接收端在接收到带CRC校验码的数据后,如果数据在传输过程中没有出错,将一定能够被相同的生成多项式G(x)除尽,如果数据在传输中出现错误,生成多项式G(x)去除后得到的结果肯定不为0。
(2)编码效率
- 常见的CRC多项式有CRC16和CRC32, 增加的冗余比特为16bit或32比特。
(3)应用场合
- 广泛应用大量比特传输的数据通信场合。
(4)优点
- 电路实现简单
- 能够实现大数据比特通信的场合
(5)缺点
- 只能发现错误,而不能纠正错误。
2.3 FEC纠错编码
FEC, ForwardError Correction,前向纠错。
所谓前向检错:就是在发送数据时,添加能够辅助纠错的冗余纠错码,在接收检查数据是否有数据比特传输出错,并且能够确定是哪一位出错,同时能够直接把出错的比特纠正为正确的比特。
与“后向纠错”不同的是,直接利用先前发送的数据就可以进行纠错,不需要再重复发送后续的数据。
前向纠错编码(FEC)并非是某一个具体的编码技术,而是一类纠错编码技术的统称。之所以“前向”纠错,该技术纠错的是已经接收到的比特数据,称之为前向纠错。
前向纠错编码(FEC)技术通过在传输码列中加入冗余纠错码(不仅仅是检错),在一定条件下,通过解码可以自动纠正传输误码,降低整体的接收数据的误码率(BER)。
纠错的好处:避免整个数据包中只有部分bits传输出错,而重传整个数据的情形。
纠错的缺点:需要增加比检错更多的冗余信息,有效数据占比得到很大的降低,数据编码率下降。在信道质量良好的情况下,多余的冗余比特就是一种资源的浪费。但在信道质量不好的情形下,纠错功能极大的降低了数据的重传,提升了整体的性能。
FEC技术是一种广泛应用于通信系统中的编码技术。
(1)FEC的基本原理
在发送端,通过将kbit信息作为一个分组进行编码,加入(n-k)bit的冗余校验信息,组成长度为n bit的码字。
码字经过信道到达接收端之后,如果错误在可纠范围之内,通过译码即可检查并纠正错误bit,从而抵抗信道带来的干扰,提高通信系统的可靠性。
在通信系统中,通过FEC的处理,可以以很小的冗余开销代价,有效降低系统的误码率,延长传输距离,实现降低系统成本的目的。
(2)编码开销:
假设有效数据长度为k,编码后的数据长度为n,则容易信息为n-k。
校验位长度(n-k)与信息位长度k的比值,称为编码开销。
开销越大,FEC方案的理论极限性能越高,但增加并不是线性的,开销越大,开销增加带来的性能提高越小。开销的选择,需要根据具体系统设计的需求来确定。
(3)判决方式:
FEC的译码方式分为硬判决译码和软判决译码两种。
硬判决FEC译码器输入为0,1电平,由于其复杂度低,理论成熟,已经广泛应用于多种场景。
软判决FEC译码器输入为多级量化电平。
在相同码率下,软判决较硬判决有更高的增益,但译码复杂度会成倍增加。
2.4 HARQ概述
HARQ(Hybrid Automatic Repeat request混合自动重传请求)
是一种结合FEC前向纠错与自动出错重传ARQ两种方法的纠错、纠错的差错控制技术。
LTE/NR中有两种重传机制:RLC层的ARQ(只针对AM(aknowledgement mode确认模式)数据传输)机制和MAC层的HARQ机制。
HARQ是在ARQ的基础之上的增强。本文以ARQ为基础,重点探讨MAC层HARQ的增强机制。
2.5 HRAQ功能同时跨越物理层和MAC层
发送端生成不同的redundancy version,选用哪个RV是由MAC层告诉物理层的,并且FEC编码也是在物理层中完成。
在接收端,检错、纠错、软合并由物理层负责的,HARQ buffer通常位于物理层中。
因此MAC层负责HRAQ流程控制,物理层负责CRC检错、FEC纠错编码、CRC检错、FEC纠错等功能。
第3章 传统的ARQ原理与ARQ的类型
在了解LTE/NR的HARQ原理之前,先了解传统的ARQ原理。
3.1 ARQ概述
传统的ARQ自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中数据链路层的错误纠正协议之一。
ARQ的基本原理是:
(1)发送方根据被传送的数据信息,按一定规律加入一些校验码位,使数据信息和校验码有某种相关性,然后一起发送到接收方。
(2)接收方根据数据信息与校验码之间的相关规律进行检验,从而确定接收的信息是否出错,并通过反馈信息把检测结果反馈给发送方。
(3)接收方正是通过加入的校验码来发现是不是有错误,从而具备检错能力。
校验码有很多种,比如说汉明校验码,以及CRC循环校验码。
校验码是检测出帧有没有错误,而整个ARQ不仅包含了检错,还有错误处理(纠错)等一些列过程,这个不能混淆了。
传统自动重传请求分成为三种,即停等式(stop-and-wait)ARQ,回退n帧(go-back-n)ARQ,以及选择性重传(selective repeat)ARQ。
后两种协议是滑动窗口技术与请求重发技术的结合,由于窗口尺寸开到足够大时,帧在线路上可以连续地流动,因此又称其为连续ARQ协议。
三者的区别在于对于出错的数据报文的处理机制不同。三种ARQ协议中,复杂性递增,效率也递增。
想设计出一个优秀的协议,需要全方面考虑到各种可能出现的情况,确保万无一失才行。
3.2 停等式ARQ
在停等式ARQ中,数据报文发送完成之后,发送方等待接收方的状态报告,如果状态报告报文发送成功,发送后续的数据报文,否则重传该报文。
停等式ARQ,发送窗口和接收窗口大小均为1,帧的序号为0和1,发送方每发送一帧之后就必须停下来等待接收方的确认返回,仅当接收方确认正确接收后再继续发送下一帧。
在停等式ARQ,发送方仅仅收到当前帧的肯定确认之后才能发送下一帧。因此,在正常情况下,停等式ARQ只需要给帧编号为0和1即可,接收方接收到F0之后,如果无误则发送ACK 1表示准备好接收F1了,如果接收到F1且校验无误则发送ACK0表示准备好接收F0了。这是无错的情况。
有错误地情况如下:
①数据帧丢失:数据帧丢失,那么发送方发送之后接受方收不到数据,自然也不会有回应。发送方发送之后就启动计时器,当计时器超时,那么它就要重发。所以对于停等式协议,他一定要有缓存区存放自己发送的消息。
②数据帧错误:假设F0错了,那么接受方通过CRC校验发现数据帧有误,那么就丢弃该帧。发送方超时之后,就重新发送这一帧。
③确认帧丢失/损坏:发送方如果没有收到确认帧,超时之后同样再次发送刚才发送的帧,因为他会认为自己的帧丢失了。
损坏的处理方式相同,因为发送方不知道接收方是不是正确接收了,所以仍然重发。如下图:
停等式ARQ,优点是操作简单,但是存在的问题是效率低。因为任何时候都只能有一个帧再信道发送,所以信道存在大量空闲,在当前网络情况下,效率那么低下是不可以忍受的,所以同样也借用了滑动窗,也就是回退nARQ和选择重传ARQ。
既然一次只发送一个,那么不用序号行不行?答案是不行。
我们可以考虑这样一种情况,0帧成功发送,成功接收,发送方发送了ACK1.但是这个肯定确认ACK1却丢失了,发送方超时再次发送了0帧,但是接收方因为没有序号,只能认为这个是下一个帧,即帧1,因为他不知道自己确认帧丢了导致发送方重发,所以就造成错误了。
3.3 回退n帧的ARQ
该模式下,发送侧不用等待接收侧的应答,持续的发送多个帧。
假如发现已发送的帧中有错误发生,那么从那个发生错误的帧开始及其之后所有的帧全部再重新发送。
特点:(GBN)复杂度低,但由于会重发没有出错的帧,所以大幅度范围内使用的话,效率是不高的。
该模式下,发送方连续发出N个帧,接收方以流水线方式按照序号顺序接收各个帧,并进行差错检测。一旦某个帧有错,则丢弃该帧和它之后所收到的所有未经过帧,这种方式假设后续的帧的数据与此错误帧的数据有相关性。
这里要注意的是:接收方只能按照序号顺序接收帧,这与之后的选择重传ARQ不太一样,选择重传ARQ的性质就决定了自己一定有能力接收乱序的帧,这个一会再说。
回退nARQ的原理图如下所示:
不同情况的处理如下:
①对于正确的数据帧,假设前i-1帧都对了,接收方发送RRi表示前i-1帧都对了,准备接收第i帧和之后的帧。
②数据帧损坏:接收方发回REJi,表示第i帧损坏,要求重传i帧以及之后的帧。发送方收到REJi,回退到第i帧,重新发送这一帧和之后的帧。
③数据帧丢失:
- 只有i帧丢失,i+1之后都没丢:那么接受方发现顺序错误了(回退nARQ只能按顺序接收),那么返回REJi,要求重传第i帧。
- i帧是最后的帧:那么接受方首先超时,发回一个RR帧,要求重发第i帧。
④肯定确认帧丢失/损坏:假设i-1帧收到之后,收方发送RRi要求发第i帧,结果这个RRi丢失或者损坏了,那么发方会超时,发方会向收方发送一个RR表示询问,确认是不是已经收到了。如果接收方接到RR那么就会重发RRi。但是如果发方的RR也丢失了或者损坏,收方收不到,那么发方超时,发送方再次发送RR,循环到一定次数,就重启整个发送过程。
⑤REJ否定确认损坏:和④相同,把RRi换成REJI就可以了。
回退n协议特点是:
接收方只存放一帧大小的缓冲区(可以理解为接收窗的窗口大小为1;并且发送方必须有能存放着n个帧大小的缓存,以便重发。它的优点是消除了停等协议ARQ的等待应答时间,效率变高。
但是它的缺点非常明显:
即使只有某一帧出错,但是这一帧和之后的帧全都需要重发,尤其是假设第一帧出错了,后面n-1帧全部“连坐”。这也会造成低效率与信道浪费,所以解决办法就是选择重传ARQ.
3.4 选择性重传ARQ
发送侧不用等待接收侧的应答,持续的发送多个帧,假如发现已发送的帧中有错误发生,那么发信侧将只重新发送那个发生错误的帧。
发送侧一次连续发送N个帧,当接收方发现其中有错帧时就给发送方反馈要求重发帧的序号,其余(N-1)个正确帧被接收方存储起来。
它要求接收方必须有能力缓存n个帧,并且它可以接收乱序的帧。
它的优点就是:不需要重传其他的帧,信道利用率高,
它的缺点就是:实现复杂,要求接收方有足够的空间。
我们看这张图:
发送方按照顺序发送帧序列,对于没有错的帧,接收端反馈ACKi。
那么对于有错误的帧,假设第j帧出错,那么收端反馈NAKj表示第j帧出错,那么发端就只是重发第j帧。
收方于是也照常接收其他帧,当收到其他帧之后可能又收到第j帧,这时他意识到这时重传的,所以他就接收了这个帧,并且按照正确的顺序排好了。
第4章 HRAQ的类型
根据重传内容的不同,在3GPP标准和建议中主要有3种混合自动重传请求机制,包括HARQ-I、HARQ-II和HARQ-III等。
不同类型的HRAQ,都是在传统的ARQ的基础上,更近一步。
4.1 HARQ-I型:FEC前向纠错+简单复制重传
HARQ-I即为传统ARQ方案,它仅在ARQ的基础上引入了纠错编码,即对发送数据包增加循环冗余检错(CRC)比特并进行FEC编码和纠错。
接收端对接收的数据进行FEC译码和CRC校验(检错),如果有错则放弃错误分组的数据,并向发送端反馈NACK信息请求重传与上一帧相同的数据包。
一般来说,物理层设有最大重发次数的限制,防止由于信道长期处于恶劣的慢衰落而导致某个用户的数据包不断地重发,从而浪费信道资源。
如果达到最大的重传次数时,接收端仍不能正确译码,则确定该数据包传输错误并丢弃该包,然后通知上层,发送出错。
这种HARQ方案对错误数据包采取了简单的丢弃,而没有充分利用错误数据包中存在的有用信息。
所以,HARQ-I型的性能主要依赖于FEC的纠错能力。
4.2 HARQ-II型:FEC前向纠错+完全递增冗余重传+组合译码
HARQ-II也称作完全增量冗余FIR方案。
在这种方案下,信息比特经过编码后,将编码后的校验比特按照一定的周期打孔,根据码率兼容原则依次发送给接收端。
收端对已传的错误分组并不丢弃,而是与接收到的重传分组进行组合译码;其中重传数据并不是已传数据的简单复制,而是附加了更多的冗余信息。
接收端每次都进行组合译码,将之前接收的所有比特组合形成更低码率的码字,从而可以获得更大的编码增益,达到递增冗余的目的。
每一次重传的冗余量是不同的,而且重传数据不能单独译码,通常只能与先前传的数据合并后,才能被解码。
4.3 HARQ-III型:FEC前向纠错+重传+互补删除
HARQ-III型是完全递增冗余重传机制的改进。
对于每次发送的数据包采用互补删除方式,各个数据包既可以单独译码,也可以合成一个具有更大冗余信息的编码包进行合并译码。
另外根据重传的冗余版本不同,HARQ-III又可进一步分为两种:
- 一种是只具有一个冗余版本的HARQ-III,各次重传冗余版本均与第一次传输相同,即重传分组的格式和内容与第一次传输的相同,接收端的解码器根据接收到的信噪比(SNR)加权组合这些发送分组的拷贝,这样,可以获得时间分集增益。(这里是两次收到的子载波幅度的合并,而不是而二进制比特的合并)
-
另一种是具有多个冗余版本的HARQ-III,各次重传的冗余版本不相同,编码后的冗余比特的删除方式是经过精心设计的,使得删除的码字是互补等效的。所以,合并后的码字能够覆盖FEC编码中的比特位,使译码信息变得更全面,更利于正确译码。目前LTE采用这种 。
HARQ 协议在时域上还可以分为同步(synchronous)和异步(asynchronous)两类;
HARQ 协议在频域上还可以分为自适应(adaptive)和非自适应(non-adaptive)两类。
第5章 增量冗余IR(incremental redundancy)的原理
5.1 增容冗余概述
在增量冗余中,每一次重传并不需要与初始传输相同。
在增量冗余中:
- 发送端
发送端,一次编码,会生成多个编码比特(coded bit)集合,coded bit序列称为一个冗余版本(Redundancy Version,RV),每个集合中不同的冗余版本都携带相同的信息。
每当需要重传时,通常从编码比特(coded bit)的集合选择一个不同的编码序列。
- 接收端
接收端,会把重传的数据与前一次传输的数据进行合并。
由于重传可能携带了不包含在前次传输中的额外奇偶校验比特(parity bit),所以重传的码率会降低。
每次重传可以包含与初始传输数目不同的coded bit,且不同重传的调制方式也可以不同。
5.2 增量冗余的例子
(1)编码过程
(2)DL-SCH的物理层处理
这里我们以DL-SCH的物理层处理步骤来简单介绍一下冗余版本RV的生成过程。UL-SCH的处理与之类似。
(2)速率匹配和HARQ功能
从图2、图3可以看出,在Turbo编码之后,会输出systematic bits,first parity bits和 second parity bits。
这些输出会先进行交织,然后插入一个环形缓冲器(circular buffer)中。其中,systematic bits会先插入,然后first parity bits和second parity bits交替着插入。
不同的RV意味着从环形缓冲器的不同起始位置来提取要发送的bit。
对于DL-SCH和UL-SCH而言,其信道编码采用了Turbo编码。Turbo编码中的systematic bit比parity bit更重要,在初传(initial transmission)中至少需要包含所有的systematic bit和部分parity bit;而在重传(retransmission)中,会包含初传中没有的parity bit。如果初传(注意:这里是“第一次传输”)的接收质量很差或根本没收到,此时重传只带parity bit的RV不如重传包含全部(或部分)systematic bit的RV来得性能好。这里有两种不同的否定应答:NACK和DTX。NACK要求重传额外的parity bit,而DTX要求重传systematic bit。总之,基于之前传输尝试的信号质量来决定重传中包含多少systematic bit和parity bit是很重要的。
。。。。。。。。。。。。。
其他参考: