Skip to main content

Module nlse

Module nlse 

Source
Expand description

The symmetric split-step Fourier solvers of the nonlinear Schrödinger equation: scalar (SplitStep, SplitStepF32, both built from the Steps of a span) and dual-polarisation Manakov (ManakovSplitStep).

The same solver propagates a field through a fibre (comnum_channel::optical::fiber) and back-propagates it at the receiver (comnum_dsp::compensation::dbp, with the coefficients negated), so it lives here, below both.

§Model

$$ \frac{\partial A}{\partial z} = -\frac{\alpha}{2} A

  • j \frac{\beta_{2}}{2} \frac{\partial^{2} A}{\partial t^{2}}
  • j \gamma |A|^{2} A $$

Each step of length $h$ is a half linear step, the nonlinear phase $\gamma |A|^{2} h_{\mathrm{NL}}$ and a half linear step, with the linear operator applied in the frequency domain:

$$ \tilde{A}(\omega) \leftarrow \tilde{A}(\omega)\, e^{-\alpha h / 4}\, e^{j \beta_{2} \omega^{2} h / 4} $$

The nonlinear length $h_{\mathrm{NL}}$ is the step itself for the forward model; a back-propagation with coarse steps uses the effective length of the step instead.

§The Manakov equation

Averaged over the fast random rotations of the birefringence, the two polarisations $A_{x}$, $A_{y}$ obey

$$ \frac{\partial A_{x,y}}{\partial z} = -\frac{\alpha}{2} A_{x,y} - j \frac{\beta_{2}}{2} \frac{\partial^{2} A_{x,y}}{\partial t^{2}} + j \frac{8}{9} \gamma \left(|A_{x}|^{2} + |A_{y}|^{2}\right) A_{x,y}. $$

ManakovSplitStep is the symmetric scheme of OptiCommPy’s manakovSSF: a half linear step, the nonlinear phase

$$ \phi(t) = \frac{8}{9} \gamma, \frac{P(z, t) + P(z + h, t)}{2}, h, \qquad P = |A_{x}|^{2} + |A_{y}|^{2}, $$

(the trapezoidal rule of OptiCommPy, iterated until the step converges since $P(z + h)$ depends on the step itself, NonlinearStep::Trapezoidal; by default the power at the middle of the step, NonlinearStep::Midpoint, as SplitStep) and a half linear step. The step is fixed, adapted so that the largest nonlinear phase of a step is a given rotation (the nonlinear phase rotation method of Sinkin et al., which concentrates the steps where the power is high, at the beginning of the spans), chosen by the four-wave-mixing rule of Musetti et al., or distributed logarithmically (logarithmic_steps, Bosco et al.: every step carries the same integrated power). The logarithmic steps keep the spurious four-wave mixing of the split step near $1/K$ of the true one; with few steps per span they also place the nonlinear phase of a back-propagation better, with many they leave more error than equal steps (the long last steps).

§Examples

use comnum_math::nlse::{Medium, SplitStep, Steps};
use comnum_math::C64;
// without loss and nonlinearity, forward then negated propagation is the identity
let m = Medium { alpha_np_km: 0.0, beta2_s2_km: -2.17e-23, gamma_w_km: 0.0, beta3_s3_km: 0.0 };
let x: Vec<C64> = (0..64).map(|n| C64::new((n % 3) as f64, (n % 2) as f64)).collect();
let mut e = x.clone();
SplitStep::new(&m, Steps::new(8, 10.0), 64, 64e9).run(&mut e);
SplitStep::new(&m.negated(), Steps::new(8, 10.0), 64, 64e9).run(&mut e);
assert!(x.iter().zip(&e).all(|(a, b)| (a - b).norm() < 1e-9));

§References

  1. G. P. Agrawal, Nonlinear Fiber Optics, 5th ed., Academic Press, 2013.
  2. E. Ip and J. M. Kahn, “Compensation of dispersion and nonlinear impairments using digital backpropagation,” J. Lightw. Technol., 26(20), 2008.
  3. D. Marcuse, C. R. Menyuk and P. K. A. Wai, “Application of the Manakov-PMD equation to studies of signal propagation in optical fibers with randomly varying birefringence,” J. Lightw. Technol., 15(9), 1735–1746, 1997.
  4. O. V. Sinkin, R. Holzlöhner, J. Zweck and C. R. Menyuk, “Optimization of the split-step Fourier method in modeling optical-fiber communications systems,” J. Lightw. Technol., 21(1), 61–68, 2003.
  5. G. Bosco, A. Carena, V. Curri, R. Gaudino, P. Poggiolini and S. Benedetto, “Suppression of spurious tones induced by the split-step method in fiber systems simulation,” IEEE Photon. Technol. Lett., 12(5), 489–491, 2000.
  6. J. Zhang, X. Li and Z. Dong, “Digital nonlinear compensation based on the modified logarithmic step size,” J. Lightw. Technol., 31(22), 3546–3555, 2013 (not in the references: its eq. (2) as Häger & Pfister describe it).
  7. C. Häger and H. D. Pfister, “Physics-based deep learning for fiber-optic communication systems,” IEEE J. Sel. Areas Commun., 39(1), 280–294, 2021.

Structs§

Birefringence
The birefringence of a span cut into sections of equal length (the PMD of comnum_channel::optical::pmd::PmdLink): section $k$ starts with the frequency-independent rotation rotations[k] (a row-major 2 × 2 matrix applied to $(A_{x}, A_{y})$) and then delays the two polarisations of its frame by $\mp \tau’{k} z / 2$, its DGD per kilometre dgd_s_per_km[k] distributed along it. Without nonlinearity a span is the lumped response $\prod{k} D_{k}(\omega) R_{k}$, $D_{k}$ the DGD of the whole section.
ManakovSplitStep
The symmetric split-step solver of the Manakov equation (see the module).
Medium
The coefficients of the scalar NLSE, per kilometre.
PropagationOptions
What a propagation adds to the loss and dispersion of the medium (see ManakovSplitStep::run_fields).
SamplingCheck
The sampling conditions of a split-step simulation of a signal of bandwidth $B$ over a dispersive link (Musetti et al. 2018, Appendix B): the sampling rate must hold the four-wave mixing that falls on the signal, at least $\frac{3}{2} B$ (all of the first-order mixing needs $3 B$), and the block must be longer than the walk-off across $B$ over the whole link, $|\beta_{2}| , 2\pi B , L$, or the circular convolution wraps the fast channels onto the slow ones. sampling_check computes them; SamplingCheck::is_sufficient says whether both hold.
SplitStep
The Steps of one span in double precision, or steps of different lengths (SplitStep::with_lengths).
SplitStepF32
SplitStep in single precision: the field, the FFTs, the linear operator and the nonlinear phase are computed in f32 (about twice as fast), with the same Steps (a back-propagation included); the plans and their work space are cached per thread as those of fft::plan.
Steps
The steps of one span: n_steps symmetric steps of step_km, the nonlinear phase of each over nl_length_km (the step itself for the forward model, the effective length of a coarse step for a back-propagation). Shared by SplitStep and SplitStepF32, and given by a forward model to its back-propagation (comnum_dsp::compensation::dbp::Dbp::forward).

Enums§

NonlinearStep
The nonlinear step of ManakovSplitStep.
StepDistribution
The distribution of the steps of a span of a back-propagation (comnum_dsp::compensation::dbp::Dbp::distribution).
StepRule
The step size of ManakovSplitStep.
StepUpdate
The growth of the steps of StepRule::Fwm along a span, with the power attenuation $\alpha$ (Musetti et al. 2018, eqs. (9)–(10)).

Functions§

logarithmic_steps
The n steps (km) of the logarithmic step-size distribution of Bosco et al. (2000, eq. (6)) over a fibre of length_km with the power attenuation $\alpha$ = alpha_np_km (Np/km), in the order of the propagation:
manakov_rotation
The nonlinear step of the Manakov equation with a phase that does not change during the step: both polarisations rotated by the same phase,
sampling_check
The SamplingCheck of fields sampled at fs through length_km of medium.
signal_bandwidth
The bandwidth (Hz) of the fields fields sampled at fs: the span of the frequencies whose power spectral density, summed over the fields, exceeds $10^{-4}$ of its peak ($-40$ dB). Measured on a clean signal (before any amplifier noise, which is white).

Type Aliases§

FieldGain
The gain of the field at every frequency bin (FFT order) between two positions of a span (km): gain(z_0, z_1, out) writes $\sqrt{G(z_{1}, f) / G(z_{0}, f)}$ into out.