Simple OFDM baseband link with Rayleigh multipath, AWGN, and three jammer models.
python sim.py --mode barrage --snr_db 20 --sir_db -5Optional sweep and plot (requires matplotlib):
python sim.py --mode partial --snr_db 20 --plotYou can enable a simple SIMO/MIMO receiver array with optional jammer nulling:
python sim.py --mode barrage --n_tx 2 --n_rx 2 --beamform mvdr --aoa_sig_deg 10 --aoa_jam_deg -30Simplified GPS C/A-code correlator with optional jamming and spoofing.
python gps_jamming_spoofing_sim.py --plot
python gps_jamming_spoofing_sim.py --mode barrage --jsr_db 10 --plot
python gps_jamming_spoofing_sim.py --spoof_db 6 --spoof_delay_chips 0.5 --plot
python gps_jamming_spoofing_sim.py --plot --doppler_hz 1200 --doppler_max_hz 5000 --doppler_step_hz 250 --coh_ms 1 --noncoh_ms 10
python gps_jamming_spoofing_sim.py --plot \
--doppler_rate_hz_s 5 --spoof_doppler_rate_hz_s -2 \
--coh_ms 1 --noncoh_ms 10 \
--cfar_scale 6barrage: wideband Gaussian noise.tone: single-tone interferer at a specified FFT bin.partial: Gaussian noise over a fraction of occupied subcarriers.
- Perfect channel knowledge is assumed for equalization.
- SIR is defined as
signal_power / jammer_powerat the receiver.