上行HARQ.docx
《上行HARQ.docx》由会员分享,可在线阅读,更多相关《上行HARQ.docx(15页珍藏版)》请在冰豆网上搜索。
上行HARQ
上行HARQ
图1是关于上行数据传输的一个示意图(除了SR外,不包含PUCCH)。
本文主要介绍其中的上行HARQ处理。
图1:
上行流程
eNodeB使用PHICH来告诉UE是否成功接收PUSCH,一个上行TB对应一个PHICH。
关于PHICH的介绍,可以参见我的博文《LTE:
PHICH
(一)》和《LTE:
PHICH
(二)》。
上行支持2中传输模式:
TM1(只支持单天线传输)和 TM2(支持空分复用)。
对于FDD而言,如果上行传输模式为TM1,则有8个上行HARQprocess;如果上行传输模式为TM2,则有上行HARQprocess数将翻倍,为16个,此时每个子帧有2个HARQprocess。
对于TDD而言,如果上行传输模式为TM1,则不同的TDD上下行配置对应的上行HARQprocess数见36.213的Table8-1所示(如下图);如果上行传输模式为TM2,则有上行HARQprocess数将翻倍,此时每个子帧有2个HARQprocess。
这里我们不考虑子帧绑定(subframebundling)的场景。
Table8-1:
NumberofsynchronousULHARQprocessesforTDD
TDDUL/DLconfiguration
NumberofHARQprocessesfornormalHARQoperation
NumberofHARQprocessesforsubframebundlingoperation
0
7
3
1
4
2
2
2
N/A
3
3
N/A
4
2
N/A
5
1
N/A
6
6
3
每个UE(而不是每个无线承载)会被配置一个最大传输次数。
Msg3的最大传输次数是通过RACH-ConfigCommon的maxHARQ-Msg3Tx字段来配置的;而除Msg3外的其它上行HARQprocess允许的最大传输次数是通过MAC-MainConfig的maxHARQ-Tx字段来配置的。
前面已经介绍过,在LTE中,上行使用同步HARQ,但重传可以是自适应的,也可以是非自适应的。
上行HARQ使用同步(synchronous)、非自适应(non-adaptive)的目的是为了降低开销。
由于上行重传总是发生在可预知的子帧上(例如:
在FDD下,重传总是发生在前一次传输的8个子帧之后;TDD见后续介绍),所以根据timing关系可以直接推导出使用的HARQprocess。
并且在非自适应重传时,重传与与前一次传输(注意:
不是“新传”,这可以在36.300的9.1节和36.321的5.4.2.2节得到答案)使用相同的PRB资源和MCS。
因此下行只需要PHICH这一种控制信令,而不需要PDCCH(ULgrant),从而降低了开销。
而上行HARQ有时使用自适应(adaptive)重传是为了避免分割上行频域资源或避免与随机接入的资源发生碰撞。
此时eNodeB不仅会发送PHICH,还会发送PDCCH(ULgrant)以指示重传所使用的新的PRB资源和MCS。
如果上行同时支持自适应和非自适应HARQ,则要求对应同一上行子帧的PHICH和PDCCH拥有相同的timing,即在同一子帧中发送。
如果不满足该条件,则UE不知道是该听从PHICH还是该等待ULgrant而不管PHICH,实现的复杂度会大增。
HARQfeedbackseenbytheUE
PDCCHseenbytheUE
UEbehaviour
retransmissiontype
ACKorNACK
newtransmisson
(NDIistoggled)
newtransmissionaccordingtoPDCCH,andflushtheHARQbuffer
NA
ACKorNACK
retransmission
(NDIisnottoggled)
retransmissionaccordingtoPDCCH
adaptiveretransmission
ACK
none
no(re)transmission,keepdatainHARQbufferandaPDCCHisrequiredtoresumeretransmissions
NA
NACK
none
retransmissionoccursatthesamefrequencyresourcesandwiththesametransmissionformatastheprevioustransmission
non-adaptiveretransmission
图2:
上行HARQ处理(参见36.300的9.1节)
上行HARQ处理见图2,这对FDD和TDD是一样的。
可以看出:
(1)给定某个HARQprocess,即使接收到的PHICH指示为ACK,也不会清空HARQ缓存区。
此时,还需要通过在当前子帧或后续子帧中接收到的ULgrant中的NDI来决定是进行重传(NDI没有反转),还是进行新传(NDI反转,此时会清空HARQ缓存区)。
也即,是否清空HARQ缓存区是由ULgrant的NDI来决定的。
假如UE收到了ACK,之后要进行重传,只能进行自适应重传、而不能进行非自适应重传!
(见36.300的9.1节)
(2)给定某个HARQprocess,无论收到的PHICH指示的是ACK还是NACK,只要同时还收到ULgrant,则UE会忽略PHICH而使用ULgrant来决定如何进行下一次传输(新传还是重传)。
(3)如果在某个子帧只收到PHICH(NACK),则使用非自适应重传。
前面已经介绍了UE如何确定是新传还是重传,现在我们来介绍UE如何确定重传的冗余版本RV。
如果是非自适应重传,UE只会收到PHICH中指示的ACK/NACK信息,而不会显式地收到RV信息。
上行HARQ是同步的,RV遵循一个固定的顺序:
0,2,3,1(注意:
这个顺序只对“非自适应重传”有意义)。
新传使用的RV由ULgrant指定,值为0;若之后UE收到NACK,则会使用前一次传输对应的下一个RV版本(对应0,下一个RV值为 2;对应2,下一个RV值为 3)来发起重传,依此类推。
如果是自适应重传,则UE不仅会收到PHICH,还会收到PDCCH(ULgrant)。
如果需要重传,UE会根据ULgrant的指示来选择RV(见36.213的Table8.6.1-1),但不一定是0,2,3,1的顺序。
如果ULgrant中指示的MCSindex为0~28,则RV=0并使用Table8.6.1-1中指示的真正的MCS。
如果ULgrant中指示的MCSindex为29~31,RV版本见Table8.6.1-1,并且从表中可以看出,这3个MCSindex是预留的,不携带真正的MCS信息,因此如果MCSindex为29~31,其MCS遵循前一次传输使用的MCS(TBsize和调制方式都与前一次传输,或者说,最近一次接收到的MCSindex为0~28的ULgrant相同)。
(见36.213的Table8.6.1-1)
在ULgrant调度的重传中使用哪种RV需要在增量冗余增益和稳定性之间取得平衡。
从增量冗余的角度上看,改变重传之间的RV值有益于充分利用来自增量冗余的增益。
但如果丢失了第一次传输的ULgrant信息,则意味着需要使用RV=0的冗余版本,以便显式地指示MCS信息。
关于上行HARQ中,如何确定重传的ModulationOrder、RV版本、TBsize,还可参见36.213的8.6节。
LTE:
上行HARQ
(二)
(2013-03-2209:
47:
12)
转载▼
标签:
it
harq
上行harq
lte
分类:
LTE
接下来,我们来看看上行是如何进行同步的。
首先需要说明的是,如果UE需要在PUSCH上发送数据,UE需要满足以下两个条件之一:
1)收到一个有效的ULGrant:
该ULgrant可以来自动态调度的PDCCH(DCIformat0/4,本文只介绍这种情况)、或来自RAR,或通过半静态配置。
2)收到一个PHICH且指示为NACK:
对应非自适应重传。
接下来,我们分FDD、TDD1~6、TDD0三种配置来介绍上行HARQ在时域上的同步关系!
每种配置都包含2部分:
1)ULgrant/PHICH与对应的PUSCH传输之间的timing关系;2)PUSCH传输与对应的PHICH(ACK/NACK)之间的timing关系。
1)FDD
对FDD而言,如果UE在子帧n收到了ULgrant(DCIformat0/4,对应新传或自适应重传)或PHICH(只收到NACK,对应非自适应重传),则UE会在n+4子帧发送对应的PUSCH。
(见36.213的8.0节)
对FDD而言,如果UE在子帧n收到了PHICH,则该PHICH对应UE在上行子帧n-4发送的PUSCH。
(见36.213的8.3节)
如图3所示。
图3:
FDD中的上行传输,ULgrant、PUSCH、ACK/NACK之间的timing关系
子帧n,n+4、n+8、n+12、n+16都对应同一HARQprocess。
只要确定了子帧n所使用的HARQprocessnumber,根据timing关系,也就知道后续子帧n+4、n+8、n+12、n+16所使用的HARQprocess。
TDD的情况类似,但是timing关系略有不同。
(注:
每个子帧只对应一个HARQprocess,空分复用的情况下是2个,每个对应一个TB。
)
2)TDD1~6
对TDDUL/DLconfiguration1~6而言,如果UE在子帧n收到了ULgrant(DCIformat0/4,对应新传或自适应重传)或PHICH(只收到NACK,对应非自适应重传),则UE会在n+k子帧发送对应的PUSCH。
其中k的值见36.213的Table8-2(见下图)。
(见36.213的8.0节)
Table8-2 k forTDDconfigurations0-6
TDDUL/DL
Configuration
subframenumber n
0
1
2
3
4
5
6
7
8
9
0
4
6
4
6
1
6
4
6
4
2
4
4
3
4
4
4
4
4
4
5
4
6
7
7
7
7
5
图4给出了TDDConfiguration 1和2下,ULgrant/PHICH与对应的PUSCH传输之间的timing关系。
以TDDConfiguration1为例,如果UE在子帧1收到了ULgrant(或PHICH),则UE会在子帧7发送PUSCH(或重传);如果UE在子帧9收到了ULgrant(或PHICH),则UE会在下一系统帧的子帧3发送PUSCH(或重传)。
图4:
TDD1/2中,ULgrant/PHICH与对应的PUSCH传输之间的timing关系
(对应36.213的Table8-2)
对TDDUL/DLconfiguration1-6而言,如果UE在子帧n收到了PHICH,则该PHICH对应UE在上行子帧n-k发送的PUSCH。
其中k的值见36.213的Table8.3-1(见下图)。
(见36.213的8.3节)
Table8.3-1 k forTDDconfigurations0-6
TDDUL/DL
Configuration
subframenumber i
0
1
2
3
4
5
6
7
8
9
0
7
4
7
4
1
4
6
4
6
2
6
6
3
6
6
6
4
6
6
5
6
6
6
4
7
4
6
图5给出了TDDConfiguration1和2下,PUSCH传输与对应的PHICH(ACK/NACK)之间的timing关系。
以TDDConfiguration1为例,如果UE在子帧2发送了PUSCH,则UE会在子帧6接收对应的PHICH;如果UE在子帧7发送了PUSCH,则UE会在下一系统帧的子帧1接收对应的PHICH。
图5:
TDD1/2中,PUSCH传输与对应的PHICH(ACK/NACK)之间的timing关系
(对应36.213的Table8.3-1)
图6举了一个例子:
TDD1下,假如UE在下行子帧1收到ULgrant,对照图4可知,UE会在上行子帧7发送PUSCH,进一步对照查图5可知,UE会在下行子帧1接收PHICH(和ULgrant)。
如果需要重传,对照图4可知,UE会在上行子帧7进行重传,如此反复!
这就是一个完整的HARQ处理流程。
图6:
举例
LTE:
上行HARQ(三)
(2013-03-2209:
47:
13)
转载▼
标签:
lte
harq
上行harq
it
分类:
LTE
3)TDD0
对TDDUL/DLconfiguration0而言,一个系统帧内的下行子帧数少于上行子帧数。
因此,一个下行子帧可能需要同时给2个上行子帧发送ULgrant,为了实现该功能,DCIformat0/4新增了一个2bit的字段:
ULindex(见36.212的5.3.3.1.1节和5.3.3.1.8节)。
与此同时,一个下行子帧可能需要同时反馈2个上行子帧的ACK/NACK信息,为了将不同上行子帧对应的PHICH区分开,又新增了
的概念(见36.213的9.1.2节)。
注意:
只有TDDUL/DLconfiguration0下的上行子帧4和9对应
;其它情况下(包括其它TDD配置和FDD),
。
对TDDUL/DLconfiguration0而言,如果UE在子帧n收到的ULgrant的MSB置为1,或在子帧0或5接收到的PHICH对应
(反馈的不是子帧4或9的ACK/NACK信息),则UE会在子帧n+k发送对应的PUSCH,其中k的值见36.213的Table8-2。
对TDDUL/DLconfiguration0而言,如果UE在子帧n收到的ULgrant的LSB置为1,或在子帧0或5接收到的PHICH对应
,或在子帧1或6接收到PHICH,则UE会在子帧n+7发送对应的PUSCH。
对TDDUL/DLconfiguration0而言,如果UE在子帧n收到的ULgrant的MSB和LSB均置为1,则UE会在子帧n+k和n+7都发送对应的PUSCH。
(见36.213的8.0节)
从图7中可以看出:
在TDD0中,1)任意一个下行子帧发送的ULgrant都可能对应2个上行子帧发送的PUSCH;2)某个上行子帧可能得到来自2个下行子帧的ULgrant。
例如:
如果在下行子帧0收到的ULgrant的LSB置为1,同时在下行子帧1收到的ULgrant的MSB置为1,则对应上行子帧7,会收到2个ULgrant!
关于1个上行子帧有2个ULgrant的情形该如何处理,我没有找到相关的介绍。
但我这里也有些疑惑:
2个ULgrant如果调度到同一块PRB资源怎么办?
或是2选一?
或是eNodeB在做上行调度时,保证对应一个上行子帧只会收到一个ULgrant?
图7:
TDD0中,ULgrant(PHICH)与对应的UL-SCH之间的timing关系
如图8所示,下行子帧0需要同时反馈上行子帧3(
)和4(
)的ACK/NACK信息;下行子帧5需要同时反馈上行子帧8(
)和9(对应
)的ACK/NACK信息。
如果UE在对应
的子帧n收到了PHICH,则该PHICH对应UE上行子帧n-k发送的PUSCH数据,其中k的值见36.213的Table8.3-1;如果UE在对应
的子帧n收到了PHICH,则该PHICH对应UE上行子帧n-6发送的PUSCH数据。
其中k的值见36.213的Table8.3-1。
(见36.213的8.3节)
图8:
TDD0中,PUSCH传输与对应的ACK/NACK之间的timing关系
(对应36.213的Table8.3-1)
【举例】
图9是一个FDD下,上行HARQ的例子。
TDD除了timing关系不同外,其它处理是一样的。
图不是很清晰,大家注意一下每个子帧对应的虚线。
该图来自[1]的FIGURE12.4,个人觉得子帧n+32的说明是有问题,此时应该是自适应重传,如果有不同意见,欢迎指正。
(和原书作者交流过,这里确实是自适应重传,作者原本的出发点是“adaptive=differentsetofresrouceblocks”,但实际上,“adaptive=differentsetofresrouceblocksorMCSorRV”。
原书的新一版本正在编写中,敬请期待。
作者原话:
Ijustupdatedthefigureforthenextrevisionofthebooktostickwiththedefinitionadaptive=scheduledby(E)PDCCH)
图9:
非自适应和自适应HARQ操作(FDD)
注:
R-10中新增了DCIformat4以支持上行空分复用,此时2个codeword对应的是不同的HARQprocess,处理方式与之前介绍的相同。
但在非自适应重传时,如果接收到的NACK数与最近接收到的PDCCH指示的TB数,有特殊处理,大家可以关注下36.213的8.0节。
因为对DCIformat4没有太深的了解,这里我就不做介绍了。
关于上行HARQ,希望大家看完这篇博文后可以得到下面这些问题的答案:
1)如何确定是重传还是新传?
2)什么时候会清空缓冲区?
3)如何确定HARQprocess?
4)如何确定冗余版本RV?
5)如何确定同步关系?
6)上行HARQ中的自适应和非自适应处理有何不同?
【参考资料】
[1] 《4GLTE/LTE-AdvancedforMobileBroadband》的6.3、6.4、8.2.2.3节、12章
[2] 《LTE-TheUMTSLongTermEvolution,2ndEdition》的10.3.2节
[3] TS36.211的6.9节
[4] TS36.212的5.3.3.1节
[5] TS36.213的8.0、8.3、8.6节
[6] TS36.300的第9章
[7] TS36.321的5.4.1和5.4.2节
[8] 《HARQinTD-LTE》bySekhar