18.08.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!