待解决问题
UE上报ACK/NACK机制总结及疑问
离问题结束还有0天0小时 |
提问者:kshparadise
|
提问时间:2013-3-28 14:01
对于协议36213 7.3小节提出的UE上报ACK/NACK的机制,看了两天才明白个大概,在这里讲讲,其中还有一些模糊和理解错误的地方,还请大家提出来,一起讨论讨论。
UE在接收到基站下发的帧时(动态调度和半静态调度),会先去检测PDCCH中的DAI值,DAI值分为两种,一是子帧n-k'中的format DCI 0的DAI,即V_ul_dai,表示n-k个子帧中PDSCH的子帧数量与用来指示半静态调度释放PDSCH资源的PDCCH子帧数量总和。二是n-k个子帧中format DCI 1/1A/1B/1D/2/2A/2B中的DAI,即V_dl_dai,是n-k个子帧中DAI累加起来,表示n-k个子帧中动态调度中指示PDSCH的PDCCH子帧数量和用来指示半静态调度释放PDSCH资源的PDCCH子帧数量总和。其中k和k'的取值见协议36123表10.1-1和7.3-Y。
看看V_ul_dai和V_dl_dai的区别,在基站下行调度中,动态调度和半静态调度可以同时存在,动态调度,一个码字的PDSCH对应一个PDCCH来指示控制信息及时频资源。而半静态调度只需在初始时用PDCCH指示,此后PDSCH周期性的出现在初始时指示的时频资源上,且不需要额外再用PDCCH来指示。因此可以得出V_ul_dai减V_dl_dai等于半静态调度的PDSCH所占用的子帧数量,即N_sps,只取0或1。
在检测V_ul_dai和V_dl_dai的同时,UE也会去检测 n-k个子帧中实际接收到的动态调度中指示PDSCH的PDCCH子帧数量,即U_dai,和用来指示半静态调度释放PDSCH资源的PDCCH子帧数量N_sps。
根据协议36213 7.3节,对于多个ACK/NACK捆绑的上报和当第n个子帧中k的个数为1时的空间复用ACK/NACK的上报,协议中用两个公式来检测帧是否丢失,即V_dl_dai=(U_dai-1)mod4+1和V_ul_dai=(U_dai+N_sps-1)mod4+1,这两个公式有两个地方一直困扰着我,一是为什么一个有加N_sps,一个有没;二是为什么要减1后再mod4+1;
我是这样理解的,对于第一个困惑,上面已经分析了存在这种关系:V_ul_dai-V_dl_dai=N_sps;对于第二个困惑,认真去看表
7.3-X,表中第二列为V_ul_dai或V_dl_dai的值,第三列为U_dai+N_sps的值,为了满足关系,所以采用以上两个公式,特别是当V_ul_dai和V_dl_dai的值等4时,就需要先在括号里减1,取模后再加1才能满足。至于N_bundled,用在ACK/NACK的编码中,我想只是为了让基站知道,ACK/NACK是以什么方式传输的。
对于空间复用且第n个子帧个数大于1时,每个码字分别用1个bit来表示ACK/NACK,具体映射见10.1小节的M=2,M=3,M=4的三个表格。
这里尚有个疑问,
对于V_dl_dai=(U_dai-1)mod4+1和V_ul_dai=(U_dai+N_sps-1)mod4+1这两个公式,本质是一样的,为何在协议中,ACK/NACK通过PUCCH上报,选择第1个公式来检测有没有丢帧,若是通过PUSCH上报,则选择第二个公式。为什么这样选择,依据是什么?
我来解答一下吧!
假如我们把某一TDD UL-DL configuration下的某一上行子帧回复的ACK/NACK对应的所有下行子帧称为一个“HARQ反馈窗口”,对应36.213的Table 10.1.3.1-1。
比较36.213的Table 7.3-Y和36.213的Table 10.1.3.1-1可以看出,DCI format 0/4发送时所在的下行子帧(对应36.213的Table 7.3-Y)一定对应36.213的Table 10.1.3.1-1中的HARQ反馈窗口里的最后一个下行子帧(或比该下行子帧还要靠后)。因此,发送DCI format 0/4时,就已经知道了HARQ反馈窗口里有多少个子帧发送了PDSCH和指示SPS释放的PDCCH。此时使用的是PUSCH反馈ACK/NACK。
V_UL_DAI反映了[color=Red]eNodeB[/color]在HARQ反馈窗口内有多少个子帧发送了[color=Red]PDSCH[/color]和指示下行SPS释放的PDCCH,这真实的反映了有多少个子帧需要反馈ACK/NACK。U_DAI +N_SPS反映了[color=Red]UE[/color]在HARQ反馈窗口内实际在多少个子帧接收到了PDSCH和指示下行SPS释放的PDCCH。如果eNodeB发的数目与UE接收的数目不相等,当然丢包。这里是eNodeB发送的PDSCH数跟UE接收到的PDSCH数进行比较。
但当UE在PUCCH上回复ACK/NACK时,说明UE并没有接收到DCI format 0/4,也就不知道V_UL_DAI。V_DL_DAI表示UE在HARQ反馈窗口内最后一个接收到下行DCI(DCI format 1/1A/1B/1D/2/2A/2B/2C)的子帧中的DAI值,它反映的是HARQ反馈窗口内发送了多少个[color=Red]PDCCH[/color](注意:与V_UL_DAI不同,这里不包含SPS调度中没有PDCCH的PDSCH)。所以,这里只能使用eNodeB发送的下行DCI数跟UE接收到的下行PDCCH数(U_DAI 表示的含义)进行比较。个人觉得,这种情况下,无法检测出eNodeB在HARQ反馈窗口内的最后发送的下行DCI没有被UE检测到的场景。
假如我们把某一TDD UL-DL configuration下的某一上行子帧回复的ACK/NACK对应的所有下行子帧称为一个“HARQ反馈窗口”,对应36.213的Table 10.1.3.1-1。
比较36.213的Table 7.3-Y和36.213的Table 10.1.3.1-1可以看出,DCI format 0/4发送时所在的下行子帧(对应36.213的Table 7.3-Y)一定对应36.213的Table 10.1.3.1-1中的HARQ反馈窗口里的最后一个下行子帧(或比该下行子帧还要靠后)。因此,发送DCI format 0/4时,就已经知道了HARQ反馈窗口里有多少个子帧发送了PDSCH和指示SPS释放的PDCCH。此时使用的是PUSCH反馈ACK/NACK。
V_UL_DAI反映了[color=Red]eNodeB[/color]在HARQ反馈窗口内有多少个子帧发送了[color=Red]PDSCH[/color]和指示下行SPS释放的PDCCH,这真实的反映了有多少个子帧需要反馈ACK/NACK。U_DAI +N_SPS反映了[color=Red]UE[/color]在HARQ反馈窗口内实际在多少个子帧接收到了PDSCH和指示下行SPS释放的PDCCH。如果eNodeB发的数目与UE接收的数目不相等,当然丢包。这里是eNodeB发送的PDSCH数跟UE接收到的PDSCH数进行比较。
但当UE在PUCCH上回复ACK/NACK时,说明UE并没有接收到DCI format 0/4,也就不知道V_UL_DAI。V_DL_DAI表示UE在HARQ反馈窗口内最后一个接收到下行DCI(DCI format 1/1A/1B/1D/2/2A/2B/2C)的子帧中的DAI值,它反映的是HARQ反馈窗口内发送了多少个[color=Red]PDCCH[/color](注意:与V_UL_DAI不同,这里不包含SPS调度中没有PDCCH的PDSCH)。所以,这里只能使用eNodeB发送的下行DCI数跟UE接收到的下行PDCCH数(U_DAI 表示的含义)进行比较。个人觉得,这种情况下,无法检测出eNodeB在HARQ反馈窗口内的最后发送的下行DCI没有被UE检测到的场景。
回答时间:2013-7-19 09:41
热点问题