Smoothes intensities.

## Usage

signal_smooth(object, ...)

smooth_rectangular(object, ...)

smooth_triangular(object, ...)

smooth_savitzky(object, ...)

# S4 method for GammaSpectrum
signal_smooth(object, method = c("rectangular", "triangular", "savitzky"), ...)

# S4 method for GammaSpectra
signal_smooth(object, method = c("rectangular", "triangular", "savitzky"), ...)

# S4 method for GammaSpectrum
smooth_rectangular(object, m = 3, ...)

# S4 method for GammaSpectra
smooth_rectangular(object, m = 3, ...)

# S4 method for GammaSpectrum
smooth_savitzky(object, m = 3, p = 2, ...)

# S4 method for GammaSpectra
smooth_savitzky(object, m = 3, p = 2, ...)

# S4 method for GammaSpectrum
smooth_triangular(object, m = 3, ...)

# S4 method for GammaSpectra
smooth_triangular(object, m = 3, ...)

## Arguments

object

A GammaSpectrum or GammaSpectra object.

...

Extra parameters to be passed to further methods.

method

A character string specifying the smoothing method to be used. It must be one of "unweighted" (default), "weighted" or "savitzky" (see details). Any unambiguous substring can be given.

m

An odd integer giving the number of adjacent points to be used.

p

An integer giving the polynomial degree. Only used if method is "savitzky".

## Value

A GammaSpectrum or GammaSpectra object.

## Details

The following smoothing methods are available:

rectangular

Unweighted sliding-average or rectangular smooth. It replaces each point in the signal with the average of $$m$$ adjacent points.

triangular

Weighted sliding-average or triangular smooth. It replaces each point in the signal with the weighted mean of $$m$$ adjacent points.

savitzky

Savitzky-Golay filter. This method is based on the least-squares fitting of polynomials to segments of $$m$$ adjacent points.

There will be $$(m - 1) / 2$$ points both at the beginning and at the end of the spectrum for which a complete $$m$$-width smooth cannot be calculated. To prevent data loss, progressively smaller smooths are used at the ends of the spectrum if method is unweighted or weighted. If the Savitzky-Golay filter is used, the original $$(m - 1) / 2$$ points at the ends of the spectrum are preserved.

## References

Gorry, P. A. (1990). General Least-Squares Smoothing and Differentiation by the Convolution (Savitzky-Golay) Method. Analytical Chemistry, 62(6), p. 570-573. doi:10.1021/ac00205a007 .

Savitzky, A. & Golay, M. J. E. (1964). Smoothing and Differentiation of Data by Simplified Least Squares Procedures. Analytical Chemistry, 36(8), p. 1627-1639. doi:10.1021/ac60214a047 .

N. Frerebeau

## Examples

# Import CNF files
spc_file <- system.file("extdata/LaBr.CNF", package = "gamma")
spc <- signal_slice(spc, -c(1:35))

# Plot raw spectrum
spc_clean <- signal_correct(spc)
plot(spc_clean)

# Rectangular smooth
spc_unweighted <- smooth_rectangular(spc, m = 3)
spc_unweighted_clean <- signal_correct(spc_unweighted)
plot(spc_unweighted_clean)

# Triangular smooth
spc_weighted <- smooth_triangular(spc, m = 5)
spc_weighted_clean <- signal_correct(spc_weighted)
plot(spc_weighted_clean)

# Savitzky–Golay
spc_savitzky <- smooth_savitzky(spc, m = 21, p = 2)
spc_savitzky_clean <- signal_correct(spc_savitzky)
plot(spc_savitzky_clean)