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

Polarizing beam splitter. More...

Inherits unit.

Public Member Functions

function PBS_1xN_v1 (in param)
 Class constructor. More...
 
function traverse (in obj, in in)
 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 input SOPs, specified in Jones space. Should be properly normalized.
 
Property align_in
 (optional) input state of polarization (Jones). Allows user to pass input signal through a polarizer before the PBS. This is useful for the local oscillator in a coherent receiver, for example.
 
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 splitter.

This block takes a single input and splits it into an arbitrary number of outputs (N), according to the set of specified state of polarization vectors. The input should be single-mode (with two orthogonal polarizations).

Observations:

Fundamentally, the only kind of PBS that can be lossless is one that splits a signal into 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 = PBS_Nx1_v1(struct('nOutputs', 2, 'bases', [1 0; 0 1]);

This will construct a standard (TE/TM) PBS.

See also
Polarizer_v1
PBC_Nx1_v1
BS_1xN_v1
Author
Molly Piels

Definition at line 34 of file PBS_1xN_v1.m.

Constructor & Destructor Documentation

function PBS_1xN_v1::PBS_1xN_v1 ( in  param)

Class constructor.

Parameters
param.nOutputsnumber of outputs
param.basesset of bases in Jones space - single matrix
param.ERextinction ratio (dB)
param.align_inoptional alignment for input polarizer (Jones vector)
Return values
objobject of type PBS_Nx1_v1

Member Function Documentation

static function PBS_1xN_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 PBS_1xN_v1::traverse ( in  obj,
in  in 
)
virtual

Main function.

Each output is the input passed through the relevant polarizer.

Reimplemented from unit.


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