mirror of
https://github.com/Telecominfraproject/oopt-gnpy.git
synced 2025-11-02 02:57:52 +00:00
The "openroadm" NF model only applies to inline amps
Change-Id: I2971b97506c8d0a778b3007fd5bd092c3ba83601
This commit is contained in:
@@ -237,7 +237,7 @@ GNPy supports several different noise models with varying level of accuracy.
|
|||||||
When in doubt, contact your vendor's technical support and ask them to :ref:`contribute their equipment descriptions<extending-edfa>` to GNPy.
|
When in doubt, contact your vendor's technical support and ask them to :ref:`contribute their equipment descriptions<extending-edfa>` to GNPy.
|
||||||
|
|
||||||
The most accurate noise models describe the resulting NF of an EDFA as a third-degree polynomial.
|
The most accurate noise models describe the resulting NF of an EDFA as a third-degree polynomial.
|
||||||
GNPy understands polynomials as a NF-yielding function of the :ref:`gain difference from the optimal gain<ext-nf-model-polynomial-NF>`, or as a function of the input power resulting in an :ref:`incremental OSNR as used in OpenROADM<ext-nf-model-polynomial-OSNR-OpenROADM>`.
|
GNPy understands polynomials as a NF-yielding function of the :ref:`gain difference from the optimal gain<ext-nf-model-polynomial-NF>`, or as a function of the input power resulting in an incremental OSNR as used in :ref:`OpenROADM inline amplifiers<ext-nf-model-polynomial-OSNR-OpenROADM>`.
|
||||||
For scenarios where the vendor has not yet contributed an accurate EDFA NF description to GNPy, it is possible to approximate the characteristics via an operator-focused, min-max NF model.
|
For scenarios where the vendor has not yet contributed an accurate EDFA NF description to GNPy, it is possible to approximate the characteristics via an operator-focused, min-max NF model.
|
||||||
|
|
||||||
.. _nf-model-min-max-NF:
|
.. _nf-model-min-max-NF:
|
||||||
|
|||||||
@@ -42,11 +42,11 @@ In that case, use:
|
|||||||
|
|
||||||
.. _ext-nf-model-polynomial-OSNR-OpenROADM:
|
.. _ext-nf-model-polynomial-OSNR-OpenROADM:
|
||||||
|
|
||||||
Polynomial OSNR (OpenROADM-style)
|
Polynomial OSNR (OpenROADM-style for inline amplifier)
|
||||||
*********************************
|
******************************************************
|
||||||
|
|
||||||
This model is useful for amplifiers compliant to the OpenROADM specification for ILA.
|
This model is useful for amplifiers compliant to the OpenROADM specification for ILA (an in-line amplifier).
|
||||||
In OpenROADM, amplifier performance is evaluated via its incremental OSNR, which is a function of the input power.
|
The amplifier performance is evaluated via its incremental OSNR, which is a function of the input power.
|
||||||
|
|
||||||
.. math::
|
.. math::
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ _logger = getLogger(__name__)
|
|||||||
|
|
||||||
Model_vg = namedtuple('Model_vg', 'nf1 nf2 delta_p')
|
Model_vg = namedtuple('Model_vg', 'nf1 nf2 delta_p')
|
||||||
Model_fg = namedtuple('Model_fg', 'nf0')
|
Model_fg = namedtuple('Model_fg', 'nf0')
|
||||||
Model_openroadm = namedtuple('Model_openroadm', 'nf_coef')
|
Model_openroadm_ila = namedtuple('Model_openroadm_ila', 'nf_coef')
|
||||||
Model_hybrid = namedtuple('Model_hybrid', 'nf_ram gain_ram edfa_variety')
|
Model_hybrid = namedtuple('Model_hybrid', 'nf_ram gain_ram edfa_variety')
|
||||||
Model_dual_stage = namedtuple('Model_dual_stage', 'preamp_variety booster_variety')
|
Model_dual_stage = namedtuple('Model_dual_stage', 'preamp_variety booster_variety')
|
||||||
|
|
||||||
@@ -202,7 +202,7 @@ class Amp(_JsonThing):
|
|||||||
nf_coef = kwargs.pop('nf_coef')
|
nf_coef = kwargs.pop('nf_coef')
|
||||||
except KeyError: # nf_coef is expected for openroadm amp
|
except KeyError: # nf_coef is expected for openroadm amp
|
||||||
raise EquipmentConfigError(f'missing nf_coef input for amplifier: {type_variety} in equipment config')
|
raise EquipmentConfigError(f'missing nf_coef input for amplifier: {type_variety} in equipment config')
|
||||||
nf_def = Model_openroadm(nf_coef)
|
nf_def = Model_openroadm_ila(nf_coef)
|
||||||
elif type_def == 'dual_stage':
|
elif type_def == 'dual_stage':
|
||||||
try: # nf_ram and gain_ram are expected for a hybrid amp
|
try: # nf_ram and gain_ram are expected for a hybrid amp
|
||||||
preamp_variety = kwargs.pop('preamp_variety')
|
preamp_variety = kwargs.pop('preamp_variety')
|
||||||
|
|||||||
Reference in New Issue
Block a user