Skip to main content

logarithmic_steps

Function logarithmic_steps 

Source
pub fn logarithmic_steps(
    alpha_np_km: f64,
    length_km: f64,
    n: usize,
) -> Result<Vec<f64>>
Expand description

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:

$$ \Delta z_{k} = -\frac{1}{\alpha} \ln \frac{1 - k\sigma}{1 - (k - 1)\sigma}, \qquad \sigma = \frac{1 - e^{-\alpha L}}{n}, \qquad k = 1 \dots n $$

(the paper writes the field attenuation, half of $\alpha$). Every step carries the same integrated power, $\int e^{-\alpha z} dz = \sigma/\alpha$ (the same effective length): the steps are short at the start of the span, where the power is high. The phases of the spurious four-wave mixing of the split-step method then add incoherently, so that its efficiency stays below $1/n$ of the true one instead of the peaks of equal steps (Bosco et al., eq. (5) and Fig. 3). Without loss ($\alpha L < 10^{-12}$) the steps are equal; they add up to length_km exactly.

§Errors

Error::Config for no step, a length that is not positive and finite, or an attenuation that is negative or not finite.

§Examples

use comnum_math::nlse::logarithmic_steps;
let alpha = 0.2 / (10.0 * std::f64::consts::E.log10()); // 0.2 dB/km in Np/km
let h = logarithmic_steps(alpha, 80.0, 4).unwrap();
assert!(h[0] < h[1] && h[1] < h[2] && h[2] < h[3]);
assert!((h.iter().sum::<f64>() - 80.0).abs() < 1e-12);
// the same effective length (1 - e^{-a h}) e^{-a z} / a for every step
let mut z = 0.0;
let leff: Vec<f64> = h.iter().map(|&s| { let l = (1.0 - (-alpha * s).exp()) * (-alpha * z).exp() / alpha; z += s; l }).collect();
assert!(leff.iter().all(|l| (l - leff[0]).abs() < 1e-9));

§References

  1. 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, eq. (6).