Transform-precoded PUSCH DM-RS:两种 low-PAPR 序列、长度与端口 OCC

结论先行:启用 transform precoding 的 PUSCH,其 DM-RS 使用的 low-PAPR 序列,但并非只有一种 low-PAPR 序列。满足特定 \pi/2-BPSK 条件时使用 TS 38.211 §5.2.3 的 type 2;其余情形使用 §5.2.2 的 type 1,且。此外,必须把“序列长度选择”和“端口 OCC/频域偏移”作为独立环节处理。

本文以 3GPP TS 38.211 §5.2.2、§5.2.3、§6.4.1.1.1.2 和 §6.4.1.1.3 为依据,解释 transform-precoded PUSCH DM-RS 的完整判断路径。

1. 不要把三个“type”混成一个

在这类问题中,至少有三个不同维度:

名称它回答的问题关键规范位置
low-PAPR sequence type 1/type 2DM-RS 的低 PAPR 基序列怎样生成TS 38.211 §5.2.2 / §5.2.3
DMRS configuration type 1/type 2DM-RS 使用哪种 RE pattern、端口复用结构TS 38.211 §6.4.1.1.3
DM-RS antenna port该端口取哪组频域 OCC、时域 OCC 和频域偏移TS 38.211 表 6.4.1.1.3-1 / -2

本文的主角是第一项;后两项决定“同一条序列如何在不同端口和 RE 上区分”。因此,low-PAPR type 2 不等于 DMRS configuration type 2

delta = 1 表示什么?

是 low-PAPR 序列定义中的长度缩放索引,不是功率参数、循环移位,也不是 DM-RS port。对于 transform-precoded PUSCH DM-RS,§6.4.1.1.1.2 将它固定为,因此:

因为 NR 每个 RB 有个子载波,令序列长度变为每 RB 6 个样点。它与 transform-precoded PUSCH DM-RS 的 Comb-2 映射相匹配:DM-RS 占用隔一个取一个的子载波位置,所以只需生成分配总子载波数一半长度的 low-PAPR 序列。

因此,还要加上一条本篇讨论范围内的约束:对启用 transform precoding 的 PUSCH DM-RS,映射采用 Comb-2,即 DM-RS configuration type 1 的 1/2 频域密度;若dmrs-Type=type2,则不进入本篇的 transform-precoded PUSCH DM-RS 链路。换言之,低 PAPR 序列仍可在 sequence type 1 与 sequence type 2 之间选择,但 RE 映射不是 configuration type 2。

2. 先判定:什么时候会有两种 low-PAPR 序列?

若 PUSCH 启用 transform precoding,TS 38.211 §6.4.1.1.1.2 规定其 DM-RS 从下列 low-PAPR 序列中产生:

具体分支如下。

分支 A:low-PAPR sequence type 2(§5.2.3)

同时满足以下条件时,DM-RS 采用 §5.2.3 的low-PAPR sequence type 2

  1. 高层参数dmrs-UplinkTransformPrecoding已配置;
  2. PUSCH 采用 \pi/2-BPSK 调制;
  3. 本次 PUSCH 不是 Msg3;
  4. 本次传输不是由 common search space 中 DCI format 0_0 调度。

这时 c_{\mathrm{init}} 仍然参与相关伪随机序列的初始化;可由pi2BPSK-ScramblingID0/1给出,未配置时按规范回退到小区物理层身份相关值。序列组号使用:

其中,是组跳频项;的来源随上述高层配置及调度场景而定。组跳频与序列跳频分别影响组号 u 和组内序列号 v;规范不要求 UE 支持两者同时启用。

分支 B:low-PAPR sequence type 1(§5.2.2)

只要没有同时满足分支 A 的全部条件,DM-RS 走 §5.2.2 的low-PAPR sequence type 1,并且在这一 PUSCH DM-RS 分支中:

这句话非常关键:type 1 在通用定义中允许通过循环移位从基序列派生多个序列;但当前讨论的 transform-precoded PUSCH DM-RS 的“其他情形”被 §6.4.1.1.1.2 明确限定为

选择逻辑总结

可以把选择逻辑记为:

transform precoding enabled? └─ 是:δ = 1 ├─ dmrs-UplinkTransformPrecoding 已配置 │ 且 π/2-BPSK │ 且非 Msg3 │ 且非 common-SS DCI 0_0 调度 │ └─ low-PAPR sequence type 2(38.211 §5.2.3) └─ 其他所有情形 └─ low-PAPR sequence type 1(38.211 §5.2.2,α=0)

3. 为什么“不同长度对应不同序列”必须单独处理?

对于 transform-precoded PUSCH DM-RS,,low-PAPR 序列长度为:

其中 NR 的,而在这条 PUSCH DM-RS 链中。例如:

PUSCH 带宽DM-RS low-PAPR 长度 M
1 RB16
2 RB212
4 RB424
5 RB530
6 RB636
20 RB20120

这里的“不同长度对应不同序列”不是指把一条长序列简单截断:标准针对长度区间规定了不同的基序列构造。具体设计如下。

M对应 PUSCH 分配type 1(TS 38.211 §5.2.2)type 2(TS 38.211 §5.2.3)
61 RB短序列:表 5.2.2.2-1 给出各组号的相位参数 \phi_i。短序列:表 5.2.3.2-1 直接给出相位参数 \phi_i。
122 RB短序列:表 5.2.2.2-2 给出相位参数 \phi_i。短序列:表 5.2.3.2-2 给出二进制序列 b_i,再作 \pi/2-BPSK。
183 RB短序列:表 5.2.2.2-3 给出相位参数 \phi_i。短序列:表 5.2.3.2-3 给出 b_i,再作 \pi/2-BPSK。
244 RB短序列:表 5.2.2.2-4 给出相位参数 \phi_i。短序列:表 5.2.3.2-4 给出 b_i,再作 \pi/2-BPSK。
305 RB仍属于 M<36 的短长度区间,走 §5.2.2.2 中为该长度给出的专门定义。已进入 M\ge30 分支:伪随机序列 c_i 经 \pi/2-BPSK 后,按 §5.2.3.1 的 M 点变换构造基序列。
36,42,48,\ldots6,7,8,\ldots RB长序列:按 §5.2.2.1 选择满足条件的最大素数长度,再用根序列构造并做循环扩展。继续使用 M\ge30 分支:c_i → \pi/2-BPSK → M 点变换。

例如,当带宽从 4 RB 增至 5 RB 时,长度从 M=24 变为 M=30:type 2 会从“表驱动的短序列”切换到“伪随机 \pi/2-BPSK 加 M 点变换”的通用构造;这不是多补 6 个样点,而是生成机制本身切换。同理,type 1 在 M=36 才从短序列定义切换到基于最大素数长度的根序列构造。

因此,写仿真或协议代码时,应当先计算 M,再进入 type 1/type 2 各自的长度分支。不能只实现“一个低 PAPR 公式”,然后对所有 RB 数复用;否则序列的相位集合、相关特性和低 PAPR 设计目标都会偏离规范。

4. 不同天线端口为什么对应不同 OCC 序列?

生成 r(n) 后,DM-RS 还没有完成端口区分。TS 38.211 §6.4.1.1.3 对 transform-precoded PUSCH 给出如下映射骨架:

其中:

  • p 是 DM-RS antenna port;
  • 频域 OCC
  • 时域 OCC
  • 是该端口/码分复用组对应的频域偏移;
  • 是前文选出的 low-PAPR DM-RS 序列。

规范的表 6.4.1.1.3-1(configuration type 1)和表 6.4.1.1.3-2(configuration type 2)对每个可用端口列出 CDM group、\Delta、w_f 和 w_t。因此不同端口不仅可能占用不同的频域偏移,也会使用不同的 OCC 符号模式。例如,频域 OCC 可以出现 [+1,+1,+1,+1]、[+1,-1,+1,-1],也可以出现含 j 的复数正交码;时域 OCC 则可为 [+1,+1] 或 [+1,-1]。

这样做的意义是:即便若干端口在同一 DM-RS OFDM symbol、相同或部分重叠的频域结构中发送,gNB 仍可利用已知的 w_f、w_t 与 \Delta 将端口分离并分别做信道估计。

注意:端口可否被配置、可否并发使用以及最终的预编码矩阵,仍要以 TS 38.214 的调度与端口配置约束为准。这里的 OCC 表描述的是 DM-RS 端口正交化规则,不等价于“任意端口组合都可用于任意 transform-precoded PUSCH”。

5. 从配置到 RE 的正确实现顺序

推荐把实现和排障按下列顺序拆开:

  1. 读取 PUSCH 是否启用 transform precoding;
  2. 固定 delta=1,由 RB 数计算长度
  3. 判断是否满足 \pi/2-BPSK 的 type 2 条件;否则选择 type 1,并设置 alpha=0;
  4. 按所选 type 的长度分支生成
  5. 从 DM-RS port 与 DMRS configuration type 的对应表取出 w_f、w_t、\Delta;
  6. 按映射式生成,再进入后续预编码和物理资源映射。

最常见的错误有三个:

  • DMRS configuration type 2误当作low-PAPR sequence type 2
  • 忽略 RB 数变化导致的 M 变化,错误复用不同长度的基序列;
  • 为所有 DM-RS port 使用同一组 w_f、w_t 和 \Delta,从而破坏端口正交性。

6. 小结

对 transform-precoded PUSCH DM-RS,可以用一句话记住:

先由高层配置、调制方式和调度场景,在 type 1/type 2 两个 low-PAPR 家族中选序列;再由 RB 数选长度构造;最后按端口表施加对应的频域 OCC、时域 OCC 和频域偏移。

这三个步骤缺一不可:序列家族保证波形与调制路径正确,长度分支保证短/长资源分配下的序列定义正确,OCC 与 \Delta 则保证端口可分离。

参考规范

  • 3GPP TS 38.211,NR; Physical channels and modulation:§5.2.2、§5.2.3、§6.4.1.1.1.2、§6.4.1.1.3;
  • 3GPP TS 38.214,NR; Physical layer procedures for data:PUSCH transform precoding、DM-RS port 和资源映射相关过程;
  • 3GPP TS 38.331,NR; Radio Resource Control (RRC) protocol specificationDMRS-UplinkConfig等高层配置。

本文面向理解和实现拆解。协议实现、一致性测试或仿真应以目标 Release 对应的正式规范版本及其表格为准。