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. | |
![]() | |
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) | |
![]() | |
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] |