概述
LTE系统里,RB资源的动态调度是在eNB侧实现的,这里的“RB资源”实际上是特指虚拟RB(Virtual RB)而不是物理RB(Physical RB)。VRB是MAC层在调度的时候使用的,属于逻辑上的概念,而PRB是物理层在实际映射RE资源的时候需要使用的,属于实际物理意义上的概念。VRB和PRB之间,存在着不同的映射关系:最简单的映射关系就是VRB的位置和PRB的位置是相同的,它们之间是一一对应的;另外一种复杂点的关系就是VRB和PRB并不是一一对应的,但是可以依赖某种特定的映射关系,通过VRB可以明确的推出PRB的位置。前一种一一对应的简单关系就是集中式的资源分配,而后面一种复杂点的映射关系,就是分布式的资源分配。
eNB侧在调度资源的时候,可以根据不同的场景使用不同的分配方式。比如当采用DCI2/DCI2A的时候,使用集中式的资源分配,而采用DCI1A的时候,既可以使用集中式的资源分配,也可以使用分布式的资源分配。下面就具体描述这两种分配方式。
下行VRB有两种资源映射方式:集中式(localized type)的VRB资源映射方式和分布式(distributed type)的VRB资源映射方式。无论是哪种VRB映射方式,所指的VRB都是指“RB对”(a pair of VRBs)。我们知道,一个子帧包括2个时隙,一个RB是由频域上的12个子载波以及时域上的一个时隙组成的(关于RB的组成结构请参考《LTE物理传输资源(3)-时频资源》),因此对于频域上的12个子载波,一个子帧就对应了2个RB,这两个RB就叫做一个"RB对"。在考虑VRB资源映射的时候,同个子帧内2个时隙的RB是放在一起考虑的,使用n_VRB来表示RB号的时候,是指一个VRB对,而不是特指某个时隙的VRB。也就是说,在描述下行资源映射方式的时候,虽然文字上说的是VRB与PRB的位置关系,实际上说的是VRB对与PRB对的位置关系。
1.集中式的资源映射(Localized type)
在集中式的资源映射方式中,VRB对和PRB对是一一对应的,即VRB的位置就是PRB的位置,RB资源块序号n_PRB=n_VRB,范围是0~(N_DL_RB-1)。下图就是5MHz带宽下,集中式分配VRB资源时,PRB和VRB的位置关系。
2.分布式的资源映射(Distributed type)
在分布式的资源映射方式中,VRB对和PRB对不是一一对应的,连续的VRB序号将映射到不连续的PRB序号上,并且一个子帧内的2个时隙也有着不同的映射关系(如下图1所示),通过这种方法来达到“分布式”的资源分配。无论是将连续的VRB对映射到不连续的PRB对上,还是分开每个PRB对,使一个PRB对的两个RB的资源传输带有一定的频率间隔(可以看成基于时隙(slot)的跳频),目的都是为了达到频率上的分集效应。
图1
上面的图1是下行带宽为5MHz的分布式资源分配过程示意图,这个图只是用来帮助理解分布式的过程,不代表实际PRB的映射位置就与上图画的一致。这张图简洁直观,可以很好的描述这个过程,下面从协议的角度具体说说这种映射关系,或者说如何从VRB对得到PRB对的实际映射位置。
3.获取GAP参数
在分布式的分配过程中,2个时隙中的PRB将映射到频域上的不同位置,从而实现基于时隙的跳频。上面图1中的Gap参数,就是用来表示一个RB对之间的频率偏移值,以RB个数为计量单位。不同的带宽,这个GAP值是不同的,一旦带宽确定下来,这个Gap值也就确定了。
从下面的Table 6.2.3.2-1中可以看到,当下行带宽是1.4MHz(N_DL_RB=6)、3MHz(N_DL_RB=15)、5MHz(N_DL_RB=25)时,只有一种Gap值可以选择,对应的频率偏移值N_gap1分别是:1.4MHz时N_gap1=3、3MHz时N_gap1=8、5MHz时N_gap1=12。上面图1中的Gap=12,符合5MHz带宽(N_DL_RB=25)的协议规定。
对于10MHz(N_DL_RB=50)、15MHz(N_DL_RB=75)、20MHz(N_DL_RB=100)这几种较大的带宽,协议规定了两种不同的Gap值,具体选择哪一种,由DCI通知到UE。如DCI1A格式,对于分布式VRB分配来说,有个1bit的字段(见下图中黄色高亮内容),就是用来表示当前Gap采用的是Gap1还是Gap2。
4. 可用于频率交织(interleaving)的VRB范围
并不是所有的VRB都可以用来进行交织的,如果用n_VRB来表示VRB的频率位置,那么可以用来交织的VRB的范围是0~(N_DL_VRB - 1)。只有该范围内的VRB才可以进行RB对的交织,才可以进行分布式的VRB资源分配。
如上图所示,如果n_VRB的范围是0~10,那么eNB进行分布式资源调度时,RB的id号只能分配到0~10这11个VRB。注意这里的参数N_DL_VRB不是下行带宽的RB个数N_DL_RB,不要混淆了。参数N_DL_VRB计算如下:
(A)如果采用GAP1,则 N_DL_VRB = N_DL_VRB_GAP1 = 2 × Min(N_gap1, N_DL_RB - N_gap1)。比如当前是5MHz带宽,N_gap1=12,N_DL_RB=25,则N_DL_VRB = 2 × Min(12,25-12) = 2 × 12 = 24。如果是10MHz带宽,N_gap1=27,N_DL_RB=50,则N_DL_VRB = 2 × Min(27,50-27) = 2 × 23 = 46。因此对于10MHz带宽来说,采用频率间隔GAP1时只有0~45这46个VRB对才可以进行RB的频率交织,才能进行分布式的RB分配。
(B)如果采用GAP2,则 N_DL_VRB = N_DL_VRB_GAP2 = floor(N_DL_RB / (2 × N_gap2)) × 2 × N_gap2。比如当前是10MHz带宽,N_gap2=9,N_DL_RB=50,则N_DL_VRB = floor(50 / 18)× 18 = 2 × 18 = 36。
5.获取交织矩阵(interleaving matrix)
在进行频率交织的过程中,需要用到交织矩阵(interleaving matrix)的概念,交织矩阵是一个列数固定等于4的矩阵,通过交织矩阵可以很方便的知道什么位置的VRB映射到什么位置的PRB。
协议规定,连续_N_DL_VRB个VRB可以组成一个交织单元(interleaving uint),每个交织单元可以用一个元素个数为_N_DL_VRB的交织矩阵来表示。参数_N_DL_VRB可以通过下面的方式得到:
(A)如果采用GAP1,则 _N_DL_VRB = N_DL_VRB。从这个公式中可以看到,所有可以用于分布式调度的VRB资源(即N_DL_VRB值)只能组成一个交织单元,形成一个交织矩阵。比如当前是5MHz带宽,N_DL_VRB=24,那么一个VRB交织单元由连续的24个VRB组成,即交织矩阵中有24个元素。
(B)如果采用GAP2,则 _N_DL_VRB = 2 × N_gap2。比如当前是10MHz带宽,N_gap2=9,那么一个VRB交织单元由连续的18个VRB组成,即交织矩阵中有18个元素。由于此时N_DL_VRB=36,即可以有36个VRB用于分布式资源分配,所以这种情况下,所有可用于分布式资源分配的VRB可以组成2个交织单元,生成2个交织矩阵。
如上图所示,每个交织单元的交织矩阵,是一个4列、N_row行的矩阵,N_row = ceil(_N_DL_VRB / (4×P))× P,P的取值见下表。如果当前是5MHz带宽,P=2,采用GAP1,_N_DL_VRB = N_DL_VRB = 24,那么N_row = ceil(24 / (4×2))× 2 = 6。
交织矩阵中的VRB,按照“按行写入”和“按列读出”的规则进行操作。按照这种规则,存在着组成一个交织单元的VRB个数不够填满一个交织矩阵的情况,因此协议规定第2列和第4列的最后(Null / 2)行需要插入Null个空值,插入的Null空值在读出的时候将会被忽略。其中,Nnull = 4 × N_row - _N_DL_VRB。如果当前是5MHz带宽,_N_DL_VRB = N_DL_VRB = 24,N_row = 6,那么Nnull = 4 × 6 - 24 = 0,表示不需要在第2列和第4列的最后插入空值,所有的VRB正好构成一个交织矩阵,如下图示意。
6.VRB向PRB的映射
有了交织矩阵,再根据下面3个步骤,就可以将VRB映射到PRB中。这3个步骤是:
(1)从交织矩阵中按列依次读取元素,遇到Nnull则跳过,取下一个非Nnull的元素,这样得到的就是偶数时隙PRB的参考位置;
(2)对偶数时隙的参考位置进行偏移,偏移量为(_N_DL_VRB / 2),得到奇数时隙PRB的参考位置;
(3)如果根据上面两个步骤得到的RB位置大于或等于(_N_DL_VRB / 2),则再次进行一次偏移,偏移量为(Ngap - _N_DL_VRB / 2),从而得到偶数时隙和奇数时隙的最终PRB映射位置。
经过上面3个步骤,可以知道VRB=3、4、5这三个VRB,经过分布式映射后,得到的PRB的位置分别是(偶数时隙,奇数时隙)=(18,6)、(1,13)、(7,19)。
上面的VRB向PRB的映射过程,也可以用数学公式进行严格的推导,推导过程如下。
(1)根据交织得到偶数时隙的参考位置
偶数时隙ns对应的PRB的参考位置 _n_PRB(ns),由下面的公式计算得到:
(2)对偶数时隙的位置进行(_N_DL_VRB / 2)的偏移,得到奇数时隙的参考位置
奇数时隙ns的位置 _n_PRB(ns) 由下面的公式计算得到:
(3)对前面两个步骤中得到的大于或等于(_N_DL_VRB / 2)的位置,再次偏移(Ngap - _N_DL_VRB / 2),得到最终的PRB位置。
对于所有的时隙ns,包括偶数时隙和奇数时隙,根据下面的公式进行偏移:
前文已经根据交织矩阵得到了PRB的映射位置,为了与之相互印证,下面仍然以5MHz带宽来举例说明数学公式的使用过程和计算结果:
(1)根据前文的相关描述过程,可以得到N_gap1 = 12,_N_DL_VRB = 24,N_row = 6,Nnull = 0。假定eNB给UE分配了VRB=3、4、5这三个连续的VRB,那么计算PRB位置的过程如下:
(A)虚拟资源对n_VRB=3,占用一个偶数时隙和一个奇数时隙。从上面的公式中可以看到,偶数时隙的PRB位置只是用来递归计算奇数时隙的PRB位置,在实际计算时并不需要知道具体的时隙号,使用偶数时隙0和使用时隙2、4、6等等,计算得到的PRB的映射结果是相同的,所以这里可以用时隙0表示偶数时隙,用时隙1表示奇数时隙。因此:
对于偶数时隙(ns=0),_n_PRB(0) = 6 × ((3 mod 24)mod 4)+ floor((3 mod 24)/ 4)+ 24 × floor(3 / 24)= 18。因为满足 18 >(24 / 2)的条件,因此物理资源位置n_PRB(0) = 18 + 12 - 24 / 2 = 18。
对于奇数时隙(ns=1),_n_PRB(1) = (_n_PRB(0) + 24 / 2)mod 24 + 24 × floor(3 / 24)= 6。因为满足 6 <(24 / 2)的条件,因此物理资源位置n_PRB(1) = 6, 不需要再次进行偏移。
(B)虚拟资源对n_VRB=4:
对于偶数时隙(ns=0),_n_PRB(0) = 6 × ((4 mod 24)mod 4)+ floor((4 mod 24)/ 4)+ 24 × floor(4 / 24)= 1。因为满足 1 <(24 / 2)的条件,因此物理资源位置n_PRB(0) = 1。
对于奇数时隙(ns=1),_n_PRB(1) = (_n_PRB(0) + 24 / 2)mod 24 + 24 × floor(4 / 24)= 13。因为满足 13 >(24 / 2)的条件,因此物理资源位置n_PRB(1) = 13 + 12 - 24 / 2 = 13。
(C)虚拟资源对n_VRB=5:
对于偶数时隙(ns=0),_n_PRB(0) = 6 × ((5 mod 24)mod 4)+ floor((5 mod 24)/ 4)+ 24 × floor(5 / 24)= 7。因为满足 7 <(24 / 2)的条件,因此物理资源位置n_PRB(0) = 7。
对于奇数时隙(ns=1),_n_PRB(1) = (_n_PRB(0) + 24 / 2)mod 24 + 24 × floor(5 / 24)= 19。因为满足 19 >(24 / 2)的条件,因此物理资源位置n_PRB(1) = 19 + 12 - 24 / 2 = 19。
eNB分配资源的时候,是选择集中式的还是分布式的,是由eNB侧决定并通过DCI通知到UE侧的。不同的设备厂家,算法不同,调度的结果会有差别。对于DCI1A格式,其中的字段“Localized/Distributed VRB assignment flag”就是用来表示当前采用的VRB分配方式(采用Type2分配方式),具体请参考博文《LTE下行物理层传输机制(5)-DCI格式的选择和DCI1A》。DC2、DC2A格式的VRB只能选择集中式分配(采用Type0或Type1分配方式)。
参考文献:
(1)3GPP TS 36.211 V9.1.0 (2010-03) Physical Channels and Modulation
(2)3GPP TS 36.212 V9.4.0 (2011-09) Multiplexing and channel coding
最后
以上就是重要小猫咪为你收集整理的LTE下行物理层传输机制(9)-集中式和分布式资源映射的全部内容,希望文章能够帮你解决LTE下行物理层传输机制(9)-集中式和分布式资源映射所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复