envelope op• Data kinds: sweep → signal
• Call: import interferometry; interferometry.csi_envelope(signal, remove_bias=True) (or opsinterferometry.get("csi_envelope"))
Coherence envelope of a z-scan interferogram (analytic-signal magnitude).
`dsp.envelope computes |hilbert(x)|` for any 1-D signal and is called
here verbatim, so the two can never drift apart. The one thing added is the
one thing an interferogram needs and a generic signal does not: **removal of
the intensity pedestal**. An interferogram is `a + b*V(z)*cos(...)` with
`a > 0, and the analytic-signal magnitude of that is not b*V` — the DC
term passes through the Hilbert transform untouched and dominates.
Measured on the module's reference scan (`a = 0.5, b = 0.4`, envelope
sigma 1.2 um, surface centred): with the bias removed the envelope matches the
analytic `b*V(z)` to 1.83e-07; without it, the error is 0.5 — the
entire pedestal — and the recovered "envelope" never goes near zero.
`dsp.envelope` called directly on the same raw interferogram gives that
identical 0.5, which is the honest statement of what this operator adds. That
is why `remove_bias defaults to True; False` is available for a scan
whose pedestal you have already removed some other way, and it is your
statement that you did.
signal: 1-D scan intensities (`(n,)`, n >= 3).
remove_bias: subtract the scan mean before the transform.
Returns a 1-D float64 envelope of the same length.
Raises `ValueError`: a non-1-D, empty, too-short (< 3), non-finite,
complex or masked *signal*, a *signal* over :data:MAX_SCAN_POINTS elements
(checked before the float64 promotion), or a non-bool *remove_bias*.
• coherence_scanning family guide
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• coherence_scanning — py -3.11 examples/coherence_scanning.py
signal as input)—
envelope)—
*Provenance: interferometry.py — INTERFEROMETRY operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.