5G NR PUSCH non-codebook SRS/DMRS

最近在看Non-codebook PUSCH时,看到这么一段话:
The UE shall perform one-to-one mapping from the indicated SRI(s) to the indicated DM-RS ports(s) and their corresponding PUSCH layers {0 … ν-1}
The UE shall transmit PUSCH using the same antenna ports as the SRS port(s) in the SRS resource(s) indicated by SRI(s)
特定SRS资源与特定的DMRS之间是一一映射的关系,且SRI同时指定了传输的layer数。例如用于NCB的SRS resource set配置了4个resource,即对应4个port;以下为dmrs-Type=1, maxLength=1时,antenna port的取值及DMRS port的选择。
在这里插入图片描述
1.对于rank1很好理解,4bit的SRI用一位指示其对应的DMRS port;
2.对于rank2,理论上4bit的SRI可以指示6种SRS port组合,但协议中只采用了其中3组(0,1)(0,2)(2,3),为什么?对于rank3同rank2一样,为什么只采用了(0,1,2)?
3.对于rank4,不需要解释。

先看一下dmrs-Type=1, maxLength=1时,其在频域上的分布样式
在这里插入图片描述

当rank2时,UE可以被分配在port0/1 or port2/3上,DMRS通过CDM进行复用;可以被分配在port0/2上,DMRS通过FDM进行复用;如果分配在port0/3、1/2 、1/3上,则同时采取了FDM/CDM,则没必要;

如果gNB指示UE使用最大层数rank4进行传输,那么gNB可以使用DMRS来替代SRS进行预编码的解调,因为此时DMRS的预编码与SRS的一致;
如果UE没有使用最大层数的传输时,DMRS提供的预编码信息可能与PUSCH的不一致。因为SRI与antenna port在DCI0x中是分别指示的,即便有SRS到DMRS的一一对应关系,gNB也可以指示使用SRI与其非对应的DMRS port。如rank2时,SRI为1001,指示PUSCH使用与SRS port1000/1003相同的预编码;antenna port指示3,DMRS port0/2 使用与SRS port1000/1002相同的预编码,此时gNB必须根据UE最新发送的SRS的预编码来解调PUSCH。

这部分关于协议的理解不一定准确,很有可能是不正确的,欢迎大家讨论。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是用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解扰的基本过程,实际应用中还需要处理更多细节和异常情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值