Learn R Programming

baseline (version 1.3-5)

baseline.TAP: TAP

Description

An implementation of Roman Svoboda and Jirí Málek's algorithm for baseline identification in kinetic anlaysis of derivative kinetic data.

Usage

baseline.TAP(spectra, t, interval = 15, tol = 0.001)

Value

baseline

Matrix of baselines corresponding to spectra spectra

corrected

Matrix of baseline corrected spectra

Arguments

spectra

Matrix with spectra in rows

t

Optional vector of spectrum abcissa

interval

Distance from spectrum end to starting points for the TAP (default = 15)

tol

Tolerance of difference between iterations (default = 0.001)

Author

Kristian Hovde Liland

Details

(i) A first approximation of the baseline equation is selected as the straight line between start and end of the curve. (ii) Based on the first approximation of the baseline equation, the phase change progress parameter is calculated. (iii) An updated equation of the baseline is calculated and the phase change progress parameter equation from step (ii). (iv) The baseline equation from step (iii) is compared (point by point) with the one from the previous iteration. If the convergence criterion is met (the difference between every baseline value corresponding to two successive iterations was less than 0.1%) the procedure is stopped and the final baseline equation is selected. If the convergence criterion is not fulfilled then a new iteration is carried out from step (ii) until convergence was achieved.

References

Roman Svoboda and Jirí Málek: Importance of proper baseline identification for the subsequent kinetic analysis of derivative kinetic data, Journal of Thermal Analysis and Calorimetry.

Examples

Run this code
# My T
myT <- 40:170

# My artifical curve
myAlpha <- c(seq(0.01, 0.02, length.out=40),
             dnorm(seq(-3,3,length.out=51))/2+(0:50)/2000+0.02)
myAlpha <- c(myAlpha,
             seq(myAlpha[90]-0.001, 0.01, length.out=40))
myAlpha <- myAlpha - min(myAlpha)
myAlpha <- cumsum(dadt <- myAlpha/sum(myAlpha))

# Discrete derivative
mydAlpha <- c(0,diff(myAlpha)); mydAlpha <- matrix(mydAlpha, ncol=length(mydAlpha))
rm(myAlpha) # Throw away myAlpha

# Compute baseline from T and derivative
B <- baseline(mydAlpha, t=myT, method="TAP")

# Plot 
plot(B, xlab = "T", ylab = "da/dT")

Run the code above in your browser using DataLab