nearlink_sdr.phy.sdr_backend¶
SDR 硬件后端抽象层。
定义与具体 SDR 硬件无关的统一接口, 支持 UHD (USRP), pyadi-iio (PlutoSDR/ANTSDR), Mock (无硬件仿真) 三种后端。所有后端实现 SDRDevice 接口后即可接入 SLETransceiver。
Module Contents¶
Classes¶
Functions¶
根据配置创建对应的 SDR 设备实例。 |
API¶
- class nearlink_sdr.phy.sdr_backend.SDRConfig[源代码]¶
SDR 设备配置参数 (后端无关)。
- 变量:
backend -- 后端类型 ("uhd" / "pluto" / "mock")。
device_args -- 设备地址参数。UHD: 如 "addr=192.168.10.2"; Pluto: 如 "ip:192.168.2.1"。
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 -- 发射天线端口名称。
stream_timeout_s -- 流操作超时时间 (秒)。
rx_buffer_size -- 接收缓冲区大小 (样本数)。
- class nearlink_sdr.phy.sdr_backend.SDRDevice(config: nearlink_sdr.phy.sdr_backend.SDRConfig)[源代码]¶
Bases:
abc.ABCSDR 设备抽象基类。
所有后端 (UHD, Pluto, Mock) 必须实现此接口。
Initialization
- property config: nearlink_sdr.phy.sdr_backend.SDRConfig¶
- tune_channel(channel_num: int, band: str | None = None) None[源代码]¶
切换到指定 SLE 射频信道。
- 参数:
channel_num -- 射频信道号。
band -- 频段标识, None 沿用当前配置。
- abstractmethod transmit(samples: numpy.ndarray) int[源代码]¶
发射 IQ 样本。
- 参数:
samples -- 复基带样本, dtype=complex64。
- 返回:
实际发射的样本数。
- abstractmethod receive(num_samps: int) numpy.ndarray[源代码]¶
接收指定数量的 IQ 样本。
- 参数:
num_samps -- 要接收的样本数。
- 返回:
复基带样本数组, dtype=complex64。
- nearlink_sdr.phy.sdr_backend.create_device(config: nearlink_sdr.phy.sdr_backend.SDRConfig) nearlink_sdr.phy.sdr_backend.SDRDevice[源代码]¶
根据配置创建对应的 SDR 设备实例。
- 参数:
config -- SDR 配置, 通过 backend 字段选择后端。
- 返回:
SDRDevice 实例。