Gap-Segment derivative
Gap-Segment derivatives of a data matrix or vector
gapDer(X, m = 1, w = 1, s = 1, delta.wav)
X |
a numeric matrix or vector' to transform (optionally a data frame that can be coerced to a numerical matrix). |
m |
the order of the derivative, between 1 and 4 (default = 1). |
w |
the filter length (should be odd and >=1), i.e. the spacing between points over which the derivative is computed. |
s |
the segment size, i.e. the range over which the points are averaged (default = 1, i.e. no smoothing corresponding to 'Norris' Gap Derivative). |
delta.wav |
the sampling interval (or band spacing). |
The sampling interval specified with the delta.wav argument is used for
scaling and get numerically correct derivatives.
The convolution function is written in C++/Rcpp for faster computations.
a matrix or vector with the filtered signal(s)
Antoine Stevens
Hopkins (2002). NIR News 14(5), 10.
data(NIRsoil)
opar <- par(no.readonly = TRUE)
par(mfrow = c(2, 2), mar = c(4, 4, 2, 2))
# plot of the 10 first spectra
matplot(as.numeric(colnames(NIRsoil$spc)),
t(NIRsoil$spc[1:10, ]),
type = "l",
xlab = "",
ylab = "Absorbance"
)
mtext("Raw spectra")
der <- gapDer(NIRsoil$spc, m = 1, w = 1, s = 1, delta.wav = 2)
matplot(as.numeric(colnames(der)),
t(der[1:10, ]),
type = "l",
xlab = "Wavelength /nm",
ylab = "gap derivative"
)
mtext("1st derivative spectra")
der <- gapDer(NIRsoil$spc, m = 1, w = 11, s = 1, delta.wav = 2)
matplot(as.numeric(colnames(der)), t(der[1:10, ]),
type = "l",
xlab = "Wavelength /nm",
ylab = "gap derivative"
)
mtext("1st derivative spectra with a window size = 11 nm")
der <- gapDer(NIRsoil$spc, m = 1, w = 11, s = 10, delta.wav = 2)
matplot(as.numeric(colnames(der)), t(der[1:10, ]),
type = "l",
xlab = "Wavelength /nm",
ylab = "gap derivative"
)
mtext("1st derivative spectra with: window size: 11 nm, smoothing: 10 nm")
par(opar)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.