Rubberband Baseline Estimation
Usage
baseline_rubberband(x, y, ...)
# S4 method for class 'numeric,numeric'
baseline_rubberband(x, y, noise = 0, spline = TRUE, ...)
# S4 method for class 'ANY,missing'
baseline_rubberband(x, noise = 0, spline = TRUE, ...)Arguments
- x, y
A
numericvector. Ifyis missing, an attempt is made to interpretxin a suitable way (seegrDevices::xy.coords()).- ...
Extra arguments to be passed to
stats::smooth.spline().- noise
A length-one
numericvector giving the noise level. Only used ifmethodis "rubberband".- spline
A
logicalscalar: should spline interpolation through the support points be used instead of linear interpolation? Only used ifmethodis "rubberband".
Value
Returns a list with two components x and y.
Details
A convex envelope of the spectrum is determined and the baseline is estimated as the part of the convex envelope lying below the spectrum. Note that the rubber band does not enter the concave regions (if any) of the spectrum.
See also
Other baseline estimation methods:
baseline_asls(),
baseline_linear(),
baseline_peakfilling(),
baseline_polynomial(),
baseline_rollingball(),
baseline_snip()
Examples
## gamma-ray spectrometry
data("BEGe")
## Subset from 2.75 to 200 keV
BEGe <- signal_select(BEGe, from = 3, to = 200)
## Plot spectrum
plot(BEGe, type = "l", xlab = "Energy (keV)", ylab = "Count")
## Rubberband baseline
baseline <- baseline_rubberband(BEGe)
plot(BEGe, type = "l", xlab = "Energy (keV)", ylab = "Count")
lines(baseline, type = "l", col = "red")
