get_time_response

qugradlab.pulses.filtering.get_time_response(sample_times: ndarray[float64], low_pass_time_constant: float, high_pass_time_constant: float, low_pass_order: int, mononomial_order: int, high_pass_order: int) ndarray[float64][source]

Generates the response of the transfer function

\[ T(\omega)= \frac{(i\omega\tau')^m}{(1+i\omega\tau)^n}. \]

to a Heaviside step function multiplied by a mononomial of order mononomial_order

\[\begin{split} g\left(t\right)=\tau^{-n}\tau'^{m}\Theta\left(t\right) \frac{\Gamma\left(j+1\right)t^{n-m+j}}{\Gamma\left(n-m+j+1\right)} {_1F_1}\left[\begin{matrix} n\\ n-m+j+1 \end{matrix}\:; -t\tau^{-1}\right]. \end{split}\]

where \(\tau\) corresponds to low_pass_time_constant, \(\tau'\) corresponds to high_pass_time_constant, \(m\) corresponds to high_pass_order, \(n\) corresponds to low_pass_order, \(j\) corresponds to mononomial_order, \(\Theta\) is the Heaviside step function, \(\Gamma\) is the Gamma function, and \({_1F_1}\) is the confluent hypergeometric function.

Parameters:
  • sample_times (NDArray[Shape[n_samples], np.float64]) – The times at which the response function is evaluated.

  • low_pass_time_constant (float) – The time constant of the low pass type filter. To apply a pure low pass filter set high_pass_order_constant = 0.

  • high_pass_time_constant (float) – The time constant of the high pass type filter. To apply a pure high pass filter high_pass_time_constant should equal low_pass_time_constant.

  • low_pass_order (int) – The order of the low pass type filter. To apply a pure low pass filter set high_pass_order = 0.

  • mononomial_order (NDArray[Shape[n_orders], int]) – The order of the mononomial. 0 corresponds constant, 1 linear, etc.

  • high_pass_order (int) – The order of the high pass type filter. To apply a pure high pass filter high_pass_time_constant should equal low_pass_time_constant and high_pass_order should equal low_pass_order.

Returns:

The response function evaluated at sample_times.

Return type:

NDArray[Shape[n_orders, n_samples], np.float64]