Bulk detector modelling¶
Overview¶
This model was built to give the user a simple but reliable tool to simulate or to understand main parameters used to design a photovoltaic (PV) infrared photodetector. All the work done in this model was based in classical equations found in the literature.
See the __main__ function for examples of use.
The example suggested here uses InSb parameters found in the literature. For every compound or material, all the parameters, as well as the bandgap equation must be changed.
This code uses the scipy.constants physical constants. For more details see http://docs.scipy.org/doc/scipy/reference/constants.html
This code does not yet fully comply with the coding standards
References:
[1] Infrared Detectors and Systems, EL Dereniak & GD Boreman, Wiley [2] Infrared Detectors, A Rogalski (1st or 2nd Edition), CRC Press [3] Band Parameters for III-V Compound Semiconductors and their Alloys, I. Vurgaftmann, J. R. Meyer, and L. R. Ram-Mohan, Journal of Applied Physics 89 11, pp. 5815–5875, 2001.
This package was partly developed to provide additional material in support of students and readers of the book Electro-Optical System Analysis and Design: A Radiometry Perspective, Cornelius J. Willers, ISBN 9780819495693, SPIE Monograph Volume PM236, SPIE Press, 2013. http://spie.org/x648.html?product_id=2021423&origin_id=x646
Module functions¶
-
pyradi.rydetector.
JouleTeEv
(EJ)¶ Convert energy in Joule to eV.
- Args:
- EJ: Energy in J
- Returns:
- EeV: Energy in eV
-
pyradi.rydetector.
eVtoJoule
(EeV)¶ Convert energy in eV to Joule.
- Args:
- E: Energy in eV
- Returns:
- EJ: Energy in J
-
pyradi.rydetector.
FermiDirac
(Ef, EJ, T)¶ Returns the Fermi-Dirac probability distribution, given the crystal’s Fermi energy, the temperature and the energy where the distribution values is required.
- Args:
- Ef: Fermi energy in JEJ: Energy in JT : Temperature in K
- Returns:
- fermiD : the Fermi-Dirac distribution
-
pyradi.rydetector.
Absorption
(wavelength, Eg, tempDet, a0, a0p)¶ Calculate the spectral absorption coefficient for a semiconductor material with given material values.
The model used here is based on Equations 3.5, 3.6 in Dereniaks book.
- Args:
- wavelength: spectral variable [m]Eg: bandgap energy [Ev]tempDet: detector’s temperature in [K]a0: absorption coefficient [m-1] (Dereniak Eq 3.5 & 3.6)a0p: absorption coefficient in [m-1] (Dereniak Eq 3.5 & 3.6)
- Returns:
- absorption: spectral absorption coefficient in [m-1]
-
pyradi.rydetector.
AbsorptionFile
(wavelength, filename)¶ Read the absorption coefficient from a data file and interpolate on the input spectral range.
The data file must have the wavelength in the first column and absorption coefficient in [m-1] in the second column.
- Args:
- wavelength: spectral variable [m]filename: file containing the data
- Returns:
- wavelength: values where absorption is definedabsorption: spectral absorption coefficient in [m-1]
-
pyradi.rydetector.
QuantumEfficiency
(absorption, d1, d2, theta1, nFront, nMaterial)¶ Calculate the spectral quantum efficiency (QE) for a semiconductor material with given absorption and material values.
- Args:
- absorption: spectral absorption coefficient in [m-1]d1: depth where the detector depletion layer starts [m]d2: depth where the detector depletion layer ends [m]theta1: angle between the surface’s normal and the radiation in radiansnFront: index of refraction of the material in front of detectornMaterial: index of refraction of the detector material
- Returns:
- quantumEffic: spectral quantum efficiency
-
pyradi.rydetector.
Responsivity
(wavelength, quantumEffic)¶ Responsivity quantifies the amount of output seen per watt of radiant optical power input [1]. But, for this application it is interesting to define spectral responsivity that is the output per watt of monochromatic radiation.
The model used here is based on Equations 7.114 in Dereniak’s book.
- Args:
- wavelength: spectral variable [m]quantumEffic: spectral quantum efficiency
- Returns:
- responsivity in [A/W]
-
pyradi.rydetector.
DStar
(areaDet, deltaFreq, iNoise, responsivity)¶ The spectral D* is the signal-to-noise output when 1 W of monochromatic radiant flux is incident on 1 cm2 detector area, within a noise-equivalent bandwidth of 1 Hz.
- Args:
- areaDet: detector’s area in [m2]deltaFreq: measurement or desirable bandwidth - [Hz]iNoise: noise current [A]responsivity: spectral responsivity in [A/W]
- Returns
- detectivity [cm sqrt[Hz] / W] (note units)
-
pyradi.rydetector.
NEP
(iNoise, responsivity)¶ NEP is the radiant power incident on detector that yields SNR=1 [1].
- Args:
- iNoise: noise current [A]responsivity: spectral responsivity in [A/W]
- Returns
- spectral noise equivalent power [W]
-
pyradi.rydetector.
Isaturation
(mobE, tauE, mobH, tauH, me, mh, na, nd, Eg, tDetec, areaDet)¶ This function calculates the reverse saturation current, by Equation 7.22 in Dereniak’s book
- Args:
- mobE: electron mobility [m2/V.s]tauE: electron lifetime [s]mobH: hole mobility [m2/V.s]tauH: hole lifetime [s]me: electron effective mass [kg]mh: hole effective mass [kg]na: acceptor concentration [m-3]nd: donor concentration [m-3]Eg: energy bandgap in [Ev]tDetec: detector’s temperature in [K]areaDet: detector’s area [m2]
- Returns:
- I0: reverse sat current [A]
-
pyradi.rydetector.
EgVarshni
(E0, VarshniA, VarshniB, tempDet)¶ This function calculates the bandgap at detector temperature, using the Varshni equation
- Args:
- E0: band gap at room temperature [eV]VarshniA: Varshni parameterVarshniB: Varshni parametertempDet: detector operating temperature [K]
- Returns:
- Eg: bandgap at stated temperature [eV]
-
pyradi.rydetector.
IXV
(V, IVbeta, tDetec, iPhoto, I0)¶ This function provides the diode curve for a given photocurrent.
The same function is also used to calculate the dark current, using IVbeta=1 and iPhoto=0
- Args:
- V: bias [V]IVbeta: diode equation non linearity factor;tDetec: detector’s temperature [K]iPhoto: photo-induced current, added to diode curve [A]I0: reverse sat current [A]
- Returns:
- current from detector [A]
-
pyradi.rydetector.
Noise
(tempDet, IVbeta, Isat, iPhoto, vBias=0)¶ This function calculates the noise power spectral density produced in the diode: shot noise and thermal noise. The assumption is that all noise sources are white noise PSD.
Eq 5.143 plus thermal noise, see Eq 5.148
- Args:
- tempDet: detector’s temperature [K]IVbeta: detector nonideal factor [-]Isat: reverse saturation current [A]iPhoto: photo current [A]vBias: bias voltage on the detector [V]
- Returns:
- detector noise power spectral density [A/Hz1/2]R0: dynamic resistance at zero bias.Johnson noise only noise power spectral density [A/Hz1/2]Shot noise only noise power spectral density [A/Hz1/2]
-
pyradi.rydetector.
DstarSpectralFlatPhotonLim
(Tdetec, Tenvironment, epsilon)¶ This function calculates the photon noise limited D* of a detector with unlimited spectral response. This case does not apply to photon detectors. The absorption is assumed spectrally flat.
- Args:
- Tdetec: detector temperature [K]Tenvironment: environment temperature [K]epsilon: emissivity/absorption
- Returns:
- D* [cm sqrt[Hz] / W] (note units)