PUSCH#

此模块包含与物理上行共享信道 PUSCH 相关的类。

class aerial.phy5g.pusch.pusch_rx.PuschRx#

PUSCH 接收器管线。

此类实现了从接收到的 OFDM Post-FFT 符号到接收到的传输块(以及 CRC 校验)的整个 PUSCH 接收管线。

__init__(
cell_id,
num_rx_ant,
num_tx_ant,
num_ul_bwp=273,
num_dl_bwp=273,
mu=1,
enable_cfo_correction=0,
enable_to_estimation=0,
enable_pusch_tdi=0,
eq_coeff_algo=1,
enable_per_prg_chest=0,
enable_ul_rx_bf=0,
ldpc_kernel_launch=aerial.pycuphy.PuschLdpcKernelLaunch.PUSCH_RX_ENABLE_DRIVER_LDPC_LAUNCH,
)#

初始化 PuschRx。

参数:
  • cell_id (int) – 物理小区 ID。

  • num_rx_ant (int) – 接收天线数。

  • num_tx_ant (int) – 发射天线数。

  • num_ul_bwp (int) – 上行带宽部分中的 PRB 数量。默认值:273。

  • num_dl_bwp (int) – 下行带宽部分中的 PRB 数量。默认值:273。

  • mu (int) – 数值。取值范围 [0, 3]。默认值:1。

  • enable_cfo_correction (int) –

    启用/禁用 CFO 校正

    • 0:禁用(默认)。

    • 1:启用。

  • enable_to_estimation (int) –

    启用/禁用时间偏移估计

    • 0:禁用(默认)。

    • 1:启用。

  • enable_pusch_tdi (int) –

    PUSCH 上的时域插值。

    • 0:禁用(默认)。

    • 1:启用。

  • eq_coeff_algo (int) –

    均衡器系数计算的算法。

    • 0 - ZF。

    • 1 - MMSE(默认)。

    • 2 - MMSE-IRC。

  • enable_per_prg_chest (int) –

    启用/禁用 PUSCH 每 PRG 信道估计。

    • 0:禁用(默认)。

    • 1:启用。

  • enable_ul_rx_bf (int) –

    启用/禁用 PUSCH 的波束赋形。

    • 0:禁用(默认)。

    • 1:启用。

  • ldpc_kernel_launch (PuschLdpcKernelLaunch) – LDPC 内核启动方法。

返回类型:

None

run(
rx_slot,
slot=0,
pusch_configs=None,
num_ues=1,
num_dmrs_cdm_grps_no_data=2,
dmrs_scrm_id=41,
start_prb=0,
num_prbs=273,
prg_size=1,
num_ul_streams=1,
dmrs_syms=None,
dmrs_max_len=2,
dmrs_add_ln_pos=1,
start_sym=2,
num_symbols=12,
scids=None,
layers=None,
dmrs_ports=None,
rntis=None,
data_scids=None,
mcs_tables=None,
mcs_indices=None,
code_rates=None,
mod_orders=None,
tb_sizes=None,
rvs=None,
ndis=None,
)#

运行 PUSCH Rx。

这基于给定的参数运行 cuPHY PUSCH 接收器管线。如果使用基于 PuschConfig 的 API,则支持多个 UE 组。否则,管线仅针对共享相同时频资源(即具有相同的 PRB 分配,以及相同的起始符号和分配的符号数)的单个 UE 组运行。在这种情况下,对于未给出的参数,将填充默认值。

参数:
  • rx_slot (Array) – 表示小区接收时隙缓冲区的张量。

  • slot (int) – 时隙号。

  • pusch_configs (List[PuschConfig]) – PUSCH 配置对象列表,每个 UE 组一个。如果给出了此参数,则忽略其余参数。如果未给出,将使用其他参数(对于未给出的参数,使用默认值)。在这种情况下,仅支持一个 UE 组。

  • num_ues (int) – UE 组中的 UE 数量。

  • num_dmrs_cdm_grps_no_data (int) – 没有数据的 DMRS CDM 组的数量 [3GPP TS 38.212,sec 7.3.1.1]。值:1->3。

  • dmrs_scrm_id (int) – DMRS 加扰 ID。

  • start_prb (int) – UE 组分配的起始 PRB 索引。

  • num_prbs (int) – 为 UE 组分配的 PRB 数量。

  • prg_size (int) – 用于 PUSCH 每 PRG 信道估计的 PRB 中 PRG 的大小。

  • nUplinkStreams (int) – 此 PUSCH 的活动流数。

  • dmrs_syms (List[int]) – 对于 UE 组,二进制数列表,每个二进制数指示相应的符号是否为 DMRS 符号。

  • dmrs_max_len (int) – maxLength 参数,值 1 或 2,表示 DMRS 是单符号 DMRS 还是单符号或双符号 DMRS。

  • dmrs_add_ln_pos (int) – 附加 DMRS 位置的数量。

  • start_sym (int) – UE 组分配的起始 OFDM 符号索引。

  • num_symbols (int) – UE 组分配中的符号数。

  • scids (List[int]) – 每个 UE 的 DMRS 序列初始化 [TS38.211,sec 7.4.1.1.2]。

  • layers (List[int]) – 每个 UE 的层数。

  • dmrs_ports (List[int]) – 每个 UE 的 DMRS 端口。每个条目的格式均为 SCF FAPI 格式,如下所示:从 LSB 开始的位图(掩码),其中每个位指示是否使用相应的 DMRS 端口索引。

  • rntis (List[int])

  • data_scids (List[int]) – 每个 UE 的数据加扰 ID,更准确地说是 dataScramblingIdentityPdsch [TS38.211,sec 7.3.1.1]。

  • mcs_tables (List[int]) – 每个 UE 要使用的 MCS 表(请参阅 TS 38.214)。

  • mcs_indices (List[int]) – 每个 UE 的 MCS 索引。

  • code_rates (List[float]) – 每个 UE 的码率。这是每 1024 个编码位的信息位数。

  • mod_orders (List[int]) – 每个 UE 的调制阶数。

  • tb_sizes (List[int]) – 每个 UE 的 TB 大小(字节)。

  • rvs (List[int]) – 每个 UE 的冗余版本。

  • ndis (List[int]) – 每个 UE 的新数据指示符。

  • num_ul_streams (int)

返回值:

包含以下内容的元组

  • Array: 传输块 CRC。

  • List[Array]: 传输块,每个 UE 一个,不带 CRC。

返回类型:

Array, List[Array]