|
Robochameleon
v1.0
|
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. | |
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:
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.
Definition at line 34 of file PBC_Nx1_v1.m.
| function PBC_Nx1_v1::PBC_Nx1_v1 | ( | in | param | ) |
Class constructor.
| param.nInputs | number of inputs |
| param.bases | set of bases in Jones space - single matrix |
| param.ER | extinction ratio (dB) |
| obj | object of type PBC_Nx1_v1 |
|
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.
| Ein | input (signal_interface object) |
| v | output state of polarization (in Jones space) |
| ER | extinction ratio (dB) |
| Eout | output (signal_interface object) |
|
virtual |
1.8.11