概述
帖子微信更新会稍微快,可以关注同名modem协议笔记
PDCCH 是非常重要的信道,基站要通过PDCCH向UE发送DCI,来指示UE进行相应的 UL DL operation 。如果DCI指示的是PDSCH信息,UE要根据DL DCI在PDSCH 上接收下行数据;如果DCI指示的是PUSCH信息,同样的UE要根据UL DCI 指示资源的资源在PUSCH 发送上行数据。
38.212 R16版本列出的DCI format如下
NR由于载波带宽太大,引入了BWP的概念,根据不同的业务可以分配不同大小的BWP。在BWP 的概念上又引入了CORESET 和SearchSpace的概念,用于确定一块具体的时频域资源,接收不同的数据。在NR 中 ,网络端会在BWP 中配置 多个CORESET 及Searchspace,然后通过一个CORESET 和一个SearchSpace配对的方式确定一块时频资源用于不同的用途,例如 可以用一对CORESET SearchSpace 确定的时频域资源去检查DCI-Format0_0/1_0,然后用另一对CORESET和SearchSpace 确定的时频域资源去检查DCI-Format0_1/1_1。
具体的说CORESET 描述的是频域资源分布,Searchspace描述的是时域资源分布,两者配对 就可以确定具体的时频域资源。
例如上面的Searchspace id 2和CORESET 0 配对主要用于DCI format 0_0/1_0的检测
这个Searchspace id 5和CORESET 1 配对主要用于DCI format 0_1/1_1的检测。
具体CORESET 和Searchspace是怎么描述时频域资源的?。
首先看CORESET部分。
NR中,引入了CORESET(control resource set)概念,对应PDCCH物理资源配置,CORESET 对应的主要是频域资源。
CORESET 在频域对应的是一组PRBs,最小粒度为6RB;时域长度为1-3个OFDM符号,且在时隙中开始位置可灵活配置;具体的说CORESET 又有REGs(Resource Element Groups)和CCEs(Control Channel Elements)的概念,下面逐步介绍。
这里先提下REG index 的编号顺序,要遵循先时域后频域升序方式,例如下图的编号方式。
对于CORESET 的个数,协议中也有规定。每个小区最多配置12个CORESET(0~11),服务小区配置给UE 的每个DL BWP,CORESET 不能超过4个;CORESET index 只能是从1~11,index 0已经被CORESET0占用,所以加上CORESET 0 ,最多只能12个CORESET;CORESET 0相对特殊,为Type 0 CSS 专用,用于RMSI (SIB1),其中MIB 中pdcch-ConfigSIB1 高四位 代表controlResourceSetZero,高四位索引查38.213table 13-1~13-10,可获得CORESET 0的复用样式、频域资源占用符号数量、RB数量和RB偏移;低四位 代表searchSpaceZero,使用低4位索引查38.213 table 13-11到13-15,可获得CORESET 0的SFN、时隙索引和起始符号等。
PDCCH 由多个CCE 组成,而CCE 有对应的aggregation levels(1,2,4,8,16),简单的说Aggregation level 是16 就代表 16个CCE 组成一个Aggregation level,在进行PDCCH 盲检时,会以Aggregation Level 的方式配置候选集个数,具体参考另一篇帖子PDCCH盲检。
CORESET参数定义
controlResourceSetId : 配置 1~11 CORESET id,在一个服务小区内所有BWP 中唯一 ,CORESET 0固定用于RMSI 的searchSpace 0的资源。
frequencyDomainResources:CORESET频域资源,45bits,每个bit表示6RBs,从PRB0开始。最高位bit表示配置的BWP中最低频率,index从下往上升序。属于CORESET 的bit位要置1。
Duration 是CORESET时域连续符号数,取值1-3
只有高层参数dmrs-TypeA-Position(MIB/ServingCellConfigCommon中) 配置为3 CORESET符号个数才能配置为3
pdcch-DMRS-ScramblingID: PDCCH DMRS是伪随机序列,因而需要赋初值,这里就是初始ID 配置,PDCCH DMRS后面再介绍。
举个例子说明下频域资源占用分布:
frequencyDomainResources '11111111 11111000 00000000 00000000 00000000 00000'B,
during 1,
从BWP 起始点开始,连续占用13个RB group,一共13*6=78个RB;时域上占用一个符号,则CORESET 占用的资源如下。
cce-REG-MappingType:CCE到REG的映射方式,交织或非交织
交织时配置参数:
reg-BundleSize:交织块大小(REG个数)[n2,n3 n6]
interleaveSize: 交织行个数 [n2,n3 n6]
shiftIndex:交织时的偏移索引,不配置时默认为PCID
precoderGranularity:PDCCH 在频域上的预编码粒度。sameAsREG-bundle表示一个REG Bundle内采用相同预编码, allContiguousRBs 表示CORESET频域上所有REG采用相同预编码。
tci-StatesPDCCH-ToAddList/tci-StatePDCCH-ToReleaseList :TCI 配置,即PDCCH的DMRS 和TCI Status中配置的下行RS(CSI-RS或SSB)之间的QCL关系
tci-PresentInDCI :DCI 中是否指示TCI索引
参数介绍完毕,下面介绍下比较复杂的cce-REG的mappingtype
CCE-REG 的交织
cce-REG-MappingType代表CCE到REG的映射方式,支持交织或非交织的方式
首先看交织时配置的参数:
reg-BundleSize:交织块大小(REG个数)[n2,n3 n6]
interleaveSize: 交织行个数 [n2,n3 n6]
shiftIndex:交织时的偏移索引,不配置时默认为PCID
RE是时频域上最小的资源单位,1个RE在时域上对应1个symbol,在频域上对应1个Subcarrier。
CORESET 中的RE 首先组成 REG(Resource Element Group),REG在频域上占用12个subcarrier,在时域上占用1个符号,故对应关系1 REG =12 RE,因而1个REG 在频域上对应的是1个RB,在时域对应的是1个OFDM符号,而1个CCE又包含6个REG,所以1个CCE=6*12=72个RE。再次提一下,CCE中REG 的编号原则是先时域后频域。
上图中的REG编号是连续的,但是实际中可能会有不连续的情况,因为CCE不直接映射到REG,而是通过REG Bundle间接映射,CCE和REG Bundle之间的映射可能会交织,这样就会打乱REG index。
下面介绍与交织相关的参数:
For a CORESET configured by the ControlResourceSet IE:
- is given by the higher-layer parameter frequencyDomainResources;
- is given by the higher-layer parameter duration, where is supported only if the higher-layer parameter dmrs-TypeA-Position equals 3;
- interleaved or non-interleaved mapping is given by the higher-layer parameter cce-REG-MappingType;
- L equals 6 for non-interleaved mapping and is given by the higher-layer parameter reg-BundleSize for interleaved mapping;
- R is given by the higher-layer parameter interleaverSize;
CORESET 包含的所有REG 数由N_CORESET_REG表示, 可由 frequencyDomainResources (这里每个bit 1代表6RB)和duration 决定。
例如下面的例子N_CORESET_REG =frequencyDomainResources(13×6)*duration(1)=78个REG
pdcch-Config setup :
{
controlResourceSetToAddModList
controlResourceSetId 1,
frequencyDomainResources '11111111 11111000 00000000 00000000 00000000 00000'B,//13 个RB group
duration 1, //代表一个 symbol
cce-REG-MappingType interleaved :
{
reg-BundleSize n2,
interleaverSize n3,
shiftIndex 240
},
L个REG 首先组成一个REG Bundle,通过再通过REG Bundle实现CCE 到REG 的映射。
以下的38.211 7.3.2 中的交织规则相关介绍。
非交织示例
non-interleaved 映射时L 固定为6 。交织函数就是f(j)=j
REG bundle i is defined as REGs{iL,iL+!,......,iL+L-1}
举例说明会比较容易,如下:
controlResourceSetId 1,
frequencyDomainResources '10000000 00000000 00000000 00000000 00000000 00000'B,//1 个RB group 对应6个RB
duration 3 //代表时域占用3 symbol
cce-REG-MappingType nonInterleaved
由上可知N_CORESET_REG = 6×3=18
N_CORESET_REG/L=18/6=3 则 i= 0,1,2 即只有3个REG Bundles
REG bundle i is defined as REGs{iL,iL+!,......,iL+L-1}
REG bundle 0 ={REG 0,REG 1,REG 2,REG 3,REG 4,REG 5}
REG bundle 1 ={REG 6,REG 7,REG 8,REG 9,REG 10,REG 11}
REG bundle 2 ={REG 12,REG 13,REG 14,REG 15,REG 16,REG 17}
CCE j =REG bundles{f(6j/L),f(6j/L+1),......,f(6j/L+6/L-1)}
CCE 0=REG bundles{0} ={REG 0,REG 1,REG 2,REG 3,REG 4,REG 5}
CCE 1=REG bundles{1} ={REG 6,REG 7,REG 8,REG 9,REG 10,REG 11}
CCE 2 =REG bundles{2}={REG 12,REG 13,REG 14,REG 15,REG 16,REG 17}
效果图如下,可见非交织的情况下,CCE对应REG的编号是相对连续的。
交织示例
交织函数
函数中的参数均来自配置CORESET 时的参数
PBCH CORESET 0 的交织规则是固定的,规则如下
举例说明
controlResourceSetId 1,
frequencyDomainResources '10000000 00000000 00000000 00000000 00000000 00000'B,//1 个RB group 对应6个RB
duration 2, //代表一个 symbol
cce-REG-MappingType interleaved
reg-BundleSize n2,
interleaverSize n2,
shiftIndex 1
由上可知L=R=2
N_CORESET_REG= 6×2=12
N_CORESET_REG/L=12/2=6, 则 i= 0,1,...... 5 ,一共6个REG bundles。
REG bundle i is defined as REGs{iL,iL+!,......,iL+L-1}
交织前
REG bundle 0 ={REG 0,REG 1}
REG bundle 1 ={REG 2,REG 3}
REG bundle 2 ={REG 4,REG 5}
REG bundle 3 ={REG 6,REG 7}
REG bundle 4 ={REG 8,REG 9}
REG bundle 5 ={REG 10,REG 11}
实际对应图
根据配置的参数确定具体的交织函数如下:
f(x)=(rC+c+nshift) mode(6)=(r3+c+1) mod 6
X=2c+r,X的值由c和r的取值共同确定
r=0,1
c=0,1,2
C=N_CORESET_REG/(L*R)=12/(2*2)=3
则X 的取值范围是 0(c=0 r=0) 1(c=0,r=1)
2(c=1 r=0) 3(c=1,r=1)
4(c=2 r=0) 5(c=2 r=1)
L=R=2
6/L-1=2 {f(6j/L),f(6j/L+1)...f(6j/L+2)} 就是每个CCE 对应3个REG bundles
f(0)=f(2c+r)=(3r+c+1)mod 6=(3*0+0+1) mod 6=1 (x=0=2c+r 对应的c=0 r=0)
f(1)=f(2c+r)=(3r+c+1)mod 6=(3*1+0+1) mod 6=4 (x=1=2c+r 对应的c=0 r=1)
f(2)=f(2c+r)=(3r+c+1)mod 6=(3*0+1+1) mod 6=2 (x=2=2c+r 对应的c=1 r=0)
f(3)=f(2c+r)=(3r+c+1)mod 6=(3*1+1+1) mod 6=5 (x=3=2c+r 对应的c=1 r=1)
f(4)=f(2c+r)=(3r+c+1)mod 6=(3*0+2+1) mod 6=3 (x=4=2c+r 对应的c=2 r=0)
f(0)=f(2c+r)=(3r+c+1)mod 6=(3*1+2+1) mod 6=0 (x=5=2c+r 对应的c=2 r=1)
CCE 0 =REG bundle{f(0),f(1),f(2)}=REG bundle{1,4,2}
CCE 1 =REG bundle{f(3),f(4),f(5)}=REG bundle{5,3,0}
交织后对应情况,每个CCE包含的REG编号是断续的,通过交织打乱了CCE和REG bundle的对应关系。
另外一种方式可以直观的得到最后的交织结果,就是先行进 后列出的方式,具体如下:
如果基站可以获得信道质量信息,采用非交织的方式将CCE映射到信道质量较好的REG,可以获得频域选择性增益。
交织的方式由于会打乱CCE和REG bundle的对应关系,则可以获得频率分集效增益。
微信公众号同步更新,欢迎关注!
公众号:modem协议笔记
最后
以上就是隐形日记本为你收集整理的NR PDCCH(一) CORESET的全部内容,希望文章能够帮你解决NR PDCCH(一) CORESET所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复