The ciespec2xyz10 function calculates the normalized CIE 1931 colour coordinates x,y,z for the 10 degree standard observer, for a given spectral power distribution (SPD). Any errors in the data set or in results generated from the reference data or the Lighting Toolbox are not in the liability of the CIE nor me, see license.
Usage:
[xyz10,x10,y10,z10,XYZ10] = ciespec2xyz10(lam,spec)
Where:
Parameter | Description |
xyz 10 | Is a vector containing the normalized Tristimulus values. |
x 10 | Is a scalar containing only the normalized x component of the Tristimulus values. |
y 10 | Is a scalar containing only the normalized y component of the Tristimulus values. |
z 10 | Is a scalar containing only the normalized z component of the Tristimulus values. |
XYZ 10 | Is a vector containing the non-normalized Tristimulus values. |
lam | Is a vector specifying the spectral wavelengths steps. |
spec | Is a vector or row-wise matrix containing the spectral power distribution(s). |
Note: For several input spectra use a row-wise matrix.
Note: For the determination of Tristimulus values XYZ one can also use the ciespec2unit function with reference ’xyz10’.
Examples
Determine the normalized Tristimulus values for standard illuminant ‘D65’:
lam = 360:830; spec = ciespec(lam,'D65'); xyz10 = ciespec2xyz10(lam,spec)
See also: ciespec
Result:
xyz10 = 0.3138 0.3310 0.3552
Determine the normalized x and y component of the Tristimulus values for standard illuminant ‘D65’:
lam = 360:830; spec = ciespec(lam,'D65'); [~,x10,y10] = ciespec2xyz10(lam,spec) plotciexy(x10,y10)
Result:
x10 = 0.3138 y10 = 0.3310
Determine the normalized x and y component of the Tristimulus values for standard illuminants ‘A’ and ‘D65’:
lam = 360:830; spec = ciespec(lam,{'A','D65'}); [~,x10,y10] = ciespec2xyz10(lam,spec)
See also: ciespec
Result:
x10 = 0.4511 0.3138 y10 = 0.4059 0.3310
Determine the Tristimulus values for standard illuminants ‘A’ and ‘D65’:
lam = 360:830; spec = ciespec(lam,{'A','D65'}); [~,~,~,~,XYZ10] = ciespec2xyz10(lam,spec)
See also: ciespec
Result:
XYZ10 = 8.6372e+06 7.7717e+06 2.7360e+06 7.5249e+06 7.9367e+06 8.5165e+06
Note: The same results can be achieved with the ciespec2unit function:
lam = 360:830; spec = ciespec(lam,{'A','D65'}); XYZ10 = ciespec2unit(lam,spec,'xyz10')
Result:
ᔀXYZ10 = 8.6372e+06 7.7717e+06 2.7360e+06 7.5249e+06 7.9367e+06 8.5165e+06
Reference