物理层过程
加扰
假设要在单个码字q上传输的bit块为 b ( q ) ( 0 ) , . . . , b ( q ) ( M b i t ( q ) − 1 ) b^{(q)}(0),...,b^{(q)}(M_{bit}^{(q)} - 1) b(q)(0),...,b(q)(Mbit(q)−1) ,其中 M b i t ( q ) M_{bit}^{(q)} Mbit(q)是总比特数,加扰之后的bit块长度不变,用 b ~ ( q ) ( 0 ) , . . . , b ~ ( q ) ( M b i t ( q ) − 1 ) \tilde{b}^{(q)}(0),...,\tilde{b}^{(q)}(M_{bit}^{(q)} - 1) b~(q)(0),...,b~(q)(Mbit(q)−1) 表示。具体的加扰方式见38.211-6.3.1.1章节的伪代码。
对加扰序列产生影响的因素有下面几点:
-
占位符’x’、‘y’:当对1或2比特的信息做信道编码时,为了最大化携带有效信息的bit位之间的[欧氏距离],会根据不同的调制阶数在其中填充占位符,编码1比特信息查看表格38.212-Table 5.3.3.1-1,编码2比特信息查看表格38.212-Table 5.3.3.2-1,其中 c 2 = ( c 0 + c 1 ) m o d 2 c_2 = (c_0 + c_1) mod 2 c2=(c0+c1)mod2。
-
c ( q ) ( i ) c^{(q)}(i) c(q)(i),按照38.211-5.2.1章节生成, x 1 ( n ) x_1(n) x1(n)初始化为 x 1 ( 0 ) = 1 , x 1 ( n ) = 0 , n = 1 , 2 , . . . , 30 x_1(0) = 1, x_1(n) = 0,n=1,2,...,30 x1(0)=1,x1(n)=0,n=1,2,...,30, x 2 ( n ) x_2(n) x2(n)的初始化由 c i n i t c_{init} cinit决定,而 c i n i t = n R N T I ∗ 2 15 + n I D c_{init} = n_{RNTI} * 2^{15} + n_{ID} cinit=nRNTI∗215+nID
-
n I D n_{ID} nID:用于加扰序列生成器的初始化,取值范围是 n I D ∈ { 0 , 1 , . . . , 1023 } n_{ID} \in{\{0,1,...,1023\}} nID∈{0,1,...,1023}。
-
如果RNTI等于C-RNTI、MCS-C-RNTI或CS-RNTI,而且没有在公共搜索空间中使用DCI format 0_0来调度传输,那么如果配置了高层参数dataScramblingIdentityPUSCH, n I D n_{ID} nID就使用这个参数配置值。
-
其他情况,使用物理小区ID,即 n I D = N I D c e l l n_{ID} = N_{ID}^{cell} nID=NIDcell
-
-
n R N T I n_{RNTI} nRNTI:对应PUSCH传输的RNTI。
-
调制
单码字q上加扰后的比特块为 b ~ ( q ) ( 0 ) , . . . , b ~ ( q ) ( M b i t ( q ) − 1 ) \tilde{b}^{(q)}(0),...,\tilde{b}^{(q)}(M_{bit}^{(q)} - 1) b~(q)(0),...,b~(q)(Mbit(q)−1),要使用Table
6.3.1.2-1的调制方案进行调制,生成一个复数的调制符号块 d ( q ) ( 0 ) , . . . , d ( q ) ( M s y m b ( q ) − 1 ) d^{(q)}(0),...,d^{(q)}(M_{symb}^{(q)} - 1) d(q)(0),...,d(q)(Msymb(q)−1)
-
调制方式 π {\pi} π/2-BPSK
-
调制方式QPSK,b(2i)和b(2i+1)都映射到d(i)
-
调制方式16QAM,b(4i)、b(4i+1)、b(4i+2)、b(4i+3)都映射到d(i)
-
调制方式64QAM,b(6i)、b(6i+1)、b(6i+2)、b(6i+3)、b(6i+4)、b(6i+5)都映射到d(i)
-
调制方式256QAM,b(8i)、b(8i+1)、b(8i+2)、b(8i+3)、b(8i+4)、b(8i+5)、b(8i+6)、b(8i+7)都映射到d(i)
层映射
码字q上的复数调制符号 d ( q ) ( 0 ) , . . . , d ( q ) ( M s y m b ( q ) − 1 ) d^{(q)}(0),...,d^{(q)}(M_{symb}^{(q)} - 1) d(q)(0),...,d(q)(Msymb(q)−1)按照38.211-Table7.3.1.3-1映射到最高4层上。用 x ( i ) = [ x ( 0 ) ( i ) . . . x ( v − 1 ) ( i ) ] T , i = 0 , 1 , . . . , M s y m b l a y e r − 1 x(i) = [x^{(0)}(i) ... x^{(v-1)}(i)]^T,i = 0,1,...,M_{symb}^{layer} - 1 x(i)=[x(0)(i)...x(v−1)(i)]T,i=0,1,...,Msymblayer−1表示,其中 v v v是层编号, M s y m b l a y e r M_{symb}^{layer} Msymblayer是映射到每一层的调制符号数。
举个例子,单码字上的复数调制符号 d ( 0 ) , d ( 1 ) . . . d ( 95 ) d(0),d(1)...d(95) d(0),d(1)...d(95)要映射到4层上,那么在每一层映射的符号分别为
-
层0: d ( 0 ) , d ( 4 ) , d ( 8 ) , . . . , d ( 88 ) , d ( 92 ) d(0),d(4),d(8),...,d(88),d(92) d(0),d(4),d(8),...,d(88),d(92)
-
层1: d ( 1 ) , d ( 5 ) , d ( 9 ) , . . . , d ( 89 ) , d ( 93 ) d(1),d(5),d(9),...,d(89),d(93) d(1),d(5),d(9),...,d(89),d(93)
-
层2: d ( 2 ) , d ( 6 ) , d ( 10 ) , . . . , d ( 90 ) , d ( 94 ) d(2),d(6),d(10),...,d(90),d(94) d(2),d(6),d(10),...,d(90),d(94)
-
层3: d ( 3 ) , d ( 7 ) , d ( 11 ) , . . . , d ( 91 ) , d ( 95 ) d(3),d(7),d(11),...,d(91),d(95) d(3),d(7),d(11),...,d(91),d(95)
对应的 x ( 0 ) = [ d ( 0 ) , d ( 1 ) , d ( 2 ) , d ( 3 ) ] T x(0) = [d(0),d(1),d(2),d(3)]^T x(0)=[d(0),d(1),d(2),d(3)]T, x ( 1 ) = [ d ( 4 ) , d ( 5 ) , d ( 6 ) , d ( 7 ) ] T x(1) = [d(4),d(5),d(6),d(7)]^T x(1)=[d(4),d(5),d(6),d(7)]T, x ( 2 ) = [ d ( 8 ) , d ( 9 ) , d ( 10 ) , d ( 11 ) ] T x(2) = [d(8),d(9),d(10),d(11)]^T x(2)=[d(8),d(9),d(10),d(11)]T,…,
x ( 22 ) = [ d ( 88 ) , d ( 89 ) , d ( 90 ) , d ( 91 ) ] T x(22) = [d(88),d(89),d(90),d(91)]^T x(22)=[d(88),d(89),d(90),d(91)]T, x ( 23 ) = [ d ( 92 ) , d ( 93 ) , d ( 94 ) , d ( 95 ) ] T x(23) = [d(92),d(93),d(94),d(95)]^T x(23)=[d(92),d(93),d(94),d(95)]T
也就是说映射的结果是: [ x ( 0 ) ( 0 ) x ( 0 ) ( 1 ) , . . . , x ( 0 ) ( 23 ) x ( 1 ) ( 0 ) x ( 1 ) ( 1 ) , . . . , x ( 1 ) ( 23 ) x ( 2 ) ( 0 ) x ( 2 ) ( 1 ) , . . . , x ( 2 ) ( 23 ) x ( 3 ) ( 0 ) x ( 3 ) ( 1 ) , . . . , x ( 3 ) ( 23 ) ] \begin{bmatrix} x^{(0)}(0)\ x^{(0)}(1),...,x^{(0)}(23) \\ x^{(1)}(0)\ x^{(1)}(1),...,x^{(1)}(23) \\ x^{(2)}(0)\ x^{(2)}(1),...,x^{(2)}(23) \\ x^{(3)}(0)\ x^{(3)}(1),...,x^{(3)}(23) \\ \end{bmatrix} x(0)(0) x(0)(1),...,x(0)(23)x(1)(0) x(1)(1),...,x(1)(23)x(2)(0) x(2)(1),...,x(2)(23)x(3)(0) x(3)(1),...,x(3)(23) = [ d ( 0 ) d ( 4 ) d ( 8 ) , . . . , d ( 88 ) , d ( 92 ) d ( 1 ) d ( 5 ) d ( 9 ) , . . . , d ( 89 ) , d ( 93 ) d ( 2 ) d ( 6 ) d ( 10 ) , . . . , d ( 90 ) , d ( 94 ) d ( 3 ) d ( 7 ) d ( 11 ) , . . . , d ( 91 ) , d ( 95 ) ] \begin{bmatrix} d(0)\text{\ \ \ \ }d(4)\text{\ \ }d(8),...,d(88),d(92)\ \\ d(1)\text{\ \ \ }d(5)\text{\ \ }d(9),...,d(89),d(93) \\ d(2)\text{\ \ }d(6)\text{\ \ }d(10),...,d(90),d(94) \\ d(3)\text{\ \ }d(7)\text{\ \ }d(11),...,d(91),d(95) \\ \end{bmatrix} d(0) d(4) d(8),...,d(88),d(92) d(1) d(5) d(9),...,d(89),d(93)d(2) d(6) d(10),...,d(90),d(94)d(3) d(7) d(11),...,d(91),d(95) , M s y m b l a y e r M_{symb}^{layer} Msymblayer为24
转换预编码
转换预编码是将数据依次做串并转换,变成并行 M s c P U S C H M_{sc}^{PUSCH} MscPUSCH个数据,然后对这些并行的数据做DFT(离散傅里叶变换),也就是说这一步的主要作用是将时域上的离散数据变换成频域上的离散数据。
是否要做这一步操作,要看高层配置参数PUSCH-onfig ->transformPrecoder是否配置为enabled。
如果这个功能打开,那么 x ~ ( 0 ) ( i ) \tilde{x}^{(0)}(i) x~(0)(i)的值取决于PT-RS(相位跟踪参考信号)的配置,以一层传输为例:
-
没有用PT-RS,单独的层 λ = 0 \lambda = 0 λ=0上的复数符号块 x ( 0 ) , . . . , x 0 ( M s y m b l a y e r − 1 ) x^{(0)},...,x^{0}(M_{symb}^{layer}-1) x(0),...,x0(Msymblayer−1)应该分成 M s y m b l a y e r / M s c P U S C H M_{symb}^{layer}/M_{sc}^{PUSCH} Msymblayer/MscPUSCH个集合,每个集合对应一个OFDM符号,且 x ~ ( 0 ) ( i ) = x ( 0 ) ( i ) \tilde{x}^{(0)}(i) = x^{(0)}(i) x~(0)(i)=x(0)(i)。
按照上面的例子,假设 M s c P U S C H M_{sc}^{PUSCH} MscPUSCH=12,层0上的符号 x ( 0 ) ( 0 ) x ( 0 ) ( 1 ) , . . . , x ( 0 ) ( 23 ) x^{(0)}(0)\ x^{(0)}(1),...,x^{(0)}(23) x(0)(0) x(0)(1),...,x(0)(23)分成两
个集合: x ( 0 ) ( 0 ) , . . . , x ( 0 ) ( 11 ) x^{(0)}(0),...,\ x^{(0)}(11) x(0)(0),..., x(0)(11)和 x ( 0 ) ( 12 ) , . . . , x ( 0 ) ( 23 ) x^{(0)}(12),...,\ x^{(0)}(23) x(0)(12),..., x(0)(23),各对应一个OFDM符号。
-
使用了PT-RS,复数符号块 x ( 0 ) , . . . , x 0 ( M s y m b l a y e r − 1 ) x^{(0)},...,x^{0}(M_{symb}^{layer}-1) x(0),...,x0(Msymblayer−1)被分成多个集合,映射时要避开PT-RS占用的位置,所以集合 l l l包含的符号数为 M s c P U S C H − ε l N s a m p g r o u p N g r o u p P T R S M_{sc}^{PUSCH}-\varepsilon_lN_{samp}^{group}N_{group}^{PTRS} MscPUSCH−εlNsampgroupNgroupPTRS,在做转换预编码之前映射到符号 x ~ ( 0 ) ( l M s c P U S C H + i ′ ) \tilde{x}^{(0)}(lM_{sc}^{PUSCH}+i') x~(0)(lMscPUSCH+i′),其中 i ′ ∈ { 0 , 1 , . . . , M s c P U S C H − 1 } i'\in{\{0,1,...,M_{sc}^{PUSCH}-1\}} i′∈{0,1,...,MscPUSCH−1}且 i ′ ≠ m i'\neq m i′=m, m m m指在集合 l l l中的PT-RS样本索引,每个PT-RS组中的样本数量 N s a m p g r o u p N_{samp}^{group} Nsampgroup,PT-RS组的数量 N g r o u p P T − R S N_{group}^{PT-RS} NgroupPT−RS都在6.4.1.2.2.2中定义。当OFDM符号 l l l包含>=1个PT-RS样本时 ε l = 1 \varepsilon_l=1 εl=1,否则 ε l = 0 \varepsilon_l=0 εl=0。
基于上面的例子,假设 N s a m p g r o u p N_{samp}^{group} Nsampgroup取值2, N g r o u p P T − R S N_{group}^{PT-RS} NgroupPT−RS取值2,通过上表可得m=2,3,8,9,那么 x ( 0 ) ( 0 ) x ( 0 ) ( 1 ) , . . . , x ( 0 ) ( 23 ) x^{(0)}(0)\ x^{(0)}(1),...,x^{(0)}(23) x(0)(0) x(0)(1),...,x(0)(23)就会按下图来映射
最后做转换预编码,按照下面的公式生成一个复数符号块 y ( 0 ) ( 0 ) , . . . , y ( 0 ) ( M s y m b l a y e r − 1 ) y^{(0)}(0),...,y^{(0)}(M_{symb}^{layer}-1) y(0)(0),...,y(0)(Msymblayer−1)
预编码
向量块 [ y ( 0 ) ( i ) . . . y ( v − 1 ) ( i ) ] T , i = 0 , 1 , . . . , M s y m b l a y e r − 1 [y^{(0)}(i) ... y^{(v-1)}(i)]^T,i=0,1,...,M_{symb}^{layer}-1 [y(0)(i)...y(v−1)(i)]T,i=0,1,...,Msymblayer−1按如下方式预编码并映射到天线端口 { p 0 , . . . , p ρ − 1 } \{p_0,...,p_{\rho-1}\} {p0,...,pρ−1}上:
,其中 i = 0 , 1 , . . . , M s y m b a p − 1 , M s y m p a p = M s y m b l a y e r i=0,1,...,M_{symb}^{ap}-1,M_{symp}^{ap}=M_{symb}^{layer} i=0,1,...,Msymbap−1,Msympap=Msymblayer
-
如果是基于非码本的传输,则预编码矩阵W为单位矩阵。
-
如果是基于码本的传输:在单天线端口进行单层传输时W =1;否则通过TPMI索引查表38.211 Table 6.3.1.5-1到Table 6.3.1.5-7得到W,TPMI索引从DCI或者高层参数中获取。DCI 1_0中用字段‘Precoding information and number of layers’来指示TPMI,通过如下方式确定TPMI索引:
-
4天线端口,高层参数配置为txConfig = codebook,transformPrecoder = disabled,maxRank = 2/3/4,那么根据codebookSubset的不同配置值查表Table 7.3.1.1.2-2获取TMPI
-
4天线端口,高层参数配置为txConfig = codebook,transformPrecoder = enabled或者transformPrecoder = disabled且maxRank = 1,那么根据codebookSubset的不同配置值查表Table 7.3.1.1.2-3获取TMPI
-
2天线端口,高层参数配置为txConfig = codebook,transformPrecoder = disabled且maxRank = 2,那么根据codebookSubset的不同配置值查表Table 7.3.1.1.2-4获取TMPI
-
2天线端口,高层参数配置为txConfig = codebook,transformPrecoder = enabled或者transformPrecoder = disabled且maxRank = 1,那么根据codebookSubset的不同配置值查表Table 7.3.1.1.2-5获取TMPI
-
-
如果没有配置高层参数txConfig,W=1。
例子:对于使用四个天线端口的四层传输,从DCI中得到TPMI索引为0,查表Table 6.3.1.5-7可以得到W,从而计算出 z ( p ) ( 0 ) , . . . , z ( p ) ( M s y m b a p − 1 ) z^{(p)}(0),...,z^{(p)}(M_{symb}^{ap}-1) z(p)(0),...,z(p)(Msymbap−1)
1 2 [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ] \frac{1}{2}\begin{bmatrix} 1\ 0\ 0\ 0 \\ 0\ 1\ 0\ 0 \\ 0\ 0\ 1\ 0 \\ 0\ 0\ 0\ 1 \\ \end{bmatrix} 21 1 0 0 00 1 0 00 0 1 00 0 0 1 * [ y ( 0 ) ( 0 ) y ( 0 ) ( 1 ) . . . y ( 0 ) ( 23 ) y ( 1 ) ( 0 ) y ( 1 ) ( 1 ) . . . y ( 1 ) ( 23 ) y ( 2 ) ( 0 ) y ( 2 ) ( 1 ) . . . y ( 2 ) ( 23 ) y ( 3 ) ( 0 ) y ( 3 ) ( 1 ) . . . y ( 3 ) ( 23 ) ] \begin{bmatrix} y^{(0)}(0)\ y^{(0)}(1)\ ...y^{(0)}(23) \\ y^{(1)}(0)\ y^{(1)}(1)\ ...y^{(1)}(23) \\ y^{(2)}(0)\ y^{(2)}(1)\ ...y^{(2)}(23) \\ y^{(3)}(0)\ y^{(3)}(1)\ ...y^{(3)}(23) \\ \end{bmatrix} y(0)(0) y(0)(1) ...y(0)(23)y(1)(0) y(1)(1) ...y(1)(23)y(2)(0) y(2)(1) ...y(2)(23)y(3)(0) y(3)(1) ...y(3)(23) = [ y ( 0 ) ( 0 ) 2 y ( 0 ) ( 1 ) 2 ... y ( 0 ) ( 23 ) 2 y ( 1 ) ( 0 ) 2 y ( 1 ) ( 1 ) 2 ... y ( 1 ) ( 23 ) 2 y ( 2 ) ( 0 ) 2 y ( 2 ) ( 1 ) 2 ... y ( 2 ) ( 23 ) 2 y ( 3 ) ( 0 ) 2 y ( 3 ) ( 1 ) 2 ... y ( 3 ) ( 23 ) 2 ] \begin{bmatrix} \frac{y^{(0)}(0)}{2}\text{\ \ }\frac{y^{(0)}(1)}{2}\text{\ \ ...\ }\frac{y^{(0)}(23)}{2} \\ \frac{y^{(1)}(0)}{2}\text{\ \ }\frac{y^{(1)}(1)}{2}\text{\ \ ...\ }\frac{y^{(1)}(23)}{2} \\ \frac{y^{(2)}(0)}{2}\text{\ \ }\frac{y^{(2)}(1)}{2}\text{\ \ ...\ }\frac{y^{(2)}(23)}{2} \\ \frac{y^{(3)}(0)}{2}\text{\ \ }\frac{y^{(3)}(1)}{2}\text{\ \ ...\ }\frac{y^{(3)}(23)}{2} \\ \end{bmatrix} 2y(0)(0) 2y(0)(1) ... 2y(0)(23)2y(1)(0) 2y(1)(1) ... 2y(1)(23)2y(2)(0) 2y(2)(1) ... 2y(2)(23)2y(3)(0) 2y(3)(1) ... 2y(3)(23) = [ p ( 0 ) ( i ) p ( 1 ) ( i ) p ( 2 ) ( i ) p ( 3 ) ( i ) ] \begin{bmatrix} p^{(0)}(i) \\ p^{(1)}(i) \\ p^{(2)}(i) \\ p^{(3)}(i) \\ \end{bmatrix} p(0)(i)p(1)(i)p(2)(i)p(3)(i)
映射到虚拟RB
对于每一个用于传输PUSCH的天线端口,复数符号块 z ( p ) ( 0 ) , . . . , z ( p ) ( M s y m b a p − 1 ) z^{(p)}(0),...,z^{(p)}(M_{symb}^{ap}-1) z(p)(0),...,z(p)(Msymbap−1)应该从 z ( p ) ( 0 ) z^{(p)}(0) z(p)(0)开始按顺序映射到虚拟RB的RE ( k ′ , l ) p , μ (k',l)_{p,\mu} (k′,l)p,μ,这些RE要满足下面的标准:
-
都在分配给PUSCH传输的虚拟RB中
-
没有用于传输DM-RS、PT-RS,也没有用作其他共同调度的UE的DM-RS
映射的规则是先频域升序,然后时域升序。
从虚拟RB映射到物理RB
VRB要按照非交织方式映射到PRB。有两种映射情况:
-
Msg3在激活的上行BWP i 上,该BWP起始于 N B W P , i s t a r t N_{BWP,i}^{start} NBWP,istart,而且包含了初始上行BWP(起始于 N B W P , 0 s t a r t N_{BWP,0}^{start} NBWP,0start)的所有RB,并且和初始上行BWP有一样的subcarrier spacing和循环前缀,这种情况下VRB n n n映射到PRB n + N B W P , 0 s t a r t − N B W P , i s t a r t n+N_{BWP,0}^{start}-N_{BWP,i}^{start} n+NBWP,0start−NBWP,istart
-
其他情况,VRB n n n映射到PRB n n n