nearlink_sdr.sim.usrp_sim¶
USRP 环回仿真引擎。
使用 MockUSRP loopback 模式, 将完整的 SLE 发射/接收流水线 通过虚拟 USRP 设备连接, 验证端到端功能正确性。
支持的仿真场景:
单帧 IQ 环回 (AWGN 信道)
PHY 全链路环回 (CRC → Polar → 调制 → 信道 → 解调 → 解码 → CRC)
MAC 数据帧环回 (AsyncDataFrame 打包 → PHY → 环回 → PHY → 解包)
MAC 信令环回 (信令编码 → PHY → 环回 → PHY → 信令解码)
跳频发射序列
SleNode 双节点端到端
Module Contents¶
Classes¶
单帧环回仿真结果。 |
|
USRP 环回仿真器。 |
|
多帧仿真汇总结果。 |
API¶
- class nearlink_sdr.sim.usrp_sim.USRPLoopbackSim(snr_db: float = 30.0, channel_type: str = 'awgn', sample_rate_hz: float = 1000000.0, seed: int = 42)[源代码]¶
USRP 环回仿真器。
在 MockUSRP loopback 模式下, TX 端发送的 IQ 信号经可选信道模型 后直接送入 RX 端, 实现完整的硬件在环式仿真。
Initialization
- loopback_iq(iq_samples: numpy.ndarray) numpy.ndarray[源代码]¶
IQ 样本经 MockUSRP TX → loopback → RX 环回。
- loopback_phy(data_bits: numpy.ndarray, cfg: nearlink_sdr.phy.tx_pipeline.TxConfig, ctrl_bits: numpy.ndarray | None = None) nearlink_sdr.sim.usrp_sim.LoopbackResult[源代码]¶
PHY 全链路环回: 编码 → 调制 → USRP TX → 信道 → USRP RX → 解调 → 解码。
- 参数:
data_bits -- 信息比特。
cfg -- 发射配置。
ctrl_bits -- 控制信息比特, None 时使用全零。
- 返回:
LoopbackResult 包含 CRC 校验结果和 BER。
- loopback_mac_data(mac_payload: bytes, cfg: nearlink_sdr.phy.tx_pipeline.TxConfig | None = None) tuple[nearlink_sdr.phy.mac_interface.MacRxResult, nearlink_sdr.sim.usrp_sim.LoopbackResult][源代码]¶
MAC 数据帧环回: bytes → mac_to_iq → USRP → iq_to_mac。
- 参数:
mac_payload -- MAC 层载荷字节。
cfg -- 发射配置, None 时使用 FT2 MCS7 默认值。
- 返回:
(MacRxResult, LoopbackResult)
- loopback_hopping(iq_samples: numpy.ndarray, hop_sequence: list[int]) list[tuple[int, numpy.ndarray]][源代码]¶
跳频发射 + 接收环回。
在每个跳频信道上发射 iq_samples, 然后在同一信道上接收。
- 返回:
[(channel_num, rx_samples), ...]
- run_batch(payloads: list[bytes], cfg: nearlink_sdr.phy.tx_pipeline.TxConfig | None = None) nearlink_sdr.sim.usrp_sim.USRPSimResult[源代码]¶
批量 MAC 帧环回仿真。
- 参数:
payloads -- MAC 载荷列表。
cfg -- 发射配置。
- 返回:
USRPSimResult 汇总结果。
- property device: nearlink_sdr.phy.usrp.USRPDevice¶
- property transceiver: nearlink_sdr.phy.usrp.SLETransceiver¶