symop.modes.transfer.gaussian.time_delay

Time-delay transfer function.

This module defines a frequency-domain time-delay transfer.

A transfer function acts multiplicatively in the frequency domain:

\[Z_{\mathrm{out}}(\omega) = H(\omega)\,Z_{\mathrm{in}}(\omega).\]

For a time delay \(\tau\), the transfer is

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

which corresponds to a shift in the time domain.

Notes

This transfer is Gaussian-compatible, but it is not represented by a finite Gaussian expansion. Instead, it acts by directly shifting the time parameter of Gaussian-closed envelopes.

Classes

TimeDelay(tau)

Time delay in the frequency domain.

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