comnum.gn_model#
- comnum.gn_model(fiber, freqs, power_dbm, symbol_rate, *, rolloff=0.1, channel=None, coherent=True, resolution_hz=None, raman=None, modulation=None, px=None)#
The GN model of the nonlinear interference of a WDM link (Poggiolini 2012).
The NLI power spectral density at the receiver is the double integral of the GN reference formula, computed on a grid, with the coherent accumulation of the spans (
coherent=True, the phased-array factor) or the incoherent one (N_stimes a span). Channels have raised-cosine spectra of roll-offrolloffat the symbol ratesymbol_rate, centred onfreqs(Hz, relative to the carrier), with the launch powerspower_dbm(one per channel or one for all, both polarisations).- Returns:
nli_psdandase_psd(W/Hz, both polarisations, at the frequency of channelchannel),snr_db(after a matched filter),eta(NLI PSD per W³ of launch power per channel) andp_opt_dbm(the optimal launch power per channel for equal powers; withraman,etaandp_opt_dbmare those of the profiles of 1 mW per channel).- Return type:
With
raman(the keys offiber.raman, seeraman_profile()), the power profiles of the channels along the span replace the exponential decay in the link function (the generalised GN model of Semrau et al. 2019), the noise is the spontaneous Raman noise plus the ASE of the EDFA that restores every channel, and the channels are restored to their launch power after every span.With
modulation(a constellation, a name such as"16-QAM", or"gaussian") and optionally its probabilitiespx, the NLI is that of the EGN model (Carena et al. 2014): the GN model corrected for the fourth and sixth moments of the symbols (seeformat_moments()), for the self-channel interference and the cross-channel interference of every other channel.- Parameters:
fiber (FiberParams) – the link.
freqs (array_like) – centre frequencies of the channels relative to the carrier (Hz).
power_dbm (float | array_like) – launch power of every channel (dBm, both polarisations), one for all or one per channel.
symbol_rate (float) – symbol rate of every channel (Bd).
rolloff (float) – roll-off of the raised-cosine spectra.
channel (int, optional) – the channel of interest (the middle one by default).
coherent (bool) – coherent accumulation of the spans.
resolution_hz (float, optional) – step of the integration grid (Hz).
raman (dict, optional) – Raman pumps and ISRS (see
raman_profile()).modulation (Constellation | str, optional) – the modulation format of the EGN model.
px (array_like, optional) – the probabilities of its points.
- Raises:
ValueError – for an invalid parameter or input (the message names it).