Robochameleon
v1.0
|
Simple coherent transmitter. More...
Inherits module.
Inherited by ExtendedCoherentTransmitter_v1.
Public Member Functions | |
function | SimpleCoherentTransmitter_v1 (in varargin) |
Class constructor. More... | |
function | init (in obj, in param) |
![]() | |
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... | |
![]() | |
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 | nInputs |
Number of input arguments (required) | |
Property | nOutputs |
Number of output arguments (required) | |
![]() | |
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 |
![]() | |
Property | outputBuffer |
Where output signal is stored. | |
Additional Inherited Members | |
![]() | |
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... | |
Simple coherent transmitter.
This is a simple coherent transmitter which contains a simple arbitrary waveform generator, a laser and an IQ modulator.
Block diagram illustrating dependencies:
Definition at line 19 of file SimpleCoherentTransmitter_v1.m.
function SimpleCoherentTransmitter_v1::SimpleCoherentTransmitter_v1 | ( | in | varargin | ) |
Class constructor.
Constructs an object of type SimpleCoherentTransmitter_v1. It also constructs a SimpleAWG_v1, Laser_v1 and IQModulator_v1.
param.nOutputs | Number of outputs |
SimpleAWG_v1 - WaveformGenerator_v1
param.L | Output sequence length [symbols]. |
param.typePattern | Type of Pattern. Can be 'PRBS' or 'Random'. |
param.PRBSOrder | Polynomial order (any integer 2-23; 27, 31) |
param.modulationFormat | Modulation format |
param.M | Modulation order |
param.N | Number of Modes (or polarizations) |
param.samplesPerSymbol | It is the desired output number of samples per symbol. |
param.symbolRate | You are able to define a symbol rate for your signal here. The output sample frequency will be define as symbolRate*samplesPerSymbol. |
param.pulseShape | Choose among 'rc', 'rrc', 'rz33', 'rz50', 'rz67', 'nrz' or 'custom'; |
param.filterCoeffs | You should define this as a vector if you chose 'custom' 'pulseShape'. |
param.filterSymbolLength | You should define a symbol length for 'rc' or 'rrc' filters. The default value is 202. |
param.rollOff | The Roll-Off factor. You should define this value if you are using 'rc' or 'rrc' shapings. Usually, this number varies from 0 to 1. |
param.bitResolution | Resolution of DAC in bits [Default: 8] |
param.targetENoB | Target Effective Number of Bits |
param.resamplingRate | Resampling rate [see ResampleSkewJitter_v1] |
param.outputSamplingRate | The desired output sampling rate. [see ResampleSkewJitter_v1] |
param.skew | Skew [see ResampleSkewJitter_v1] |
param.jitterVariance | Jitter amplitude [see ResampleSkewJitter_v1] |
param.clockError | Clock deviation [see ResampleSkewJitter_v1] |
param.rectangularBandwidth | Bandwidth of rectangular filter [see ElectricalFilter_v1] |
param.gaussianOrder | Order of Gaussian filter [see ElectricalFilter_v1] |
param.gaussianBandwidth | Bandwidth of Gaussian filter [see ElectricalFilter_v1] |
param.besselOrder | Order of Bessel filter [see ElectricalFilter_v1] |
param.besselBandwidth | Bandwidth of bessel filter [see ElectricalFilter_v1] |
param.Fs | Sampling frequency [Hz] [see Laser_v1] |
param.Rs | Symbol rate [Hz] [see Laser_v1] |
param.Lnoise | Signal length [Samples] [see Laser_v1] |
param.Fc | Carrier frequency [Hz] [see Laser_v1] |
param.Power | Output power [see Laser_v1] |
param.Laser_L | FM noise PSD length [see Laser_v1 as L] |
param.Lir | FM noise PSD length [see Laser_v1] |
param.linewidth | Lorentzian linewidth [see Laser_v1] |
param.LFLW1GHZ | Linewidth at 1GHz [see Laser_v1] |
param.HFLW | High-frequency linewidth [see Laser_v1] |
param.fr | Relaxation resonance frequency [see Laser_v1] |
param.K | Damping factor [see Laser_v1] |
param.Vb | Bias voltage [V] [see IQModulator_v1] |
param.Vpi | V pi for child modulators [V] [see IQModulator_v1] |
param.IQphase | IQ phase angle [rad] [see IQModulator_v1] |
param.IQGainImbalance | Gain imbalance in I and Q [dB] [see IQModulator_v1] |
param.rescaleVdrive | Force drive signal to a certain value [boolean] [see IQModulator_v1] |
param.Vamp | What drive voltage should be forced to, if rescaling is enabled [V] [see IQModulator_v1] |
obj | An instance of the class SimpleCoherentTransmitter_v1 |