|
Robochameleon
v1.0
|
coherent front-end with polarization diversity More...
Inherits module.
Public Member Functions | |
| function | CoherentFrontend_v2 (in varargin) |
| Class constructor. More... | |
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 input arguments. | |
| Property | nOutputs |
| Number of output arguments. | |
| Property | nModes |
| Number of modes. | |
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. | |
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... | |
Protected Attributes inherited from module | |
| Property | outputBuffer |
| Where output signal is stored. | |
coherent front-end with polarization diversity
Coherent front-end module. Block diagram illustrating dependencies:
Consists of:
The one output is a down-sampled complex baseband signal.
Example Constructor with minimum parameter set
This will construct a dual-pol coherent rx similar to what we have in the lab, however, with a sampling rate equal to the input sampling rate.
Advanced Example Coming soon!
This will construct a dual-pol coherent rx similar to what we have in the lab, however, with a sampling rate equal to the input sampling rate.
Definition at line 62 of file CoherentFrontend_v2.m.
| function CoherentFrontend_v2::CoherentFrontend_v2 | ( | in | varargin | ) |
Class constructor.
Class constructor
| param.nModes | Number of optical modes in input [integer] [Default: 2] |
| param.Power | Output power (pwr object). Default: SNR:inf, P: 13 dBm |
| param.linewidth | Lorentzian linewidth [Hz] [Default: 100kHz] |
| param.LFLW1GHZ | linewidth at 1GHz |
| param.HFLW | high-frequency linewidth [Hz] |
| param.fr | relaxation resonance frequency [Hz] |
| param.K | Damping factor |
| param.alpha | Linewidth enhancement factor [unitless] |
| param.phase_angle | Hybrid phase angle [rad] [Default: pi/2] |
| param.R | Responsivity [A/W] [Default: 1] |
| param.f3dB | electrical 3dB bandwidth [Hz] [Default: 40G] |
| param.Rtherm | resistance for thermal noise calculation [ohm] [Default: 50] |
| param.CMRR | common-mode rejection ratio [dB][Default: inf] |
| param.T | Temperature [K][Default: 290] |
| param.modeAdditionEnabled | [flag] [Default: false] |
| param.gaussianOrder | The order of frequency-domain gaussian filter. Turn OFF = 0 (zero) / Turn ON = any other positive number. |
| param.gaussianBandwidth | Baseband bandwidth of gaussian filter. |
| param.besselOrder | The order of frequency-domain bessel filter for group delay simulation. Turn OFF = 0 (zero) / Turn ON = any other positive integer. |
| param.besselBandwidth | Baseband bandwidth of bessel filter. |
| param.amplitudeImbalance | A vector containing amplitude imbalance for each output. E.g. if outputVoltage = 2, and amplitude imbalance equals to [1 0.9 1.1 0.8], so, the output peak voltage will be 2, 1.8, 2.2, and 1.6 for I1, Q1, I2, and Q2, respectively. |
| param.levelDC | A vector containing DC levels to be added to each of in-phase and quadrature signals. |
| param.skew | Skew - A vector with skews: [I1, Q1, I2, Q2, ...]. Normalized by symbol period. |
| param.jitterVariance | JitterVariance - The variance of a random walk Jitter. |
| param.clockError | ClockError - The clock deviance. E.g. 1e-6 means 1 ppm. |
| param.downsamplingRate | DownsamplingRate - The downsampling rate. E.g. if the number of samples per symbol of input is 2 and the downsampling rate is 3, the output will have 0.667 samples per symbol. |
| param.bitResolution | BitResolution - is the resolution of your quantizer. [Default: 8] |
| param.targetENoB | TargetENoB - is the ENoB target that you want to achieve adding noise. (Optional) |
| CoherentFrontend | object |
1.8.11