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

photodiode model More...

Inherits unit.

Public Member Functions

function PD_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.
 

Public Attributes

Property nInputs
 Number of inputs.
 
Property nOutputs
 Number of outputs.
 
Property responsivity
 Responsivity in A/W.
 
Property bandwidth
 Bandwidth in Hz.
 
Property rTherm
 Noise equiv. thermal resistance (ohms)
 
Property T
 Noise equiv. temperature (K)
 
Property iDark
 Dark current (A)
 
- 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

photodiode model

This class models a photodiode with responsivity, noise, and bandwidth. The new output power is the electrical power calculated assuming a 50 ohm environment. The noise includes both shot and thermal noise. The bandwidth is modeled using a 2nd order butterworth filter.

Example

% Detect a garbage signal
param=struct('Responsivity', 1, 'Bandwidth', 20e9, 'Idark', 1e-9);
detector = PD_v1(param);
sigIn = createDummySignal();
sigDetected = detector.traverse(sigIn);
Author
Miguel Iglesias Modified 15/8/2014 Molly Piels - added noise
Version
1

Definition at line 28 of file PD_v1.m.

Constructor & Destructor Documentation

function PD_v1::PD_v1 ( in  param)

Class constructor.

Constructs a photodiode

Parameters
param.responsivityResponsivity [A/W] [Default: 1]
param.bandwidth3dB elect. bandwidth [Hz] [Default: 50GHz]
param.rThermResistance for Johnson noise [Ohm] [Default: 50 ohm]
param.TTemperature for Johnson noise [K] [Default 290]
param.iDarkDark current [A] [Default: 0]
Return values
objinstance of the PD_v1 class

Member Function Documentation

function PD_v1::traverse ( in  obj,
in  in 
)
virtual

Traverse function.

Calculates appropriate shot noise (2qI) and thermal noise (4kT/R) currents, then applies square-law detection (current is proportional to (Ex^2+Ey^2), not (Ex+Ey)^2) and adds that noise current. Finally, low-pass filters.

Return values
outphotodiode output
resultsno results

Reimplemented from unit.


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