Home > ISET > color > ieResponsivityConvert.m

ieResponsivityConvert

PURPOSE ^

Convert sensory responsivity in photons to energy, or in energy to photons

SYNOPSIS ^

function [responsivity,sFactor] = ieResponsivityConvert(responsivity, wave, method);

DESCRIPTION ^

 Convert sensory responsivity in photons to energy, or in energy to photons

  [responsivity,sFactor] = ieResponsivityConvert(responsivity, wave,[method='e2q']);

   When calculating a sensor responsivity, it is essential to specify
   whether the input is in units of photons or energy. In a digital
   imager, for example, each photon has a probability of producing an
   electron.  Different wavelengths must account for the number of
   photons, even if the data are expressed in units of energy.

   ISET uses photons as the basis for nearly all response calculations.

   But some important sensors are defined with respect to signal energy.
   The most important of these are the XYZ sensors. These are specified 
   with respect to energy. It is also the case the the human cone
   responses are specified with respect to energy units.  

   In some cases in the code, we convert the input signal in photons to
   energy and use the standard XYZ values. 

   In other cases, however, we have many inputs and it is easier to
   convert the specification of the XYZ functions into a form that is
   correct for photon inputs.  This function performs that conversion.

   Suppose transQ, transE are responsivity measured with respect to quanta
   and energy. Suppose that E2Q is the conversion from energy to quanta as
   a function of wavelength.  Finally, suppose inE and inQ are input
   signals in energy and quanta units.

      response = transE'*inE = (transE'*(1/E2Q)) * (E2Q*inE) = transQ'*inQ

    We can see that transQ is related to transE as transQ' = transE' * (1/E2Q).  

   This routine converts responsivities measured in energy units (respE) to
   responsivities appropriate for photons calculations (respQ).

   These issues are handled explicitly in ieLuminanceFromEnergy,
   ieLuminanceFromPhotons and ieXYZFromEnergy
   
   To specify filter transmissivities, it is not necessary to pay attention
   to the input signal units (photons or energy).  Filters transmit a
   fraction of the photons and they transmit the same fraction of the
   energy.

   The color responsivities are in the columns of RESPONSIVITY.
   WAVE is the wavelength in nanometers.
   If METHOD = 'e2q' this routine converts filters specified for energy to
   work with photons (quanta).  if method = 'q2e' this routine converts
   filters for quanta to work with energy.

 Example:
       signalPhotons = signalSPD;                               % Signal in photon units
       signalEnergy = Quanta2Energy(wave,signalPhotons');       % Signal in energy units
       conesE = humanCones('stockmanAbs',wave);
       [conesP,sFactor] = ieFilterConvert(conesE,wave,'e2q');
       % These two calculations produce equal results
       vP = conesP'*signalPhotons(:)  
       vE = conesE'*signalEnergy(:)

 See also:  ieLuminanceFromEnergy,
 ieLuminanceFromPhotons,ieXYZFromEnergy.

 Copyright ImagEval Consultants, LLC, 2005.

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:
Generated on Thu 20-Nov-2008 22:09:04 by m2html © 2003