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

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.
 

Detailed Description

coherent front-end with polarization diversity

Coherent front-end module. Block diagram illustrating dependencies:

CoherentFrontend_v2_blockdiagram.png

Consists of:

The one output is a down-sampled complex baseband signal.

Example Constructor with minimum parameter set

frontend = CoherentFrontend_v2(1);

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!

param.linewidth = 1e6; %set LO linewidth to 1MHz
param.Fc = const.c/1550e-9+5e9; %set LO wavelength to 1551 nm
param.phase_angle = deg2rad(89); %1-degree IQ imbalance
param.CMRR = 50; %common-mode rejection ratio of balanced pairs
param.f3dB = 32e9; %3dB bandwidth of balanced pairs
param.gaussianOrder = 2;
param.gaussianBandwidth = 40e9;
param.downsamplingRate = 1; %downsampling not currently functional
param.targetENoB = 6;
param.bitResolution = 8;
CohFrontEndComplex = CoherentFrontend_v2(param);

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.

Author
Molly Piels
Version
2

Definition at line 62 of file CoherentFrontend_v2.m.

Constructor & Destructor Documentation

function CoherentFrontend_v2::CoherentFrontend_v2 ( in  varargin)

Class constructor.

Class constructor

Parameters
param.nModesNumber of optical modes in input [integer] [Default: 2]

Laser_v1

Parameters
param.PowerOutput power (pwr object). Default: SNR:inf, P: 13 dBm
param.linewidthLorentzian linewidth [Hz] [Default: 100kHz]
param.LFLW1GHZlinewidth at 1GHz
param.HFLWhigh-frequency linewidth [Hz]
param.frrelaxation resonance frequency [Hz]
param.KDamping factor
param.alphaLinewidth enhancement factor [unitless]

OpticalHybrid_v1

Parameters
param.phase_angleHybrid phase angle [rad] [Default: pi/2]

BalancedPair_v1

Parameters
param.RResponsivity [A/W] [Default: 1]
param.f3dBelectrical 3dB bandwidth [Hz] [Default: 40G]
param.Rthermresistance for thermal noise calculation [ohm] [Default: 50]
param.CMRRcommon-mode rejection ratio [dB][Default: inf]
param.TTemperature [K][Default: 290]
param.modeAdditionEnabled[flag] [Default: false]

ElectricalFilter_v1

Parameters
param.gaussianOrderThe order of frequency-domain gaussian filter. Turn OFF = 0 (zero) / Turn ON = any other positive number.
param.gaussianBandwidthBaseband bandwidth of gaussian filter.
param.besselOrderThe order of frequency-domain bessel filter for group delay simulation. Turn OFF = 0 (zero) / Turn ON = any other positive integer.
param.besselBandwidthBaseband bandwidth of bessel filter.
param.amplitudeImbalanceA 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.levelDCA vector containing DC levels to be added to each of in-phase and quadrature signals.

ResampleSkewJitter_v1

Parameters
param.skewSkew - A vector with skews: [I1, Q1, I2, Q2, ...]. Normalized by symbol period.
param.jitterVarianceJitterVariance - The variance of a random walk Jitter.
param.clockErrorClockError - The clock deviance. E.g. 1e-6 means 1 ppm.
param.downsamplingRateDownsamplingRate - 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.

Quantizer_v1

Parameters
param.bitResolutionBitResolution - is the resolution of your quantizer. [Default: 8]
param.targetENoBTargetENoB - is the ENoB target that you want to achieve adding noise. (Optional)
Return values
CoherentFrontendobject

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