nearlink_sdr.phy.equalizer¶
TXS-10002-2025 均衡器: ZF / MMSE 频域与时域均衡。
对于 SparkLink SLE 的 PSK 调制 (帧类型 2-4),接收端需要 信道均衡来对抗多径衰落引起的符号间干扰 (ISI)。
Module Contents¶
Functions¶
逐符号 1-tap 均衡 (平坦衰落信道)。 |
|
MMSE 频域均衡。 |
|
MMSE 时域均衡器 (FIR Wiener 滤波器)。 |
|
零强制 (ZF) 频域均衡。 |
|
基于已知训练序列的频域信道估计 (LS)。 |
API¶
- nearlink_sdr.phy.equalizer.equalize_1tap(rx_symbols: numpy.ndarray, h_coeffs: numpy.ndarray, noise_var: float = 0.0, method: str = 'mmse') numpy.ndarray[源代码]¶
逐符号 1-tap 均衡 (平坦衰落信道)。
- 参数:
rx_symbols -- 接收符号。
h_coeffs -- 每个符号的信道系数 (与 rx_symbols 等长)。
noise_var -- 噪声方差, 仅 MMSE 使用。
method -- "zf" 或 "mmse"。
- 返回:
均衡后的符号。
- nearlink_sdr.phy.equalizer.equalize_mmse_freq(rx_signal: numpy.ndarray, channel_freq: numpy.ndarray, noise_var: float) numpy.ndarray[源代码]¶
MMSE 频域均衡。
H_mmse[k] = conj(H[k]) / (|H[k]|^2 + sigma^2)
- 参数:
rx_signal -- 接收信号 (时域)。
channel_freq -- 信道频率响应 H[k]。
noise_var -- 噪声方差 sigma^2。
- 返回:
均衡后的时域信号。
- nearlink_sdr.phy.equalizer.equalize_mmse_time(rx_signal: numpy.ndarray, channel_taps: numpy.ndarray, noise_var: float, n_taps_eq: int = 11) numpy.ndarray[源代码]¶
MMSE 时域均衡器 (FIR Wiener 滤波器)。
计算 MMSE 最优 FIR 滤波器系数: w = R^{-1} p 其中 R = h自相关 + 噪声, p = h与期望延迟的互相关。
- 参数:
rx_signal -- 接收信号。
channel_taps -- 信道冲激响应 h[0], h[1], ..., h[L-1]。
noise_var -- 噪声方差。
n_taps_eq -- 均衡器 FIR 长度。
- 返回:
均衡后的信号。
- nearlink_sdr.phy.equalizer.equalize_zf(rx_signal: numpy.ndarray, channel_freq: numpy.ndarray) numpy.ndarray[源代码]¶
零强制 (ZF) 频域均衡。
- 参数:
rx_signal -- 接收信号 (时域)。
channel_freq -- 信道频率响应 H[k], 长度等于 rx_signal 的 FFT 长度。
- 返回:
均衡后的时域信号。
- nearlink_sdr.phy.equalizer.estimate_channel_freq(rx_signal: numpy.ndarray, tx_known: numpy.ndarray, n_fft: int | None = None) numpy.ndarray[源代码]¶
基于已知训练序列的频域信道估计 (LS)。
H_est[k] = Y[k] / X[k]
- 参数:
rx_signal -- 接收到的训练序列。
tx_known -- 已知的发送训练序列。
n_fft -- FFT 长度, 默认为信号长度。
- 返回:
估计的信道频率响应。