nearlink_sdr.phy.usrp¶
USRP E310 硬件接口层。
封装 UHD Python API, 提供针对 SparkLink SLE 标准优化的 USRP 设备管理、 TX/RX 流接口以及与现有 PHY 模块的集成 Pipeline。
硬件参数 (USRP E310 / AD9361):
频率范围: 70 MHz - 6 GHz
最大带宽: 56 MHz
ADC/DAC: 12-bit
RX 增益范围: 0 - 76 dB
TX 增益范围: 0 - 89.75 dB
天线端口: TX/RX, RX2
Module Contents¶
Classes¶
USRP 接收流接口。 |
|
SparkLink SLE 实时收发 Pipeline。 |
|
USRP 发射流接口。 |
|
USRP 设备配置参数。 |
|
USRP E310 设备管理。 |
Functions¶
检查当前环境是否安装了 UHD 驱动。 |
Data¶
API¶
- nearlink_sdr.phy.usrp.DEFAULT_CPU_FORMAT¶
'fc32'
- nearlink_sdr.phy.usrp.DEFAULT_WIRE_FORMAT¶
'sc16'
- nearlink_sdr.phy.usrp.E310_ADC_BITS¶
12
- nearlink_sdr.phy.usrp.E310_BW_MAX_HZ¶
56000000.0
- nearlink_sdr.phy.usrp.E310_FREQ_MAX_HZ¶
6000000000.0
- nearlink_sdr.phy.usrp.E310_FREQ_MIN_HZ¶
70000000.0
- nearlink_sdr.phy.usrp.E310_RX_GAIN_MAX¶
76.0
- nearlink_sdr.phy.usrp.E310_RX_GAIN_MIN¶
0.0
- nearlink_sdr.phy.usrp.E310_TX_GAIN_MAX¶
89.75
- nearlink_sdr.phy.usrp.E310_TX_GAIN_MIN¶
0.0
- nearlink_sdr.phy.usrp.SLE_BANDWIDTHS_MHZ¶
(1.0, 2.0, 4.0)
- class nearlink_sdr.phy.usrp.RXStream(device: nearlink_sdr.phy.usrp.USRPDevice)[源代码]¶
USRP 接收流接口。
管理 RX streamer 的生命周期, 提供定量接收和连续接收方法。
Initialization
- open(samps_per_buffer: int = 1000)[源代码]¶
创建 RX streamer 并分配接收缓冲区。
- 参数:
samps_per_buffer -- 每次 recv 调用的缓冲区大小。
- recv_num_samps(num_samps: int) numpy.ndarray[源代码]¶
接收指定数量的样本。
- 参数:
num_samps -- 要接收的样本数。
- 返回:
复基带样本数组, shape (num_samps,), dtype=complex64。
- recv_once() numpy.ndarray[源代码]¶
在连续模式下接收一个缓冲区的样本。
- 返回:
接收到的样本, 长度可能小于缓冲区大小。
- class nearlink_sdr.phy.usrp.SLETransceiver(device: nearlink_sdr.phy.usrp.USRPDevice)[源代码]¶
SparkLink SLE 实时收发 Pipeline。
将 USRP 设备与 PHY 调制/解调模块集成, 提供帧级收发功能。 支持跳频操作。
Initialization
- transmit_iq(iq_samples: numpy.ndarray) int[源代码]¶
发射预调制的 IQ 样本。
- 参数:
iq_samples -- 复基带信号。
- 返回:
实际发射的样本数。
- receive_iq(num_samps: int) numpy.ndarray[源代码]¶
接收指定数量的 IQ 样本。
- 参数:
num_samps -- 要接收的样本数。
- 返回:
接收到的复基带信号。
- transmit_frame(frame_bits: numpy.ndarray, modulate_fn: collections.abc.Callable[[numpy.ndarray], numpy.ndarray]) int[源代码]¶
调制并发射一帧。
- 参数:
frame_bits -- 帧比特序列。
modulate_fn -- 调制函数, 接收比特数组, 返回 IQ 样本。
- 返回:
实际发射的样本数。
- receive_frame(num_samps: int, demodulate_fn: collections.abc.Callable[[numpy.ndarray], numpy.ndarray]) numpy.ndarray[源代码]¶
接收并解调一帧。
- 参数:
num_samps -- 接收样本数。
demodulate_fn -- 解调函数, 接收 IQ 样本, 返回比特数组。
- 返回:
解调后的比特序列。
- hop_and_transmit(channel_num: int, iq_samples: numpy.ndarray, band: str | None = None) int[源代码]¶
跳频后发射。
- 参数:
channel_num -- 目标信道号。
iq_samples -- 要发射的 IQ 样本。
band -- 频段标识, None 沿用当前配置。
- 返回:
实际发射的样本数。
- hop_and_receive(channel_num: int, num_samps: int, band: str | None = None) numpy.ndarray[源代码]¶
跳频后接收。
- 参数:
channel_num -- 目标信道号。
num_samps -- 接收样本数。
band -- 频段标识, None 沿用当前配置。
- 返回:
接收到的 IQ 样本。
- property device: nearlink_sdr.phy.usrp.USRPDevice¶
- class nearlink_sdr.phy.usrp.TXStream(device: nearlink_sdr.phy.usrp.USRPDevice)[源代码]¶
USRP 发射流接口。
管理 TX streamer 的生命周期, 提供帧级发射方法。
Initialization
- send(samples: numpy.ndarray) int[源代码]¶
发射一帧 IQ 样本。
- 参数:
samples -- 复基带样本, dtype=complex64, shape (N,)。
- 返回:
实际发射的样本数。
- send_continuous(samples: numpy.ndarray, num_repeats: int = 1) int[源代码]¶
连续发射, 重复指定次数。
- 参数:
samples -- 单帧 IQ 样本。
num_repeats -- 重复次数。
- 返回:
总发射样本数。
- class nearlink_sdr.phy.usrp.USRPConfig[源代码]¶
USRP 设备配置参数。
- 变量:
device_args -- UHD 设备地址参数, 空字符串表示自动发现。
channel_num -- SLE 射频信道号。
band -- 频段标识 ("2400" / "5100" / "5800")。
sample_rate_hz -- 采样率 (Hz)。
rx_gain_db -- 接收增益 (dB)。
tx_gain_db -- 发射增益 (dB)。
bandwidth_hz -- 前端模拟滤波器带宽 (Hz), 0 表示不设置。
rx_antenna -- 接收天线端口名称。
tx_antenna -- 发射天线端口名称。
clock_source -- 参考时钟源。
time_source -- PPS 时间源。
cpu_format -- 主机端样本格式。
wire_format -- 线缆端样本格式。
num_recv_frames -- 接收缓冲区帧数, 增大可减少溢出。
stream_timeout_s -- 流操作超时时间 (秒)。
- class nearlink_sdr.phy.usrp.USRPDevice(config: nearlink_sdr.phy.usrp.USRPConfig | None = None, use_mock: bool = False, loopback: nearlink_sdr.phy.usrp.LoopbackBuffer | None = None)[源代码]¶
USRP E310 设备管理。
封装 UHD MultiUSRP 对象, 提供 SLE 标准所需的设备配置和控制接口。 无硬件时自动使用 MockUSRP。
Initialization
初始化 USRP 设备。
- 参数:
config -- 设备配置, None 时使用默认配置。
use_mock -- 强制使用 MockUSRP。
loopback -- 环回缓冲区, 仅 Mock 模式有效。
- tune_channel(channel_num: int, band: str | None = None)[源代码]¶
切换到指定 SLE 射频信道。
- 参数:
channel_num -- 射频信道号。
band -- 频段标识, None 沿用当前配置。
- property config: nearlink_sdr.phy.usrp.USRPConfig¶
- property usrp¶
获取底层 UHD/Mock 设备对象。