File: LambNomogram.m

package info (click to toggle)
psychtoolbox-3 3.0.19.14.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 86,796 kB
  • sloc: ansic: 176,245; cpp: 20,103; objc: 5,393; sh: 2,753; python: 1,397; php: 384; makefile: 193; java: 113
file content (36 lines) | stat: -rw-r--r-- 949 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function T = LambNomogram(S,lambdaMax)
% T = LambNomogram(S,lambdaMax)
%
% Compute spectral sensitivities according to the
% nomogram provided in Lamb, 1995, Vision Research,
% Vol. 35, pp. 3083-3091, equation 2'.
%
% The result is in quantal units, in the sense that to compute
% absorptions you want to incident spectra in quanta.
% To get sensitivity in energy units, apply EnergyToQuanta().
%
% Argument lambdaMax may be a column vector of wavelengths.
%
% 8/20/98 dhb  Wrote it.

% These are the coefficients for Equation 2.
a = 70; b = 28.5; c = -14.1;
A = 0.880; B = 0.924; C = 1.104; D = 0.655;

% Get wls argument.
wls = MakeItWls(S);
[nWls,nil] = size(wls);
[nT,nil] = size(lambdaMax);
T = zeros(nT,nWls);

for i = 1:nT
	theMax = lambdaMax(i);
	wlarg = theMax ./ wls';
	T(i,:) = 1 ./ ( ...
					  exp( a*(A-wlarg) ) + ...
						exp( b*(B-wlarg) ) + ...
						exp( c*(C-wlarg) ) + ...
						D ...
						);
	T(i,:) = T(i,:)/max(T(i,:));
end