Sunteți pe pagina 1din 11

Laborator 13

Preprocesare Tascuri Mentale

1. Introducere
n cadrul acestui laborator se va realiza preprocesarea semnalelor
EEG nregistrate de la patru subieci n timp ce acetia efectuau 5 tascuri
mentale diferite. Scopul laboratorului este acela de a obine vectorii de
trsturi ce vor fi folosii mai depare de sistemul de clasificare pentru a
distinge ntre diferitele activitile mentale effectuate de ctre subieci.
Dac, mcar un numr mic de stri mentale ar putea fi detectate n
mod cert, atunci o persoan ar putea compune secvene de astfel de stri
pentru a indica comenzi unei maini (computer, scaun cu rotile, panou de
comand al unui vehicol terestru sau spaial) ceea ce ar presupune o
realizare deosebit cu aplicaii multiple i extrem de utile. Astfel, n primul
rnd ar fi vizate aa-numitele persoane locked-in (paralizate complet)
pentru care comunicarea cu mediul nconjurtor prin intermediul undelor
cerebrale (puterea gndului) ar reprezenta, deocamdat, o posibilitate de
mbuntire a condiiei lor de trai. De asemenea, la fel de interesate de
aceast cercetare se dovedesc a fi i acele domenii n care factorul uman, ca
factor de decizie i comand trebuie s manipuleze un numr considerabil
de manete i butoane ntr-un timp de reacie presupus foarte mic. Eliberarea
persoanei de o serie de manevre fizice ar duce nu numai la uurarea i
evitarea erorilor de manevr dar i la o decongestionare a panourilor de
comand iar exemplele de acest fel pot continua.
n contextul larg descris mai sus se ncadreaz i tema laboratorului
propus n continuare, ce urmrete discriminarea a 5 task-uri mentale. Cele
5 task-uri mentale sunt:

activitate cerebral de baz: pentru care subiectul este instruit s se


relaxeze ct mai mult posibil;
145

scris: subiectului i se cere s compun mental o scrisoare ctre un


prieten;
calcul matematic: subiectului i se cere s efectueze n gnd o
nmulire gen 49*78;
numrare vizual: subiectului i se cere s-i imagineze o tabl
neagr pe care sunt scrise numere secveniale ;
rotirea unei figuri geometrice: subiectului i se cere s vizualizeze
mental un obiect tridimensional n spaiu;

Problema de recunoatere a task-urilor mentale este mprit i


tratat n trei faze (Fig. 1):

achiziia semnalului EEG,


preprocesarea semnalului i
clasificarea propriu-zis (decizia).

n faza de achiziie, activitatea bioelectric a creierului este culeas


cu ajutorul unor electrozi de suprafa iar semnalul achiziionat este
prelucrat (eliminarea artefactelor i reducerea zgomotului) i convertit ntrun format digital - semnalul discret x[t] -, convenabil ales pentru scopul
procesrii ulterioare. El va constitui, mai departe, intrarea pentru cea de-a
doua faz preprocesarea datelor la ieirea creia se va obine un vector
de trsturi, caracteristice ale semnalului EEG XN.
Prelucrrile tipice pentru aceast faz pot fi transformri
liniare/neliniare, avnd rol de eliminare a artefactelor, mbuntirii calitii
semnalului, compresie a informaiei i de extragere de parametri ce ncearc
s pun n eviden trsturi specifice ale semnalului EEG sau ai sistemului
care l-a produs, etc. n aceast etap de preprocesare a datelor se pot face i
extrageri/eliminri a informaiilor cunoscute a priori pentru a putea astfel
crete performana clasificatorului.
FAZA II

FAZA I

activitatea
bioelectric
a creierului

Achiziia
datelor

x [t]

Preprocesare
a datelor

FAZA III

XN

Clasificarea
(decizia)

Fig. 1. Diagrama bloc a sistemului de clasificare

146

clasa

Practic, n extragerea vectorilor de trsturi, se utilizeaz un sistem


liniar AR (autoregresiv) cu ordin impus. Pe baza semnalului are loc
determinarea parametrilor sistemului, parametri ce vor fi folosii mai
departe ca date de intrare pentru clasificator.
Cea de-a treia faz este cea a clasificrii folosind o reea neuronal.
Reeaua neuronal, la intrare va primi forma prelucrat a semnalului EEG.
Justificarea extragerii prin preprocesare, din semnalul EEG, a informaiilor
utile, XN, const n aceea c aceasta poate duce la o topologie mai simpl cu
reducerea dimensiunii straturilor reelei i implicit reducerea timpului
necesar antrenrii.
Performana reelei se msoar prin rata de recunoatere corect.
Pentru performane similare este de preferat o reea mai simpl i un
algoritm de antrenare mai rapid.

2. Achiziia datelor
Achiziia semnalului electroencefalografic s-a fcut succesiv pentru
patru subieci umani (aduli). Ei au fost instruii s realizeze cele cinci taskuri presupus diferite din punct de vedere al punctelor de activare ale scoarei
cerebrale. nregistrrile au durat 10 secunde pentru fiecare task i pentru
fiecare persoan i au fost repetate la un anumit interval de timp.
Pentru achiziia simultan a semnalului de la electrozi plasai n
punctele C3, C4, P3, P4, O1, O2 definite de sistemul standard internaional
10-20, realizndu-se simultan i o filtrare a semnalului n banda de frecvene
0.1 Hz - 100 Hz. Semnalul achiziionat a fost ulterior eantionat cu
frecvena de 250 Hz i digitizat folosind un convertor de 12 bii.
Gama de frecvene a filtrului, considerat acoperitoare pentru tipul
de semnal biomedical achiziionat, asigur filtrarea componentei continue i
a celor de frecven mai joas de 0.1Hz, ca o msur pentru funcionarea
corect a convertorului A/D, i n acelai timp, realizeaz condiionarea
semnalului pentru eantionarea cu frecvena de 250Hz. Frecvena de
eantionare de 250Hz permite, conform teoremei de eantionare
achiziionarea unor semnale de maxim 125 Hz cu respectarea la limit a
frecvenei Nyquist.
Pentru nlturarea artefactelor datorate clipitului s-a prevzut
preluarea, n paralel cu achiziionarea semnalului EEG, i a altor 2 semnale
provenite de la doi electrozi plasai deasupra i respectiv dedesupt-ul

147

ochiului stng. S-a considerat artefact de clipit orice modificare n


amplitudine mai mare de 10 V aprut ntr-o perioad mai mic de 10 ms.
s1base1.dat,
s1math2.dat,
s2base1.dat,
s2math2.dat,
s3base1.dat,
s3math2.dat,
s4base1.dat,
s4math2.dat,

s1base2.dat,
s1count1.dat,
s2base2.dat,
s2count1.dat,
s3base2.dat,
s3count1.dat,
s4base2.dat,
s4count1.dat,

s1letter1.dat,
s1count2.dat,
s2letter1.dat,
s2count2.dat,
s3letter1.dat,
s3count2.dat,
s4letter1.dat,
s4count2.dat,

s1letter2.dat,
s1rotate1.dat,
s2letter2.dat,
s2rotate1.dat,
s3letter2.dat,
s3rotate1.dat,
s4letter2.dat,
s4rotate1.dat,

s1math1.dat,
s1rotate2.dat,
s2math1.dat,
s2rotate2.dat,
s3math1.dat,
s3rotate2.dat,
s4math1.dat,
s4rotate2.dat.

Fiierele de lucru (fiiere n format ASCII), n numr de 40 (4


subieci * 5 task-uri * 2 nregistrri pe fiecare task i respectiv, subiect)
conin valori de tip double pe 6 linii (corespunztoare, n ordine, celor 6
canale de nregistrare - C3, C4, P3, P4, O1 i O2, definite de schema
standard 10-20 de poziionare a electrozilor) fiecare coninnd 2500 de
valori separate cu spaiu (eantioanele semnalului EEG nregistrate timp de
10 sec la o frecven de eantionare de 250 Hz). Aceste fiiere sunt dup
cum urmeaz:

Fig. 2. Construirea de ferestre alunectoare

Staionaritatea semnalului EEG este legat direct de definiia dat


pentru un semnal staionar att n sens strict ct i in sens larg. Semnalul
EEG este un semnal nestaionar i el poate fi aproximat ca fiind staionar pe
intervale scurte de timp. Din considerente legate de staionaritatea
semnalului i a sistemului care l-a produs, cele 2500 de eantioane ce
corespund nregistrrii semnalului EEG pe un singur canal i pe o durat de
10 secunde - durat prea mare pentru ca semnalul EEG s poat fi
considerat staionar n sens larg - pot fi mprite n secvene mai scurte (de
148

exemplu, ferestre de 64 eantioane). Lund o fereastr de lungime L = 64 i


deplasnd-o de fiecare dat cu pasul L/2 se obin 77 de astfel de segmente
din cele 2500 de eantioane (Fig. 2). Lungimea ferestrei este de 0.256 s, iar
ipoteza de la care plecm este aceea a staionaritii n sens larg a
semnalului EEG, ipotez necesar pentru preprocesarea semnalului folosind
modele liniare.
n principiu, lungimea intervalului pentru aproximare staionar
poate fi una estimat prin ncercri succesive. Exist numeroase studii n
acest sens, unul dintre ele apreciind secvenele de 2 secunde ale unui semnal
EEG ca fiind cvasistaionare.
6
5
Y

Linear (Y)

y = 0.5053x + 0.2144

2
1

(a).

0
1

0.4
0.3
0.2

Y-TREND

0.1
0
-0.1

-0.2
-0.3
-0.4

(b).

-0.5

Fig. 3. (a). Trend liniar suprapus peste semnal; (b). Semnalul obinut dup
eliminarea trendului

149

3. Preprocesarea semnalelor EEG


3.1. Eliminare trend
Pentru aplicarea principial corect a metodelor de identificare de
sistem pe care le vom folosi ulterior este necesar a elimina tendina
(trendul) existent. Trendul este dependent de date prin forma sa general:
liniar, polinomial, exponenial sau logaritmic i prin valorile parametrilor
ce intervin n formul. Existena trendului este dat de o corelaie pe termen
scurt n semnal. n cazul identificrii de sistem, eliminarea trendului este de
dorit, ea permind lucrul cu un ordin mai mic al sistemului identificat.
n problema de fa s-a luat n considerare existena unui trend liniar
pentru ferestre scurte de timp. Eliminarea trendului se face pentru fiecare
canal n parte (aplicat pentru fiecare fereastr de semnal) nainte de
determinarea efectiv a coeficienilor modelului.
Aceast eliminare a trendului face ca funcia de autocorelaie a
semnalului s aib un trend descresctor mai abrupt, fapt ce conduce la
alegerea unui model AR de ordin mai mic (lucru indicat pentru simularea
problemei de clasificare realizat n mediul NeuroSolution).
Implementarea eliminrii trendului s-a fcut n mediul Matlab
folosind o comand dedicat, i anume comanda dtrend redat mai jos:
Comanda DTREND elimin trend-urile din seturile de date propuse.
Sintaxa comenzii:
ZD = DTREND(Z)
ZD = DTREND(Z,O,BREAKPOINTS)
unde:
Z reprezint setul de date pentru care se dorete eliminarea trendului;
seturile de date sunt reprezentate ca vectori coloan;
ZD returneaz datele fr trend.
1. Dac O = 0 (implicit) atunci se elimin media calculat pentru fiecare
vector coloan.
2. Dac O = 1 atunci se elimin trendurile liniare. Se calculeaz mai nti
un trend liniar continuu pentru fiecare set de date (vector coloan) i
apoi se elimin. Punctele interne de marcare a segmentelor (diferite) de
trend liniar sunt memorate ntr-un vector linie numit BREAKPOINTS.
150

Situaia standard este aceea pentru care nu exist astfel de puncte ceea
ce nseamn c o singur linie dreapt este extras din datele fiecrui
vector coloan.

3.2. Determinare vectori de trsturi, model AR


Identificarea de sistem metod principial temporal aplicat att
pentru sisteme liniare ct i pentru cele neliniare este soluia pentru care sa optat pentru determinarea vectorilor de trsturi. Pentru aceasta, se impune
sistemul de o anumit form (att din punct de vedere al arhitecturii ct i al
ordinului sistemului) i se calculeaz parametrii lui pe baza datelor
disponibile (semnalul de tip zgomot alb de medie zero i varian 2
presupus la intrarea sistemului i semnalul EEG la ieire). Parametrii
sistemului, astfel obinui, formeaz aa-numiii vectori trsturi de
dimensiune impus, egal cu ordinul sistemului identificat i mai mic dect
dimensiunea datelor modelate; acetia sunt utilizai mai departe ca intrare
pentru clasificatorul de tip reea neural. n acest context, problema de
clasificare a task-urilor pe baza semnalului EEG se transform ntr-o
problem de clasificare a sistemului care a produs la ieire semnalul EEG.
Alegerea ordinului modelului AR se constituie ntr-o problem
distinct, legat de reprezentativitatea acestuia privind semnalul modelat.
Funcia de autocorelaie i atinge maximul n origine, ea avnd un trend
oscilant descresctor pentru ntrzieri ale semnalului tinznd spre ( )
infinit. Important pentru aplicaie este utilizarea n modelare numai a
acelor coeficieni de autoregresie care pot aduce informaie util privind
semnalul analizat.
1 .2
1
0 .8
0 .6
0 .4
0 .2
0
- 0 .2
- 0 .4

10

19

28

37

46

55

64

73

82

91

Fig. 4. Reprezentarea funciei de autocorelaie (scalate prin r(0))

151

100

Funcia de autocorelaie ne ofer un criteriu de selecie a numrului


acestor coeficieni. El presupune alegerea ordinului modelului AR egal cu
numrul de lag-uri pn la care funcia de autocorelaie este sensibil diferit
de zero (n principiu, prima trecere prin zero). O valoare a funciei de
autocorelaie tinznd spre zero semnific faptul c cele dou semnale
(semnalul propriu-zis i acelai semnal ntrziat cu un numr de taci) tind
s fie decorelate.
Plecnd de la aceste considerente, am calculat funcia de
autocorelaie (scalat) pentru semnalul EEG, pentru un numr maxim de
lag-uri egal cu 100. Calculul s-a fcut pe aceeai baz de date (toi subiecii,
toate task-urile) iar rezultatele obinute pentru fiecare subiect i, respectiv pe
fiecare task au fost randomizate. Din acestea am ales aleator 20 de serii
consecutive de date pe care le-am reprezentat n Fig. 4.
Ceea ce se poate remarca n aceast figur este tendina funciei de
autocorelaie, pentru majoritatea seriilor considerate, de a tinde oscilant spre
zero ncepnd cu lag-ul 9 10 (prima trecere prin zero), tendin care se
pstreaz (cu cteva excepii).
Concluzia ce se poate trage de aici ar fi aceea c, pentru aplicaia
noastr un ordin al modelului mai mic de 9 este unul indicat. Din motive
ns, ce in de posibilitatea de comparabilitate a datelor ordinul ase este cel
pe care trebuie sa-l alegei.
Coeficienii AR sunt generai n mediul Matlab folosind metoda
Yule-Walker de determinare a acestora. Coeficienii AR calculai sunt
salvai ntr-un fiier ce va fi folosit pentru a furniza intrarea reelei
neuronale folosite ca nucleu de clasificare. Comenzile folosite pentru
generarea coeficienilor AR sunt dup cum urmeaz:
gf
Funcia AR calculeaz coeficienii unui model AR pentru un semnal dorit.
Sintaxa comenzii:
TH = AR(y,n) sau
TH = AR(y,n,approach)
unde:
TH returneaz valoarea parametrilor estimai ai modelului AR;
y este un vector coloan ce reprezint seria de timp ce se dorete a fi
modelat;
n reprezint ordinul modelului;
approach reprezint metoda de calcul utilizat; se poate opta pentru una
din variantele:
'fb':
metoda aproximrii nainte-napoi (implicit);
'ls':
metoda erorii ptratice;
'yw': metoda Yule-Walker;
152

'burg': metoda Burg;


'gl':
metoda laticii geometrice.
Funcia TH2PAR convertete formatul theta pentru parametri i matricea
de covarian.
Sintaxa comenzii:
[PAR,P,LAM] = TH2PAR(TH)
unde:
TH reprezint modelul definit n format THETA; THETA este o matrice
ce conine informaii despre: structura modelului, parametrii estimai i
acurateea estimrii lor;
PAR reprezint vectorul parametric din THETA (valorile estimate sau
nominale ale parametrilor liberi);
P reprezint matricea de covarian a parametrilor estimai;
LAM reprezint variana (matricea de covarian) a inovaiilor.

4. Cerinele laboratorului
1. Pentru codul subrutinei de preprocesare dat mai jos nlocuii semnele
de ntrebare cu acele comenzi, iniializri, limite etc. astfel nct s se
obin n final un program corect care s aib sens i s funcioneze.
2. nainte de execuia codului determinai i definii parametrii: step,
windows, chanel, order, approach, pe care subrutina de preprocesare
i folosete, n mod corect conform informaiilor prezentate anterior,
pentru obinerea unor vectorilor de trsturi coreci.
3. Rulai programul i obinei vectorii de trsturi.
4. Vizualizai rezultatul obinut n EXCEL.
task = [ 'base '; 'count ' ;'??????' ;'math
tasknr = [4 5 6 4 6];

'; 'rotate'];

code=[0 0 0 0 0];
allparams = [];
for m = 1 : ?,
for n = 1 : 5,
for k = ? : 2,
file = ['all_dat\s'
sprintf('%d%s%d',m,task(n,1:tasknr(n)),k) '.dat'];

153

load(file);
comand = sprintf('signal
=s%d%s%d;',m,task(n,1:tasknr(n)),k);
eval(comand);
comand = sprintf('clear
s%d%s%d;',m,task(n,1:tasknr(n)),k);
eval(comand);
signal = signal';
nrwin = floor( ( size( signal, 1 ) - windows ) /
step )+1;
params = [];
for ii = 0 : nrwin - 1,
% eliminare trend
ss = ??????(signal( ii*step+1 :
ii*step+windows , : ),1);

th2par(th);

% start - AR de cite ori trebuie


param = [];
for jj = 1 : chanel,
s = ss( : , jj );
th = ar( s , order , approach );
param( order*(jj-1)+1 : order*jj ) =
end
codes = code; codes(n) = 1;
% end - AR de cite ori trebuie

params = [params; param codes];


end
allparams = [allparams ; params ];
end
end
end
header = [];
for col = 1 : size(allparams,2) - size(code,2),
header = [header sprintf('I%d ', col)];
end
header = [header 'T1 T2 T3 T4 T5'];
file = 'ar_task.txt';
%deschide un nou fisier in mod scriere
fid = ?????(file,'wt');
fprintf(fid,'%s\n',header);
for lin = 1 : size(allparams,1),
fprintf(fid, '%d ', allparams(lin,:));
fprintf(fid, '\n');
end
%nchide fisierul anterior deschis
fclose(fid);

154

message = 'clasificare taskuri - toate taskurile si toti


subiectii'
%elibereaz memoria ocupat
clear task tasknr;
clear nrwin;
clear code codes param params;
clear m n k ii jj;
clear comand file;
clear signal ss s;
clear th;
clear lin col;
clear header fid message;
clear allparams;

155

S-ar putea să vă placă și