Channels#
- class PhaseNoise(sigma2: float, name: str = 'phase noise')#
A class representing a Phase Noise channel.
This class models a phase noise effect in a channel, where the phase of the signal is altered by a random process. The phase noise is characterized by a variance specified by sigma squared (sigma2).
Attributes#
- sigma2float
The variance of the phase noise.
- namestr
Name of the channel instance. Default is “phase noise”.
- class ChromaticDispersion(z: float, fs: float = 1, alpha_dB: float = 0, direction: int = 1, name: str = 'cd', lamb: float = 1550, D: float = 17, c: float = 299792458)#
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#
- zfloat
Step length in meters (km).
- fsfloat
Sampling frequency in hertz (Hz). Default is 1 Hz.
- alpha_dBfloat, optional
Attenuation factor in decibels (dB). Default is 0 dB.
- directionint, optional
Propagation direction, 1 for forward and -1 for backward. Default is 1.
- namestr, optional
Identifier for the dispersion instance. Default is “cd”.
- lambfloat
Wavelength of the signal in meters. Default is WAVELENGTH.
- Dfloat
Dispersion coefficient. Default is CD_COEFFICIENT.
- cfloat
Speed of light in meters per second. Default is SPEED_OF_LIGHT.
References#
[1] Shahkarami, Abtin. “Complexity reduction over bi-RNN-based Kerr nonlinearity equalization in dual-polarization fiber-optic communications via a CRNN-based approach.” Dissertation, Institut polytechnique de Paris, 2022. URL: https://www.theses.fr/2022IPPAT034.
Notes#
The implementation of chromatic dispersion is based on the standard fiber-optic communication theory, where the dispersion effect is modeled in the frequency domain based on the fiber parameters and the signal’s wavelength. The forward method then applies this dispersion effect to an input signal. Attenuation due to fiber loss is also considered if alpha_dB is non-zero.
- class KerrNonLinearity(z: float, direction: int = 1, name: str = 'nl', gamma: float = 1.3, gain: float = 1)#
Models the Kerr nonlinearity effect in optical fibers.
This class simulates the Kerr nonlinearity effect in fiber-optic communication systems. Kerr nonlinearity is a phenomenon where the refractive index of the fiber changes with the intensity of the light passing through it, leading to phase modulation of the signal. The class considers the effective length of the fiber and attenuation due to fiber loss [1].
Attributes#
- zfloat
Step length in meters (km).
- directionint, optional
Propagation direction, 1 for forward and -1 for backward. Defaults to 1.
- namestr, optional
Identifier for the nonlinearity instance. Defaults to “nl”.
- gammafloat
Kerr coefficient. Default is KERR_COEFFICIENT.
- gainfloat
Gain factor. Default is 1.
References#
[1] Häger, Christian, and Henry D. Pfister. “Physics-based deep learning for fiber-optic communication systems.” IEEE Journal on Selected Areas in Communications 39.1 (2020): 280-294. URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6860304
Notes#
The Kerr nonlinearity effect is significant in high-power or long-distance fiber-optic systems. This implementation considers the nonlinear phase shift induced by the intensity of the optical signal. The forward method applies the nonlinear phase shift to the signal based on the intensity of the input signal and the Kerr coefficient (gamma).