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

Polarizer model. More...

Inherits unit.

Public Member Functions

function Polarizer_v1 (in param)
 Class constructor. More...
 
function traverse (in obj, in in)
 Traverse 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 stokes2jones (in vin)
 Convert Stokes vector to Jones vector. More...
 

Public Attributes

Property basis
 state of polarization vector (Jones)
 
Property ER
 extinction ratio (dB)
 
Property Type
 Jones or Stokes? {'Jones' | 'Stokes' | 'nDJones'}.
 
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

Polarizer model.

Polarizer (TE/TM only, not multimode compatible) with finite extinction ratio. If the input is a single-polarization signal, it assigns a polarization. If the input is dual-pol, it acts like a normal polarizer.

The state of polarization can be specified in either Jones or Stokes space

For Stokes operation, we use the same sign convention as: Gordon [1] i.e. right-circular has sy = isx and in that case S3 = 1 Normalization is chosen so that right-circular is (0, 0, 1), horizontal (x) is (1, 0, 0), ...

Example

param.polarizer.basis = [1 1i];
param.polarizer.Type = 'Jones';
param.polarizer.ER = 20;
polarizer = Polarizer_v1(param.polarizer);
sigOut = polarizer.traverse(sigIn);
pabs(sigIn);
pabs(sigOut);

References [1] J. P. Gordon and H. Kogelnik, "PMD fundamentals: Polarization mode dispersion in optical fibers," Proc. Natl. Acad. Sci., vol. 97, no. 9, pp. 4541�4550, 2000

Author
Molly Piels
Version
1

Definition at line 44 of file Polarizer_v1.m.

Constructor & Destructor Documentation

function Polarizer_v1::Polarizer_v1 ( in  param)

Class constructor.

Jones usage: basis is a 1x2 or 2x1 complex vector. Stokes usage: basis is a 1x4, 4x1, 1x3, or 3x1 real vector

Parameters
param.basisState of polarization of output
param.TypeSpecify whether Jones or Stokes
param.ERExtinction ratio. [Default: inf]
Return values
objPolarizer_v1 object

Member Function Documentation

static function Polarizer_v1::stokes2jones ( in  vin)
static

Convert Stokes vector to Jones vector.

Convert Stokes vector to Jones vector. Note there is an inherent twofold ambiguity in this operation. This is resolved by somewhat arbitrarily assigning right-circular to 001

Parameters
vinStokes vector to convert
Return values
voutAssociated Jones vector
function Polarizer_v1::traverse ( in  obj,
in  in 
)
virtual

Traverse function.

Computes Jones matrix associated with polarizer, then either uses it or just assigns a polarization based on basis vector

Parameters
ininput signal (can have 1 or two columns)
Return values
outoutput signal - has two columns
resultsno results

Reimplemented from unit.


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