| 1234567891011121314151617181920212223242526272829303132333435363738394041 | import numpy as npfrom scipy.signal import find_peaks# ==================== 干扰雷达类 ====================class JammerRadar:    def __init__(self, usrp, rx, tx):        self.usrp = usrp        self.rx = rx        self.tx = tx    def execute_countermeasures(self, rx_signal: np.ndarray, algorithm: callable, sample_rate: float) -> np.ndarray:        """        执行抗干扰信号处理        :param rx_signal: 接收信号        :param algorithm: 抗干扰算法        :param sample_rate: 采样率        """        processed_signal = algorithm(            rx_signal=rx_signal,            sample_rate=sample_rate        )        return processed_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
 |