attoworld.personal.nick
This file contains functions primarily used by Nick Karpowicz.
def
dark_plot():
6def dark_plot(): 7 """ 8 Use a dark style for matplotlib plots. 9 """ 10 rcParams["font.family"] = "sans-serif" 11 rcParams["font.sans-serif"] = [ 12 "Helvetica", 13 "Arial", 14 "Verdana", 15 "DejaVu Sans", 16 "Liberation Sans", 17 "Bitstream Vera Sans", 18 "sans-serif", 19 ] 20 rcParams["axes.prop_cycle"] = cycler( 21 color=["cyan", "magenta", "orange", "blueviolet", "lime"] 22 ) 23 rcParams["figure.facecolor"] = "#171717" 24 rcParams["figure.edgecolor"] = rcParams["figure.facecolor"] 25 rcParams["savefig.facecolor"] = rcParams["figure.facecolor"] 26 rcParams["savefig.edgecolor"] = rcParams["figure.facecolor"] 27 rcParams["axes.facecolor"] = "black" 28 rcParams["text.color"] = "white" 29 rcParams["axes.edgecolor"] = "white" 30 rcParams["axes.labelcolor"] = "white" 31 rcParams["xtick.color"] = "white" 32 rcParams["ytick.color"] = "white" 33 rcParams["grid.color"] = "white" 34 rcParams["lines.color"] = "white"
Use a dark style for matplotlib plots.
def
get_effective_response( E_signal, E_reference, dt: float, filter_f0: float, filter_sigma: float, filter_order: int):
122def get_effective_response( 123 E_signal, 124 E_reference, 125 dt: float, 126 filter_f0: float, 127 filter_sigma: float, 128 filter_order: int, 129): 130 """ 131 Calculate the effective impulse response with the reactive response removed 132 133 Args: 134 E_signal: the signal waveform array 135 E_reference: the reference waveform 136 dt (float): the time step 137 filter_f0 (float): central frequency of the bandpass 138 filter_sigma (float): width of the bandpass 139 filter_order (int): order of the bandpass 140 141 Returns: 142 np.ndarray: the impuse response 143 """ 144 145 analytic_signal = sig.hilbert(np.real(E_signal)) 146 analytic_reference = sig.hilbert(np.real(E_reference)) 147 148 response = filtered_impulse_response( 149 analytic_signal, analytic_reference, dt, filter_f0, filter_sigma, filter_order 150 ) 151 window_response = filtered_impulse_response( 152 analytic_reference, 153 analytic_reference, 154 dt, 155 filter_f0, 156 filter_sigma, 157 filter_order, 158 ) 159 matched_window_response = minimize_response_difference(response, window_response) 160 return np.real(response - matched_window_response)
Calculate the effective impulse response with the reactive response removed
Arguments:
- E_signal: the signal waveform array
- E_reference: the reference waveform
- dt (float): the time step
- filter_f0 (float): central frequency of the bandpass
- filter_sigma (float): width of the bandpass
- filter_order (int): order of the bandpass
Returns:
np.ndarray: the impuse response