Lumped Elements

GNLSE.AmplifierType
Amplifier(gain_db)

Represent a lumped amplifier that boosts field amplitudes by a specified decibel gain.

source
GNLSE.AttenuatorType
Attenuator(loss_db)

Represent a lumped attenuator that reduces field amplitudes by a specified decibel loss.

source
GNLSE.FilterType
Filter(transfer_function)

Represent a lumped filter that applies a frequency-domain transfer function to the pulse.

source
GNLSE.PMDElementType
PMDElement(mean_dgd; rng=default_rng())

Lumped first-order PMD element with mean differential group delay mean_dgd [s].

At each call to apply, draws an independent random realization of:

  • DGD Δτ from a Maxwell–Boltzmann distribution with mean mean_dgd
  • PSP orientation angle θ ∈ [0, π) drawn uniformly

and applies the resulting frequency-domain Jones matrix to a VectorialPulse:

J(V) = R(θ) · diag(exp(+i V Δτ/2), exp(−i V Δτ/2)) · R(−θ)

where V = ω − ω₀ [rad/s] is the relative angular frequency and R(θ) is a 2×2 rotation.

The Maxwellian distribution is the correct first-order PMD statistics for a fiber composed of many random birefringent segments (ITU-T G.650.2 model).

Arguments

  • mean_dgd::Real: Mean differential group delay ⟨Δτ⟩ [s]. Typical values: 0.5–5 ps for long-haul SMF, < 0.1 ps for short/PM fibers.
  • rng: Random number generator for reproducible noise realizations.

Notes

  • Only applicable to VectorialPulse. Applying to a scalar Pulse throws an ArgumentError.
  • Independent calls produce statistically independent PMD realizations.
  • For cascaded fibers with multiple PMD stages, pipe multiple PMDElements.

Example

pmd = PMDElement(1e-12)   # 1 ps mean DGD
noisy_vpulse = apply(vpulse, pmd)
# or with the pipe operator:
result = vpulse |> PMDElement(0.5e-12) |> fiber_params
source
GNLSE.applyFunction
apply(pulse::Pulse, element::LumpedElement)

Apply the lumped element to the optical pulse, returning a new Pulse.

source
apply(vpulse::VectorialPulse, pmd::PMDElement) -> VectorialPulse

Apply a random first-order PMD realization to vpulse.

Draws a Maxwellian DGD and uniform PSP angle, then applies the frequency-domain Jones matrix. Each call produces an independent realization.

source