NR PUSCH(五) DMRS

本文详细介绍了NR PUSCH DMRS的相关内容,包括Transform Precoding的启用条件、对PUSCH DMRS序列的影响,以及PUSCH DMRS的时域特性、序列生成、资源映射方式。重点讨论了Transform Precoding在不同场景下的应用,如DFT-s-OFDM和CP-OFDM,并分析了不同配置对DMRS序列和资源分配的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

PUSCH DMRS和PDSCH DMRS内容基本一样,但也有不同的地方,例如PUSCH 可能需要Transform precoding,port 对应0~11(DMRS configured type2)等等。先简单看看Transformprecoding的相关内容,Transformprecoding主要集中在38.211 6.3.1.4。Transformprecoding enable与否与PUSCH 使用的波形有关系,disable时对应的是cyclic Prefix OFDM,enable时对应的是DFT-s-OFDM,更具体的DFT-s-OFDM适合远距离传输,而CP-OFDM,如果使用较大的功率发送,由于PAPR的原因,难以保证信号的稳定性,所以CP-OFDM适用于距离较近的传输。在enable Transformingprecoding(DFT-s-OFDM)时只支持 one layer传输,disable Transformingprecoding(CP-OFDM)时,最大可支持四层传输,但是实际中由于硬件的限制,目前UE只能最大支持上行2 layer传输。一般在NR中 FR1优先使用DFT-s-OFDM,FR2中使用CP-OFDM,当然这个也和具体场景有关系,总之,UE根据网络带下来的参数,听指挥就好。

除此之外Transformprecoding enable与否还和PUSCH DMRS的序列生成有关, enable时采用低均峰比序列,disable时 采用伪随机序列,后面再具体看。

1 transform precoding

如何确定PUSCH 是否有enable transform precoding?其相关规定就在38.214

以下是用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
发出的红包

打赏作者

modem协议笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值