1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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_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
|