symop.modes.transfer.gaussian.constant_phase

Constant phase transfer function.

This module defines a frequency-independent phase transfer.

The transfer multiplies all spectral components by a constant complex phase factor,

\[H(\omega) = e^{i\phi_0},\]

so it leaves the spectral intensity unchanged and only rotates the complex field globally.

Within the Gaussian-closed envelope formalism, this transfer preserves the Gaussian-closed family exactly. A single Gaussian remains a single Gaussian with shifted phase, and a Gaussian mixture remains a Gaussian mixture with all weights rotated by the same global phase factor.

Classes

ConstantPhase(phi0)

Frequency-independent global phase transfer.

class ConstantPhase(phi0: float) None

Bases: GaussianClosedTransferBase

Frequency-independent global phase transfer.

The transfer is

\[H(\omega) = e^{i\phi_0}.\]

Since the phase factor is independent of \(\omega\), this transfer does not modify the spectral intensity profile and therefore does not introduce attenuation. Its transmissivity is always

\[\eta = 1.\]
Parameters:

phi0 (float) – Global phase shift \(\phi_0\) in radians.

_abc_impl = <_abc._abc_data object>
_as_expansion() GaussianTransferExpansion

Convert the transfer into a Gaussian expansion.

Returns:

Expansion consisting only of a constant term,

\[H(\omega) = c_0, \qquad c_0 = e^{i\phi_0}.\]

Return type:

GaussianTransferExpansion

Notes

Although apply_to_gaussian() is implemented directly for efficiency and clarity, providing this expansion keeps the class compatible with Gaussian-closed analytic machinery that may rely on _as_expansion().

_is_protocol = False
_signature_params(*, ignore_global_phase: bool = False) tuple[float]

Return the parameter tuple used in signatures.

Parameters:

ignore_global_phase (bool) – If True, normalize the global phase to zero for approximate grouping and comparison.

Returns:

Signature parameter tuple.

Return type:

tuple[float]

_signature_tag: ClassVar[str] = 'const_phase'
apply_to_gaussian(env: GaussianClosedEnvelope) tuple[GaussianClosedEnvelope, float]

Apply the transfer analytically to a Gaussian-closed envelope.

Parameters:

env (GaussianClosedEnvelope) – Input envelope in the Gaussian-closed family.

Returns:

Pair (env_out, eta) where env_out is the transformed Gaussian-closed envelope and eta = 1.0.

Return type:

tuple[GaussianClosedEnvelope, float]

Notes

For a single Gaussian envelope, the phase is absorbed into the Gaussian phase parameter \(\phi_0\).

For a Gaussian mixture, the mixture weights are multiplied by the common phase factor \(e^{i\phi_0}\). The represented mode is unchanged up to a global phase, and no loss is introduced.

phi0: float
_check: TransferFunction