m-thesis-introduction/simulations/airshower_beacon_simulation/view_beaconed_antenna.py

47 lines
1.2 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
import numpy as np
import matplotlib.pyplot as plt
import numpy.fft as ft
from earsim import Antenna
import aa_generate_beacon as beacon
if __name__ == "__main__":
import os.path as path
fname = "ZH_airshower/mysim.sry"
####
fname_dir = path.dirname(fname)
antennas_fname = path.join(fname_dir, beacon.antennas_fname)
f_beacon, tx, antennas = beacon.read_beacon_hdf5(antennas_fname)
idx = [0, len(antennas)//2, -1]
fig1, axs = plt.subplots(2)
axs[0].set_xlabel('t [ns]')
axs[0].set_ylabel('[$\mu$V/m]')
axs[1].set_xlabel('f [GHz]')
axs[1].set_ylabel('Power')
for i in idx:
ant = antennas[i]
n_samples = len(ant.t)
samplerate = (ant.t[-1] - ant.t[0])/n_samples
axs[0].axvline(ant.t[0], color='k', alpha=0.5)
for direction, trace in dict(x=ant.Ex, y=ant.Ex, z=ant.Ez).items():
freqs = ft.fftfreq(n_samples, 1/samplerate)[:n_samples//2]
fft = 2*ft.fft(trace)[:n_samples//2]/n_samples
axs[0].plot(ant.t, trace, label=f"E{direction} {i}")
axs[1].plot(freqs, np.abs(fft))
fig1.legend(loc='center right', ncol=min(3, len(idx)))
#fig1.savefig('./fig1.png')
plt.show()