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]