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

Polarizing beam combiner. More...

Inherits unit.

Public Member Functions

function PBC_Nx1_v1 (in param)
 Class constructor. More...
 
function traverse (in obj, in varargin)
 Main function. 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.
 

Static Public Member Functions

static function orient_sig (in Ein, in v, in ER)
 Orient signal polarization. More...
 

Public Attributes

Property bases
 matrix of output SOPs, specified in Jones space. Should be properly normalized.
 
Property ER
 extinction ratio (dB)
 
Property nInputs
 Number of input arguments.
 
Property nOutputs
 Number of output arguments.
 
- 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.
 

Detailed Description

Polarizing beam combiner.

This block takes an arbitrary number of inputs (N), polarizes each one according to a set basis vector (specified as a property), and combines them into one output signal (with two orthogonal polarizations).

Observations:

Fundamentally, the only kind of PBC that can be lossless is one that combines two orthogonal polarizations. This particular implementation allows the user to specify non-orthogonal polarizations, and if this is done, it will NOT calculate the loss associated with that choice. This is because we expect that loss to be somewhat implementation-specific.

Example:

pb = PBC_Nx1_v1(struct('nInputs', 3, 'bases', [1 0; sqrt(2) sqrt(2); 0 1]);

This will construct a 3x1 polarizing beam combiner where input 1 is X-polarized, intput 2 is 45 degrees polarized, and input 3 is Y polarized.

See also
Polarizer_v1
PBC_Nx1_v1
BS_1xN_v1
Author
Molly Piels

Definition at line 34 of file PBC_Nx1_v1.m.

Constructor & Destructor Documentation

function PBC_Nx1_v1::PBC_Nx1_v1 ( in  param)

Class constructor.

Parameters
param.nInputsnumber of inputs
param.basesset of bases in Jones space - single matrix
param.ERextinction ratio (dB)
Return values
objobject of type PBC_Nx1_v1

Member Function Documentation

static function PBC_Nx1_v1::orient_sig ( in  Ein,
in  v,
in  ER 
)
static

Orient signal polarization.

If the input signal is unpolarized (waveform has one column only), this will assign it a polarization. Otherwise, it will behave as a polarizer - there may be power loss in this second case.

Parameters
Eininput (signal_interface object)
voutput state of polarization (in Jones space)
ERextinction ratio (dB)
Return values
Eoutoutput (signal_interface object)
function PBC_Nx1_v1::traverse ( in  obj,
in  varargin 
)
virtual

Main function.

Orients each input, then adds them coherently.

Reimplemented from unit.


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