|
Robochameleon
v1.0
|
Nonlinear fiber optical channel model using SSF method class. More...
Inherits unit.
Public Member Functions | |
| function | NonlinearChannel_v1 (in param) |
| Class constructor. More... | |
| function | traverse (in obj, in in) |
| Main function call. | |
Public Member Functions inherited from unit | |
| function | traverseNode (in obj) |
| Set unique ID when creating a unit. More... | |
| function | connectOutput (in obj, in uobj, in unitOutput, in nextUnitInput) |
| Specify where signal should go next. More... | |
| function | connectOutputs (in obj, in units, in destInputs) |
| Specify where signal should go next. More... | |
| function | writeInputBuffer (in obj, in sig, in inputId) |
| write input buffer | |
| function | horzcat (in varargin) |
| horizontal concatenation | |
| function | vertcat (in varargin) |
| vertical concatenation | |
| function | setparams (in obj, in params, in REQUIRED_PARAMS, in QUIET_PARAMS) |
| set parameters More... | |
| function | view (in obj) |
| Show interactive GUI through unit_view-class. | |
Static Public Member Functions | |
| static function | randPolRotation (in in, in lambda) |
Public Attributes | |
| Property | nSpans |
| Number of fiber spans (fiber + amplifier) | |
| Property | L |
| Length of each span in km: 1-by-nSpans vector;. | |
| Property | stepSize |
| Step size for the Split Step Fourier Method in km: 1-by-nSpans vector;. | |
| Property | iterMax |
| Maximum of split step iterations. | |
| Property | alphaa |
| Fiber attenuation coefficient for polarization (a) in km^-1: 1-by-nSpans vector;. | |
| Property | alphab |
| Fiber attenuation coefficient for polarization (b) in km^-1: 1-by-nSpans vector;. | |
| Property | gamma |
| Nonlinear coefficient of the fiber in W^-1*km^-1;. | |
| Property | D |
| Dispersion coefficient. | |
| Property | S |
| Dispersion slope. | |
| Property | EDFAGain |
| Gain of each optical amplifier (linear): 1-by-nSpans vector;. | |
| Property | EDFANF |
| Noise figure of the optical amplifiers (linear): 1-by-nSpans vector;. | |
| Property | dispersionCompensationEnabled |
| Dispersion compensation 0/1. | |
| Property | dispersionCompensationFraction |
| Fraction of chromatic dispersion to compensate. | |
| Property | polarizationMixingEnabled |
| Polarization Mixing: 0/1. | |
| Property | doublePrecisionEnabled |
| SSF precision flag. | |
| Property | noEDFAEnabled |
| Don't put EDFA. | |
| Property | nInputs |
| Number of inputs. | |
| Property | nOutputs |
| EDFA spontaneous emission factor (population inversion factor) | |
Public Attributes inherited from unit | |
| Property | inputBuffer |
| Buffer for storing inputs as we traverse the graph. | |
| Property | nextNodes |
| Children nodes. | |
| Property | destInputs |
| Destination inputs in children. | |
| Property | results |
| For storing results. | |
| Property | label |
| Property | draw |
| enable/disable plotting | |
| Property | nInputs |
| Number of signals traverse expects. | |
| Property | nOutputs |
| Number of outputs traverse expects. | |
Nonlinear fiber optical channel model using SSF method class.
This class implements the optical channel propagation model based on the numeric solution of the Non-Linear Schrodinger Equation (NLSE) using Split Step Fourier (SSF) method.
Observations:
Conventions:
Example:
References:
Definition at line 70 of file NonlinearChannel_v1.m.
| function NonlinearChannel_v1::NonlinearChannel_v1 | ( | in | param | ) |
Class constructor.
Constructs an object of type NonlinearChannel_v1.
| param.nSpans | Number of spans to be simulated. |
| param.L | Span lengths [km]. Vector [1 x nSpans] or scalar. [Default: 80] |
| param.stepSize | Step size for the SSF method [km]. Vector [1 x nSpans] or scalar. [Default: 10] |
| param.iterMax | Maximum of SSF iterations per step size [km]. [Default: 10]. |
| param.alpha | Fiber attenuation coefficients [dB/km]. Vector [1 x nSpans] or scalar. [Default: 0.2]. Not used if alphaa and alphab specified. |
| param.alphaa | Fiber attenuation coefficients polarization X [dB/km]. Vector [1 x nSpans] or scalar. [Default: 0.2]. |
| param.alphab | Fiber attenuation coefficients polarization Y [dB/km]. Vector [1 x nSpans] or scalar. [Default: 0.2] |
| param.D | Fiber dispesion coefficients [ps/nm/km].Vector [1 x nSpans] or scalar. [Default: 17] |
| param.S | Fiber dispesion slope [ps/nm^2/km]. Vector [1 x nSpans] or scalar. [Default: 0.1] |
| param.gamma | Fiber nonlinear coefficients [W^-1*km^-1]. Vector [1 x nSpans] or scalar. [Default: 1.2] |
| param.noEDFAEnabled | If true and there is only one link, the EDFA is not put at the end of the link |
| param.EDFANF | EDFA's noise figure [dB]. Vector [1 x nSpans] or scalar. [Default: 16] |
| param.EDFAGain | EDFA's gain [dB]. Vector [1 x nSpans] or scalar. [Default: 3] |
| param.dispersionCompensationEnabledion | Dispersion compensation flag. [Default: 0] |
| param.dispersionCompensationFraction | Fraction of span dispersion to compensate. [Default: 1] |
| param.polarizationMixingEnabled | Polarization mixing flag. [Default: 0] |
| param.doublePrecisionEnabled | Precision flag. Set to 0 for speed. [Default: 1] |
1.8.11