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:
ConstantPhaseFrequency-independent phase shift
\[H(\omega) = e^{i\phi_0}\]
TimeDelayTime shift in the frequency domain
\[H(\omega) = e^{-i\omega\tau}\]This corresponds to a translation of the envelope in time.
GaussianLowpassGaussian low-pass filter
GaussianBandpassGaussian band-pass filter
GaussianHighpassComplement of a Gaussian low-pass
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:
GaussianClosedTransferBaseFrequency-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:
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.
- 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)whereenv_outis the transformed Gaussian-closed envelope andeta = 1.0.- Return type:
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.
- class GaussianBandpass(w0: float, sigma_w: float) None¶
Bases:
GaussianClosedTransferBaseGaussian band-pass amplitude transfer.
\[H(\omega) = \exp\left[ -\frac{1}{2} \left( \frac{\omega-\omega_0}{\sigma_\omega} \right)^2 \right].\]- Parameters:
- _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:
Notes
This representation enables closed-form propagation of Gaussian envelopes and Gaussian mixtures.
- _is_protocol = False¶
- class GaussianHighpass(w0: float, sigma_w: float) None¶
Bases:
GaussianClosedTransferBaseSoft 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:
- _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:
Notes
This representation allows the transfer to be applied in closed form to Gaussian-closed envelopes.
- _is_protocol = False¶
- class GaussianLowpass(w0: float, sigma_w: float) None¶
Bases:
GaussianClosedTransferBaseGaussian low-pass amplitude transfer.
\[H(\omega) = \exp\left[ -\frac{1}{2} \left( \frac{\omega-\omega_0}{\sigma_\omega} \right)^2 \right].\]- Parameters:
- _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:
Notes
This representation enables closed-form propagation of Gaussian envelopes and Gaussian mixtures.
- _is_protocol = False¶
- class TimeDelay(tau: float) None¶
Bases:
GaussianClosedTransferBaseTime 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:
- Raises:
NotImplementedError – Always raised because time delay is not representable as a finite Gaussian expansion in the current formalism.
- _is_protocol = False¶
- 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)whereenv_outis the delayed envelope andeta = 1.0.- Return type:
Notes
A time delay shifts the Gaussian time parameter without changing the envelope norm.
Modules
Gaussian band-pass transfer function. |
|
Base classes for Gaussian-closed spectral transfer functions. |
|
Constant phase transfer function. |
|
Closed-form Gaussian transfer expansions for gaussian_closed envelopes. |
|
Gaussian high-pass transfer function. |
|
Gaussian low-pass transfer function. |
|
Time-delay transfer function. |