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).

Parameters:
cgl: ArrayLike

The coherent gain loss (CGL) in dB.

freq_offset: ArrayLike

The frequency offset \(\Delta f\) in Hz.

Returns:

The maximum integration time \(T_c\) in seconds.

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");
   ...: 
../../_images/sdr_max_integration_time_1.png

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");
   ...: 
../../_images/sdr_max_integration_time_2.png