PDSCH#
此模块包含与物理下行链路共享信道 PDSCH 以及信道状态信息参考信号 CSI-RS 相关的类。
- class aerial.phy5g.pdsch.pdsch_tx.PdschTx#
PDSCH 发射器。
此类实现了从发射的传输块到发射的频域符号的整个 PDSCH 传输流水线。
- __init__(
- cell_id,
- num_rx_ant,
- num_tx_ant,
- num_ul_bwp=273,
- num_dl_bwp=273,
- mu=1,
- cuda_stream=None,
初始化 PdschTx。
- 参数:
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) – numerology。值在 [0, 3] 中。默认值:1。
cuda_stream (int) – CUDA 流。如果未给出,将创建一个。
- 返回类型:
None
- run(
- tb_inputs,
- num_ues,
- slot,
- num_dmrs_cdm_grps_no_data=2,
- dmrs_scrm_id=41,
- resource_alloc=1,
- prb_bitmap=None,
- start_prb=0,
- num_prbs=273,
- dmrs_syms=None,
- start_sym=2,
- num_symbols=12,
- scids=None,
- layers=None,
- dmrs_ports=None,
- bwp_starts=None,
- ref_points=None,
- rntis=None,
- data_scids=None,
- precoding_matrices=None,
- mcs_tables=None,
- mcs_indices=None,
- code_rates=None,
- mod_orders=None,
- rvs=None,
- num_prb_lbrms=None,
- max_layers=None,
- max_qms=None,
- csirs_rrc_dyn_prms=None,
运行 PDSCH 传输。
设置动态 PDSCH 参数并调用 cuPHY 以运行 PDSCH 传输。
- 参数:
tb_inputs (List[np.ndarray]) – 每个 UE 的字节传输块。
num_ues (int) – UE 数量。
slot (int) – 时隙号。
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。
resource_alloc (int) – 资源分配类型。
prb_bitmap (List[int]) – 指示分配的 RB 的位掩码的字节数组。
start_prb (int) – UE 组的起始 PRB 索引。
num_prbs (int) – UE 组分配的 PRB 数量。
dmrs_syms (List[int]) – 对于 UE 组,二进制数列表,每个二进制数指示相应的符号是否为 DMRS 符号。
start_sym (int) – UE 组分配的起始 OFDM 符号索引。
num_symbols (int) – 分配中的符号数,从 start_sym 开始。
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 端口索引。
bwp_starts (List[int]) – 带宽部分起始位置(从 0 开始的 PRB 编号)。仅当参考点为 1 时使用。
ref_points (List[int]) – 每个 UE 的 DMRS 参考点。值 0 或 1。
rntis (List[int])
data_scids (List[int]) – 每个 UE 的数据加扰 ID,更准确地说是 dataScramblingIdentityPdsch [TS38.211, sec 7.3.1.1]。
precoding_matrices (List[np.ndarray]) – 预编码矩阵,每个 UE 一个。每个预编码矩阵的形状是层数 x 发射天线数。如果设置为 None,则禁用预编码。
mcs_tables (List[int]) – 每个 UE 的 MCS 表。
mcs_indices (List[int]) – 每个 UE 的 MCS 索引。
code_rates (List[int]) – 每个 UE 的码率,采用 3GPP 格式,即码率 x 1024。
mod_orders (List[int]) – 每个 UE 的调制阶数。
rvs (List[int]) – 每个 UE 的冗余版本(默认值:每个 UE 为 0)。
num_prb_lbrms (List[int]) – 用于 LBRM TB 大小计算的 PRB 数量。可能的值:{32, 66, 107, 135, 162, 217, 273}。
max_layers (List[int]) – 用于 LBRM TB 大小计算的层数(最多 4 层)。
max_qms (List[int]) – 用于 LBRM TB 大小计算的调制阶数。值:6 或 8。
csirs_rrc_dyn_prms (List[CsiRsRrcDynPrms]) – CSI-RS RRC 动态参数列表,请参阅 CsiRsRrcDynPrms。请注意,不会写入 CSI-RS 符号,这只是为了确保 PDSCH 不会映射到 CSI-RS 资源元素。
- 返回值:
包含以下内容的元组
np.ndarray: 频率 x 时间 x 天线张量中发射的 OFDM 符号。
np.ndarray: 码字数 x 每个码字位数张量中的编码位。
- 返回类型:
np.ndarray, np.ndarray
- classmethod cuphy_to_tx(
- tx_slot,
- num_ues,
- dmrs_ports,
- scids,
- precoding_matrices=None,
将 cuPHY 输出映射到 Tx 天线端口。
- 参数:
tx_slot (numpy.ndarray) – 来自 cuPHY 的发射缓冲区。
num_ues (int) – UE 数量。
dmrs_ports (List[int]) – 每个 UE 的 DMRS 端口。每个条目的格式为 SCF FAPI 格式,如下所示:从 LSB 开始的位图(掩码),其中每个位指示是否使用相应的 DMRS 端口索引。
scids (List[int]) – 每个 UE 的 DMRS 序列初始化 [TS38.211, sec 7.4.1.1.2]。
precoding_matrices (List[np.ndarray]) – 预编码矩阵,每个 UE 一个。每个预编码矩阵的形状是层数 x 发射天线数。如果设置为 None,则禁用预编码。
- 返回值:
频率 x 时间 x 天线张量中发射的 OFDM 符号。
- 返回类型:
np.ndarray
- class aerial.phy5g.pdsch.csirs_tx.CsiRsTx#
CSI-RS 发射器。
此类实现在一个时隙内的 CSI-RS 传输。
- __init__(num_prb_dl_bwp, cuda_stream=None)#
初始化 CsiRsTx。
- 参数:
num_prb_dl_bwp (List[int]) – DL BWP 中的 PRB 数量。
cuda_stream (int) – CUDA 流。如果未给出,将创建一个。
- 返回类型:
None
- run(csirs_cell_dyn_prms, tx_buffers, precoding_matrices=None)#
运行 CSI-RS 传输。
- 参数:
csirs_cell_dyn_prms (List[CsiRsCellDynPrms]) – CSI-RS 小区动态参数列表,每个小区一个条目。请参阅 CsiRsCellDynPrms。
tx_buffers (List[np.ndarray]) – 发射时隙缓冲区列表,每个小区一个。这些表示在插入 CSI-RS 之前的时隙缓冲区。
precoding_matrices (List[CsiRsPmwOneLayer]) – 预编码矩阵列表。此列表由 CsiRsRrcDynPrms(CsiRsCellDynPrms 的一部分)中的 pmw_prm_idx 字段索引。
- 返回值:
插入 CSI-RS 后每个小区的时隙发射缓冲区。
- 返回类型:
List[np.ndarray]