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.