Polynomial baseline correction.
CorrSpec = basecorr(Spec,Dim,Ord) [CorrSpec,BLine] = basecorr(Spec,Dim,Ord)
This function computes and applies polynomial baseline corrections to
the input data array Spec
.
It returns the baseline corrected data in CorrSpec
and the
polynomial baseline itself in BLine
. The baseline is
computed by least-squares fitting polynomials of required order to the
data along specified dimensions.
Dim
is a vector giving all dimensions along which
one-dimensional baseline corrections should be applied. E.g. if
Dim=[2 1]
, then a correction is applied along dimension
2, and after that another one along dimension 1. If Dim
is
set to []
, a single all-dimensional baseline fit is applied
instead.
Ord
gives the orders for the polynomial fits listed in
Dim
, so it must have the same number of elements as
Dim
. If Dim=[]
, Ord
must have one
entry for each dimension of Spec
.
To fit a single third-order surface to 2D data, use
data = peaks(100); cdata = basecorr(data,[],[3 3]);
To apply corrections separately along each dimension, use
cdata = basecorr(data,[1 2],[3 3]);
If you want to apply a linear baseline correction along the second dimension only, use
cdata = basecorr(data,2,1);
To subtract the mean from the data array, use
cdata = basecorr(data,[],[0 0]);
1D and nD polynomial least-square fits are computed by constructing
the Vandermonde matrix associated with the problem and using MATLAB's
\
operator to solve the resulting system of linear equations.