## SplineSpd

##### >Psychtoolbox>PsychColorimetric

[spd_out] = SplineSpd(wls_in, spd_in, wls_out, [extend])

Convert the wavelength representation of a spectral power distribution.

Takes change of deltaLambda into account to keep matrix computations

consistent across wavelength samplings.

Handling of out of range values:

extend == 0: Cubic spline, extends with zeros [default]

extend == 1: Cubic spline, extends with last value in that direction

extend == 2: Linear interpolation, linear extrapolation

spd_in may have multiple columns, in which case spd_out does as well.

wls_in and wls_out may be specified as a column vector of

wavelengths or as a [start delta n] description.

If wls_out is passed as a vector of wavelengths with just one sample, we don’t

know what the wavelength sampling is, and we can’t do the conversion of

power per wavelength band. This condition is checked for and an error is

thrown. The fix is to pass the wavelengths as an S vector

S = [theWavelength wavelengthBandWidth 1].

This forces an explicit value for the wavelength band width.

5/6/98 dhb Change normalization method so that sum is constant.

This is a little closer to the desired result for

functions with big derivatives.

12/7/98 dhb Remove 5/6/98 change, as it produces the wrong power

when you spline across different wavelength regions.

7/26/03 dhb Add extend argument and pass to SplineRaw.

8/13/11 dhb Update comment to reflect changes in SplineRaw.

5/10/12 dhb Small comment fix

1/15/18 dhb Can’t believe I wrote this more than 20 years ago!

dhb Put in error check for single wavelength value pass.

`Psychtoolbox/PsychColorimetric/SplineSpd.m`