Robochameleon
v1.0
|
I-Q modulator model. More...
Inherits unit.
Public Member Functions | |
function | IQModulator_v1 (in varargin) |
Class constructor. More... | |
function | traverse (in obj, in varargin) |
Applies drive signal to laser. More... | |
function | checkParamSizes (in obj) |
Checks input signals for consistency with model parameters. | |
![]() | |
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 | Vb |
Bias voltage [V]. | |
Property | Vpi |
Vpi [V]. | |
Property | IQphase |
I-Q phase angle [rad]. | |
Property | IQGainImbalance |
I-Q gain imbalance [dB]. | |
Property | rescaleVdrive |
Force peak drive voltage to a certain value? | |
Property | Vamp |
What value should it be forced to? | |
![]() | |
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. | |
Private Attributes | |
Property | nModes |
Number of output modes. | |
I-Q modulator model.
Basic model of an IQ optical modulator. In principle, this should work for an arbitrary number of modes.
Observations
Conventions
Example
Advanced Example
Definition at line 85 of file IQModulator_v1.m.
function IQModulator_v1::IQModulator_v1 | ( | in | varargin | ) |
Class constructor.
Constructs an object of type IQModulator_v1
Most parameters (Vb, Vpi, IQphase, IQGainImbalance)can be passed as either a scalar or a vector. If they are passed as a scalar, the same value is applied to all relevant sub-components. If they're passed as vectors, there must be one value for each subcomponent (4x Vpi's and Vb's and 2x imbalances and phase angles for a standard dual-pol IQ modulator). Mixtures of scalars and vectors are acceptable.
param.Vb | Bias voltage [V]. [Default: Vpi=4] |
param.Vpi | V pi for child modulators [V] [Default: 4]. |
param.IQphase | IQ phase angle [rad] [Default: pi/2]. |
param.IQGainImbalance | Gain imbalance in I and Q [dB] [ Default: 0]. |
param.rescaleVdrive | Force drive signal to a certain value [boolean] [Default: on] |
param.Vamp | What drive voltage should be forced to, if rescaling is enabled [V] [Default: 1]; |
obj | An instance of the class IQModulator_v1 |
|
virtual |
Applies drive signal to laser.
There is some flexibility in how drive signals are specified. The following are acceptable:
varargin | Drive1, Drive2, ... laser |
out | Modulated laser |
Reimplemented from unit.