5G NR PDSCH、PUSCH资源分配

16 篇文章 53 订阅

 

通信就是把数据承载在特定的时间和频率上,传输到数据接收方,数据接收方在在相应的时间和频率上把数据接收下来。其实,把数据承载在哪个时间和频率上,对应的就是资源分配的过程。我们今天主要讨论5G NR中的资源分配过程。

目录

1. 时域资源指示

2. 频域资源指示

2.1 Type 0 频域资源分配方式

2.2 Type 1频域资源分配方式

3. VRB和PRB


 

1. 时域资源指示

在LTE协议中,DCI的位置和对应的PDSCH/PUSCH是相对固定的。比如,对下行来说,DCI和PDSCH肯定是在同一个subframe上;而对大部分上行来说,PUSCH出现在对应的DCI后4个subframe上。

此外,LTE PDSCH和PUSCH的时域固定从每个subframe的0号symbol开始,长度固定为14个symbol,即一个subframe。

 

5G系统为了支持更加灵活的资源分配,在时域上PDSCH/PUSCH与PDCCH(DCI)的位置不再固定。对于PDSCH,其与PDCCH的相对位置由DCI中的K0域指示。K0=0表示PDSCH与PDCCH在同一个slot上,K0=1表示PDSCH在PDCCH后面一个slot上,依次类推。

 

对于PUSCH,其与PDCCH的相对位置由DCI中的K2域指示。K2=0表示PDSCH与PDCCH在同一个slot上,K2=1表示PDSCH在PDCCH后面一个slot上,依次类推。需要注意的是,UE需要一定的时间来准备PUSCH数据,协议38.214中规定了这个准备时间的长度,资源调度时基站需要保证PUSCH距离PDCCH的间隔大于PUSCH的准备时间。

                                               (注意:图中未体现DL/UL帧结构,未考虑跨载波调度)

 

此外,在NR中,PDSCH和PUSCH的起始符号和长度也不再固定,而是由DCI中的域动态指示。PDSCH和PUSCH的起始符号(S)和长度(L)联合编码,合起来成为SLIV值。可能有读者会问为什么要把S和L联合编码呢。因为S和L的取值不是随意选取的,联合编码一般可以节约所需的表示时域分配的bit数。(具体细节可参考38.214)

确定S和L后,可以唯一的得到一个SLIV值;同样地,得到一个SLIV值后,可以唯一的确定一个SLIV值。S和L的取值不是随意的,可选的取值如下表所示。

 

                                Table 5.1.2.1-1: Valid S and L combinations (下行PDSCH时域资源分配)

PDSCH mapping type

Normal cyclic prefix

Extended cyclic prefix

S

L

S+L

S

L

S+L

Type A

{0,1,2,3}

(Note 1)

{3,…,14}

{3,…,14}

{0,1,2,3}

(Note 1)

{3,…,12}

{3,…,12}

Type B

{0,…,12}

{2,4,7}

{2,…,14}

{0,…,10}

{2,4,6}

{2,…,12}

Note 1:      S = 3 is applicable  only if dmrs-TypeA-Posiition = 3

 

                                Table 6.1.2.1-1: Valid S and L combinations (上行PUSCH时域资源分配)

PUSCH mapping type

Normal cyclic prefix

Extended cyclic prefix

S

L

S+L

S

L

S+L

Type A

0

{4,…,14}

{4,…,14}

0

{4,…,12}

{4,…,12}

Type B

{0,…,13}

{1,…,14}

{1,…,14}

{0,…,12}

{1,…,12}

{1,…,12}

 

上表中时域资源分配方式有两种的方式:Type A和Type B。简单来说,Type A和Type B的区别就是两种方式对应的S和L候选值不一样。Type A主要面向slot-based业务,S比较靠前,L比较长。而Type B主要面向URLLC业务,对时延要求较高,所以S的位置比较随意以便传输随时到达的URLLC业务,L较短,可降低传输时延。

 

2. 频域资源指示

频域资源分配有两种方式:Type0和Type1。

 

2.1 Type 0 频域资源分配方式

Type0频域资源分配方式有一个RBG的概念,简而言之,就是几个RB合起来称之为一个RBG。具体多少个RB合起来叫做一个RBG跟RRC配置(Configuration 1和Configuration 2)和BWP大小(Bandwidth Part Size)有关。

 

                                                        Table 5.1.2.2.1-1: Nominal RBG size P

Bandwidth Part Size

Configuration 1

Configuration 2

1 – 36

2

4

37 – 72

4

8

73 – 144

8

16

145 – 275

16

16

 

每个RBG会有一个1bit对应,如果该bit置1则表示该RBG已经分配给该UE。如下图所示,假设BWP的带宽为14个RB,RRC配置RBG为Configuration 1,查表得对应的RBG Size为2,图中绿色高亮的RBG表示分配给UE的RBG,此时该频域资源分配可以用“0101010”表示。

由此可知,Type0资源分配支持连续分配和非连续频域资源分配。

 

2.2 Type 1频域资源分配方式

Type1频域资源方式通过将资源的起始位置(S)和长度(L)联合编码,组成一个RIV值。一组(S,L)和一个RIV值一一对应,即知道了(S,L)便可以推出RIV值,知道了RIV值便可以推出对应的(S,L)。如下图所示,假设根据RIV值得到S=2,L=7,则对应的起始RB为2号RB(第三个RB),之后连续占用7个RB。

Type1 频域资源分配只能分配连续的频域资源。

 

3. VRB和PRB

在资源分配的过程中有两个概念:VRB和PRB。VRB,即virtual Resource Block,虚拟RB。PRB,physical resource block,物理RB。我们上面讲的资源分配方式指的都是在VRB的分配方式。VRB到PRB还有一套映射方式:交织映射(Interleaved mapping)和非交织映射(Non-interleaved mapping)。

可能有读者会问,为什么要定义VRB和PRB呢?定义VRB和PRB能简化资源分配的过程,VRB主要负责资源分配而无需考虑实际的物理位置,PRB再去考虑各个VRB实际的物理位置。

交织映射,简单理解就是把VRB打乱后映射到PRB上。非交织映射,简单理解就是把VRB直接复制到PRB上。具体的细节不在此赘述了。

  • 53
    点赞
  • 311
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
以下是用MATLAB实现5G NR PDSCH DMRS解扰的示例代码: ``` % 5G NR PDSCH DMRS解扰 % 参数设置 N_ID = 1; % DMRS组ID(0-335) delta_ss = 0; % DMRS序列间隔(0或1) delta_p = 0; % DMRS位置(0或1) n_PRB = 50; % 资源块数 n_SC_RB = 12; % 每个资源块的子载波数 n_SC = n_PRB*n_SC_RB; % 总子载波数 n_RE = 12; % 每个OFDM符号的RE数 n_DMRS = 6; % DMRS符号数 n_sym = 14; % 用于PDSCH的OFDM符号数 n_ant = 2; % 天线数 % 生成DMRS序列 [n_cell_id, n_h] = nr_dmrs_pusch(N_ID, n_ant, delta_ss); dmrs_seq = nr_pusch_dmrs(n_cell_id, n_h, delta_p, n_PRB, n_DMRS, n_ant); % 生成PDSCH符号 pdsch_sym = zeros(n_SC,n_sym,n_ant); for i_sym = 1:n_sym pdsch_sym(:,:,i_sym) = randi([0,1],n_SC,n_ant); end % 插入DMRS符号 pdsch_sym_dmrs = zeros(n_SC,n_sym+n_DMRS,n_ant); for i_ant = 1:n_ant for i_sym = 1:n_sym pdsch_sym_dmrs(:,i_sym+(i_sym>n_DMRS),i_ant) = pdsch_sym(:,i_sym,i_ant); end pdsch_sym_dmrs(:,1:n_DMRS,i_ant) = dmrs_seq(:,:,i_ant); end % 解扰DMRS符号 pdsch_sym_dmrs_descrambled = zeros(n_SC,n_sym+n_DMRS,n_ant); for i_ant = 1:n_ant pdsch_sym_dmrs_descrambled(:,:,i_ant) = nr_pdsch_dmrs_descramble(pdsch_sym_dmrs(:,:,i_ant),N_ID,i_ant); end % 提取解扰后的DMRS符号 dmrs_sym_descrambled = pdsch_sym_dmrs_descrambled(:,1:n_DMRS,:); % 检查解扰后的DMRS符号与原DMRS符号是否一致 if isequal(dmrs_sym_descrambled,dmrs_seq) disp('DMRS符号解扰成功!'); else disp('DMRS符号解扰失败!'); end ``` 需要注意的是,以上代码仅实现了5G NR PDSCH DMRS解扰的基本过程,实际应用中还需要处理更多细节和异常情况。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值