csi_envelope — INTERFEROMETRY envelope op

Data kinds: sweepsignal

Call: import interferometry; interferometry.csi_envelope(signal, remove_bias=True) (or opsinterferometry.get("csi_envelope"))

Usage

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*.

Detailed usage guide

coherence_scanning family guide

References (sample data, literature)

• 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.

Runnable examples (verified samples that actually call this op)

coherence_scanningpy -3.11 examples/coherence_scanning.py

Ops the type connects to (they accept signal as input)

Same category (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.