Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
A
Allg
go
orriittm
mii eevvo
ollu
uaaii d
dee iid
deen
nttiiffiiccaarree
ii p
prreed
diicciiee aa ffeen
no
om
meen
neello
orr eecco
ollo
og
giiccee
RAPORT DE CECETARE
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009
P
Prrooiieeccttaarreeaa ii rreeaalliizzaarreeaa
ssiisstteem
moonniittoorriizzaarree
muulluuii ddee m
RAPORT DE CERCETARE
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009
Dan TEFNOIU1, Janetta CULI,
Ctlin PETRESCU, Alexandru DUMITRACU, Aurelia PURCREA
Universitatea Politehnica din Bucureti
Facultatea de Automatic i Calculatoare
www.pub.ro, www.acs.pub.ro
E-mails: danny@indinf.pub.ro, jculita@yahoo.com,
catalin@indinf.pub.ro, dumalex@ecosys.pub.ro, purcarea_aurelia@yahoo.com
Rezumat
Cea de-a treia etap (din totalul de 5, dup ultimul act adiional) a proiectului intitulat
Sistem de monitorizare ecologic bazat pe analiza timp-frecven-scal a
semnalelor, a avut un dublu obiectiv. n primul rnd, structura hardware a sistemului fiind
practic finalizat, s-a urmrit efectuarea achiziiei primelor date din natur. In al doilea rnd
i mult mai important n aceast etap a fost necesar implementarea unor algoritmi
de complexitate ridicat, cu ajutorul crora s se poat efectua identificarea i predicia
fenomenelor care au furnizat datele (activitai care stau la baza monitorizrii efective). Dei
ambele obiective au fost atinse n aceast etap (conform planului de realizare), ele
continu s fie urmrite pn la finalizarea proiectului.
Prezentul raport de cercetare se concentreaz pe descrierea celor 3 activiti prevzute
n planul de realizare, care au condus la finalizarea etapei a III-a. Activitile sunt grupate
n dou categorii:
achiziii de date;
implementarea unor algoritmi de complexitate ridicat, n vederea identificrii
experimetale i prediciei datelor achiziionate.
Achiziia de date beneficiaz de suportul hardware al sistemului de monitorizare,
constituit din: senzori specializai, interfaa VISA, unitatea mobil de calcul i unitatea
paralel de calcul (toate, descrise n rapoartele precedente de cercetare). Reamintim c
1
Director de proiect.
www.geocities.com/dandusus/Danny.html
Cuprins
1. Scurt introducere
3
3
5
7
7
8
11
13
14
14
16
16
20
27
28
31
34
34
35
42
46
58
58
60
67
77
77
82
88
91
92
95
100
100
103
106
109
109
110
6. Rezultate de simulare
114
115
115
116
117
7. Concluzii i perspective
117
129
137
137
139
163
163
165
175
175
177
191
191
199
215
215
217
237
Bibliografie
269
II
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050.III/DS.JC.CP.AD.AP-09.2009] <15-sep.-09>
Lista figurilor
1.1. Structura minimal a subsistemului fix de calcul, utilizat n laborator.
1.2. Structura minimal a subsistemului mobil de calcul, utilizat n teren.
1.3. Participarea proiectului ECO-TSFS la Salonul inovrii,
Bucureti, 28-29 iulie 2009.
2.1. Structura unui protocol de comunicaie, dup modelul OSI.
2.2. Reea de senzori cu topologie stelat.
2.3. Reea de senzori cu topologie de tip plas (mesh).
2.4. Reea de senzori cu topologie hibrid.
2.5. Imaginea de ansamblu a sistemului Crossbow.
2.6. Puntea de legtur (gateway) a reelei Crossbow.
2.7. Prize de conectare din partea posterioar a punii de legtur.
2.8. Baza radio a reelei Crossbow.
2.9. Notificarea de conectare n reea a unui nou eKo-nod.
2.10. Lista de eKo-noduri care ncearc s extind reeaua.
2.11. Descrierea detaliat, de tip eKo-View,
a eKo-nodurilor conectate n reea.
2.12. Poarta de intrare a interfeei eKo-View.
2.13. Meniurile interfeei eKo-View.
2.14. Vizualizarea unei reele de eKo-senzori n activitate
(configuraie stelat).
2.15. Vizualizarea unei reele de eKo-senzori n activitate
(configuraie de tip plas).
2.16. Vizualizarea graficelor evoluiei datelor msurate.
2.17. Vizualizarea caracteristicilor datelor msurate.
2.18. Facilitatea de configurare a eKo-nodurilor.
2.19. Facilitatea de configurare a plajelor de variaie
pentru mrimile monitorizate.
2.20. Afiarea informaiilor de performan ale reelei.
2.21. Afiarea strii de sntate a reelei.
2.22. Afiarea strii de sntate a unitii centrale din puntea de legtur.
2.23. Afiarea informaiilor despre eKo-senzori i datele achiziionate.
2.24. Afiarea datelor cu ajutorul jojelor.
2.25. Afiarea informaiilor detaliate privind nivelele de alarm.
2.26. Exportul datelor sub forma unui fiier de tip .csv.
2.27. Coninutul unui fiier de date de tip .csv.
2.28. Coninutul unui fiier de date de tip .xls.
2.29. Fereastra de dialog cu utilizatorul a funciei makeDATA.
2.30. Accesul la puntea de legtur prin intermediul interfeei eKo-View.
2.31. Fereastra de informare privind crearea fiierului tampon de date.
2.32. Paii principali n construcia unui fiier tampon de date.
2.33. Conversia bazei de date de tip SQLite
ntr-o baz de date de tip Access.
2.34. Interfaa MATLAB Visual Query Builder
pentru interogarea bazelor de date.
3.1. Evoluia unei populaii ctre punctul de optim
n cadrul Algoritmului PSO.
3.2. Reprezentarea matricial a populaiilor de particule
n cadrul Algoritmului PARMA-PSO.
III
1
2
3
7
9
10
12
15
16
17
17
18
18
20
21
21
21
22
23
23
24
24
25
25
26
26
27
27
28
29
30
30
31
32
32
33
34
36
44
53
57
74
79
81
85
86
87
89
90
101
101
107
109
110
111
111
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.
6.8.
6.9.
118
118
119
119
120
120
121
121
112
112
114
122
122
123
123
124
124
125
125
126
126
127
127
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050.III/DS.JC.CP.AD.AP-09.2009] <15-sep.-09>
Lista tabelelor
2.1. Codul minimal de culori utilizat de eKo-noduri.
2.2. Codul extins de culori utilizat de eKo-noduri.
2.3. Codul de culori utilizat pentru resetarea unui eKo-nod.
18
19
20
Lista algoritmilor
3.1. PARMA-PSO un algoritm clasic de predicie a proceselor stocastice,
cu ajutorul modelelor ARMA, folosind tehnica PSO.
3.2. Testul de stabilitate Schr-Cohn.
3.3. PARMAX-PSO un algoritm de predicie a proceselor stocastice
distribuite, cu ajutorul modelelor MISO-ARMAX, folosind tehnica PSO.
3.4. KARMA un algoritm de predicie prin filtrare Kalman-Bucy-Markov.
3.5. KARMA-PSO un algoritm de predicie
prin filtrare Kalman-Bucy-Markov, folosind tehnica PSO.
4.1. FORWAVER 1 un algoritm de predicie a seriilor de timp nestaionare,
folosind pachete de undine ortogonale, cu suport compact.
4.2. Algoritmul lui Daubechies de generare a undinelor ortogonale,
cu suport compact.
4.3. Algoritmul Daubechies-deRham de rezolvare a EDL finite,
cu rezoluie controlat.
42
45
54
71
75
95
98
99
VI
1. Scurt introducere
Precedentele rapoarte de cercetare aferente elaborrii proiectului, [NDS07] i
[SPDC08], au conturat principalele elemente ale sistemului de monitorizare ecologic.
Pentru uurin, relum n Figurile 1.1 i 1.2 structura hardware a acestuia.
Calculator personal
ASUS
1 procesor dual core
Calculator portabil
DELL
1 procesor dual core
Nod de comunicaie
eKo-nod
Transmisie radio
Senzor ecologic
eKo-senzor
Transmisie radio
Figura 1.3. Participarea proiectului ECO-TSFS la Salonul inovrii, Bucureti, 28-29 iulie 2009.
3
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
comunicrii umane odat nvate, devin reflexe. Singura limitare a acestora este
determinat de posibilitatea efectiv a fiecruia dintre noi de a traduce propriile gnduri i
idei n mesaje exprimate verbal sau scris, care s aib coeren.
Atunci cnd discutm despre comunicarea prin mijloace electronice, lucrurile se
schimb, cteva elemente fiind totui asemntoare comunicrii umane. Comunicaia ntre
dispozitivele electronice se poate realiza doar dac acestea respect acelai set de reguli
predeterminate i standardizate. Un prim exemplu n acest sens este modelul OSI (Open
Systems Interconect) [ZiH80] pentru stivele de protocoale din alctuirea sistemelor de
comunicare, acesta constituind de fapt punctul de plecare pentru diferitele standarde de
comunicaie. Acestea trebuie sa acopere toate aspectele procesului de comunicaie, de la
modul de manipulare a datelor (la nivelul superior, 7), pn la modul de utilizare a mediului
fizic (la nivelul inferior, 1).
Comunicarea ncepe cu un prim mesaj (sau o prim informaie), care trebuie trimis()
de la un individ sau un dispozitiv la altul. Pentru a realiza aceast transmisie de informaie
sunt necesare trei elemente:
sursa mesajului emitorul;
destinaia mesajului receptorul;
mediul folosit pentru transmiterea mesajului canalul.
Reelele de comunicaie radio pot fi configurate n 2 moduri:
ad hoc, mod ce permite dispozitivelor fr fir s comunice punct-la-punct;
infrastructur, mod ce permite dispozitivelor fr fir s comunice cu un nod central
avnd capacitatea de a comunica cu noduri cablate din reea.
Ambele moduri de configurare necesit una sau mai multe plci de reea, numite plci
de tip WLAN. (Reelele radio configurate n modul infrastructur pot necesita, n plus, un
dispozitiv central numit punct de acces.)
2.1.2. Reele ad hoc de senzori
O reea ad hoc se formeaz n mod dinamic prin cooperarea unui numr arbitrar de
noduri independente. Fiecare nod ia decizii n funcie de starea reelei la momentul
respectiv, fr existena unei infrastructuri prestabilite. Subsistemul de senzori al unitii
mobile este o astfel de reea, care are capacitatea de a se configura n manier ad hoc.
Din cauza lipsei unei infrastructuri fixe, n reeaua ad hoc, prelucrarea datelor numerice
vehiculate se efectueaz, de regul, de o manier descentralizat. Nodurile reelei au
resurse limitate de energie si memorie. O transmisie realizat de un astfel de dispozitiv
poate fi recepionat de mai multe noduri situate n vecintatea sa, ceea ce provoac
interferene ntre diferite semnale. Att selectarea nodului care va efectua transmisia
mesajului, ct i traseul acestuia sunt decise de fiecare nod, conform cu protocolul prezent
n reeaua respectiv. n cazul de fa, (eKo)nodurile reelei sunt coordonate de un
protocol de tip XMesh, care va fi prezentat ulterior.
Diverse protocoale de direcionare a mesajelor (operaie numit, prin abuz de limbaj,
rutare de la termenul englezesc routing) sunt condiionate de capabilitile reelei. Astfel,
nainte de implementare, trebuie stabilii parametrii de funcionare, performanele dorite de
comunicaie i limitrile reelei.
Problema cea mai important legat de reelele ad hoc o constituie pstrarea evidenei
conexiunilor dintre noduri, care se poate schimba de la un moment la altul. Fr aceast
funcie, reeaua ad hoc nu poate exista.
Spre deosebire de reelele de obinuite de comunicaie, cele formate din senzori au ca
atribuii suplimentare (n afara realizrii comunicrii de date) detecia i estimarea unor
evenimente de interes din reea. O reea ad hoc de senzori const ntr-un numr de
senzori distribuii pe o anumit arie geografic. Fiecare astfel de senzor poate avea un
anumit nivel de inteligen artificial, msurat de complexitatea algoritmilor de prelucrare
primar i transmiterea n reea a datelor achiziionate.
5
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Nivelul de tip sesiune (5) exist funcii nsrcinate cu stabilirea, meninerea, gestionarea
i terminarea sesiunilor de comunicare dintre emitor i receptor. Aici, sunt oferite servicii
nivelului de tip prezentare. De asemenea, la acest nivel se realizeaz sincronizarea ntre
nivelurile de tip prezentare i gestionarea schimbului de date ntre acestea. n plus, la
nivelul de tip sesiune sunt oferite bazele pentru transferul eficient de date, pentru clase de
servicii i pentru raportarea excepiilor nivelurilor de tip sesiune, prezentare i aplicaie.
Multe aplicaii, cum ar fi i motoarele de cutare pe internet, ncorporeaz funciile celor
trei nivele superioare (7, 6 i 5) ntr-un singur nivel, considerat de tip aplicaie.
Nivelul de tip transport (4) are ca rol segmentarea datelor la emitor i reasamblarea
lor la receptor. Limita dintre nivelul de tip transport i cel de tip sesiune constituie de fapt
grania ntre protocoale de orientate ctre aplicaii i protocoale de transfer de date. n timp
ce nivelurile de tip aplicaie, prezentare i sesiune rezolv probleme legate de aplicaii, n
cele patru niveluri inferioare sunt tratate problemele legate de transportul datelor.
Nivelul de tip transport ncearc s ofere un serviciu care s izoleze nivelurile
superioare de orice specificiti legate de modul cum este executat transportul datelor.
Pentru a fi oferit o comunicare sigur a datelor, la acest nivel exist i servicii de
detectare a erorilor i recuperare a datelor care au fost deteriorate n timpul transmisiei.
Tot aici este realizat, n plus, controlul fluxului de informaii.
Nivelul de tip reea (3) trebuie s asigure un mecanism de adresare a dispozitivelor
finale: calculatoare i periferice. La acest nivel, se realizeaz adresarea logic a tuturor
nodurilor din reea. Pentru ca informaiile individuale s fie direcionate ctre un anumit
dispozitiv final, acesta trebuie s aib o adres unic. Nivelul de tip reea trebuie de
asemenea s furnizeze servicii pentru direcionarea pachetelor de comunicaie de la surs
ctre destinaie. Cele mai importante funcii ale acestui nivel sunt aadar: adresarea,
direcionarea, ncapsularea, decapsularea. Protocolul cel mai des utilizat la acest nivel,
implementat i n cadrul reelei de eKo-noduri este Internet Protocol version 4 (IPv4).
Nivelul de tip date (2) ofer transportul sigur al informaiei printr-o legatur fizic direct.
Pentru a realiza acest lucru, funciile de la acest nivel sunt proiectate pentru adresarea
fizic, stabilirea topologiei reelei, dobndirea accesului la reea, detecia i anunarea
erorilor i controlul fluxului fizic. Acest nivel are rolul de a permite celorlalte nivele s
acceseze reeaua (mediul) i de a controla modul cum informaia este transmis prin
diferite medii (cablu electric, fibr optic, unde radio). Pentru o separare convenabil
sarcinilor, funciile nivelului 2 sunt grupate n dou categorii:
Controlul legturilor logice (Logical Link Control), unde sunt ncapsulate datele n
cadre care conin informaii despre protocoalele utilizate. Aceste informaii permit ca,
n aceeai reea, s se poat folosi mai multe tipuri de protocoale de nivel 3.
Controlul accesului media (Media Access Control), care furnizeaz modul de adresare
a datelor i delimiteaz informaia n funcie de necesitile nivelului fizic i de
protocolul utilizat. Aici se realizeaz transformarea informaiilor primite de la nivelele
precedente n cod binar.
n fine, la nivelul fizic (1) sunt definite specificaii electrice, mecanice, procedurale i
funcionale pentru activarea, meninerea i dezactivarea legturilor fizice ntre sisteme. n
aceast categorie de caracteristici se ncadreaz niveluri de tensiune, sincronizare, rate
de transfer fizic, distane maxime la care se poate transmite i alte atribute similare care
sunt definite de specificaiile fizice. Rolul acestui nivel este s codifice informaia binar
primit de la nivelul de tip date n semnale care s fie transmise prin mediul fizic.
2.2.2. Topologii cu reele de senzori
Exist mai multe arhitecturi care pot fi utilizate pentru implementarea reelelor de
senzori cu comunicaie radio. Cele mai populare sunt: de tip stea, de tip plas i hibride
stea-plas. Fiecare topologie prezint propriile sale provocri, avantaje i dezavantaje.
8
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Pentru mai mult claritate n explicaia care urmeaz, iat civa termeni de specialitate
dedicai:
Puncte terminale (endpoints). Acestea sunt module care conin senzori i dispozitive
de nregistrare a datelor. n anumite reelele, acestea mai sunt numite i dispozitive
funcionale reduse (Reduced Functional Devices). Ele pot transmite mesaje att ctre
partea superioar a reelei ct i ctre parta inferioar.
Trasator de rute (router). Este un dispozitiv care are ca rol extinderea zonei de
acoperire a reelei i asigurarea de rute alternative, n cazul n care reeaua este
blocat sau anumite legturi sunt ntrerupte. n unele cazuri, trasatoarele de rute pot
funciona ca puncte terminale. n anumite reele, ele se mai numesc i dispozitive cu
funcii complete (full-function devices).
Punte de legtur (gateway). Acest dispozitiv recepioneaz datele de la reea i le
ofer utilizatorului prin intermediul unei reele de tip LAN sau a Internetului.
Utilizatorul poate accesa datele folosind o interfa grafic. Aceasta i permite s
monitorizeze i s configureze parametrii reelei.
Protocol de reea. Colecie de programe software care capacitatea de autoconfigurare, diagnoz i revitalizare a reelei.
Topologie. Acest termen se refer att la configuraia componentelor hardware, ct i
la modul de transmitere a datelor n reea.
A. Topologia stelat
O topologie de tip stea este o configuraie n care toate nodurile gzduiesc senzori aflai
n raza direct de comunicare (de obicei ntre 30 i 100 de metri) a punii de legtur, ca n
Figura 2.2.
Topologia stelat ofer cel mai mic consum de energie, dar este limitat de distana pe
care o poate parcurge un semnal de la un punct terminal la puntea de legtur. De
asemenea, nu exit ci de comunicare alternative cu punctele finale. n cazul n care
conexiunea dintre punctul terminal i punte este pierdut, datele nu vor mai fi accesibile.
B. Topologia de tip plas (mesh)
n cadrul topologiei de tip plas, toate nodurile (care gzduiesc senzori) sunt de tip
trasator de rute, ca n Figura 2.3. Nodurile sunt capabile s comunice att ntre ele, ct i cu
puntea de legtur.
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Pentru configuraiile care au o surs de curent continu, cea mai indicat strategie este
XMesh-HP. Aceast strategie ofer cea mai mare freceven de transmitere a mesajelor.
Nodurile consum ntre 15 i 30 mA, acest lucru depinznd de tipul nodului. Nodurile pot
primi i transmite mesaje la orice moment din timp. Mesajele sunt transmise cu o vitez
mai mare, scznd timpul necesar formrii reelei sau adugrii unui nou nod.
Pentru sisteme care se bazeaz pe baterii ca surs de energie, iar durata lor de via
trebuie s ating luni sau chiar ani, cele mai folosite strategii sunt XMesh-LP i
Xmesh-ELP. n cazul strategiei XMesh-LP, reeaua cu consum redus de putere poate s
funcioneze sincron sau asincron. Folosind sincronizarea, nodurile sunt sincronizate cu o
toleran de 1 ms, ceea ce ofer o eficien ridicat. n acest mod, nodurile au dou stri:
de veghe (adormire uoar light sleep) i de trezire (wake-up). La fiecare 8 s se trece din
starea de veghe n starea de trezire, pentru un interval scurt de timp n vederea deteciei
semnalelor radio transmise. Dac se detecteaz un astfel de semnal, nodul va rmne n
starea de trezire, pentru a-l recepiona. Aceast operaie consum n medie 80A. Cnd
datele sunt transmise la un interval de 3 minute, consumul de energie pentru o reea de 50
de noduri este de circa 220 A. Dac se dorete un consum i mai mic de energie, acest
obiectiv se poate atinge crescnd intervalul de trazire. Strategia Xmesh-ELP este folosit
doar pentru noduri terminale care nu particip n procesul de direcionare a mesajelor (ca
n cazul topologiei stelate sau hibride). Aceste noduri doar comunic cu puntea de
legtur sau cu alte noduri intermediare, care pot direciona mesajele i datele pe diferite
rute. Din acest motiv, nodurile terminale fr capacitate de direcionare nu au nevoie de
sincronizare pentru a trece n starea de trezire. Ele pot sta n starea de adormire uoar
pe durate foarte lungi de timp. Dac atunci cnd transmite un mesaj ctre un nod
destinaie, un astfel de nod nu primete confirmare, el va nmagazina informaia pn la
deblocarea conexiunii sale (n limita memoriei disponibile).
2.3. Echipamentele i interfaa reelei de eKo-senzori
2.3.1. Descriere general
Seria de senzori eKo Pro Series de la Crossbow (din acest motiv, denumii de noi
eKo-senzori), descris parial i n raportul de cercetare precedent [SPDC08], este un
sistem cu comunicaie radio pentru monitorizarea mediului, a microclimatelor formate n
sere sau n spaii deschise i pentru studii de cercetare n acest domeniu. Sistemul eKosenzorial introduce o nou generaie de senzori, caracterizai (aa cum s-a amintit) prin
transmisie radio a datelor. Crossbow a ncercat de fapt o revoluionare n domeniul agricol
din punctul de vedere al preciziei cu care sunt monitorizate sistemele aferente i, probabil,
a reuit n mare parte, deoarece eKo-senzorii pot fi utilizai i n medii ecologice neagricole (cum ar fi serele, pdurile, etc.).
Acest sistem de monitorizare nu trebuie privit ca o staie meteo, sau ca un simplu
dispozitiv de control al irigaiei, aa cum se nelege adesea prin sintagma monitorizare de
ecosistem. Complexitatea sa este mai ridicat, prin faptul c eKo-senzorii nglobeaz o
anumit cantitate de inteligen (artificial). El este ideal pentru a rspunde nevoilor de
monitorizare, sigurana preciziei datelor furnizate, managementul irigaiilor, analiza calitii
apei, contaminarea solului, nivelul de radiaii solare, cantitatea de precipitaii, direcia i
intensitatea vntului, etc. Utiliznd acest sistem, mpreun cu algoritmii de prediie de la
nivelul superior, se asigur o dezvoltare durabil i sigur a mediilor ecologice.
De asemenea, seria de eKo-senzori este uor de utilizat, fr a fi necesar o experien
n domeniu. Configurarea reelei este la ndemna oricrui utilizator, aceasta fiind intuitiv
i avnd un suport tehnic consistent, care s poat rspunde la aproximativ orice ntrebare.
Principalele componente ale sistemului sunt: nodurile, baza radio i puntea de legtur.
Sistemului i se adaug ulterior senzori care monitorizeaza diferite mrimi: temperatura
ambiant, umiditatea aerului, temperatura solului, umiditatea solului, componentele apei
din sol, radiaia solar, viteza i direcia vntului, etc.
14
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Energie suplimentar provenit din energia solar. Fiecare eKo-nod are baterii
solare rencrcabile, pentru a asigura o funcionare ct mai ndelungat a eKosenzorilor, ajungndu-se la timpi de via de ordinul anilor. EKo-nodurile pot
funciona fr energie solar pn la trei luni.
2.3.2. Echipamentele de baz
n cadrul raportului de cercetare [SPDC08] a fost realizat o descriere destul de
detaliat a echipamentelor care constituie sistemul Crossbow. De altfel, ele sunt ilustrate
i n Figura 2.5. Din acest motiv, subiectul nu va fi reluat n cadrul acestui raport de
cercetare.
2.3.3. Punerea n funciune a reelei Crossbow
Pentru a pune n funciune reeaua de eKo-senzori, trebuie parcuri 4 pai importani:
1. Conectarea punii de legtur.
2. Conectarea bazei radio i pornirea ansamblului baz-punte.
3. Amplasarea i pornirea eKo-nodurilor.
4. Lansarea n execuie a interfeei eKo-View.
Ne vom referi la fiecare, pe rnd, n continuare.
Pasul 1. Conectarea punii de legtur (gateway)
n Figura 2.6 este ilustrat puntea de legtur, mpreun cu setul de componente
auxiliare aferent.
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Semnal 1
Semnal 2
Semnal 3
Semnal 3
2s
Rou/Verde
Scanare
Port 1
2s
Rou/Verde
Scanare
Port 2
2s
Rou/Verde
Scanare
Port 3
2s
Rou/Verde
Scanare
Port 4
Semnal
intermitent
1s
Alb
ncercare de
comunicare
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
1s
Semnal constant
20 s
Verde: dou conexiuni stabile
Culoare
Albastru
Activitate
Scanarea reelei
Semnal constant
Durat
Culoare
10 sec
Rou
Dac butonul pornitoprit va fi eliberat,
nodul se va nchide
Activitate
Semnal
intermitent
1 sec
Rou
Se pregtete
resetarea
nodului
Semnal constant
20 sec
Alb
Nodul va fi resetat la
eliberarea butonului
pornit-oprit
Dup culorile senzorilor i ale legturilor dintre ei, se poate efectua o prim
evaluare a strii reelei. Culoarea nodului indic vecinii poteniali ai unui eKo-nod
i calitatea conexiunilor cu acetia. Astfel, dac un eKo-nod este de culoare
albastr el are cel puin doi vecini cu care poate stabili o conexiune stabil. Dac
este de culoare portocalie, el poate stabili o conexiune stabil doar cu un singur
vecin. n cazul n care un nod este de coloare roie nseamn c nu are nici o
conexiune stabil; n acest caz, buna funcionare a senzorilor ataai nu poate fi
asigurat, iar datele achiziionate vor avea o perioad de eantionare foarte mare.
Ce nseamn ca un nod s aib o conexiune stabil? Exist 3 stri ale
conexiunilor dintre noduri, indicate prin culori corespunztoare:
verde conexiunea funcioneaz la o capacitate de peste 90%, att la intrare,
ct i la ieire;
portocaliu uan dintre conexiunile de intrare sau de ieire funcioneaz la o
capacitate n ntre 40% i 90%;
rou una dintre conexiunile de intrare sau de ieire funcioneaza la o
capacitate sub 40%.
Conexiunile stabile au culoarea verde, conexiunile la limita de stabilitate au
culoarea portocalie, iar cele instabile au culoarea roie. De exemplu, n
Figura 2.14, pentru reeaua stelat, eKo-nodul 0 (care, este de fapt baza radio) are
o conexiune instabil cu eKo-nodul 3, una la limita de stabilitate cu eKo-nodul 4 i
conexiuni stabile cu eKo-nodurile 1 i 2.
O alt configuraie a reelei este ilustrat n Figura 2.15. De aceast dat,
topologia reelei este de tip plas. EKo-nodul 1 este folosit de ctre eKo-nodurile
2, 3 i 4 ca repetor, deoarece legtura lui cu baza radio este stabil.
Figura 2.15. Vizualizarea unei reele de eKo-senzori n activitate (configuraie de tip plas).
De asemenea, se poate observa de ce nodul 4 este de culoare portocalie: el are o
singur legtur stabil cu nodul 2 i una instabil cu nodul 0 (baza radio). Chiar
dac reeaua nu funcioneaz la capacitate maxim, fluxul de date transmis pe
rute alternative i asigur o stabilitate de peste 90%.
22
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Figura 2.22. Afiarea strii de sntate a unitii centrale din puntea de legtur.
n fine, prin selectarea butonului Live Data, ca n Figura 2.23, date despre eKosenzori sunt afiate n timp real, sub forma unui tabel, care include (pentru fiecare
dintre ei): un numr unic de identificare, denumirea fiecrui pachet de date emis,
informaii tehnice privind conexiunile i valorile instantanee ale valorilor
eantionate (temperatur i umiditate, n exemplul din figur).
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
a. Folosind opiunea Export Data din meniul Chart. Datele pot fi astfel achiziionate pe
intervale determinate de timp (definite de utilizator). n plus, se pot selecta mrimile
monitorizate, la ce eKo-noduri i cu ce tip de eKo-senzori se realizeaz msurtorile.
b. Folosind un fiier tampon (de tip backup), care conine ntregul bloc de date stocate.
Acesta este salvat i reactualizat permanent la nivelul punii de legtur cu absolut
toate datele achiziionate de la senzori (fr selecie, ca n cazul precedent).
n continuare, vor fi detaliate cele dou posibiliti.
2.4.1. Preluare prin exportare
Folosind interfaa eKo-View ca n imaginile din Figura 2.26, datele se pot exporta ntr-un
fiier de tip .csv, care poate fi ulterior citit cu ajutorul programului Microsoft Office Excel.
Figura 2.26. Exportul datelor sub forma unui fiier de tip .csv.
28
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Datele rezultate din export se prezint sub forma unui tabel asemntor celor construite
cu ajutorul platformti Mocrosoft Office, ca n Figura 2.27:
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Figura 2.33. Conversia bazei de date de tip SQLite ntr-o baz de date de tip Access.
Mediul de programare MATLAB are posibilitatea de a opera cu baze de date de tip
(Microsoft) Access prin intermediul interfeei Visual Query Builder. Aceasta poate fi
deschis prin comanda: querybuilder. Dialogul cu utilizatorul se desfoar ca n
Figura 2.34.
Figura 2.34. Interfaa MATLAB Visual Query Builder pentru interogarea bazelor de date.
Interfaa permite interogarea n manier SQL a bazei de date. Volumul de date
nregistrate n cadrul acesteia poate fi foarte mare, ceea ce constiuie un prim dezavantaj al
acestui mod de preluare. Pentru a ilustra ordinul de mrime, s revenim la exemplul din
paragraful precedent. Dac se extrag datele de temperatur i umiditate de la un singur
eKo-nod, se poate obine o matrice de 445.400, adic 13.710.800 de date. Un al doilea
dezavantaj major l constituie faptul c datele sunt eantionate neuniform, cu perioade
destul de mici (de ordinul minutelor). Aceasta implic proiectarea unor algoritmi de
uniformizare a datelor care apeleaz la tehnici de interpolare sau de mediere n frecven
(de exemplu, ca n [StCu08]).
33
2y 2y
SNR = 2 = 2 ;
e 1
def
(3.1)
Ky =
1
K
(
K
k =1
y N y + k y
, cu y
def
K
1 K
y N y + k ;
K k =1
(3.2)
Ky =
1
K
(
K
k =1
y N y + k y
, cu y
def
K
1 K
y N y + k .
K k =1
Astfel, definiiile (4.72) i (4.76) pot fi nlocuite cu definiiile de mai jos, respectiv:
34
(3.3)
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
def
100
PQ =
1+
k =1
[%] ;
y N y + k y N y + k
Ky Ky SNR
def
100
EQ =
1+
(3.4)
k =1
[%] .
(3.5)
y N y + k y N y + k
Ky Ky SNR
SNR
( )
=
( )
def
K
y
2
K
y y
(3.6)
unde:
def
Ky y =
1 K
y N y + k y N y + k
K k =1
k =1
1+
e SNR SNR K
(3.7)
(3.8)
EQ =
1+
100
1
[%] .
(3.9)
SNR SNR K
Definiiile (3.8) i (3.9) au condus la cele mai bune rezultate de predicie n numeroasele
experimente de simulare desfurate. Din acest motiv, n continuare, ele vor nlocui
vechile definiii din raportul de cercetare [SPDC08].
3.2. Optimizare prin aglomerare de particule
Adoptarea unei strategii de programare evoluioniste a fost necesar, deoarece
modelele de identificare utilizate au un numr variabil de parametri, fapt care face
imposibil gsirea predictorului optimal printr-o cutare exhaustiv.
Vom dezvolta n continuare o metod de selecie a indicilor structurali bazat pe
algoritmul de optimizare prin algomerare de particule (Particle Swarm Optimisation PSO)
[KeEb95]. Spaiul de cutare, notat cu S , este un hiper-paralelipiped din laticea multidimensional N ni , unde ni este numrul de indici structurali ai modelului de identificarepredicie. n acest spaiu, se definete un vector de poziie asociat unei particule: x S .
Subliniem c vectorul trebuie s aib numai componente cu valori ntregi, nu fracionare.
De aceea, eventualele valori fracionare rezultate din calcul trebuie aproximate la cel mai
apropiat ntreg.
35
P0 = {x 0p }p1, P S ,
def
(3.10)
unde P N este numrul de membri ai populaiei, iar indicele 0 (zero) arat c evoluia
acesteia se gsete n stadiul iniial (adic la generaia 0 ). De regul, generaia iniial a
populaiei caut s acopere n mod uniform spaiul de cutare. Dac exist indicii
preliminare legate de o anumit zon din spaiul de cutare n care se presupune c s-ar
gsi punctul de optim, atunci generaia iniial ar putea popula mai dens acea zon. Chiar
dac indiciile sunt false, dup cteva generaii, populaia poate migra ctre zona unde se
gsete punctul de optim, dar cutarea va fi mai ndelungat. Uzual, P 20,200 , n funcie
de dimensiunea spaiului de cutare.
Populaia iniial trebuie s evolueze n manier incremental. Aceasta nseamn c,
de la generaia avnd indicele de evoluie m N , se va produce o generaie ulterioar, de
indice m + 1 (incrementat cu o unitate). Astfel, generaiei P0 i succede generaia P1 , care,
la rndul ei este printele generaiei P2 , etc. Succesiunea generaiilor se realizeaz dup
un program prestabilit, aa cum se va vedea n continuare. Obiectivul acestei evoluii este
acela de a fora particulele s se grupeze din ce n ce mai mult n jurul unui punct de optim
al funciei de potrivire, aa cum sugereaz Figura 3.1.
Figura 3.1. Evoluia unei populaii ctre punctul de optim n cadrul Algoritmului PSO.
Pentru a atinge obiectivul dorit, este necesar s se asigure un bun compromis ntre
dou proprieti opuse ale populaiei: diversitate (care permite evitarea stagnrii n puncte
locale de optim ale funciei de potrivire) i vitez de convergen (care depinde de viteza
de grupare a populaiei n jurul unui optim). Raportul dintre aceste proprieti va fi relevat
n finalul descrierii Algoritmului PSO.
Cum se realizeaz evoluia populaiei de particule de la o generaie la alta? Operaia
principal o constituie reactualizarea poziiilor particulelor din generaia curent (s
spunem Pm ) prin intervenia unui termen corector aditiv:
x mp +1 = x mp + x mp +1 , p 1, P .
(3.11)
x mp +1 = v mp +1 T + 0.5 Z ny +1 , p 1, P ,
36
(3.12)
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
unde v mp +1 R ny +1 este viteza reactualizat a particulei (care nu are neaprat valori ntregi),
iar T > 0 este durata de timp necesar populaiei din generaia curent pentru a produce
generaia urmtoare. De regul, pentru simplitate, T este ales de valoare unitar (adic
joac rol de unitate de msur a timpului). n definiia (3.12), se remarc utilizarea
operaiei de rotunjire la cel mai apropiat ntreg (care nu este precizat n algoritmul PSO
general). Aa cum s-a menionat, ns, spaiul de cutare este o submulime a unei latici
de ntregi, astfel c operaia de rotunjire este obligatorie n contextul predictorului MIMOARMAX. Mai mult, valorile poziiilor (3.11) trebuie i limitate la frontierele mulimii S ,
pentru a nu depi spaiul de cutare.
Vitezele de deplasare ale particulelor se reactualizeaz, la rndul lor, prin trei tipuri de
corecii: una multiplicativ numit factor de mobilitate (care ine cont de ineria particulei),
una aditiv numit cognitiv (determinat de istoria evoluiei particulei) i alta, tot aditiv,
dar numit social (n care intervine evoluia ntregii populaii din care face particula).
Matematic, relaia de reactualizare a vitezelor este urmtoarea:
m +1
p
= v +
m
p
m
p
m
p ,c
x mp ,0 x mp
mp ,+c1
+
m
s
x mP ,0 x mp
ms +1
, p 1, P ,
(3.13)
unde:
mp [0,1] este factorul de mobilitate al particulei;
x mp,0 S este cea mai bun poziie atins de particul n cursul evoluiei, pn la
momentul curent;
x mP ,0 S este cea mai bun poziie atins de ntreaga populaie n cursul evoluiei,
pn la momentul curent;
mp,c [0,2] este variana normalizat n intervalul [0,2] a tuturor poziiilor atinse de
particul n cursul evoluiei sale, n raport cu cea mai bun poziie a sa pn la
momentul curent, x mp,0 ; ea se mai numete i varian cognitiv;
ms [0,2] este variana normalizat n intervalul [0,2] a tuturor poziiilor atinse de
populaia de particule n cursul evoluiei sale, n raport cu cea mai bun poziie atins
pn n momentul curent, x mP ,0 ; ea se mai numete i varian social;
mp,+c1 T este durata de care ar avea nevoie particula s migreze din poziia curent
n cea mai bun poziie atins de ea pn atunci, x mp,0 ;
ms+1 T este durata de care ar avea nevoie ntreaga populaie ca s migreze n cea
mai bun poziie atins pn atunci, x Pm,0 , dac ea ar fi concentrat n poziia curent a
particulei curente.
Vor fi explicitai pe rnd parametrii enumerai mai sus.
Factorul de mobilitate al unei particule depinde, de fapt, n mod opus de ineria
acesteia. Ineria de valori mari trebuie s induc valori mici ale factorului de mobilitate i
reciproc. Ineria particulei trebuie sa fie mare cnd ea se gsete n apropierea punctului
de optim i mic atunci cnd distana pn la acesta este mare. De asemenea, factorul de
mobilitate trebuie s aib modul cel mult unitar, deoarece, n realitate, relaia de
reactualizare (3.13) este o ecuaie cu diferene de ordin I. Soluia acesteia este stabil
numai dac factorul de mobilitate se gsete n intervalul [0,1] (valoarea unitar a
acestuia producnd soluii la limita de stabilitate).
Pentru a specifica relaia de reactualizare a factorului de mobilitate, trebuie mai nti
evaluat ineria particulei curente p 1, P :
37
PQ x mp PQ x mp ,1
def
=
m
p
PQ x mp ,0 PQ x mp ,1
(3.14)
unde x mp,1 S este poziia cea mai slab a particulei n cursul evoluiei pn n momentul
curent (adic acea poziie de pe traiectoria particulei care produce valoarea cea mai mic
a criteriului PQ). Este evident c ineria astfel definit nu poate lua dect valori n intervalul
[0,1] . Ea este nul atunci cnd poziia curent a particulei produce cea mai mic valoare a
criteriului PQ i unitar cnd ea produce cea mai mare valoare a acestuia. Cu alte cuvinte,
ineria particulei se mrete odat cu apropierea de optimul criteriului PQ. Menionm c
definiia (3.16) ofer posibilitatea ajustrii adaptive a mobilitii particulei, spre deosebire
de articolul original n care a fost introdus tehnica PSO, unde mobilitatea ia valori
constante. De altfel, n abordarea noastr, s-a urmrit asigurarea caracterului adaptiv al
tuturor parametrilor relaiei de reactualizare (3.13), care se preteaz la aceast manier de
variaie.
Odat ineria evaluat, factorul de mobilitate se reactualizeaz dup urmtoarea regul
simpl:
PQ x mp ,0 PQ x mp
m
m
p = 1 p =
.
(3.15)
PQ x mp ,0 PQ x mp ,1
Variana cognitiv a unei particule se poate evalua n doi pai. La primul, se estimeaz
variana absolut a poziiilor particulei, n raport cu poziia cea mai bun atins pn la
momentul curent:
1 m i
x p x mp,0
m + 1 i =0
def
mp ,c =
(3.16)
(n definiia (3.16), a fost utilizat norma Euclidian.) Al doilea pas const n normalizarea
varianei absolute n intervalul [0,2]:
m
p ,c
def
=2
mp ,c mp ,c ,min
mp ,c ,max mp ,c ,min
(3.17)
unde mp,c ,min i mp,c ,max sunt valorile minim, respectiv maxim ale varianei cognitive
absolute de la momentul iniial de evoluie, pn la cel curent, considernd inclusiv mp,c .
Dac se adopt definiia (3.17), aceasta prezint un mare dezavantaj practic: ea
necesit importante resurse de memorie pentru a putea fi implementat pe un mijloc
automat de calcul. Mai precis, aceast implementare solicit memorarea tuturor
generaiilor de la iniializare pn la momentul curent.
Din acest motiv, se propune definiia alternativ de mai jos, care permite implementarea
cu ajutorul unei relaii recursive:
def
mp ,c = mp x mp ,0
1 m i 2
x p =
m + 1 i =0
1 m
x mp ,0
m + 1 i =0
xip
),
x mp ,0
1 m i
xp
m + 1 i =0
=
(3.18)
unde mp este semnul diferenei din paranteza care i urmeaz. De aceast dat, variana
cognitiv este exprimat ca o medie a distanelor dintre norma poziiei celei mai bune
obinute de particul n cursul evoluiei sale pn n prezent ( x mp,0 ) i normele tuturor
poziiilor de pe traseu (tot pn n prezent). Evidenierea semnului este util n calculele
38
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
care urmeaz, unde este vizat o relaie recursiv de determinare a varianei. Mai nti, se
poate observa c:
m 1
x
i =0
i 2
p
2
2
= m x mp ,01 mp 1 ( mp ,c1 ) .
(3.19)
1 m i 2 m m 2
1 m1 i
=
x
x
xp
p p p,0 m + 1
m + 1 i =0
i =0
2
2
2
2
1
m x mp ,01 mp 1 ( mp ,c1 ) + x mp =
m + 1
= mp x mp ,0
m m1 m1 2
= mp
p ( p ,c ) + x mp ,0
m +1
2
+ x mp =
(3.20)
2
2
m
1
x mp ,01
x mp ,
m +1
m +1
unde mp nu poate fi altceva dect semnul expresiei din paranteza dreapt care i urmeaz.
Evident, expresia (3.20) este acum implementabil cu o ocupare rezonabil a memoriei
(se rein doar caracteristicile generaiei precedente).
n manier similar, se determin variana social a populaiei. Mai nti se calculeaz
valoarea absolut a acestei variane, innd cont de poziiile curente ale tuturor particulelor
populaiei, fa de poziia cea mai bun atins de o particul a populaiei, pn la
momentul curent:
1 P m
x p x mP ,0
P p =1
def
ms =
(3.21)
ms ms ,min
=2 m
,
s ,max ms ,min
m
s
def
(3.22)
unde ms,min i ms,max sunt valorile minim, respectiv maxim ale varianei sociale absolute
de la momentul iniial de evoluie, pn la cel curent, considernd inclusiv ms .
Duratele de migrare ale particulei, respectiv populaiei nu pot fi cunoscute, de aceea ele
vor fi alese de o manier pseudo-aleatoare. Tot ce se poate cunoate este faptul c ele nu
pot fi inferioare duratei de schimb a unei generaii cu alta ( T ), deoarece migrarea n
poziiile cele mai bune (ale particulei sau populaiei) nu se poate produce dect cel mai
devreme dup schimbarea unei generaii cu alta. Dac la momentul curent se ating chiar
poziiile cele mai bune, atunci termenii corectori corespunztori sunt nuli i duratele de
migrare i pierd nsemntatea. Aadar, mp,+c1 i ms+1 trebuie generate pseudo-aleator n
intervalul [ T , + ) . Cum gama de variaie este infinit, se vor genera pseudo-aleator
1
inversele acestor durate (numite frecvene de tranziie) n intervalul 0,
.
T
Algoritmul PSO bazat pe relaiile (3.11)-(3.13) difer destul de mult de cel original
propus n [KeEb95] sau de alte variante propuse de-a lungul timpului, n cei aproape 15
ani de la apariie. n algoritmul original sunt utilizate alte notaii pentru parametrii ecuaiei
(3.13). Mai mult, acetia nu au semnificaiile pe care le-am atribuit noi mai sus. Astfel, mp+1
(notat prin w ) este considerat un factor de inerie (dar variaia lui contrazice definiia
comun a ineriei, care se opune schimbrii parametrilor micrii), mp,c i ms (notate prin
c1 , respectiv c2 ) sunt dou constante alese n intervalul [0,2] pentru a stabili ponderea
39
fiecrei componente aditive (cognitiv i social), iar n loc de mp,+c1 i ms+1 se opereaz cu
inversele r1 , respectiv r2 , care sunt numere pseudo-aleatoare n intervalul [0,1] .
Dup cum sugereaz relaiile algoritmului, este clar c, pe lng populaia de particule
care evolueaz, trebuie reinute i o serie de rezultate auxiliare: valori maxime/minime ale
criteriului PQ i poziii care produc aceste valori. Este aadar util s se menin n
memorie i s se reactualizeze nu doar populaia curent, ci i alte dou populaii:
o elit Em = {x mp ,0 }
def
p1, P
bune valori ale criteriului PQ; evident, cea mai bun poziie atins de populaia de
particule se va regsi n Em ; cu alte cuvinte, x mP ,0 Em ; n subsidiar, vor fi memorate
i reactualizate inclusiv aceste valori (sub-)optimale;
o anti-elit A m = {x mp ,1}
def
p1, P
mai slabe valori ale criteriului PQ; n subsidiar, vor fi memorate i reactualizate
inclusiv aceste valori anti-optimale.
Elita joac un rol important n oprirea mecanismului de cutare al algoritmului. Exist
mai multe teste de stop care pot fi imaginate. Tradiional, se impune atingerea unui numr
maxim de generaii M N , fr a ine cont de alte considerente. (n mod uzual
M 10,100 .) Exist ns i teste de stop mai puin rudimentare. De exemplu, se poate
evalua dispersia elitei n jurul poziiei optimale x mP ,0 Em , aa cum sugereaz Figura 3.1.
Dac ea devine suficient de mic sau dac descreterea ei relativ devine nesemnificativ
(scade sub un prag impus), atunci poziia optimal a elitei este cea cutat. Un alt
exemplu face referire la conceptul de supravieuire a unei particule n cadrul elitei. Dac
particula care produce poziia optimal din cadrul elitei reuete s supravieuiasc unui
anumit numr de generaii (adic nu este nlocuit cu alt particul mai bun), atunci
algoritmul se poate opri la acea particul. Probabil c nici unul dintre testele de stop nu
este perfect, avnd n vedere c nu s-a demonstrat riguros convergena algoritmului ctre
punctul de optim global. (Ca i n cazul Algoritmilor Genetici, sunt formulate doar conjecturi
de convergen, care par a funciona n majoritatea aplicaiilor.) Din acest motiv, se poate
opta pentru un test de stop combinat, de exemplu, de forma:
Algoritmul PSO se oprete dac: n evoluia populaiei s-au nregistrat M
generaii SAU particula optimal din elit a supravieuit peste un anumit
numr de generaii (de exemplu 5-10) SAU dispersia relativ a elitei are o
descretere sub un prag dat (de exemplu de 3-5%) SAU un procent mare din
populaia curent face parte i din elit (de exemplu, peste 85%), dup
schimbarea unui numr suficient de mare de generaii, etc. (se mai pot aduga
i alte condiii de tip SAU).
Performanele algoritmului PSO depind n mare msur de compromisul dintre
diversitatea populaiei i viteza de convergen. Aceste dou caracteristici ar putea fi chiar
cuantificate, cu ajutorul celor dou populaii Pm (dinamic) i Em (elitist). Astfel, variana
populaiei dinamice Pm n jurul valorii optimale a acesteia poate constitui o msur a
diversitii. Cu ct variana este mai mare, cu att diversitatea este mai mare i ansa de a
depista optimul global este mai mare. n schimb, inversa varianei populaiei elitiste Em ar
putea msura viteza de convergen a algoritmului. Cu ct aceasta are valoare mai mare,
cu att particulele elitiste sunt mai grupate n jurul celei optimale i ansa de a opri rapid
cutarea ntr-un optim local este mai mare. Cele dou variane se pot evalua astfel:
40
1 P m
x p x mP ,0
P p =1
def
Pm =
def
, respectiv Em =
1 P m
x p ,0 x Em,0
P p =1
(3.23)
unde x Pm,0 este cea mai bun poziie a particulelor dinamice curente, iar x Em,0 este cea mai
bun poziie a particulelor elitiste curente. Ambele poziii sunt egale, deoarece, din relaiile
(3.13) i (3.15), rezult c viteza particulei care ocup aceast poziie este nul.
innd cont de valorile cuantificate empiric cu ajutorul varianelor (3.23) ale diversitii
populaiei i vitezei de convergen, se poate interveni n cazul n care situaia devine
dezechilibrat. O diversitate prea mare produce oscilaii ale algoritmului, n timp ce o
vitez de convergen prea mare poate bloca algoritmul ntr-un optim local. n aceste
condiii, se poate monitoriza produsul celor dou variane, mP Em . Acesta ar trebui s
varieze n jurul unei constante, dup cteva generaii de la iniializare. Dac se
nregistreaz creteri rapide ale sale, atunci probabil c diversitatea este prea mare i
algoritmul tinde s devin oscilant. Dac, din contr, se nregistreaz scderi rapide,
probabil c algoritmul tinde s fie capturat ntr-un optim local.
Pentru a remedia tendinele excentrice ale algoritmului, se poate apela la mai multe
operaii. Una dintre ele este inspirat de Algoritmii Genetici: ncruciarea particulelor. Dac
x1 i x 2 sunt dou particule numite generic prini, iar vitezele lor instantanee sunt v1 ,
respectiv v 2 , atunci ele pot produce doi urmai prin ncruciare. Pentru a realiza
ncruciarea, se genereaz n prealabil un numr aleator (0,1) , care stabilete
ponderile prinilor. Apoi, urmaii sunt produi astfel:
def
def
(3.24)
def
v 1 = v1 + (1 ) v 2 , respectiv v 2 = v 2 + (1 ) v1 .
(3.25)
).
x = [ p na nc n ] ;
T
b. altfel:
def
x = [ na nc n ] .
T
42
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
{na0 , nc0 , n0 } .
y T,S,(AR)(MA) N y + k | N y = yT N y + k + yS N y + k + y ( AR )( MA ) N y + k | N y , k 1, K
i se evalueaz dispersiile erorii de predicie {2k }
k =1, K
Date de ieire:
k =1, K
43
k1, K
Evident, fa de Algoritmul 4.3 din [SPDC08], Algoritmul 3.1 este mai complex. Practic,
pasul 6.6 al Algoritmului 3.1 include nucleul Algoritmului 4.3, constituit din pasul 2 (cu mici
modificri evidente de adaptare la procedura PSO). Principalul avantaj al algoritmului din
acest context l constituie faptul c poate rula eficient pe maina de calcul paralel i chiar
n mini-reeaua de calculatoare asociat.
Exist dou nivele de paralelism. n primul rnd, graie faptului c evaluarea criteriului
PQ pentru populaia curent se poate efectua n paralel, pentru mai multe particule
deodat, maina paralel de calcul avanseaz foarte repede ctre un punct de optim.
Mediul de programare MATLAB pentru maini paralele de calcul (achiziionat n cadrul
etapei precedente) are faciliti de calcul paralel care nu necesit o cunoatere efectiv a
acestui tip de programare. Totul se reduce la o utilizare eficient a celor 16
(micro)procesoare paralele cu care este dotat maina (a se vedea descrierea
caracteristicilor tehnice ale acesteia n [SPDC08]). Aceasta se realizeaz automat de ctre
mediul de programare printr-o alocare eficient a sarcinilor de calcul ctre toate
procesoarele. n al doilea rnd, spaiul de cutare poate fi partiionat ntr-un numr de
subspaii egal cu numrul de calculatoare al mini-reelei (nu neaprat de volume egale). n
fiecare subspaiu poate fi iniiat cte un program PARMA-PSO. Particula optimal va fi
detectat n cel puin unul (dac nu mai multe) calculatoare ale mini-reelei.
n continuare, vom oferi scurte explicaii relativ la paii importani ai Algoritmul 3.1.
Avnd n vedere conformaia particulei generice definite n pasul 2, populaia curent,
elita i anti-elita, fiecare de dimensiune P , sunt reprezentate ca matrici cu 4 sau 3 linii i
P coloane, ca n Figura 3.2.
Tendin
Model ARMA
Model AR
aproximant
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
(3.26)
A ( z 1 ) = z M + aM ,1 z1 M + " + aM , M = z M A( z +1 ) ,
(3.27)
def
mai sus este inhibat. (De altfel, el conduce la creterea duratei de rulare, fr a mbunti
n mod obligatoriu calitatea prediciei.)
Revenind la Algoritmul 3.1, pasul 4 abordeaz problema iniializrii procedurii PSO.
Forma particulei arat c spaiul de cutare este un (hiper)paralelipiped de forma:
def
(3.28)
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
A j ( q 1 ) y j C j ( q 1 ) e j , j 1, ny ,
(3.29)
1
= 1 + a j ,1 q 1 + " + a j ,na j q j
A
q
j
,
def
nc j
1
1
C j q = 1 + c j ,1 q + " + c j ,nc j q
( )
( )
(3.30)
este maxim. Pentru uurin, cele dou game de variaie pot fi aceleai, indiferent de
canalul
de
msur.
def
Astfel,
prin
convenie,
def
na min
= na min
= Na ,
j
j
def
nc min
= nc min
= Nc ,
j
j
def
na max
= na max
= NA i nc max
= nc max
= NC , j 1, ny . n vederea evalurii criteriului PQ, este
j
j
j
j
j1,ny
(3.31)
y G0 ( q 1 ) e ,
(3.32)
unde e R ny este vectorul zgomotelor albe Gaussiene de medie nul care provoac
variaia datelor msurate de la senzori. De notat c MMEP ofer n plus estimaii att
pentru dispersiile necunoscute ale zgomotelor albe ( 2e, j
), ct i pentru valorile
{ }
j1,ny
efective ale zgomotelor albe ( e ), pn la momentul curent. Acestea din urm sunt, de fapt
erorile de predicie estimate, folosind modelul ARMA grosier.
Dup estimarea parametrilor polinoamelor (3.30) (efectuat separat, pe fiecare canal de
msur, cu date staionarizate (adic centrate n jurul mediei de canal)), se pot determina
valorile aproximative ale zgomotelor exogene:
( q 1 ) y + 1 C ( q 1 ) v , unde: v [ n] = e [ n] , n 1, nc , j 1, ny .
v j A
j
j
j
j
j
j
(3.33)
Acestea sunt de fapt estimaii mai precise ale unor zgomote albe, care urmeaz s fie
filtrate de ctre fiecare canal de msur n parte.
47
Zgomotele (3.33) sunt n continuare utilizate pe post de intrri n modelul mai rafinat, de
tip MIMO-ARMAX, de mai jos:
A ( q 1 ) y B ( q 1 ) v + C ( q 1 ) e ,
(3.34)
1
A
= I ny + A1 q 1 + " + A na q na
q
(
)
def
1
B
B1 q 1 + " + B nb q nb .
q
( )=
def
C ( q 1 ) = I ny + C1 q 1 + " + Cnc q nc
(3.35)
Coeficienii matriciali ai polinoamelor (3.35) sunt necunoscui (mai puin I ny , care este
matricea unitate de ordin ny ) i trebuie determinai cu ajutorul datelor msurate. La fel i
indicii structurali na , nb i nc . Cele dou funcii de sistem asociate modelului (3.34) sunt
urmtoarele:
( )
( ) ( )
( )
( ) ( )
(3.36)
Spre deosebire de modelul grosier ARMA, cel rafinat, de tip ARMAX, codific i
corelaiile existente ntre senzorii din reea. Acesta este motivul principal pentru care a fost
necesar rafinarea modelului ARMA. Este drept, ns, c efectuarea inversrii matricii
polinomiale A nu beneficiaz de o procedur comod din punct de vedere numeric. De
asemenea, identificarea tuturor parametrilor celor 3 matrici ridic numeroase probleme de
implementare. De aceea, se apeleaz la o abordare simplificat legat de MMEP.
n mediul de programare MATLAB, identificarea modelelor multi-dimensionale este
supus unui principiu simplificator, care ar putea fi adoptat i n cazul modelului (3.34).
Pentru aceasta, se poate utiliza funcia armax. S presupunem c procesul de identificat
are nu canale de intrare i ny canale de ieire, fiind descris de modelul MIMO-ARMAX
general:
A ( q 1 ) y B ( q 1 ) u + C ( q 1 ) e
(3.37)
(cu u n loc de v i aceleai matrici polinomiale (3.35)). Atunci, n loc s fie determinai
coeficienii matriciali ai polinoamelor (5.9) dintr-o dat, se determin, pe rnd, polinoamele
unidimensionale ale cte unui model ARMAX de de tip MISO (mai multe intrri i o ieire):
A j ( q 1 ) y j B j , i ( q 1 ) ui + C j ( q 1 ) e j , j 1, ny .
nu
(3.38)
i =1
Cu alte cuvinte, se identific doar modelul parial al influenei pe care o au toate canalele
de intrare asupra canalului de ieire din poziia j . Dup aceea, se pot preciza direct
elementele funciilor de sistem (3.36), sub forma:
nu
yj
i =1
B j , i ( q 1 )
A j ( q 1 )
( )
H j , i q 1
ui +
C j ( q 1 )
A j ( q 1 )
e j , j 1, ny .
( )
G j q 1
(3.39)
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
B1,1 ( q 1 )
1
A1 ( q )
1
B j ,1 ( q )
1
H (q ) =
A q 1
j( )
Bny ,1 ( q 1 )
1
A ny ( q )
B1,2 ( q 1 )
B1,nu ( q 1 )
"
A1 ( q 1 )
#
#
1
B j ,nu ( q )
"
A j ( q 1 )
#
#
Bny ,nu ( q 1 )
"
A ny ( q 1 )
A1 ( q 1 )
#
B j ,2 ( q 1 )
A j ( q 1 )
#
Bny ,2 ( q 1 )
A ny ( q 1 )
C1 ( q 1 )
1
A1 ( q )
1
C j (q )
& G ( q 1 ) = diag
. (3.40)
A j ( q 1 )
Cny ( q 1 )
1
A ny ( q )
n acest mod, este evitat inversarea matricii polinomiale A . Preul pltit l constituie
scderea preciziei modelului multi-dimensional, prin faptul c nu sunt surprinse toate
tipurile de corelaii dintre intrri, ieiri i zgomote, ci doar a corelaiilor dintre setul de intrri
i fiecare ieire n parte. n cazul seriilor de timp distribuite, se poate presupune ns c
zgomotul de msur al unei anumite ieiri nu influeneaz alt ieire, iar interferenele
dintre senzori (care ar cauza corelaii i ntre ieirile msurate) sunt neglijabile n contextul
tehnologiilor actuale de fabricaie. De notat c, alegnd ca vector de intrare chiar vectorul
zgomotelor colorate v (deci nu = ny ), este permis identificarea influenei pe care o au
perturbaiile tuturor canalelor de msur asupra unui anumit canal.
Aadar, pentru a determina modelul ARMAX asociat procesului ecologic, plecnd de la
colecia de modele ARMA independente, se va adopta principiul de mai sus, care ofer
elementele celor dou funcii de sistem (3.36) dup ecuaiile (3.39)-(3.40). Evident, pentru
o mai mare eficien, MMEP poate fi implementat n variant adaptiv. Cu alte cuvinte, la
fiecare pas de predicie, parametrii cureni ai modelelor ARMA grosier i ARMAX rafinat se
pot reactualiza n funcie de noile date msurate, n loc s fie determinai complet folosind
ntregul set de date achiziionate pn atunci. Aceast operaie este ns relativ
complicat, din cauza formei destul de laborioase a modelului de identificare.
S presupunem c indicii structurali ai modelului MIMO-ARMAX (3.34) au fost fixai i
c parametrii si au fost estimai. Pentru a efectua predicia datelor, este clar c fiecare
canal de msur poate fi tratat separat. Modelul generic de predicie este, n acest caz, de
tip MISO-ARMAX. Fie j 1, ny indicele curent al canalelor de msur. Din (3.38), rezult
c ecuaia modelului de predicie asociat canalului j este urmtoarea:
( q 1 ) y B
A
j , i ( q 1 ) vi + C j ( q 1 ) e j (cu B j , j ( q 1 ) 0 ).
j
j
nu
(3.41)
i =1
( q 1 ) y + B
( q 1 ) v + C ( q 1 ) e .
y j 1 A
j
j,i
i
j
j
j
i =1
nu
(3.42)
Ceea ce mpiedic utilizarea direct a ecuaiei (3.42) pentru a produce valorile predictate
este componenta de medie alunectoare (mai precis, zgomotul alb necunoscut e j ). De
aceea, predictorul va trebui s opereze cu estimaii ale acesteia. Pentru a le evalua, se
apeleaz la un model MISO-ARX aproximant, descris de ecuaia:
i =1
(3.43)
(3.44)
(Pentru simplitate, a fost omis indicele j din notaia lor.) Plecnd de la datele msurate ale
canalului j , dup staionarizarea acestora, se poate identifica modelul MISO-ARX (3.43).
(Mediile datelor de pe fiecare canal de msur vor fi reinute, deoarece ele trebuie
adugate valorilor predictate.) Ecuaia modelului MISO-ARX poate fi acum exprimat sub
forma de tip eroare de ieire:
e j A nj ( q 1 ) y j Bnj, i ( q 1 ) vi .
nu
(3.45)
i =1
{v }
j
j1,ny
j
ny
i =1, i j
e j [ k ] = y j [ k ] + j ,1 y j [ k 1] + " + j ,n y j [ k n]
ny
j , i ,1vi [ k 1] + " + j , i ,n vi [ k n] , j 1, ny .
i =1, i j
(3.46)
b. Pe orizontul de predicie ( k N y + 1, N y + K ):
b1. pentru k N y + 1, N y + min {K , na j } :
y j k | N y = a j ,1 y j k 1 | N y " a j ,k N y 1 y j N y + 1 | N y
a j ,k N y y j N y " a j ,na j y j k na j +
ny
j ,i
i =1, i j
(3.47)
j
ny
i =1, i j
50
(3.48)
+ j ,k N y y j N y + " + j ,n y j [ k n]
ny
j , i ,1vi [ k 1] + " + j , i ,n vi [ k n] , j 1, ny .
i
=
1,
i
(3.49)
( y [k ] y
Ny
k =1
k | N y
, j 1, ny .
(3.50)
Apoi, se evalueaz coeficienii polinomului trunchiat obinut prin mprirea infinit dintre
:
polinoamele C j i A
j
( z 1 )
def C
j
1
2
1 K
1 + j ,1 q + j ,2 q + " + j ,K 1 q =
, j 1, ny .
1
A j ( z ) K 1
(3.51)
2j ,k = 2j (1 + 2j ,1 + " + 2j ,k 1 ) = 2j ,k 1 + 2j 2j ,k 1 , k 1, K , j 1, ny .
def
(3.52)
Acum, exist toate condiiile pentru a evalua criteriul PQ (3.8), dup ce se msoar
datele pe orizontul de predicie. El trebuie ns adaptat contextului modelelor multidimensionale prin extinderea la un criteriu multi-dimensional. Mai precis, criteriul PQ
asociat canalului j 1, ny va ocupa aceeai poziie ntr-un vector:
def
PQ = PQ1 " PQ ny ,
(3.53)
unde fiecare PQ j este definit ca n (3.8). Evident, modelul optimal este cel care
maximizeaz norma vectorului (3.53).
Identificarea modelului MIMO-ARMAX presupune cunoaterea indicilor structurali
i {nc j }
. Este evident c, pentru selecia lor, trebuie utilizat
{na j } , {nb j ,i }
j1,ny
j , i1,ny , i j
j1,ny
j1,ny
i {nc j }
j1,ny
j , i1,ny , i j
j , i1,ny , i j
se poate realiza, la rndul ei, n diferite moduri. Ca mai mare durat de cutare este
cauzat de varierea independent a indicilor. n acest caz, pentru fiecare na j i nc j
( j 1, ny ) numrul de modele care trebuie testat este egal cu ( NB Nb + 1)( ny 1) , dac
2
indicii {nb j ,i }
j , i1,ny , i j
i1,ny , i j
fine, numrul de modele care trebuie testate se reduce i mai mult, la valoarea
51
j , i1,ny , i j
independent unul fa de altul), numrul de modele de test este de ordinul 10 (nc foarte
mare). O reducere semnificativ a efortului de cutare s-ar obine observnd c, de fapt,
indicii structurali ai unui canal pot fi alei independent de cei ai altui canal. Cu alte cuvinte,
cutarea indicilor structurali optimi se poate efectua n paralel, pe toate canalele odate. n
acest caz, varierea independent a acestora pe oricare dintre canale ar conduce la un
spaiu de cutare cu ( NA Na + 1)( NB Nb + 1)ny 1 ( NC Nc + 1) modele. n cazul exemplului
anterior, acest numr este de ordinul 1014 .
Este evident c o cutare exhaustiv a indicilor optimi nu se poate desfura ntr-o
perioad rezonabil de timp, chiar i n cazul unei implementri pe o main de calcul
paralel. O tehnic de cutare care ar putea reduce efortul de calcul este de tip
evoluionar. De exemplu, s-ar putea utiliza fie un Algoritm Genetic [MiM05], fie, mai simplu,
strategia PSO. Chiar dac soluia oferit este sub-optimal, n acest caz, utilizatorul poate
cel puin controla compromisul dintre durata de cutare i calitatea soluiei optimale.
Spaiul de cutare al fiecrui canal j 1, ny , notat cu S ARMAX , este un hiper-paralelipiped
50
din laticea multi-dimensional N 2 ny+1 , deoarece indicii structurali sunt n numr de 2ny + 1 .
Primii ny + 1 indici pot fi considerai principali: unul este na j , altul este nc j i restul de
ARX aproximant: n j i {n j , i }
i1,ny , i j
i1,ny , i j
x j = na j
n j
nb j ,1 " nb j , j 1
n j ,1 " n j , j 1
nb j , j +1 " nb j ,ny
nc j
T
(3.54)
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
ny
Model ARMAX
Model ARX
aproximant
P
Figura 3.3. Reprezentarea tridimensional a populaiilor de particule
n cadrul Algoritmului PARMAX-PSO.
Complexitatea acestui algoritm este superioar celei a algoritmului precedent de
predicie (PARMA-PSO). Cu toate acestea, paii strategiei PSO sunt similari, dei ei au
fost detaliai doar n acest context. Toate observaiile legate de paralelismul Algoritmului
ARMA-PSO rmn valabile i pentru Algoritmul PARMAX-PSO. Este evident ns c
durata de rulare crete. n mod normal, trebuie iniiate n paralel tot attea rulri cte canale
de msur exist, cu focalizarea prediciei pe cte un canal separat. n consecin,
strategia de simulare s-a adaptat structurii sistemului fix de calcul:
maina paralel gzduiete o versiune a programului n care predicia se focalizeaz
pe toate canalele simultan;
fiecare calculator al minireelei gzduiete o versiune a programului care focalizeaz
predicia pe un anumit canal.
Simulrile au artat ns c versiunea de predicie global nu este neaprat superioar
versiunilor cu predicie direcionat pe un anumit canal.
Implementarea de facto a Algoritmului 3.3 incumb utilizarea multor artificii informatice.
Ne vom referi numai la cteva dintre ele, cele mai importante. O prim modificare fa de
fluxul logic o constituie faptul c particula generic a populaiei (definit n (3.54)) a fost
extins cu particula generic din cazul Algoritmului PARMA-PSO. Mai precis, forma
actual a particulei de canal este urmtoarea:
def
x j = p j na ARMA
nc ARMA
n ARMA
j
j
j
na j nb j ,1 " nb j , j 1 nb j , j +1 " nb j ,ny
n j
n j ,1 " n j , j 1
nc j
(3.55)
e
n j , j +1 " n j ,ny S ARMAX
,
e
unde spaiul de cutare extins S ARMAX
este un hiper-paralelipiped din laticea multi-
dimensional N{2 ny +4,2 ny +5} . Prima component poate lipsi sau nu, n funcie de opiunea
utilizatotului privind determinarea componentei deterministe a modelului MIMO-ARMA (cu
ajutorul cruia se estimeaz intrrile modelului MIMO-ARMAX). n consecin, blocul
tridimensional al populaiei se extinde pe vertical ca n Figura 3.4.
Motivul pentru care s-a extins configuraia particulelor este unul foarte simplu: n
aceast manier este iniiat o singur procedur euristic de tip PSO pentru ntregul
ansamblu de indici structurali ai tandemului modelelor de identificare ARMA-ARMAX i nu
cte o procedur separat pentru fiecare dintre ele. Se obine astfel o important economie
de timp de rulare.
53
j1,ny
, de durat finit, N y ;
j 1, ny ,
NB = 100
dac
na = nc = 0
NC = 100
dac
nb j = na = 0 ,
j 1, ny );
numrul P de particule din populaia algoritmului PSO (implicit: P = 100 );
numrul maxim de generaii ale populaiei, M (implicit: M = 100 );
numrul minim de supravieuire pentru stoparea algoritmului PSO, S
(implicit: S = max {5, 0.05 M } );
nivelul de alarmare pentru aplicarea ncrucirii ntre particule, (0,1]
(implicit, = 0.15 );
durata tranziiei ntre generaii, T > 0 (implicit, T = 1 ).
1. Prelucrri primare:
se evalueaz mediile
yj
i deviaiile standard y j
{ }
{ }
j1,ny
j1,ny
ale datelor
distribuite;
se staionarizeaz datele: y j y j y j .
2. Se estimeaz modelul ARMA grosier ale fiecrui canal de msur, folosind criteriul
PQ pentru alegerea indicilor structurali optimali. Se obin astfel modelele:
( q 1 ) y C ( q 1 ) e , j 1, ny
A
j
j
j
j
i valorile zgomotelor albe, {e j }
j1,ny
4. Algoritmul PSO pentru determinarea indicilor structurali optimali ai modelelor MISOARMAX care constituie modelul MIMO-ARMAX. Paii care urmeaz se parcurg
(secvenial sau n paralel) pentru fiecare canal de msur j 1, ny .
4.1. Se stabilete forma generic a particulei de canal, ca n definiia (3.54).
Particula generic global este o matrice cu ny coloane.
4.2. Se stabilete m = 0 (indicele dinamic) i se formeaz generaia iniial a
populaiei dinamice, P0 = {x 0p }
. Populaia are P particule matriciale ca n
p1, P
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
m 1
P
m 1
E
( m 1) mP 2 Em2 + mP 1Em1
m
avnd n vedere c 0P 0E = 0P 0E .
4.8.2. Dac m M / 3 , se testeaz abaterea produsului mP Em fa de media
Pm1Em1 :
a. Dac mP Em > (1 + ) mP 1Em1 , atunci diversitatea este prea mare i
populaia dinamic Pm trebuie ncruciat cu populaia elit Em
(conform definiiilor (3.24) i (3.25)).
b. Dac mP Em < (1 ) mP 1Em1 , atunci riscul de blocare ntr-un optim
local este prea mare i populaia dinamic Pm trebuie ncruciat cu
populaia anti-elit A m (tot conform definiiilor (3.24) i (3.25)).
55
(adic
dac
x Em,0+1 x Em,0 ),
se
reiniializeaz
indicele
de
supravieuire: s = 0 .
4.8.5. Se reactualizeaz populaia anti-elit A m A m+1 , reinnd cele mai
slabe poziii atinse de particule n traiectoriile lor de la iniializare pn n
prezent.
4.8.6. Se incrementeaz indicele dinamic: m m + 1 .
4.9. Particula (sub-)optimal a populaiei elit ofer indicii structurali ai modelului
MISO-ARMAX.
5. Pentru indicii structurali optimali determinai la pasul anterior, se identific cele ny
modele MISO-ARMAX, care alctuiesc mpreun modelul de predicie MIMOARMAX. La acest pas, intervin toate datele msurate, pe toate canalele.
6. Se evalueaz coeficienii ctului trunchiat (3.51), pentru fiecare canal de msur.
7. Predicie multi-pas, multi-canal.
Pentru k 1, N y + K :
Pentru j 1, ny (secvenial sau n paralel):
7.1. Pe orizontul de msur, adic pentru k 1, N y , se implementeaz relaiile
recursive (3.46).
56
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
(3.47).
7.3.2. Se efectueaz o predicie pe termen lung (dac este cazul, adic
dac na < K ), pentru k N y + na j + 1, N y + K , prin implementarea
relaiei recursive (3.48).
7.3.3. Se reactualizeaz valorile predictate ale zgomotului de canal, prin
implementarea relaiei recursive (3.49).
7.3.4. Se estimeaz dispersiile erorilor de predicie (pe orizontul de
predicie) folosind relaia recursiv (3.52).
7.4. Se adaug media de canal y j (evaluat la pasul 1) tuturor valorilor
predictate.
Date de ieire:
k1, K , j1,ny
k1, K , j1,ny
ny
Tendin
Model ARMA
Model AR
aproximant
Model ARMAX
Model ARX
aproximant
P
Figura 3.4. Reprezentarea tridimensional a populaiilor extinse de particule
n cadrul Algoritmului PARMAX-PSO.
57
Iniializarea procedurii PSO este uor mai complicat dect n cazul Algoritmului
PARMA-PSO, avnd n vedere numrul mai mare de dimensiuni ale spaiului de cutare.
De aceea, s-a adoptat urmtoarea strategie:
se genereaz toate numerele reprezentate n baza P , care au (2ny + 4 + d ) cifre,
unde d {0,1} codific opiunea utilizatorului privind evaluarea componentei
deterministe;
se aleg doar P dintre acestea, aproximativ echidistante, exceptnd extremele
(eventual, dac P este prea mic n raport cu numrul de cifre, el se mrete
corespunztor); fiecare dintre numerele selectate are aadar (2ny + 4 + d ) cifre cte
una pentru fiecare dintre indicii structurali ai particulei generice de canal (definiia
(3.55)); o astfel de cifr variaz ntre 0 i P 1 ;
fie N 0 = ni0 i1,2 ny +4+ d un numr din mulimea celor selectate anterior, n care
ni0 0, P 1
0
i
def
n0
(3.56)
unde:
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
unde E este operatorul de mediere statistic. Cele dou matrici definite n (3.57) sunt
diferite nu doar ca dimensiune, ci i ca structur. Prima ( w [ n] ) este o matrice strict
pozitiv definit (nu neaprat diagonal), n timp ce a doua ( v [ n] ) este o matrice
diagonal, cu diagonala strict pozitiv. Evident, ipoteza H4 are accente restrictive. O
variant relaxat a acesteia ar fi chiar ipoteza H3, adaptat la zgomotul exogen. n acest
caz, matricea v [ n] nu mai este neaprat diagonal, dar continu s fie strict pozitiv
definit. Diagonalitatea acestei matrici asigur doar o vitez mai bun de convergen a
algoritmului de rezolvare a ecuaiei (3.57) Algoritmul Kalman-Bucy, de fapt. Renunarea
la diagonalitate, va conduce doar la o cretere a timpului necesar pentru rezolvarea
ecuaiei (3.57). Nu este afectat n mod sesizabil precizia rezultatului final, astfel nct se
poate considera, fr a face un compromis prea mare, c zgomotul exogen verific, la
rndul lui, cel puin ipoteza H3. De notat c ambele matrici (3.58) sunt necunoscute i pot fi
cel mult estimate.
Revenind la modelul (3.57), este clar c vectorul ieirilor y are un numr de
componente ny egal cu numrul senzorilor. Elementele sale sunt de fapt canale de
msur. Vectorul strilor are rolul de a codifica toate corelaiile existente ntre senzori. Nu
este obligatoriu ca numrul strilor procesului stocastic ( nx ) s fie egal cu numrul
senzorilor. Sistemul de ecuaii cu diferene (3.57) este doar de ordin I, n timp ce legile de
variaie ale parametrilor de proces monitorizai pot fi exprimate prin ecuaii difereniale de
ordine superioare (a se vedea [NDS07]). Aceasta mrete numrul de stri ale procesului
(este adevrat, unele dintre ele fiind doar virtuale), avnd n vedere binecunoscuta manier
de a obine un sistem diferenial de ordin I dintr-unul de ordin superior. n consecin, este
de ateptat ca nx ny . n schimb, exist tot attea surse de zgomot exogen cte canale de
msur au fost instalate (dimensiunea vectorului D n v este egal cu cea a vectorului y ).
Fiecare senzor cu zgomotul su exogen. Zgomotul endogen Fn w se pliaz ns pe cel al
strilor, avnd aceeai dimensiune ( nx ). n ceea ce privete intrrile, n general, ele pot fi
n numr arbitrar, necorelat cu nx i ny . n particular, n cazul seriilor de timp distribuite,
59
A ( q 1 ) y Bm ( q 1 ) um + C ( q 1 ) e ,
nu
(3.59)
m =1
nu nbm
i =1
nc
m =1 k =1
y[ n] = ai [ n 1] y[ n i ] + bm,k [ n 1]um [ n k ] +
+ c j [ n 1]e[ n j ] + e[ n], n N .
(3.60)
j =1
n (3.60) a fost pus n eviden timpul normalizat n N , care intervine att n notaia
semnalelor, ct i n cea a parametrilor. Evident, modelul (3.59) are parametri variabili n
timp (altfel problema reactualizrii modelului de stare este inutil). Parametrii sunt ns
determinai cu un pas n urma semnalelor i de aceea ei necesit reactualizare.
Ecuaia (3.60) poate fi scris compact n form matricial:
y[ n] = Ty [ n 1] y [ n 1] + Tu [ n 1]u [ n 1] + Te [ n 1]e [ n 1] , n N ,
unde:
60
(3.61)
[
n
1]
= [ y[ n 1] " y[ n na]]
y
def
[
n
1]
= u1[ n 1] " u1 [ n nb1 ] " unu [ n 1] " u1 [ n nbnu ] , n N , (3.62)
u
def
[
n
1]
= [ e[ n 1] " e[ n nc ]]
e
sunt vectori ai regresorilor (care includ date msurate i, eventual, estimate n trecut, dar
nu i n prezent), iar:
def
T
[
n
]
=
a
[
n
]
"
a
[
n
]
[
]
1
y
na
def
T
, nN ,
u [ n] = b1,1[ n] " b1,nb1 [ n ] " bnu ,1[ n] " bnu ,nbnu [ n]
def
T
e [ n] = [ c1[ n] " cnc [ n]]
(3.63)
x Ty Te Ty Te .
(3.64)
y [ n] = y [ n 1] + w y [ n]
, n N .
e [ n] = e [ n 1] + w e [ n]
(3.65)
y[ n]
=
y [ n + 1] =
y[ n na + 2]
Ty [ n] y [ n] Te [ n]e [ n] Tu [ n]u [ n] 1
y[ n]
0
+ 0 e[ n + 1] =
=
+
#
#
#
y[ n na + 2]
0
0
01na
=
U
( na 1)na
01nc
Ty [ n]
0( na 1)nc
0( na 1)na
61
Ty [ n]
Te [ n] Te [ n]
+
0( na 1)nc y [ n]
e [ n]
Tu [ n]
1
0
01nb
u [ n] + e[ n + 1], n N ,
+
#
#
0
01nb
(3.66)
unde: 0 nm este matricea nul cu n linii i m coloane, iar U ( na 1)na este format din
matricea unitate de ordin na 1 (notat prin I na1 ), bordat la dreapta cu o coloan nul
(valorile unitare aprnd, astfel, pe sub-diagnala principal). De asemenea,
def nu
nb = nbm .
(3.67)
m=1
Pentru o mai mare apropiere de ecuaile de stare, vectorul u [ n] poate fi renotat mai
simplu, prin u[ n] (de nlime nb ). n consecin, ecuaia (3.66) devine:
01na
Ty [ n] Te [ n]
01nc
y [ n + 1] =
x[ n] +
U ( na 1)na 0( na 1)nc 0( na 1)na 0( na 1)nc
Tu [ n]
1
+
u[ n] +
e[ n + 1], n N .
0
0
(
1)
1
na
(
1)
na
nb
(3.68)
e[ n + 1]
e[ n]
=
e [ n + 1] =
e[ n nc + 2]
= 0 ncna
U ( nc 1)nc
0 ncna
= 0 ncna
U ( nc 1)nc
0 ncna
Ty [ n] 1
T
0
[ n]
0 ncnc e + e[ n + 1] =
[ n] #
y
e [ n] 0
1
0 ncnc x[ n] +
e[ n + 1] , n N .
0
( nc 1)1
(3.69)
a2 [ n + 1]
y [ n + 1] =
=
ana [ n + 1]
Ty [ n]
T
[ n]
(3.70)
= [ 0 nana 0 nanc I na 0 nanc ] e + w y [ n + 1] =
[ n]
y
e [ n]
= [ 0 nana 0 nanc I na 0 nanc ] x[ n] + w y [ n + 1], n N .
62
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
c1[ n + 1]
c2 [ n + 1]
e [ n + 1] =
=
cnc [ n + 1]
= [ 0 ncna
0 ncnc
0 ncna
= [ 0 ncna
0 ncnc
0 ncna
Ty [ n]
T
[ n]
I nc ] e + w e [ n + 1] =
[ n]
y
e [ n]
I nc ] x[ n] + w e [ n + 1], n N .
(3.71)
01na
U ( na 1)na
def
A n = 0 ncna
0 nana
0
ncna
01nc
Ty [ n]
0( na 1)nc
0( na 1)na
U ( nc 1)nc
0 ncna
0 nanc
I na
0 ncnc
0 ncna
Tu [ n]
Te [ n]
0( na 1)nb
0( na 1)nc
def
0 ncnc ; Bn = 0 ncnb ;
0 nanc
0 nanb
0
I nc
ncnb
01na
01nc
1
w e [ n]
I
0
na
nanc
na1
0 nc1
0 ncna
I nc
def
(3.72)
(3.73)
Cn = 1 012( na +nc )1 ; D n = 01nv .
Preul pltit pentru compacitatea reprezentrii pe stare bazat pe incursiuni aleatoare l
constituie faptul c nu se mai poate face o distincie clar ntre zgomotele endogene i
cele exogene. Faptul c zgomotul alb exogen a fost obligat s afecteze doar starea
sistemului poate constitui un dezavantaj aparent. Cu toate acestea, forma matricii de ieire
Cn din (3.73) arat c ieirea sistemului se identific practic cu prima stare a sistemului.
Rezult c, n realitate, doar zgomotele care afecteaz parametrii polinoamelor A i C
pot fi considerate endogene.
Implementarea ecuaiilor de reactualizare (3.72) i (3.73) este banal. Cu toate acestea,
simulrile au demonstrat c este de preferat ca numrul de stri ale sistemului s nu fie
fixat de la nceput n funcie de numrul de parametri intrare-ieire, pentru a obine
rezultate mai bune de predicie.
Pentru a nchide cercul, vom descrie n continuare transformarea invers, de la
reprezentarea pe stare la cea de tip intrare-ieire, chiar dac aceasta nu este absolut
necesar n algoritmul de predicie.
Dac se pleac de la modelul cu reprezentare pe stare:
x[ k + 1] = Ax[ k ] + Bu[ k ] + Fw[ k ]
, k N ,
(3.74)
y[ k ] = Cx[ k ] + Dv[ k ]
63
Y ( z ) = C X ( z ) + D V( z )
unde C C este o coroan circular centrat n origine, care joac rol de zon de
convergen pentru funciile complexe rezultate. Introducnd prima egalitate n cea de-a
doua (pentru a elimina TZ a vectorului de stare), se obine TZ a ieirii, fr intervenia
direct strilor:
1
1
Y( z ) = C ( zI nx A ) B U ( z ) + C ( zI nx A ) F W( z ) + D V( z ) , z C ,
(3.76)
Ecuaia (3.76) pune n eviden doi termeni: unul determinat de intrarea n sistem i altul
care filtreaz zgomotele endogen i exogen.
Din primul termen, se obine funcia de transfer util a sistemului modelat:
def
Y( z )
1
H( z ) =
= C ( zI nx A ) B , z C ,
(3.77)
U( z )
care, dup inversarea matricii
( zI nx A )
H( z ) =
1
QB,C ( z ) , z C ,
A ( z )
(3.78)
unde Q B,C R nynu ( z ) este o matrice de polinoame de grad cel mult egal cu ( nx 1) , unic
determinat de matricile B i C (dar i cu intervenia indirect a lui A , prin matricile de
trecere la forma diagonal). Trecnd la operatorii de deplasare temporal, matricea util de
sistem este urmtoarea:
( q 1 )
def
q 1 Q
1
B,C
1
nx 1
1
q QB,C ( q ) =
H ( q ) = nx
,
(3.79)
1
q A ( q )
A ( q 1 )
unde simbolul ~ indic operatorul de trecere la polinomul reciproc, ca n definiia (3.27).
(Pe scurt, A este un polinom de grad n , atunci polinomul reciproc are exprimarea:
x ) = x n A x n , gradul su fiind tot egal cu n .) Aa cum era de ateptat, polinoamele de
A(
( )
A ( q 1 ) "
B1,1 ( q 1 ) " B1,nu ( q 1 )
0
#
yu
u .
%
#
#
%
#
( )
( )
A q 1
B q 1
64
(3.81)
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
A1 ( q 1 ) "
#
yu
u ,
%
#
#
%
#
" A nx ( q 1 )
Bnx ,1 ( q 1 ) " Bnx ,nu ( q 1 )
0
( )
(3.82)
( )
A q 1
B q 1
i1,nu
(gradele polinoamelor {B j ,i }
i1,nu
, care sunt
( z ) = ( zI A ) C ( zI A )1 , z C ,
C
nx
nx
(3.83)
1
( z ) F W( z ) + D V ( z ) , z C .
Ye ( z ) = ( zI nx A ) C
( zI nx A )
(3.84)
, la stnga ambilor
termeni:
def
( z )F W( z ) + ( zI A ) D V( z ) , z C .
Ye ( z ) = ( zI nx A ) C
(3.85)
nx
S presupunem c exist o precizare privind legtura dintre cele dou zgomote (endogen
i exogen) i zgomotele albe, de exemplu, de forma:
1
W( z ) = Gx ( z 1 ) E( z ) & V( z ) = G y ( z 1 ) E( z ) , z C ,
(3.86)
E( z )
(3.87)
1
1
1
= C ( zI nx A ) FGx ( z ) + DG y ( z ) , z C .
Dac informaia de filtrare (3.86) nu este disponibil, atunci se poate considera pur i
simplu c ambele perturbaii sunt constituite din zgomote albe. n acest caz:
65
G( z ) =
Ye ( z )
1
( z )F + ( zI A ) D =
= ( zI nx A ) C
nx
E( z )
(3.88)
= C ( zI nx A ) F + D , z C .
1
G( z ) =
1
QC,D,F ( z ) , z C ,
A ( z )
(3.89)
unde, de aceast dat QC,D,F R nyny ( z ) este o matrice de polinoame Laurent n care
gradul maxim n z este cel mult egal cu nx (gradul maxim n z 1 fiind nul sau orict de
mare, dar finit). Matricea este unic determinat de matricile B i C (dar i cu intervenia
indirect a lui A , prin matricile de trecere la forma diagonal). Trecnd la operatorii de
deplasare temporal, matricea util de sistem este urmtoarea:
1
def
Q
1
C,D,F ( q )
1
nx
1
G ( q ) = nx
,
(3.90)
q QC,D,F ( q ) =
A ( q 1 )
q A ( q 1 )
1
1
unde Q
C,D,F ( q ) este acum un polinom veritabil n q , al crui grad poate fi inferior, egal
sau superior lui nx . (Practic, n polinomul QC,D,F ( z ) , a fost scos ca factor comun forat
monomul z nx ; cum gradul su n z este cel mult egal cu nx , polinomul rezultat nu mai are
puteri ale lui z , ci puteri ale lui z 1 .)
Din definiia (3.90), rezult c partea perturbatoare a ieirii sistemului are exprimarea:
1
def
Q
C,D,F ( q )
1
ye G (q ) e =
e,
(3.91)
A ( q 1 )
ceea ce permite aducerea la forma MIMO-ARMA, n care matricea prii auto-regresive
este diagonal, cu diagonala ocupat de polinomul A :
A ( q 1 ) "
C1,1 ( q 1 ) " C1,ny ( q 1 )
0
#
ye
e.
%
#
#
%
#
" A ( q 1 )
Cny ,1 ( q 1 ) " C ny ,ny ( q 1 )
0
( )
(3.92)
( )
A q 1
C q 1
altele). Acestea se obin din (3.92) numai dac este posibil simplificarea acelorai poli de
pe liniile j ale matricilor A q 1 i C q 1 ca i n cazul matricilor A q 1 i B q 1 . Altfel,
( )
( )
( )
( )
ecuaia (3.92) foreaz revenirea ecuaiei (3.82) la ecuaia (3.81), pentru a conserva unicul
polinom A , care trebuie s intervin att n partea util, ct i n partea perturbatoare a
ieirii. Dac este posibil aplicarea Principiului parsimoniei, ecuaia ieirilor perturbatoare
devine:
A1 ( q 1 ) "
#
ye
e .
%
#
#
%
#
(3.93)
1
1
" A nx ( q 1 )
0
Cny ,1 ( q ) " Cny ,ny ( q )
( )
( )
A q 1
C q 1
66
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
i n acest caz se poate aplica normalizarea prin mprirea polinoamelor cu termenii lor
liberi i renotarea coeficienilor (coeficienii liberi intr practic n valorile zgomotelor). Este
clar ns c matricea C q 1 ar putea s nu mai fie diagonal, ca n cazul modelelor
( )
{nc }
j ,i
j ,i1,ny
, pot, eventual,
y
y[ k ] = Ck x[ k ] + Bk u[ k ] + D k v[ k ]
(3.94)
[ k ] = y[ k ] Ck x [ k ] B ky u[ k ] , k N ,
n care x [ k ] este o estimaie a vectorului de stare curent.
67
(3.95)
Pentru a putea utiliza EMK-A, se pot identifica uor matricea regresorilor prin Ck i
vectorul parametrilor adevrai prin x[ k ] . Rezult atunci imediat c vectorul curent
estimat poate fi notat prin x[ k ] , n timp ce vectorul reactualizat la momentul de
eantionare urmtor este x[ k + 1] . Folosind aceste definiii, matricea de auto-covarian a
erorii de estimare curente se construiete simplu astfel:
def
T
P k = E ( x [ k ] x[ k ])( x [ k ] x[ k ]) .
(3.96)
(3.97)
= P CT ( D [ k ]DT + C P CT )1
k k
k
k
k k k
v
k
Pk = Pk k Ck Pk
.
y
x [ k ] = x [ k ] + k ( y[ k ] Ck x [ k ] B k u[ k ])
(3.98)
Este clar c, n relaia recursiv a ctigului de senzitivitate (prima din (3.98)), nu apare
matricea de auto-covarian a zgomotului exogen original ( v ), ci matricea de autocovarian a zgomotului exogen amestecat ( D k v DTk ). Numai astfel procedura EMK-A
este corect.
Relaiile recursive (3.98) nu rezolv nc problema enunat, deoarece nu a fost luat n
considerare prima ecuaie a modelului (3.94). Din acest motiv, att vectorul reactualizat al
strilor ct i matricea reactualizat a auto-covarianei erorii de estimare au fost notate prin
x [ k ] , respectiv P k i nu prin x [ k + 1] , respectiv P k +1 , cum ar fi fost de ateptat. Aceste dou
reactualizri urmeaz a fi realizate cu aportul primei ecuaii a modelului (3.94). Astfel, o
estimaie a vectorului de stare la pasul urmtor se obine simplu, prin ignorarea zgomotului
intern i nlocuirea strii curente x [ k ] cu cea reactualizat x [ k ] :
68
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
x[ k + 1] = A k x [ k ] + Bxk u[ k ] .
(3.99)
Se poate arta c estimaia (3.99) este mai precis dac vectorul perturbaiilor interne
este format dintr-o colecie de zgomote albe necorelate ntre ele, dect n cazul existenei
zgomotelor colorate.
Folosind estimaia (3.99), se poate deduce relaia recursiv verificat de matricile
succesive P k i P k +1 :
def
T
P k +1 = E ( x [ k + 1] x[ k + 1])( x [ k + 1] x[ k + 1]) =
= E A k ( x [ k ] x[ k ]) Fk w[ k ] A k ( x [ k ] x[ k ]) Fk w[ k ] .
T
(3.100)
P k +1 = A k P k ATk + Fk w [ k ]FkT ,
def
(3.102)
T
innd cont de definiia: P k = E ( x [ k ] x[ k ])( x [ k ] x[ k ]) .
x [ k + 1] = A k x [ k ] + Bxk u[ k ] + A k k ( y[ k ] Ck x [ k ] Bky u[ k ]) , k N .
= Fk w [ k ]FkT + A k ( P k k Ck P k ) ATk
P k +1
(5.103)
D n v [ n] = [ n] = y[ n] Cn x [ n] B ny u[ n] , n 1, k .
(3.104)
D k v [ k ]DTk =
1 k
1
D n v [ n]v T [ n]DTn =
( kDk 1 v [ k 1]DTk 1 + Dk v [ k ]v T [ k ]DTk ) ,
k + 1 n =0
k +1
k N .(3.105)
[ n] = x [ n + 1] A n x [ n] Bxnu[ n] , n 1, k .
Fn w
(3.106)
Cu toate acestea, un fapt remarcabil pus n eviden de a doua ecuaie din (3.102), n
combinaie cu definiiile (3.103) i (3.105), este urmtorul:
69
[k ] ,
A k k D k v [ k ] = A k k ( y[ k ] Ck x [ k ] B ky u[ k ]) = x [ k + 1] A k x [ k ] Bxk u[ k ] = Fk w
k N . (3.106)
Surprinztor, estimaiile celor dou zgomote sunt corelate, astfel nct estimarea matricii de
auto-covarian a zgomotului endogen amestecat se poate realiza mai eficient:
def
1 k
[ n ]w
T [ n]FnT =
Fk w [ k ]FkT =
Fn w
k + 1 n =0
(3.107)
1
T
T
T T
T
=
( kFk 1 w [k 1]Fk 1 + A k k Dk v [k ]v [ k ]Dk k A k ) , k N .
k +1
Relaia recursiv (3.107) permite evitarea utilizrii definiiei (3.105) n procedura de calcul.
Este astfel suficient estimarea zgomotului exogen amestecat, pentru a reactualiza
matricea de auto-covarian a zgomotului endogen amestecat, ceea ce conduce la o
reducere a efortului de calcul.
n final, odat ce starea la momentul urmtor a fost predictat, se poate preciza i
ieirea la acest moment (prin ignorarea zgomotului exogen necunoscut):
(3.108)
y [ k + 1] = Ck x [ k + 1] + B ky u[ k + 1] , k N .
Algoritmul de predicie Kalman-Bucy-Markov denumit ad hoc KARMA este descris de
Algoritmul 3.4. Denumirea acestuia provine de fapt de la paii 2.2.3 i 2.3.10. Este clar c
intrrile reprezentrii pe stare nu pot fi msurate. Singura posibilitate este aceea de a le
estima cu ajutorul unui model de tip intrate-ieire din clasa ARMAX. Alegerea unui model
de complexitate ridicat ca MIMO-ARMAX, chiar vzut ca o colecie de modele MISOARMAX, a demonstrat (dup simulri repetate), c precizia de predicie nu crete
semnificativ, fa de cazul n care s-ar adopta un model de tip MIMO-ARMAX total
decuplat. Din contr, din cauza faptului c intrrile n modelul MIMO-ARMAX trebuie la
rndul lor estimate cu ajutorul unui model MIMO-ARMA (cum s-a artat n paragraful
precedent), calitatea prediciei scade. Practic, prin adoptarea unui model MIMO-ARMAX
se introduce o surs de eroare numeric n plus. n consecin, intrrile sistemului sunt
estimate (predictate) cu ajutorul unui model MIMO-ARMAX (constituit dintr-o colecie de
modele SISO-ARMA decuplate). Din acest motiv, algoritmul de predicie a fost numit
KARMA, adic predicie prin filtrare Kalman, combinat cu estimare ARMA.
Reactualizarea parametrilor modelului de stare este realizat direct, prin intermediul
proceduri de identificarea pe subspaii din [OvMo96], implementat n cadrul funciei
MATLAB n4sid. n acest mod, numrul de stri ale sistemului (care, n Algoritmul KARMA,
figureaz ca parametru de intrare, alturi de numrul de intrri i cel de ieiri) poate fi
variat. Numrul de intrri ( nu ) este ns mai mic cu o unitate fa de cel de ieiri (adic
ny 1 ), dup cum s-a artat deja.
Analiznd paii Algoritmului 3.4, se pot distinge dou etape importante.
Prima dintre ele se refer la reactualizarea modelului de predicie (cu reprezentare pe
stare). Ori de ct ori momentul curent ( k ) este un multiplu al lui K (durata orizontului de
reactualizare-predicie), modelul pe stare trebuie reactualizat. Aceast operaie nu const
doar n reactualizarea pas cu pas a matricilor parametrice, ci i a strilor. Ieirea este deja
predictat pn la momentul curent, astfel c se realizeaz doar predicia acesteia la
momentul urmtor. De asemenea, n finalul acestei etape, se rein cteva date, care vor fi
utilizate la pasul urmtor de reactualizare (adic dup K momente de timp).
n a doua etap, se efectueaz predicia (oarb a) ieirilor ntre momentele de
reactualizare (cnd momentul curent de eantionare nu este multiplu al lui K ). Inexistena
datelor msurate recent oblig algoritmul s funcioneze cu modelul pe stare cel mai
recent reactualizat, fr a-l schimba. Exist i posibilitatea de a reactualiza acest model,
considernd c valorile predictare ale ieirilor la momentul anterior de eantionare joac rol
de date nou achiziionate. Este dificil de apreciat care dintre cele dou strategii ar conduce
la valori predictate mai precise (nu exist o regul general).
70
[ n] .
j. Se corecteaz starea predictat: x [ n + 1] = A n x [ n] + Bxnu[ n] + Fn w
2.2.3. Se msoar sau se predicteaz intrarea la momentul urmtor: u[ MK + 1] .
2.2.4. Se predicteaz ieirea:
y [ k + 1] = y [ MK + 1] = C MK x [ MK + 1] + B yMK u[ MK + 1] .
T
2.2.5. Se memoreaz separat: D MK v [ MK ]DTMK , FMK w [ MK ]FMK
, P MK +1 i
x[ MK + 1] , pentru reactualizarea urmtoare.
71
MK
T
MK
+ Q k CTMK R nyny .
{ }
k 1
k 1
Pasul critic (cel mai mare consumator de timp) l constituie inversarea matricii
R k = D k v [ k ]DTk + Ck P k CTk , de dimensiune ny ny . Pentru un proces complex (cu zeci de
ieiri, cel puin) inversarea poate ocupa resursele mainii de calcul pe o perioad
important de timp. Cu toate acestea, este evident c efortul de inversare ar fi crescut
sensibil dac nu ar fi intervenit expresia ctigului.
De notat c Algoritul KARMA funcioneaz i n cazul n care perturbaiile nu verific
ipotezele statistice enunate la nceput, numai c precizia sa este mai sczut. Se poate
arta c prima ipotez (H1) asigur consistena estimaiilor. Remarcabil este faptul c
algoritmul nu returneaz numai valorile estimate/predictate ale strilor interne care
caracterizeaz un anumit proces, ci i o serie de informaii statistice referitoare att la
72
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
[ k ] = y N y + k y N y + k D N y + k v N y + k , k 1, K .
(3.109)
E {[ k ]T [ k ]} D N y + k v [ N y + k ]DTN y + k .
(3.110)
Practic, cea de-a doua matrice din (3.110) poate oferi varianele cutate, avnd n
vedere c nu este necesar determinarea acestora cu precizie. Important este ca, pentru
toate modelele, varianele s se evalueze prin acelai procedeu. Evident, matricile
Dk v [ k ]DTk sunt toate strict pozitiv definite, astfel c spectrele lor includ numai valori
proprii pozitive i nenule. Aceasta permite determinarea natural a dispersiilor erorilor de
estimare, prin evaluarea spectrelor matricilor (3.110).
Mai precis, pentru fiecare pas de predicie k 1, K , matricea D N y + k v [ N y + k ]DTN y + k
admite urmtoarea descompunere spectral:
D N y + k v [ N y + k ]D
T
N y +k
1,2 k
= VNT y + k
0
VN y + k ,
2
ny ,k
(3.111)
unde matricea diagonal central include toate valorile proprii, n timp ce matricea de
trecere VN y + k R nyny este format din vectorii proprii ortonormai corespunztori etalai pe
coloane. Diagonala ar putea returna dispersiile erorilor de predicie pentru fiecare canal de
msur. Pentru a realiza descompunerea (3.111), se poate invoca unul dintre algoritmii
numerici de descompunere spectral cunoscui [DPJ98]. n mediul de programare MATLAB,
descompunerea este realizat de ctre funcia eig. ns, mai simplu este s se extrag
direct diagonala matricii D N y + k v [ N y + k ]DTN y + k la fiecare pas de predicie k 1, K , avnd n
vedere c acolo se regsesc dispersiile zgomotelor exogene de pe fiecare canal.
n oricare dintre cele dou opiuni de mai sus, spre deosebire de modelele de predicie
auto-regresive, dispersiile { 2j ,k }
nu sunt neaprat cresctoare. Din contr, filtrul
k1, K
Kalman are tendina de a extrage ct mai mult informaie util din perturbaii, astfel c
aceste dispersii pot chiar s scad.
Pentru selecia predictorului optimal, este suficient s se maximizeze norma vectorului
PQ . Este clar c aceasta poate fi evaluat numai dac se utilizeaz doar N y K / 2 date
de pe fiecare canal de msur, ca n cazul celorlali predictori.
73
ny
Tendin
Model ARMA
Model AR
aproximant
Model de stare
P
Figura 3.5. Reprezentarea segregat a populaiilor de particule
n cadrul Algoritmului KARMA-PSO.
Blocul tridimensional corespunde modelelor SISO-ARMA, n timp ce vectorul de la baz
indic numere de stri. Cu alte cuvinte, o tietur vertical de-a lungul grosimii va produce
o matrice cu ny coloane i un scalar, adic o particul segregat.
74
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
p1
def na
1
x IO =
nc1
n1
pny
def
nany
, x = nx ,
S
ncny
n ny
(3.112)
j1,ny
, de durat finit, N y ;
Pmax = 10 );
valorile maxime ale indicilor structurali din modelele intrare-ieire ARMA
NA0 , NC0 N (implicit: NA0 = NC0 = 30 , dar NA0 = 100 dac nc = 0 , iar
{y }
j
j1,ny
i deviaiile standard
distribuite;
se staionarizeaz datele: y j y j y j .
75
{ }
yj
j1,ny
ale datelor
{ }
k 1
k 1
76
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
fr y
fr y
frUy
D [ ,...,u
[g]>
U=<u1,u
2 ]
n
0
f U f , ui ui .
(4.1)
i =1
Diferena dintre semnalele original i util este declarat semnal parazit: f f f U . Acesta
este ortogonal pe semnalul util, dovedind astfel neredundana cu acesta, proprietate care
justific termenul de deparazitare. Calitatea separrii celor dou semnale depinde sensibil
nu numai de maniera n care este ales sistemul de semnale ortonormate {ui }i1,n , prin
intermediul cruia va fi codificat mai departe informaia util, ci i de natura semnalului i
a perturbaiilor. Din acest motiv, gsirea unor metode generale de deparazitare a
semnalelor rmne o problem deschis.
Problema concret este ns aceea a stabilirii unei metode clare de construcie a
subspaiilor de tipul lui U . n general s-a artat (i acesta este probabil meritul lui Mallat i
Meyer) c spaiul H poate gzdui o structur imbricat de subspaii liniare nchise, strict
incluse unul n altul, de forma:
V0 V1 V2
H ,
Vm Vm+1
(4.2)
cu proprietatea:
Vm+1 = Vm Vm , m N .
(4.3)
Complementul ortogonal din (4.3), notat alternativ prin Wm , este evaluat n raport cu
subspaiul urmtor i nu cu ntregul spaiu H . Aceast proprietate permite
descompunerea iterativ a spaiului H dup cum urmeaz:
H = V0 W0 W1 W2 Wm
79
= V0 Wm .
mN
(4.4)
Dac dimensiunea lui H este finit, atunci numrul subspaiilor (4.3) este la rndul lui
finit, deoarece V0 nu poate avea dimensiune inferioar unitii. De exemplu, dac H este
spaiul Euclidian R 3 , atunci V1 poate fi planul orizontal principal, iar lui V0 nu-i mai rmne
dect s se identifice cu o oblic oarecare din V1 trecnd prin origine. Evident, V1 este axa
vertical a spaiului, n timp ce V0 este axa perpendicular pe V0 din planul V1 .
Maniera n care se poate realiza descompunerea (4.4) nu este unic. Una dintre cele
mai interesante (inclusiv pentru predicie) este cea legat logic de conceptele de scal i
rezoluie de reprezentare. ntr-o astfel de descompunere, proiecia unui element oarecare
f H pe subspaiul Vm , notat prin f m (pentru m N ) se numete aproximare la nivelul
de rezoluie m a lui f . Elementul f m este similar unei hri a lui f reprezentate la o
scal cresctoare n raport cu nivelul de rezoluie. Pentru a trece la nivelul urmtor de
rezoluie, se poate proiecta f direct pe subspaiul Vm+1 , obinndu-se aproximarea f m+1 .
innd cont de proprietatea (4.3), diferena dintre cele dou aproximaii succesive f m+1 (de
rezoluie mai mare) i f m (de rezoluie mai mic) este constituit de un element f m Wm
obinut prin proiecia lui f m+1 sau a lui f pe complementul ortogonal Wm . Astfel, se poate
scrie c:
(4.5)
f m+1 = Pr Vm +1 ( f ) = Pr Vm ( f ) + Pr Wm ( f ) = f m + f m , m N .
Relaia recursiv (4.5) relev mecanismul de cretere a rezoluiei de reprezentare
favorizat de ortogonalitate: pentru a sri la nivelul urmtor de rezoluie, aproximaiei
curente trebuie s i se adauge noi detalii. De aceea, elementul f m se numete detaliu la
nivelul de rezoluie m + 1 al lui f . Nivelul de rezoluie al detaliului nu este m , deoarece
complementul ortogonal Wm este un subspaiu al lui Vm+1 , disjunct cu Vm . Adugarea
detaliului necesar saltului de rezoluie poate fi privit i ca o cretere a scalei de
reprezentare a elementului original, similar cazului hrilor geografice la care s-a fcut
referire n deschiderea paragrafului.
Prin mrirea nivelului de rezoluie (sau a scalei de reprezentare), elementul original este
mai bine aproximat. Aceast proprietate rezult n urma unui raionament destul de simplu,
dup cum urmeaz. Pentru un anumit nivel de rezoluie arbitrar fixat m N , elementele f m
(aproximaia) i f m (detaliul) sunt evident ortogonale ( f m f m ). Mutual, este indus i
ortogonalitatea elementului de eroare f f m+1 pe subspaiul Vm+1 (deoarece
( f f m+1 ) Wm , ceea
( f f m+1 ) ( f m+1 f m ) . Deoarece
f m+1 = Pr Vm +1 ( f ) ). n consecin,
(f
f m+1 ) f m , adic
ce implic, n particular, c:
f f m = ( f f m+1 ) + ( f m+1 f m ) , se
= f f m+1 + f m+1 f m
2
f f m+1 , m N .
2
(4.6)
f m = f 0 + f i , m N .
i =0
80
(4.7)
y yT + yS + yV .
(4.8)
Unul dintre impedimentele obinerii unei precizii foarte nalte a valorilor predictate cu
ajutorul modelului (4.8) l constituie faptul c semnalul determinist yT + yS are o natur
staionar. (n plus, el este i afectat de un anumit grad de subiectivism din partea
utilizatrului, aa cum s-a artat n [SPDC08].) Cu alte cuvinte, spectrul acestui semnal este
considerat constant n timp, cu energia concentrat n special n jurul frecvenelor
caracteristice ale variaiei sezoniere. Aceasta face, de exemplu, ca modelul (4.8) s
sesizeze numai o periodicitate de 12 luni (sau un multiplu al acestei valori) n seria de timp
a omajului nregistrat ntr-o ar, nu i alte componente sezoniere, ale cror perioade nu
fac parte din mulimea multiplilor lui 12. Explicaia acestei limitri rezid n faptul c
spectrul componentei deterministe este constant n timp.
O abordare opus este cea n care semnalul determinist staionar este nlocuit de unul
tot determinist, dar nestaionar (cu spectru variabil n timp). Suma yT + yS , care definete
semnalul determinist de identificare, corespunde de fapt semnalului util f U din Figura 4.1,
n care semnalele de baz sunt polinoame i armonice de diferite frecvene, dar
staionare. Pentru a nlocui aceast component din modelul (4.8), va trebui schimbat
setul de semnale de baz cu unul n care elementele sunt nestaionare. De exemplu, cu
undine ortogonale. Cu alte cuvinte, modelul de predicie alternativ, nestaionar i stocastic
este urmtorul:
y yW + yV ,
(4.9)
unde yW va corespunde acum semnalului util f U din Figura 4.1. Desigur, zgomotul colorat
v continu s se identifice cu f proiecia ortogonal a semnalului original pe subspaiul
parazit (ca n cazul modelului (4.8)).
4.2. Scurt privire asupra undinelor ortogonale i structurii multi-rezoluie
Subspaiul U din abordarea nestaionar este generat prin utilizarea pachetelor de
undine [CoWi92]. Astfel, subspaiul posed o structur multi-rezoluie. n domeniul
undinelor, este bine cunoscut faptul c o structur multi-rezoluie [MaS89] poate fi
generat cu ajutorul unei perechi de undine ortogonale cu suport compact: o (aa numit)
undin tat i o (aa numit) undin mam [DaI88]. De regul, ele constituie soluiile
urmtoarelor dou ecuaii (duale) de dilatare laticeale (abreviate prin EDL, respectiv
EDL):
2 N 1
(t ) = 2 hn (2t n ) , t 0,2 N 1 ,
(4.10)
n =0
(t ) = 2
n =2 2 N
(4.11)
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Normalizare:
2 N 1
h
n =0
2 N 1
(1)
= 2,
hn = 0 ;
(4.12)
= 0 [ k ] , k Z ,
(4.13)
n =0
hh
n =0
n n 2 k
{g
= ( 1)n h1n }
n22 N ,1
unui filtru trece-sus. Cele dou filtre sunt oglindite n cuadratur (quadratic mirrored
filters QMF) [PrMa96], [VaPP93]. Daubechies a introdus n [DaI88] un algoritm de
construire a coeficienilor ecuaiei EDL, pentru diferite valori ale parametrilor suport
N N , care permit undinelor i s genereze baze ortonormale de undine cu suport
compact. Algoritmul Daubechies poate fi gsit n [StSt07] i [SSP09]. Ambii algoritmi
Daubechies-deRham i Daubechies joac roluri importante n construirea modelului de
predicie.
Asupra unui semnal f (i, prin urmare, a unei undine), se pot aplica dou tipuri de
operaii, pentru a i schimba rezoluia n timp: scalare i deplasare/decalare temporala (sau
translatare). Ele sunt definite mai jos (respectiv), pentru orice t R :
( f ) (t ) = 2 f ( 2 t ) , m Z ;
( q f ) (t ) = f ( t n ) , n Z .
m
(4.14)
(4.15)
Prin scalarea (4.14), orice semnal poate fi dilatat (pentru m > 0 ) sau contractat (pentru
m < 0 ). Un semnal dilatat este considerat o versiune aproximat grosier a semnalului
original, n termenii rezoluiei n timp. Mai mult, conform Principiului de Incertitudine GaborHeisenberg [StSt07], spectrul unui semnal dilatat/contractat este o versiune
contractat/dilatat a spectrului original. Astfel, n principiu, prin micorarea rezoluiei n
timp, crete rezoluia n frecven (i invers). Prin translatarea (4.15), variaia semnalului
original este ntrziat (pentru n > 0 ) sau anticipat (pentru n < 0 ).
Un semnal f poate aadar genera o familie de undine scalate i translatate
{f
m ,n
= q n m f }
m ,nZ
, unde:
83
(q
m f ) (t ) = 2 m f ( 2 m (t n ) ) , t R .
(4.16)
Structura multi-rezoluie a lui Mallat pentru semnale stabile de energie finit este bazat
pe familii de tip (4.16). Ea const ntr-o colecie { Wm }mZ de subspaii ortogonale generate
de toate translaiile temporale aplicate versiunilor scalate ale undinei mam. Cu alte
cuvinte, orice
Wm
m }
nZ
ortogonal de undine. Undina tat joac un rol similar. Astfel, baza ortogonal
m ,n
= q n m }
nZ
genereaz subspaiul
Vm
i:
Wm
Vm
(4.17)
m
, iar
m
f m+1 Wm+1 (cu rezoluie 2 ).
semnalele lui
n aplicaii, numai un numr finit de subspaii sunt utilizate. De regul, analiza i sinteza
se bazeaz pe urmtoarea structur multi-rezoluie:
V0 = W1 W 2 " WM VM ,
(4.18)
unde M 1 este cel mai mic nivel scalar care poate fi considerat. Proprietatea (4.18)
conduce la urmtoarea reprezentare asociat unui semnal f :
M
nZ
V0
(4.19)
m=1 nZ
astfel:
c0,n = f , 0,n
& c M ,n = f , M ,n
& d m ,n = f , m ,n .
(4.20)
O implementare eficient a ecuaiilor (4.19) (de analiz) i (4.20) (de sintez) a fost
propus de ctre Mallat in [MaS89], cu ajutorul a trei operaii cu timp discret: filtrare (sau
convoluie, ), decimare ( 2 ) i interpolare ( 2 ). Prin decimare, se elimin fiecare
eantion par din date, iar prin interpolare este inserat o valoare nul ntre oricare dou
eantioane consecutive. Dac, n general, secvena de coeficieni ai EDL se noteaz prin
g , pot fi definii operatorii liniari de mai jos:
I x x h 2 ( I x ) [ n] =
k 2 n
x[ k ] , n Z ;
(4.21)
k 2 n
x[ k ] , n Z .
(4.22)
kZ
H x ( x g ) 2 ( H x ) [ n] =
kZ
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
(4.23)
De fapt, ecuaiile (4.23) sunt utilizate n analiza semnalului. Pe de alt parte, sinteza
semnalului este exprimat, de asemenea, recursiv:
(4.24)
I x x 2 h I x [ n] =
H x x 2 g H x [ n] =
kZ
n 2 k
kZ
n 2 k
x[ k ] , n Z ;
(4.25)
x[ k ] , n Z .
(4.26)
Ecuaiile de analiz i sintez (4.23) i (4.24) constituie nucleul Algoritmului lui Mallat
(AM). Operatorii liniari i adjuncii lor verific unele proprieti remarcabile (echivalente cu
normalizarea (4.12) i condiiile Nyquist[2] (4.13)):
II HH J & IH HI P ,
(4.27)
II + HH J ,
(4.28)
ca n Figura 4.3.
H+
H!
~g
x
xG
Analiz
~
Sintez
2
xH
I+
I!
Spectru
iM+1
2
4
(1,1)
0
(0,0)
(2,1)
(1,0)
...
iM
frecven
nalt
im+1+1
.i
(m+1,1)
(2,0) .. m
im+1
(m,0)
(m+1,0) ...iM-1
frecven
joas
(M-1,0)
0 2-M.../4
/2
iM+1
(M,1)
iM
(M,0)
poprietate, rezult c orice subspaiu, care face parte n mod curent din structura multirezoluie, poate fi de asemenea rafinat.
Pentru a descrie o structur multi-rezoluie generalizat, se pornete de la un arbore
binar, unde fiecare nod (nu numai cele corespunztoare sub-benzilor de joasa frecven)
poate fi expandat. Nodurile sunt indexate ca n Figura 4.4, att dup o etichet ( m, pm ) ,
unde m 0, M
segmentri unice n frecven, ca n Figura 4.5. Tot unic asociate acestuia sunt i bancul
de tip QMF sau structura multi-rezoluie.
Se consider c nodul ( m, pm ) furnizeaz coeficienii undin corespunztori proieciei
semnalului original pe subspaiul
Sm, p
nZ
. Familia
m, pm ,0 (t ) = 2 n m1, pm / 2 ,0 (2t n ) , t R ,
(4.29)
nZ
unde h dac pm este par, sau g , altfel. Evident, ecuaia recursiv (4.29)
undine m, pm ,n
nZ
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
6
(2,3)
(2,2)
0
(0,0)
12
(3,5)
5
(3,4)
11
24
(4,9)
23
(4,8)
22
(4,7)
10
(3,3)
4
(2,1)
21
(3,2)
(4,6)
9
(1,0)
8
1
(3,1)
16
(2,0)
3
(4,1)
(3,0)
7
15
(4,0)
low
frequency
middle frequency
(1,1)
high
frequency
Spectrum
15 16
21 22 23 24
12
0 2-4
/4
/2
3/4
V0 =
S m, p ,
( m , p )M P
(4.30)
unde M P este produsul direct al mulimilor finite care includ toate nivelurile de
adncime i azimuturile frunzelor arborelui (care sunt noduri ale frontierei arborelui). n
consecin, reprezentarea asociat semnalului f este urmtoarea:
f0
unde f 0 este proiecia lui f pe
M P c
( m , p )
nZ
m , p ,n
m , p ,n ,
(4.31)
cm, p ,n = f , m, p ,n , (m, p ) M P , n Z .
(4.32)
(4.33)
(4.34)
def
Ny
87
(4.35)
Numrul coeficienilor undin (4.35) este totui finit, deoarece undina tat are suport
compact.
4.3. Alegerea pachetelor de undine optimale prin minimizarea entropiei
Odat ce cadrul structurii multi-rezoluie a fost stabilit (prin specificarea perechii de
undine i ), singura problem rmas este alegerea unei colecii adecvate de pachete
de undine. Pentru a rezolva aceast problem, trebuie utilizat o msur a informaiei.
Astfel, arborele de analiz va fi construit adaptiv, depinznd de caracteristicile principale
ale spectrului datelor. O msura introdus n [ShCE48] de Claude Shannon este entropia
semnalului. n cazul unui semnal discret determinist x , entropia este definit astfel:
| x[ n] |
| x[ n] |
log 2
,
E ( x)
nZ E ( x )
H ( x ) =
(4.36)
unde:
def
E ( x ) = | x[ n] |2 ,
(4.37)
nZ
este energia semnalului. Entropia (4.36) cuantific numrul mediu de bii necesari
codificrii unui eantion al semnalului. De asemenea, entropia exprim att redundana
semnalului ct i ordinea intrinsec. Cu ct entropia este mai mic, cu att semnalul este
mai puin redundant i mai ordonat. Redundana este o caracteristic important pentru
performanele compresiei de date. De regul, semnalele puternic redundante sunt
comprimate cu o rat mai mare dect cele slab redundante. Totui, n cazul analizei bazate
pe undine, redundana slab permite informaiei semnalului s fie concentrat ntr-un
numr mic de coeficieni, datorit ordinii intrinseci mari a mulimii lor.
Entropia poate fi evaluat pentru semnalul rezultat din concatenarea coeficienilor
undin care corespund frontierei arborelui binar curent. Se pleac de la entropia datelor
originale:
H ( c0,0 ) =
nZ
| c0,0,n |
E ( c0,0 )
log 2
| c0,0,n |
E ( c0,0 )
(4.38)
unde suma este finit. Mai departe, se calculeaz entropia semnalului concatenat
c = c1,0 c1,1 :
| c1,0,n |
|c |
|c |
|c |
log2 1,0,n 1,1,n log2 1,1,n .
E ( c ) nZ E ( c )
E (c)
nZ E ( c )
H ( c ) =
Se observ c
H ( c1,0 c1,1 )
(4.39)
H ( c1,0 ) + H ( c1,1 ) .
c1,0 c2,2 c2,3 i c2,0 c2,1 c2,2 c2,3 . Doar configuraia cu entropie minim trebuie
selectat din cele trei menionate. Pe msur ce expandarea arborelui avanseaz, din ce
n ce mai multe semnale trebuie comparate ntre ele. De fapt, numrul de posibiliti crete
exponenial. Astfel, o cutare exhaustiv a arborelui de entropie minim devine ineficient
chiar pentru un nivel mic de adncime.
88
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
nu a fost
nc expandat.
Practic, h [ n ] este o predicie a preului pltit dac nodul n ar fi expandat pe calea
0 " n . Dac prediciia nu se poate realiza, euristica estimat primete valoarea zero.
Costul total al nodului n este
H [ n] = h [ n] + h [ n]
dar necunoscut H . De aici provine simbolul stea () asociat numelui IDA. Totui,
trebuie s fie, de asemenea, cresctoare:
H [ n] = h [ n] + h [ n] H [ p ] = h [ p ] + h [ p ] ,
(4.40)
Urmtorul
nod curent
nod
curent
h[ n]
h [ n]
H [ n] = h [ n] + h[ n]
Zona explorat
Zon ne-explorat
H [ n]
[1 2]
[3 4 2]
[1 5 6]
[7 8 4 2]
[3 9 10 2]
[3 4 5 6]
[1 11 12 6]
[1 5 13 14]
Figura 4.7. Meta-arborele utilizat pentru optimizarea unui banc QMF pe ramura de analiz.
90
H [3 9 10 2] = H
([ c c ]) + H ([ c
1
c4 c2 ]) + H
([ c
c9 c10 c2 ]) ,
(4.41)
2m, p a secvenei cm, p . Atunci, toi coeficienii undin inferiori lui m, p m, p (unde nivelul
de mascare 0 este stabilit a priori) sunt considerai slabi i trebuie eliminai. (De
regul, = 3 , n cazul n care coeficienii sunt normal distribuii.) Un alt criteriu este pur
energetic. Pentru orice ( m, p ) M P , toi coeficienii cu amplitudini mai mici dect un
nivel de mascare [0,1) aplicat amplitudinii maxime a coeficienilor sunt eliminai. n
orice caz, modelul determinist al seriei de timp este:
yW (t ) =
unde
( m , p )M P nN m, p
cm, p ,n m, p ,n (t ) , t R ,
(4.42)
eliminarea coeficienilor slabi din secvena cm, p , prin utilizarea nivelului de mascare .
Pstrarea doar a coeficienilor undin puternici conduce la o compresie de date (dac ei
ar trebui transmii pe un canal de comunicaie). Compresia ar putea fi efectuat pe seama
alterrii modelului. Simulrile au artat totui c eliminarea coeficienilor slabi poate
mbunti modelul de predicie global. Acest fenomen este explicat prin faptul c modelul
bazat pe undine a coninut prea mult zgomot, codificat de ctre coeficienii slabi. Dup
cum s-a precizat, exist doar o limit fin ntre componenta util din date i perturbaiile
care le corup. Dac modelul global a fost mbuntit prin eliminarea unor coeficieni
undin, nseamn c separarea dintre cele dou componente a devenit mai precis.
91
(4.43)
Dup ce a fost selectat un predictor cu ajutorul criteriului PQ, prin varierea celorlali
parametri, nivelul de mascare poate fi incrementat, pentru a ndeprta coeficienii
undin parazii. Limita superioar a lui depinde de degradarea acceptat a lui PQ.
Totui, dup cum a fost menionat deja, prin creterea nivelului de mascare, predictorul i
poate mbunti performanele.
Se consider acum ceilali parametri enumerai mai sus.
De regul, parametrul de suport al undinei, N , variaz ntre 2 i 25. Acesta conduce la
un filtru cu un numr de 4 pn la 50 valori ale rspunsului la impuls. Depinznd de natura
seriei de timp, nu este obligatoriu ca filtrele cu memorie lung (adic avnd rspuns cauzal
la impuls de lungime mare) s fie mai performante dect cele cu memorie scurt, n
termeni de PQ. De regul, datele fractale necesit undine fractale, ceea ce conduce la
valori mici ale lui N . Dac N = 1 , se obin undinele Haar [DaI88], [StSt07]. Simulrile au
demonstrat c acele undine nu au putut conduce la valori mari ale PQ i de aceea ele au
fost eliminate. Toate undinele ortonormale cu suport compact din clasa Daubechies cu
N 25 s-au comportat aparent similar, n special datorit faptului c indexul lor de
regularitate Hlder (estimat n [DaI88] la o valoare de aproximativ 0.1936 N ) este
superior celui al seriei de timp. Cu alte cuvinte, undinele cu N 25 sunt prea netede
pentru seriile de timp prelucrate i nu pot codifica caracteristicile lor fractale. Evident,
exist i aici o demarcaie fin ntre comportamentul fractal determinist al seriei de timp i
perturbaiile stocastice. Ori, este de dorit ca modelul bazat pe undine s fie capabil s
extrag natura fractal intrinsec a seriei de timp, cu minim de zgomot posibil, pentru a
efectua o extrapolare precis. De aceea, undinele prea netede trebuie eliminate din
analiz.
Pentru un N dat, undina tat este construit cu o rezoluie finit utiliznd algoritmul
Daubechies-deRham [DaI88], [StSt07]. Conform acestui algoritm, undina poate fi evaluat
L
cu precizie mare la orice perioad de eantionare de tipul 2 , unde L N . Dac L = 0 ,
undina este evaluat la momente de timp discrete. Pentru L = 1 , rezoluia crete la
jumti de ntregi, dup aceea, pentru L = 2 , se obin valorile la sfert de ntregi, etc. n
mod normal, indicele de rezoluie L trebuie setat conform ratei de eantionare a seriei de
timp, dac este cunoscut.
Undina tat este necesar pentru a proiecta seria de timp pe subspaiul V 0 , cu ajutorul
ecuaiei (4.35). Simulrile au dovedit c doar setarea L = 0 (adic rata de eantionare
unitar) poate s nu conduc la predictori de calitate nalt. Deoarece axa timpului nu are
92
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
o unitate impus n cazul undinelor, cea mai potrivit versiune eantionat a undinei tat
poate fi gsit pentru L > 0 . De aceea, indicele L al rezoluiei trebuie s varieze, pentru a
l gsi pe cel mai bun (n sensul maximizrii lui PQ). Deoarece N 2 (adic indicele de
regularitate Hlder este cel puin 0.3872 ) caracteristicile fractale globale ale undinei sunt
obinute cnd L atinge limita superioar egal cu 6 . Peste aceast limit, noile eantioane
nu aduc nici o informaie nou privind discontinuitile microscopice la nivelul derivatelor
undinei, de aceea, trebuie evitat supra-eantionarea.
n cazul unei eantionri neuniforme, unele (sau toate) momentele de timp ale seriei de
L
timp pot fi diferite de multiplii ntregi ai lui 2 (adic de momentele de eantionare ale
undinei tat). De aceea, proiecia seriei de timp pe V 0 poate fi doar aproximat prin
regsirea celor mai apropiate eantioane ale undinei de eantioanele sale, pentru o
anumit rezoluie.
Predicia cu undine poate fi totui realizat, indiferent de tipul de eantionare. Este
suficient s se asocieze indici corespunztori datelor numerice (seria de timp i undina
tat), adic s se considere cazul de eantionare uniform, prin simpla enumerare a
datelor. Dup aceasta, se alege eantionarea uniform pentru a simplifica abordarea i a
aplica avantajos algoritmul Daubechies-deRham. n acest caz, perioada de eantionare
L
este fixat la 2 , utiliznd rezoluia undinei tat. Astfel, ecuaia (4.35) trebuie rescris ca
mai jos:
def
c0,0,n = y,
unde:
Ny
Ny
L
= y[k ] ( 2 (k n) ) = y[k ]0,0,
n [k ] , n Z ,
L
0,0, n
k =1
(4.44)
k =1
L
L
0,0,
n [ k ] = ( 2 ( k n) ) , k Z
def
(4.45)
nZ
b. Dac undina este eantionat cu L > 0 , atunci familia (4.45) este un cordaj dens
(tight frame) al lui V 0 .
Conceptul de cordaj dens a fost probabil introdus n contextul undinelor de ctre
Daubechies [DaI90] i dezvoltat mai departe de Lawton [LaWM90]. (Mai trziu, Daubechies
i colaboratorii ei a introdus de asemenea numele de cordeline (framelets) pentru
cordajele dense ale undinelor [DHRS03].) Prin definiie, o familie de vectori {vn }nZ este
un cordaj dens (tight frame) dac genereaz un spaiu Hilbert
poate fi extins astfel:
93
i orice element u H
u=
1
u, vn vn ,
A nZ
(4.46)
1
L
c0,0,n 0,0,
n .
A nZ
(4.47)
Suma din (4.47) este totui finit, deoarece att seria de timp ct i undina tat discretizat
sunt secvene de lungime finit.
Dou abordri pot conduce la estimarea valorii lui A . Deoarece A nu depinde de seria
de timp, ar trebui adoptat un raionament riguros, bazat pe proprietile undinei tat. Dar
aceast abordare este mai mult teoretic i greoaie, astfel c nu este tratat n acest
context. O abordare mai rapid de estimare a lui A se bazeaz pe Metoda celor mai mici
ptrate (MCMMP), care este mai practic. Conform MCMMP, trebuie minimizat parabola:
2
1
1 def
L
V = y[ n] c0,0, p 0,0,
n
[
]
.
p
A pZ
A nZ
(4.48)
Dup cteva calcule algebrice, unica rdcin a primei derivate a parabolei (ca funcie de
1/ A i nu de A ) poate fi exprimat astfel:
1
=
A
c
nZ pZ
L
0,0, p 0,0, p
[ n] y[ n]
c
[
n
]
0,0, p 0,0, p
nZ pZ
(4.49)
Dei constanta cordajului pare s depind de seria de timp analizat, simulrile pe cteva
serii de timp de provenien diferit au artat c variaia este nesemnificativ, fiind cauzat
n special de erorile numerice. De altfel, utilizarea MCMMP nu poate conduce dect la o
estimaie a constantei cordajului, care motenete o parte din zgomotul seriei de timp.
Aceasta este proprietatea care creaz dependena dintre estimaie i datele msurate.
Se observ c ecuaia (4.49) poate fi utilizat chiar i n cazul n care undina tat este
eantionat la momente ntregi, pentru a crete precizia modelului.
Revenind la problema abordat n cadrul acestui paragraf, construcia predictorului
optimal se poate realiza printr-o cutare exhaustiv n mulimea definit de plajele de
variaie ale parametrilor principali. De notat c predictorul se adapteaz la datele
msurate, deoarece bancul de QMF din implementarea transformrii undin este
determinat prin minimizarea entropiei din frunzele acestuia. Intervenia Algoritmului IDA*
reduce sensibil durata de cutare, fapt care permite evaluarea lui PQ pentru toi predictorii.
94
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
tn = nTs , n 1, N y i/sau Ts = 1 );
) lungimea orizontului de predicie, K (cu K << N y ); de regul, K 7 ;
{ }
) momentele de predicie t N y + k
(implicit, t N y + k = N y + k Ts , k 1, K );
k1, K
) parametri de configurare:
N max = 25 );
NA = NC = 25 );
expresia gradului n corespunztor mpririi infinte ntre polinoamele AR
k1,K
{ }
{c }
V0 ,
{ y[ n]}n1,N
y PARMA N y + k
k1,K
pe
discretizate
L
0,0, n nZ ,
0,0,n nZ ,
nZ
i ieirea
> 0,
se
elimin
( m , p )M P
coeficienii
undin
parazii
(slabi)
{N }
m , p ( m , p )M P
yW [k ] =
( m , p )M P nN m, p
cm , p ,n mL , p ,n [k ] , k 1, N y + K ,
vK [ n] = y[ n] yW [ n] , n 1, N y K .
4.2.8. Pentru na 0, NA i nc 0, NC :
a. Dac na = 0 i nc > 0 , se estimeaz modelul MA al zgomotului
colorat vK , prin Metoda Wiener-Hopf.
b. Dac na > 0 i nc = 0 , se estimeaz modelul AR al zgomotului
colorat vK , prin MCMMP sau Algoritmul Levinson-Durbin.
c. Dac na > 0 i nc > 0 , se estimeaz modelul ARMA al zgomotului
colorat vK , prin MMEP.
d. Dac exist un model valid al zgomotului colorat (oricare din paii
anteriori pot eua), se construiete predictorul clasic stochastic yV ,K
utiliznd ecuaiile predictorului PARMA. (n cazul modelelor AR, nu
mai este necesar estimarea zgomotului alb.)
96
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
y K [ n] = yW [ n] + yV ,K [ n] , n N y K + 1, N y .
f. Se estimeaz dispersia erorii de predicie,
{ }
2
K ,k
k =1, K
, utiliznd
y N y + k = y + yW N y + k + yV N y + k , k 1, K .
2
i evalueaz dispersia erorii de predicie,
.
{ }
k
Date de ieire:
k =1, K
)}
}
varianele corespunztoare ale erorii de predicie {
(
k1, K
2
k
k =1, K
;
.
97
{ y[ n]}n1,N
y PARMA N y + k
k1,K
, unde
{ y
PARMA
N y + k
k1,K
S = S {zn ,1 , zn,11 } .
D = D {zn ,1 , zn,11 } . (Se pot aduga i conjugatele lor complexe, caz n care pasul
2 z z 1
= xn .)
4
i N c
{ }
k 1, N r
zmk , zmk
k1, N c
1 + e j
C (e ) = 2
2
j
def
Nr e j rnk
k =1 1 rnk
)(
)(
Nc e j zmk e j zmk
1 zmk 1 zmk
k =1
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
{cn }n0,2 N 1 ),
ea se
c2
c1
c0
0
0
0
0
c3
c2 N 3 c2 N 4 c2 N 5 c2 N 6
c3
c2
c1
c0
def
c5
c4
c3
c2 .
C N = c2 N 1 c2 N 2 c2 N 3 c2 N 4
0
0
c2 N 1 c2 N 2
c7
c6
c5
c4
0
0
0
0
c2 N 1 c2 N 2 c2 N 3 c2 N 4
0
c2 N 1 c2 N 2
0
0
0
0
0
k +1 ( 2 k 1 m ) =
2 N 1
c
n =0
k ( 2 k m n ) , m 0, M k , N .
k +1 ( 2 k 1 m ) =
n =22 N
Date de ieire:
perechea de undine tat i mam {, } determinate cu rezoluia de
reprezentare 2k .
99
y ( tn ) =
( m , p )M P
nN m, p
cm, p ,n m, p ,n ( tn ) + yV ( tn ) , n 1, N y + K .
(4.50)
n22 N ,1
V0
transformnd undina tat ntr-o fereastr glisant de-a lungul datelor. Astfel, valorile nenule
ale coeficienilor undin (4.44) sunt localizate pe un suport de lungime finit. Lungimea
secvenei de coeficieni este mai mare dect N y + K , datorit suportului undinei tat.
Evaluarea permanent a suporturilor coeficienilor undin este o operaie extrem de
important pentru sincronizarea bancurilor de filtre i precizia modelului de predicie.
Aceast operaie este detaliat la punctul 4.7.2. (care urmeaz) al paragrafului.
Implementarea procedurii IDA* (invocat la pasul 4.2.4.) necesit o reprezentare clar a
arborelui binar i a parametrilor si. Sunt posibile cteva abordri, dependente n general
de limbajul de programare utilizat pentru implementarea procedurii. Reprezentarea
descris n cele ce urmeaz ine cont de caracteristicile limbajului MATLAB. Astfel, fiecrui
meta-nod i se asociaz o celul cu 4 cmpuri, descris mai jos.
Matricea L de tip 2 L2 codific adncimea i azimutul frontierei curente a arborelui
Mleft
Pleft
m
p
Mright
Pright
m+1
m+1
2p
2p+1
Mleft
Pleft
Mright
Pright
m+1 m+1
2p
2p+1
Matricea C
de tip
C
0
0 0
0
0 0
min
max
sunt aranjate pe prima linie a matricii S iar limitele superioare pe a doua linie.
Evident, matricea S este sincronizat cu matricile L i C n ceea ce privete
actualizarea.
Mrimea scalar H memoreaz entropia total a cii de la meta-rdcin la metanodul curent (suma entropiilor corespunztoare tuturor meta-nodurilor de pe cale).
Un vector de celule v este asociat frontierei curente a meta-arborelui. De fiecare dat
cnd un meta-nod este expandat (el ar putea avea mai mult de doi meta-urmai), celula lui
este eliminat din vectorul v i celulele noilor meta-frunze generate sunt adugate la
sfrit (urmnd acelai principiu de actualizare a matricii L , ilustrat n Figura 4.8). Raza
curent a zonei explorate este egal cu valoarea total a entropiei stocate ntr-una dintre
celulele incluse n vectorul meta-frontierei v . De fapt, raza este minimum tuturor metaentropiilor gsite prin inspectarea celulelor lui v . Meta-nodurile de expandat sunt cele din
v , cu entropia total minim, adic egal cu raza. Fie v i = {Li , Ci , Si , H i } meta-nodul de
expandat. Expandarea const atunci n generarea unui numr de meta-noduri egal cu
numrul de coloane incluse n matricea Li . Fiecare nou meta-nod este obinut prin
aplicarea operaiilor urmtoare:
a. Se reine coloana curent din L i . Dac adncimea curent nu a atins o frontier
maxim, se nlocuiete valoarea maxim cu etichetele copiilor si, conform
principiului ilustrat n Figura 4.8. Adncimea maxim a unui arbore binar, M y ,
depinde de lungimea secvenei de coeficieni c0,0 . Cu alte cuvinte:
max
min
M y = log 2 ( N 0,0
N 0,0
+ 1) .
(4.51)
Hi
cu noua entropie.
R valoarea razei
noul meta-nod
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
H j R
< .
R
(4.52)
Meta-nodul este expandat numai dac nu se verific inegalitatea (4.52), adic testul de
oprire eueaz. De asemenea, chiar n acest caz, procedura poate fi oprit cnd toate
nodurile binare ale lui L j au atins adncimea maxim (4.51). Dac testul de stop (4.52)
reuete, meta-nodul final este v j .
La pasul 4.2.5., dac nivelul de mascare [0,1) nu este nul, se efectueaz
eliminarea coeficienilor slabi. Eliminarea nseamn n acest context nlocuirea cu valori
nule. De aceea, coeficienii slabi nu sunt eliminai, ci doar mascai prin utilizarea valorilor
nule. Mai precis, coeficientul cm , p ,n al secvenei cm , p este mascat cnd condiia de
mascare de mai jos este verificat:
cm , p ,n < max
cm , p ,i .
0
iN m , p
(4.53)
Se observ c nivelul de mascare produce anularea unui anumit procent din masa
coeficienilor undin. De exemplu, alegerea = 5% poate conduce la mascarea a 70%
dintre coeficienii undinei originale, ale cror amplitudini se situeaz sub 5% din
amplitudinea maxim.
L
Singura problem de rezolvat la pasul 4.2.6. este regsirea valorilor undinelor m, p ,n .
Ele pot fi evaluate prin intermediul bancului de filtre, dup cum este explicat la punctul
4.7.3. (care urmeaz) din acest paragraf.
Se sare direct la bucla 4.2.8. Singura observaie care ar trebui evideniat aici este
faptul c seria de timp ar putea conduce la modele ARMA invalide, pentru unii indici
structurali (datorit discrepanelor puternice dintre date i modelul selectat). Modelele
invalide sunt tratate ca vide iar PQ corespunztor este nlocuit cu EQ (definiia (3.9)). De
regul, EQ are valori inferioare lui PQ pentru majoritatea modelelor ARMA valide. Mai
mult, dac NA i NC sunt destul de mari, numrul de modele invalide este sensibil mai
mic dect numrul de modele valide, astfel c selectarea unui predictor optimal nu este
afectat.
4.7.2. Evaluarea suporturilor corespunztoare coeficienilor undin
Se introduce notaia cunoscut Supp( x ) = N x , N x
pentru suportul oricrui semnal
discret de lungime finit x . Primul pas n evaluarea suporturilor corespunztoare
coeficienilor undin este setarea suporturilor semnalelor implicate n ecuaii ca (4.44) sau
min
max
max
L
min
max
Supp ( 0,0,
n ) = N , L , N , L . Astfel, coeficienii corespunztori rdcinii arborelui sunt:
def
c0,0,n = y,
L
0,0, n
N ymax
L
y[k ]0,0,
n [k ] , n Z .
(4.54)
k = N ymin
Evident, valoarea curent c0,0,n este eventual nenul dac i numai dac:
max
min
max
N min
,
, L k n N , L , k N y , N y
ceea ce implic:
103
(4.55)
max N min
(4.56)
( )
= N ymin N max
= N ymax N min
N 0,0
,L
,L .
Se observ c difrenele
(N
min
y
(4.57)
max
N max
N min
, L ) i/sau ( N y
, L ) pot fi negative. Indiferent
de semnul lor, proprietile operatorilor parte ntreag furnizeaz urmtoarele expresii ale
limitelor suportului (4.57):
min
N 0,0
min N max
.
N max = sign ( N min N max ) N max N min
y
, L
, L
y
0,0
(4.58)
Expresiile (4.57) i (4.58) pot fi combinate, pentru a exprima adecvat limitele (utiliznd doar
max
min
N 0,0
min N max
.
N max = N max N min
, L
0,0 y
(4.59)
Acesta este cazul n care se utilizeaz undine ortogonale ale clasei Daubechies i seriei
de timp, deoarece:
L
max
Supp( y ) = 1, N y & Supp ( 0,0,
n ) = 1, N , L .
(4.60)
(4.61)
(4.62)
n (4.62), se pot recunoate uor poziiile extreme ale ferestrei glisante a undinei tat
pentru care valorile nenegative ar urmri valorile seriei de timp, ca s se poat calcula
produsul scalar (4.54).
Prima etap de calcul fiind ncheiat, limitele suportului altor coeficieni undin pot fi
obinui successiv, conform unui raionament inductiv.
104
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Reamintim maniera n care coeficienii undin sunt calculai utiliznd bancul de filtre (ca
n Figura 4.3), datorit proprietilor (4.23). ncepnd cu secvena generic cm , p , cu
max
Supp ( cm , p ) = N mmin
, p , N m , p , secvenele rezultate prin expandare cm +1,2 p i cm +1,2 p +1 sunt
produse printr-o pereche de operaii succesive: filtrare i decimare. Filtrarea este efectuat
cu ajutorul QMF oglindite.
Mai precis, nainte de decimare, rezult secvena intermediar urmtoare:
0
m +1,2 p ,n
def
N hmax
0
m +1,2 p ,n
& c
k = N hmin
def
N gmax
g [k ]cm , p ,nk , n Z .
(4.63)
k = N gmin
Evident, ambele ecuaii din (4.63) sunt similare ecuaiei (4.54), cu semnale diferite, ns. n
consecin, suporturile secvenelor intermediare au urmtoarele limite:
def
def
min
min
min
min
min
min
=
+
N
N
N
N
m, p
m +1,2 p +1,0 = N m , p + N g
h
m+1,2 p ,0
&
.
def
max def max
max
max
max
max
N m+1,2 p ,0 = N m, p + N h
N m+1,2 p +1,0 = N m, p + N g
(4.64)
N mmin
def
, p + N h
min
min
min
N m+1,2 p = sign ( N m, p + N h )
;
max
N mmax
max def
+N
max
N m+1,2 p = sign ( N mmax
) , p 2 h
, p + N h
min
N mmin
def
, p + N g
min
min
min
N m+1,2 p +1 = sign ( N m, p + N g )
.
max
N mmax
def
max
, p + N g
max
N
+
(4.65)
(4.66)
Ecuaiile (4.65) i (4.66) sunt relaii recursive care permit evaluarea limitelor suporturilor
pentru orice secven de coeficieni undin. Iniializarea este dat de (4.57).
n cazul undinelor ortogonale cu suport compacr ale lui Daubechies, deoarece:
N gmin
N hmin
= 1
= 1 2N
&
,
max
max
N
=
0
=
N
2
N
2
g
h
(4.67)
N mmin
def
, p 2N + 1
min
min
N m+1,2 p = sign ( N m, p 2 N + 1)
;
N mmax
max def
,p
105
(4.68)
N mmin
def
,p 1
min
min
N m+1,2 p +1 = sign ( N m, p 1)
.
N mmax
def
max
2
2
+
N
,p
(4.69)
{ }
m , p ,n nZ
p 2N ), atunci pachetul se refer la frecvene locale joase, iar dac p este impar (adic
p 2N + 1), sunt referite frecvene locale nalte. Aici local nseamn divizarea oricrei
sub-benzi, la rndul su, n dou noi sub-benzi: una de joas frecven i una de nalt
frecven, ca n Figurile 4.4 i 4.5.
Cteva prelucrri directe aplicate asupra EDL i EDL conduc la urmtoarele ecuaii
recursive ntre pachetul de undine al nodului ( m, p ) i cel al nodului printe:
Nh
, p 2N
hk m1, p ,2 n+ k
min
k
N
=
2
h
, nZ .
(4.70)
m , p ,n N max
g
Evident, 0,0,0
discretizate rezult prin utilizarea ecuaiilor recursive (4.70). Exist dou abordri n acest
sens: implementarea direct a ecuaiei (4.70) sau utilizarea bancului de filtre.
Dei a doua abordare necesit mai multe prelucrri, este mai elegant i conduce la o
procedur eficient. De aceea, este descris n continuare.
Oricare ecuaie dintre cele dou ale ansamblului (4.70) poate fi analizat separat, dar
utiliznd acelai raionament. Dup o schimbare natural de indice, prima din ele devine:
m , p ,n (t ) =
N hmax + 2 n
k = N hmin + 2 n
h[k 2n]
p
m 1, ,k
2
(t ) =
N hmax + 2 n
k = N hmin + 2 n
106
h[2n k ]
p
m 1, ,k
2
(t ) , t R . (4.71)
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Interpretarea ecuaiei (4.71) este urmtoarea: indicele de sumare nu are influen asupra
timpului continuu t R , dar modific deplasamentul undinelor. Mai precis, din (4.71),
rezult direct urmtoarea identitate:
m , p , (t ) h p (t ) 2 , t R .
m 1, ,
(4.72)
2
2
2
(4.73)
Rezultatul (de asemenea o secven de lungime finit) este dup aceea decimat, pentru a
obine urmtoarea secven:
m , p , N mmin
,p
m, p
(4.74)
Se observ din nou c momentul de timp este pasiv n relaiile (4.72)-(4.74), adic nu
joac un rol major n calcularea secvenelor.
Similar, a doua ecuaie din (4.70) implic:
m , p , (t ) g p 1 (t ) 2 , t R .
m 1,
,
(4.75)
m, p, Nmmin,p (t )
def
(
t
)
m, p , Nmmin
, p +1
m, p (t ) =
m, p, Nmmax,p (t )
~g
Analiz
= m+1,2 p+1 (t )
#
m+1,2 p, Nmmin+1,2 p (t )
= m+1,2 p (t )
#
(
t
)
max
m+1,2 p, Nm+1,2 p
def
= ( t N
min
0,0
) (t N
min
0,0
1) " ( t N
max
0,0
(4.76)
T
, t R.
min
min
max
L
L
L
L
k N 0,0
0,0
k N 0,0
k N 0,0
, k Z . (4.77)
0,0
1 " 0,0
[ k ] = 0,0
n consecin, schema de calcul din Figura 4.10 poate fi direct utilizat, cu urmtoarele
uoare modificri formale: momentul de timp t devine momentul normalizat k , i vectorii
(ca i undinele pe care le includ) primesc de asemenea indicele superior L .
Evident, nu toate valorile vectorului iniial (4.77) sunt nenule. Dimpotriv, pentru c
lungimea serie de timp originale, N y , este, de regul, mult mai mare dect lungimea
suportului undinei tat, doar puine elemente ale vectorului 0,0 [ k ] sunt nenule. Este
L
(4.78)
de
rezoluie
L =0,
vectorii
iniiali
0
0,0
( N0,0min + 3) i 0,00 ( N 0,0max + 1) arat ca mai jos:
0
0,0
( N0,0min + 1) ,
0
0,0
( N0,0min + 2 ) ,
0,0 0,0
0 N min + 2 = 2 1 0 = 0 " 0 T
) ( ) () ( )
0,0 ( 0,0
. (4.79)
T
0
min
0,0 ( N 0,0 + 3) = ( 3) ( 2 ) (1) ( 0 ) = 0 " 0
0
T
max
0,0 ( N 0,0 + 1) = 0 " ( 2 N 1) = 0 ( 2 N 2 ) " ( 2 ) (1)
Se poate vedea cum este construit vectorul iniial: fereastra inversat a undinei tat
gliseaza pe el, ncepnd de sus. Astfel, chiar i vectorul iniial poate fi construit recursiv.
Paralelismul Algoritmului 4.1 este o proprietate intrinsec a acestuia, derivat din
utilizarea bancurilor de QMF. Este clar c expandarea att a arborelui binar utilizat pentru
evaluarea coeficienilor undin, ct i a meta-arborelui utilizat n determinarea
Transformatei Undin de entropie minim, beneficiaz de procesarea n paralel a
urmailor oricrui nod, respectiv meta-nod.
Deocamdat, predictorul FORWAVER 1 este proiectat n versiunea uni-canal. Cu alte
cuvinte, seria de timp este uni-dimensional. El ar putea fi rulat n paralel n cadrul minireelei de calculatoare, pentru fiecare canal al oricrui bloc de date multi-dimensional. Cu
toate acestea, se anvizajeaz proiectarea unei versiuni multi-canal a acestui algoritm,
care, probabil, va apela din nou la strategia PSO pentru a determina modelul MIMOARMA inclus n modelul cu undine.
108
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
>> guide
n fereastra principal din MATLAB, fie se folosete butonul specializat din meniul principal,
ilustrat n Figura 5.1.
Ca reacie la aceast solicitare, Matlab va deschide o fereastr de lucru sub forma unei
planete, n care se poate ncepe proiectarea interfeei grafice dorite, ca n Figura 5.2.
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
n timpul rulrii, se va putea observa evoluia rulrii urmrind mesajele din fereastra
sud-vestic. Acestea arat n ce stadiu se afl algoritmul. De exemplu, rulnd Algoritmul
PARMA(-PSO) pentru blocul de date DATA200.mat, care reprezint date de
temperatur i umiditate n solul unei plante, se vor putea observa mesajele din
Figura 5.6.
6. Rezultate de simulare
Cei 5 predictori proiectai i implementai n cadrul sistemului de monitorizare
(PARMA la nivelul unitii mobile; PARMA-PSO, PARMAX-PSO, KARMA-PSO i
FORWAVER 1 la nivelul mini-reelei de laborator cu faciliti de calcul paralel) au fost
testai cu ajutorul unui corpus de date avnd diferite proveniene. O categorie a datelor
este de tip ecologic (temperatur, umiditate, radiaie solar). Au fost ns adoptate i date
cu naturi diferite, provenind din sociologie, economie sau medicin. Obiectivul principal al
simulrilor a fost dublu. Pe de o parte, s-a urmrit testarea i corectarea programelor de
predicie i rutinelor aferente. Pe de alt parte i mult mai important s-a ncercat
efectuarea unei comparaii pertinente ntre aceti predictori, n termeni de performan a
prediciei, n vederea dobndirii de experien n utilizarea lor.
n cadrul acestei seciuni, ne-am propus s prezentm o parte dintre rezultatele de
simulare obinute. Nici nu ar fi posibil enumerarea tuturor rezultatelor, avnd n vedere
volumul mare de informaii grafice obinute. n raportul de cercetare precedent, [SPDC08],
a fost prezentat seria de timp uni-dimensional a radiaiei solare dintr-o locaie
finlandez. Avnd n vedere costul foarte ridicat al senzorilor de radiaie solar cu
transmisie radio, pn la achiziionarea mai multor exemplare (cnd va fi posibil achiziia
unui bloc de date multi-dimensional), nu vom relua acest experiment. Prezentarea din
aceast seciune este separat n dou pri. O parte se refer la date uni-dimensionale
provenite din alte domenii dect ecologie, unele dintre ele destul de dificil de predictat. Cu
aceste date, a fost testat predictorul FORWAVER 1. O a doua parte atac simulrile
efectuate cu date multi-dimensionale din ecologie i medicin. De aceast dat, actorii
principali au fost predictorii PARMAX-PSO i KARMA-PSO. Predictorul PARMA-PSO este
114
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
utilizat de toi ceilali ca termen de comparaie. Aa cum este de ateptat, el ofer cele mai
slabe rezultate de predicie n majoritatea simulrilor. Exist ns i cazuri (rare, ce-i drept)
n care PARMA este greu de nvins. Aceast situaie se ntlnete n special la blocurile de
date care prezint fie o corelaie extrem de slab, fie nici un fel de corelaie ntre canale.
6.1. Simulri cu date multi-dimensionale
Pentru simulrile cu date multi-dimensionale, am preferat s anexm n finalul raportului
de cercetare articolele urmtoare:
[StCu09b] (publicaie indexat ISI) n care este predictat un bloc de 4 temperaturi
ambiante (dou maxime i dou minime zilnice) msurate cu ajutorul eKo-senzorilor
n oraele Bucureti i Ploieti; predictorul utilizat a fost PARMAX-PSO;
[StCu09a] (publicaie recunoscut de ctre CNCSIS) n care este blocul celor 4
temperaturi ambiante anterioare au fost predictate cu ajutorul lui KARMA-PSO;
[SSCM09] (acceptat la conferin internaional IEEE, indexat ISI) n care
blocul de date provine din medicin i conine tot 4 canale (glicemie i ioni de sodiu
pentru un pacient de sex masculin i altul de sex feminin); predictorul utilizat a fost
tot PARMAX-PSO.
Aa cum arat i concluziile primelor dou articole, se pare c predictorii PARMAXPSO i KARMA-PSO ofer rezultate de predicie similare i superioare predictorului
PARMA-PSO. Aceasta se datoreaz n special corelaiei destul de pronunate care exist
ntre temperaturile celor dou orae aflate la numai 60 km deprtare unul fa de altul i
nedesprite de forme de relief abrupte. Alte simulri cu blocuri de date de temperatur
ambiant din orae ndeprtate (de exemplu, Bucureti i Arad, Timioara sau Braov) au
condus la performane mai slabe ale celor doi predictori n raport cu PARMA-PSO. Este
clar c, dac ntre canalele de msur nu exist corelaii sau acestea sunt foarte slabe,
utilizarea unor predictori de complexitate ridicat cum sunt PARMAX i KARMA nu este
recomandat. n acest caz, PARMA este mai precis i mai rapid.
n ceea ce privete datele din medicin, rezultatul de predicie a confirmat ceea ce se
tie de mult vreme: glicemia i cantitatea de ioni de sodiu ai unei persoane sunt doi
parametri corelai ntre ei. Corelaia este ns destul de complex i subtil. Cu toate
acestea, predictorului PARMAX nu i-a scpat. Mai mult, el a pus n eviden un nou tip de
corelaie ntre analizele unor pacieni care fie sunt nrudii, fie le-au efectuat n
aproximativ aceleai condiii. n cazul celor doi pacieni de sexe opuse, nenrudii, singura
explicaie pentru corelarea analizelor lor o constituie faptul c au fost investigai n acelai
spital, n aceleai condiii i n aceeai perioad. Predicia evoluiei glicemiei unui pacient
este de maxim importan pentru medic (mult mai important dect predicia temperaturii
de afar). El poate astfel interveni nainte ca parametrul s ating valori letale pentru
pacient. n acest experiment, aa cum era de ateptat, predictorul PARMA-PSO a obinut
rezultate mai slabe det PARMAX-PSO.
De notat c multe dintre datele oferite de domenii diferite de cel al Ecologiei sunt mai
dificil de predictat, din cauza perturbaiilor mai bogate care le-au corupt. Datele ecologice
se pot ncadra n categoria celor netede, n care zgomotele nu depesc limite normale.
De aceea ele sunt relativ mai precis predictate pe termen scurt. Ceea ce nc nu se poate
predicta precis cu aceste modele numerice (indiferent de domeniu) este variaia brusc,
avnd efecte catastrofice n anumite cazuri (de exemplu, o tornad brusc sau un
cutremur).
6.2. Simulri cu date uni-dimensionale
Scopul principal al experimentelor efectuate cu date uni-dimensionale a fost acela de a
testa performanele predictorului FORWAVER 1, n raport cu cele ale predictorului
PARMA-PSO. Spre deosebire de predictorii PARMAX-PSO i KARMA-PSO, predictorul
bazat pe undine este n mod constant superior lui PARMA.
115
Prima aplicaie selectat pentru acest raport de cercetare provine din economie i se
refer la rata de schimb dintre EURO i dolarul american (USD), de la punerea n
circulaie a monedei europene. Publicaia [SCI08] (indexat ISI) prezint rezultatele
superioare de predicie obinute de FORWAVER 1, n raport cu PARMA. De notat c
predicia acestui curs de schimb nu a fost una banal, avnd n vedere inversarea
saportului dintre cele dou monede ntr-un timp relativ scurt.
Urmtoarele dou experimente vor fi prezentate pe larg n continuare. Ele sunt descrise
i n cartea [SSP09] (n curs de apariie la Editura Academiei Romne).
Datele asupra crora va fi focalizat discuia care urmeaz fac parte dintr-un corpus
variat de serii de timp, care au mai degrab o natur statistic. Este vorba despre:
Y1 Rata lunar medie a omajului n SUA, estimat ntre ianuarie 1973 i iulie 1985
(151 de eantioane).
Y11 Evoluia contiinei colective a omenirii, conform unor msurtori efectuate la Kings
College din Londra, ntre iulie 2000 i septembrie 2004 (128 de eantioane).
Cele mai multe dintre seriile de timp ale acestui corpus posed doar un numr relativ
redus de date (ca i cele selectate), fiind totodat afectate de zgomote relativ importante.
Aceste caracteristici sunt extrem de utile n vederea testrii algoritmilor plecnd de la
condiii dificile. Unele serii de timp poased component sezonier vizibil, altele nu, iar
altele necesit intervenia unor modele sofisticate (cum este i cel bazat pe undine) pentru
a le fi detectat aceast component. Alte serii de timp, cum este i Y11, sunt relativ
surprinztoare (sub rezerva corectitudinii metodei de msurare). Chiar, Y11 (contiina
colectiv a umanitii), posed dou minime foarte adnci, corespunztoare evenimentelor
tragice din septembrie 2001 (n SUA) i martie 2003 (n Spania). Cu alte cuvinte, potrivit
cercettorilor de la Kings College din Londra, tonusul general al omenirii a nregistrat
scderi brute i extrem de pronunate n preajma i din cauza acestor evenimente.
Cele dou serii de timp precizate mai sus au fost selectate din anumite motive:
Y1 - pentru detecia relativ dificil a componentei sezoniere i Y11 nu att pentru ineditul
su ct, mai ales, pentru a ilustra o limit important a algoritmilor numerici de predicie,
care este incapacitatea de a prognoza catastrofe n timp util.
n continuare, pentru fiecare dintre cele 2 serii de timp vor fi ilustrate comparativ
performanele de predicie ale perechii de algoritmi PARMA FORWAVER 1. Cteva
comentarii succinte preced imaginile prezentate.
6.2.1. Predicia seriei de timp a omajului n SUA
n cazul acestei serii de timp, ilustrate n Figura 6.1, performana superioar a
predictorului FORWAVER 1 este evident: o valoare de 87.95% a criteriului PQ pentru
modelul ARMA clasic (Figura 6.3), fa de 94.82% pentru modelul cu undine (Figura 6.10).
Se observ c modelul cu undine mbuntete nu doar precizia de predicie (n special la
primele 3 momente), ci i tubul de ncredere (care este mai ngust). n afara prediciei,
modelul cu undine realizeaz i o compresie de rat grosier egal cu aproximativ
49.23%, pentru un nivel de mascare de 2%. Astfel, 49.23% dintre coeficienii undin au
fost anulai, informaia codificat de ei fiind transferat zgomotului colorat. Performana
superioar a prediciei se datoreaz aadar faptului c nivelul de mascare a reuit s
traseze o linie de demarcaie mai clar ntre componenta determinist i cea
nedeterminist a seriei de timp, fa de demarcaia realizat de modelul clasic.
Scalograma asociat fiecrui model cu undine este util n selectarea nivelului de
mascare. (Scalograma este definit ca o aplicaie bidimensional care surprinde variaia
ptratelor modulelor coeficienilor undin peste planul timp-frecven. Cu alte cuvinte,
scalograma reprezint o distribuie a energiei seriei de timp peste acest plan, fiind similar
unui spectru variabil n timp.) n cazul acestei serii de timp, scalograma (trasat n dB) este
ilustrat n Figurile 6.6 (n plan) i 6.7 (n spaiu), fiind corelat cu arborele binar optimal
116
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
7. Concluzii i perspective
Finalizarea etapei a III-a din cadrul proiectului ECO-TSFS marcheaz un pas important
n direcia nzestrrii sofwtare a sistemului de monitorizare ecologic. Aceast etap avea,
n planul de realizare iniial, o consisten i mai mare, nefiind segmentat n dou pri,
ca n momentul de fa (n urma ultimului act adiional, ncheiat la cererea CNMP). ns
bilanul parial realizat n acest raport de cercetare se dovedete a fi benefic. Algoritmii de
predicie bazai pe modele de identificare meritau, poate, o etap separat de raportare. n
plus, n aceast etap, s-a putut avansa i n direcia adoptrii unui model de predicie
diferit de cele de identificare, bazat pe undine. Simulrile destul de susinute, bazate pe
algoritmii de predicie prezentai i pe un corpus de date n plin extindere, par a confirma
intuiia care a motivat nscrierea n competiie a acestui proiect.
Urmtoarea etap constituie o continuare fireasc a celei care s-a ncheiat. Eforturile
echipei de cercetare se concentreaz asupra a 3 obiective majore: mbogirea corpusului
de date msurate, mbuntirea interfeei grafice i, mai ales, implementarea a doi noi
algoritmi de predicie, pe baz de undine. Primul dintre ei este perechea celui descris n
acest raport: FORWAVER 2, cu undine biortogonale. Al doilea va fi, probabil, cel mai
complex dintre toi, apelnd la un dicionar de forme de und (care include i undine) i la o
tehnic de optimizare bazat pe un Algoritm Genetic.
117
Figura 6.2. Y1: Vedere global asupra prediciei clasice i a performanei asociate.
118
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Figura 6.4. Y1: Undinele tat i mam ale predictorului bazat pe undine.
119
Figura 6.9. Y1: Vedere global asupra prediciei cu undine i a performanei asociate.
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Figura 6.12. Y11: Vedere global asupra prediciei clasice i a performanei asociate.
123
Figura 6.14. Y11: Undinele tat i mam ale predictorului bazat pe undine.
124
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Figura 6.19. Y11: Vedere global asupra prediciei cu undine i a performanei asociate.
128
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Anexa A
Descrierea iniial a proiectului
Titlul proiectului
Rezumatul proiectului
Mediul nconjurtor constituie o bogat surs de semnale, care codific evoluia
acestuia. Numai un numr relativ redus dintre ele sunt percepute de ctre factorul uman,
iar, dintre acestea, un numr i mai mic sunt corect decodificate i interpretate. Din acest
motiv, n condiiile unor schimbri att de rapide n ceea ce privete condiiile climatice i
efectele activitilor industriale, este nu doar util, ci i necesar un sistem de monitorizare
automat a arealelor geografice. Obiectivul principal al monitorizrii l constituie predicia
comportamentului sistemului ecologic, n special n scopul anticiprii/prevenirii
dezastrelor.
Proiectul i propune s decodifice corelaiile existente ntre diferitele componente de
mediu dintr-un areal geografic oarecare, cu ajutorul unui sistem automat, bazat pe
prelucrarea de tip timp/spaiu-frecven-scal a semnalelor.
Semnalele sunt achiziionate cu ajutorul unui sistem de senzori specializai n
msurarea de mrimi fizice din aer/ap/sol, cum ar fi: temperatur, umiditate, grad de
poluare (noxe), viteza curenilor de aer/ap, nivel de ap, debit de ap, vibraii seismice,
etc. La acestea, se pot aduga imagini fotografice sau video ale arealului monitorizat.
Datele astfel obinute sunt nmagazinate cu ajutorul unui mijloc automat mobil de calcul,
prin intermediul unei interfee numerice care trebuie proiectat i realizat.
Dup achiziie, datele vor fi prelucrate n laborator cu ajutorul a dou mari categorii de
metode. Prima dintre ele se refer la predicia de stare a sistemului complex reprezentat
de arealul geografic. Semnalele culese sunt vzute ca ieiri msurate ale unui sistem
multidimensional, ale crui stri interne pot fi predictate cu precizie controlat.
(Modelarea intern a sistemului se poate realiza plecnd de la ecuaiile fizico-chimice
care stau la baza funcionrii acestuia.) Metodele din familia Markov-Kalman-Bucy par a
constitui instrumentele adecvate n acest scop. A doua categorie de metode se refer la
analiza spectrului variabil n timp al semnalelor, cu ajutorul transformatelor biliniare i
afine. Reprezentantele tipice ale acestora sunt: Transformata Fourier cu Fereastr
Culisant i (mai ales) Transformata Undin, asupra creia se focalizeaz discuia n
cadrul proiectului. Algoritmii afereni metodelor din ambele categorii se preteaz mod
natural la implementarea pe o main paralel de calcul integrat ntr-o minireea de 4
calculatoare personale. (Aceast structur se intenioneaz a fi achiziionat din
resursele alocate proiectului.)
n fine, perturbaiile care afecteaz datele sunt modelate cu ajutorul unor tehnici
autoregresive de identificare capabile s ofere i o estimaie a preciziei de predicie. Din
experiena dobndit n cadrul unor cercetri legate de modelarea i predicia seriilor de
timp, avnd n vedere c metodele amintite sunt destul de complexe, este de ateptat ca
att evidenierea corelaiilor dintre semnalele achiziionate ct i predicia evoluiei
acestora s fie precise.
129
Relevana proiectului
- ncadrarea proiectului n obiectivele Programului 4 i obiectivele specifice ale direciei de
cercetare
Studiind lista domeniilor de cercetare prioritare din pachetul de informaii aferent
proiectelor de tip P4, proiectul se ncadreaz la categoria 3 (Mediu), seciunea 3.3
(Protecia i reconstrucia ecologic a zonelor critice i conservarea ariilor protejate),
subseciunea 3.3.2 (Sisteme de monitorizare a dinamicii diversitii biologice i ecologice
n plan structural i funcional). Este drept, ns, ca aceast cercetare are un caracter
multi-disciplinar, care integreaz cunotine din cteva domenii tiinifice de inginerie
electric, automatic i tiina calculatoarelor. n consecin, ea ar putea fi analizat i de
ctre experi din aceste domenii.
Obiectivul major al direciei de cercetare 3.3.2 l constituie efectuarea unei analize
pertinente i riguroase a varietii de factori de mediu care conduc la evoluia unui sistem
ecologic localizat ntr-un anumit areal geografic limitat. Rezultatele analizei pot avea
diferite utilizri, dintre care cea mai important este probabil aceea a anticiprii evoluiilor
nedorite, anormale ale sistemului.
- scopul urmrit
Proiectul propune proiectarea i realizarea unui sistem de monitorizare bazat pe
analiz de semnal, n vederea diagnosticrii i prognozrii ct mai precise a evoluiei
fenomenelor naturale i/sau artificiale din cadrul unui areal geografic. Sistemul se
dorete a fi util att n plan didactic (n dezvoltarea unor cercetri la nivel de pregtire
universitar i doctoral), ct i n plan practic (n monitorizarea efectiv a unor factori de
mediu).
Descrierea proiectului din punct de vedere tiinific i tehnic,
incluznd gradul de noutate i posibilitatea aplicrii rezultatelor
cercetrilor
- prezentarea succint a stadiului realizrilor S/T din domeniu, la nivel naional i
internaional, raportat la tema proiectului
Monitorizarea ecologic este o sintagm relativ nou, aprut pe fondul schimbrilor
rapide nregistrate de ctre factorii climatici i de mediu. Aceasta nu se reduce doar la
modelarea proceselor ecologice naturale sau artificiale [NKB00a], ci i la integrarea lor n
cadrul unor sisteme relativ complexe de diagnoz i prevenie. Implicarea automaticii,
informaticii i a electronicii n proiectarea unor astfel de sisteme numite ad hoc
inteligente este evident [NKB00b], [NKP04]. Organizarea unor centre de monitorizare
ecologic este abia la nceput. Acestea sunt amplasate cu precdere n zona centrelor
meteorologice, care dispun de logistica necesar unui astfel de demers. Chiar dac n
Romnia interesul pentru protecia mediului i a conservrii funcionrii naturale a
sistemelor ecologice nu s-a situat dintotdeauna printre prioriti, el a nceput s se
manifeste n ultimii ani, impulsionat i de orientarea unor ri europene avansate. Cu
toate acestea, dup cunotinele noastre, obiectivele i maniera de desfurare a
cercetrii propuse n cadrul proiectului de fa nu au fost nc abordate, fiind
originale. Pentru a-i atinge obiectivele amintite n seciunea anterioar, proiectul i
propune integrarea unor cunotine de Automatic industrial (achiziie i prelucrare
primar a datelor) [PoSt06], Teoria sistemelor (reprezentare pe stare) [IoV85],
Prelucrarea semnalelor (analiz timp/spaiu-frecven-scal) [PrMa96], [CoL95],
[SSP07], Identificarea sistemelor (predicie de stare, modelare autoregresiv) [SoSt89],
[SCS05], Inteligen artificial (metode euristice de cutare) [RuNo95] i Programare
evoluionar (algoritmi genetici) [MiM95].
130
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
133
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
III.3.
136
PARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PARMA.M
Main program: PARMA
Synopsis: PARMA ;
Constructs classical prediction models of signal(s) (time
series) based on ARMA modeling of stochastic component. The
overall model has 3 additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any (Robinson-Wittacker Method with
threshold validation);
. stochastic - AR, MA or ARMA
(Levinson-Durbin Algorithm,
Wiener-Hopf filter,
Minimum Prediction Error Method).
However, trend and seasonal components can be avoided if the
user wishes so. In this case, the time series is/are only
made stationary, by subtracting the average.
Data can be available on several measuring channels. In this
case, one prediction model for each channel is built. Models
are independent each-other.
The prediction models are optimal, with respect to Prediction
Quality. Optimal structural indices are found by means of
Particle Swarm Optimisation (PSO) algorithm - an evolutionary
strategy (see theory).
In the beginning, the user is invited to set the following
parameters:
. bn = data block number; this is the number of file
including the signal (time series); any signal file
name is 'DATAbn.MAT', where tsn is a positive
integer; after loading the file, data are stored into
Y - an IDDATA object;
. K = duration of prediction horizon support
(K=7, by default);
. d = flag pointing to the users' option regarding the
deterministic component (trend+seasonal);
d=0 (default) means without deterministic component;
d~=0 means with deterministic component;
137
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
SHOW_PARMA
%
%
%
%
%
%
%
%
%
%
%
%
File SHOW_PARMA.M
Main program: SHOW_PARMA
Synopsis: SHOW_PARMA ;
Draws all graphics corresponding to main program PARMA.
It is assumed that the framework resulted after running PARMA
resides within MATLAB workspace.
The graphical package is saved in directory
138
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
basis2dec
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File BASIS2DEC.M
Function: BASIS2DEC
Synopsis: N = basis2dec(M,B) ;
Converts the number M, represented in basis B into decimal
number N.
Input M is either a column vector or a matrix, while B is
always scalar. By default, B=2. In this case, M is assumed to
be the binary representarion of N.
Output N is either scalar or row vector, depending on size of
M. If M is a column vector of length m, then:
N = M(1)*B^(m-1)+M(2)*B^(m-2)+...+M(m-1)*B+M(m) .
If M is a m-by-n matrix, then each column is assumed to
encode one value of vector N.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: March 04, 2009
Revised:
bin2index
%
%
%
%
%
%
File BIN2INDEX.M
Function: BIN2INDEX
Synopsis: n = bin2index(b) ;
139
%
%
%
%
%
%
%
%
%
%
%
%
%
%
dB
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File DB.M
Function: DB
Synopsis: xdB = dB(x) ;
Returns the deciBells value of input x, following the
definition below:
xdB = 20*log10(x) .
If the input has negative values, complex values are returned
instead (as they are provided by the complex logarithm).
If the input is missing or empty, the output is empty.
Returns empty output if something is wrong.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: December 13, 2001
Revised: April
9, 2003
dec2basis
%
%
%
%
%
%
%
%
%
File DEC2BASIS.M
Function: DEC2BASIS
Synopsis: M = dec2basis(N,B) ;
Converts the decimal number N into number M, represented in
basis B. Input N is either scalar or row vector (otherwise it
140
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
dot_norm
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File DOT_NORM.M
Function: DOT_NORM
Synopsis: N = dot_norm(A) ;
Computes the norm of column vectors in array A.
If A is scalar or vector, then N is a scalar.
Otherwise, let n be the number of A dimensions
(n=2 for matrices, n=3 for 3D blocks, etc.).
Then N is an array of n dimensions as well,
including norms of all vectors along the first dimension.
The size of first dimension in N is thus unit.
For matrices, N is a row vector with norms of each column.
Missing or empty input returns empty output.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: March 05, 2009
Revised:
141
dot_norm2
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File DOT_NORM2.M
Function: DOT_NORM2
Synopsis: N2 = dot_norm2(A) ;
Computes the square norm of column vectors in array A.
If A is scalar or vector, then N2 is a scalar.
Otherwise, let n be the number of A dimensions
(n=2 for matrices, n=3 for 3D blocks, etc.).
Then N2 is an array of n dimensions as well,
including square norms of all vectors along the first
dimension. The size of first dimension in N2 is thus unit.
For matrices, N2 is a row vector with square norms of each
column.
Missing or empty input returns empty output.
Invokes: DOT_SUM
WAR_ERR
Author: Dan STEFANOIU
Created: March 10, 2009
Revised:
dot_sum
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File DOT_SUM.M
Function: DOT_SUM
Synopsis: S = dot_sum(A) ;
Computes the sum of column vectors in array A.
If A is scalar or vector, then S is a scalar.
Otherwise, let n be the number of A dimensions
(n=2 for matrices, n=3 for 3D blocks, etc.).
Then S is an array of n dimensions as well,
including sum values of all vectors along the first
dimension. The size of first dimension in S is thus unit.
For matrices, S is a row vector with sum values of each
column.
Missing or empty input returns empty output.
Uses:
WAR_ERR
Author: Dan STEFANOIU
Created: March 05, 2009
Revised: March 10, 2009
142
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
extrapolate
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File EXTRAPOLATE.M
Function: EXTRAPOLATE
Synopsis: [YD_extra,YT_extra,YS_extra] =
extrapolate(Theta,YS,P,K) ;
Extrapolate by K steps the trend and the seasonal variation
of time series beyond the measuring horizon.
Inputs: Theta
YS
P
K
fig_look
%
%
%
%
%
%
%
%
File FIG_LOOK.M
Function: FIG_LOOK
Call:
fig_look(H,lw) ;
143
%
%
%
%
%
%
%
%
%
%
%
%
index2bin
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File INDEX2BIN.M
Function: INDEX2BIN
Synopsis: b = index2bin(n,nb) ;
Converts the numerical index n into logical (binary) index b
of length nb. By default, nb = max(n).
Input n must be a scalar or vector, otherwise it is
vectorized. Output b is either scalar or vector, depending on
the values in n.
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: March 05, 2009
Revised:
is_stable
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File IS_STABLE.M
Function: IS_STABLE
Synopsis: yn = is_stable(P) ;
Checks it out if polynomial P is stable or not. If stable
(i.e. all roots inside the unit disk), yn=1. Otherwise, yn=0.
(Output yn is logical.)
Missing or empty input P returns empty output.
Invokes: WAR_ERR
Authors: Dan STEFANOIU
Created: April 13, 2009
Revised:
144
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
long_div
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File LONG_DIV.M
Function: LONG_DIV
Call: [quo,rem] = long_div(num,den,nq) ;
Performs long division of Laurent polynomials, i.e. computes
the partial quotient and remainder within the identity:
num(z) = quo(z)*den(z) + rem(z) ,
depending on the quotient degree nq. Here, num (numerator),
den (denominator), quo (quotient) and rem (reminder) are
Laurent polynomials of degrees na, nb, nq and (nq+nr+1),
specified as follows:
.
.
.
.
num(z)
den(z)
quo(z)
rem(z)
=
=
=
=
a_0 + a_1*z^(-1)
b_0 + b_1*z^(-1)
q_0 + q_1*z^(-1)
z^(-nq-1)*(r_0 +
+ ... + a_na*z^(-na)
+ ... + b_nb*z^(-nb)
+ ... + q_nq*z^(-nq)
r_1*z^(-1) + ... + r_nr*z^(-nr))
maximize
%
%
%
%
%
%
File MAXIMIZE.M
Function: MAXIMIZE
Call: maximize(h) ;
145
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
MIMO_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File MIMO_ARMA.M
Function: MIMO_ARMA
Synopsis: [Ya,Sigma,E,naAR,ncMA,nAR,MODEL] =
MIMO_ARMA(V,na,nc,nalpha,K,ms) ;
Builds autoregressive stochastic model(s) of colored noise(s)
V (IDDATA object with ny channels of Ny data) and performs
prediction for K samples ahead. By default, K=7. If K=0,
only the ARMA model is built; no prediction is performed.
The model is/are either ARMA[na,nc] (if nc>1), or AR[na]
(if nc=0 or nc=[] or nc is missing), or MA[nc]
(if na=0 or na=[] or na is missing).
By default, na=10 and nc=0.
Input nalpha is the order of AR approximating model
during the prediction. By default, nalpha=min(3*(na+nc),Ny).
Moreover, when nc=0, nalpha is adjusted to na.
Input ms is tha model stability flag (integer or logical).
By default, ms=0, which means no stability check on
identification models.
If ms~=0, only stable identification models are selected.
Note however that na, nc and nalpha are vectors of length ny.
Outputs:
. Ya
. Sigma
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. E
.
multi_PQ
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File MULTI_PQ.M
Function: MULTI_PQ
Synopsis: PQ =
multi_PQ(y_plus,y_pred,sigma,sqrSNR,sdy,sdy_plus) ;
Evaluates the prediction (or extrapolation) quality (PQ) of a
data prediction model, in case of distributed data. By
difference from <PREDICTION_QUALITY> function, here, PQ could
be either scalar or row vector. PQ values are expressed
in percents. If PQ is scalar, its value is computed
identically like in <PREDICTION_QUALITY> function.
Input arguments are as follows:
. y_plus = supplementary measured data on prediction horizon
(column vector or matrix); if matrix, measured
data are stored on columns; the number of columns
147
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. y_pred =
. sigma
. sqrSNR =
. sdy
. sdy_plus
PARMA_model
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PARMA_MODEL.M
Function: PARMA_MODEL
Synopsis:
[Y_PRED,Sigma,aNAC,Y_MODEL,YT,Theta,YS,PS,V,YA, ...
E,Y_EXTRA,YT_EXTRA,YS_EXTRA,YA_PRED,SNR,MODEL,AMODEL] = ...
PARMA_model(Y,NAC,K,ms,mY,EY) ;
Estimates ARMA prediction models for data acquired on one or
more channels. Each model is assigned to a data channel.
Models are independent on each-other. Such a model includes 3
additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any (Robinson-Wittacker Method
with threshold validation);
148
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. Y_MODEL
. YT
. Theta
. YS
. PS
. V
. YA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. E
periodic_variation
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PERIODIC_VARIATION.M
Function: PERIODIC_VARIATION
Synopsis: [YP,P,rsr] = periodic_variation(Y,XI) ;
Determines the rough periodic variation of signals Y
(IDDATA object), by means of Wittacker-Robinson Method.
Input XI is the maximum detection threshold of periodic
variation (scalar, 30%, by default). The best period is
selected only if the energy of residual signal (Y-YP-mean(Y))
is below or equals XI percents of (Y-mean(Y)) signal(s)
energy.
Data can be provided on several channels, say ny.
Outputs: YP
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
poly_trend
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File POLY_TREND.M
Function: POLY_TREND
Synopsis: [YT,Theta] = poly_trend(Y,P,Supp_Y) ;
Determines a polynomial trend of degree(s) P associated to
signal(s) Y, by means of Least Squares Method and a simple
balancing technique.
Inputs: Y
Outputs: YT
= trend signal(s) (matrix with ny columns);
Theta = polynomial coefficients ((P+1)-by-ny matrix;
coefficients on columns, increasing
degrees).
Missing, empty or inconsistent input Y returns empty or wrong
outputs.
Invokes: VECTORIZE
WAR_ERR
151
%
%
%
%
%
prediction_quality
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PREDICTION_QUALITY.M
Function: PREDICTION_QUALITY
Synopsis: PQ = prediction_quality(y_plus,y_pred,sigma,sdy) ;
Evaluates the prediction (or extrapolation) quality (PQ) of a
data prediction model. PQ is expressed in percents.
Input arguments are as follows:
. y_plus
= supplementary measured data on prediction
horizon (column vector);
. y_pred
= predicted data (column vector);
. sigma
= standard deviations of prediction error
(column vector);
. sdy
= standard deviation of measured data (scalar).
Inputs y_plus and y_pred are essential and cannot miss or be
empty (otherwise empty PQ is returned). If sigma is missing
or empty, extrapolation model is assumed. If the standard
deviation sdy is missing or empty, the standard deviation of
y_plus is evaluated instead.
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: August 02, 2007
Revised: March 25, 2009
PSO_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
File PSO_ARMA.M
Function: PSO_ARMA
Synopsis:
[NAC,PQ] = PSO_ARMA(DATA,d,K,NA,NC,P,ms,M,S,xi,DT) ;
Implements Particle Swarm Optimisation (PSO) technique to
heuristically find the (sub-)optimal structural indices of
MIMO-ARMA models as collection of independent SISO-ARMA
models (see theory). The fitness function is the prediction
quality (PQ), which has to be maximized.
152
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. PQ
PSO_best_particles
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PSO_BEST_PARTICLES.M
Function: PSO_BEST_PARTICLES
Synopsis: [P,p,maxF] = PSO_best_particles(POP,F) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm in conjunction with
PARMA program.
Its task is to extract the best particles of populations
POP, according to fitness function F (which has to be
maximized).
Input POP is either a 2D or 3D array, where populations are
stored on layers. Each particle is represented by one column
in some layer (population).
Input F is a matrix with the same number of columns number as
the number of layers in POP. Each column encodes the fitness
values of particles of some population/layer.
The procedure finds and extracts the best particle of every
layer, according to F. The best particles are stored on
columns in matrix P, in order of layers. Beside the best
154
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
WAR_ERR
Dan STEFANOIU
March 05, 2009
March 25, 2009
PSO_crossover
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PSO_CROSSOVER.M
Function: PSO_CROSSOVER
Synopsis: [POP12,v12] = PSO_crossover(POP1,POP2,v1,v2) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm.
Its task is to perform crossover between 2 populations groups
POP1 and POP2. The other inputs, v1 and v2, are the
corresponding speed values.
Inputs POP1 and POP2 are either 2D or 3D arrays, where
populations are stored on layers. Each particle is
represented by one column in some layer (population).
Inputs v1 and v2 are 2D or 3D arrays, exactly like POP1 and
POP2, respectively. Each column encodes the speed values of
particles that belong to some population/layer.
See theory for definition of crossover.
The offsping populations POP12 include a double number of
particles and the corresponding speed values are twice
bigger.
Missing or empty input returns empty output.
Invokes:
Author:
Created:
Revised:
WAR_ERR
Dan STEFANOIU
March 05, 2009
March 10, 2009
PSO_fitness_PQ
%
%
%
%
File PSO_FITNESS_PQ.M
Function: PSO_FITNESS_PQ
155
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Synopsis: [PQ,APOP] =
PSO_fitness_PQ(DATA,POP,bK,ms,sdy,sdy_plus) ;
Evaluates the prediction (or extrapolation) quality (PQ) as
fitness function for PSO algorithm.
Input arguments are as follows:
. DATA = IDDATA object with measured data; if DATA.u is
empty, then PQ is evaluated for SISO-ARMA models;
otherwise, the MIMO-ARMA models are considered;
DATA.y includes the measured data on columns
(channels);
. POP = population of structural indices (3D array - see
functions PSO_ARMA or PSO_ARMAX for its elements);
the number of columns equals the population size P;
the number of layers must be equal to the number of
measuring channels, ny;
. bK
= length of backwards prediction horizon
(scalar; by default, bK=4);
. ms
= model stability flag (integer or logical;
by default: ms=0 -> no stability check on
identification models;
if ms~=0, only stable identification models are
selected);
. sdy = standard deviation of measured data
(scalar or row vector); if vector, the length
equals the number of measuring channels;
if missing, empty or null, it is computed according
to DATA.y;
. sdy_plus = standard deviation of test data (scalar or row
vector); if vector, the length equals the
number of measuring channels; if missing, empty
or null, it is computed according to DATA.y.
Output PQ is a P-by-ny matrix with PQ values for each
particle in population POP.
Output APOP is built starting from POP, but some structural
indices may have been adjusted during the identification
procedure. If APOP is different from POP, then it can be
employed to update the current population.
Missing or empty DATA or POP return empty PQ.
Invokes: MULTI_PQ
PARMA_MODEL
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: March 16, 2009
Revised: April 22, 2009
156
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
PSO_social_variances
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PSO_SOCIAL_VARIANCES.M
Function: PSO_SOCIAL_VARIANCES
Synopsis: sigma_s = PSO_social_variances(POP,BP) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm.
Its task is to evaluate the social variance of each
population in POP, with respect to the (best) particle BP.
Input POP is either a 2D or 3D array, where populations are
stored on layers. Each particle is represented by one column
in some layer (population).
Input BP is a matrix with the same number of columns as the
number of layers in POP. Each column encodes the (best)
particle that belong to some population/layer.
The procedure estimates the variance values by computing
the square root of average distance from each particle
to the (best) particle in the same population.
The variance values are stored within row vector sigma_s,
with the same length as the number of layers/populations.
Missing or empty input returns empty output.
Invokes: DOT_SUM
WAR_ERR
Author: Dan STEFANOIU
Created: March 05, 2009
Revised: March 18, 2009
PSO_update_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
File PSO_UPDATE_ARMA.M
Function: PSO_UPDATE_ARMA
Synopsis:
[NABCGn,pozGn,sigma_s0n,sigma_s1n,sigma_sGn,sigma_sGr, ...
sigma_c1n,sigma_cG2n,ELITEn,vEn,PQ1n,NABCn,pozn,sn,
sigma_sEn,AELITEn,vAn,PQ0n] = ...
PSO_update_ARMA(m,GEN,vG,PQ,sigma_s0,sigma_s1,sigma_c1, ...
sigma_cG2,ELITE,vE,PQ1,poz,s, ...
AELITE,vA,PQ0) ;
157
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Outputs:
. NABCGn
= best GEN particles (row vector);
. pozGn
= pozitions of best GEN particles (row vector);
. sigma_s0n = update of minimum values of social variance
for current generation (row vector);
. sigma_s1n = update of maximum values of social variance
for current generation (row vector);
. sigma_sGn = update of absolute social variance for
current generation (row vector);
. sigma_sGr = update of relative social variance for
current generation (row vector);
. sigma_c1n = update of maximum values of cognitive
variance for current generation (matrix);
. sigma_cG2n= update of signed squared absolute values of
cognitive variance for current generation
(matrix);
158
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
scaling
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File SCALING.M
Function: SCALING
Synopsis: a = scaling(X,d) ;
Returns the 2-length vector a that can be used to
re-scale the graphical variation of X, such that
the maximum/minimum values of axes are higher/lower
by d*(max(X)-min(X)) comparing to max(X)/min(X).
By default, d=0.1 (which means 10%). The argument
d can be negative, allowing the user to perform
zoom on a specified zone in the graphic.
Usually, X is a vector. If X is a matrix, its columns
are understood as different variations of the same
parameter (like in case of MATLAB function PLOT)
and max/min are computed accordingly.
159
%
%
%
%
%
%
%
%
WAR_ERR
show_ts
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File SHOW_TS.M
Function: SHOW_TS
Synopsis:
H = show_ts(y,ntime,ts_label,Ox_label,Oy_label, ...
FIG,FIG_name) ;
Displays the variation of a time series y sampled
at instants given in ntime (or uniformly spaced, when ntime
is missing or empty). Figure FIG is used in this
aim, with name FIG_name. Within ts_label, if specified,
the figure title is displayed. Figure axes are labeled
according to Ox_label (Ox) and/or Oy_label (Oy).
Returns the handle to the current figure, H
(or empty if something is wrong).
Invokes: FIG_LOOK
MAXIMIZE
SCALING
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: May
4, 2004
Revised: March 20, 2009
show_ts_vs_model
%
%
%
%
%
%
%
%
%
%
%
%
File SHOW_TS_VS_MODEL.M
Function: SHOW_TS_VS_MODEL
Synopsis:
H = show_ts_vs_model(y,supp_y,y_plus,supp_pred,ypm, ...
ypm_pred,sigma,e,SNR,PQ,Ts, ...
ts_label,Ox_label,Oy_label,txt, ...
FIG,FIG_name) ;
160
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
vectorize
%
%
%
%
%
File VECTORIZE.M
Function: VECTORIZE
161
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Synopsis: v = vectorize(A) ;
Vectorizes the matrix or vector A, by reshaping into a
row vector v.
In case of matrices, the columns are transposed
and enumerated successively within the line vector.
The output is empty if something is wrong.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: March
1, 2003
Revised: September 22, 2007
war_err
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File WAR_ERR.M
Function: WAR_ERR
Call: war_err(msg)
Displays a warning/error message. If msg is
present and non void, then it is displayed.
Otherwise (missing or void), a standard error
message is displayed.
Created: June
2, 1999
Revised: September 22, 2007
Author: Dan Stefanoiu
162
PARMAX
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PARMAX.M
Main program: PARMAX
Synopsis: PARMAX ;
Constructs classical prediction models of block signal(s)
(time series) based on MIMO-ARMAX modeling. See theory for
construction of stochastic component. The overall model has
3 additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any (Robinson-Wittacker Method
with threshold validation);
. stochastic - AR, MA or ARMA
(Levinson-Durbin Algorithm,
Wiener-Hopf filter,
Minimum Prediction Error Method).
However, trend and seasonal components can be avoided if the
user wishes so. In this case, the time series is/are only
made stationary, by subtracting the average.
Data can be available on several measuring channels. In this
case, one multi-dimension prediction model for each channel
is built. The resulted models are not correlated each other.
However, predicting data on some channe is not possible
without the contribution of the other channels. This version
of program is different from the basic version, where only
one multi-dimension model is build in order to predict
all channels at once. Here, the prediction focuses on a
specific channel. Thus, the block of prediction data for all
channels can be obtained only after running this program as
many times as the number of channels (either sequentially or
in parallel).
The prediction models are optimal, with respect to Prediction
Quality. Optimal structural indices are found by means of
Particle Swarm Optimisation (PSO) algorithm - an evolutionary
strategy (see theory).
In the beginning, the user is invited to set the following
parameters:
. bn = data block number; this is the number of file
163
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. K
. d
. NA =
. NB =
. NC =
. J
. P =
. ms =
164
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
SHOW_PARMAX
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File SHOW_PARMAX.M
Main program: SHOW_PARMAX
Synopsis: SHOW_PARMAX ;
Draws all graphics corresponding to main program PARMA.
It is assumed that the framework resulted after running
PARMAX resides within MATLAB workspace.
The graphical package is saved in directory
.\Sim_class_DATAbn under the same name as the framework,
but with .FIG extension. Here, 'DATAbn' is the
name of the data block under analysis.
Invokes: SHOW_TS
SHOW_TS_VS_MODEL
WAR_ERR
Author: Dan STEFANOIU
Created: March 28, 2009
Revised: March 30, 2009
MIMO_ARMAX
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File MIMO_ARMAX.M
Function: MIMO_ARMAX
Synopsis: [YA,Sigma,E,ASI,MODEL,AMODEL] =
MIMO_ARMAX(V,U,SI,K,ms) ;
Builds autoregressive stochastic model(s) of colored noise(s)
V (IDDATA object with ny channels of Ny data) and performs
prediction for K samples ahead. By default, K=7. If K=0,
only the ARMA model is built; no prediction is performed.
The model is ARMAX type if input U is consistent.
Inputs:
. V = noises to be modeled (IDDATA objects); noises are
recorded on ny channels; if ny=1, SISO-ARMA modeling
is performed; noises length is denoted by Ny;
. U = input signals recorded on columns (Ny-by-ny matrix);
for each output channel j, only (ny-1) input signals
are considered (all but the one in column j); if U is
missing or empty, MIMO-ARMA modeling is performed;
165
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
PARMAX_model
%
%
%
%
File PARMAX_MODEL.M
Function: PARMAX_MODEL
166
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Synopsis:
[Y_PRED,Sigma,aNABC,Y_MODEL,YT,Theta,YS,PS,V,YA,U,E, ...
Y_EXTRA,YT_EXTRA,YS_EXTRA,YA_PRED,SNR,MODEL,AMODEL] = ...
PARMAX_model(Y,NABC,K,ms,mY,EY) ;
Estimates a MIMO-ARMAX prediction model for data acquired on
at least 2 channels. The model is assigned to the whole data
block. See theory for details. (The function is related to
PARMA_MODEL, but is different in several respects.)
Inputs:
. Y
= data block (IDDATA object); data length is Ny;
the number of channels is ny;
. NABC = matrix of structural indices (nsi-by-ny);
here, nsi is the number of structural indices;
each column of NABC includes the following
structural indices:
[td ; naAR ; ncMA ; nAR ; ...
na ; nb_1 ; ... ; nb_nu ; nc ; ...
nalpha ; nbeta_1 ; ... ; nbeta_nu],
the trend degree (td) could miss, so that nsi is
either 2*nu+6 or 2*nu+7, where nu=ny-1;
. K
= duration of prediction horizon support
(K=7, by default);
. ms
= model stability flag (integer or logical;
by default: ms=0 -> no stability check on
identification models;if ms~=0, only stable
identification models are selected);
. mY
= data averages (ny-length row vector);
if missing or empty, it will be evaluated from data
block Y.
. EY
= data energy (ny-length row vector);
if missing or empty, it will be evaluated from data
block Y.
Outputs:
. Y_PRED
. Sigma
. aNABC
. Y_MODEL
. YT
. Theta
. YS
. PS
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. V
PSO_ARMAX
%
%
%
%
%
%
%
%
%
%
%
%
%
File PSO_ARMAX.M
Function: PSO_ARMAX
Synopsis: [NABC,PQ] =
PSO_ARMAX(DATA,d,K,NA,NB,NC,P,J,ms,M,S,xi,DT) ;
Implements Particle Swarm Optimisation (PSO) technique to
heuristically find the (sub-)optimal structural indices of
MIMO-ARMAX models, as collection of MISO-ARMAX models
(see theory). The fitness function is the prediction quality
(PQ), which has to be maximized.
168
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. PQ
PSO_best_cluster
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PSO_BEST_CLUSTER.M
Function: PSO_BEST_CLUSTER
Synopsis: [P,p,maxF] = PSO_best_cluster(POP,F) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm in conjunction with
PARMAX program.
Its task is to extract the best particles of populations
POP, according to fitness function F (which has to be
maximized).
Input POP is either a 2D or 3D array, where populations are
stored on ny layers. Each particle is represented by one
column in some layer (population). The number of particles
(P) is the the number of columns in each layer.
Input F is a vector with the same number of elements as the
number of particles in POP (i.e. P). Each element encodes the
fitness value of particles that belong to some cluster. There
170
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
PSO_update_ARMAX
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PSO_UPDATE_ARMAX.M
Function: PSO_UPDATE_ARMAX
Synopsis:
[NABCGn,pozGn,sigma_s0n,sigma_s1n,sigma_sGn,sigma_sGr, ...
sigma_c1n,sigma_cG2n,ELITEn,vEn,PQ1n,PQ1Jn,NABCn,pozn, ...
sn,sigma_sEn,AELITEn,vAn,PQ0n,PQ0Jn] =
PSO_update_ARMAX(m,GEN,vG,PQ,PQJ,sigma_s0,sigma_s1, ...
sigma_c1,sigma_cG2,ELITE,vE,PQ1,PQ1J, ...
poz,s,AELITE,vA,PQ0,PQ0J) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm in conjunction with
PARMAX program. Its task is to update the populations.
Inputs:
. m
. GEN
. vG
. PQ
. PQJ
. sigma_s0
. sigma_s1
. sigma_c1
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Outputs:
. NABCGn
. pozGn
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. vAn
. PQ0n
. PQ0Jn
173
174
KARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File KARMA.M
Main program: KARMA
Synopsis: KARMA ;
Constructs prediction models based on state representation of
signal(s) (time series). The prediction algorithm relies on
Markov-Kalman-Bucy method, that has been modified in this
aim.
In order to estimate the unknown input signals that stimulate
the data provider, a collection of ARMA models is employed.
Such a model has 3 additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any (Robinson-Wittacker Method
with threshold validation);
. stochastic - AR, MA or ARMA
(Levinson-Durbin Algorithm,
Wiener-Hopf filter,
Minimum Prediction Error Method).
However, trend and seasonal components can be avoided if the
user wishes so. In this case, the time series is/are only
made stationary, by subtracting the average.
Since data are available on several measuring channels,
one prediction model for each channel is built. Models
are independent each-other. However, the state representation
is assigned to the entire data block (on all channels).
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. d
. NA
. NC
. NX
. P
. ms
SHOW_KARMA
%
%
%
%
File SHOW_KARMA.M
Main program: SHOW_KARMA
176
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Synopsis: SHOW_KARMA ;
Draws all graphics corresponding to main program KARMA.
It is assumed that the framework resulted after running KARMA
resides within MATLAB workspace. Otherwise, the program
LOAD_KARMA can be employed to load some framework.
The graphical package is saved in directory
.\Sim_class_DATAbn under the same name as the framework,
but with .FIG extension. Here, 'DATAbn' is the name of the
data block under analysis.
Invokes: SHOW_TS
SHOW_TS_VS_MODEL
WAR_ERR
Author: Dan STEFANOIU
Created: April 21, 2009
Revised:
KARMA_model
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File KARMA_MODEL.M
Function: KARMA_MODEL
Synopsis:
[Y_PRED,Sigma,aNAC,aNS,Y_MODEL,U,E,PSE,FW,PsiW,DV,PsiV, ...
SNR,STATE_MODEL,ARMA_MODEL,AR_MODEL] = ...
KARMA_model(Y,NAC,NS,K,ms,mY,EY) ;
Estimates prediction models based on state representation and
ARMA class, for data acquired on one or more channels. The
state model is assigned to the whole data block. On the
contrary, each ARMA model is assigned to a data channel.
ARMA models are independent on each-other. Such a model
includes 3 additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any
(Robinson-Wittacker Method
with threshold validation);
. stochastic - AR, MA or ARMA
(Levinson-Durbin Algorithm,
Wiener-Hopf filter,
Minimum Prediction Error Method).
However, trend and seasonal components can be avoided if the
user wishes so. In this case, the time series is/are only
made stationary, by subtracting the average.
177
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Inputs:
. Y
= data block (IDDATA object); data length is Ny;
the number of channels is ny;
. NAC = block of structural indices (nsi-by-ny matrix);
here, nsi is the number of structural indices;
each column of NAC includes the following structural
indices:
[td ; na ; nc ; nalpha] ;
the trend degree (td) could miss, so that nsi is
either 3 or 4;
. NS = the number of states (scalar);
. K
= duration of prediction horizon support
(K=7, by default); if K=0, no prediction is
performed, only the identification model is built;
. ms = model stability flag (integer or logical;
by default: ms=0 -> no stability check on
identification models; if ms~=0, only stable
identification models are selected);
. mY = data averages (ny-length row vector);
if missing or empty, it will be evaluated from data
block Y.
. EY = data energy (ny-length row vector);
if missing or empty, it will be evaluated from data
block Y.
Outputs:
. Y_PRED
. Sigma
. aNAC
. aNS
. Y_MODEL
. U
. E
. PSE
. FW
. PsiW
. DV
. PsiV
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. SNR
.
.
%
%
%
%
%
%
%
Invokes: DB
EXTRAPOLATE
MKB_FILTER
MIMO_ARMA
PERIODIC_VARIATION
POLY_TREND
WAR_ERR
%
%
%
%
MKB_filter
%
%
%
%
%
%
%
%
%
File MKB_FILTER.M
Function: MKB_FILTER
Synopsis:
[Y_PRED,Lambda,aNS,Y_MODEL,E,PSE,FW,PsiW,DV,PsiV, ...
STATE_MODEL] = ...
MKB_filter(Y,NS,K,U_PRED,alpha) ;
179
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Outputs:
. Y_PRED
. Lambda
.
.
.
.
.
.
.
.
.
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
PSO_best_cluster
%
File PSO_BEST_CLUSTER.M
Function: PSO_BEST_CLUSTER
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
PSO_crossover
%
%
%
%
%
File PSO_CROSSOVER.M
Function: PSO_CROSSOVER
181
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Synopsis:
[POP12,POPx12,v12,vx12] = ...
PSO_crossover(POP1,POPx1,POP2,POPx2,v1,vx1,v2,vx2) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm.
Its task is to perform crossover between 2 populations groups
POP1-POPx1 and POP2-POPx2. The other inputs, v1-vx1 and
v2-vx2, are the corresponding speed values.
Inputs POP1 and POP2 are 3D arrays, where populations
are stored on layers. Each particle is represented by one
column in some layer (population). Inputs POPx1 and POPx2 are
row vectors with the same number of elements as the number
of columns in POP or POP1.
Inputs v1 and v2 are 3D arrays, exactly like POP1 and POP2,
respectively. Each column encodes the speed values of
particles that belong to some population/layer. Inputs vx1
and vx2 are row vectors, exactly like POPx1 and POPx2.
See theory for definition of crossover.
The offsping populations POP12-POPx12 include a double number
of particles and the corresponding speed values are twice
bigger.
Missing or empty input returns empty output.
Invokes: VECTORIZE
WAR_ERR
%
%
%
%
PSO_fitness_PQ
%
%
File PSO_FITNESS_PQ.M
Function: PSO_FITNESS_PQ
%
%
Synopsis: [PQ,APOP,APOPx] =
PSO_fitness_PQ(DATA,POP,POPx,bK,ms,sdy,sdy_plus) ;
%
%
%
%
%
%
%
%
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. POP
.
.
.
PSO_KARMA
%
%
%
%
File PSO_KARMA.M
Function: PSO_KARMA
%
%
Synopsis: [NAC,NS,PQ] =
PSO_KARMA(DATA,d,K,NA,NC,NX,P,ms,M,S,xi,DT) ;
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
PSO_social_variances
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PSO_SOCIAL_VARIANCES.M
Function: PSO_SOCIAL_VARIANCES
Synopsis: [sigma_s,sigma_sx] =
PSO_social_variances(POP,POPx,BP,BPx) ;
This is an auxiliary procedure called by PSO
(Particle Swarm Optimisation) Algorithm.
Its task is to evaluate the social variance of each
population in POP-POPx, with respect to the (best) particle
BP-BPx.
Input POP is a 3D array, where populations are
stored on layers. Each particle is represented by one column
in some layer (population). Input POPx is a complementary
population stored on a row vector. Each particle points to
the number of states (see theory). The length of POPx must
equal the number of columns in POP (i.e. P = the population
size per channel).
Input BP is a matrix with the same number of columns as the
number of layers in POP (ny = number of channels). Each
column encodes the (best) particle that belong to the
corresponding population/layer. Input BPx is a scalar
encoding the best particle in population POPx.
The procedure computes the variance values by computing
the square root of average distance from each particle
to the (best) particle in the same population.
185
%
%
%
%
%
%
%
%
%
%
%
%
%
%
PSO_update_KARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PSO_UPDATE_KARMA.M
Function: PSO_UPDATE_KARMA
Synopsis:
[NACGn,NSGn,pozGn,sigma_s0n,sigma_sx0n,sigma_s1n, ...
sigma_sx1n,sigma_sGn,sigma_sGxn,sigma_sGr,sigma_sGxr, ...
sigma_c1n,sigma_cx1n,sigma_cG2n,sigma_cGx2n,sigma_cGr, ...
sigma_cGxr,ELITEn,ELITExn,vEn,vExn,PQ1n,vPQ1n,F1n, ...
NACn,NSn,pozn,sn,sigma_sEn,sigma_sExn, ...
AELITEn,AELITExn,vAn,vAxn,PQ0n,vPQ0n,F0n] = ...
PSO_update_KARMA(m,GEN,GENx,vG,vGx,PQ,vPQ,F, ...
sigma_s0,sigma_sx0,sigma_s1,sigma_sx1, ...
sigma_c1,sigma_cx1,sigma_cG2,
sigma_cGx2,ELITE,ELITEx,vE,vEx,PQ1, ...
vPQ1,F1,poz,s,AELITE,AELITEx,vA,vAx, ...
PQ0,vPQ0,F0) ;
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Inputs:
. m
. GEN
. GENx
. vG
. vGx
. PQ
. vPQ
. F
. sigma_s0
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. sigma_sx0
%
%
%
%
%
%
%
%
%
%
Outputs:
. NACGn
. NSGn
. pozGn
. sigma_s0n
. sigma_sx0n
. sigma_s1n
=
=
=
=
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. sigma_sx1n
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. vAn
. vAxn
. PQ0n
. vPQ0n
. F0n
189
190
FAST_ML_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File FAST_ML_ODWT_ARMA_SLOW.M
Main program: FAST_ML_ODWT_ARMA
Synopsis: FAST_ML_ODWT_ARMA ;
Refines an existing prediction model of a signal (time
series) based on the Orthogonal Discrete Wavelet Transform
(orthogonal wavelet packets) and ARMA modeling for the
stochastic component. The refinement consists of modifying
the parameter ml (the masking level of wavelet coefficients
in percents (integer from 0 to 100)). (See the function
DWT_MODEL for more details about this parameter.) The
parameter ml is incremented by 1 from a minimum value MLmin
(1, by default) to a maximum value MLmax (100, by default).
If no model exists, the user should first build at least one,
in order to run this program. Use ODWT_ARMA or FAST_ODWT_ARMA
programs in this aim.
Finally, graphics are drawn through QUICK_SHOW_ODWT_ARMA
program.
Invokes: ARMA_MODEL
DB
DWT_MODEL
PREDICTION_QUALITY
SELECTION_INDEX
WAR_ERR
Author: Dan STEFANOIU
Created: June
15, 2009
Revised: August 22, 2009
FAST_ODWT_ARMA
%
%
%
%
%
%
%
%
%
File FAST_ODWT_ARMA.M
Main program: FAST_ODWT_ARMA
Synopsis: FAST_ODWT_ARMA ;
Constructs an adaptive prediction model of a signal (time
series) based on the Orthogonal Discrete Wavelet Transform
191
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
IDA_STAR
PREDICTION_QUALITY
ROUGH_MODEL
V0_PROJECTION
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: June
08, 2009
Revised: August 21, 2009
LOAD_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File LOAD_ODWT_ARMA.M
Main program: LOAD_ODWT_ARMA
Synopsis: LOAD_ODWT_ARMA ;
Loads a framework produced by main program ODWT_ARMA.
The framework is loaded from directory .\Sim_ortho_Yn,
where n is the number of time series. Time series are:
Y1, Y2, Y3, ... The user has the opportunity to select the
framework file (MAT type) from a numbered list, by simply
pointing to the desired file number.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: June 09, 2009
Revised:
ODWT_ARMA
%
%
File ODWT_ARMA.M
Synopsis: ODWT_ARMA ;
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. N
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
QUICK_ML_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File QUICK_ML_ODWT_ARMA.M
Main program: QUICK_ML_ODWT_ARMA
Synopsis: QUICK_ML_ODWT_ARMA ;
Refines an existing prediction model of a signal (time
series) based on the Orthogonal Discrete Wavelet Transform
(orthogonal wavelet packets) and ARMA modeling for the
stochastic component. The refinement consists of modifying
the parameter ml (the masking level of wavelet coefficients
in percents (any number from 0 to 100, not necessarily
integer)). (See the function DWT_MODEL for more details about
this parameter.) The parameter ml should be increased in
successive runs from 0 to the level of which the prediction
quality falls below the value of rough prediction model.
If no model exists, the user should first build at least one,
in order to run this program. Use ODWT_ARMA or FAST_ODWT_ARMA
programs in this aim.
Finally, graphics are drawn through QUICK_SHOW_ODWT_ARMA
program.
Invokes: ARMA_MODEL
DB
DWT_MODEL
PREDICTION_QUALITY
SELECTION_INDEX
WAR_ERR
Author: Dan STEFANOIU
Created: June
22, 2009
Revised: August 21, 2009
QUICK_ODWT_ARMA
%
%
%
%
%
%
%
%
File QUICK_ODWT_ARMA.M
Main program: QUICK_ODWT_ARMA
Synopsis: QUICK_ODWT_ARMA ;
Quick run of ODWT_ARMA and SHOW_ODWT_ARMA.
195
%
%
%
%
%
%
%
%
Invokes: ODWT_ARMA
QUICK_SHOW_ODWT_ARMA
Author: Dan STEFANOIU
Created: June 01, 2009
Revised:
QUICK_SHOW_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File QUICK_SHOW_ODWT_ARMA.M
Main program: QUICK_SHOW_ODWT_ARMA
Synopsis: QUICK_SHOW_ODWT_ARMA ;
Draws all graphics corresponding to main program ODWT_ARMA.
It is assumed that the framework resulted after running
ODWT_ARMA resides within MATLAB workspace.
The graphical package is saved in directory .\Sim_ortho_Yn
under the same name as the framework, but with .FIG
extension. Here, 'Yn' is the name of the time series under
analysis.
Invokes: SHOW_PQ
SHOW_SCALOGRAM
SHOW_TREE
SHOW_TS
SHOW_TS_VS_MODEL
SHOW_WAVELETS
WAR_ERR
Author: Dan STEFANOIU
Created: June
01, 2009
Revised: August 21, 2009
SHOW_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
File SHOW_ODWT_ARMA.M
Main program: SHOW_ODWT_ARMA
Synopsis: SHOW_ODWT_ARMA ;
Draws or loads all graphics corresponding to frameworks
produced by main program ODWT_ARMA. The user can choose
whether the graphical package has to be loaded or (re-)drawn.
The frameworks/graphics are loaded from directory
.\Sim_ortho_Yn, where n is the number of time series.
196
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
Time series are: Y1, Y2, Y3, ... The user has the opportunity
to select the framework file (MAT type) from a numbered list,
by simply pointing to the desired file number.
%
%
%
%
%
%
%
%
%
%
Invokes: SHOW_PQ
SHOW_SCALOGRAM
SHOW_TREE
SHOW_TS
SHOW_TS_VS_MODEL
SHOW_WAVELETS
WAR_ERR
%
%
%
%
SLOW_ML_ODWT_ARMA
%
%
File SLOW_ML_ODWT_ARMA_SLOW.M
Synopsis: SLOW_ML_ODWT_ARMA ;
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
SLOW_ODWT_ARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File SLOW_ODWT_ARMA.M
Main program: SLOW_ODWT_ARMA
Synopsis: SLOW_ODWT_ARMA ;
Constructs an adaptive prediction model of a signal (time
series) based on the Orthogonal Discrete Wavelet Transform
(orthogonal wavelet packets) and ARMA modeling for the
stochastic component.
At the entry, the user is invited to set the following
parameters:
. n
= the number of file including the signal (time
series); any signal file name is 'Yn.M', where n is
a positive integer;
. K
= duration of prediction horizon support
(K=7, by default);
. Nmin = minimum value of wavelets support parameter
(positive integer, 2 by default);
. Nmax = maximum value of wavelets support parameter
(positive integer, 25 by default);
N varies from Nmin to Nmax; (orthogonal case:
Supp(phi)=[0,2N-1], Supp(psi)=[1-N,N]);
. Lmin = minimum value of resolution index for the father
wavelet (non-negative integer, 0 by default);
. Lmax = maximum value of resolution index for the father
wavelet (non-negative integer, 6 by default);
l varies from Lmin to Lmax; (l=0 in case of father
wavelet sampled at integer instants;
l=1 for half integer instants, l=2 for quarter
integer instants, etc.);
. ml
= masking level of wavelet coefficients in percents
(integer from 0 to 100);
(see function DWT_MODEL for more details on this
parameter);
. NA
= maximum order of AR model
(non negative integer, 25 by default);
if NA=0, the AR modeling is skipped;
. NC
= maximum order of MA model
(non negative integer, 25 by default);
if NC=0, the AR modeling is skipped;
if both NA and NC are null, ARMA modeling is
cancelled and only the deterministic model is
employed to predict (extrapolate) the data.
To get the most suitable couple (na,nc) for prediction,
the prediction quality (PQ) index is used.
(See the program below for its definition).
Thus, a PQ surface is drawn over na=0:NA and nc=0:NC and
198
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
ARMA_model
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File ARMA_MODEL.M
Function: ARMA_MODEL
Synopsis: [ya,sigma,e,M] = ARMA_model(v,K,na,nc) ;
Builds an autoregressive stochastic model of colored noise
v (vector) and performs prediction for K samples ahead.
The model is either ARMA[na,nc] (if nc>1), or AR[na]
(if nc=0 or nc=[] or nc is missing). By default, na=10.
The output stochastic signal is ya (vector), while sigma
encodes the standard deviation of prediction error
(a K-length vector). By default, K=5. The third output
is the estimated prediction error (or white noise) e.
The last output, M, is the prediction model (IDMODEL object).
199
%
%
%
%
%
%
%
%
%
%
%
%
C_n_k
%
File C_N_K.M
Function: C_N_K
%
%
%
%
%
%
Synopsis: c = C_n_k(n,k) ;
Better version of MATLAB function NCHOOSEK
(which fails for N>27). Returns the combinatorial
number of k subsets chosen from a set of n elements.
Shall k<0 or k>n, null value is returned.
%
%
%
%
cmp_vec
%
%
File CMP_VEC.M
Function: CMP_VEC
%
%
%
%
%
%
%
%
%
%
%
%
%
%
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Daub
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File DAUB.M
Function: DAUB
Synopsis: [c,d] = Daub(N) ;
Returns the DE and DE-orthogonal 2N-length coefficients
in column vectors c and d, respectively. Coefficients
are computed by means of Daubechies' Method.
Author:
Dan STEFANOIU
Created: January
31, 2007
Revised: September 21, 2007
draw_circle
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File DRAW_CIRCLE.M
Function: DRAW_CIRCLE
Synopsis: H = draw_circle(r,p,c) ;
Draws a circle of radius r (scalar) centered in Cartesian
position p (of the form [x y]) on current figure. By default,
r = 1 and p = [0 0]. The circle can be filled with the color
specified in c (like in function PLOT). If c is missing or
empty, the circle is filled with figure background color.
The user should take care about the figure handling.
This function does not care about figure handling.
Returns H - the figure handle.
Invokes: VECTORIZE
Author: Dan STEFANOIU
Created: May
25, 2009
Updated: August 21, 2009
draw_square
%
%
File DRAW_SQUARE.M
Function: DRAW_SQUARE
%
%
%
%
Synopsis: H = draw_square(l,p,alpha,c) ;
Draws a square of side length l (scalar) centered in
Cartesian position p (of the form [x y]) and counter201
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
dwt_analysis
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File DWT_ANALYSIS.M
Function: DWT_ANALYSIS
Synopsis:
[C,order,supp_C] =
dwt_analysis(y,supp_y,h,supp_h,g,supp_g,L,node) ;
Implementation of Discrete Wavelet Transform (wavelet
packets) on analysis branch by means of an auto-recursive
procedure.
Input arguments are as follows:
. y
= input signal (line/column vector);
. supp_y = input signal support: [Nymin ; Nymax]
(column vector);
. h
= impulse response of low-pass filter within the
analysis branch of binary tree;
. supp_h = support of h: [Nhmin ; Nhmax] (column vector);
. g
= impulse response of high-pass filter within the
analysis branch of binary tree;
. supp_g = support of g: [Ngmin ; Ngmax] (column vector);
. L
= 2-by-* matrix of tree final nodes (leaves);
each column encodes the depth and the azimuth of
a leaf;
. node
= starting node of binary tree from which the
analysis should be started (column vector); by
default, node = [0 ; 0] .
The following output arguments can be returned:
. C
= wavelet coefficients matrix; coefficients of each
leaf are stored on column vectors inside the
matrix;
202
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. order
dwt_model
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File DWT_MODEL.M
Function: DWT_MODEL
Synopsis:
[yd,CR] =
dwt_model(phi,supp_phi,h,supp_h,g,supp_g,L,C,supp_c00, ...
supp_yd,FC,ml) ;
Constructs the deterministic model of a signal (time series)
based on the Discrete Wavelet Transform (wavelet packets).
Inputs arguments are as follows:
. phi
= father wavelet (line/column vector);
. supp_phi = support of father wavelet: [Nphimin ; Nphimax]
(column vector);
. h
= impulse response of low-pass filter within the
analysis branch of binary tree;
. supp_h
= support of h: [Nhmin ; Nhmax] (column vector);
. g
= impulse response of high-pass filter within the
analysis branch of binary tree;
. supp_g
= support of g: [Ngmin ; Ngmax] (column vector);
. L
= 2-by-* matrix of tree final nodes (leaves);
each column encodes the depth and the azimuth
of a leaf;
. C
= matrix of wavelet coefficients stored on
columns, corresponding to each column of L;
. supp_c00 = support of c00 wavelet coefficients resulted
after projecting the signal (time series) on
203
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
. supp_yd
. FC
. ml
dwt_model
%
%
%
%
%
%
%
%
%
%
File ENTROPY.M
Function: ENTROPY
Call:
H = entropy(y) ;
%
%
Invokes: VECTORIZE
WAR_ERR
%
%
%
%
expand_node
%
%
File EXPAND_NODE.M
Function: EXPAND_NODE
204
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Call: [ch,cg,supp_ch,supp_cg] =
expand_node(y,supp_y,h,supp_h,g,supp_g) ;
Expand a binary tree node corresponding to a filter bank
wavelet type (filtering+decimacion).
Inputs: y
= input signal (line/column vector);
supp_y = input signal support [Nymin ; Nymax]
(column vector);
h
= impulse response of low-pass filter within
the analysis branch of binary tree;
supp_h = support of h: [Nhmin ; Nhmax]
(column vector);
g
= impulse response of high-pass filter within
the analysis branch of binary tree;
supp_g = support of g: [Ngmin ; Ngmax]
(column vector);
Outputs: ch
= low-pass coefficients (column vector);
cg
= high-pass coefficients;
supp_ch = support of low-pass coefficients;
column vector: [Ncmin ; Ncmax];
supp_cg = support of high-pass coefficients;
column vector: [Ndmin ; Ndmax].
Missing or empty essential inputs (y,h,g) returns empty
outputs.
Invokes: VECTORIZE
WAR_ERR
Authors: Janetta CULITA & Dan STEFANOIU
Created: June 14, 2009
Updated: July 24, 2009
IDA_star
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File IDA_STAR.M
Function: IDA_STAR
Call: [L,C,supp_C,nemn,et] =
IDA_star(y,supp_y,h,supp_h,g,supp_g,M,EDT) ;
Implements IDA* searching procedure within a meta-tree of
binary trees (see the theory). The cost function is the total
entropy of path from root to the current meta-node, which has
to be minimized.
Inputs: y
= input signal (line/column vector);
supp_y = input signal support: [Nymin ; Nymax]
(column vector);
205
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Invokes: EXPAND_NODE
VECTORIZE
WAR_ERR
%
%
%
%
phi_Rham
%
%
File PHI_RHAM.M
Function: PHI_RHAM
206
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
psi_Rham
%
%
File PSI_RHAM.M
Function: PSI_RHAM
%
%
%
%
%
Returns the
. d
=
. phi
=
. t_phi =
%
%
%
%
%
%
%
Invokes: WAR_ERR
%
%
%
rough_model
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File ROUGH_MODEL.M
Function: ROUGH_MODEL
Synopsis:
[yM,supp_yM,sigma,yT,yP,e,pc,P,PQ,na,AR] =
rough_model(y,supp_y,K,M,MDT,NA) ;
Evaluates a rough (classical) prediction model of a time
series, with the help of a polynomial trend (usually of 3-rd
degree) followed by a seasonal model (if detected) and
an AR stochastic model.
Inputs: y
= input signal (line/column vector);
supp_y = input signal support: [Nymin ; Nymax]
(column vector);
K
= length of prediction horizon
(positive integer, 7 by default).
M
= degree of polynomial trend
(by default, M=3);
MDT
= maximum detection threshold for periodic
variation (scalar, 25% by default)
(see function <PERIODIC_VARIATION>);
NA
= maximum order of AR model
(by default, NA=100).
Outputs: yM
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
Invokes: ARMA_MODEL
PERIODIC_VARIATION
POLY_TREND
PREDICTION_QUALITY
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: May
20, 2009
Revised: August 21, 2009
selection_index
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File SELECTION_INDEX.M
Function: SELECTION_INDEX
Synopsis: SI = selection_index(SNR,SNRrm,PQ,PQrm) ;
Evaluates the selection index SI of a data prediction model,
comparing to a rough model. SI is expressed in percents.
If SNR>SNRM and PQ>PQrm, then SI>0. Otherwise, S<0.
Input arguments are as follows:
. SNR
= signal-to-noise ratio of assessed model
(scalar, in dB);
. SNRrm = signal-to-noise ratio of rough model
(scalar, in dB);
. PQ
= estimated prediction quality of assessed model
(scalar, in percents);
. PQrm = estimated prediction quality of rough model
(scalar, in percents).
All inputs are essential and cannot miss or be empty
(otherwise empty SI is returned).
Invokes: VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: August 09, 2009
Revised: August 22, 2009
show_PQ
%
%
%
%
%
%
%
File SHOW_PQ.M
Function: SHOW_PQ
Synopsis: H = show_PQ(PQ,PQmax,na,nc,FIG,FIG_name) ;
209
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
show_scalogram
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File SHOW_SCALOGRAM.M
Function: SHOW_SCALOGRAM
Synopsis: H = show_scalogram(L,C,supp_C,tit,FIG,FIG_name) ;
Draws the scalogram of a signal (time series) corresponding
to a Wavelet Transform.
The input arguments are as follows:
. L
= 2-by-nL matrix pointing to all nL binary tree
leaves; the first line stores the leaves depth
m, while the second line stores their
corresponding azimuth p;
. C
= nC-by-nL matrix with wavelet coefficients
corresponding to the nL leaves; coefficients of
each leaf are stored on columns; shorter
sequences are zero padded up to nC samples;
however, at least one sequence of coefficients
is nC-length and does not need zero-padding;
. supp_C
= 2-ny-NL matrix including supports of wavelet
coefficients; each column is of the form:
210
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Invokes: DB
FIG_LOOK
MAXIMIZE
TREE2FREQUENCY
VECTORIZE
WAR_ERR
%
%
%
%
show_tree
%
File SHOW_TREE.M
Function: SHOW_TREE
Synopsis: H = show_tree(L,nemn,tit,FIG,FIG_name) ;
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Invokes: DRAW_CIRCLE
DRAW_SQUARE
FIG_LOOK
MAXIMIZE
VECTORIZE
WAR_ERR
%
%
%
show_wavelets
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File SHOW_WAVELETS.M
Function: SHOW_WAVELETS
Synopsis:
H =
show_wavelets(N,c,d,l,phi,supp_phi,psi,supp_psi, ...
FIG,FIG_name) ;
Displays the father and mother Daubechies wavelets at the
resolution selected to build the time series model. The
continuous-like wavelets are also shown.
Input arguments are as follows:
. N
= support parameter (scalar, integer);
. c
= coefficients of DE
(column vector, see functions DAUB or DAUB2);
. d
= coefficients of orthogonal DE
(column vector, see functions DAUB or DAUB2);
. l
= resolution exponent (scalar, integer);
the sampling period is 1/2^l;
. phi
= father wavelet at the model resolution (column
vector, see function PHI_RHAM);
. supp_phi = support of father wavelet: [Nphimin ; Nphimax];
. psi
= mother wavelet at the model resolution (column
vector, see function PHI_RHAM);
. supp_psi = support of mother wavelet: [Nphimin ; Nphimax];
. FIG
= figure number (scalar, integer);
. FIG_name = figure name (string of chars).
Inputs N, c, d, ..., supp_psi are essential and cannot miss
or be empty. The other inputs are optional and can receive
default values.
Returns the handle to the current figure, H
(or empty if something is wrong).
Invokes: FIG_LOOK
MAXIMIZE
PHI_RHAM
PSI_RHAM
SCALING
VECTORIZE
WAR_ERR
Author: Dan STEFANOIU
Created: July 26, 2009
Revised: July 27, 2009
212
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
tree2frequency
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File TREE2FREQUENCY.M
Function: TREE2FREQUENCY
Synopsis: F = tree2frequency(L) ;
Converts the leaves matrix L into the frequency matrix F.
See function IDA_STAR to set the L matrix format
(2 lines and nL columns). Every column encodes the depth m
and the azimuth p of a leaf. The matrix F has the same size.
Every column encodes the central frequency and the bandwidth
of corresponding leaf, normalized to [0,0.5].
The central frequency is computed as follows:
f = (2*p+1)/2^(m+2) ,
whereas the bandwidth is simply equal to:
df = 1/2^(m+1) .
Returns an empty matrix F if L is missing, empty or badly
formatted.
Invokes: WAR_ERR
Author: Dan STEFANOIU
Created: May
30, 2009
Revised: August 22, 2009
tree2frequency
%
%
%
%
%
%
%
%
File V0_PROJECTION.M
Function: V0_PROJECTION
Synopsis:
[c00,supp_c00,FC,y00,supp_y00,phi,supp_phi,psi,supp_psi] =
V0_projection(y,supp_y,c,d,l) ;
%
%
%
%
%
%
%
%
Inputs: y
= input signal (line/column vector);
supp_y = input signal support: [Nymin ; Nymax];
c
= coefficients of DE (line/column vector); if
length(c) is even, the orthogonal case is
considered, otherwise the biorthogonal
case is considered;
d
= coefficients of orthogonal DE
(line/column vector);
213
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Outputs: c00
supp_c00
FC
y00
supp_y00
phi
supp_phi
psi
supp_psi
214
eKo-Forecast
F.1. Programe principale
FORECASTING
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
PARMA
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File PARMA.M
Main program: PARMA
Synopsis: PARMA ;
Constructs classical prediction models of signal(s) (time
series) based on ARMA modeling of stochastic component.
The overall model has 3 additive compounds:
. trend - polynomial (Least Squares Method);
. seasonal - if any
(Robinson-Wittacker Method
with threshold validation);
. stochastic - AR, MA or ARMA
(Levinson-Durbin Algorithm,
Wiener-Hopf filter,
Minimum Prediction Error Method).
215
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
Invokes: DB
MULTI_PQ
PARMA_MODEL
PSO_ARMA
SHOW_PARMA
WAR_ERR
%
%
%
%
axes1_CreateFcn
%
%
File AXES1_CREATEFCN.M
Function: AXES1_CREATEFCN
Synopsis: axes1_CreateFcn(hObject,eventdata,handles) ;
%
%
%
%
%
%
%
%
Inputs:
. hObject
= handle to axes1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
%
%
%
%
Browse_Callback
%
%
File BROWSE_CALLBACK.M
Function: BROWSE_CALLBACK
Synopsis: Browse_Callback(hObject,eventdata,handles)
%
%
%
%
%
%
%
%
%
Inputs:
. hObject
= handle to Browse (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
217
checkbox1_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File CHECKBOX1_CALLBACK.M
Function: CHECKBOX1_CALLBACK.M
Synopsis: checkbox1_Callback(hObject,eventdata,handles) ;
Executes on button press in checkbox1.
Inputs:
. hObject
= handle to checkbox1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
checkbox2_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File CHECKBOX2_CALLBACK.M
Function: CHECKBOX2_CALLBACK.M
Synopsis: checkbox2_Callback(hObject,eventdata,handles) ;
Executes on button press in checkbox2.
Inputs:
. hObject
= handle to checkbox2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
Clear_Callback
%
%
%
%
File CLEAR_CALLBACK.M
Function: CLEAR_CALLBACK
Synopsis: Clear_Callback(hObject,eventdata,handles) ;
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
Inputs:
. hObject
= handle to Clear (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
%
%
%
%
Fisier_MultiDim_Callback
%
%
File FISIER_MULTIDIM_CALLBACK.M
Function: FISIER_MULTIDIM_CALLBACK
%
%
Synopsis:
Fisier_MultiDim_Callback(hObject,eventdata,handles) ;
%
%
%
%
%
%
Inputs:
. hObject
= handle to Fisier_MultiDim (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
%
%
%
%
Fisier_MultiDim_CreateFcn
%
File FISIER_MULTIDIM_CREATEFCN.M
%
%
Synopsis:
Fisier_MultiDim_CreateFcn(hObject,eventdata,handles) ;
%
%
%
%
%
%
%
%
Inputs:
. hObject
= handle to Fisier_MultiDim (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
%
%
%
Fisier_UniDim_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File FISIER_UNIDIM_CALLBACK.M
Function: FISIER_UNIDIM_CALLBACK
Synopsis: Fisier_UniDim_Callback(hObject,eventdata,handles) ;
Executes on button press in Fisier_UniDim.
Inputs:
. hObject
= handle to Fisier_UniDim (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
Fisier_UniDim_CreateFcn
%
%
%
%
%
%
%
%
%
%
File FISIER_UNIDIM_CREATEFCN.M
Function: FISIER_UNIDIM_CREATEFCN
Synopsis:
Fisier_UniDim_CreateFcn(hObject,eventdata,handles) ;
Executes during object creation, after setting all
properties.
%
%
%
%
%
%
Inputs:
. hObject
= handle to Fisier_UniDim (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
%
%
%
%
Forecasting_OpeningFcn
%
File FORECASTING_OPENINGFCN.M
Function: FORECASTING_OPENINGFCN
%
%
Synopsis:
Forecasting_OpeningFcn(hObject,eventdata,handles,varargin) ;
220
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Forecasting_OutputFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File FORECASTING_OUTPUTFCN.M
Function: FORECASTING_OUTPUTFCN
Synopsis:
varargout = Forecasting_OutputFcn(hObject,eventdata, ...
handles) ;
Executes on selection change in Forecasting.
Inputs:
. varargout = cell array for returning output args
(see VARARGOUT);
. hObject
= handle to figure;
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
full_Callback
%
%
%
%
%
%
File FULL_CALLBACK.M
Function: FULL_CALLBACK
Synopsis: full_Callback(hObject,eventdata,handles) ;
%
%
Inputs:
. hObject
%
%
%
%
%
%
%
%
%
full_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File FULL_CREATEFCN.M
Function: FULL_CREATEFCN
Synopsis: full_CreateFcn(hObject,eventdata,handles) ;
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to full (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
fullall_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File FULLALL_CALLBACK.M
Function: FULLALL_CALLBACK
Synopsis: fullall_Callback(hObject,eventdata,handles) ;
Executes on button press in fullall.
Inputs:
. hObject
= handle to fullall (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
222
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
listbox6_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File LISTBOX6_CALLBACK.M
Function: LISTBOX6_CALLBACK
Synopsis: listbox6_Callback(hObject,eventdata,handles) ;
Executes on button press in listbox6.
Inputs:
. hObject
= handle to listbox6 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
listbox6_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File LISTBOX6_CREATEFCN.M
Function: LISTBOX6_CREATEFCN
Synopsis: listbox6_CreateFcn(hObject,eventdata,handles) ;
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to listbox6 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
Mesaje_CreateFcn
%
%
%
%
%
%
File MESAJE_CREATEFCN.M
Function: MESAJE_CREATEFCN
Synopsis: Mesaje_CreateFcn(hObject,eventdata,handles) ;
223
%
%
%
%
%
%
%
%
Inputs:
. hObject
= handle to Mesaje (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
%
%
%
popmenu1_Callback
%
File POPMENU1_CALLBACK.M
Function: POPMENU1_CALLBACK
Synopsis: popmenu1_Callback(hObject,eventdata,handles) ;
%
%
%
%
%
%
Inputs:
. hObject
= handle to popmenu1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
%
%
%
popmenu1_CreateFcn
%
File POPMENU1_CREATEFCN.M
Function: POPMENU1_CREATEFCN
Synopsis: popmenu1_CreateFcn(hObject,eventdata,handles)
%
%
%
%
%
%
%
%
%
%
%
%
Inputs:
. hObject
= handle to popmenu1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
224
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
popmenu2_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File POPMENU2_CALLBACK.M
Function: POPMENU2_CALLBACK
Synopsis: popmenu2_Callback(hObject,eventdata,handles)
Executes on selection change in popmenu2.
Inputs:
. hObject
= handle to popmenu2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
popmenu2_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File POPMENU2_CREATEFCN.M
Function: POPMENU2_CREATEFCN.M
Synopsis: popmenu2_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to popmenu2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
pushbutton2_Callback
%
%
%
%
%
%
File PUSHBUTTON2_CALLBACK.M
Function: PUSHBUTTON2_CALLBACK
Synopsis: pushbutton2_Callback(hObject,eventdata,handles) ;
225
%
%
%
%
%
%
%
%
%
%
%
%
%
START1_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File START1_CALLBACK.M
Function: START1_CALLBACK
Synopsis: START1_Callback(hObject,eventdata,handles)
Executes on button press in START1.
Inputs:
. hObject
= handle to START1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Invokes: PARMA
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
START1_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File START1_CREATEFCN.M
Function: START1_CREATEFCN
Synopsis: START1_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to START1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
226
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
. handles
var1_1_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File VAR1_1_CALLBACK.M
Function: VAR1_1_CALLBACK
Synopsis: var1_1_Callback(hObject,eventdata,handles)
Executes on selection change in var1_1.
Inputs:
. hObject
= handle to var1_1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
var1_1_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File VAR1_1_CREATEFCN.M
Function: VAR1_1_CREATEFCN.M
Synopsis: var1_1_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to var1_1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
227
var1_2_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File VAR1_2_CALLBACK.M
Function: VAR1_2_CALLBACK
Synopsis: var1_2_Callback(hObject,eventdata,handles)
Executes on selection change in var1_2.
Inputs:
. hObject
= handle to var1_2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
var1_2_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File VAR1_2_CREATEFCN.M
Function: VAR1_2_CREATEFCN.M
Synopsis: var1_2_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to var1_2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
var1_3_Callback
%
%
%
%
%
%
File VAR1_3_CALLBACK.M
Function: VAR1_3_CALLBACK
Synopsis: var1_3_Callback(hObject,eventdata,handles)
228
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
Inputs:
. hObject
= handle to var1_3 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
%
%
%
%
var1_3_CreateFcn
%
%
File VAR1_3_CREATEFCN.M
Function: VAR1_3_CREATEFCN.M
Synopsis: var1_3_CreateFcn(hObject,eventdata,handles)
%
%
%
%
%
%
%
%
Inputs:
. hObject
= handle to var1_3 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
%
%
%
%
var1_4_Callback
%
%
File VAR1_4_CALLBACK.M
Function: VAR1_4_CALLBACK
Synopsis: var1_4_Callback(hObject,eventdata,handles)
%
%
%
%
%
%
Inputs:
. hObject
= handle to var1_4 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
%
%
%
var1_4_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File VAR1_4_CREATEFCN.M
Function: VAR1_4_CREATEFCN.M
Synopsis: var1_4_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to var1_4 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
var1_5_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File VAR1_5_CALLBACK.M
Function: VAR1_5_CALLBACK
Synopsis: var1_5_Callback(hObject,eventdata,handles)
Executes on selection change in var1_5.
Inputs:
. hObject
= handle to var1_5 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
var1_5_CreateFcn
%
%
%
%
%
%
File VAR1_5_CREATEFCN.M
Function: VAR1_5_CREATEFCN.M
Synopsis: var1_5_CreateFcn(hObject,eventdata,handles)
230
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
Inputs:
. hObject
= handle to var1_5 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
%
%
%
var2_1_Callback
%
File VAR2_1_CALLBACK.M
Function: VAR2_1_CALLBACK
Synopsis: var2_1_Callback(hObject,eventdata,handles)
%
%
%
%
%
%
Inputs:
. hObject
= handle to var2_1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
%
%
%
var2_1_CreateFcn
%
File VAR2_1_CREATEFCN.M
Function: VAR2_1_CREATEFCN.M
Synopsis: var2_1_CreateFcn(hObject,eventdata,handles)
%
%
%
%
%
%
%
%
%
%
%
%
Inputs:
. hObject
= handle to var2_1 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
231
var2_2_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File VAR2_2_CALLBACK.M
Function: VAR2_2_CALLBACK
Synopsis: var2_2_Callback(hObject,eventdata,handles)
Executes on selection change in var2_2.
Inputs:
. hObject
= handle to var2_2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
var2_2_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File VAR2_2_CREATEFCN.M
Function: VAR2_2_CREATEFCN.M
Synopsis: var2_2_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to var2_2 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
var2_3_Callback
%
%
%
%
%
%
File VAR2_3_CALLBACK.M
Function: VAR2_3_CALLBACK
Synopsis: var2_3_Callback(hObject,eventdata,handles)
232
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
Inputs:
. hObject
= handle to var2_3 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
%
%
%
%
var2_3_CreateFcn
%
%
File VAR2_3_CREATEFCN.M
%
%
%
Function: VAR2_3_CREATEFCN.M
Synopsis: var2_3_CreateFcn(hObject,eventdata,handles)
%
%
%
%
%
%
%
%
Inputs:
. hObject
= handle to var2_3 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
%
%
%
%
var2_4_Callback
%
File VAR2_4_CALLBACK.M
Function: VAR2_4_CALLBACK
Synopsis: var2_4_Callback(hObject,eventdata,handles)
%
%
%
%
%
%
Inputs:
. hObject
= handle to var2_4 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
%
%
%
var2_4_CreateFcn
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File VAR2_4_CREATEFCN.M
Function: VAR2_4_CREATEFCN.M
Synopsis: var2_4_CreateFcn(hObject,eventdata,handles)
Executes during object creation, after setting all
properties.
Inputs:
. hObject
= handle to var2_4 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= empty - handles not created until after all
CreateFcns called.
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
var2_5_Callback
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
File VAR1_5_CALLBACK.M
Function: VAR2_5_CALLBACK
Synopsis: var2_5_Callback(hObject,eventdata,handles)
Executes on selection change in var2_5.
Inputs:
. hObject
= handle to var2_5 (see GCBO);
. eventdata = reserved - to be defined in a future version
of MATLAB;
. handles
= structure with handles and user data
(see GUIDATA).
Authors: Aurelia PURCAREA, Janetta CULITA, Dan STEFANOIU
Created: May 15, 2009
Revised:
var2_5_CreateFcn
%
%
%
%
%
%
File VAR2_5_CREATEFCN.M
Function: VAR2_5_CREATEFCN.M
Synopsis: var2_5_CreateFcn(hObject,eventdata,handles)
234
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
%
%
%
%
%
%
%
%
%
%
%
%
%
%
235
236
237
238
KEYWORDS
Prediction, orthogonal wavelet packets, prediction quality.
ABSTRACT
FORWAVER is a simulator that provides high accuracy time
series forecasting with the help of wavelet-based models.
Within this paper, the models rely on signal bases consisting
of Daubechies orthogonal wavelet packets and ARMA
modeling. Such a basis is adaptively selected, depending on
data, while the ARMA model is obtained by maximizing a
cost function, namely the prediction quality. Simulation on
real time series have proven that, when comparing to the
classical time series model (built by adding the deterministic
trend, the seasonal component and the stochastic autoregressive component) the wavelet-based model is more
accurate and less subjective.
1. INTRODUCTION
Prediction of natural phenomena (seismic, climatic, celestial,
etc.) is nowadays of great importance, because of unexpected
and rapid changes they might exhibit. Many engineering
processes also require quality forecasting in order to be
modeled, simulated, automatically controlled, etc. Some of
such phenomena or processes reveal their behavior through
finite length data strings { y[ n]}n1, N referred to as time series
(ts). Although the governing dynamics of such a ts is
unknown, the entity providing the data can be associated to a
non stationary model (i.e. with variable frequency contents).
yr y
vr y
yWr y
D
U[ 0 ] [ g ]
377
c0,0,n = y , 0,0,n = y[ n] ( k n ) .
(2)
( m , p )M P nN m , p
cm , p , n m , p , n ( t ) , t R ,
time-shifted versions of m, p ,0 .
The structure of filter bank can adaptively be set, by
minimization of wavelet coefficients entropy. By definition,
the entropy of a discrete time signal x is:
| x[ n] |
| x[ n] |
,
log 2
E
x
E ( x)
(
)
nZ
H ( x ) =
(4)
(2,2)
0
(0,0)
high
frequency
12
(3,5)
5
(3,4)
11
24
(4,9)
23
(4,8)
22
(4,7)
10
(3,3)
4
(2,1)
21
(3,2)
(4,6)
9
(1,0)
8
1
(3,1)
16
(2,0)
3
(4,1)
(3,0)
7
15
(4,0)
low
middle frequency
(1,1)
6
(2,3)
Spectrum
15 16
21 22 23 24
12
0 2-4
/4
/2
3/4
(7)
(3)
(6)
nZ
(5)
k =1
frequency
tree branches lie mirrored versions of QMF filters h (lowpass) and g (high-pass), followed by decimators. Wavelet
coefficients are provided by the tree leaves, after entering the
first projection coefficients (on time-shifted father wavelets):
378
2k = 2 02 + 12 +
[1 2]
+ 2k , k 1, K .
(11)
[1 5 6]
y[ N + k ] =
( m , p )M P nN m , p
cm , p , n m , p , n ( N + k ) +
(12)
+ yV [ N + k ], k 1, K .
[7 8 4 2]
[3 9 10 2]
[3 4 5 6]
[1 11 12 6]
[1 5 13 14]
I k = [ y[ N + k ] k , y[ N + k ] + k ] , k 1, K . (13)
And yet, the removed information has not been lost, but just
transferred to the colored noise v y yW . This noise is
subsequently identified to an ARMA model, by using the
Minimum Prediction Error Method [Sderstrm, 1989],
[Stefanoiu, 2005]. More specifically, the colored noise is
supposed to verify the following differences equation:
v[ k ] + a1v[ k 1] + a2 v[ k 2] +
+ ana v[ k na ] =
= e[ k ] + c1e[ k 1] + c2 e[ k 2] +
+ cnc e[ k nc ],
k N , (8)
(9)
pN
+ cnc z nc
= p z p ,
+ a na z na pN
{ }
k =1
+ c1e[ n 1] + + cnc e[ n nc ]
,
e[ n] = yV [ n] + 1 yV [ n 1] + + n yV [ n n]
(10)
379
380
REFERENCES
ACKNOWLEDGMENTS
381
382
The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
x[ k + 1] = A k x[ k ] + Bxk u[ k ] + Fk w[ k ]
, k N ,
y
y[ k ] = Ck x[ k ] + B k u[ k ] + D k v[ k ]
101
(1)
The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
(with known notations), is identified via Minimum Prediction
where:
A k R nxnx , Bxk R nxnu , B ky R nynu , Ck R nynx , Error Method (MPEM) (Sderstrm and Stoica, 1989). After
D R ny ny and F R nxnx are matrices including all identification, the estimated polynomials A j and C j (for
k
( )
(2)
( )
( )
A j q 1 y j C j q 1 e j ,
( )
q 1 y + 1 C q 1 e ,
v j A
j
j
j
(3)
(4)
( )
( )
( )
A q 1 y B q 1 v + C q 1 e ,
(5)
( )
( )
( ) ( )
( )
( ) ( )
H q 1 = A 1 q 1 B q 1 & G q 1 = A 1 q 1 C q 1 , (6)
( )
( )
102
The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
reason the third conversion technique introduced in
Y V
(11)
(vanOverschee, 1996) is often preferred, since it leads to the
= + ,
I
W
N
N
minimum state representation.
N
i
i
i
Y
V
4. ADAPTED KALMAN FILTER (PREDICTOR)
with natural notations. Whenever the noise V is not
The filter is aiming to predict the states of model (1), by
using a numerical procedure that relies on the recursive correlated to the virtual noise W , the covariance matrix of
i , includes two diagonal blocks only:
Markov estimator (Stefanoiu, 2005). Hereafter, the Markov extended noise V
estimator and the filter equations are described.
The main result of Gauss-Markov Theorem (GMT) (Placket,
1950) can be implemented through a recursive procedure.
One starts from the canonic form of linear regression
associated to an identification model (like (3) or (5)):
Y = + V , E{VVT } = > 0 ,
(7)
= T 1
T 1Y
(8)
P 1 = E ( )( ) = T 1 .
(9)
),
= + (
(10)
i = E {V
i V
i T } = 0 .
0 P
(12)
.
(13)
Two interesting terms are outlined in (13). The first one is the
prediction error R N , based on previous estimation .
The second one is the sensitivity gain R n N , based on
previous accuracy P 1 . Supplementary manipulations can
lead to an equivalent expression of the gain, which is more
suitable for numerical evaluations (only one matrix has to be
inverted instead of 4):
T ( + P
T ) 1 .
= P
(14)
(15)
103
The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
k N .
(20)
x[k ] and newly measured data. In order to reach for this
goal, Markov estimator has to be employed as main tool.
Obviously, the procedure (20) can be implemented only after
The main variables of Markov estimator are identified as
estimating the mixed covariance matrices of noises,
follows from the last equation of model (1): the state vector
D k v [ k ]DTk and Fk w [ k ]FkT at any instant k N . This
x[k ] is and the output matrix Ck is . Consequently,
operation involves 2 computation stages. At the first step, the
x[k ] is , while x[k + 1] stands for . The covariance mixed exogenous noise is estimated with the help of the
matrix from (9) is defined as follows:
second equation of (1).
T
P k = E {( x [k ] x[k ])( x [k ] x[k ]) } , k N .
def
(16)
y
x [ k ] = x [ k ] + k ( y[ k ] Ck x [ k ] Bk u[ k ])
(18)
P k +1 = A k P k ATk + Fk w [ k ]FkT , k N ,
(19)
(21)
1 k
T
T
D n v [ n]v [ n]D n =
k + 1 n =0
1
=
( kDk 1 v [ k 1]DTk 1 + Dk v [ k ]v T [ k ]DTk ) .
k +1
(22)
(17)
x[k + 1] = A k x [k ] + B k u[k ] , k N .
D n v [ n] = [ n] = y[ n] Cn x [ n] Bny u[ n] , n 0, k .
(23)
1 k
Fn w [n]w T [n]FnT =
k + 1 n =0
1
( kFk 1 w [k 1]FkT1 + Ak k Dk v [k ]v T [k ]DTk Tk ATk ) .
k +1
(25)
= P k C Tk ( D k v [ k ]D Tk + C k P k C Tk )
k
x [ k + 1] = A k x [ k ] + B xk u[ k ] + A k k ( y[ k ] C k x [ k ] B ky u[ k ] ) ,
P k +1
= Fk w [ k ]FkT + A k ( P k k C k P k ) A Tk
2. For k 0 :
2.1. Estimate the exogenous mixed noise:
D k v [ k ] = y[ k ] Ck x [ k ] B ky u[ k ] .
2.2. Update the covariance matrix of exogenous noise:
1
D k v [ k ]DTk =
( kDk 1 v [k 1]DTk 1 + Dk v [k ]v T [ k ]DTk ) .
k +1
2.3. Compute the auxiliary matrix: Q = C P .
104
The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
2.5. Evaluate the sensitivity gain: k = QTk R k 1 .
T
2.6. Compute the auxiliary matrix S k = A k k .
The bigger the norm of PQ = PQ1 " PQ ny , the better the
2.7. Update the covariance matrix of endogenous noise:
predictor performance.
1
T
T
T
T T
Fk w [ k ]Fk =
( kFk 1 w [k 1]Fk 1 + Sk Dk v [k ]v [k ]Dk Sk ) . Finding the structural indices that maximize the norm of PQ
k +1
2.8. Update the covariance matrix of estimation error: cannot be realized through an exhaustive search. The
structural indices are: p the degree of polynomial trend,
P k +1 = Fk w [ k ]FkT + A k ( P k k Q k ) ATk .
na , nc the orders of ARMA model and nx the number
2.9. Predict the state:
of
states for the linear system (1). An evolutionary searching
x [ k + 1] = A k x [ k ] + Bxk u[ k ] + S k D k v [ k ] .
technique has to be employed in this aim.
2.10. Predict the output: y [ k + 1] = Ck x [ k + 1] + Bky u[ k + 1] .
5. SIMULATION RESULTS
2.11. Acquire new data: D = D {y[ k + 1]} .
k +1
k N
{ }
j1, ny
def
( ) / ( ) , j 1, ny (26)
K
y j y j
2j ,k
def
k =1
PQ j = 100 / 1+
SNR SNR K
ej
j
j
[%] , j 1, ny . (27)
T
KARMA
PQ ARMA 119.50 ;
PQ KARMA 137.26 .
(28)
Only 4 states were necessary to represent the linear system
associated to data. The fact nx = ny in this case is pure
coincidence. On the figures corresponding to KARMA
performance (Figs. 6-9), the only purpose of ARMA models
is to estimate the input colored noises that stimulate the
system. The data on the first channel are seemingly the less
predictable. This is proven by the modest PQ values returned
even by KARMA (only slightly superior to PARMA one). It
seems that data from this channel are less correlated to data
from the other channels, which cannot be noticed by simply
inspecting the data.
105
The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
The prediction accuracy has increased at the expense of
computational complexity for KARMA. Therefore, if the data
are quite uncorrelated across channels, PARMA should be
employed as the first option.
6. CONCLUSION
One can say that KF is a new and old topic at the same time.
Concerning the theory, KF has drawn the bottom line long
time ago. The applications rejuvenate however this approach.
The KF-based algorithm introduced in this article is genuine.
Its major contribution consists of noises estimation during the
prediction. The most KF algorithms try to avoid this problem.
The simulation case study on natural data has proven that the
prediction quality can be improved when considering
correlations between channels.
REFERENCES
Hajiyev Ch. and Caliskan F. (2003). Fault Diagnosis and
Reconfiguration in Flight Control Systems. Kluwer
Academic, Boston, USA.
Kalman R.E. (1960). A New Approach to Linear Filtering
and Prediction Problems. Transactions of ASME, Journal
of Basic Engineering, Vol. 82D, pp. 35-45.
Kalman R.E. and Bucy R.S. (1961). New Results in Linear
Filtering and Prediction Theory. Transactions of ASME,
Journal of Basic Engineering, Series D, Vol. 83,
pp. 95-108.
Kayton M. and Fried W.R. (1997). Avionics Navigation
Systems. John Wiley & Sons Inc., New York, USA.
Kennedy J., Eberhart R. (1995). Particle Swarm
Optimization, IEEE International Conference on Neural
Networks, Piscataway, USA, pp. 1942-1948.
Negenborn R. (2003). Robot Localization and Kalman
Filters. Ph.D. Thesis, Delft University of Technology,
Delft, NL.
Niedwiecki M. (2000). Identification of Time-Varying
Processes. John Wiley & Sons, West Sussex, U.K.
vanOverschee P. and deMoor B. (1996), Subspace
Identification
of
Linear
Systems:
Theory,
Implementation, Applications. Kluwer Academic
Publishers, Holland.
Plackett R.L. (1950). Some Theorems in Least Squares,
Biometrika, No. 37, pp. 149157.
Proakis J.G. and Manolakis D.G. (1996). Digital Signal
Processing. Principles, Algorithms and Applications.,
third edition, Prentice Hall, Upper Saddle River, New
Jersey, USA.
Sderstrm T. and Stoica P. (1989). System Identification,
Prentice Hall, London, UK.
Stefanoiu D., Culita J. and Stoica P. (2005). A Foundation to
System Identification and Modeling. PRINTECH Press,
Bucharest, Romania.
106
The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
107
The 17-th International Conference on Control Systems and Computer Science, CSCS-17
Bucharest, Romania
May 2629, 2009
108
Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
KEYWORDS
Prediction, MIMO-ARMAX models, distributed signals,
prediction quality, Particle Swarm Optimization.
ABSTRACT
Within this article, the problem of multi-variable signals
prediction is approached. Such signals are provided
especially by natural phenomena with geographical
distribution. Presumably, the set of time series generated by
the same source are more or less correlated each other.
Instead of processing each time series independently, they
can be seen as measurable outputs provided by some open
MIMO system. Therefore, modeling and forecasting of
system behavior can rely on multi-dimensional ARMAX
models. The research based on this idea led us to
construction of PARMAX predictor. Optimal structural
indices of MIMO-ARMAX model can be found by means of
an evolutionary strategy: Particle Swarm Optimization.
1. INTRODUCTION
Evolution of many natural phenomena can be monitored
with higher accuracy when the observation and measurement
are accounting not only the time variation of some
parameter, but also its distribution over a geographical area.
Take for example the snow thickness monitoring application
on White Valley from French Alps (see Figure 1).
Monitoring
laptop/notebook
eco-node
(wireless)
VISA
Wireless data acquisition interface
eco-sensor
(wireless)
Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
Consequently, nu = ny 1 and u i ei , i 1, ny , i j .
A ( q 1 ) y B ( q 1 ) u + C ( q 1 ) e .
AR
In equation (1),
CR
ny ny
ny ny
(q ) ,
1
BR
(1)
ny nu
nu
(q )
1
and
is the input
This time, B j R
(q )
1
i
Equations (4) allow not only estimating the inputs of model
(2), but also predicting them with sufficient accuracy. The
final running MIMO-ARMAX models are then:
A j ( q 1 ) y j B j ( q 1 ) u + C j ( q 1 ) e j , j 1, ny , (5)
( )
( )
n ( q 1 ) y
e j A
j
j
ny
i =1, i j
n ( q 1 ) u , j 1, ny ,
B
j ,i
i
(6)
Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
where 2j , N y = 0 and { j ,k }kN are the coefficients of endless
y j k | N y = a j ,1 y j k 1 | N y " a j ,na j y j k na j | N y +
+
ny
(starting from
division between polynomials C j and A
j
j ,i
i =1, i j
(7)
1
2m, j =
Ny
e j [ k ] = y j k | N y + j ,1 y j k 1| N y + " + j ,k N y 1 y j N y + 1| N y +
+ j , k N y y j N y + " + j ,n y j [ k n]
ny
i =1, i j
(8)
k =1
k | N y
. (13)
[%],
(9)
2
j ,k
k =1
m, j SNR m, j SNR p , j
( y [ k ] y
Ny
1+
1
Ny
k =1
100
( e j [ k ]) =
j , i ,1u i [ k 1] + " + j , i ,n u i [ k n] = u j [ k ].
PQ j =
Ny
x mp +1 = x mp + x mp +1 , p 1, P , m 0 ,
SNR m, j =
2
m, y j
& SNR m, j =
m, j
2
p, y j
(10)
p, j
2
1 K
= y j N y + k y j N y + k | N y .
K k =1
(11)
v mp +1 = mp v mp + mp ,c
proven:
2j ,k = 2j ,k 1 + 2m, j 2j ,k 1 , k N y + 1, N y + K ,
(14)
x mp ,0 x mp
mp ,+c1
+ ms
x mP ,0 x mp
ms +1
p 1, P , m 0 , (15)
(12)
Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
where:
mp [0,1] is the particle mobility factor;
2
. (23)
=
p P ,0
s
P p =1
ms ,max ms ,min
xTam N 2 ny +5 ,
xTARMAX
(16)
x ARMA = [ na0
x am = n0
n n1
nc N ny +1
(20)
1 m
x mp,0
m + 1 i =0
xip
).
(21)
x 1 = x1 + (1 )x 2 & x 2 = x 2 + (1 )x1 ,
(24)
(25)
def
mp,c = 2
mp ,c mp ,c ,min
mp ,c ,max mp ,c ,min
(22)
Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
elite, all of them of size P , the offspring population consists
of 2P particles. Only the most fitted ( P 1) offspring are
selected to complete the current population, after removing
all its particles, but the most fitted one. (Maybe this one is
the global optimum and must be kept.)
the test data set, the optimal structural indices are just
employed to identify a new model based on the whole data
set (i.e. including the test data). Usually, the prediction
performance decreases on the prediction horizon, comparing
to the test horizon.
The goal of implementation is to perform a comparison
between PARMA and PARMAX algorithms in terms of
prediction quality. If data from different channels are intercorrelated, PARMAX is expected to perform better than
PARMA.
Channel 4
Channel 3
Channel 2
Channel 1
Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
prediction horizon length ( K ): 5;
maximum number of generations ( M ): 100;
minimum survival factor ( S ): 5;
maximum degree of trend ( NT ): 5;
maximum structural index for AR part ( NA ): N y / 3 ;
For data with less correlation than the above ones, the
superior performance of PARMAX over PARMA is not so
obvious. Usually, PARMAX performs better on some
channels only and its fitness (the norm of PQ) can even fall
below the PARMA fitness. In this case, PARMA should be
preferred, due to its smaller complexity and higher speed.
5. CONCLUSION
PQ ARMA 119.65 ;
PQ ARMAX 137.32 .
(26)
Since the correlation between channels is so obvious, the
superior performance of PARMAX versus PARMA is an
expected result. Beside this general remark, the simulation
results yield several insights.
REFERENCES
ACKNOWLEDGMENTS
10
Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
11
Industrial Simulation Conference ISC-2009, Loughborough, United Kingdom, June 13, 2009
12
Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009
Abstract In this article, the problem of multivariable data autoregressive identification is approached,
in view of prediction. Such data are especially provided
by natural phenomena with geographical distribution,
but could also be acquired from concentrated systems
with several outputs, like medical records of one or more
patients. Presumably, data are generated by the same
source and exhibit more or less correlations to each
other. Instead of processing each data set as an
independent time series, the whole data block can be seen
as the reaction of some open MIMO system to unknown
stimuli. Therefore, modeling and forecasting of system
behavior can rely on multi-dimensional ARMAX models.
Optimal structural indices of MIMO-ARMAX model are
found by means of an evolutionary strategy: Particle
Swarm Optimization.
I. INTRODUCTION
261
Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009
(1)
(2)
262
Consequently,
nu = ny 1
and
u i ei ,
Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009
(3)
( )
( )
s q 1 y + 1 C s q 1 e , i 1, ny , (4)
ui ei A
i
i
i
e j [ k ] = y j k | N y + j ,1 y j k 1| N y + " + j ,k N y 1 y j N y + 1| N y +
+ j , k N y y j N y + " + j ,n y j [ k n]
i =1, i j
A j (q
)y
B j (q
) u + C ( q ) e ,
1
j 1, ny ,
ny
i =1, i j
n ( q 1 ) u , j 1, ny ,
B
j ,i
i
(6)
i =1, i j
j ,i
[%],
1+
(9)
2
j ,k
k =1
m, j SNR m, j SNR p , j
2m, y j
2
& SNR m, j =
m, j
2p , y j
,
2
(10)
p, j
y j k | N y = a j ,1 y j k 1 | N y " a j ,na j y j k na j | N y +
ny
100
PQ j =
(8)
(5)
j , i ,1u i [ k 1] + " + j , i ,n u i [ k n] = u j [ k ].
ny
(11)
(7)
263
2j ,k = 2j ,k 1 + 2m, j 2j ,k 1 , k N y + 1, N y + K ,
(12)
Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009
Ny
( e j [ k ]) =
2
k =1
1
Ny
Ny
(
k =1
y j [ k ] y j k | N y
v mp +1 = mp v mp + mp ,c
. (13)
T
x ARMA = [ na0
xTARMAX
xTam N 2 ny +5 ,
(16)
= x + x
ms +1
x = nt xTARMA
m +1
p
x mP ,0 x mp
m
p
mp ,+c1
+ ms
p 1, P , m 0 , (15)
where:
mp [0,1] is the particle mobility factor;
m +1
p
x mp ,0 x mp
(14)
x am = n0
nc N ny +1
PQ x mp ,0 PQ x mp
,
PQ x mp ,0 PQ x mp ,1
(20)
264
Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009
1 m
x mp,0
m + 1 i =0
xip
).
(21)
def
mp,c = 2
mp ,c ,max mp ,c ,min
(22)
ms =
1 P m
x p x mP ,0
P p =1
def
ms = 2
ms ms ,min
ms ,max ms ,min
. (23)
(24)
(25)
265
Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009
Channel 3
Channel 1
Channel 4
Channel 2
Fig. 2. BMP lab data from two patients. Data were sampled every
48 hours and the patients provided 193 samples. The last 5 samples were
hidden, in order to evaluate the performance of predictors. There is a
visible correlation between signals on the left side as well as between
signals on the right side. Also, hidden correlation might exist between
left and right sides.
T
ARMAX
PQ ARMA 93.7 ;
PQ ARMAX 117.55 .
[4]
[5]
[6]
(26)
As a general remark, all 4 signals are corrupted by noises
with different intensities (higher for female than for male).
[7]
266
Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009
267
Accepted for presentation at the 7-th International IEEE Conference on Control and Automation, IEEE-ICCA'09,
Christchurch, New Zealand, December 9-11, 2009
268
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
Bibliografie
[BaG87]
[CDF92]
[CoL95]
[CoWi92]
[DaI88a]
[DaI88b]
[DaI90]
[DHRS03]
[DaLa88a]
[DaLa88b]
[DSD09]
[DPJ98]
[GoI86]
[IoV85]
[KeEb95]
[LaWM90]
[LePG88]
[MaS89]
[MaS99]
[MeY87]
[MiM95]
[MuR07]
[NiM00]
[NDS07]
[OvMo96]
[PCS09]
[PrMa96]
[RuNo95]
[ScI17]
[ShC48]
[SoSt89]
[StD95]
[StCu08]
[StCu09a]
[StCu09b]
[SCI08]
[SCS05]
RAPORT DE CERCETARE [C
CNMP.UPB-P4.31050-2007.III/DS.JC.CP.AD.AP-09.2009] <15-Sep-09>
[SPDC08] tefnoiu D., Petrescu C., Dumitracu A., Culi J. Modele numerice i
metode rapide de predicie a fenomenelor ecologice, Raport de cercetare
CNMP.UPB-P4.31050-2007.II/DS.CP.AD.JC-12.2008, Universitatea Politehnica din
Bucureti & Centrul Naional de Management de Programe, Romnia,
Decembrie 2008.
http://www.geocities.com/endeavour_DS/Projects
[SSCM09] tefnoiu D., Seraficeanu C., Culi J., Musc Gh. Identification of MIMOARMAX Models for Glycemia and Sodium Ions Tests, through Particle Swarm
Optimization, accepted at the 7-th International IEEE Conference on Control
and Automation, IEEE-ICCA'09, Christchurch, New Zealand, December 9-11,
2009 (ISI-Thomson referenced).
[StSt07] tefnoiu D., Stnil O. Matematic i Prelucrare de Semnal Analiz
timp-frecven-scal cu undine, Editura Printech, Bucureti, Romnia, 2007.
[SSP09] tefnoiu D., Stnil O., Popescu D. Undine Teorie i aplicaii, sub tipar
la Editura Academiei Romne, Bucureti, Romnia, 2009.
[VaPP93] Vaidyanathan P.P. Multirate Systems and Filter Banks, Prentice Hall, S.P.
Series (editor: A.V. Oppenheim), 1993.
[ZiH80]
Zimmermann H. OSI Reference Model The ISO Model of Architecture for
Open Systems Interconnection, IEEE Transactions on Communications,
Vol. 28, No. 4, pp. 425-432, April 1980.
271
272