eNodeB还可以通过小区特定的配置参数hoppingMode来设置上行跳频所支持的跳频模式(hopping mode):
- “intra and inter-subframe hopping”:即在“同一个子帧内和不同子帧之间”同时进行跳频。同一个子帧内的跳频是在2个slot之间进行的,它提供了一个codeword内的频率分集;
- “inter-subframe hopping”:在子帧之间进行跳频,同一子帧的2个slot之间是不进行跳频的。这种模式为同一TB的不同HARQ重传之间提供了频率分集。
PUSCH跳频类型1:
跳频类型1使用DCI format 0中明确指定的跳变偏移(hopping offset)进行跳频。
图2:第1个slot中起始PRB的计算
S1(n)是用于一个子帧的第一个slot(S1)的PUSCH资源分配的最小 nPRB~S1是第一个slot中索引PRB(lowest index PRB),其值等于RBSTART。nPRB用于发送PUSCH的RB内(用于发送PUCCH的RB不计算在内)的最小
~S1?NPUSCH(图4的例子中,指出了n~S1?0索引PRB,其取值范围为0?nPRBRBPRB~S1?NPUSCH?1所对应的PRB)。 和nPRBRB
图3:第2个slot中起始PRB的计算
图3是第2个slot的起始PRB的计算方式。可以看出,第二个slot是在第一个slot的基础上进行大约1/2、+1/4、-1/4跳频带宽的偏移。
用于PUSCH传输的PRB集合由 LCRBs个连续的RB组成,在第一个slot
S1是从PRB索引nPRB(i)开始的,在第二个slot是从PRB索引nPRB(i)开始的。
UL 图4是在上行系统带宽NRB?50,6个RB pair用于PUCCH传输,且
hopping bit的取值为“10”的情况下,使用PUSCH跳频类型1的一个例子。
Type 1 PUSCH hopping(example) Field UL NRBValue = 50 = 6 HO?NRB?6 HO NRB~HO NRBNUL_hop y PUSCH NRB= 2(假设这里取值为“10”) ULUL??log2(NRB(NRB?1)/2)??NUL_hop?9 ~HOULUL?NRB?NRB?NRBmod2?50?6?(50mod2)?44 ??可分配的最大连续RB数 Hopping offset
UL?2y/NRB???512/50??10 PUSCH/2???44/2??22 ?NRB
图4:Type 1 intra-subframe PUSCH hopping
PUSCH跳频类型1的公式看似复杂,但其要表达的意思很简单:第一个slot不跳频。第二个slot在第一个slot的基础上,在“跳频带宽”范围
PUSCHPUSCHPUSCH内发生?NRB/2?、或?NRB/4?、或??NRB/4?的偏移。
前面介绍的是基于“intra-subframe”的处理。如果hoppingMode配置成 \(不同子帧之间),则第一个slot的RA应用于CURRENT_TX_NB为偶数的子帧,第二个slot的RA应用于CURRENT_TX_NB为奇数的子帧。
每个上行HARQ process都会维护一个状态变量CURRENT_TX_NB,该变量表示当前HARQ buffer中的某个MAC PDU已经发生的传输次数(对应同一个TB,包括初传和重传)。如果是新传,HARQ process会将该变量设置为0;每发生一次重传,该变量会加1。当达到最大重传次数时,该变量会清零。(见36.321的5.4.2.2节)
PUSCH跳频类型2:
跳频类型2是根据小区特定的跳频/镜像样式(hopping/mirroring pattern)进行基于subband的跳频。其使用的是一个预先定义的与小区PCI相关的伪随机数跳频样式。
对于PUSCH跳频类型2,跳频带宽(hopping bandwidth)会被划分为大小相等的多个subband,每个subband由多个连续的RB组成。 subband的个数Nsb是通过n-SB配置的。而每个subband包含的RB
sb数NRB通过如下方式计算:
NsbRB????????NULNRBULRBHOHO?NRB?NRBmod2Nsb?Nsb?1?Nsb?1
ULHOHOPUSCH ?NRB,即?NRB?NRBmod2?计算的是可用于PUSCH传输的RB数NRBPUSCH跳频带宽所包含的RB数,其计算结果跟之前介绍的NRB是一致的。
图5:PUSCH跳频中的subband划分的一个例子
UL 图5是subband划分的一个例子。整个上行系统带宽NRB?50,配置
了4个subband,每个subband包含11个RB,频域的两端共有6个RB用于传输PUCCH。