comnum.gn_isrs_closed_form#
- comnum.gn_isrs_closed_form(fiber, freqs, power_dbm, symbol_rate, *, rolloff=0.1, channel=None, raman_slope_w_km_thz=0.028, epsilon=None)#
The closed form of the ISRS GN model of Semrau, Killey & Bayvel (2019). It gives the NLI coefficient (J. Lightw. Technol. 37(9), 1924–1936) of a channel of a WDM signal whose power profile along the span is tilted by inter-channel stimulated Raman scattering, in microseconds instead of the minutes of the integral of
gn_model(). The SPM of the channel (eq. (10)) and the XPM of every other channel (eq. (11)) are summed over the spans by eq. (5), the SPM coherently asn ** (1 + epsilon), the XPM incoherently; the ISRS enters to first order in the total launch power times the sloperaman_slope_w_km_thzof the Raman gain spectrum (0.028 /W/km/THz for standard single-mode fibre; 0 for no ISRS). Channels have rectangular spectra of bandwidthsymbol_rate * (1 + rolloff);fibergives the loss, the dispersion and its slope, the nonlinear coefficient and the number of spans (the span length does not enter:exp(-alpha L) << 1).The paper’s eq. (10) ends with a term that is not dimensionless; it is left out (see
comnum_channel::optical::gn::isrs_closed_form_terms): the closed form follows the dashed curves of Figs. 4a, 4b and 5 of the paper within 0.3 dB away from the band edges (validation/tests/fiber/semrau2019.rs).- 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 channels (the bandwidth is
symbol_rate * (1 + rolloff)).channel (int, optional) – the channel of interest (the middle one by default).
raman_slope_w_km_thz (float) – the slope
C_rof the linear regression of the normalised Raman gain spectrum (1/W/km/THz).epsilon (float, optional) – the coherence factor of the SPM; by default Poggiolini’s eq. (22) (J. Lightw. Technol. 30(24), 2012) over the bandwidth of the channel.
- Returns:
eta(1/W²: the NLI power of the channel iseta * P**3; divide by the bandwidth for the PSD per W³ ofgn_model()),eta_spmandeta_xpm(the two terms, one span),epsilonandsnr_db(with the ASE of the EDFAs offiberin the bandwidth of the channel).- Return type:
- Raises:
ValueError – for an invalid parameter or input (the message names it).
Examples
>>> import comnum >>> fiber = comnum.FiberParams(span_km=100, n_spans=6, gamma_w_km=1.2, slope_ps_nm2_km=0.067) >>> r = comnum.gn_isrs_closed_form(fiber, comnum.wdm_grid(5, 40.005e9), 0.0, 40e9, rolloff=1e-4) >>> bool(0.1 < r["epsilon"] < 0.2 and r["eta_xpm"] > r["eta_spm"] > 0) True