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

coherent front-end with polarization diversity More...

Inherits module.

Public Member Functions

function CoherentFrontend_v1 (in param)
 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.
 
- 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. Consists of:

The four outputs are, in order, I1, Q1, I2, Q2 The user can specify PBS parameters, but typically this would be done so that the outputs were Ix, Qx, Iy, Qy.

Note: PBS_v1 will assign a state of polarization to the LO - make sure it is something that makes sense (45 deg., not TE). The default should be 45, but if one signal is zero, this may be why. (PBS_v1 will also assign a SOP to the input signal if it is unpolarized. Again, you have to check this makes sense).

Relative to a real coherent front end, this implementation has one implementation difference. There is a splitter on the input that feeds the input signal to the LO. This is so that the signal length from the LO is the same length as the input signal.

Author
Molly Piels
Version
1

Definition at line 34 of file CoherentFrontend_v1.m.

Constructor & Destructor Documentation

function CoherentFrontend_v1::CoherentFrontend_v1 ( in  param)

Class constructor.

Class constructor

Example:

%% Specify parameters
% LO has a center frequency 50 MHz above signal, 100kHz linewidth, and 5 dBm output power.
foffset = 50e6;
LOparam = struct('Power', pwr(150, {5, 'dBm'}), 'linewidth', 100e3, 'Fc', const.c/signal_wavelength+foffset);
% PBS is a standard TE/TM PBS with infinite ER.
PBSparam = struct('bases', eye(2), 'nOutputs', 2);
% Balanced pair(s) have 1A/W, 50dB CMRR, 36 GHz bandwidth
BPDparam = struct('R', 1, 'CMRR', 50, 'f3dB', 36e9, 'Rtherm', 50);
%% Rename parameters
param.LO = LOparam;
% align local oscillator to 45 degrees at input of PBS
param.LOPBS = catstruct(PBSparam, struct('align_in', [1 1]/sqrt(2)));
param.sigPBS = PBSparam;
param.hyb.phase_angle = pi/2;
param.bpd = BPDparam;
%% Construct object
CohFrontend = CoherentFrontend_v1(param)
Parameters
param.LOlocal oscillator parameters
param.sigPBSsignal PBS paramters
param.LOPBSlocal oscillator PBS paramters
param.hyboptical hybrid parameters
param.bpdbalanced pair parameters
Return values
CoherentFrontendobject

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