symop.modes.transfer.gaussian

Gaussian-closed transfer functions.

This subpackage provides transfer functions that admit a closed-form analytic action on Gaussian-closed envelopes.

Overview

All transfers exposed here implement the SupportsGaussianClosedTransfer capability via GaussianClosedTransferBase.

Such transfers can be applied without numerical FFT-based filtering, preserving an analytic representation of the envelope.

The action follows two main patterns:

  • Expansion-based filtering The transfer is represented as a finite sum of Gaussian atoms

    \[H(\omega) = c_0 + \sum_k c_k G_k(\omega),\]

    and applied analytically via GaussianTransferExpansion. This typically produces a Gaussian mixture.

  • Parameter transforms The transfer modifies envelope parameters directly without changing its Gaussian structure. This preserves a single Gaussian representation and avoids mixture growth.

Available transfers

The following Gaussian-compatible transfer functions are provided:

Notes

  • These transfers operate on mode descriptors (normalized envelopes).

  • Any loss (transmissivity \(\eta\)) is returned separately and should be applied at the quantum state level.

  • Expansion-based transfers may increase representation complexity (Gaussian mixtures).

  • Parameter transforms preserve a single Gaussian structure.

  • Transfers that are not representable in this formalism fall back to the numerical filtering path (see symop.modes.transfer.apply).

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
class GaussianBandpass(w0: float, sigma_w: float) None

Bases: GaussianClosedTransferBase

Gaussian band-pass amplitude transfer.

\[H(\omega) = \exp\left[ -\frac{1}{2} \left( \frac{\omega-\omega_0}{\sigma_\omega} \right)^2 \right].\]
Parameters:
  • w0 (float) – Center angular frequency \(\omega_0\).

  • sigma_w (float) – Bandwidth parameter \(\sigma_\omega\).

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

Convert this transfer into a Gaussian expansion.

Returns:

Expansion consisting of a single Gaussian atom:

\[H(\omega) = \exp\left[ -\frac{1}{2} \left( \frac{\omega-\omega_0}{\sigma_\omega} \right)^2 \right].\]

Return type:

GaussianTransferExpansion

Notes

This representation enables closed-form propagation of Gaussian envelopes and Gaussian mixtures.

_is_protocol = False
_signature_tag: ClassVar[str] = 'gauss_bandpass'
sigma_w: float
w0: float
class GaussianHighpass(w0: float, sigma_w: float) None

Bases: GaussianClosedTransferBase

Soft Gaussian high-pass amplitude transfer.

The transfer is defined by

\[H(\omega) = 1 - \exp\left[ -\frac{1}{2} \left( \frac{\omega-\omega_0}{\sigma_\omega} \right)^2 \right].\]
Parameters:
  • w0 (float) – Center angular frequency \(\omega_0\).

  • sigma_w (float) – Width parameter \(\sigma_\omega\) of the complementary Gaussian low-pass.

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

Convert this transfer into a Gaussian expansion.

Returns:

Expansion of the form

\[H(\omega) = c_0 + c_1 \exp\left[ -\frac{1}{2} \left( \frac{\omega-\omega_0}{\sigma_\omega} \right)^2 \right],\]

with

\[c_0 = 1, \qquad c_1 = -1.\]

Return type:

GaussianTransferExpansion

Notes

This representation allows the transfer to be applied in closed form to Gaussian-closed envelopes.

_is_protocol = False
_signature_tag: ClassVar[str] = 'gauss_highpass'
sigma_w: float
w0: float
class GaussianLowpass(w0: float, sigma_w: float) None

Bases: GaussianClosedTransferBase

Gaussian low-pass amplitude transfer.

\[H(\omega) = \exp\left[ -\frac{1}{2} \left( \frac{\omega-\omega_0}{\sigma_\omega} \right)^2 \right].\]
Parameters:
  • w0 (float) – Center angular frequency \(\omega_0\).

  • sigma_w (float) – Bandwidth parameter \(\sigma_\omega\).

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

Convert this transfer into a Gaussian expansion.

Returns:

Expansion consisting of a single Gaussian atom:

\[H(\omega) = \exp\left[ -\frac{1}{2} \left( \frac{\omega-\omega_0}{\sigma_\omega} \right)^2 \right].\]

Return type:

GaussianTransferExpansion

Notes

This representation enables closed-form propagation of Gaussian envelopes and Gaussian mixtures.

_is_protocol = False
_signature_tag: ClassVar[str] = 'gauss_lowpass'
sigma_w: float
w0: float
class TimeDelay(tau: float) None

Bases: GaussianClosedTransferBase

Time delay in the frequency domain.

\[H(\omega) = e^{-i\omega\tau}.\]
Parameters:

tau (float)

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

Raise because time delay is not a finite Gaussian expansion.

Returns:

Never returned.

Return type:

GaussianTransferExpansion

Raises:

NotImplementedError – Always raised because time delay is not representable as a finite Gaussian expansion in the current formalism.

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

Apply the time delay 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 delayed envelope and eta = 1.0.

Return type:

tuple[GaussianClosedEnvelope, float]

Notes

A time delay shifts the Gaussian time parameter without changing the envelope norm.

tau: float

Modules

bandpass

Gaussian band-pass transfer function.

base

Base classes for Gaussian-closed spectral transfer functions.

constant_phase

Constant phase transfer function.

formalism

Closed-form Gaussian transfer expansions for gaussian_closed envelopes.

highpass

Gaussian high-pass transfer function.

lowpass

Gaussian low-pass transfer function.

time_delay

Time-delay transfer function.