Deadtime uncertainty functions

Functions:

unc_fft(vals1, vals2[, wpm, fpm, wfm, ffm, ...])

Calculate dead time uncertainty using the Fourier transform strategy [1].

masercov_fft(vals[, wpm, fpm, wfm, ffm, ...])

Calculate covariance between intervals sampling the same maser noise.

cov_fft(vals1, vals2[, wpm, fpm, wfm, ffm, ...])

Calculate covariance for pairs of intervals sampling the same maser noise.

tintervals.deadtime.unc_fft(vals1, vals2, wpm=0.0, fpm=0.0, wfm=0.0, ffm=0.0, rwfm=0.0, fwfm=0.0, step=1.0, scale=1.0, ext_factor=10, return_dict=False, return_fft=False)

Calculate dead time uncertainty using the Fourier transform strategy [1].

Parameters:
  • vals1 (2d array) – starting intervals in the form start,stop

  • vals2 (2d array) – ending intervals in the form start, stop

  • wpm (float, optional) – white phase modulation noise, Adev normalized, by default 0.

  • fpm (float, optional) – flicker phase modulation noise, Adev normalized, by default 0.

  • wfm (float, optional) – white frequency modulation noise, Adev normalized, by default 0.

  • ffm (float, optional) – flicker frequency modulation noise, Adev normalized, by default 0.

  • rwfm (float) – random walk frequency modulation noise, Adev normalized, optional, by default 0.

  • fwfm (float, optional) – flicker walk frequency modulation noise, Hadamar dev normalized, by default 0.

  • step (float, optional) – minimum time interval in seconds, by default 1

  • scale (float or 'day', optional) – scale of the input intervals, by default 1. If ‘day’, it is converted to 86400, for example for intervals given in MJD.

  • ext_factor (float, optional) – extension factor (padding) of the FFT, by default 10

  • return_dict (bool, optional) – If True, also return a tally of uncertainty by noise type, by default False

  • return_fft (bool, optional) – If True, also return FFT arrays, by default False

Returns:

  • unc (float) – Dead time uncertainty between vals1 and vals2

  • par (dict) – Dictionary with each component of the uncertainty for ‘wpm’, ‘fpm’, ‘wfm’, ‘ffm’, ‘rwfm’, ‘fwfm’ Only provided if return_dict is True.

  • fft_freq, fft_sens, fft_psd (arrays) – Arrays of the frequency, sensitivity function and noise psd used in the calculations. Only provided if return_fft is True.

Notes

Noise type ‘wpm’, ‘fpm’, ‘wfm’, ‘ffm’, ‘rwfm’ corresponds to the usual power-law noise and should be given as the corresponding value of the Allan deviation of the noise at 1 s. See for example [2]. Noise type ‘fwfm’ corresponds to flicker walk frequency noise and should be given as the corresponding value of the Hadamar deviation of the noise at 1 s. See for example [3][4].

Example

>>> maser_noise = {'wfm': 4e-14, 'ffm': 3e-16}
>>> initial = np.array([[0,1], [2,3]])
>>> final = np.array([[0,5]])
>>> ti.deadtime.unc_fft(initial, final, **maser_noise, scale='day')
2.0026233736533257e-16

References

tintervals.deadtime.masercov_fft(vals, wpm=0.0, fpm=0.0, wfm=0.0, ffm=0.0, rwfm=0.0, fwfm=0.0, step=1.0, scale=1.0, ext_factor=10, return_dict=False)

Calculate covariance between intervals sampling the same maser noise. Note that this is not yet a dead-time covariance, that can be calculated by the law of propagation of uncertainties.

Parameters:
  • vals (list of 2d array) – list of sampling intervals in the form start,stop

  • wpm (float, optional) – white phase modulation noise, Adev normalized, by default 0.

  • fpm (float, optional) – flicker phase modulation noise, Adev normalized, by default 0.

  • wfm (float, optional) – white frequency modulation noise, Adev normalized, by default 0.

  • ffm (float, optional) – flicker frequency modulation noise, Adev normalized, by default 0.

  • rwfm (float) – random walk frequency modulation noise, Adev normalized, optional, by default 0.

  • fwfm (float, optional) – flicker walk frequency modulation noise, Hadamar dev normalized, by default 0.

  • step (float, optional) – minimum time interval in seconds, by default 1

  • scale (float or 'day', optional) – scale of the input intervals, by default 1. If ‘day’, it is converted to 86400, for example for intervals given in MJD.

  • ext_factor (float, optional) – extension factor (padding) of the FFT, by default 10

  • return_dict (bool, optional) – If True, also return a tally of covariance by noise type, by default False

Returns:

  • cov (2d array) – Covariance from the maser noise sampled by different intervals.

  • par (dict) – Dictionary each covariance for ‘wpm’, ‘fpm’, ‘wfm’, ‘ffm’, ‘rwfm’, ‘fwfm’. Only provided if return_dict is True.

Notes

Noise type ‘wpm’, ‘fpm’, ‘wfm’, ‘ffm’, ‘rwfm’ corresponds to the usual power-law noise and should be given as the corresponding value of the Allan deviation of the noise at 1 s. See for example [2]. Noise type ‘fwfm’ corresponds to flicker walk frequency noise and should be given as the corresponding value of the Hadamar deviation of the noise at 1 s. See for example [3][4].

References

tintervals.deadtime.cov_fft(vals1, vals2, wpm=0.0, fpm=0.0, wfm=0.0, ffm=0.0, rwfm=0.0, fwfm=0.0, step=1.0, scale=1.0, ext_factor=10, return_dict=False)

Calculate covariance for pairs of intervals sampling the same maser noise. From an input of two list of intervals of length N, returns a NxN covariance matrix.

Parameters:
  • vals1 (list of 2d array) – list of sampling intervals in the form start,stop

  • vals2 (list of 2d array (same length as vals1)) – list of sampling intervals in the form start,stop

  • wpm (float, optional) – white phase modulation noise, Adev normalized, by default 0.

  • fpm (float, optional) – flicker phase modulation noise, Adev normalized, by default 0.

  • wfm (float, optional) – white frequency modulation noise, Adev normalized, by default 0.

  • ffm (float, optional) – flicker frequency modulation noise, Adev normalized, by default 0.

  • rwfm (float) – random walk frequency modulation noise, Adev normalized, optional, by default 0.

  • fwfm (float, optional) – flicker walk frequency modulation noise, Hadamar dev normalized, by default 0.

  • step (float, optional) – minimum time interval in seconds, by default 1

  • scale (float or 'day', optional) – scale of the input intervals, by default 1. If ‘day’, it is converted to 86400, for example for intervals given in MJD.

  • ext_factor (float, optional) – extension factor (padding) of the FFT, by default 10

  • return_dict (bool, optional) – If True, also return a tally of covariance by noise type, by default False

Returns:

  • cov (2d array) – Covariance of the dead time extrapolation.

  • par (dict) – Dictionary each covariance for ‘wpm’, ‘fpm’, ‘wfm’, ‘ffm’, ‘rwfm’, ‘fwfm’. Only provided if return_dict is True.

Notes

Noise type ‘wpm’, ‘fpm’, ‘wfm’, ‘ffm’, ‘rwfm’ corresponds to the usual power-law noise and should be given as the corresponding value of the Allan deviation of the noise at 1 s. See for example [2]. Noise type ‘fwfm’ corresponds to flicker walk frequency noise and should be given as the corresponding value of the Hadamar deviation of the noise at 1 s. See for example [3][4].

References