Skip to content

Validate fractional-lag recovery with independent acquisition noise - #106

Closed
ameoli wants to merge 1 commit into
mainfrom
codex/validate-fractional-lag-105
Closed

ameoli wants to merge 1 commit into
mainfrom
codex/validate-fractional-lag-105

Conversation

@ameoli

@ameoli ameoli commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

Superseded by #107, which contains the same commit and changes under the replacement branch.

The fractional-lag fix was already implemented, but the recovery tests compared the same sweep index from separate campaigns and therefore reused receiver-noise streams. A temperature/strain pair could pass without demonstrating recovery from independently noisy acquisitions.

This change completes the remaining validation for #105:

  • Use reference sweep 0 and measurement sweep 1 with a shared fiber seed, including the existing 2 mm/1 cm/5 cm strain tests.
  • Add 16 full-pipeline cases covering ±17 microstrain and ±5 K, two fiber seeds, and single-ended/balanced detection. Check the complex fiber fingerprint, receiver-noise residual correlation, ADC clipping, median bias, window RMSE, and the unperturbed region.
  • Validate the shipped fixed-8x/continuous estimator against 258 known fractional/periodic-boundary shifts across three Rayleigh seeds and two window sizes. Document why this replaces the original configurable-padding proposal.
  • Record metrics in pytest JUnit properties and document the tested conditions and limitations.

Validation on Windows / Python 3.12.10 (NumPy 2.5.4, SciPy 1.18.1): full suite 726 passed, 4 existing time-warp warnings; targeted tests 28 passed. git diff --check passed. Across the 16 new pipeline cases, maximum absolute relative median bias was 0.601%, window RMSE 2.781%, and absolute receiver-noise correlation 0.00386. Maximum noiseless circular lag error was 1.04e-8 bins. Negative controls showed correlation 1.0 when reusing a sweep, and the old parabolic estimator recovered 6.733 K from a +5 K input and failed the new recovery criteria.

Production code and estimator behavior are unchanged. These cases validate the stated simulated receiver-noise regime, not experimental accuracy or robustness to arbitrary noise/decorrelation.

Related: #105.

@ameoli ameoli closed this Oct 26, 2026
@ameoli
ameoli deleted the codex/validate-fractional-lag-105 branch October 26, 2026 21:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant