Flicker Noise Model
This module implements the analytic \(1/f\) noise covariance model used throughout the pipeline (Zhang et al. 2026, §2.2). Unlike the conventional DFT-diagonal approach, the covariance is defined directly in the time domain via the Wiener–Khinchin theorem, avoiding spurious periodic correlations.
The correlation function
is evaluated analytically using the upper incomplete gamma function and accelerated by a pre-trained polynomial emulator.
Covariance path selection
For evenly-spaced (consecutive) time samples, use
flicker_cov(), which returns a symmetric
Toeplitz matrix (or its first row) and enables the fast Levinson
\(\mathcal{O}(N^2)\) log-likelihood in
log_likeli().
For non-consecutive time samples (e.g., after RFI flagging), use
flicker_cov_general(), which builds the
full \(N\times N\) covariance matrix from pairwise time differences.
Pair it with log_likeli_general() for the
Cholesky-based log-likelihood, and pass consecutive=False to the
noise samplers.
Emulator classes
FlickerCorrEmulator and
LogDetEmulator wrap pre-trained
polynomial emulators (from the MomentEmu package) for fast
evaluation of the correlation function and Toeplitz log-determinant
respectively. They are loaded automatically at import time from pickle
files in the package directory and expose a JAX-compatible interface via
.create_jax().