- sdr.max_integration_time(cgl: ArrayLike, freq_offset: ArrayLike) NDArray[float64]
Computes the maximum integration time that produces at most the provided coherent gain loss (CGL).
Notes
The inverse sinc function is calculated using numerical techniques.
Examples
Compute the maximum integration time that produces at most 3 dB of coherent gain loss for a frequency offset of 235 Hz.
In [1]: sdr.max_integration_time(3, 235) Out[1]: 0.0018818867640235891
Compute the maximum integration time that produces at most 3 dB of coherent gain loss for an array of frequency offsets.
In [2]: sdr.max_integration_time(3, [0, 100, 200, 300, 400, 500]) Out[2]: array([ inf, 0.00442243, 0.00221122, 0.00147414, 0.00110561, 0.00088449])
Plot the maximum integration time as a function of frequency offset.
In [3]: f = np.linspace(0, 1e3, 1001) In [4]: plt.figure(); \ ...: plt.plot(f, sdr.max_integration_time(0.1, f) * 1e3, label="0.1 dB"); \ ...: plt.plot(f, sdr.max_integration_time(1, f) * 1e3, label="1 dB"); \ ...: plt.plot(f, sdr.max_integration_time(3, f) * 1e3, label="3 dB"); \ ...: plt.legend(); \ ...: plt.ylim(0, 10); \ ...: plt.xlabel("Frequency offset (Hz)"); \ ...: plt.ylabel("Maximum integration time (ms)"); \ ...: plt.title("Maximum integration time for various coherent gain losses"); ...:
Plot the maximum integration time as a function of coherent gain loss.
In [5]: cgl = np.linspace(0, 10, 1001) In [6]: plt.figure(); \ ...: plt.plot(cgl, sdr.max_integration_time(cgl, 50) * 1e3, label="50 Hz"); \ ...: plt.plot(cgl, sdr.max_integration_time(cgl, 100) * 1e3, label="100 Hz"); \ ...: plt.plot(cgl, sdr.max_integration_time(cgl, 200) * 1e3, label="200 Hz"); \ ...: plt.legend(); \ ...: plt.ylim(0, 10); \ ...: plt.xlabel("Coherent gain loss (dB)"); \ ...: plt.ylabel("Maximum integration time (ms)"); \ ...: plt.title("Maximum integration time for various frequency offsets"); ...: