PUCCH支持38.211-Table 6.3.2.1-1列出的多种format,其中 N s y m b P U C C H N_{symb}^{PUCCH} NsymbPUCCH指PUCCH传输时占用的符号长度,如果PUCCH format 1、3、4配置了时隙内跳频,那么第一跳占据的符号数为正常情况下的一半,即 ⌊ N s y m b P U C C H / 2 ⌋ \lfloor N_{symb}^{PUCCH}/2\rfloor ⌊NsymbPUCCH/2⌋。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2b8fbe0ec2070741c9a16c11c6e5fcee.png)
PUCCH format 0
序列生成及资源复用
PUCCH format 0的序列直接按照下列算式生成
PUCCH format 0在频域上占用1个PRB, N s c R B N_{sc}^{RB} NscRB是指一个RB的子载波数,确定是12,也就是说序列的长度为12。
PUCCH format 0在时域的符号数取值范围是(1…2),由高层参数PUCCH-Resource->PUCCH-format 0->nrofSymbols决定。
如果传输1个符号,这个序列就是:
x
(
n
)
=
r
u
,
v
(
α
,
δ
)
(
n
)
x(n)=r_{u,v}^{(\alpha ,\delta)}(n)
x(n)=ru,v(α,δ)(n)
如果传输2个符号,生成的序列就是:
x
(
n
)
=
r
u
,
v
(
α
,
δ
)
(
n
)
x(n)=r_{u,v}^{(\alpha ,\delta)}(n)
x(n)=ru,v(α,δ)(n)
x
(
12
+
n
)
=
r
u
,
v
(
α
,
δ
)
(
n
)
x(12+n)=r_{u,v}^{(\alpha ,\delta)}(n)
x(12+n)=ru,v(α,δ)(n)
对于 r u , v ( α , δ ) ( n ) r_{u,v}^{(\alpha ,\delta)}(n) ru,v(α,δ)(n),从38.211-6.3.2.2.1Group and sequence hopping知道,当 N I D c e l l N_{ID}^{cell} NIDcell、pucch-GroupHopping、hoppingId这几个参数确定的情况下,在某个slot的基序列所在的序列组 u u u及组中的索引 v v v就确定了,而 δ = 0 \delta =0 δ=0是确定的,那么唯一的变量就是循环移位 α \alpha α了。
循环移位
α
\alpha
α的计算公式是这样的:
n s , f μ n_{s,f}^{\mu} ns,fμ指无线帧中的时隙号、 l l l指PUCCH传输内部OFDM符号的编号、 l ′ l^{'} l′指PUCCH传输的第一个OFDM符号在对应时隙中的索引,对于一个确定的PUCCH传输的时域位置,这几个值是确定的,变量就是 m 0 + m c s m_0+m_{cs} m0+mcs,就是说可以复用的PUCCH format 0由 m 0 + m c s m_0+m_{cs} m0+mcs的组合个数决定。
m 0 m_0 m0就是初始循环移位,由高层参数PUCCH-format 0->initialCyclicShift决定,这个值的取值范围是(0…11),那么通过初始循环移位可以得到12个序列。
m
c
s
m_{cs}
mcs是在初始循环移位得到的序列基础上再次进行循环移位,PUCCH format 0传输的UCI信息就是通过来
m
c
s
m_{cs}
mcs表达的。
举几个例子:
1)比如,传输1比特HARQ-ACK信息,从38.213-Table9.2.3-3可以知道,
m
c
s
=
0
m_{cs}=0
mcs=0对应HARQ-ACK值0,
m
c
s
=
6
m_{cs}=6
mcs=6对应HARQ-ACK值1,那么可以取的值就变成了6个,可以复用的PUCCH format 0资源就只有6个。
2)比如,传输2比特HARQ-ACK信息,要用的
m
c
s
m_{cs}
mcs值如Table9.2.3-4所示是0、3、6、9,那么可以复用的PUCCH format 0资源就只有3个。
3)传输SR,
m
c
s
=
0
m_{cs}=0
mcs=0,那么可以复用的PUCCH format 0资源就有12个。
4)传输1比特的HARQ-ACK信息+SR信息,本次传输没有SR时,HARQ-ACK使用的
m
c
s
m_{cs}
mcs如Table9.2.3-3所示,本次传输包含SR时,HARQ-ACK使用的
m
c
s
m_{cs}
mcs如9.2.5-1所示。要在PUCCH format 0同时传输1比特HARQ-ACK信息+SR信息,需要4个
m
c
s
m_{cs}
mcs,那么可以复用的PUCCH format 0资源就是3个。
5)传输2比特HARQ-ACK信息+SR信息,本次传输没有SR时,HARQ-ACK使用的
m
c
s
m_{cs}
mcs如Table9.2.3-4所示,本次传输包含SR时,HARQ-ACK使用的
m
c
s
m_{cs}
mcs如9.2.5-2所示,即要在PUCCH format 0同时传输2比特HARQ-ACK信息+SR信息,需要8个
m
c
s
m_{cs}
mcs,那么可以复用的PUCCH format 0资源就只有1个。
物理资源映射
序列从x(0)开始映射,先按照子载波升序、然后按照符号升序。以nrofSymbols配置为2为例,最终映射结果如下:
PUCCH format 1
序列生成及资源复用
PUCCH format 1的序列生成过程如下图所示
首先通过BPSK或QPSK,将1或2比特的原始信息调制为1比特的信息d(0)。
y(n)占满一个PRB,对于在确定的时域位置传输的PUCCH, r u , v ( α , δ ) ( n ) r_{u,v}^{(\alpha ,\delta)}(n) ru,v(α,δ)(n)对应的基序列是确定的,循环移位 α \alpha α决定了可以使用的序列个数,而 α \alpha α由传输PUCCH的时隙、符号、 m 0 m_0 m0、 m c s m_{cs} mcs决定。
m 0 m_0 m0就是高层参数PUCCH-Resource-indicator->PUCCH-format 1->initialCyclicShift,取值范围(0…11)。38.211-6.3.2.2.2中说了,除PUCCH format 0外,其他PUCCH format的 m c s m_{cs} mcs都取值为0,那么 m 0 + m c s m_0+m_{cs} m0+mcs生成的循环移位变量 α \alpha α就有12个。
再对y(n)进行时域上的扩展,
m
′
m^{'}
m′表示当前传输处在slot内跳频的第几跳,如果没有配置高层参数PUCCH-Resource->intraSlotFrequencyHopping,则认为一直处在第0跳(
m
′
=
0
m^{'}=0
m′=0),如果配置了这个参数,那么跳频前处在第0跳(
m
′
=
0
m^{'}=0
m′=0),跳频后处在第1跳(
m
′
=
1
m^{'}=1
m′=1)。通过查表Table6.3.2.4.1-1可知,时域正交序列
w
i
(
m
)
w_i(m)
wi(m)的长度m(
m
=
0
,
1
,
.
.
.
,
N
S
F
,
m
′
P
U
C
C
H
,
1
−
1
m=0,1,...,N_{SF,m^{'}}^{PUCCH,1}-1
m=0,1,...,NSF,m′PUCCH,1−1),可以看到取值与PUCCH传输使用的符号数(高层参数nrofSymbols)和
m
′
m^{'}
m′有关。
对于时域正交序列
w
i
(
m
)
w_i(m)
wi(m),Table6.3.4.1.2-1提供了针对不同长度可使用的序列,具体选择哪个,由高层参数PUCCH-format 1->timeDomainOCC决定。
从上面的分析可以知道,在生成最终序列
z
(
0
)
,
.
.
.
,
z
(
m
′
N
s
c
R
B
N
S
F
,
0
P
U
C
C
H
,
1
+
m
N
s
c
R
B
+
n
)
z(0),...,z(m_{'}N_{sc}^{RB}N_{SF,0}^{PUCCH,1}+mN_{sc}^{RB}+n)
z(0),...,z(m′NscRBNSF,0PUCCH,1+mNscRB+n)的过程中,使用的Low-PARA序列
r
u
,
v
(
α
,
δ
)
(
n
)
r_{u,v}^{(\alpha ,\delta)}(n)
ru,v(α,δ)(n)有12个,使用的时域正交序列数有
N
S
F
,
m
′
P
U
C
C
H
,
1
N_{SF,m^{'}}^{PUCCH,1}
NSF,m′PUCCH,1个,那么可复用的PUCCH format 1的个数就是
12
∗
N
S
F
,
m
′
P
U
C
C
H
,
1
12*N_{SF,m^{'}}^{PUCCH,1}
12∗NSF,m′PUCCH,1。
举个例子:
比如,nrofSymbols配置为4,不配置intraSlotFrequencyHopping,查表Table 6.3.2.4.1-2可知OCC序列个数为2,那么可复用的PUCCH format 1的个数就是12*2=24个。
物理资源映射
PUCCH format 1和DMRS是时分复用的方式映射到物理资源的,DMRS序列的生成方式和PUCCH format 1信息一样,也涉及到时域正交序列
w
i
(
m
)
w_i(m)
wi(m)和一个Low-PARA序列
r
u
,
v
(
α
,
δ
)
(
n
)
r_{u,v}^{(\alpha ,\delta)}(n)
ru,v(α,δ)(n),只是正交序列的长度从Table6.4.1.3.1.1-1获得
从DMRS序列映射到物理资源的公式(见38.211-6.4.1.3.1.2)可知,所有的偶数符号
l
=
0
,
2
,
4
,
.
.
.
l=0,2,4,...
l=0,2,4,...都用来映射DMRS,承载DMRS的符号长度就是nrofSymbols中偶数索引的个数,对应了Table 6.4.1.3.1.1-1中的序列长度,剩下的奇数索引符号来映射PUCCH format 1信息。
举几个例子:
1)比如,nrofSymbols配置为5,不配置intraSlotFrequencyHopping,那么0、2、4符号承载长度为3的DMRS序列,1、3符号承载PUCCH format 1序列。
timeDomainOCC配置为1,那么所有的偶数符号都用来映射DMRS,y(n)被扩展为
z
(
n
)
=
w
1
(
0
)
∗
y
(
n
)
z(n)=w_1(0)*y(n)
z(n)=w1(0)∗y(n)
z
(
12
+
n
)
=
w
1
(
1
)
∗
y
(
n
)
z(12+n)=w_1(1)*y(n)
z(12+n)=w1(1)∗y(n)
序列从
z
(
0
)
z(0)
z(0)开始映射,先按照子载波升序、然后按照符号升序,同一个
y
(
n
)
y(n)
y(n)扩展出的
z
(
n
)
z(n)
z(n)和
z
(
12
+
n
)
z(12+n)
z(12+n)就映射在相同子载波的不同符号上。
2)比如,nrofSymbols配置为14,配置intraSlotFrequencyHopping,那么UCI信息和DMRS各占7个符号,因为第一跳占据的符号数为
⌊
N
s
y
m
b
P
U
C
C
H
/
2
⌋
\lfloor N_{symb}^{PUCCH}/2\rfloor
⌊NsymbPUCCH/2⌋,所以Table6.3.2.4.1-1中
m
′
=
0
m^{'}=0
m′=0时序列长度为3,
m
′
=
1
m^{'}=1
m′=1时序列长度为4。跳频前的PRB由PUCCH-Resource->startingPRB决定,跳频后的PRB由secondHopPRB决定。
PUCCH format 2
序列生成
PUCCH format 2不支持多个UE复用。
容量及物理资源映射
首先PUCCH format 2与DMRS是频分复用的方式映射到物理资源,从DMRS映射到物理资源的公式(见38.211-6.4.1.3.2.2)可知,DMRS占用的子载波索引是固定的 k = 3 m + 1 k=3m+1 k=3m+1,即1、4、7、10,就是说一个PRB中可用于PUCCH format 2的RE剩下8个,UCI信息对应序列从 d ( 0 ) d(0) d(0)开始,先子载波升序再符号升序进行映射。
比如配置了2个符号、1个PRB的资源应该是这样映射的:
PUCCH format 2可用的RE数由三个元素决定:DMRS、符号数nrofSymbols、PRB数nrofPRBs。DMRS的占用确定了,然后再根据不同的nrofSymbols配置和nrofPRBs配置,就可以计算出PUCCH format 2资源可用的RE数,从而得到可以传输的比特数。
举几个例子:
1)比如,nrofSymbols配置为1,nrofPRBs配置为1,就是PUCCH format 2可用的最小的RE数:8*1*1=8,从序列生成可知使用的调制方式为QPSK,那么可传输的最小比特数就是8*2=16。
2)比如,nrofSymbols配置为2,nrofPRBs配置为16,就是PUCCH format 2可用的最大的RE数:8*2*16=256,使用QPSK调制可传输的最大比特数就是256*2=512。
PUCCH format 3/4
序列生成及资源复用
PUCCH format 3不支持多个UE复用。
PUCCH format 4支持的复用UE数由做频域扩展时的可用序列数 N S F P U C C H , 4 N_{SF}^{PUCCH,4} NSFPUCCH,4决定,这个值由高层参数PUCCH-format 4->occ-Length决定,取值为{n2,n4},就是说可复用的UE数是2个或4个。
容量及物理资源映射
PUCCH format 3可用的PRB数由高层参数PUCCH-format 3->nrofPRBs配置,取值范围是(1…16),但根据38.211-6.3.2.6.3中的定义可以知道,用于PUCCH format 3的PRB数必须满足
2
α
2
∗
3
α
3
∗
5
α
5
2^{\alpha _2}*3^{\alpha _3}*5^{\alpha _5}
2α2∗3α3∗5α5,那么PRB取值应该有这些(1,2,3,4,5,6,8,9,10,12,15,16)。
PUCCH format 3的DMRS的序列长度是 M s c P U C C H , 3 M_{sc}^{PUCCH,3} MscPUCCH,3,频域上会占满nrofPRBs配置的子载波,时域位置要查38.211-Table 6.4.1.3.3.2-1,可以看到DMRS的时域位置由nrofSymbols、additionalDMRS、intraSlotFrequencyHopping这几个高层参数共同决定。除此之外的RE就用于映射PUCCH format 3信息生成的序列,从 z ( 0 ) z(0) z(0)开始先子载波升序再符号升序进行映射。
举几个例子:
1)比如,nrofPRBs配置为1,nrofSymbols配置为4,intraSlotFrequencyHopping配置为enabled,additionalDMRS配置为true。
查表可知,DMRS占据0、2两个符号,用于PUCCH format 3的符号就是1、3,这个配置下用于传输UCI信息的RE数为12*2=24。再考虑到调度方式,QPSK可以传输的比特数为24*2=48,
π
\pi
π/2-BPSK可以传输的比特数为24*1=24,这是PUCCH format 3可传输的最少比特数。
2)比如,nrofPRBs配置为16,nrofSymbols配置为14,不配置intraSlotFrequencyHopping,不配置additionalDMRS。
查表可知,DMRS会占据3、10两个符号,用于PUCCH format 3的符号是12个,这个配置下用于传输UCI的RE数为16*12*12=2304。再考虑调度方式,
π
\pi
π/2-BPSK可以传输2304*1=2304bit,QPSK可以传输2304*2=4608bit,这是PUCCH format 3可以传输的最大比特数。
PUCCH format 4的DMRS的序列长度是
M
s
c
P
U
C
C
H
,
4
M_{sc}^{PUCCH,4}
MscPUCCH,4,频域上会占满1个PRB,时域位置要查38.211-Table 6.4.1.3.3.2-1,除此之外的RE用于承载UCI信息生成的序列,这个RE数决定了可承载的序列长度。
举几个例子:
1)比如,nrofSymbols配置为4,intraSlotFrequencyHopping配置为enabled,additionalDMRS配置为true,occ-Length配置为4,即
N
S
F
P
U
C
C
H
,
4
=
4
N_{SF}^{PUCCH,4}=4
NSFPUCCH,4=4。
查表可知,DMRS会占据符号0、2,用于PUCCH format 4的符号就是1、3,这个配置下用于传输UCI的RE数是12*2=24,也就是可以承载的序列长度
N
S
F
P
U
C
C
H
,
4
M
s
y
m
b
=
24
N_{SF}^{PUCCH,4}M_{symb}=24
NSFPUCCH,4Msymb=24,从序列生成过程可推算出可传输的比特数为:
M
b
i
t
=
M
s
y
m
b
∗
2
=
(
24
/
N
S
F
P
U
C
C
H
,
4
)
∗
2
=
12
M_{bit}=M_{symb}*2=(24/N_{SF}^{PUCCH,4})*2=12
Mbit=Msymb∗2=(24/NSFPUCCH,4)∗2=12,QPSK调制
M
b
i
t
=
M
s
y
m
b
∗
1
=
(
24
/
N
S
F
P
U
C
C
H
,
4
)
∗
1
=
6
M_{bit}=M_{symb}*1=(24/N_{SF}^{PUCCH,4})*1=6
Mbit=Msymb∗1=(24/NSFPUCCH,4)∗1=6,
π
\pi
π/2-BPSK调制
2)比如,nrofSymbols配置为14,不配置intraSlotFrequencyHopping,不配置additionalDMRS,occ-Length配置为2,即
N
S
F
P
U
C
C
H
,
4
=
2
N_{SF}^{PUCCH,4}=2
NSFPUCCH,4=2。
查表可知,DMRS占据符号3、10,剩下的12个符号用于PUCCH format 4,这个配置下可用的RE数是12*12=144,即可承载的序列长度是
N
S
F
P
U
C
C
H
,
4
M
s
y
m
b
=
144
N_{SF}^{PUCCH,4}M_{symb}=144
NSFPUCCH,4Msymb=144,推算出可传输的比特数是:
M
b
i
t
=
M
s
y
m
b
∗
2
=
(
144
/
N
S
F
P
U
C
C
H
,
4
)
∗
2
=
144
M_{bit}=M_{symb}*2=(144/N_{SF}^{PUCCH,4})*2=144
Mbit=Msymb∗2=(144/NSFPUCCH,4)∗2=144,QPSK调制
M
b
i
t
=
M
s
y
m
b
∗
1
=
(
144
/
N
S
F
P
U
C
C
H
,
4
)
∗
1
=
72
M_{bit}=M_{symb}*1=(144/N_{SF}^{PUCCH,4})*1=72
Mbit=Msymb∗1=(144/NSFPUCCH,4)∗1=72,
π
\pi
π/2-BPSK调制