19/2/2012

Standard Normal Variate (SNV)

This is another pretreatment used quite often in Near Infrared to remove the scatter. It is applied to every spectrum individually.
The average and standard deviation of all the data points for that spectrum is calculated. The average value is substracted from the absorbance for every data point and the result is divided by the standard deviation.
"R" has a function to center and scale every vector which we can use to get the SNV spectrum. Let´s apply this function to our known Yarn NIR data.
> library(pls)
> data(yarn)
> X<-yarn$NIR
> Xt<-t(X)
> Xt_snv<-scale(Xt,center=TRUE,sd.scale=TRUE)
> wavelengths<-seq(1,268,by=1)
> matplot(wavelengths,(Xt_snv),lty=1,pch=21,
  + xlab="data_points(nm)",ylab="log(1/R)")
 
This is the raw spectra without any treatment
 


If we apply the SNV treatment the spectra change a little bit to remove some scatter:



If you like this, see also:
Applying "SNV + Detrend" to the spectra with R

1 comentario:

  1. Hola no tienen alguna información sobre Spectrum Quant+? les agradecería mucho si suben algunos tips para el desarrollo de modelos con este programa.

    ResponderEliminar