|
Robochameleon
v1.0
|
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. | |
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
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
Definition at line 44 of file Polarizer_v1.m.
| 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
| param.basis | State of polarization of output |
| param.Type | Specify whether Jones or Stokes |
| param.ER | Extinction ratio. [Default: inf] |
| obj | Polarizer_v1 object |
|
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
| vin | Stokes vector to convert |
| vout | Associated Jones vector |
|
virtual |
Traverse function.
Computes Jones matrix associated with polarizer, then either uses it or just assigns a polarization based on basis vector
| in | input signal (can have 1 or two columns) |
| out | output signal - has two columns |
| results | no results |
Reimplemented from unit.
1.8.11