Robochameleon
v1.0
|
Optical signal-to-noise (OSNR) loading block. More...
Inherits unit.
Public Member Functions | |
function | OSNR_v1 (in param) |
Class constructor. More... | |
function | traverse (in obj, in sig) |
Traverse function. More... | |
![]() | |
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. | |
Public Attributes | |
Property | OSNR |
Optical signal-to-noise ratio (OSNR) [dB]. | |
Property | NBW |
Noise bandwidth [nm]. | |
Property | assumeNoiseFreeEnabled |
Flag to assume the input signal is noise free (ignore SNR information) | |
Property | nInputs |
Number of inputs. | |
Property | nOutputs |
Number of outputs. | |
![]() | |
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. | |
Optical signal-to-noise (OSNR) loading block.
Adds noise based on desired optical SNR (OSNR) and input signal power.
If the input signal is noisy (SNR ~= inf), a quantity of noisy required to reach the desired OSNR will be added to the noise already present. If assumeNoiseFreeEnabled is set to 1, the information on input noise are discarded and all the input power will be considered signal power.
Do not cascade many of these; Use EDFA instead (see EDFA_v1).
Example:
function OSNR_v1::OSNR_v1 | ( | in | param | ) |
Class constructor.
Construct an OSNR object that will add the amount of noise required to obtain the specified OSNR when traversed.
param.OSNR | Desired OSNR [dB]. |
param.NBW | Noise bandwidth [nm]. [Default: 0.1]. |
param.assumeNoiseFreeEnabled | Ignore input signal SNR information. [Default: false]. |
obj | instance of the OSNR_v1 class |
|
virtual |
Traverse function.
Adds noise based on desired optical SNR (OSNR) and input signal power. Automatically tracks power and signal SNR.
sig | Noise free input signal |
sig | Noise loaded signal |
Reimplemented from unit.