Utils#

compute_beta2(lamb, cd_coefficient, speed_of_light)#

Compute the Chromatic Dispersion coefficient β₂ in ps²/km

Attributes#

lambfloat

Wavelength (nm)

cd_coefficient: float

Chromatic Dispersion coefficient (ps/nm/km)

speed_of_light: float

Speed of light (m/s)

The formula is given by :

\[\beta_2 = -\frac{10^3 \cdot D \cdot \lambda^2}{2\pi c}\]

Warning

  • All input values must be in the units specified above.

  • Output β₂ is given in picosecond squared per kilometer (ps²/km).

Returns#

beta2: float

Group velocity dispersion β₂ (in ps²/km)

Example 1#

>>> lamb = 1550         # in nm
>>> cd_coefficient = 17 # in ps/nm/km
>>> c = 299792458       # in m/s
>>> beta2 = compute_beta2(lamb, cd_coefficient, c)
>>> print(beta2)
-21.682619391414896

Notes#

  • The formula is derived from Eq. (4) and (5) of [Savory, 2008].

References#

  • [1] Savory, Seb J. “Digital filters for coherent optical receivers.” Optics express 16.2 (2008): 804-817.

  • [2] Eghbali, Amir, et al. “Optimal least-squares FIR digital filters for compensation of chromatic dispersion in digital coherent optical receivers.” Journal of lightwave technology 32.8 (2014): 1449-1456.

apply_chromatic_dispersion(x, z, beta2, alpha_dB=None, fs=1, direction=1)#

Implements chromatic dispersion effects in optical fiber communications.

This class models the chromatic dispersion effect in the frequency domain for fiber-optic communication systems. It applies a dispersion-induced phase shift to the input signal in the frequency domain and considers signal attenuation [1].

Attributes#

x: numpy array

Complex signal

zfloat

Step length in meters (km).

beta2: float

coefficient in ps**2/km

alpha_dB: float, optional

gain in dB / km (defaut: None)

fsfloat, optional

Sampling frequency in hertz (Hz).

directionint, optional

Propagation direction, 1 for forward and -1 for backward. Defaults to 1.

Returns#

y: numpy array

Complex signal after chromatic dispersion

References#

  • [1] Savory, Seb J. “Digital filters for coherent optical receivers.” Optics express 16.2 (2008): 804-817.

  • [2] Eghbali, Amir, et al. “Optimal least-squares FIR digital filters for compensation of chromatic dispersion in digital coherent optical receivers.” Journal of lightwave technology 32.8 (2014): 1449-1456.

compute_erbium_doped_fiber_N_ase(alpha_dB, L_span, NF_dB, h=6.62607015e-34, nu=193414489032258.06)#

Compute ASENoise params

Attributes#

alpha_dBfloat

Wavelength (nm)

L_spanfloat

Length of the link (in km)

NF_dB: float

Noise Figure (dB)

The formula is given by :

\[N_{ASE} = (e^{\alpha L}-1) h \nu n_{sp}\]

where

\[\alpha =\alpha_{dB}/10 \log_{10}(e)\]

References#

  • [1] Essiambre, René-Jean, Gerhard Kramer, Peter J. Winzer, Gerard J. Foschini, and Bernhard Goebel. “Capacity limits of optical fiber networks.” Journal of Lightwave technology 28, no. 4 (2010): 662-701.

get_linear_step_size(L_span, StPS)#

Linear Step Size

get_logarithmic_step_size(L_span, StPS, alpha_dB=0, step_log_factor=0.4)#

Logarithmically spaced step size

See also:

References#

  • [1] O. V. Sinkin, R. Holzlohner, J. Zweck and C. R. Menyuk, “Optimization of the split-step Fourier method in modeling optical-fiber communications systems,” in Journal of Lightwave Technology, vol. 21, no. 1, pp. 61-68, Jan. 2003, doi: 10.1109/JLT.2003.808628.