Lumped Elements
GNLSE.LumpedElement — Type
LumpedElementAbstract base type for point-like stages in a cascaded simulation.
GNLSE.Amplifier — Type
Amplifier(gain_db)Represent a lumped amplifier that boosts field amplitudes by a specified decibel gain.
GNLSE.Attenuator — Type
Attenuator(loss_db)Represent a lumped attenuator that reduces field amplitudes by a specified decibel loss.
GNLSE.Filter — Type
Filter(transfer_function)Represent a lumped filter that applies a frequency-domain transfer function to the pulse.
GNLSE.PMDElement — Type
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 scalarPulsethrows anArgumentError. - 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_paramsGNLSE.apply — Function
apply(pulse::Pulse, element::LumpedElement)Apply the lumped element to the optical pulse, returning a new Pulse.
apply(vpulse::VectorialPulse, pmd::PMDElement) -> VectorialPulseApply 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.