- sdr.max_frequency_offset(cgl: ArrayLike, integration_time: ArrayLike) NDArray[float64]
Computes the maximum frequency offset that produces at most the provided coherent gain loss (CGL).
Notes
The inverse sinc function is calculated using numerical techniques.
Examples
Compute the maximum frequency offset that produces at most 3 dB of coherent gain loss for an integration time of 1 ms.
In [1]: sdr.max_frequency_offset(3, 1e-3) Out[1]: 442.2433896262681
Compute the maximum frequency offset that produces at most 3 dB of coherent gain loss for an array of integration times.
In [2]: sdr.max_frequency_offset(3, [1e-3, 2e-3, 3e-3]) Out[2]: array([442.24338963, 221.12169481, 147.41446321])
Plot the maximum frequency offset as a function of integration time.
In [3]: t = np.linspace(0, 10e-3, 1001) In [4]: plt.figure(); \ ...: plt.plot(t * 1e3, sdr.max_frequency_offset(0.1, t), label="0.1 dB"); \ ...: plt.plot(t * 1e3, sdr.max_frequency_offset(1, t), label="1 dB"); \ ...: plt.plot(t * 1e3, sdr.max_frequency_offset(3, t), label="3 dB"); \ ...: plt.legend(); \ ...: plt.ylim(0, 1e3); \ ...: plt.xlabel("Integration time (ms)"); \ ...: plt.ylabel("Maximum frequency offset (Hz)"); \ ...: plt.title("Maximum frequency offset for various coherent gain losses"); ...:
Plot the maximum frequency offset as a function of coherent gain loss.
In [5]: cgl = np.linspace(0, 10, 1001) In [6]: plt.figure(); \ ...: plt.plot(cgl, sdr.max_frequency_offset(cgl, 0.5e-3), label="0.5 ms"); \ ...: plt.plot(cgl, sdr.max_frequency_offset(cgl, 1e-3), label="1 ms"); \ ...: plt.plot(cgl, sdr.max_frequency_offset(cgl, 2e-3), label="2 ms"); \ ...: plt.legend(); \ ...: plt.ylim(0, 1e3); \ ...: plt.xlabel("Coherent gain loss (dB)"); \ ...: plt.ylabel("Maximum frequency offset (Hz)"); \ ...: plt.title("Maximum frequency offset for various integration times"); ...: