Signal processing methods for drift compensation - Texas A&M ...
Signal processing methods for drift compensation - Texas A&M ...
Signal processing methods for drift compensation - Texas A&M ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
2 nd NOSE II Workshop<br />
Linköping, 18 - 21 May 2003<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong><br />
<strong>for</strong> <strong>drift</strong> <strong>compensation</strong><br />
Ricardo Gutierrez-Osuna<br />
Department of Computer Science<br />
<strong>Texas</strong> A&M University
Outline<br />
Sources of "<strong>drift</strong>"<br />
Compensation approaches<br />
Univariate <strong>methods</strong><br />
Multivariate <strong>methods</strong><br />
Discussion<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 2 -<br />
This material is based upon work supported<br />
by the National Science Foundation under<br />
CAREER Grant No. 9984426 / 0229598<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
What is <strong>drift</strong>?<br />
"A gradual change in any<br />
quantitative characteristic<br />
that is supposed to remain<br />
constant"<br />
[Holmberg and Artursson, 2003],<br />
and references therein<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 3 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Sources of "<strong>drift</strong>"<br />
True <strong>drift</strong><br />
• Aging (reorganization of sensing layer)<br />
• Poisoning (irreversible binding)<br />
Experimental noise<br />
• Short-term <strong>drift</strong> (warm-up, thermal trends)<br />
• Memory effects (hysteresis, sampling sequence)<br />
• Environmental (pressure, temp., seasonal)<br />
• Odor delivery (flow rate, outgass, condensation)<br />
• Matrix effects (background, humidity)<br />
• Sample degradation (oxidation, decarbonation)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 4 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Approaches <strong>for</strong> <strong>drift</strong> <strong>compensation</strong><br />
Drift-free sensors<br />
• Duh!<br />
Reference sensors<br />
• Differential or ratiometric measurements [Choi et al., 1985]<br />
Excitation<br />
• Temperature modulation [Roth et al., 1996]<br />
Frequent re-calibration<br />
• Unavoidable<br />
Careful experimental design<br />
• Avoid systematic errors<br />
Feature extraction<br />
• Transient response analysis [Wilson and DeWeerth, 1995]<br />
<strong>Signal</strong> <strong>processing</strong><br />
• The focus of this tutorial<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 5 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
<strong>Signal</strong> <strong>processing</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong><br />
Univariate<br />
• Compensation applied to each sensor independently<br />
• Frequency analysis<br />
• Baseline manipulation<br />
• Differential measurements (w/ calibrant)<br />
• Multiplicative correction (w/ calibrant)<br />
Multivariate<br />
• Compensation applied to the response across sensors<br />
• Adaptive clustering<br />
• System identification<br />
• Calibration transfer (w/ calibrant)<br />
• Orthogonal signal correction and deflation (w/ calibrant)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 6 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
2 nd NOSE II Workshop<br />
Linköping, 18 - 21 May 2003<br />
Univariate Techniques
Frequency analysis<br />
Drift, noise and odor in<strong>for</strong>mation occur at<br />
different time scales [Artursson et al., 2000]<br />
• Noise = high frequencies<br />
• Drift = low frequencies<br />
• Per<strong>for</strong>m separation in the frequency domain<br />
• Filter banks [Davide et al., 1996]<br />
• Discrete Wavelet Trans<strong>for</strong>m<br />
• Drawbacks<br />
• Requires long-term time series to be collected<br />
• Time series has "gaps“, variable sampling rates<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 8 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Baseline manipulation (1)<br />
Basics<br />
• The simplest <strong>for</strong>m of <strong>drift</strong> <strong>compensation</strong><br />
• “Remove" the sensor response in the recovery<br />
cycle prior to sample delivery<br />
• Also used <strong>for</strong> pre-<strong>processing</strong> [Gardner and Bartlett, 1999]<br />
• A local technique, processes one "sniff" at a time<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 9 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Baseline manipulation (2)<br />
Differential<br />
• Corrects additive δ A or baseline <strong>drift</strong><br />
xˆ s(t)<br />
= y (t) - y (0) ( x (t) δ ) ( x (0) δ ) x (t) x (0)<br />
{ s s = s + A − s + A =<br />
{ s − s<br />
measured<br />
response<br />
y(t)<br />
x(t)<br />
2 nd Workshop<br />
t=0 t=0 t=0<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 10 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
ideal<br />
response<br />
(w/o <strong>drift</strong>)<br />
time
Baseline manipulation (3)<br />
Relative<br />
• Corrects multiplicative (1+δ M ) or sensitivity <strong>drift</strong><br />
y(t)<br />
x(t)<br />
xˆ<br />
s<br />
2 nd Workshop<br />
ys(t)<br />
(t) = =<br />
y (0)<br />
x<br />
x<br />
(t)<br />
(0)<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 11 -<br />
s<br />
t=0 t=0 t=0<br />
s<br />
s<br />
( 1+<br />
δM)<br />
xs(t)<br />
=<br />
( 1+<br />
δ ) x (0)<br />
M<br />
s<br />
time<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Baseline manipulation (4)<br />
Fractional<br />
• Percentual change in the sensor response<br />
• Properties<br />
• Yields a dimensionless measurement<br />
• Normalizes sensor responses, but can amplify noisy<br />
channels<br />
• Fractional conductance shown to be the most<br />
suitable method <strong>for</strong> MOS sensors [Gardner, 1991]<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 12 -<br />
y<br />
s<br />
(t) =<br />
x<br />
s<br />
(t) - xs(0)<br />
x (0)<br />
s<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Reference gas [Fryder et al., 1995]<br />
Equivalent to diff. BM, except a calibrant is used<br />
• Calibrant must be chemically stable over time AND<br />
highly correlated with samples [Haugen et al., 2000]<br />
y(t)<br />
x(t)<br />
2 nd Workshop<br />
Calibrant<br />
Sample<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 13 -<br />
New<br />
baseline<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
time
Calibration schedule<br />
Traditional<br />
(time intensive)<br />
Efficient<br />
(systematic memory errors)<br />
Efficient<br />
(random memory errors)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 14 -<br />
adapted from [Salit and Turk, 1998]<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
Calibrant<br />
Samples<br />
Time, €
Multiplicative correction [Haugen et al., 2000]<br />
Basic idea<br />
• Model temporal variations in a calibration gas with<br />
a multiplicative correction factor<br />
• Apply the same correction to the samples<br />
• Per<strong>for</strong>m this process first on short-term trends,<br />
then on long-term fluctuations<br />
Properties<br />
• Heuristic, global technique<br />
• Practical <strong>for</strong> industrial applications<br />
• Compensates <strong>for</strong> short- and long-term <strong>drift</strong><br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 15 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Short-term correction (1)<br />
STC<br />
U<br />
U SCT<br />
Sequence 1 Sequence 2 Sequence 3<br />
Sequence 1 Sequence 2<br />
Sequence 3<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 16 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
index<br />
index
Short-term correction (2)<br />
For each sequence<br />
• Compute a correction factor <strong>for</strong><br />
each calibration sample<br />
cal<br />
U1,<br />
seq<br />
q n, seq = cal<br />
U<br />
• Build regression model <strong>for</strong><br />
series {q 1,seq, q 6,seq, q 11,seq,…}<br />
qˆ<br />
= ax<br />
with x<br />
• Correct all samples<br />
U<br />
n, seq<br />
STC<br />
n, seq<br />
2 nd Workshop<br />
n<br />
= U<br />
n, seq<br />
n<br />
+ b<br />
= mod<br />
n, seq<br />
qˆ<br />
( n, N + 1)<br />
n, seq<br />
sam<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 17 -<br />
qˆ<br />
9, seq<br />
q6,<br />
seq<br />
Name Class Index xn<br />
U1 cal Calibration 1 0<br />
U2 Sample 2 0<br />
U3 Sample 3 0<br />
U4 Sample 4 0<br />
U5 Sample 5 0<br />
U6 cal Calibration 6 1<br />
U7 Sample 7 1<br />
U8 Sample 8 1<br />
U9 Sample 9 1<br />
U10 Sample 10 1<br />
U11 cal Calibration 11 2<br />
U12 Sample 12 2<br />
U13 Sample 13 2<br />
U14 Sample 14 2<br />
U15 Sample 15 2<br />
… … … …<br />
(seq subindex omitted <strong>for</strong> clarity)<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Long-term correction (1)<br />
LTC<br />
U SCT<br />
U LTC<br />
Sequence 1 Sequence 2<br />
Sequence 3<br />
Sequence 1 Sequence 2<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 18 -<br />
Sequence 3<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
index<br />
index
Long-term correction (2)<br />
For each sequence<br />
• Compute a correction factor <strong>for</strong><br />
the first calibration sample<br />
U<br />
cal<br />
1,1<br />
seq cal<br />
U1,<br />
seq<br />
f =<br />
• Correct all samples<br />
U<br />
LTC<br />
n, seq<br />
=<br />
2 nd Workshop<br />
Un,<br />
seqqn,<br />
seq<br />
14243 STC<br />
U<br />
ˆ<br />
n, seq<br />
seq<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 19 -<br />
f<br />
f3<br />
f2<br />
Name Class Index xn Seq<br />
U1,1 cal Calibration 1 0 1<br />
U2,1 Sample 2 0 1<br />
U3,1 Sample 3 0 1<br />
… 1<br />
U6,1 cal Calibration 6 1 1<br />
U7,1 Sample 7 1 1<br />
U8,1 Sample 8 1 1<br />
…<br />
U1,2 cal Calibration 1 0 2<br />
U2,2 Sample 2 0 2<br />
U3,2 Sample 3 0 2<br />
… 2<br />
U6,2 cal Calibration 6 1 2<br />
U7,2 Sample 7 1 2<br />
U8,2 Sample 8 1 2<br />
… … … …<br />
U1,3 cal Calibration 1 0 3<br />
U2,3 Sample 2 0 3<br />
U3,3 Sample 3 0 3<br />
… 3<br />
U6,3 cal Calibration 6 1 3<br />
U7,3 Sample 7 1 3<br />
U8,3 Sample 8 1 3<br />
… … … …<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Per<strong>for</strong>mance of multiplicative correction<br />
PCA plot of uncorrected milk samples measured over<br />
2 days: pasteurized milk () , oxidized pasteurized<br />
milk (), calibration samples ().<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 20 -<br />
PCA plot of <strong>drift</strong> corrected milk samples measured<br />
over 2 days: reference milk (), oxidized milk (),<br />
calibration samples ().<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
from [Haugen et al., 2000]
2 nd NOSE II Workshop<br />
Linköping, 18 - 21 May 2003<br />
Multivariate Techniques
Adaptive clustering<br />
Basic idea<br />
• Model the distribution of examples with a<br />
codebook<br />
• Assign an incoming (unknown) sample to the<br />
"closest" class<br />
• Adapt class parameters to incorporate in<strong>for</strong>mation<br />
from the newly classified example<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 22 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (1)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 23 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (2)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 24 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (3)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 25 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (4)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 26 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (5)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 27 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (6)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 28 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (7)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 29 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (8)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 30 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (9)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 31 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (10)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 32 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (11)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 33 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering (12)<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 34 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering <strong>methods</strong><br />
Mean updating<br />
• One cluster center per class [Holmberg et al., 1996]<br />
Kohonen self-organizing maps<br />
• One SOM common to all classes [Davide et al., 1994;<br />
Marco et al., 1997]<br />
• A separate SOM <strong>for</strong> each class [Distante et al., 2002]<br />
Adaptive Resonance Theory<br />
• ART is slightly different; new clusters can be created<br />
[Gardner et al., 1996]<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 35 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Adaptive clustering: discussion<br />
Algorithm relies on correct classification<br />
• Miss-classifications will eventually cause the<br />
model to lose track of the class patterns<br />
All odors need to be sampled frequently to<br />
prevent their patterns to <strong>drift</strong> too far<br />
This problem has also been addressed in the<br />
machine learning literature<br />
• see [Freund and Mansour, 1997] and refs. therein<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 36 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
System identification [Holmberg et al., 1996]<br />
Basic idea<br />
• Chemical sensor responses co-vary over time<br />
• This "common-mode" behavior can be modeled<br />
with a dynamic model (e.g., ARMAX)<br />
A<br />
∑<br />
n=<br />
0<br />
a<br />
n<br />
• where ys(k) is the response of sensor 's' at time k, and<br />
yi(k) is the response from all other sensors<br />
• Model parameters {A,B,C} may be adapted over time<br />
with a recursive least-squares procedure [Holmberg et<br />
al., 1997]<br />
2 nd Workshop<br />
y<br />
1<br />
( k −n)<br />
= b y ( k −n)<br />
+ c e(<br />
k −n)<br />
s 42<br />
sensor<br />
43<br />
s<br />
∑∑<br />
= =<br />
i≠s 1 i n 0<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 37 -<br />
S<br />
B<br />
in<br />
1<br />
i 42<br />
all other<br />
sensors<br />
43<br />
C<br />
∑<br />
n=<br />
0<br />
n<br />
14243<br />
white<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
noise
System identification: classification<br />
Each odor/sensor pair has a unique dynamic<br />
behavior that can be used as a fingerprint<br />
• Build a dynamic model <strong>for</strong> each sensor/odor<br />
• When an unknown odor is presented, predict its<br />
behavior of each sensor with each of the models<br />
• The method requires that multiple (consecutive)<br />
samples of the unknown odor be collected<br />
• The model with lowest prediction error<br />
corresponds to the true odor<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 38 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
System identification: illustration<br />
MODEL DYNAMIC BEHAVIOR<br />
FOR EACH ODOR/SENSOR<br />
Odor C Odor B Odor A<br />
A 1 Y=B 1 Y’+C 1 E<br />
A 2 Y=B 2 Y’+C 2 E<br />
A 3 Y=B 3 Y’+C 3 E<br />
2 nd Workshop<br />
time<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 39 -<br />
Unknown Unknown Unknown<br />
APPLY EACH O/S MODEL<br />
TO UNKNOWN SAMPLE<br />
time<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
CHOOSE ODOR MODEL<br />
WITH LOWEST ERROR<br />
ERROR 1<br />
ERROR 2<br />
ERROR 3
Calibration transfer<br />
Learn a regression mapping (e.g., MLPs, PLS)<br />
from <strong>drift</strong>ing calibrant samples onto a baseline t0 • MLPs <strong>for</strong> PyMS [Goodacre and Kell, 1996]<br />
• PLS <strong>for</strong> e-noses [Tomic et al., 2002]<br />
• MLPs <strong>for</strong> e-noses [Balaban et al., 2000]<br />
Training phase:<br />
Drifting calibrant samples<br />
at times t 1 , t 2 , …t N<br />
Recall phase:<br />
Drifting odor samples<br />
at times t 1 , t 2 , …t N<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 40 -<br />
Training phase:<br />
Baseline calibrant sample<br />
at time t 0<br />
Recall phase:<br />
Corrected odor samples<br />
at times t 1 , t 2 , …t N<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Orthogonal signal correction [Wold et al., 1998]<br />
Basic idea<br />
• Assume dataset matrices<br />
• Y: sensor-array data (independent variables)<br />
• C: concentration vector or class label (dependent)<br />
• Subtract from Y factors that account <strong>for</strong> as much<br />
of the variance in Y as possible AND are<br />
orthogonal to C<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 41 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Orthogonal signal correction: intuition<br />
2 nd Workshop<br />
Y 2<br />
Y 3<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 42 -<br />
Direction orthogonal<br />
to concentration vector<br />
Subspace correlated with<br />
concentration vector C<br />
Y 1<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Orthogonal signal correction: an example<br />
PCA PCA PCA PCA22 22<br />
6<br />
4<br />
2<br />
0<br />
-2<br />
-4<br />
-6<br />
-8<br />
-10<br />
2 nd Workshop<br />
1 11 1<br />
1 1<br />
1 1<br />
1<br />
1<br />
1<br />
1 1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1 1<br />
1 1<br />
1<br />
1<br />
1<br />
1 1<br />
1<br />
1<br />
2 2<br />
1 1<br />
1 1<br />
2 2<br />
1<br />
1<br />
2<br />
2 2<br />
2<br />
2<br />
1<br />
2<br />
2<br />
3<br />
22 3 2 22 2 2<br />
3<br />
2<br />
32<br />
32<br />
3 2 3<br />
2<br />
2 2<br />
3 223<br />
3<br />
3<br />
2 2<br />
32<br />
3 3 3<br />
2<br />
3 33<br />
3 2<br />
3<br />
3<br />
2 3 2<br />
3 3<br />
3 3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
4<br />
3<br />
4<br />
4 344<br />
4<br />
4<br />
4 44<br />
3 3 3<br />
4 4 4<br />
3 4<br />
4<br />
4 44<br />
4<br />
4<br />
4<br />
3 4 4 4<br />
4 4<br />
44<br />
4<br />
4<br />
4<br />
4 4<br />
4<br />
4 4<br />
5<br />
4<br />
5<br />
555 5<br />
4<br />
5<br />
5<br />
55<br />
5<br />
5 5<br />
5<br />
5 5<br />
5<br />
5<br />
5<br />
5<br />
5<br />
5<br />
5 5<br />
5<br />
5 5<br />
5 5<br />
55<br />
5<br />
5 5 1 11<br />
5 1<br />
5<br />
1<br />
5<br />
1 1<br />
1 1<br />
1<br />
1<br />
1<br />
5<br />
1<br />
5<br />
1 1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1 1<br />
1 1<br />
1<br />
1<br />
1<br />
1 1<br />
1<br />
1<br />
2 2<br />
1 1<br />
1 1<br />
2 2<br />
1<br />
1<br />
2<br />
2 2<br />
2<br />
2<br />
1<br />
2<br />
2<br />
3<br />
22 3 2 22 2 2<br />
3<br />
2<br />
32<br />
32<br />
3 2 3<br />
2<br />
2 2<br />
3 223<br />
3<br />
3<br />
2 2<br />
32<br />
3 3 3<br />
2<br />
3 33<br />
3 2<br />
3<br />
3<br />
2 3 2<br />
3 3<br />
3 3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
4<br />
3<br />
4<br />
4 344<br />
4<br />
4<br />
4 44<br />
3 3 3<br />
4 4 4<br />
3 4<br />
4<br />
4 44<br />
4<br />
4<br />
4<br />
3 4 4 4<br />
4 4<br />
44<br />
4<br />
4<br />
4<br />
4 4<br />
4<br />
4 4<br />
5<br />
4<br />
5<br />
555 5<br />
4<br />
5<br />
5<br />
55<br />
5<br />
5 5<br />
5<br />
5 5<br />
5<br />
5<br />
5<br />
5<br />
5<br />
5<br />
5 5<br />
5<br />
5 5<br />
5 5<br />
55<br />
5<br />
5 5 1 11<br />
5 1<br />
5<br />
1<br />
5<br />
1 1<br />
1 1<br />
1<br />
1<br />
1<br />
5<br />
1<br />
5<br />
1 1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1 1<br />
1 1<br />
1<br />
1<br />
1<br />
1 1<br />
1<br />
1<br />
2 2<br />
1 1<br />
1 1<br />
2 2<br />
1<br />
1<br />
2<br />
2 2<br />
2<br />
2<br />
1<br />
2<br />
2<br />
22 2 22 2 2<br />
2<br />
2<br />
2<br />
2 2<br />
2 2<br />
22<br />
3 2 2<br />
2 3<br />
2<br />
1<br />
3<br />
11<br />
3 2<br />
1<br />
2 2<br />
1 1 3 3<br />
1 1<br />
3<br />
1<br />
3<br />
1 3<br />
1<br />
3<br />
1<br />
3<br />
1<br />
3<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1 1<br />
1 1<br />
1<br />
1<br />
1<br />
1 1<br />
1<br />
1<br />
2 2<br />
1 1<br />
1 1<br />
2 2<br />
1<br />
1<br />
2<br />
2 2<br />
2<br />
2<br />
1<br />
2<br />
2<br />
3<br />
22 3 2 22 2 2<br />
3<br />
2<br />
32<br />
32<br />
3 2 3<br />
2<br />
2 2<br />
3 223<br />
3<br />
3<br />
2 2<br />
32<br />
3 3 3<br />
2<br />
3 33<br />
3 2<br />
3<br />
3<br />
2 3 2<br />
3 3<br />
3 3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
4<br />
3<br />
4<br />
4 344<br />
4<br />
4<br />
4 44<br />
3 3 3<br />
4 4 4<br />
3 4<br />
4<br />
4 44<br />
4<br />
4<br />
4<br />
3 4 4 4<br />
4 4<br />
44<br />
4<br />
4<br />
4<br />
4 4<br />
4<br />
4 4<br />
5<br />
4<br />
5<br />
555 5<br />
4<br />
5<br />
5<br />
55<br />
5<br />
5 5<br />
5<br />
5 5<br />
5<br />
5<br />
5<br />
5<br />
5<br />
3<br />
3<br />
33<br />
3<br />
3 3<br />
3 3<br />
3<br />
3 3 3<br />
5<br />
3 3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
4<br />
3<br />
4<br />
4 344<br />
4<br />
4<br />
4 44<br />
3 3 3<br />
4 4 4<br />
3 4<br />
4<br />
4 44<br />
4<br />
4<br />
4<br />
3 4 4 4<br />
4 4<br />
44<br />
4<br />
4<br />
4<br />
4 4<br />
4<br />
4 4<br />
5<br />
4<br />
5<br />
555 5<br />
4<br />
5<br />
5<br />
55<br />
5<br />
5 5<br />
5<br />
5 5<br />
5<br />
5<br />
5<br />
5<br />
5<br />
5<br />
5 5<br />
5<br />
5 5<br />
5 5<br />
55<br />
5<br />
5 5 1 11<br />
5 1<br />
5<br />
1<br />
5<br />
1 1<br />
1 1<br />
1<br />
1<br />
1<br />
5<br />
1<br />
5<br />
1 1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1 1<br />
1 1<br />
1<br />
1<br />
1<br />
1 1<br />
1<br />
1<br />
2 2<br />
1 1<br />
1 1<br />
2 2<br />
1<br />
1<br />
2<br />
2 2<br />
2<br />
2<br />
1<br />
2<br />
2<br />
22 2 22 2 2<br />
2<br />
2<br />
2<br />
2 2<br />
2 2<br />
22<br />
3 2 2<br />
2 3<br />
2<br />
1<br />
3<br />
11<br />
3 2<br />
1<br />
2 2<br />
1 1 3 3<br />
1 1<br />
3<br />
1<br />
3<br />
1 3<br />
1<br />
3<br />
1<br />
3<br />
1<br />
3<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1<br />
1 1<br />
1 1<br />
1<br />
1<br />
1<br />
1 1<br />
1<br />
1<br />
2 2<br />
1 1<br />
1 1<br />
2 2<br />
1<br />
1<br />
2<br />
2 2<br />
2<br />
2<br />
1<br />
2<br />
2<br />
3<br />
22 3 2 22 2 2<br />
3<br />
2<br />
32<br />
32<br />
3 2 3<br />
2<br />
2 2<br />
3 223<br />
3<br />
3<br />
2 2<br />
32<br />
3 3 3<br />
2<br />
3 33<br />
3 2<br />
3<br />
3<br />
2 3 2<br />
3 3<br />
3 3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
4<br />
3<br />
4<br />
4 344<br />
4<br />
4<br />
4 44<br />
3 3 3<br />
4 4 4<br />
3 4<br />
4<br />
4 44<br />
4<br />
4<br />
4<br />
3 4 4 4<br />
4 4<br />
44<br />
4<br />
4<br />
4<br />
4 4<br />
4<br />
4 4<br />
5<br />
4<br />
5<br />
555 5<br />
4<br />
5<br />
5<br />
55<br />
5<br />
5 5<br />
5<br />
5 5<br />
5<br />
5<br />
5<br />
5<br />
5<br />
3<br />
3<br />
33<br />
3<br />
3 3<br />
3 3<br />
3<br />
3 3 3<br />
5<br />
3 3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
3<br />
4<br />
3<br />
4<br />
4 344<br />
4<br />
4<br />
4 44<br />
3 3 3<br />
4 4 4<br />
3 4<br />
4<br />
4 44<br />
4<br />
4<br />
4<br />
3 4 4 4<br />
4 4<br />
44<br />
4<br />
4<br />
4<br />
4 4<br />
4<br />
4 4<br />
5<br />
4<br />
5<br />
555 5<br />
4<br />
5<br />
5<br />
55<br />
5<br />
5 5<br />
5<br />
5 5<br />
5<br />
5<br />
5<br />
5<br />
5<br />
5<br />
5 5<br />
5<br />
5 5<br />
5<br />
<strong>drift</strong><br />
5<br />
55<br />
5<br />
5 5<br />
5<br />
5<br />
5<br />
5<br />
-10 -5 0 5 10 15<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 43 -<br />
1<br />
PCA 1<br />
1<br />
odors<br />
2<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Component correction [Artursson et al., 2000]<br />
Basic idea<br />
• Drift is associated with the principal components<br />
of variance in a calibration gas<br />
• These directions are removed from the<br />
multivariate sensor response by means of a<br />
bilinear trans<strong>for</strong>mation<br />
Algorithm<br />
• where v cal is the first eigenvector of the calibration data x cal<br />
2 nd Workshop<br />
x =<br />
x − ⋅<br />
corrected<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 44 -<br />
( ) T<br />
x v v<br />
cal<br />
cal<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Component correction results<br />
PCA scatter plot of uncorrected samples <strong>for</strong> eight gas<br />
mixtures. Arrows indicate the direction of <strong>drift</strong>. The<br />
center cluster (+) is the calibration gas.<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 45 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
from [Art, 2000]<br />
PCA scatter plot after component correction. The<br />
calibration gas (+), no longer shown in the figure, has<br />
been used to estimate and remove the principal<br />
direction of <strong>drift</strong> (v cal ).
PCA2<br />
Component correction results (2)<br />
3<br />
2<br />
1<br />
0<br />
-1<br />
-2<br />
-3<br />
-4<br />
1<br />
1<br />
1<br />
1 1<br />
2<br />
2<br />
2 3<br />
23<br />
2<br />
3<br />
3 443 4<br />
3<br />
4<br />
4<br />
5 5<br />
55<br />
5<br />
5 6<br />
6 6<br />
6 6<br />
8<br />
8 8<br />
-6 -4 -2 0<br />
PCA1<br />
2 4 6<br />
2 nd Workshop<br />
77 7<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 46 -<br />
7<br />
7<br />
4<br />
3<br />
2<br />
1<br />
0<br />
-1<br />
88<br />
777<br />
7<br />
(1) Rioja Joven 2000<br />
(2) Rioja Crianza 1999<br />
(3) Rioja Reserva 1998<br />
(4) Ribera Joven 2000<br />
(5) Ribera Crianza 1999<br />
(6) Ribera Reserva 1998<br />
(7) Water<br />
(8) 12% v/v EtOH/Water<br />
11<br />
66<br />
1 1<br />
61<br />
5<br />
66<br />
-5 -4 -3 -2 -1 0 1 2 3 4<br />
PCA1<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
3<br />
2<br />
2<br />
2<br />
4<br />
3<br />
3<br />
4<br />
3 3<br />
2 3<br />
2<br />
2<br />
44<br />
4 4<br />
4<br />
5 5 5<br />
5 5
Component deflation [Gutierrez, 2000]<br />
Basic idea<br />
• Identify variables 'x' whose variance can be attributed to<br />
<strong>drift</strong> or interferents<br />
• E.g., response to a wash/reference gas, time stamps,<br />
temperature, pressure, humidity, etc.<br />
• Measure 'y', the sensor-array response to an odor<br />
• Remove variance in 'y' that can be explained by 'x' (by<br />
means of regression/deflation)<br />
Related to target rotation [Esbensen et al., 1987]<br />
• "…removal of undesired in<strong>for</strong>mation provided that there<br />
are variables uniquely connected to that in<strong>for</strong>mation"<br />
[Christie, 1996]<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 47 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Component deflation algorithm<br />
Find linear projections x’=Ax and y’=By that are maximally correlated<br />
• How? Canonical Correlation Analysis (CCA) or PLS<br />
• Interpretation: x’ and y’ are low-dimensional projections that summarize<br />
the linear dependencies between x and y<br />
Find regression model ypred=Wy’ • Interpretation: ypred contains the variance in the odor vector y that<br />
can be explained by y’ and, as a result of the CCA stage, by x<br />
Deflate y and use the residual z as a corrected sensor response<br />
2 nd Workshop<br />
{ A, B}<br />
= argmax[<br />
ρ(<br />
Ax, By)<br />
]<br />
W = argmin y − Wy'<br />
z =<br />
y − ypred<br />
= y − WBy<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 48 -<br />
2<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Component deflation: interpretation<br />
x 3<br />
z 2<br />
x 2<br />
2 nd Workshop<br />
class 1<br />
class 2<br />
z 1<br />
x 1<br />
class 3<br />
Ax<br />
z=y-WBy z=y-WBy<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 49 -<br />
y 2<br />
WBy<br />
y 1<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
By
Component deflation: motivation<br />
Exploit transient in<strong>for</strong>mation in wash/reference cycle<br />
• To capture temporal trends, augment vector x with the time<br />
stamp of each sample (also in [Artursson et al., 2000])<br />
Sensor response (V)<br />
WTS Kernels<br />
3<br />
2.5<br />
2<br />
1.5<br />
2 nd Workshop<br />
Wash Reference Odour<br />
x W<br />
50 100 150 200 250<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 50 -<br />
x<br />
x R<br />
y<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University<br />
Time (s)
Component deflation per<strong>for</strong>mance<br />
Database<br />
• Three months of data collection<br />
• Four cooking spices<br />
• Twenty four days<br />
• Four samples per day and spice<br />
• Ten metal-oxide sensors<br />
Plot shows one particular<br />
transient feature<br />
• Examples are sorted<br />
• By odor class<br />
• Within a class, by date<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 51 -<br />
Class 1 Class 2 Class 3 Class 4<br />
PLS<br />
CCA<br />
RAW<br />
Date Date Date Date<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Influence of aging and training set size<br />
Predictive Predictive accuracy<br />
1<br />
0.9<br />
0.8<br />
0.7<br />
0.6<br />
0.5<br />
Width=1 Width=5 Width=10<br />
2 4 6 8 10<br />
2 nd Workshop<br />
CCA<br />
PLS<br />
RAW<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 52 -<br />
Training set Test set<br />
Day: 1 2 i j k M<br />
W D<br />
2 4 6 8 10 2 4 6 8 10<br />
Distance Distance Distance<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Discussion of univariate <strong>methods</strong><br />
Frequency decomposition<br />
• Mostly useful <strong>for</strong> diagnostics and analysis<br />
Baseline manipulation<br />
• Attractive <strong>for</strong> its simplicity, but not an effective <strong>drift</strong>correction<br />
approach <strong>for</strong> chemical sensors<br />
Differential measurements wrt calibrant<br />
• First-order approximation, but does not exploit crosscorrelations<br />
Multiplicative correction wrt calibrant<br />
• Empirically shown to work, heuristic, does not exploit<br />
cross-correlations<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 53 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Discussion of multivariate <strong>methods</strong> (1)<br />
Adaptive clustering<br />
• Requires equiprobable and frequent sampling<br />
• Correct identification is essential to ensure that the<br />
adapting distributions track the odors<br />
• Does not use in<strong>for</strong>mation from a calibrant<br />
System identification<br />
• Builds a separate <strong>drift</strong> model <strong>for</strong> each odor, but<br />
requires multiple consecutive samples<br />
• Can be used as a template-matching classifier<br />
• Does not use in<strong>for</strong>mation from a calibrant<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 54 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
Discussion of multivariate <strong>methods</strong> (2)<br />
Calibration transfer<br />
• Shown to work in MS and e-nose data<br />
• Black-box approach<br />
Orthogonal <strong>Signal</strong> Correction and Deflation<br />
• In my experience, the best approach<br />
• Why? Time tested in chemometrics, uses multivariate<br />
and calibrant in<strong>for</strong>mation, and IT IS SIMPLE<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 55 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
References (1)<br />
M. Holmberg and T. Artursson, "Drift Compensation, Standards and Calibration Methods," in T. C.<br />
Pearce, S. S. Schiffman, H. T. Nagle and J. W. Gardner (Eds.), Handbook of Machine Olfaction:<br />
Electronic Nose Technology, Weinheim, Germany: Wiley-VCH, 2002, pp.325-346.<br />
S.-Y. Choi, K. Takahashi, M. Esani and T. Matsuo, "Stability and sensitivity of MISFET hydrogen<br />
sensors," in Proc. Int. Conf. Solid State Sensors and Actuators, Philadelphia, PA, 1985.<br />
M. Roth, R. Hartinger, R. Faul and H.-E. Endres, "Drift reduction of organic coated gas-sensors by<br />
temperature modulation," Sensors and Actuators B 36(1-3), pp. 358-362, 1996.<br />
D.M. Wilson and S.P. DeWeerth, "Odor discrimination using steady-state and transient<br />
characteristics of tin-oxide sensors," Sensors and Actuators B 28(2), pp. 123-128. 1995.<br />
J.W. Gardner and P.N. Bartlett, Electronic Noses. Principles and Applications, New York: Ox<strong>for</strong>d<br />
University Press, 1999.<br />
J.W. Gadner, "Detection of Vapours and Odours from a Multisensor Array using Pattern<br />
recognition. Part 1. Principal Components and Cluster Analysis," in Sensors and Actuators B 4, pp.<br />
109-115, 1991.<br />
M. Fryder, M. Holmberg, F. Winquist and I. Lündstrom, "A calibration technique <strong>for</strong> an electronic<br />
nose," in Eurosensors IX, 1995, pp. 683-686.<br />
M.L. Salit and G.C Turk, "A Drift Correction Procedure," Analytical Chemistry 70(15), pp. 3184-<br />
3190, 1998.<br />
J.E. Haugen, O. Tomic and K. Kvaal, "A calibration method <strong>for</strong> handling the temporal <strong>drift</strong> of solidstate<br />
gas sensors," Analytica Chimica Acta 407, pp. 23-39, 2000.<br />
T. Artursson, T. Eklöv, I. Lundström, P. Mårtensson, M. Sjöström and M. Holmberg, "Drift<br />
correction <strong>for</strong> gas sensors using multivariate <strong>methods</strong>," Journal of Chemometrics 14(5-6), pp. 711-<br />
723, 2000.<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 56 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
References (2)<br />
F.A.M. Davide, C. Di Natale, M. Holmberg and F. Winquist, "Frequency Analysis of Drift in Chemical<br />
Sensors," in Proc. 1 st Italian Conf. on Sensors and Microsystems, Rome, Italy, 1996, pp. 150-154.<br />
R. Goodacre and D.B. Kell, "Correction of mass spectral <strong>drift</strong> using artificial neural networks,"<br />
Analytical Chemistry 68, pp. 271-280, 1996.<br />
O. Tomic, H. Ulmer and J.E. Haugen, "Standardization <strong>methods</strong> <strong>for</strong> handling instrument related<br />
signal shifts in gas-sensor array measurement data," Analytica Chimica Acta 472, 99-111, 2002.<br />
M.O. Balaban, F. Korel, A.Z. Odabasi and G. Folkes, "Transportability of data between electronic<br />
noses: mathematical <strong>methods</strong>," Sensors and Actuators B 71, pp. 203-211, 2000.<br />
S. Wold, H. Antti, F. Lindgren and J. Öhman, "Orthogonal signal correction of near-infrared<br />
spectra," Chemometrics and Intelligent Laboratory Systems 44, pp. 175-185, 1998.<br />
K. Esbensen, L. Lindqvist, I. Lundholm, D. Nisca and S. Wold, "Multivariate Modeling of<br />
Geochemical and Geophysical Data," Chemometrics and Intelligent Laboratory Systems 2, pp. 161-<br />
175, 1987.<br />
O.H.J. Christie, “Data Laundering by Target Rotation in Chemistry-Based Oil Exploration,” Journal<br />
of Chemometrics 10, pp. 453-461, 1996.<br />
M. Holmberg, F. Winquist, I. Lundström, F. Davide, C. DiNatale, and A. D'Amico, "Drift<br />
counteraction <strong>for</strong> an electronic nose," Sensors and Actuators B 36(1-3), pp. 528-535, 1996.<br />
F.M. Davide, C. Di Natale, and A. D’Amico, "Self-organizing Multisensor Systems <strong>for</strong> Odour<br />
Classification: Internal Categorization, Adaptation, and Drift Rejection," Sensors and Actuators B<br />
18-19, pp. 244-250, 1994.<br />
S. Marco, A. Pardo, A. Ortega and J. Samitier, "Gas Identification with Tin Oxide Sensor Array and<br />
Self-Organizing Maps: Adaptive Correction of Sensor Drifts," in Proc. IEEE Instrumentation and<br />
Measurement Technology Conference, Orrawa, Canada, May 19-21, 1997, pp. 904-907.<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 57 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
References (3)<br />
C. Distante, P. Siciliano and K.C. Persaud, "Dynamic Cluster Recognition with Multiple Self-<br />
Organising Maps," Pattern Analysis and Applications 5, pp. 306-315, 2002.<br />
J. W. Gardner, E. L. Hines and C. Pang, "Detection of vapours and odours from a multisensor array<br />
using pattern recognition: self-organizing Adaptive Resonance Techniques,” Measurement +<br />
Control 29, pp. 172-178, 1996.<br />
Y. Freund and Y. Mansour, “Learning under persistent <strong>drift</strong>,” in Proc. European Conference on<br />
Computational Learning Theory, 1997, pp. 109-118.<br />
2 nd Workshop<br />
<strong>Signal</strong> <strong>processing</strong> <strong>methods</strong> <strong>for</strong> <strong>drift</strong> <strong>compensation</strong> - 58 -<br />
Ricardo Gutierrez-Osuna<br />
<strong>Texas</strong> A&M University
2 nd NOSE II Workshop<br />
Linköping, 18 - 21 May 2003<br />
Questions
2 nd NOSE II Workshop<br />
Linköping, 18 - 21 May 2003<br />
Thank you