import numpy as np from scipy.signal import find_peaks # ==================== 干扰雷达类 ==================== class JammerRadar: def __init__(self, usrp, rx, tx): self.usrp = usrp self.rx = rx self.tx = tx def execute_jamming(self, rx_signal: np.ndarray, algorithm: callable, bandwidth: float, sample_rate: float) -> np.ndarray: """ 执行干扰信号生成 :param rx_signal: 接收的侦查信号 :param algorithm: 干扰算法 :param bandwidth: 信号带宽 (Hz) :param sample_rate: 采样率 (Hz) """ # 基于接收信号生成干扰 jamming_signal = algorithm( rx_signal=rx_signal, bandwidth=bandwidth, sample_rate=sample_rate ) return jamming_signal.astype(np.complex64) #封装一个发送信号的函数 def send_signal(self, tx_signal, duration, center_freq, sample_rate, gain): # 发送信号 self.usrp.send_waveform(tx_signal, duration, center_freq, sample_rate, self.tx, gain) print('干扰雷达已发送信号') # 封装一个接收信号的函数 def recv_signal(self, num_samples, sample_rate, center_freq): rx_signal = self.usrp.recv_num_samps(num_samples, center_freq,sample_rate,self.rx) print('干扰雷达已接收信号') return rx_signal