NR PDSCH(三)编码、调制及映射

目录

1、信道编码

1.0、编码方案

1.1、TB的CRC附着

1.2、LDPC基图选择

1.3、码块分段和码块的CRC附着

1.4、信道编码

1.5、速率匹配

1.6、码块级联

 2、调制和映射

2.1、加扰

2.2、调制

2.3、层映射

2.4、天线端口映射

2.5、映射到VRB

2.6、从VRB到PRB的映射

2.6.1、非交织映射

2.6.2、交织映射

 3、天线端口


3GPP TS 38.212 Chapter 5、Clause 7.2(R17)

3GPP TS 38.211 Clause 4.4.1、Clause 7.3.1(R16.7)


1、信道编码

1.0、编码方案

        通过无线传输链路来自/到达MAC层的数据和控制流被编/解码,来提供传输和控制服务。信道编码方案包含错误检测、错误纠正、速率匹配、交织以及将传输信道和控制信息映射到物理信道或从物理信道中提取出来。

        TS 38.212 Table4.2 规定了下行传输信道到对应的物理信道的映射,以及下行控制信道信息到对应的物理信道的映射。TS 38.212 Table5.3-1 规定了不同传输信道和控制信息的编码方案。

传输信道TrCH物理信道编码方案
DL-SCHPDSCHLDPC
PCHPDSCHLDPC
BCHPBCHPolar
DCIPDCCHPolar

1.1、TB的CRC附着

        通过给每个TB提供一个CRC(Cyclic Redundancy Check)来错误检测。CRC奇偶校验位通过用整个TB计算得出,CRC计算参考TS38.212 Clause5.1。

        传输到层1的TB中的比特表示为a_{0}, a_{1}, ..., a_{A-1},奇偶校验位用p_{0}, p_{1}, ..., p_{L-1}表示。其中A是净载荷大小(即TB size),L是奇偶校验位的数量。最低阶信息比特a_{0}被映射到TB的最高有效位(MSB,指的是一个n位二进制数字中的n-1位)。

        奇偶校验位被计算出来并连接到DL-SCH传输块,若A>3824,则将L设为24 bit并使用生成器多项式g_{CRC24A}(D);此外,将L设为16并使用生成器多项式g_{CRC16}(D)

        CRC附着后的比特表示为b_{0}, b_{1}, ..., b_{B-1},其中B = A + L,即大小为TB+CRC。

1.2、LDPC基图选择

        对于码率为R的TB的初传和后续的重传,TB的每个码块要么要用LDPC BG1编码,要么用BG2编码。根据净载荷大小A和码率R,选择对应的编码方式:

ARLDPC基图图示
A ≤ 292BG2

A ≤ 3824R ≤ 0.67BG2
R ≤ 0.25BG2
其他情况BG1

1.3、码块分段和码块的CRC附着

        如果码块的比特数B>K_{cb},将对比特序列进行分段成码块,并将每个码块附着一个额外的24比特的CRC。

        码块分段前的比特表示为b_{0}, b_{1}, ..., b_{B-1},其中B是包含CRC的比特数,即TB进行CRC附着后的结果作为码块分段的输入。 经过码块分段后的输出比特表示为c_{r0}, c_{r1}, ..., c_{r(K_{r}-1)},其中,r是码块编号且0 ≤ r < C,Kr是第r个码块的比特数。

        码块数量的计算过程

        对于BG1,K_{cb}=8448;对于BG2,K_{cb}=3840。

        如果 B≤K_{cb},码块数量C=1,不需要附着CRC,最终大小B' = B;

        如果 B>K_{cb},码块数量,每个码块额外附着一个长度L=24的CRC,最终大小B' = B + C·L,即原TB的大小加上每个码块额外附着的C个CRC的大小。

        每个码块的比特数K的计算过程:(参考TS38.212 Clause5.2.2)

        K' = B' / C。

        对于BG1,K_{b}=22;

        对于BG2,B>640,K_{b}=10;560<B≤640,K_{b}=9; 192<B≤560,K_{b}=8;B≤192, K_{b}=6。

        在下表中所有的lifting size集合中找到Z的最小值,表示为Zc,使之满足K_{b}\cdot Z_{c}\geq {K}'

        对于BG1,K = 22Zc;对于BG2,K = 10Zc。

LDPC lifting size Z的集合

Set index (i_{LS})

Set of lifting sizes (Z)

0

{2, 4, 8, 16, 32, 64, 128, 256}

1

{3, 6, 12, 24, 48, 96, 192, 384}

2

{5, 10, 20, 40, 80, 160, 320}

3

{7, 14, 28, 56, 112, 224}

4

{9, 18, 36, 72, 144, 288}

5

{11, 22, 44, 88, 176, 352}

6

{13, 26, 52, 104, 208}

7

{15, 30, 60, 120, 240}

        比特序列c_{rk}的计算过程如下,详见TS38.212 Clause5.2.2。

        ① 将比特块b_{0}, b_{1}, ..., b_{B-1}分段,共分成C个码块,每个码块分到 K'-L 个比特;

         ② 当C>1时,每个码块额外附着L=24的CRC,即此时码块中比特序列c_{r0}, c_{r1}, ...,c_{r(K'-L-1)}用于通过g_{CRC24B}(D)计算CRC奇偶校验比特p_{r0},p_{r1}, ..., p_{r(L-1)},将计算出的CRC附着到码块上;

         ③ 插入填充比特。

1.4、信道编码

        编码前的比特表示为c_{r0}, c_{r1}, ..., c_{r(K_{r}-1)},其中 r 是码块号,Kr 是第 r 个码块中的比特数,总的码块数是C。经过LDPC编码后的比特表示为d_{r0}, d_{r1}, ..., d_{r(N_{r}-1)},其中Nr 是第 r 个码块编码后的比特数。

        每个码块单独的编码过程如下,详见TS38.212 Clause5.3.2。

        编码前某个码块的比特表示为c_{0}, c_{1}, ..., c_{K-1},LDPC编码后该码块的比特表示为d_{0}, d_{1}, ..., d_{N-1},对于BG1,N = 66Zc;对于BG2,N = 50Zc,Zc值在1.4节中给出。

        ① 在“LDPC lifting size Z的集合”表中找到包含该Zc的索引i_{LS}

        ② 对于k 从 2Zc 到 K-1,

                若c_{k}\neq <NULL>,则d_{k-2Z_{c}} = c_{k}

                若c_{k} = 0,则d_{k-2Z_{c}} = <NULL>

        ③ 生成 N + 2Zc - K个奇偶校验位w = [w_{0}, w_{1}, ..., w_{N+2Zc-K-1}]^{T},满足H\times \begin{bmatrix} c\\ w \end{bmatrix}=0

其中c = [c_{0}, c_{1}, ..., c_{K-1}]^{T},0是零向量。矩阵H是通过用Zc×Zc的矩阵替换H_{BG}中的每个元素得到的,H_{BG}中的0元素替换为Zc×Zc的零矩阵,H_{BG}中的1元素替换为Zc×Zc的循环置换矩阵I(P_{i,j}),其中ij 分别为行索引、列索引。I(P_{i,j})是通过将大小为Zc×Zc的单位矩阵向右循环移动P_{i,j}次获得,P_{i,j} = V_{i,j} mod Zc,其中V_{i,j}的值在奇偶校验矩阵中根据LDPC lifting size集合的索引i_{LS}LDPC基图来获得。 

        对于BG1,H_{BG}是46×68的矩阵;对于BG2,H_{BG}是42×52的矩阵。若H_{BG}的行索引 i 、列索引 j 在奇偶校验矩阵中给出,则对应元素的值是1,其他元素的值为0(表中有索引的就为1,没有就是0)。

        ④ 对于k 从 K 到 N+2Zc-1,d_{k-2Zc} = w_{k-K}

        下表为部分的LDPC BG1的奇偶校验矩阵(H_{BG}V_{i,j})。详见TS 38.212 Table 5.3.2-2。

LDPC BG1的奇偶校验矩阵
H_{BG}V_{i,j}

Row

index

 i

Column

index

j

LDPC lifting size集合的索引 i_{LS}

0

1

2

3

4

5

6

7

0

0

250

307

73

223

211

294

0

135

1

69

19

15

16

198

118

0

227

2

226

50

103

94

188

167

0

126

1.5、速率匹配

         速率匹配前的比特表示为d_{r0}, d_{r1}, ..., d_{r(N_{r}-1)},其中 r 是码块号,Nr 是第 r 个码块的编码比特数,总的码块数为C。速率匹配后的比特表示为f_{r0}, f_{r1}, ..., f_{E_{r}-1},Er是第 r 个码块的速率匹配的比特数。

         每个码块单独的速率匹配过程如下,且I_{LBRM}=1,详见TS38.212 Clause5.4.2。

         LDPC码的速率匹配过程包括比特选择比特交织。速率匹配前某个码块的比特表示为d_{0}, d_{1}, ..., d_{N-1},速率匹配后该码块的比特表示为f_{0}, f_{1}, ..., f_{E-1}

         具体过程略。

1.6、码块级联

         级联前的比特表示为f_{r0}, f_{r1}, ..., f_{E_{r}-1},其中r = 0, 1, ..., C-1,Er是第 r 个码块的速率匹配的比特数。码块级联后的比特表示为g_{0}, g_{1}, ..., g_{G-1},G是传输的编码比特的总数。

        码块级联是将速率匹配后的码块依次连接,具体伪代码如下。

        g_{k}表示级联后的第 k 个比特,f_{rj}表示第 r 个码块的第 j 个比特。

2、调制和映射

2.1、加扰

        PDSCH传输分为单码字(q=0)和双码字(q∈{0, 1})。

        对每个码字q,在物理信道上传输的比特块为b^{(q)}(0), b^{(q)}(1), ..., b^{(q)}(M_{bit}^{(q)}-1),其中为物理信道上传输的码字q中的比特数,加绕后的比特块为\widetilde{b}^{(q)}(0), \widetilde{b}^{(q)}(1), ..., \widetilde{b}^{(q)}(M_{bit}^{(q)}-1)

        加扰比特通过\widetilde{b}^{(q)}(i) = (b^{(q)}(i)+c^{(q)}(i))mod 2生成,其中c^{(q)}(i)通过伪随机序列生成,过程如下。

其中,通过31位的Gold码生成通用伪随机码c(n),n=0, 1, ..., M_{PN}-1,Nc=1600,通过x_{1}(0)=1, x_{1}(n)=0, n=1,2,...,30初始化第一个m序列x_{1}(n),通过c_{init}=\sum_{i=0}^{30}x_{2}(i)\cdot 2^{i}初始化第二个m序列x_{2}(n)c_{init}的值取决于序列的用途。

        这里加扰序列生成器中的c_{init}通过c_{init}=n_{RNTI}\cdot 2^{15}+q\cdot 2^{14}+n_{ID}初始化。其中,n_{RNTI}是PDSCH传输相关的RNTI(见TS 38.214 Clause5.1),n_{ID}的值如下表。

nID的值
n_{ID}条件

等于dataScramblingIdentityPDSCH

nID∈{0, 1, ..., 1023}。配置了高层参数 dataScramblingIdentityPDSCH ,RNTI等于 C-RNTI、MCS-C-RNTI或CS-RNTI,且传输不是用CSS中的DCI 1_0调度。

等于dataScramblingIdentityPDSCHnID∈{0, 1, ..., 1023}。同时配置了高层参数 dataScramblingIdentityPDSCH 和 dataScramblingIdentityPDSCH2 ,且高层参数 CORESETPoolIndex 包含两个不同的值,RNTI等于 C-RNTI、MCS-C-RNTI或CS-RNTI,且传输不是用CSS中的DCI 1_0调度。用 CORESETPoolIndex 设为0的CORESET调度码字
等于dataScramblingIdentityPDSCH2用 CORESETPoolIndex 设为1的CORESET调度码字
等于N_{ID}^{cell}其他情况下

2.2、调制

        对每个码字q,加扰后的比特块为\widetilde{b}^{(q)}(0), \widetilde{b}^{(q)}(1), ..., \widetilde{b}^{(q)}(M_{bit}^{(q)}-1),经过某种调制后,产生的复值调制符号为d^{(q)}(0), d^{(q)}(1), ..., d^{(q)}(M_{symb}^{(q)}-1)。(调制后的符号数M_{symb}^{(q)}=M_{bit}^{(q)}/Q_{m}

        支持的调制方式如下。

调制方式

调制阶数Qm

QPSK

2

16QAM

4

64QAM

6

256QAM

8

        调制过程将二进制数01映射成复值调制符号。在256QAM的调制中,八位比特b(8i), b(8i+1), ..., b(8i+7)被映射到一个复值调制符号d(i),映射方式为:

       其他调制方式见TS 38.211 Clause 5.1。

2.3、层映射

       空分复用的码字到层的映射,是将用于发射的每个码字的复值调制信号映射到一层或多层上。根据码字到层的映射表,将码字q的复值调制符号d^{(q)}(0), d^{(q)}(1), ..., d^{(q)}(M_{symb}^{(q)}-1)映射到层x(i)=[x^{(0)}(i), ..., x^{(\upsilon -1)}(i)]^{T}上,i=0, 1, ..., M_{symb}^{layer}-1,其中,υ是层数,M_{symb}^{layer}是每层的调制符号数。

码字到层的映射(单码字)
层数码字数码字到层的映射i=0, 1, ..., M_{symb}^{layer}-1
11x^{(0)}(i)=d^{(0)}(i)M_{symb}^{layer}=M_{symb}^{(0)}
21\\x^{(0)}(i)=d^{(0)}(2i) \\x^{(1)}(i)=d^{(0)}(2i+1)M_{symb}^{layer}=M_{symb}^{(0)}/2
31\\x^{(0)}(i)=d^{(0)}(3i) \\x^{(1)}(i)=d^{(0)}(3i+1) \\x^{(2)}(i)=d^{(0)}(3i+2)M_{symb}^{layer}=M_{symb}^{(0)}/3
41\\x^{(0)}(i)=d^{(0)}(4i) \\x^{(1)}(i)=d^{(0)}(4i+1) \\x^{(2)}(i)=d^{(0)}(4i+2) \\x^{(3)}(i)=d^{(0)}(4i+3)M_{symb}^{layer}=M_{symb}^{(0)}/4

(将码字0上的调制符号依次映射到不同层上,每层的符号数=码字0的符号数 / 层数。)

(CSDN富文本编辑器里的公式换行:每一行开头加"\\"。)

2.4、天线端口映射

         每层上的复值符号块x(i)=[x^{(0)}(i), ..., x^{(\upsilon -1)}(i)]^{T}i=0, 1, ..., M_{symb}^{layer}-1,根据\begin{bmatrix} y^{(p_{0})}(i) \\ ... \\ y^{(p_{\upsilon -1})}(i) \end{bmatrix}= \begin{bmatrix} x^{(0)}(i) \\... \\x^{(\upsilon -1)}(i) \end{bmatrix}映射到天线端口\{p_{0}, p_{1}, ..., p_{\upsilon-1}\}上,其中,i=0,1,...,M_{symb}^{ap}-1M_{symb}^{ap}=M_{symb}^{layer}。(即天线端口数与层数相等,每个天线端口的符号数与每层的符号数相等,相当于一层映射到一个天线端口。)

        天线端口\{p_{0}, p_{1}, ..., p_{\upsilon-1}\}是由DMRS端口的顺序确定,详见TS 38.212 Clause7.3.1.2.2表格。

Antenna port(s) (1000 + DMRS port), dmrs-Type=1, maxLength=1(部分)
单码字:码字0使能;码字1未使能
没有数据的DMRS CDM组的数量DMRS端口
010
111
210, 1

2.5、映射到VRB

        对每个用于传输物理信道的天线端口,根据下行功率分配,把复值符号块y^{p}(0), y^{p}(1), ...,y^{p}(M_{symb}^{ap}-1)y^{(p)}(0)开始映射到用于传输的VRB的RE(k',l)_{p,\mu }上。(一个复制符号映射到一个RE。)

        到RE(k',l)_{p,\mu }的映射是在分配的VRB上从索引 k' 开始顺序递增到索引 l,其中,k'=0 是最低频的VRB的第一个子载波。

        被映射的RE需要满足以下标准:

        (1) 在用于传输的VRB中;

        (2) 对应的PRB可以用于PDSCH(根据TS 38.214 Clause 5.1.4);

        (3) 对应PRB中的对应RE要满足:① 不能用于传输相关的DMRS或共同调度的其他UE的DMRS;② 如果PRB是用于C-RNTI、MCS-C-RNTI或CS-RNTI加扰的PDCCH调度的PDSCH或SPS的PDSCH,则不能用于NZP CSI-RS,除非是由信元 MeasObjectNR 中高层参数 CSI-RS-Resource-Mobility 配置的CSI-RS或者是非周期NZP CSI-RS资源。③ 不能用于PTRS;④ 未声明不能用于PDSCH。

2.6、从VRB到PRB的映射

        根据指定的映射方式(非交织交织)将VRB映射到PRB。如果未指定,则默认是非交织(non-interleaved)。

2.6.1、非交织映射

        对于非交织的VRB到PRB的映射,VRB n 映射到PRB n。除非,是CSS中DCI 1_0调度的PDSCH传输,VRB n 映射到PRB n+N_{start}^{CORESET},其中N_{start}^{COREST}是接收到的对应DCI所在的CORESET中的最低频的PRB序号。

2.6.2、交织映射

        RB Bundle的定义

RB Bundle的定义
条件定义
CORESET0中的Type0-PDCCH CSS中的SI-RNTI加扰的DCI 1_0调度的PDSCH传输

        CORESET0中的N_{BWP,init}^{size}个RB被分为N_{bundle}=\left \lceil N_{BWP,init}^{size}/L \right \rceil个RB Bundle,按照RB和RB Bundle序号递增的顺序,其中,N_{BWP,init}^{size}是CORESET0的大小,RB Bundle的大小 L = 2。

 如果 N_{BWP,init}^{size} mod L >0,则最后一个RB Bundle包含了N_{BWP,init}^{size} mod L个RB。

 起始位置为N_{BWP,i}^{start}的BWP i上的任意CSS中的DCI 1_0调度的PDSCH传输

——N_{BWP,init}^{size}个VRB\begin{Bmatrix} 0,1,...,N_{BWP,init}^{size}-1 \end{Bmatrix}被分为N_{bundle}个VRB Bundle,按照VRB和V Bundle序号递增的顺序,其中,如果配置了CORESET0,则N_{BWP,init}^{size}是CORESET0的大小,否则是初始BWP的大小

——N_{BWP,init}^{size}个PRB\begin{Bmatrix} N_{CORESET}^{start}, N_{CORESET}^{start}+1, ..., N_{CORESET}^{start}+N_{BWP,init}^{size}-1 \end{Bmatrix}被分为 N_{bundle}个PRB Bundle,按照PRB和P Bundle序号递增的顺序,其中,N_{bundle}=\left \lceil (N_{BWP,init}^{size}+(N_{BWP,i}^{start}+N_{start}^{CORESET})mod L)/L \right \rceil,L = 2是PRB Bundle的大小, N_{start}^{COREST}是接收到的对应DCI所在的CORESET中的最低频的PRB序号。

——第一个RB Bundle包含L-((N_{BWP,i}^{start}+N_{start}^{CORESET})modL)个PRB。

——最后一个RB Bundle包含(N_{BWP,init}^{size}+N_{BWP,i}^{start}+N_{start}^{CORESET})modL个PRB,若其大于0。

——其余RB Bundle包含 L 个PRB。

 起始位置为N_{BWP,i}^{start}的BWP i上的其他所有的PDSCH传输

——N_{BWP,i}^{size}个RB被分为N_{bundle}=\left \lceil (N_{BWP,i}^{size}+(N_{BWP,i}^{start}modL_{i}))/L_{i} \right \rceil个RB Bundle,按照RB和RB Bundle序号递增的顺序,其中,L_{i}是BWP i 的RB Bundle的大小,由高层参数 vrb-ToPRB-Interleaver 指定。

——第一个RB Bundle包含L_{i}-(N_{BWP,i}^{start}modL_{i})个RB。

——最后一个RB Bundle包含(N_{BWP,i}^{start}+N_{BWP,i}^{size})modL_{i}个RB,若其值大于0。

——其余RB Bundle包含L_{i}个RB。

        VRB到PRB的映射

        VRB以Bundle的形式映射到PRB,VRB Bundle序列为\{0,1,..., N_{bundle}-1\}

        VRB Bundle j 映射到PRB Bundle f(j),其中

        补充

        不能在PRG大小为4的同时,将L_{i}设为2。

        在同一个PRB Bundle内频域上的预编码方式默认是相同的。

 3、天线端口

        天线端口:(TS 38.211 Clause4.4.1)通过天线端口的信道传输的符号能够被同一个天线端口的信道传输的另一个符号推断出来。

        对于与PDSCH相关的DM-RS,一个天线端口上的PDSCH符号所传输的信道可以从同一天线端口上的DM-RS符号所传输的信道推断出来,前提是这两个符号在相同的被调度PDSCH的资源内,相同的时隙、相同的PRG。

        下行信道/信号的天线端口(TS 38.211 Clause7.2):

天线端口下行信道/信号
1000PDSCH
2000PDCCH
3000CSI-RS
4000SSB
5000位置参考信号
  • 7
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是5G NR PDSCH加扰、调制、层映射、预编码、加DM-RS的MATLAB代码示例: ``` % 参数设置 MCS = 5; % 调制阶数 Nrb = 50; % RB数 Ninfo = Nrb*12*14; % 信息比特数 Qm = 2; % 星座点数 Nlayers = 2; % 天线数 Nre = Nrb*12; % RB上RE数 Nsymbs = 1; % 符号数 Nscid = 0; % SCID Nid = 1; % ID Nid2 = 0; % ID2 Nant = 4; % 天线数 Nprb = 25; % PRB数 Ncellid = 0; % 小区ID Ncp = 'normal'; % 循环前缀类型 Ndmrs = 'on'; % 是否加DM-RS Ndmrsconfig = 0; % DM-RS配置 Ndmrsoffset = 0; % DM-RS偏移量 Ncyclicshift = 0; % 循环移位 % 生成随机的信息比特 info_bits = randi([0,1],Ninfo,1); % 信道编码 coded_bits = lteConvolutionalEncode(info_bits); % 块分组 K = 8448; Z = 1024; n = ceil(length(coded_bits)/K); Q = n*Z; padded_bits = [coded_bits; zeros(Q-length(coded_bits),1)]; C = reshape(padded_bits,Z,n).'; % 信道编码后的调制符号 modulated_syms = lteSymbolModulate(C,Qm); % 生成PDSCH符号 pdsch_symbols = reshape(modulated_syms,Nre,Nlayers*Nsymbs); % 进行加扰 c_init = 0; pdsch_symbols_scrambled = ltePDSCH(coded_bits,Nrb,MCS,Qm,Nlayers,Nid,Nid2,Nscid,Ncellid,c_init); % 进行层映射 pdsch_layer_mapped = lteLayerMap(pdsch_symbols_scrambled,Nlayers); % 进行预编码 pdsch_precoded = lteDLPrecode(pdsch_layer_mapped,Nant); % 加DM-RS dmrs_symbols = lteDMRS(Nid,Nid2,Nscid,Ndmrsconfig,Nant,Nprb,Ndmrsoffset,Ncellid); pdsch_dmrspadded = ltePDSCH(pdsch_precoded,Nrb,MCS,Qm,Nlayers,Nid,Nid2,Nscid,Ncellid,c_init,dmrs_symbols); % 进行OFDM调制 ofdm_symbols = lteOFDMModulate(pdsch_dmrspadded,Nrb,Ncp,Ncyclicshift); % 将OFDM符号串行化 tx_waveform = reshape(ofdm_symbols,[],1); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值