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

Simple WDM transmitter. More...

Inherits module.

Inherited by ExtendedWDMTransmitter_v1.

Public Member Functions

function SimpleWDMTransmitter_v1 (in varargin)
 Class constructor. More...
 
function init (in obj, in param)
 
- Public Member Functions inherited from module
function module ()
 Create sink for internal output buffers.
 
function view (in obj)
 Show biograph through module_view-class.
 
function getOutput (in obj)
 Function to access module output for various intentions.
 
function keepOutput (in obj)
 Function tells outputBuffer sink not to delete itself after traverse.
 
function traverse (in obj, in varargin)
 Traverse function for modules. 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 nInputs
 Number of inputs.
 
Property nOutputs
 Number of outputs.
 
Property nChannels
 Number of WDM channels.
 
Property lambda
 Wavelengths of the every channel [nm].
 
Property linewidth
 Laser linewidth of every channel.
 
Property Power
 Power of every channel [pwr() obj].
 
Property modulationFormat
 Modulation format of every channel.
 
Property M
 Modulation order of every channel.
 
Property pulseShape
 Pulseshape of every channel.
 
Property rollOff
 Roll-Off factor of every channel.
 
Property Laser_L
 FM noise PSD length of Laser, due to double naming of L.
 
Property output
 Combined, concatinated output or both [comb|concat|both].
 
- Public Attributes inherited from module
Property nInputs
 Number of input arguments (required)
 
Property nOutputs
 Number of output arguments (required)
 
- 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.
 

Protected Attributes

Property flag
 
- Protected Attributes inherited from module
Property outputBuffer
 Where output signal is stored.
 

Additional Inherited Members

- Protected Member Functions inherited from module
function exportModule (in obj, in varargin)
 Construct module. More...
 
function connectInputs (in obj, in destInternalUnits, in destInternalInputs)
 Connect input signal to internal unit(s) More...
 

Detailed Description

Simple WDM transmitter.

This is a simple WDM transmitter which contains nChannels simple coherent transmitters.

Example

%General WDM channel
%see setupts/UnitsTesting/run_TestSimpleWDMTransmitter.m
carrier_freqs = [-4 4 -2 2 0]*35e9 + 193.4e12;
param.nChannels = length(carrier_freqs);;
param.lambda = mat2cell(1e9*const.c./carrier_freqs, 1, ones(1,param.nChannels));
%Data paramters
param.modulationFormat = 'QAM';
param.M = 16;
param.pulseShape = 'rrc';
param.rollOff = 0.1;
param.L = 1000000/8;
param.N = 2;
param.samplesPerSymbol = 4;
TxSignal = traverse(Tx1);

Notes:

  1. The output signal TxSignal will have a number of samples per symbol of
    param.samplesPerSymbol * param.upsamplingRate = 16
    in this example.
    param.samplesPerSymbol
    goes to the block PulseShaper_v2, which is a lab-usable pulse shaping filter.
    param.upsamplingRate
    goes to the block DAC_v1, which is a realistic DAC model.
  2. Any parameters that vary by channel must be passed as a cell array
  3. Order of operations affects the center frequency when combining channels together - specify center frequencies/wavelengths from outer to inner or inner to outer (not lowest-highest or highest-to-lowest).
Author
Rasmus Jones
Version
1

Definition at line 47 of file SimpleWDMTransmitter_v1.m.

Constructor & Destructor Documentation

function SimpleWDMTransmitter_v1::SimpleWDMTransmitter_v1 ( in  varargin)

Class constructor.

Constructs an object of type SimpleWDMTransmitter_v1. It also constructs nChannels SimpleCoherentTransmitter_v1.

Parameters
param.nChannelsNumber of WDM channels
param.lambdaWavelengths of the every channel [nm] if this parameter is a cell array
param.linewidthLaser linewidth of every channel if this parameter is a cell array
param.modulationFormatModulation format of every channel if this parameter is a cell array
param.MModulation order of every channel if this parameter is a cell array
param.pulseShapePulseshape of every channel if this parameter is a cell array
param.rollOffRoll-Off factor of every channel if this parameter is a cell array

SimpleAWG_v1 - WaveformGenerator_v1

Parameters
param.LOutput sequence length [symbols].
param.typePatternType of Pattern. Can be 'PRBS' or 'Random'.
param.PRBSOrderPolynomial order (any integer 2-23; 27, 31)
param.modulationFormatModulation format if all channels have equal setup
param.MModulation order if all channels have equal setup
param.NNumber of Modes (or polarizations)
param.samplesPerSymbolIt is the desired output number of samples per symbol.
param.symbolRateYou are able to define a symbol rate for your signal here. The output sample frequency will be define as symbolRate*samplesPerSymbol.
param.pulseShapeChoose among 'rc', 'rrc', 'rz33', 'rz50', 'rz67', 'nrz' or 'custom' if all channels have equal setup
param.filterCoeffsYou should define this as a vector if you chose 'custom' 'pulseShape'.
param.filterSymbolLengthYou should define a symbol length for 'rc' or 'rrc' filters. The default value is 202.
param.rollOffThe Roll-Off factor. You should define this value if you are using 'rc' or 'rrc' shapings. Usually, this number varies from 0 to 1. if all channels have equal setup

SimpleAWG_v1 - DAC_v1

Parameters
param.bitResolutionResolution of DAC in bits [Default: 8]
param.targetENoBTarget Effective Number of Bits
param.resamplingRateResampling rate [see ResampleSkewJitter_v1]
param.outputSamplingRateThe desired output sampling rate. [see ResampleSkewJitter_v1]
param.skewSkew [see ResampleSkewJitter_v1]
param.jitterVarianceJitter amplitude [see ResampleSkewJitter_v1]
param.clockErrorClock deviation [see ResampleSkewJitter_v1]
param.rectangularBandwidthBandwidth of rectangular filter [see ElectricalFilter_v1]
param.gaussianOrderOrder of Gaussian filter [see ElectricalFilter_v1]
param.gaussianBandwidthBandwidth of Gaussian filter [see ElectricalFilter_v1]
param.besselOrderOrder of Bessel filter [see ElectricalFilter_v1]
param.besselBandwidthBandwidth of bessel filter [see ElectricalFilter_v1]

IQ_v1

Parameters
param.Vamp??? [see IQ_v1]
param.Vb??? [see IQ_v1]
param.Vpi??? [see IQ_v1]
param.IQphase_x??? [see IQ_v1]
param.IQphase_y??? [see IQ_v1]
param.IQgain_imbalance_x??? [see IQ_v1]
param.IQgain_imbalance_y??? [see IQ_v1]
param.f_off??? [see IQ_v1]

Laser_v1

Parameters
param.FsSampling frequency [Hz] [see Laser_v1]
param.RsSymbol rate [Hz] [see Laser_v1]
param.LnoiseSignal length [Samples] [see Laser_v1]
param.FcCarrier frequency [Hz] [see Laser_v1]
param.PowerOutput power [see Laser_v1]
param.Laser_LFM noise PSD length [see Laser_v1 as L]
param.LirFM noise PSD length [see Laser_v1]
param.linewidthLorentzian linewidth [see Laser_v1]
param.LFLW1GHZLinewidth at 1GHz [see Laser_v1]
param.HFLWHigh-frequency linewidth [see Laser_v1]
param.frRelaxation resonance frequency [see Laser_v1]
param.KDamping factor [see Laser_v1]
Return values
objAn instance of the class SimpleWDMTransmitter_v1

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