Here’s the nuts-and-bolts workflow the paper prescribes for both channels, with the exact objects you build and why.
You record the fractional frequency series \(y(t)\equiv \ln(\nu_\infty/\nu_r)\) and adopt one-sided PSDs: \(S_y(f)\) in Hz\(^{-1}\) for the clock and \(S_\Phi(\Omega)\) in seconds for lapse noise; Fourier and filter conventions are explicit in the paper.
Whiten the slope. Differentiate and whiten \(\dot y(t)\) using the measured \(S_y(f)\) (one-sided).
Build the template primitive. Form
\[ s(t)=\int^t L(t')\,dt',\quad s(f)=\frac{L(f)}{i\,2\pi f}, \]
so the prediction \(\dot y(t) \approx -\lambda\,L(t)\) is linear in \(\lambda=G/(c^4 r)\).
\[ \mathrm{Var}(\hat\lambda)=\Big[\,2\!\int_0^\infty \frac{|s(f)|^2}{S_y(f)}\,df\Big]^{-1}. \]
Stacking \(M\) flares increases the integral by \(M\) (hence SNR \(\propto\sqrt{M}\)); two-clock cross-correlation earns another \(\sqrt2\) for uncorrelated noise.
\[ \frac{\delta\hat\lambda}{\hat\lambda}\simeq-\epsilon_r-\epsilon_L \quad\Rightarrow\quad \mathrm{Var}_{\rm tot}\!\left(\hat\lambda\right)\approx \mathrm{Var}_{\rm stat}\!+\hat\lambda^2(\sigma_r^2+\sigma_L^2)+\Delta_S, \]
with \(\Delta_S\) from PSD mis-model tests; lab runs are typically dominated by \(r,L\) calibration.
\[ F(\Omega)=\int f_{\rm meas}(t)\,e^{i\Omega t}\,dt , \]
noting that finite rise/fall simply reshapes \(|F(\Omega)|^2\); the matched-filter integral remains valid (no deconvolution needed).
\[ -\ln V=\frac{\omega^2}{2}\int_0^\infty \frac{d\Omega}{2\pi}\, S_\Phi(\Omega)\,|F(\Omega)|^2 , \]
and—if you also give a white/low-band approximation—add the Markovian \(S_\Phi(0)\) bound for the same data.
\[ |F(\Omega)|^2=\left(\frac{2\sin(\Omega T/2)}{\Omega}\right)^{\!2}, \]
which sets the sinc² passband used in the integral.
That’s the full “what you compute” picture; next we can walk through an example run end-to-end.
Symbol | Name | Meaning (units) | Typical value/example | Metaphor | ||
---|---|---|---|---|---|---|
\(y(t)\) | Log redshift | \(\ln(\nu_\infty/\nu_r)\) (–) | Clock output you record | “Pitch log” | ||
\(S_y(f)\) | Clock PSD | One-sided PSD of \(y\) (Hz\(^{-1}\)) | Used for whitening \(\dot y\) | “Noise map of the dial” | ||
\(\dot y(t)\) | Redshift drift | Time-slope of \(y\) (s\(^{-1}\)) | Cross-correlate with \(L(t)\) | “Pitch change rate” | ||
\(s(t)\) | Flux primitive | \(\int^t\!L(t')dt'\) (J) | \(s(f)=L(f)/(i2\pi f)\) | “Cumulative push” | ||
\(\lambda\) | Gain | \(G/(c^4 r)\) (s²·kg\(^{-1}\)·m\(^{-1}\)) | Slope in \(\dot y=-\lambda L\) | “Gear ratio” | ||
\(\mathrm{Var}(\hat\lambda)\) | Estimator variance | From \(S_y\) and ( | s(f) | ^2) | Eq. above | “Error bar size” |
\(f(t)\) | Path indicator | +1/−1 timing pattern (–) | Ramsey/MZ/echo | “Which road when” | ||
\(F(\Omega)\) | Sequence filter | FT of \(f\) (s) | sinc² for rectangular | “Sieve selecting tones” | ||
\(V\) | Visibility | Fringe contrast \([0,1]\) (–) | Measured per run | “Stripe sharpness” | ||
\(S_\Phi(\Omega)\) | Lapse PSD | One-sided spectrum (s) | Bounded via integral | “Noise color of time” |