Robochameleon  v1.0
Public Member Functions | Public Attributes | List of all members
OSNR_v1 Class Reference

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...
 
- 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.
 

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.
 
- 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.
 

Detailed Description

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:

param = struct('OSNR', 20);
osnr = OSNR_v1(param);
param.sig.L = 10e6;
param.sig.Fs = 64e9;
param.sig.Fc = 193.1e12;
param.sig.Rs = 10e9;
param.sig.PCol = [pwr(20,{-2,'dBm'}), pwr(-inf,{-inf,'dBm'})];
E = rand(1000,2);
sIn = signal_interface(E, param.sig);
sOut = osnr.traverse(sIn);
sOut.P.getOSNR(sOut)
Author
Molly Piels
Simone Gaiarin
Version
1

Definition at line 37 of file OSNR_v1.m.

Constructor & Destructor Documentation

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.

Parameters
param.OSNRDesired OSNR [dB].
param.NBWNoise bandwidth [nm]. [Default: 0.1].
param.assumeNoiseFreeEnabledIgnore input signal SNR information. [Default: false].
Return values
objinstance of the OSNR_v1 class

Member Function Documentation

function OSNR_v1::traverse ( in  obj,
in  sig 
)
virtual

Traverse function.

Adds noise based on desired optical SNR (OSNR) and input signal power. Automatically tracks power and signal SNR.

Parameters
sigNoise free input signal
Return values
sigNoise loaded signal

Reimplemented from unit.


The documentation for this class was generated from the following file: