Achizi ția și procesarea semnalelor 1 [600899]
Achizi ția și procesarea semnalelor 1
CUPRINS
TUCUPRINS UT……………………………………………………………………………………. 1
TUPREFAȚĂ UT…………………………………………………………………………………… 8
TUCAPITOLUL 1 UT…………………………………………………………………………… 10
TUDefiniția și clasificarea semnalelor UT……………………………………………….. 10
TU1.1. Domenii de aplica ție a achizi ției și procesării semnalelor UT………. 10
TU1.2. Defini ția semnalului UT………………………………………………………….. 12
TU1.3. Clasificarea semnalelor UT……………………………………………………… 13
TU1.3.1. Clasificarea fenemenologic ă UT………………………………………… 13
TU1.3.2. Clasificarea energetic ă UT………………………………………………… 14
TU1.3.3. Clasificarea morfologic ă UT……………………………………………… 15
TU1.3.4. Clasificarea dimensional ă UT……………………………………………. 18
TU1.3.5. Clasificare spectral ă UT……………………………………………………. 18
TU1.4. Circuitul electronic, sistemul și n-portul UT………………………………. 18
TUCAPITOLUL 2 UT…………………………………………………………………………… 20
TUNOȚIUNI DE STATISTIC Ă ȘI PROBABILITATE ÎN
PRELUCRAREA SEMNALELOR UT………………………………………………. 20
TU2.1. Media, mediana și deviația standard UT……………………………………. 21
TU2.2. Legatura dintre semnal și procesul de baz ă în statistic ă UT…………. 25
TU2.3. Histograma, func ția masǎ de probabilitate și funcția densitate de
probabilitate UT……………………………………………………………………………. 27
TU2.4. Distribu ția normal ǎ sau Gaussian ǎ UT………………………………………. 32
TU2.5. Generarea zgomotelor pe cale numeric ǎ UT………………………………. 34
TU2.6. Precizie și acuratețe UT…………………………………………………………… 37
TUCAPITOLUL 3 UT…………………………………………………………………………… 39
TUTRANSFORM ǍRI EFECTUATE ASUP RA SEMNALELOR
NUMERICE UT………………………………………………………………………………. 39
TU3.1. Transformarea în domeniul Z UT……………………………………………… 39
TU3.1.1. Func ția de transfer digital a unui sistem numeric UT……………. 40
TU3.1.2. Aplica ții ale func ției de transfer a unui sistem UT………………… 43
TU3.1.3. Func ția de transfer echivalent ǎ UT……………………………………… 45
Autor : Viorel Paleu 2
TU3.2. Transformata Fourier Discret ặ (DFT – Discret Fourier Transform) UT
……………………………………………………………………………………………… 47
TU3.2.1. Defini ția transformatei Fourier discrete UT…………………………. 47
TU3.2.2. Frecven ța DFT și definiția spectrelor de amplitudini și faze UT48
TU3.2.3. Redundan ța Transformatei Fourier Discrete (DFT) UT…………. 50
TU3.3. Transformata Fourier rapid ă (FFT- Fast Fourier Transform) UT….. 51
TU3.4. Inversa Transformatei Fourier Discrete (IDFT) UT…………………….. 51
TU3.5. Funcția de autocorela ție UT…………………………………………………….. 53
TU3.6. Funcția de intercorela ție și autocorela ție UT………………………………. 55
TU3.7. Densitatea spectral ă a mediei p ătratice (densitatea spectral ă de
putere) UT…………………………………………………………………………………… 60
TU3.8. Aplica ții UT…………………………………………………………………………… 63
TUCAPITOLUL 4 UT…………………………………………………………………………… 69
TUACHIZIȚII DE DATE UT…………………………………………………………….. 69
TU4.1. Sistemul și placa de achizi ție de date UT…………………………………… 69
TU4.2. Parametri de performan ță globali ai unui sistem de achizi ție și
restituire de date UT……………………………………………………………………… 76
TU4.3. Achizi ția multipl ă de date UT………………………………………………….. 81
TU4.3.1. Achizi ția secvențială decalată UT………………………………………. 82
TU4.3.2. Achizi ția secvențială simultană (SS&H – Simultaneous
Sample and Hold) UT………………………………………………………………… 83
TU4.3.3. Achizi ția paralelă (Delta – Sigma) UT…………………………………. 84
TUCAPITOLUL 5 UT…………………………………………………………………………… 86
TUEȘANTIONAREA ȘI CUANTIZAREA UT……………………………………….. 86
TU5.1. Teoria discretiz ării in timp. E șantionarea. UT……………………………. 86
TU5.1.1. Teorema lui Shannon. Fenomenul de aliasing. UT……………….. 88
TU5.2. Teoria discretiz ării in timp. Cuantizarea. Conversia analog-
numerica (CAN). UT…………………………………………………………………….. 92
TU5.2.1. Elemente introductive UT…………………………………………………. 92
TU5.2.2. Teoria cuantiz ării UT……………………………………………………….. 92
TU5.2.3. Principiul cuantiz ării UT…………………………………………………… 93
TUCAPITOLUL6 UT……………………………………………………………………………. 97
TUSTRUCTURA ȘI CARACTERISTICILE CONVERTIZOARELOR
ANALOG-NUMERICE (CAN) UT……………………………………………………. 97
TU6.1. Convertizor paralel sau flash UT………………………………………………. 97
TU6.2. Convertizor cu rampã simpl ă UT……………………………………………… 99
Achizi ția și procesarea semnalelor 3
TU6.3. Convertizor cu ramp ă dublă UT……………………………………………….. 99
TU6.4. Convertizor cu treceri succesive UT……………………………………….. 100
TU6.5. Convertizor semi-paralel, sau semi-flash UT……………………………. 103
TU6.6 Conversia numeric-analogic ă (digital-analogic ă) a semnalelor UT104
TU6.7. Zgomotul de cuantizare UT……………………………………………………. 109
TUCAPITOLUL 7 UT…………………………………………………………………………. 112
TUFILTRE ANALOGICE SI NUMERICE UT……………………………………… 112
TU7.1. Analiza comparativ ă a filtrelor analogice și digitale UT…………….. 112
TU7.2.Tipuri principale de filtre UT………………………………………………….. 113
TU7.3. Alegerea principalelor tipuri de filtre UT…………………………………. 116
TUCAPITOLUL 8 UT…………………………………………………………………………. 123
TUREȚELE NEURONALE – GENERALIT ĂȚI UT………………………………. 123
TU8.1. Domenii de aplica ție UT……………………………………………………….. 123
TU8.2. Noțiuni generale privind re țelele neuronale UT………………………… 126
TU8.2.1. Defini ție UT…………………………………………………………………… 126
TU8.2.2. Motiva ția biologic ă UT…………………………………………………… 129
TU8.2.3. Etape principale în evolu ția rețelelor neuronale artificiale UT131
TU8.3. Structura unei re țele neuronale artificiale UT…………………………… 132
TU8.3.1. Neuronul simplu UT……………………………………………………….. 134
TU8.3.2. Func ții de transfer UT…………………………………………………….. 135
TU8.3.3. Neuronul cu intrare de tip vector UT………………………………… 137
TU8.4. Tipuri de re țele neuronale UT………………………………………………… 138
TU8.4.2. Rețele neuronale multistrat UT………………………………………… 140
TU8.5. Clasificarea re țelelor neuronale UT…………………………………………. 142
TU8.5.1. Perceptronul multistrat (MLP) UT……………………………………. 142
TU8.5.2. Rețele tip Radial Basis UT………………………………………………. 144
TU8.5.3. Rețele de înv ățare de tip competitiv UT…………………………….. 145
TU8.5.3.2. H ărți auto-organizate UT………………………………………………. 146
TU8.6. Algoritmi de înv ățare a rețelelor neuronale UT………………………… 147
TU8.6.1. Regula de înv ățare Hebbian UT……………………………………….. 148
TU8.6.2. Algoritmul de înv ățare prin corelare UT……………………………. 148
TU8.6.3. Algoritmul de înv ățare “Instar” UT…………………………………… 149
TU8.6.4. Winner Takes All (WTA, ‘înving ătorul ia totul’) UT………….. 149
TU8.6.5. Algoritmul de înv ățare Outstar UT……………………………………. 149
TU8.6.6. Algoritmul de înv ățare Widrow-Hoff LMS UT………………….. 150
TU8.6.7. Descre șterea liniar ă “Linear Regression” UT…………………….. 150
Autor : Viorel Paleu 4
TU8.6.8. Algoritmul de înv ățare Delta UT………………………………………. 150
TU8.6.9. Algoritmul de înv ățare de tipul erorii propag ării inverse UT… 150
TU8.7. Structuri de date UT……………………………………………………………… 151
TU8.7.1.Simularea cu intr ări concurente într-o re țea neuronal ă statică UT
………………………………………………………………………………………… 151
TU8.7.2.Simularea cu intr ări secvențiale într-o re țea neuronal ă
dinamică UT…………………………………………………………………………… 151
TU8.7.3. Simularea cu intr ări concurente într-o re țea neuronal ă
dinamică UT…………………………………………………………………………… 152
TU8.8. Simularea re țelelor neuronale cu mediul Matlab UT…………………. 153
TU8.8.1. Introducere UT………………………………………………………………. 153
TU8.8.2. Reprezentarea simplificat ă a modelor de tip neuronal UT……. 154
TU8.8.3. Blocuri Simulink pentru identificarea bazat ă pe modele
neuronale UT………………………………………………………………………….. 155
TUCAPITOLUL 9 UT…………………………………………………………………………. 156
TUAPLICAȚII ALE RE ȚELELOR NEURONALE UT………………………….. 156
TU9.1.Clase de probleme care pot fi rezolvate cu ajutorul re țelelor
neuronale UT……………………………………………………………………………… 156
TU9.1.1. Clasificare și recunoaștere. UT…………………………………………. 156
TU9.1.2. Gruparea pe categorii a datelor UT…………………………………… 157
TU9.1.3. Aproximare și estimare UT……………………………………………… 157
TU9.1.4. Predic ții UT…………………………………………………………………… 158
TU9.1.5. Optimiz ări UT……………………………………………………………….. 158
TU9.1.6. Stocarea și regăsirea informa ției după conținut UT…………….. 159
TU9.1.7. Modelare și control adaptiv UT………………………………………… 159
TU9.1.8. Prelucrarea și analiza semnalelor UT………………………………… 159
TU9.2. Descriere a unor aplica ții clasice UT……………………………………….. 160
TU9.2.1. Eliminarea adaptiv ă a zgomotului – "adaptive noise
canceling" UT…………………………………………………………………………. 160
TU9.2.2. Evaluarea riscului creditului ipotecar UT…………………………… 160
TU9.2.3. Cititor de coduri po ștale UT…………………………………………….. 161
TU9.2.4. Recunoa șterea vorbirii UT………………………………………………. 161
TU9.2.5. Clasficarea semnalelor produse de "sonar" UT…………………… 162
TUCAPITOLUL 10 UT……………………………………………………………………….. 163
TUFILTRE ADAPTIVE ȘI FILTRAREA ADAPTIV Ă UT…………………….. 163
TU10.1.Modelul neuronului liniar UT……………………………………………….. 163
Achizi ția și procesarea semnalelor 5
TU10.2. Arhitectura unei re țele neuronale liniare adaptive UT……………… 164
TU10.2.1. Single ADALINE UT……………………………………………………. 164
TU10.3. Eroarea p ătratică medie (Mean Square Error) UT…………………… 166
TU10.4.1.Tapped Delay Line (linie de întârziere de tip band ă) UT…….. 167
TU10.4.2. Filtru adaptiv UT………………………………………………………….. 168
TU10.5. Filtre adaptive multi-neuron UT……………………………………………. 169
TU10.6. Algoritmi de filtrare adaptiv ă UT………………………………………….. 170
TU10.6.1. Algoritmul LMS UT……………………………………………………… 170
TU10.6.2. Algoritmul Least Squares (LS) UT…………………………………. 172
TU10.6.3. Filtrul Kalman UT………………………………………………………… 172
TU10.7.Aplica ții ale filtrării adaptive – No țiuni introductive UT…………… 173
TU10.8. Eliminarea adaptiv ă a zgomotului UT……………………………………. 177
TUCAPITOLUL 11 UT……………………………………………………………………….. 180
TUPROCESAREA SEMNALELOR AUDIO UT…………………………………… 180
TU11.1. Din punct de vedere fiziologic UT………………………………………… 180
TU11.2. Din punct de vedere fizic UT……………………………………………….. 180
TU11.2.1.Sunetul UT……………………………………………………………………. 181
TU11.2.2.Viteza sunetului UT……………………………………………………….. 182
TU11.2.3.Num ărul Mach UT………………………………………………………… 183
TU11.2.4.Captarea și stocarea sunetelor UT……………………………………. 183
TU11.2.5.Înregistr ări digitale UT…………………………………………………… 184
TU11.3. Înregistr ări digitale. PCM-urile și CD-urile. UT……………………… 186
TU11.3.1.Calitatea sunetului inregistrat si stocat digital pe computer UT
………………………………………………………………………………………… 188
TU11.3.2. Compresia sunetelor digitale UT…………………………………….. 188
TU11.3.3. Compresia f ără pierderi UT……………………………………………. 190
TU11.3.4. Formate flux (streaming) UT………………………………………….. 192
TU11.3.5. Formate simbolice. Compresia digital ă UT………………………. 193
TU11.3.6. Procesarea digitala a semnalelor audio UT………………………. 194
TUCAPITOLUL 12 UT……………………………………………………………………….. 196
TUINTRODUCERE IN ACHIZITIA SI PROCESAREA IMAGINILOR UT
……………………………………………………………………………………………….. 196
TU12.1. Introducere UT…………………………………………………………………… 196
TU12.2. Achizi ția imaginii UT………………………………………………………….. 199
TU12.2.1. Introducere UT…………………………………………………………….. 199
TU12.2.2 Senzori de imagine UT…………………………………………………… 201
Autor : Viorel Paleu 6
TU12.2.3 Fotodiode și fototranzistori UT……………………………………….. 201
TU12.2.4. CCD UT………………………………………………………………………. 204
TU12.2.5. CMOS UT…………………………………………………………………… 210
TUCAPITOLUL 13 UT……………………………………………………………………….. 218
TUFORMAREA IMAGINII NUMERICE UT……………………………………….. 218
TU13.1 Transformarea optic ă UT……………………………………………………… 218
TU13.2 Eșantionare UT……………………………………………………………………. 219
TU13.3 Culoarea și spațiul tri-dimensional UT………………………………… 222
TU13.4 Pozi ția pixelilor în imagine UT……………………………………………… 230
TU13.5 Detec ția contururilor UT………………………………………………………. 233
TUCAPITOLUL 14 UT……………………………………………………………………….. 237
TUTEHNICI DE FILTRARE A IMAGINILOR UT……………………………….. 237
TU14.1 Conceptul general de histogram ă UT……………………………………… 237
TU14.2 Tehnici de modificare a histogramei UT…………………………………. 240
TUTranslatarea liniar ă a nivelelor de gri UT……………………………………. 241
TU14.2.2 Punerea la scar ă UT……………………………………………………….. 241
TU14.2.3 Aplatizarea histogramei (egalizarea) UT…………………………… 242
TU14.3 Filtrarea zgomotelor UT……………………………………………………….. 246
TU14.3.1 Zgomot gaussian UT……………………………………………………… 246
TU14.3.2 Zgomot uniform UT………………………………………………………. 247
TU14.3.3 Zgomot sare si piper (salt-and-peper) UT…………………………. 248
TU14.3.4. Filtre spatiale pentru eliminarea zgomotelor UT……………….. 249
TU14.3.4.1. Filtre ordonate UT……………………………………………………… 250
TUFiltrul median UT……………………………………………………………………. 251
TUFiltrul de maxim UT………………………………………………………………… 253
TUFiltrul de minim UT…………………………………………………………………. 253
TUFiltrul punctului de mijloc UT…………………………………………………… 254
TUFiltrul medie alpha-ordonat UT…………………………………………………. 254
TU14.3.4.2. Filtre de mediere (mean / average filters) UT………………… 254
TUFiltrul medie aritmetica UT………………………………………………………. 254
TUFiltrul medie contra-armonica UT……………………………………………… 255
TUFiltrul medie geometrica UT…………………………………………………….. 255
TUFiltrul medie armonica UT……………………………………………………….. 255
TUFiltru medie YP UT…………………………………………………………………. 256
TUCAPITOLUL 15 UT……………………………………………………………………….. 257
TUPRELUCRAREA IMAGINILOR UT……………………………………………….. 257
Achizi ția și procesarea semnalelor 7
TU15.1 Generali ățiUT…………………………………………………………………….. 257
TU15.2 Tipuri de date UT………………………………………………………………… 258
TU15.3 Tipuri de imagine UT…………………………………………………………… 259
TU15.4 Date de tip imagine UT………………………………………………………… 263
TU15.5 Sisteme de coordonate UT…………………………………………………….. 267
TU15.6 Exemple de prelucr ări de imagini în MATLAB UT…………………. 270
TU15.6.1 Afi șarea de imagini UT………………………………………………….. 271
TU15.6.2 Opera ții I/O cu fi șiere imagine. Opera ții geometrice UT…….. 275
TU15.6.3 Valorile pixelului și statistici UT…………………………………….. 279
TU15.6.4 Analiza și amplificarea imaginii UT………………………………… 286
TU15.6.5 Filtrarea liniar ă și proiectarea filtrelor UT………………………… 291
TU15.6.6 Transform ări UT……………………………………………………………. 296
TU15.6.7 Imagini color și conversii între imagini colorate UT………….. 301
TU15.6.8 Tipuri de imagini și conversii UT……………………………………. 304
TUCAPITOLUL 16 UT……………………………………………………………………….. 309
TUAPLICATII ALE PROCESARII IMAGINILOR IN INGINERIE UT….. 309
TU16.1. Determinarea gradului de coroziune UT……………………………….. 309
TU16.2. Pseudocolorarea UT……………………………………………………………. 313
TU16.3. Măsurarea la distan ță UT……………………………………………………… 315
TUBibliografie UT………………………………………………………………………….. 322
Autor : Viorel Paleu 8
PREFAȚĂ
Disciplina „Achizi ția și Procesarea Semnalelor” este strâns
împletită, printre altele, cu disciplina de Mecatronic ă, fiind considerat ă
chiar un subdomeniu al acesteia.
Reamintim faptul c ă, prin sistem mecatronic se in țelege un
mecanism în care se înglobeaz ă produse electronice în form ă intimă,
organică și inseparabil ă, sub coordonarea inteligent ă a unui computer
integrat în mecanism. Astfel, ingineria mecanic ă se regăsește integrat ă
sinergetic cu electronica și calculatoarele, în form ă indivizibil ă. Insuși
cuvântul „mechatronic” provine din cuvintele: „mecha” = „mecanic ă,
mecanism” + „tronic” = „electronic”.
Fiind vorba de mecanisme care încorporeaz ă dispozitive
electronice și calculatoare, devine o necesitate st ăpânirea tehnicilor de
achiziție și procesare a diferitelor semnal e, care servesc la coordonarea și
buna func ționare a sistemului mecatronic.
O mare parte din bi bliografia existent ă în domeniul achizi ței și
procesării semnalelor este orientat ă excesiv fie spre domeniul
matematicii – cu destina ție pur teoretic ă, fie spre electronic ă și
telecomunica
ții. Noțiunea de semnal este prezentat ă, în general, ca o
noțiune pur matematic ă, exemplele furnizate fiind adeseori f ără nici o
utilitate practic ă. Întâlnim, spre exemplu, prezent ări exhaustive despre
diverse transform ări aplicate semnalelor, care r ămân în stadiul de
formule matematice.
În acest context, prezentul curs se dore ște a fi conceput cu o
orientare multi-discilplinar ă. Vom porni de la no țiuni de matematic ă,
necesare în în țelegerea procesului de definire și prelucrare a semnalului,
Achizi ția și procesarea semnalelor 9
vor fi atinse și noțiuni de electronic ă, utilizate în achizi ția de date și în
procesarea analogic ă și digitală a semnalului, abordând totodat ă și partea
de calculatoare („sofware”), folosit ă în tehnicile moderne de achizi ție și
procesare a semnalului.
În acest fel, sper ăm să devenim utili în munca de instruire și
informare a studen ților și inginerilor din domeniul mecatronicii, prin
înglobarea în acest curs a no țiunilor fundamentale, specifice achizi ției și
procesării semnalelor.
Dr. Ing. Viorel Paleu
Autor : Viorel Paleu 10
CAPITOLUL 1
Definiția și clasificarea semnalelor
1.1. Domenii de aplica ție a achizi ției și procesării semnalelor
Pentru a eviden ția rolul și ponderea discilplinei de Prelucrarea și
Achiziție a Semnalului în întregul domeniu al Mecatronicii, vom
enumera domeniile de specialitate ale acesteia:
• Modelarea sistemelor fizice;
• Sensori și actuatori;
• Semnale și sisteme;
• Calculatoare și sisteme logice;
• Software (programe) și achiziții de date.
Ca și subdomeniu al Mecatronicii, „Achizi ția și prelucrarea
semnalelor” face apel la cuno ștințe de baz ă dobândite anterior la
urmatoarele discipline:
– matematic ă (analiză, algebră și calcul satistic);
– electronic ă și microelectronic ă;
– automatiz ări și calculatoare;
– tehnologia senzorilor și actuatorilor;
– teoria sistemelor; – programare (Matlab, MathCAD, LabVIEW, C etc.); – vibra ții mecanice și acustică;
– inteligen ță artificială.
Achizi ția și procesarea semnalelor 11
Elementele cheie ale disciplinei Mecatronic ǎ sunt reprezentate
schematic in Figura 1.1 . Din însăși definiția mecatronicii, se observ ă că
Mecatronica este un câmp multidisciplinar, în care se împletesc discipline caracteristice domen iului mecanic, electronic și
calculatoarelor.
Fig. 1.1 : Elemente cheie ale mecatronicii
Achiziția și procesarea semnalelor se impune atât în domenii
oarecum comune, precum telecomunica țiile și fabricarea instrumentelor
muzicale, cât și, spre exemplu, la prelevarea imaginilor transmise din
cosmos de c ătre sateli ți, atingând în zilele noastre aproape fiecare
domeniu al știintei și tehnologiei.
Dintre domeniile de aplica ție ale achizi ției și prelucr ării
semnalelor, amintim:
Autor : Viorel Paleu 12
– Domeniul spa țial:
– procesarea imaginilor spa țiale;
– compresia datelor, analiza senzorial ă inteligent ă etc.
– Medicină:
– diagnosticarea prin imagini (radiografii);
– analiza cu ajutorul electrocardiogramei;
– înmagazinarea și recuperarea imaginilor medicale etc.
– Comerț:
– compresie de imagine și sunet pentru prezent ări multimedia;
– efecte speciale pentru filme, videoconferin țe etc.
– Telefonie:
– compresie de voce și date, reducerea ecourilor;
– multiplexarea semnalelor, filtrare etc.
– Militar:
– Radar, sonar, ghidare;
– comunica ții securizate etc.
– Industrial:
– monitorizarea și controlul proceselor, control nedestructiv;
– prospectarea uleiurilor și mineralelor;
– CAD (Computer Aided Design) etc.
– Științific:
– înregistrarea și analiza seismelor, achizi ții de date, analiz ă
spectrală;
– simulare și modelare etc.
1.2. Defini ția semnalului
Semnalul, ca defini ție, reprezint ă o noțiune abstract ă, înțelegând
prin semnal o indica ție, un semn. Putem vorbi de semnal atât în
procesele de transmitere a curentului electric sau a c ăldurii, cât și în
Achizi ția și procesarea semnalelor 13
procesul de transformare chimic ă ce are loc la nivelul scoar ței cerebrale.
Noțiunea este comun ă, referindu-se la tot ceea ce se poate percepe prin
mijloace naturale, mecanice, electronice etc. Ins ăși comunicarea
interuman ă se realizeaz ă prin diferite semnale (vorbirea, mi șcarea etc.).
In ingineria sistemelor, semnalele pot purta informa ție sau
energie , ele pot fi cauza unui eveniment sau consecin ța unei ac țiuni.
Relatate la un sistem mecatronic, semnalele reprezint ă intrări sau ieșiri.
1.3. Clasificarea semnalelor
Semnalele pot fi clas ificate într-o gam ă largă, în func ție de
formă, amplitudine, durat ă etc. Uneori semnalele se pot exprima analitic,
alteori doar grafic. O clasificare am ănunțită a semnalelor este realizat ă
de catre Poularikas [2000].
1.3.1. Clasificarea fenemenologic ă
In funcție de tipul evolu ției semnalelor, acestea se pot clasifica
în : – Semnale deterministe – semnale ale caror evolu ție în timp
este previzibil ă, putand fi descrise de un model matematic.
La randul lor, semnalele determ iniste pot fi clasificate în
semnale periodice , cvasi-periodice și transitorii
(neperiodice) .
Pentru un semnal periodic x(t), de perioad ă T, este valabil ă egalitatea:
) ( )( Ttxtxt +=⇒∀ (1.1)
Autor : Viorel Paleu 14
Semnalele cvasi-periodice pot fi de scompuse în serii Fourier (reprezint ă
o combina ție de func ții sinusoide). Restul semn alelor deterministe, care
nu sunt nici periodice și nici cvasi-periodice sunt semnale tranzitorii,
caracterizate prin sp ectru Fourier continuu.
– Semnale aleatoare – cu o evolu ție ce nu poate fi prezis ă (nu
pot fi exprimate analitic, pot fi reprezentate doar grafic). In
lumea real ă, marea majoritate a semnalelor sunt aleatoare
(spre exmplu, vorbirea uman ă).
1.3.2. Clasificarea energetic ă
– Semnale de energie – cele care au energie finit ă;
– Semnale de putere – cele care au putere medie finit ă și energie
infinită.
Oricare ar fi un semnal x(t), se po ate defini energia semnalului prin
relația:
∫∞
∞−= dttx Ex2)( (1.2)
Puterea medie a unui semnal, dac ă acesta o are, este dat ă de relația:
∫
−∞→=2
22)(1limT
TTxdttxT P (1.3)
Semnalele pentru care ∞<<E0x se numesc semnale de energie finit ă
(P BxB=0), spre exemplu semnalele tranzitorii.
Achizi ția și procesarea semnalelor 15
Semnalele pentru care ∞<<P0x se numesc semnale de putere medie
finită (E BxB=∞), spre exemplu semnalele permanente, precum semnalele
periodice sau semnalele aleatoare permanente. Tensiunea unei surse de curent este considerat ă un semnal periodic perm anent, neglijând posibila
întrerupere accidental ă a sursei.
1.3.3. Clasifi carea morfologic ă
Clasifică semnalele, în func ție de domeniile și co-domeniile de
definiție, în semnale continui (analogice), cuantizate, discrete
(eșantionate), sau digitale (numerice) .
Semnalele pot fi cl asificate în func ție de domeniile și codomeniile de
definiție astfel:
• când atât domeniul cât și co-domeniul de defini ție sunt mul țimea
numerelor reale,
ℜ, semnalul este analogic ;
ℜ∈∃ℜ∈∨ℜ→ℜ )( , , :)( tf t tf (1.4)
Autor : Viorel Paleu 16
Fig. 1.2. Reprezentarea unui semnal analogic periodic
In formă matematic ă un semnal analogic poate avea, spre
exemplu, forma dat ă de ecuația:
) cos( ) sin( )( t Bt Ath ⋅ +⋅ = ω ω (1.5)
• când domeniul este real și co-domeniul este discret, semnalul este
cuantizat ;
Ztf t Z tf ∈∃ℜ∈∨→ℜ )( , , :)( (1.6)
• când domeniul este discret și co-domeniul este real, semnalul este
discret (e șantionat) ;
ℜ∈∃∈∨ℜ→ )( , , :)( tf Zt Ztf (1.7)
Achizi ția și procesarea semnalelor 17
Semnalele discrete sunt reprezentate prin modele matematice
pentru m ărimi fizice variabile în timp. Aceasta se realizeaz ă prin
neglijarea varia ției continui a timpului și prin considerarea valorilor de
interes numai la anumite momente de timp. Spre exemplu, un semnal
discret se poate repr ezenta printr-o sum ă:
[] [ ]∑∞
∞−−⋅= kn kx nx δ )( (1.8)
unde []kn−δ se nume ște impulsul semnalului (sau tren de impulsuri,
furnizate în practic ă de către un ceas).
• când atât domeniul cât și co-domeniul de defini ție sunt discrete,
semnalul se nume ște digital (numeric) .
Ztf Zt Z Ztf ∈∃∈∨→ )( , , :)( (1.9)
Co-domeniul ℜ Co-domeniul Z
Domeniul ℜ Semnal analogic Semnal cuantizat
Domeniul Z Semnal discret Semnal digital
Tab. 1.1. Clasificarea semnalelor în func ție de domeniile și co-
domeniile de defini ție
Trecerea de la semnale analogice la semnale discrete în timp se
numește eșantionare . Prin eșantionare se pierde o parte din informa ția
semnalului analogic. Prin anumite pr ocedee, se poate însa reconstrui
semnalul de baz ă, cu o precizie ce depinde de frecven ța de eșantionare.
Autor : Viorel Paleu 18
Trecerea de la semnale analogice la semnale cuantizate se
numește cuantizare . La cuantizare se pierde întotdeauna informa ție,
fiind o opera ție neliniar ă și ireversibil ă.
Prin cuantizarea semnalului discret, sau prin e șantionarea
semnalului cuantizat, se ob țin semnalele digitale . Se observ ă că, pentru
trecerea de la un semnal analogic la unul digital și invers, este nevoie
atât de eșantionare cât și de cuantizare . Rămâne la alegerea
proiectantului s ă aleagă ordinea opera țiilor atunci când proiecteaz ă
sistemul de achizi ție și procesare.
1.3.4. Clasificarea dimensional ă
Este bazat ă pe numărul de variabile independente. Putem avea :
– semnale uni-dimensionale – cu o singur ă variabil ă
independent ă, de obicei aceasta fiind timpul sau frecven ța;
– semnale multi-dimensionale (bi-dimensionale, tri-dimensionale
etc.).
1.3.5. Clasificare spectral ă
Clasifică semnalele în func ție de forma distribui ției de frecven țe
a spectrului acestora.
1.4. Circuitul electronic, sistemul și n-portul
Pentru o mai bun ă înțelegere a clasific ării de mai sus este
necesară introducerea no țiunilor de circuit electronic și de sistem.
Achizi ția și procesarea semnalelor 19
Prin circuit electronic se înțelege o multitudine de componente
electrice și electronice, care sunt interc onectate în scopul transmiterii și
prelucrării semnalelor.
Semnalele care se aplic ă la intrare (circuitului poart ă) se numesc
semnale de excita ție (intrare) , iar cele care se ob țin la ieșire se numesc
semnale de r ăspuns (ie șire). Circuitele pot fi liniare sau neliniare, în
funcție de transform ările care sunt aplicate semnalelor.
O interconectare de circuite, astfel încat s ă poată fi identificate
porțile de intrare și de ieșire, formeaz ă un sistem de circuite . Un sistem
cu n porți de intrare și de ieșire se nume ște n-port și poate fi reprezentat
schematic ca în Figura 1.3. (a) .
Fig. 1.3.
(a) Reprezentarea unui n-port; (b) reprezentarea simplificat ă a unui n-
port;
Se noteaz ă vectorul semnalelor de intrare cu:
[]T
mtx tx tx )( ),….( )(1=
(1.10)
Vectorul semnalului de ie șire se noteaz ă cu:
[]T
n m tx t x ty )( ),….( )(1+=
(1.11)
Pe baza nota țiilor de mai sus, un n-port se poate reprezenta simplificat ca
în Figura 1.3 (b) .
Autor : Viorel Paleu 20
CAPITOLUL 2
NOȚIUNI DE STATISTIC Ă ȘI PROBABILITATE
ÎN PRELUCRAREA SEMNALELOR
Prin procesarea semnalului se urmare ște reducerea interferen ței și
a zgomotelor ce se suprapun în procesul de achizi ție, datorit ă
imperfecțiunilor sistemelor de achizi ție, cât și ca rezultat inevitabil al
diferitelor tehnici de procesare numeric ă.
Prin elemente de statistic ă și probabilitate devine posibil ă
măsurarea și clasificarea acestor efecte nedorite (interferen țe, zgomote
etc.), în vederea elabor ării strategiei optime de reducere sau înl ăturare a
lor din semnalul util. Reprezentarea varia ției unui semnal în timp se poate face printr-un grafic
amplitudine – timp.
Numim amplitudine a unui semnal variabila dependent ă, care ne
oferă informații despre marimea semnalului la un moment de timp
(timpul fiind variabila independent ă). Variabila independent ă poate fi
uneori o distan ță, frecvență etc. In statistic ă, dacă ne referim la semnale
numerice, vom denumi variabil ă independent ă „numărul eșantionului ˝.
Achizi ția și procesarea semnalelor 21
2.1. Media, mediana și deviația standard
Dacă un semnal con ține N eșantioane, de la 0x pană la 1−Nx,
vom calcula media (în eng.: „mean”) sau valoarea medie a acestui
semnal, notat ă cu µ, conform formulei (2.1).
∑−=
=⋅= =1
01)(Ni
iixNx meanµ (2.1)
In electronic ă media reprezint ă componenta de curent continuu
(DC, adica „direct curent”) , iar component a alternativ ă (AC, „alternativ
curent”) se refer ă la fluctua țiile semnalului respectiv în jurul valorii
medii.
Mediana este elementul de la mijlocul unui set de date ordonate
în ordine cresc ătoare. In cazul șirurilor de date cu un num ăr impar de
elemente, valoarea median ă este cea din pozi ția (N+1)/2. Dac ă șirul are
un numar par de elemente, valoarea median ă este media elementelor din
poziția (N/2) și (N/2)+1. Notând mediana unui șir de date cu M, putem
scrie:
⎪⎪
⎩⎪⎪
⎨⎧
⎟⎠⎞⎜⎝⎛++⎟⎠⎞⎜⎝⎛⎟⎠⎞⎜⎝⎛+
=
par este N daca ,212 2impar este N daca ,21
NxNxNx
M (2.2)
Dacă semnalul este o und ă periodică, definim drept amplitudine
vârf la vârf (eng., „peak-to-peak value”) distan ța dintre valoarea cea
Autor : Viorel Paleu 22
mai mică și cea mai mare a amplitudinii semnalului pe timp de o
perioadă.
Fig. 2.1. Amplitudinea vârf la vârf pentru un semnal sinusoidal
Cele mai multe semnale au o natur ă aleatoare, neputând fi
definită o valoare a amplitudinii vârf la vârf. Pentru aceste semnale se
definește deviația standard, σ.
Deviația de la valoarea medi e a semnalului se nume ște deviație
medie , și reprezint ă suma diferen țelor dintre valoarea fiec ărui eșantion x BiB
și valoarea medie µ:
∑−
=− =1
01N
iixNµ σ (2.3)
Achizi ția și procesarea semnalelor 23
În practica oper ării cu semnale este mult mai util ă cunoașterea
deviației standard a semnalului de la valoarea medie, adic ă a puterii
reprezentate de devia ția de la valoarea medie. Devia ția standard este dat ă
de formula (2.4).
()∑−
=−−=1
02 2
11N
iixNµ σ , sau ()∑−
=−−=1
02
11N
iixNµ σ (2.4)
Pentru a exemplifica importan ța practică a deviației standard,
specificăm faptul c ă, semnalele ce reprezint ă zgomote aleatoare în
circuitele electronice se combin ă, zgomotul rezultant fiind egal cu
puterea combinat ă a zgomotelor generatoare și nu cu o combina ție a
amplitudinilor acestora.
Termenul 2σ este adesea folosit în statistic ă și poartă numele de
varianță. Deviația standard ne ofer ă informa ții asupra varia ției
semnalului în raport cu valoarea medie. Varian ța reprezint ă puterea
acestei fluctua ții.
O altǎ noțiune foarte utilizat ǎ în prelucrarea semnalului este cea
de RMS , adica rǎdǎcina medie p ǎtraticǎ (eng., Root Mean Square ).
()∑−
=−⋅−=1
02 2
11N
iixNRMS µ (2.5)
Deviația standard este o masur ă a componentei AC a semnalului,
pe când RMS-ul estimeaz ă ambele componente: DC și AC. Dac ă
semnalul nu are component ă DC, atunci valoarea RMS este tocmai
deviația standard σ.
Autor : Viorel Paleu 24
În practic ă, valorile experimentale sosesc una cate una, fiind
necesară utilizarea a ceea ce se nume ște „running statistics ”, adică
procesarea statistic ă a datelor în timp real.
Relația (2.4) impune reprocesarea tuturor datelor, la fiecare nou ă
achiziție. Mult mai util ă pentru calculul varian ței și a deviației standard
este relația (2.6), care nu impune repetarea unor opera ții.
⎥⎥
⎦⎤
⎢⎢
⎣⎡
⎟
⎠⎞⎜
⎝⎛−−=∑∑−
=−
=1
021
02 2 1
11N
iN
ii i xNxNσ (2.6)
sau:
⎥⎦⎤
⎢⎣⎡−−=Nsumei patratulpatratelor sumaN2
2 __11σ (2.7)
În unele situa ții media valorilor unui semnal reprezint ă ceea ce
este măsurat, pe când devia ția standard reprezint ă un zgomot sau alte
interferen țe. In aceste cazuri, devia ția standard are importan ță practică
doar în compara ție cu valoarea medie.
Pentru un semnal dat, se define ște astfel raportul semnal-
zgomot , SNR , (eng., signal-to-noise ratio) , acesta fiind egal cu raportul
dintre medie și deviația standard.
σµ= SNR (2.8)
Inversul raportului semnal-zgomot , reprezentat în procente, este
denumit coeficient de varia ție și se noteaz ă cu CV.
%100⋅=µσCV (2.9)
Achizi ția și procesarea semnalelor 25
O achiziție de date mai bun ă d.p.d.v. calitativ înseamn ă o valoare
cât mai apropiat ă de 1 pentru SNR și una cât mai apropiat ă de 0 %
pentru CV (exmplu: CV=2% Æ SNR=50).
2.2. Legatura dintre semnal și procesul de baz ă în statistic ă
În procesarea semnalelor, statistica este utilizat ă pentru
interpretarea datelor numerice. În schimb, probabilistica se folose ște
pentru a în țelege procesele care genereaz ă semnalele.
Spre exemplu, daca se d ă cu banul de 100 de ori și se întocme ște
un grafic, probabilitatea de a cadea una sau alta dintre p ǎrți este de 50%.
În realitate va exista o fluctua ție, iregularit ățile aleatoare din șirul de date
fiind denumite variație statistic ă, fluctua ție statistic ă, sau zgomot
statistic .
Pentru un semnal aleator, eroarea standard dintre media a N
puncte și media procesului , STER , este:
NSTERσ= (2.10)
Aceasta eroare se apropie de zero dac ă N tinde la infinit, adic ă
deviația standard tinde c ătre zero.
Pentru a face diferen ța între zgomotul statistic și trendul
procesului de baz ă, se dă exemplul din Figura 2.2 . După cum se
observă, în Figura 2.2 (b), zgomotul statistic este acela și, dar media
semnalului variaz ă. În Figura 2.3 sunt reprezentate semnalele generate
de procese sta ționare. Pentru a evita eror ile ce pot aparea din cauza
influenței procesului de baz ă, în calculul statistic al semnalelor generate
de procese nesta ționare se realizeaz ă secționarea semnalului (împar țirea
pe bucăți), după care se mediaz ă valorile ob ținute pentru fiecare interval
Autor : Viorel Paleu 26
în parte, pentru a ob ține valori globale ale mediei și deviației standard
(dacă se dorește o valoare global ă, pe proces).
Fig. 2.2 . Procese nesta ționare
(a) medie și deviație standard variabile
Achizi ția și procesarea semnalelor 27
(b) medie variabil ă și deviație standard constant ă
Fig. 2.3. Procese sta ționare (doua semnale digitale cu medii și deviații
standard diferite)
2.3. Histograma, func ția masǎ de probabilitate și funcția
densitate de probabilitate
Histograma este o reprezentare grafic ǎ a numarului de
eșantioane dintr-un șir de date (semnal în cazul nostru) care au aceea și
valoare, în func ție de plaja de valori a e șantioanelor. Spre exemplu, in
Figura 2.4 vom reprezenta o secven țǎ de 128 eșantioane dintr-un semnal
numeric, iar al ǎturat histograma corespunz ǎtoare acestui semnal.
Fig. 2.4. Variația unui semnal în timp și histograma corespunz ǎtoare
Autor : Viorel Paleu 28
Suma num ǎrului de apari ții din histogram ǎ este egal ǎ cu numǎrul
de eșantioane din semnalul considerat.
∑−
==1
0M
iiH N (2.11)
unde M reprezint ǎ numǎrul de valori posibile pe care fiecare e șantion le
poate lua.
Histogramele sunt utile pent ru calculul valorii medii și a deviației
standard în cazul unui num ǎr mare de date (milioane de e șantioane), spre
exemplu în cazul proces ǎrii imaginilor. Histogramele grupeaz ǎ împreunǎ
eșantioane care au aceea și valoare. Aceasta permite s ǎ se realizeze
calculul statistic utilizând un num ǎr mic de grupe de valori în loc de
milioane de valori. Prin utilizarea histogramelor se pot calcula media și
deviația standard cu formule (2.12) și (2.13).
∑−
=⋅⋅=1
01M
iiHiNµ (2.12)
()∑−
=⋅−⋅−=1
02
11M
iiH iNµ σ (2.13)
Spre exmplu, H B10B înseamn ǎ numǎrul de eșantioane care au
valoarea egal ǎ cu 10.
Prin aceast ǎ metodǎ se micșoreazǎ numǎrul operațiilor repetate,
scurtǎndu-se considerabil calculul statistic.
Achizi ția și procesarea semnalelor 29
Fig. 2.5. (a) Histograma; (b) func ția masǎ de probabilitate; (c) func ția
densitate de probabilitate.
Semnalul achizi ționat este o versiune bruiat ǎ a procesului de
bazǎ. Histograma se referǎ doar la semnalul achizi ționat.
Procesul de baz ǎ poate fi descris printr-o func ție asemǎnǎtoare
histogramei, dar care se nume ște funcția masǎ de probabilitate (pmf,
adica probability mass function) .
Histograma se refer ǎ întotdeauna la un num ǎr finit de e șantioane,
pe când func ția masǎ de probabilitate încearc ǎ sǎ estimeze ce s-ar ob ține
cu un num ǎr infinit de valori, fiind o caracterizare a procesului care
genereazǎ semnalul. Funcția masǎ de probabilitate poate fi estimat ǎ
pornind de la histogram ǎ și utilizând tehnici matematice.
Autor : Viorel Paleu 30
Histograma are pe axa ordonatelor num ǎrul de repet ǎri ale unei
valori, iar func ția masǎ de probabilitate, pmf, are pe axa ordonatelor
probabilitatea de apari ție a unui num ǎr, exprimat frac țional (vezi cazul
exemplului cu moneda). Pentru a trasa func ția masǎ de probabilitate se
împarte fiecare valoare din histogram ǎ la numarul total de e șantioane, N.
În graficul func ției masǎ de probabilitate vom g ǎsi valori de la 0
la 1, suma tuturor valorilor din grafic fiind 1.
Cu alte cuvinte, funcția masa de probabilitate , pmf , estimeazǎ
probabilitatea ca o anumit ǎ valoare s ǎ fie generat ǎ, sǎ aparǎ în șirul
respectiv de date. Aceastǎ funcție se refer ǎ doar la semnale discrete .
Funcția densitate de probabilitate , sau distribu ție de
probabilitate (notat ǎ cu „pdf”, de la denumirea în englez ǎ: probability
density function), reprezintǎ în cazul semnalelor continui func ția similar ǎ
funcției probabilitate de mas ǎ din cazul semnalelor discrete. Referindu-
se la un semnal continuu în timp, func ția densitate de probabilitate are ca
unitate de m ǎsurǎ pe axa ordonatelor dens itatea de probabilitate.
Pentru a în țelege mai bine conceptul de densitate de probabilitate
vom da un exemplu: Dac ǎ pentru valoarea 30 de mV, pdf este
aproximativ 0.02, nu putem afirma c ǎ probabilitatea de apari ție a valorii
30 este de 2%.
În jurul valorii de 30 mV exist ǎ o infinitate de valori apropiate:
29.9999, 29.99999, 29.999999 etc. Șansa de a avea valorea exacta de 30
mV este foarte mic ǎ. Pentru a calcula probabilitatea, trebuie s ǎ
înmulțim densitatea de probabilitate cu un interval de valori. Spre
exemplu, probabilitatea ca la un anumit moment de timp semnalul sa ia
valori intre 20 și 21 mV este : (21-20) x 0.03 = 0.03. Dac ǎ valoarea pdf
nu este constant ǎ pe un interval, înmul țirea se trasform ǎ în integral ǎ din
pdf pe domeniul respectiv. Semnalul are în orice moment de timp o
anumitǎ valoare, fie ea și nulǎ. Integrala de la – ∞ la +∞ din pdf are
întotdeauna valoarea 1.
Achizi ția și procesarea semnalelor 31
Fig. 2.6 . Funcția densitate de probabili tate pentru un semnal:
dreptunghiul ar (a), triunghiular (b) și aleator (c)
Autor : Viorel Paleu 32
În Figura 2.6 (a, b, c) se prezint ǎ funcțiile densitate de
probabilitate pentru un semnal dreptunghiular (a), un semnal triunghiular (b) și un zgomot aleator (c). Se observ ǎ cǎ semnalul dreptunghiular
poate avea doar doua valori la un a numit moment de timp (0 sau 1),
semnalul triunghiular are o distribu ție uniform ǎ peste un interval de timp
(are mereu o singur ǎ valoare la un moment de timp), iar zgomotul
aleator are o distribu ție sub form ǎ de clopot, numit ǎ și distribu ție
Gaussianǎ.
2.4. Distribu ția normal ǎ sau Gaussian ǎ
Semnalele generate de procese aleatorii au întotdeauna func ția
densitate de probabilitate reprezentat ǎ grafic sub fo rma unui clopot.
Aceasta se nume ște distribuție normal ǎ sau distribu ție Gaussian ǎ,
dupǎ numele matematicianului german Karl Friedrich Gauss (1777-
1855).
Forma de baz ǎ a acestei curbe este generat ǎ de ecua ția
exponențialǎ:
2
)(xexy−= (2.14)
Aceastǎ curbǎ poate fi transformat ǎ într-o curb ǎ Gaussian ǎ dacǎ
se adaugǎ o valoare medie, µ, și o deviație standard, σ. În plus, curba
trebuie normalizat ǎ, astfel încat aria de sub curb ǎ sa fie egal ǎ cu unitatea.
Se obține astfel ecua ția curbei Gauus:
()()2 22/
21σµ
σπ−−
⋅=xe xP (2.15)
Achizi ția și procesarea semnalelor 33
Curbele Gaussiene pot avea diferite valori medii și deviații
standard. Valoarea medie centreaz ǎ curba peste o anumit ǎ gamǎ de
valori, iar devia ția standard controleaz ǎ lațimea formei clopotului.
Integrala din func ția densitate de probabilitate ne d ǎ informații
asupra probabilit ǎții ca un semnal s ǎ capete valori într-o anumit ǎ plajǎ de
valori.
Integrala din func ția densitate de probabilitate (pdf) mai poart ǎ
numele și de funcție de distribu ție cumulativ ǎ (cdf) și se noteaz ǎ
simbolic cu )(xΦ . Integrala dintr-o func ție Gaussian ǎ are doar solu ție
numericǎ (nu are solu ție analitic ǎ).
Spre exemplificare, în Figura 2.7 se dǎ graficul cdf în func ție de
unitǎți de devia ție standard.
Fig. 2.7. Graficul cdf în func ție de unitǎți de devia ție standard, σ
Interpretarea graficului se face astfel: probabilitatea ca valoarea
unui semnal s ǎ se situeze între – ∞ și 2 deviații standard sub medie este:
Φ(-2)=0.0228 x 100 % = 2.28 %; probabilit atea ca valoarea semnalului
sǎ fie între dou ǎ deviații standard sub medie și o deviație standard peste
medie este: Φ(1)-Φ(-2)=0.8185 x 100 % = 81.85 %.
Autor : Viorel Paleu 34
2.5. Generarea zgomot elor pe cale numeric ǎ
Semnalul aleator , sau zgomotul , reprezint ǎ un element
important pentru procesarea numeric ǎ a semnalului. Acesta stabile ște
valoarea minim ǎ a semnalului care poate fi m ǎsurat de un anumit
instrument, distan ța pe care un sistem radio poate comunica etc. O
nevoie stringent ǎ în procesarea semnalului o reprezint ǎ generarea de
diferite zgomote, necesare test ǎrii eficien ței algoritmilor numerici de
tratare a semnalelor.
Zgomotul digital este creat pr in procedura de generare a
numerelor aleatoare. În MATLAB se utilizeaz ǎ comanda rand pentru
zgomot cu distribu ție uniform ǎ și randn pentru zgomot cu distribu ție
normalǎ. Valorile e șantioanelor generate vor fi între 0 si 1. Algoritmii
trebuie testa ți utilizând acela și tip de date ca în operarea curent ǎ. În
practica, cele mai des întâlnit e zgomote sunt cele cu func ția de
distribuție de probabilitate Gaussian ǎ.
Aceste zgomote Gaussiene pot fi generate prin dou ǎ metode:
1) Prin adunarea e șantion cu e șantion a dou ǎ zgomote cu distribu ție
uniformǎ: X=RND+RND ( Figura 2.8 . b), se observ ǎ cǎ din douǎ
semnale cu distribu ție uniform ǎ s-a format un al treilea cu distribu ție
triunghiular ǎ. Prin adǎugarea a 12 zgomote cu distribu ție uniform ǎ se
obține un semnal cu o distribu ție apropiat ǎ de cea Gaussian ǎ (Figura
2.8. c ).
Atenție: Când se adun ǎ douǎ semnale aleatoare, se adaug ǎ si varian țele
acestora, modificându-se corespunz ǎtor devia ția standard, care este
rădăcina pǎtratǎ din varian ța semnalului. Prin urmare, cre ște puterea
zgomotului, adic ǎ puterea de varia ție a semnalului.
Achizi ția și procesarea semnalelor 35
Fig. 2.8. Generarea semnalelor aleatoare (zgomote) cu distribu ție
Gaussianǎ prin metoda adun ǎrii semnalelor aleatoare cu distribu ție
uniformǎ
Autor : Viorel Paleu 36
2) Prin utilizarea de dou ǎ ori a func ției de generare a numerelor
aleatoare (R1 și R2) și combinarea acestora, conform ecua ției
urmǎtoare:
() ()22/1
1 2cos log2 R R X π −= (2.16)
Rezultatul ecua ției anterioare trebuie multiplicat cu o devia ție
standard, la care se adaug ǎ valoarea medie dorit ǎ.
În prelucrarea numeric ǎ a semnalelor este adesea necesar ǎ
utilizarea aceluia și zgomot în rânduri repetate. În acest sens, se utilizeaz ǎ
algoritmul de generare a semanlelor aleatoare plecând de la o valoare
de start cuprins ǎ între 0 și 1, numit ǎ și sǎmânțǎ (eng.: „seed” ). Acest
numǎr trece printr-un algoritm fixa t, pentru a genera un nou num ǎr
cuprins între 0 și 1. Acest nou num ǎr, este considerat num ǎr aleator și va
fi utilizat ca s ǎmânțǎ pentru a genera un nou num ǎr aleator. Cel mai
utilizat algoritm pentru a transforma „s ǎmânța” într-un num ǎr aleator
este urmatorul:
() c b aS R modulo += (2.17)
unde S=s ǎmânța, R=noul num ǎr, iar a,b, c=constante alese
corespunzator. În acest fel se ob ține, utilizând acela și algoritm și aceeași
sǎmânțǎ, același semnal aleator (zgomot).
Pentru a genera semnale aleatoare Gaussiene plecând de la semințe diferite, se utilizeaz ǎ ca generator de va loare cu rol de s ǎmânțǎ
valoarea furnizat ǎ de un ceas și divizatǎ astfel încât s ǎ ia valori între 0 și
1. Deoarece numerele sunt generate for țat, se mai numesc și pseudo-
aleatoare.
Achizi ția și procesarea semnalelor 37
2.6. Precizie și acuratețe
Precizia și acurate țea sunt termeni utiliza ți pentru a descrie
sisteme și metode folosite pentru m ǎsurare, estimare și predicție. La un
moment dat de timp, un parametru este caracterizat de o valoare real ǎ.
Prin mǎsurare, aceast ǎ valoare real ǎ este transformat ǎ în valoare
masuratǎ, care poate avea o eroare (mai mic ǎ sau mai mare) fa țǎ de
valoarea real ǎ. Precizia și acuratețea sunt cei doi termeni care descriu
eroarea ce poate exista între cele dou ǎ valori: real ǎ și masuratǎ.
Spunem c ǎ o mǎsurǎtoare are o precizie bun ǎ, atunci când
între mai multe m ǎsurǎtori repetate în condi ții identice se ob ține o
împrǎștiere mic ǎ a rezultatelor (devia ție standard restrâns ǎ). Dacǎ
mǎsurǎtorile au fost executate cu precizie, dar media șirului de
mǎsuratori difer ǎ de valoarea medie a m ǎrimii de m ǎsurat, spunem c ǎ
mǎsurǎtorile nu au acurate țe.
Lipsa de acurate țe este generat ǎ de o eroare sistematic ǎ,
intervenit ǎ de obicei în procesul de calibrare a instrumentelor. Lipsa de
precizie a unei mǎsurǎtori este generat ǎ de erori aleatoare, nesistematice .
Acestea se pot datora unor varia ții ale condi țiilor de mediu sau
nerespect ǎrii unor condi ții similare în timpul efectu ǎrii mǎsuratorilor ce
se doresc a fi identice. In Figura 2.9 s-a eviden țiat diferen ța care exist ǎ între precizie și
acuratețe în cadrul unui șir de mǎsuratori efectuate cu un sonar
(dispozitiv de m ǎsurare a adâncimii apelor).
Autor : Viorel Paleu 38
Fig. 2.9. Reprezentarea grafic ǎ a preciziei și acurateții
unui șir de mǎsurǎtori
Pentru a diminua eroarea generat ǎ de lipsa de precizie în cadrul
unui șir de mǎsurǎtori, se apeleaz ǎ la medierea valorilor ob ținute. Dac ǎ
rezultatul se apropie de valoarea real ǎ a parametrului de m ǎsurat, erorile
au fost aleatoare și erau datorate preciziei insuficiente a m ǎsurǎtorilor.
În cazul în care medierea nu apropie rezultatul m ǎsuratorii de cel
real, avem de a face cu o lips ǎ de acurate țe a mǎsurǎtorilor, fiind
necesarǎ recalibrarea aparatului.
Achizi ția și procesarea semnalelor 39
CAPITOLUL 3
TRANSFORM ǍRI EFECTUATE ASUPRA
SEMNALELOR NUMERICE
3.1. Transformarea în domeniul Z
Semnalele pot fi reprezentate în domeniul complex cu ajutorul
transform ǎrii în domeniul Z (eng. : Z transform ). Transformata Z exist ǎ
atât în forma direct ǎ, cât și în forma invers ǎ. Forma direct ǎ a
transform ǎrii în Z este cea mai utilizat ǎ, fiind prezentat ǎ în cele ce
urmeazǎ.
Transformata Z , X(z), a unei secven țe complete de date [x
BkB]
este definit ǎ prin relația (3.1):
()∑∞
−∞=−⋅=
kk
kzx zX (3.1)
cu condiția ca semnalul [x BkB] sǎ aibǎ valori pentru toate valorile lui k. În
aplicații practice, transformata Z a unui semnal numeric compus din N
eșantioane se define ște astfel:
()∑−
=−⋅=1
0N
kk
kzx zX (3.2)
Autor : Viorel Paleu 40
În general variabila z este o variabil ǎ complex ǎ, exprimat ǎ în
formǎ polarǎ astfel:
θjerz⋅= (3.3)
Când ne referim la factorul x BkB , factorul z P-k
P reprezint ǎ o întârziere
a semnalului în timp de kT secunde, ori k intervale de e șantionare de la
timpul t=0. Întârzierea unitate , notatǎ cu simbolul z
P-1
P, are efectul de
întârziere a semnalului cu intervalul unui e șantion, adic ǎ o perioad ǎ de T
secunde în timp. La timpul t=kT, ie șirea y BkB a întârzierii unitate este egal ǎ
cu valoarea întrâziat ǎ a eșantionului de intrare x Bk-1B.
Fig. 3.1 . Schematizarea elementului de întârziere unitate
3.1.1. Func ția de transfer digital a unui sistem numeric
În Figura 3.2 se prezint ǎ schema general ǎ a unui sistem digital.
Fig. 3.2. Schema unui sistem numeric
Func ția de transfer a unui sistem numeric, H(z), descrie modul
în care un sistem opereaz ǎ asupra unei secven țe de date de intrare, x
Bk B,
pentru a produce o secventa de ie șire, y BkB.
Achizi ția și procesarea semnalelor 41
Func ția de transfer este dat ǎ de relația:
())()(
zXzYzH= (3.4)
unde X(z) și Y(z) sunt trasform ǎrile în Z ale secven țelor de intrare și
respectiv de ie șire, x BkB și y BkB.
Pentru întrâzierea unitate din Figura 3.1 , funcția de transfer are
valoarea: H(z)=z P-1
P, rezultat ob ținut în urma transform ǎrii:
)( )(1 1
1 zX z zx z z x zY
kk
k
kk
k ⋅=⋅⋅=⋅ =−∞
−∞=− −∞
−∞=−
−∑ ∑ (3.5)
Forma matematic ǎ mai des utilizat ǎ pentru func ția de transfer a
unui sistem digital este dat ǎ de relația (3.6):
L
LL
L
za zaazb zbbzH− −− −
⋅+⋅+⋅+⋅+=
……)(1
1 01
1 0 (3.6)
Coeficien ții a BnB și b BnB sunt constante care determin ǎ raspunsul
sistemului. Ecuatia (3.6) reprezint ǎ funcția de transfer de ordinul L a
unui sistem digital invari ant în timp. Ordinul numar ǎtorului din ecua ția
(3.6) trebuie s ǎ fie mai mic sau egal cu ordi nul numitorului, o parte din
coeficienții șirului b BnB putând fi nuli. În domeniul timp, ie șirea sistemului
digital din Figura 3.2 , care are func ția de transfer H(z), este dat ǎ de
relația (3.7):
∑∑
=−
=− ⋅−⋅=L
nnk nL
nnk n k ya xb y
1 0 (3.7)
Autor : Viorel Paleu 42
Ecua ția (3.7) rezult ǎ din multiplicarea vectorial ǎ a relațiilor (3.5)
și (3.6) și prin interpretarea lui z P-k
P drept întarziere de k e șantioane.
Rǎdǎcinile num ǎrǎtorului și numitorului func ției de transfer H(z)
se numesc zerouri și respectiv poluri ale unui sistem numeric liniar
invariabil. Se poate stabili o legatur ǎ între pozi ția polurilor unui sistem și
stabilitatea sa și se poate demonstra c ǎ un sistem numeric este strict
stabil dac ǎ toți polii sǎi sunt în interiorul cercului cu raza egal ǎ cu
unitatea și este la limita de stabilitate dac ǎ are poli simpli situa ți pe
cercul cu raz ǎ unitarǎ.
Cunoscând func ția de transfer a unui sistem, H(z), și datele de
intrare, x
BkB, se pot calcula ie șirele y BkB. Dacǎ se cunsosc valorile intr ǎrilor și
ieșirilor din sistem, x BkB și y BkB, se pot deduce coeficien ții a BnB și b BnB din funcția
de transfer corespunz ǎtoare sistemului respectiv.
Prin determinarea polilor func ției de transfer și reprezentarea lor
graficǎ se determin ǎ stabilitatea sistemului. Dac ǎ sistemul nu este stabil
se poate interveni prin modific ǎri în structura acestuia pentru a-l aduce la
starea de stabilitate.
Fig. 3.3 . Zona de stabilitate în Z și legatura cu zona de stabilitate în p
(sistem analogic)
Achizi ția și procesarea semnalelor 43
3.1.2. Aplica ții ale func ției de transfer a unui sistem
UAplicația 1 U
Func ția de transfer a unui sistem tip Fibonacci este:
2 111)(−−−−=
z zzH (3.8)
Sǎ se studieze stabil itatea sistemului.
URezolvare U: Polii lui H(z) sunt reali și au valoarea 25 1±. Pentru a stabili
poziția lor în cercul cu raza unitar ǎ din planul complex se folose ște
comanda Matlab: zplane([b BnB], [a BnB]). Pentru cazul sistemului nostru se
scrie comanda Matlab: zplane([1], [1 -1 -1]) , rezultatul grafic afi șat de Matlab fiind redat in
Figura 3.4 .
Se observ ǎ cǎ sistemul este instabil, unul din poli fiind situat în
afara suprafe ței cercului unitar din planul complex.
Fig. 3.4. Studiul stabilita ții sistemului (sistem instabil de tip Fibonacci)
Autor : Viorel Paleu 44
UNotǎ U: Cel mai adesea sistemele digitale studiate reprezint ǎ filtre
numerice.
UAplicația 2 U
Sǎ se studieze stabilitatea filtrulu i numeric de tip Butterworth
trece-jos, care are ordinul 5 și frecvența de taiere de 0.2.
URezolvare U:
Se scriu comenzile Matlab:
[z,p]=butter(5, 0.2);
zplane(z, p);
Rezultatul este reprezentat în Figura 3.5 .
Fig. 3.5. Determinarea stabilita ții filtrului Butterworth trece-jos
(de ordin 5 și frecvențǎ de taiere 0.2)
Achizi ția și procesarea semnalelor 45
Se observ ǎ cǎ polii sistemului se afl ǎ toți în interiorul cercului
unitar, sistemul fiind stabil.
3.1.3. Func ția de transfer echivalent ǎ
Func ția de transfer echivalent ǎ pentru mai multe sisteme
numerice legate în serie este dat ǎ de relația (3.9).
∏
==M
nn c zH zH
1)( )( (3.9)
Fig. 3.6. Diagrama bloc a unor sistem e numerice legate în serie
Pentru un sistem compus din ma i multe sisteme numerice legate
în paralel, func ția de transfer va fi:
∑
==M
nn c zH zH
1)( )( (3.10)
Autor : Viorel Paleu 46
Fig. 3.7. Diagrama bloc a unor sistem e numerice legate în paralel
În prelucrarea semnalelor, când ne referim la sisteme digitale ne referim în cele mai multe cazuri la filtre numerice. R ǎspunsul filtrelor
digitale în domeniile timp și frecven țǎ prezintǎ un interes major în
procesarea digital ǎ a semnalelor
Achizi ția și procesarea semnalelor 47
3.2. Transformata Fourier Discret ặ (DFT – Discret Fourier
Transform)
3.2.1. Defini ția transformatei Fourier discrete
Transformata Fourier pentru semnale analogice este un operator
liniar si variant in timp, definit pe spa țiul distribu țiilor temperate cu
valori in el insu și, fiind data de rela ția (3.11).
() ( ) dt etx XS Stj⋅⋅= ⇒ℑ−∞
∞−∫ωω ; : (3.11)
Inversa transformatei Fourier este:
() ( )() () ω ωπωωd e X X txS Stj⋅⋅ = ℑ= ⇒ℑ ∫∞
∞−− −
21 ; :1 1 (3.12)
Se remarca faptul c ặ transformata Fourier trece un semnal din
domeniul variabilei con tinui timp, t, in domeniul variabilei frecven țặ
(pulsația w). Transformata Fourier discret ặ (Discret Fourier Transform,
DFT) este o opera ție de baza in multe aplic ții de procesare a semnalului,
fiind aplicat ặ unei secven țe ordonate de e șantioane, adic ặ unui semnal
numeric. Prin aplicarea DFT se spune c ặ se obține informa ție spectral ặ
in mod explicit despre secven ța de eșantioane (despre semnal).
In general, în urma transform ặrii Fourier discrete se ob ține o
secvențặ de numere complexe, prin transformarea unui șir de numere
reale (sau complexe).
Fie semnalul discret cu N e șantioane, reprezentat în domeniul
timp:
] ,…,,[][) ()(
1 1 0 − =⇒ ⇒N k x xx x e esantionar tx , (3.13)
Autor : Viorel Paleu 48
unde indexul []]1 ;0−∈ N k
Putem intâlni dou ặ cazuri:
(1) Când ℜ∈][kx :
] ,…, [][ ][
21,0 N M k X XX x DFT x =⇒⇒ , când ⎥⎦⎤
⎢⎣⎡∈2;0Nm (3.14)
(2) Când C xk∈][:
] ,…, [][ ][
21,0 N M k X XX x DFT x =⇒⇒ , când []1 ;0−∈ N m (3.15)
Se observa c ặ, ân cazul semnalului discret real, transformata
Fourier discret ặ are 12+N componente, pe când în cazul semnalului
discret complex transformata Fourier are N componente, ca și semnalul
de origine. Se spune c ặ, dacặ șirul []kx este complex, are 2 grade de
libertate, iar dac ặ este real are un singur grad de libertate.
3.2.2. Frecven ța DFT și definiția spectrelor de amplitudini și
faze
Indexul m reprezint ặ frecven ța corespunz ặtoare fiec ặrei
componente X BmB. Valorile frecven țelor asociate componentelor
trasformatei Fourier discrete, X BmB, se calculeazã cu rela ția:
NTmfreq= [ H z ] (3.16)
unde m=0…(N/2)
Achizi ția și procesarea semnalelor 49
Unitate Hz – s Rad Hz rad/s
Simbol ν Ω F Ω
Frecvența
componentei X B1B 1/N 2 π/N 1/NT 2 π/NT
Frecvența
componentei X BmB m/N 2 πm/N m/NT 2 πm/NT
Frecvența
componentei X BN/2B 0.5 Π 1/2T π/T
Frecvența de
eșantionare 1 2 π 1/T 2 π/T
Tab. 3.1. : Frecven țele componentelor DFT e xprimate in diferite unt ặți
de mặsurặ
Deoarece rezultatul transformatei Fourier discrete este un num ặr
complex, putem reprezenta fiecare X BmB in forma polar ặ:
mj
m m eX Xθ⋅= (3.17)
Indexul m reprezint ặ frecvența corespunz ặtoare fiec ặrei componente X BmB.
Unde mX reprezint ặ amplitudinea lui X BmB, iar mθ reprezint ặ faza lui X BmB.
Reprezentarea grafic ặ a amplitudinilor mX în func ție de
indicele de frecven țặ m se nume ște spectru de amplitudini a semnalului
discret []kX.
Similar, reprezentarea grafic ặ a fazelormθ în funcție de indicele
de frecven țặ m se nume ște spectru de faze a semnalului discret []kX.
Așadar, un spectru ne ofer ă informatii asupra con ținutului în
frecvențặ a unui semnal. Cel mai utilizat in prelucrarea semnalelor este
spectrul amplitudinilor.
Autor : Viorel Paleu 50
Se observã c ặ, pentru orice semnal numeric real, frecven ța
componentei finale a DFT, x BN/2B, este jumatate din frecven ța de
eșantionare, in concordan țặ cu Teorema E șantionặrii.
Perioada componentei X BmB, T BXmB, este inversã frecven ței sale :
mNT
mX= [eșantioane], sau mNTT
mX= [secunde] (3.18)
3.2.3. Redundan ța Transformatei Fourier Discrete (DFT)
Periodicitatea DFT este o pr oprietate importantã. Dacã [x BkB] este
un semnal discret real, atunci co mponentele DFT cu indexul de
frecvențã, m, cuprins între 0 și N/2, adicã ⎥⎦⎤
⎢⎣⎡∈2;0Nm , acoperã toatã
plaja de valori corespunz ătoare transform ării DFT a semnalului [x BkB].
In cazul semnalelor reale, dac ă indexul m al unei componente
DFT este în afara domeniului de valori ⎥⎦⎤
⎢⎣⎡
2;0N, va exista o singur ă
component ă echivalent ă cu aceasta în interiorul domeniului ⎥⎦⎤
⎢⎣⎡∈2;0Nm .
Componenta DFT din afara intervalului ⎥⎦⎤
⎢⎣⎡∈2;0Nm , care are o valoare
echivalent ă in interiorul acestui interval este o component ă redundant ă
din spectrul semnalului.
In cazul semnalelor numerice definite în mulțimea numerelor
complexe , vor exista valori redunda nte în afara domeniului
[] 1 ;0−∈ N m . Se poate demonstra matematic faptul c ă pentru orice X BmB,
cu m>N-1, exist ă o valoare unic ă redundant ă în intervalul []1 ;0−∈ N m .
Achizi ția și procesarea semnalelor 51
3.3. Transformata Fourier rapid ă (FFT- Fast Fourier
Transform)
Este asem ănătoare ca algoritm cu trasformata Fourier discret ă
(DFT), dar elimin ă o serie de produse între numere complexe efectuate
de algoritmul DFT. In acest fel, se ob ține o scurtare considerabil ă a
timpului de execu ție.
Dacă numărul de eșantioane N ale semnalului [x BkB] este putere a
lui 2, raportul timpilor de calcul dintre transform ările FFT si DFT va fi:
NN timpulDFTtimpulFFT
2log21⋅= (3.19)
Algoritmul FFT devine complicat dac ă numărul de eșantioane N
nu reprezint ă putere a lui 2. Când se aplic ă FFT este de preferat s ă se
aleagă un număr N putere a lui 2, sau s ă se completeze cu zerouri
(eșantioane nule) pân ă se atinge o cifrã N care s ă reprezinte o putere a
lui 2. Prin ad ăugare de zerouri nu se modific ă spectrul.
In cele mai multe aplica ții este mai simplu de utilizat DFT în loc
de FFT.
3.4. Inversa Transformatei Fourier Discrete (IDFT)
Inversa DFT ese utilizat ă pentru a ob ține o secven ță de date [x BkB]
dintr-un spectru complex [X BmB].
()[] 1 ;0 ;11
0/ 2−∈ ⋅ =∑−
=N k e XNxN
mN mkj
m kπ (3.20)
Autor : Viorel Paleu 52
Pentru calculul IDFT avem nevoie întotdeauna de N valori, de la
m=0 până la m=N-1. Dac ă transformata Fourier discret ă a unui semnal
are (N/2)+1 valori, trebuie s ă generăm componente DFT pân ă la N-1.
Aceste componente se numesc conj ugate complexe ale valorilor X BmB și se
notează *
mX. Formula pentru generarea conjugatelor complexe este
următoarea :
()[] [ ] * 21
01
0/ 2 / 2
mkjN
kN
kN mkj
kNkmN j
k mN X e ex ex X =⋅ ⋅= ⋅=−−
=−
=+ − −
−∑∑π π π
(3.21)
Dacă semnalul este real, []ℜ∈kx , spunem cã MNX− este
conjugata complex ă a lui mX. Dacă semnalul este complex, [] C xk∈,
formula anterioar ă nu mai este aplicabil ă, deoarece X BmB are deja
componente pana la N-1.
În Matlab, cele mai utilizate func ții pentru calculul transformatei
Fourier directe și respectiv inverse sunt fft pentru transformata Fourier
directă si ifft pentru transformata Fourier invers ă.
Dacă este necesar ă calcularea FFT (DFT) și IFFT pentru mai
multe semnale (o matrice de semnale cu acela și număr de eșantioane), se
aplică in Matlab func țiile fft2 și respectiv ifft2.
Achizi ția și procesarea semnalelor 53
3.5. Func ția de autocorela ție
Una dintre cele mai puternice metode de analiz ă a semnalelor
periodice o reprezint ă metoda analizei frecven țiale.
Această metodă este bazat ă pe proprietatea cu rbelor periodice de
a se descompune într-o combina ție de curbe sinusoidale pure, cu
frecvențe armonice, indiferent de gradul de complexitate a curbei
periodice care de scrie semnalul.
f(t)=x0+x1sin(ωt+φ1)+x2sin(2ωt+φ2)+x
3sin(3ωt+φ3)+…+xnsin(nωt+φn) (3.22)
Numărul termenilor descompunerii Fourier din ecua ția (3.22)
poate fi infinit. Elementele descompunerii semnalului în serii Fourier reprezintă spectrul de frecven ță al semnalului.
În Figura 3.8 este reprezentat un semnal periodic descompus în
două componente armonice (cele mai importante).
Fig. 3.8. Descrierea semnalului în te rmen de spectre de frecven ță:
a) în domeniul timp;
b) în domeniul frecven ță.
Autor : Viorel Paleu 54
Alte exemple de spectre de frecven ță sunt ilustrate în Figura 3.9.
Fig. 3.9. Spectre de frecven ță pentru semnal sinusoidal, semnal compus
din două sinusoide și semnal dreptunghiular:
a) reprezentare în domeniul timp;
b) reprezentare în domeniul frecven ță.
Achizi ția și procesarea semnalelor 55
Dup ă cum se observ ă, spectrul de frecven ță este reprezentat
prin linii discrete (în cazul semnal elor periodice). Semnalele aleatoare
(zgomotele) prezint ă un spectru de frecven ță continuu.
3.6. Func ția de intercorela ție și autocorela ție
Funcțiile de intercorela ție și autocorela ție reprezint ă metode de
prelucrare în domeniul timp al semnalului.
Deși face parte dintre metodele oarecum statistice, nu am inclus-
o în capitolul de statistic ă. Spre deosebire de al ți parametri statistici (care
oferă informații despre distribu ția înălțimilor, amplitudinilor semnalului,
medie, median ă, funcția densitate de probabilitate, devia ția standard etc.)
funcția de autocorela ție dă informa ții asupra evolu ției semnalului
analizat în domeniul temporal (timp).
Funcția de autocorela ție, Ψ (τ), descrie modul în care valoarea
unei amplitudini instantanee par ticulare depinde de valoarea
amplitudinii instantanee precedente .
Ψ(τ)=
∞→TlimT1∫−2/
2/)(T
Ttf⋅f(t+τ)dt (3.23)
f(t)= amplitudinea semnalului la un moment arbitrar t;
f(t+τ)= amplitudinea semnalului la momentul t+ τ.
Autor : Viorel Paleu 56
Fig. 3.10. Interpretarea grafic ă a funcției de autocorela ție
În cazul semnalelor aleatoare ideale ( zgomot alb cu frecven țe
cuprinse între 0… ∞), generate de procese sta ționare, funcția de
autocorela ție reprezint ă un impuls infinit îngust în apropiere de τ=0
(Fig. 3.11 a ), sugerând faptul c ă amplitudinea instantanee a semnalului
la un anumit moment de timp este complet independent ă de celelalte
valori ale amplitudinilor instantanee.
Fig. 3.11. Funcția de autocorela ție pentru:
a) zgomot alb (proces ideal sta ționar, frecven țe cuprinse între 0 și
infinit);
b) procese sta ționare aleatoare cu band ă largă de frecven țe (des
întâlnite în practic ă);
c) procese sta ționare aleatoare cu band ă îngustă de frecven țe.
Achizi ția și procesarea semnalelor 57
În practica de zi cu zi vibrațiile asociate cu procesele
staționare aleatoare au valori ale func ției de autocorela ție diferite de
zero, situate în apropierea momentului de timp τ=0, însă forma func ției
de autocorela ție nu este func ția impuls de l ățime infinit îngust ă ca în
cazul zgomotelor albe. Explica ția constă în faptul c ă, semnalele ce
caracterizeaz ă procese aleatorii din practica de zi cu zi, sunt limitate ca
bandă de frecven ță, funcția de autocorela ție având împr ăștiere mai mare
cu cât banda de frecven ță este mai îngust ă, deoarece rata la care
semnalul î și schimbă valoarea unei amplitudini este mai limitat ă (pe
domenii mai înguste de frecven ță).
Dacă procesul vibrator este periodic , funcția autocorela ție va fi
deasemenea periodic ă, având aceeași perioadă ca și funcția ce descrie
semnalul (vezi Fig. 3.12.a ).
In cazul semnalelor neperiodice, pentru deplas ări de timp mari,
funcția autocorela ție tinde către pătratul valorii medii.
∞→τlimψx(τ)=( )(tx )2 (3.24)
Dacă semnalul are valoare medie nul ă, funcția de autocorela ție
scade la 0 pentru valori mari ale deplas ării τ (vezi Fig. 3.12 b ).
Dacă un semnal cu varia ție periodic ă este ascuns într-un
semnal aleatoriu , funcția de autocorela ție devine periodic ă pentru
valori mari de timp τ (Fig. 3.12 c ).
Fig. 3.12 .
Autor : Viorel Paleu 58
Funcția de autocorela ție capătă valoare maxim ă pentru
deplasarea temporal ă τ=0, aceast ă valoare fiind egal ă cu valoarea mediei
pătratice a procesului aleatoriu.
ψx(0)=
∞→TlimT1∫−2/
2/)(T
Ttx dttx)(⋅ =
∞→TlimT1∫−2/
2/T
Tx2(t)dt= )(2tx (3.25)
Pentru sisteme liniare ∫−2/
2/T
T)(2txdt este o m ărime propor țională
cu energia pe intervalul (-T/2; T/2).
Prin împ ărțire la valoarea T a intervalului se ob ține puterea
medie a semnalului pe intervalul respectiv.
Importanța funcției de autocorela ție:
Fiind date dou ă semnale
()tx1și ()tx2 se define ște funcția de
corelație relativă a semnalelor men ționate, )(
12τψ , astfel:
)(
12τψ =∫∞
∞−x1(t+τ)·x2(t)dt (3.26)
Dac ă ψ12(τ)=0, atunci spunem c ă semnalele nu sunt corelate.
Din defini ția funcție de corela ție, rezult ă că funcția de
autocorela ție reprezint ă compararea unui semnal cu el însu și.
Dacă un semnal este de energie finit ă rezultă că:
Ψ(0)=∫∞
∞−x2
1(t)dt (3.27)
Achizi ția și procesarea semnalelor 59
adică valoarea func ției de autocorela ție în origine reprezint ă tocmai
energia semnalului respectiv .
Ψ(0)=max )(τψ (3.28)
Pentru semnale aleatoare cu valoare medie zero, rezult ă că:
0lim
→τΨ(τ)=0 (3.29)
Formula (3.29) este important ă în recunoa șterea semnalelor
perturbate.
Exemplu : Pentru a eviden ția practic importan ța funcției de corela ție
exemplific ăm cazul sistemelor radar.
Să presupunem c ă avem un emi țător, care transmite o und ă radio
de formă cunoscut ă pe o anumit ă direcție. Consider ăm, spre exemplu c ă
unda emis ă este un impuls triunghiular. Dac ă această undă lovește un
obiect, spre exemplu un avion, un da care va fi interceptat ă de către
receptorul aflat lâng ă emițător va consta din:
– o versiune deplasat ă și scalată a semnalului transmis;
– zgomot aleator, provenit din interferen ța cu unde radio, zgomot din
circuitele electronice, etc.
Deoarece semnalul se propag ă cu viteza luminii (3 x 810 m/s) se
poate afla distan ța la care se afl ă obiectul lovit de und ă (avionul).
Problema principal ă o reprezint ă detectarea acestui semnal
transmis în semnalul primit (semnalul de form ă cunoscut ă, înnecat în
zgomot). R ăspunsul la aceast ă problemă îl oferă funcția de corela ție.
Corelația este o opera ție matematic ă similară convoluției dintre
două semnale, prin opera ția de corela ție, rezultând un al treilea semnal.
Autor : Viorel Paleu 60
Cel de-al treilea semnal (rezultat) se nume ște intercorela ție. Dacă
semnalul este corelat cu el însu și numim semnalul rezultat
autocorela ție.
Corelația reprezint ă tehnica optim ă prin care se detecteaz ă un
semnal de form ă cunoscut ă întru-un zgomot aleator. Mai exact, aceast ă
tehnică este optim ă în cazul zgomotelor albe.
Acest procedeu de utilizare a corela ției în vederea detect ării unui
semnal cunoscut înnecat în zgomot se nume ște filtrare potrivit ă
(matched filtering).
3.7. Densitatea spectral ă a mediei p ătratice (densitatea
spectrală de putere)
În cazul semnalelor periodice, con ținutul în frecven ță al
semnalului este determinat prin analiza Fourier, care permite trasarea spectrului frecven țelor. În plus se ob țin informa ții despre reparti ția
amplitudinii semnalului pe frecven țele componente.
În cazul semnalelor aleatorii este mult mai util ă determinarea
diagramei densitate spectral ă de putere sau densitate spectral ă a
mediei p ătratice , G(f). Presupunând c ă integrala din func ția de
autocorela ție, Ψ(τ), este finit ă pe intervalul (- ∞;+∞), se define ște
densitatea spectral ă de putere conform rela ției de mai jos, care reprezint ă
transformata Fourier a func ției de autocorela ție.
F[Ψ(τ)]=S(f)=
∫∞
∞−Ψ(τ)·τπfie2−dτ (3.30)
unde f=frecven ța.
Achizi ția și procesarea semnalelor 61
Funcția de autocorela ție se obține prin transformata Fourier
inversă, aplicată mărimii S(f).
1−ℑ[S(f)]=Ψ(τ)=∫∞
∞−S(f)·τπfie2df (3.31)
Relațiile (3.30) și (3.31) au fost denumite relațiile Wiener-
Khinchin .
Notăm densitatea spectral ă de putere:
G(f)=2·S(f), pentru f>0 (3.32)
În procesele realizabile fizic Ψ(τ)=Ψ(-τ)
Ψ(τ)=2
∫∞
0S(f)·cos(2 πf·τ)df (3.33)
din relațiile (3.32) și (3.33) rezult ă relația (3.34):
Ψ(τ)=∫∞
0G(f)·cos(2 πf·τ)df (3.34)
Pentru a interpreta func ția G(f) să considerăm cazul τ=0.
Ψ(0)=
∞→TlimT1∫−2/
2/T
Tf(t)·f(t+0)dt=
∞→TlimT1∫−2/
2/T
Tdttf )(2 (3.35)
și Ψ(0)=∫∞
0G(f)df (3.36)
din (3.35) și (3.36) rezult ă
Autor : Viorel Paleu 62
∞→TlimT1∫−2/
2/T
T ∫∞=
02)(dtt f G(f)df (3.37)
Ambele integrale reprezint ă o măsură a puterii semnalului,
membrul stâng al ecua ției (3.37) este puterea se mnalului în domeniul
timp, iar membrul din dreapta în domeniul frecven ță.
G(f) a fost denumit ă densitate spectral ă a mediei p ătratice
(pentru c ă în membrul stâng al ecua ției (3.37) f(t) este la p ătrat), sau
densitate spectral ă de putere .
În practic ă, determinarea G(f) se realizeaz ă pe o band ă îngustă de
frecvențe, B.
() () BfG dffGBf
f⋅=⋅∫+
(3.38)
cu condiția ca B să fie suficient de îngust ă pentru a avea G(f)=ct.
Fig. 3.13 . Determinarea G(f) pe o band ă îngustă de frecven țe, B.
Achizi ția și procesarea semnalelor 63
În practic ă, B se ia mai mic decât 1/3 din l ățimea oric ărui vârf
din spectrul de m ăsură.
Relația dintre banda energetic ă B a semnalului și durata de timp
T pe care se face analiza semnalul ui depinde de forma semnalului și se ia
în aplicații inginere ști T×B=1, ceea ce reprezint ă o aproximare facil ă și
destul de precis ă.
3.8. Aplica ții
UAplicația 1 U : Să se traseze spectrul in amplitudini a unui semnal
sinusoidal real,dat de formula :
x(t)= sin(2*pi*(t-0.1)/0.160)], dac ă 0<= t < 1.024 sec;
cu un num ăr N=1024 de e șantioane, din care s ă se afișeze grafic
primele 61 de e șantioane.
USoluția U :
% Generarea unui semnal numeric, cu 1024 de e șantioane, având func ția
dată de formula:
% x(t)= sin(2*pi*(t-0.1)/0.160)], dac ă 0<= t < 1.024 sec;
t=0:0.001:1.023; T=0.001; k=1:1024; x=sin(2*pi*(k*T-0.1)/0.160); subplot(2,1,1) plot(t, x, 'r'); grid on; title('Semnal sinusoidal și spectrul amplitudinii semnalului');
xlabel('Timp (s)'); ylabel('Amplitudine'); X=fft(x);
Autor : Viorel Paleu 64
ampl_spect=abs(X);
subplot(2,1,2) freq=(0:60)/(1024*T); plot(freq, ampl_spect(1:61), 'b*'); grid on; xlabel('Frecven ță (Hz)'); ylabel('Amplitudine');
end
% Nota : pentru a avea numai o component ă DFT diferit ă de zero,
sinusoidă trebuie e șantionată pe un num ăr întreg de cicluri.
Fig. 3.14. : Variația semnalului sinusoidal in timp și spectrul
amplitudinilor semnalului
Achizi ția și procesarea semnalelor 65
UAplicația 2 U: Să se traseze spectrul in am plitudini a unui semnal real,
compus din suma a dou ă sinusoide, conform formulei :
x(t)= 0, dac ă t < 0.1 sec;
= sin(pi*(5*k*T-0.1)/ 0.175)+sin(2*pi*(k*T-0.1)/0.160), dac ă 0.1 <=
t < 1.024 sec,
în care primele 100 de e șantioane s ă fie nule. (N=1024 de e șantioane,
să se afișeze grafic primele 61 de e șantioane).
USoluția U:
% Generarea unui semnal numeric, cu 1024 de e șantioane, cu func ția
dată de formula:
% x(t)= 0, dac ă t < 0.1 sec;
% = sin(pi*(5*k*T-0.1)/0.175) +sin(2*pi*(k*T-0.1)/0.160), dac ă 0.1
<= t < 1.024 sec; t=0:0.001:1.023; T=0.001; k=101:1024; z=zeros(1,100); x=[z, sin(pi*(5*k*T-0.1)/0.175) +sin(2*pi*(k*T-0.1)/0.160)];
subplot(2,1,1) plot(t, x, 'r'); grid on; title('Semnal sum ă de dou ă sinusoide și spectrul amplitudinii
semnalului'); xlabel('Timp (s)'); ylabel('Amplitudine'); X=fft(x); ampl_spect=abs(X); subplot(2,1,2) freq=(0:60)/(1024*T);
plot(freq, ampl_spect(1:61), 'b*'); grid on;
Autor : Viorel Paleu 66
xlabel('Frecven ță (Hz)'); ylabel('Amplitudine'); end;
Fig. 3.15. Variația unui semnal compus din dou ă sinusoide și spectrul
amplitudinilor semnalului
Se observ ă că in spectrul de amplitudine se reg ăsesc douã
vârfuri corespunz ătoare frecven țelor celor dou ă semnale sinusoidale
care alcătuiesc semnalul studiat.
UAplicația 3 U: Să se genereze un semnal sinusoidal amortizat, cu
componente numere reale, descris de func ția matematic ă:
x(t)= 0, dacã t < 0.1 sec; = exp[(-(t-0.1)/0.176)*sin(2*pi*(t-0.1)/0.160)], dac ă 0.1 <= t <
1.024 sec
Achizi ția și procesarea semnalelor 67
Să se traseze spectrul de amplitudini corespunz ător. Semnalul
are 1024 de e șantioane, din care pr imele 100 sunt nule.
USoluția U:
% Generarea unui semnal numeric, cu 1024 de e șantioane, func ție dată
de formula: % x(t)= 0, dac ă t < 0.1 sec;
% = exp[(-(t-0.1)/0.176)*s in(2*pi*(t-0.1)/0.160)], dac ă 0.1 <= t <
1.024 sec; t=0:0.001:1.023; T=0.001; k=101:1024; z=zeros(1,100); x=[z, exp(-(k*T-0.1)/0.176).*s in(2*pi*(k*T-0.1)/0.160)];
subplot(2,1,1) plot(t, x, 'r'); grid on; title('Semnal sinusoidal amortizat și spectrul amplitudinii semnalului');
xlabel('Timp (s)'); ylabel('Amplitudine'); X=fft(x); ampl_spect=abs(X); subplot(2,1,2) % freq=(0:1023)/(1024*T); freq=(0:60)/(1024*T); % plot(freq, ampl_spect(1:1024), 'b*'); grid on; plot(freq, ampl_spect(1:61), 'b*'); grid on; xlabel('Frecven ță (Hz)'); ylabel('Amplitudine');
end
Autor : Viorel Paleu 68
Fig. 3.16 : Variația unui semnal sinusoidal amortizat și spectrul
amplitudinilor semnalului
Nota: Exist ă o component ă cu frecven ța principal ă, restul
valorilor din transfor mata Fourier discret ă apropiindu-se de zero, dar
nefiind nule.
Achizi ția și procesarea semnalelor 69
CAPITOLUL 4
TACHIZIȚII DE DATE
4.1. Sistemul și placa de achizi ție de date
Monitorizarea și controlul proceselor i ndustriale, a diferitelor
sisteme mecatronice, presupune m ăsurarea unor semnale fizice.
Semnalele fizice sunt convertite în semnale electrice cu ajutorul
senzorilor sau traductor ilor. În vederea proces ării semnalelor cu ajutorul
calculatorului, semnalele fizice analogice, culese de senzori, trebuie transformate în semnale digitale. În acest scop sunt utilizate sisteme
(lanțuri) de achizi ție a datelor.
Un sistem de achizi ție de date are rolul de a m ăsura sau genera
semnale fizice. Sistemul de achizi ție de date include în structura sa o
placă de achizi ție de date. O plac ă de achizi ție de date implantat ă pe un
PC, transform ă calculatorul într-un osciloscopic numeric cu memorie,
fluxul de date provenind de la traductori putând fi prelucrat și analizat.
Placa de achizi ție de date (eng., Data AcQuisition Board, DAQ
board) – este o plac ă specială, care, de obicei, este introdus ă într-unul
din sloturile calculatorului de bir ou. Placa DAQ face parte din sistemul
de achizi ție de date, putând genera semnale de intrare și multiplexa
semnale de intrare multiple intr-un singur semnal care va fi transmis spre
unul din porturile calculatorului.
Adesea placa de achizi ție (DAQ) de date este considerat ă drept
sistem de achizi ție. Acesta este cazul pl ăcilor de achizi ție moderne, care
Autor : Viorel Paleu 70
includ în construc ția lor echipamente de condi ționare a semnalului,
Convertoare analog – digitale (CAN) și digital – analogice (CNA),
intrări și ieșiri (I/O) analogice și digitale, countere (num ăratoare,
generatoare de tact de timp), precum și unități de memorie DMA (Direct
Memory Acces) cu ajutorul c ărora se transmit datele c ătre computer în
mod direct, f ără a mai utiliza microprocesorul.
In general se consider ă că un sistem de achizi ție de date cuprinde
senzori, elemente de condi ționare a semnalului, interfa ță hardware,
precum si programe de procesare a semnalelor achizi ționate.
Spre deosebire de instrumentele analogice independente, utilizate
la procesarea semnalului, placa de achizi ție de date nu poate prelucra
semnale în form ă brută (analogic ă), fiind necesare echipamente de
condiționare a semnalului.
Programele de calculator (partea software) controleaz ă sistemul
de achiziție de date, preluând si analizând datele, pentru a prezenta în
final rezultatele.
Structura clasic ă a unui lan ț de achizi ție de date este redat ă în
Figura 4.1 (The Measurement, Instrumentation and Sensors Handbook,
CRC Press)
Fig. 4.1 : Lanț de achizi ție de date
Achizi ția și procesarea semnalelor 71
Fig. 4.2. Modul USB – placa DAQ tip DT9842 cu conversie A/D și D/A
HTUhttp://www.datx.com/products_hardware/prod_DT9842.htm UTH
Utilizarea tehnicii de calcul la achizi ția și procesarea semnalelor
implică utilizarea unor sisteme de achizi ții și generare de date, care se
compun, în general, din urm ătoarele module func ționale ( Figura 4.3 ).
a) Modul de achizi ție de date analogice , dotat cu convertor
analog-numeric, care preia semnalele analogice de la traductoarele de vibra ții sau zgomot și le converte ște în semnale
digitale.
Acesta realizeaz ă condiționarea semnalului, po ate fi caracterizat
prin:
− numărul de canale analogice de intrare;
− rata de eșantionare;
− rata de transfer;
− rezoluția conversiei etc.
Cel mai simplu modul de achizi ție de date are o singur ă intrare
analogică diferențială, un convertor analog-numeric și o interfa ță
minimală de cuplare la magistrala de date a calculatorului.
b) Modul de generare de date analogice , dotat cu convertor
numeric-analog, care ofer ă la ieșire semnale analogice, necesare
pentru realizarea de comenzi, ac ționări sau control cu semnale
analogice. Modulele de generare a datelor analogice trebuie să
Autor : Viorel Paleu 72
genereze o serie de semnal e electrice analogice care s ă poată fi
utilizate în sistemele de control, comand ă sau execu ție și pot fi
realizate constructiv cu distribuire numeric ă sau analogic ă.
c) Modul de intr ări/ieșiri numerice , care este utilizat la cuplarea
sistemului de achizi ții și generare de date cu echipamente
numerice.
Fig. 4.3. Schema generala a unui sistem de achizitii de date
Legăturile de tip numeric ale calculat orului, cu alte sisteme numerice
sunt standardizate și pot fi :
− legătura serie (standar d conform RS 232C);
− legătura paralel ă (standard IEEE 488).
− legătură PCMCIA (pentru laptop și plăci de achizi ție mobile).
In Figura 4.4 este prezentat forma schematizat ă a lanțului de achizi ție de
date.
Achizi ția și procesarea semnalelor 73
Fig. 4.4 : Schema structurii unui lan ț de achizi ție de date
Adeseori semnalul digital este readus în forma analogic ă, sub
forma unei tensiuni spre exemplu, în vederea realiz ării unor comenzi.
Astfel, pe lang ă lanțul de achizi ție de date mai exist ă și un lanț de
restituire a datelor (de reconversie a semnalului digital în semnal
analogic).
Fig. 4.5 : Schema structurii unui lan ț de reconversie a datelor
In vederea form ării unei imagini de ansamblu asupra rolului
elementelor lan țului de achizi ție și reconversie de date, vom prezenta în
cele ce urmeaz ă pe scurt rolul fiec ărui element, urmând s ă revenim pe
parcurs cu detalii.
− Captorii (senzorii sau traductorii) – au rolul de a furniza un
semnal electric, imagine a feno menului fizic pe care dorim s ă-l
monitoriz ăm.
Autor : Viorel Paleu 74
− Multiplexorul analogic (Mux) – comut ă între cele N canale de
intrare, preia semnale de la senzori și le transmite înspre
amplificator unul câte unul.
− Amplificatorul de semnal (IA) – permite adaptarea nivelului
semnalului care provine de la captor la nivelul impus de lan țul
global de achizi ție.
− Filtrul de intrare (filtru de gard ă, sau antialising) – rolul lui este
de a limita con ținutul spectral al se mnalului la frecven țele care ne
intereseaz ă. Acest filtru este un filtru trece – jos ( FTJ), fiind
caracterizat de o frecven ță de tăiere și de un ordin.
− Dispozitivul de e șantionare și blocare (S/H, eng. "sample and
hold") – Dispozitivul de e șantionare are rolul de a preleva
valoarea semnalului la fiecare perioad ă de eșantionare, Te.
Acesta este adeseori asociat cu un dispozitiv de blocare, ce are
rolul de a p ăstra la o valoare constant ă tensiunea de e șantionare
pe perioada conversiei numerice, asigurand astfel o conversie cât
mai precis ă.
− Convertizorul analogic numeric (CAN, sau A/D) – transform ă
tensiunea e șantionului (semnalul analogic) în code binar
(semnalul numeric).
− Zona de stocaj a informa ției – Poate fi discul dur al unui
calculator, sau memorie RAM, sau o transmisie c ătre un receptor
situat la distan ță. Putem întâlni adesea și o zonã de stocaj tip
"primul intrat – primul ie șit", sau buffer FIFO (first inn – first
out), necesar prelu ării semnalului de c ătre PC. Bufferul FIFO
Achizi ția și procesarea semnalelor 75
este important mai ales in cazul calculatoarelor cu mediul de
operare Microsoft Windows, car e poate prezenta întârzieri și
întreruperi în pr eluarea datelor.
− Convertizorul numeric analogic (CNA, sau D/A) – efectueaza
operația inversă convertizorului CAN, asigurând transformarea
semnalului numeric în semnal analogic și restituind sistemului o
tensiune propor țională cu semnalul numeric convertit.
− Filtrul de ie șire (filtru de netezire) – are rolul de a netezi
semnalul de ie șire, pentru a lasa s ă treacă doar semnalul util.
Filtru de ie șire are acelea și caracteristici cu filtrul de intrare.
− Demultiplexorul analogic (DeMux) – preia semnalele de la
intrare si le comuta spre cele N canale de la ie șire.
− Amplificatorul de putere (OA) – Adapteaz ă ieșirea filtrului la
sarcină.
Dupa faza de achizi ție, semnalul este procesat in form ă numerică.
Prelucrarea semnalului cu sisteme numerice prezint ă urmatoarele
avantaje în raport cu preluc rarea cu sisteme analogice :
− Simplicitate: Sistemele numerice sunt intrinsec mai simplu de
analizat și sintetizat decât sistemel e analogice. Cu aparatura
numerică este mult mai usor de aplicat tratamente ce necesit ă
operații complexe, laborioase.
Autor : Viorel Paleu 76
− Robustete fa ță de zgomote: Sistemele numerice sunt prin esen ță
insensibile la zgomotele paraz ite electromagnetice. Codificarea
informației și trecerea semnalului din formã analogicã în form ă
numerică joacă rolul pe care îl are „firewall-ul” pentru un
calculator.
− Precizie și stabilitate: Singurele zgomote care intervin în
procesarea numeric ă a semnalului sunt date de precizia de calcul
a calculatorului utilizat, precum și de precizia opera ției de
cuantizare a informa ției. Temperatura și îmbãtranirea elementelor
sistemului utilizat nu influen țează informa ția, ca în cazul
sistemelor analogice.
− Flexibilitate și fiabilitate: Intr-un mare numãr de sisteme
numerice, tratamentul de semnal se realizeaz ă prin încãrcarea în
memorie a unui program, numit și instrument virtual. Aceste
instrumente sunt u șor de realizat și modificat, nemaifiind
necesară manipularea unor cabluri pe ntru realizarea unor noi
contacte, ca în cazul sistemelor analogice.
4.2. Parametri de performan ță globali ai unui sistem de
achiziție și restituire de date
a) Frecvența de funcționare
Se poate defini o vitezã limit ă de achizi ție. Aceasta depinde de
timpii necesari sistemului pentru a efectua urm ătoarele opera ții:
• Eșantionare, T BesntB;
• Conversie, T BconvB;
• Stocare, T Bstoc.B
Achizi ția și procesarea semnalelor 77
Suma celor trei timpi definesc timpul minim de achizi ție si
frecvență maximă de funcționare a lanțului de achizi ție:
T
BacB=T BesntB+T BconvB+T BstocB Æ F BmaxB=1/T Bac B(4.1)
Viteza de achizi ție, numită și rata de e șantionare, se exprim ă în
Hz și trebuie s ă fie egal ă cu cel pu țin dublul frecven ței maxime a
semnalului achizi ționat.
Practic, rata de e șantionare se ia egal ă cu (2,5 ÷ 3)f Bmax.
Viteza de achizi ție de date este afectat ă de opera ția de
multiplexare, care permite prelucrarea semnalelor de pe mai multe canale cu un singur convertor analog- numeric. In acest caz, rata de
eșantionare, pe fiecare canal, este invers propor țională cu un num ăr de
canale.
b) Rezoluția lanțului de achizi ție
Rezoluția plăcii de achizi ție este dat ă de conver torul analog-
numeric, care define ște cea mai mic ă modificare m ăsurabilă a
semnalului de intrare și se exprim ă prin num ărul de bi ți a ratei de
conversie.
Rezoluția unui lan ț de achizi ții de date reprezint ă numărul de biți
utilizați de convertorul analog–digital al acesteia, pentru reprezentarea
valorii măsurate a semnalului analogic.
Cuantizarea semalului e șantionat (numerizare) se realizeaz ă de
regulă în cod binar, pe N bi ți. Se obține o precizie de numerizare de 1/2
PN
P
%. Elementele lan țului de conversie trebuie sa aib ă cel puțin această
precizie. În general este acceptat ă o precizie absolut ă de 0.5 * 1/2 PN
P %.
De exemplu, un convertor pe 12 bi ți poate genera cuvinte care
conțin 12 simboluri (litere). Rezolu ția poate fi exprimat ă în procente,
Autor : Viorel Paleu 78
determinate prin divizarea lui 1 la num ărul posibil de combina ții și ne dă
mărimea modific ării semnalului de intrar e, care poate fi detectat ă de
convertor.
Pentru un convertor pe 12 bi ți există 2 P12
P= 4096 combina ții
posibile.
In acest caz rezolu ția este 1/4096 = 0,024%, fiind o caracteristic ă
foarte important ă pentru ob ținerea unor e șantioane de o calitate
corespunz ătoare aplica ției respective.
c) Domeniul de m ăsurare
Înainte de alegerea pl ăcii de achizi ție de date trebuie ale și
traductorii. Se stabilesc limitele domeniului de tensiuni electrice pe care le furnizeaz ă traductorii. De obicei aceste valori sunt indicate de c ătre
firma productoare. Placa de achizi ție de date trebuie aleas ă astfel încât
domeniul de tensiuni m ăsurat de aceasta s ă fie mai mare sau egal cu cel
furnizat de traductori.
Plăcile de achizi ție pot fi unipolare, cu tensiuni cuprinse, de
obicei, intre 1 .. 10 V, sau bipolare ( 10
±=maxU V). Spre exemplu, dac ă
un traductor furnizeaz ă tensiuni între 1 și 3 V, o plac ă de achizi ție cu
domeniul de m ăsurare 0-5V este suficient ă, rezoluția (numărul de puncte
valide) pl ăcii fiind de dou ă ori mai mare decât cea necesar ă. O placă de
achiziție care lucreaz ă in domeniul 0-2,5 V nu este adecvat ă pentru cazul
nostru.
Intervalul de m ăsurare este determinat de valoarea minim ă și
maximă a tensiunii electrice, pe care convertorul analog–digital o poate
cuantifica. Majoritatea pl ăcilor de achizi ție de date au la dispozi ție mai
multe intervale de m ăsurare, unul dintre acestea put ând fi selectat la un
moment dat.
Achizi ția și procesarea semnalelor 79
Valorile necesare ale caracteristic ilor enumerate anterior sunt
determinate în primul rând de caracteristicile echipamentelor de proces, cu care placa de achizi ții de date urmeaz ă să comunice: num ăr de
semnale digitale ce trebuiesc recep ționate sau emise, timpul de r ăspuns
al unui anumit echipament sau al unei m ărimi de proces, puterea
electrică necesară pentru comanda sau ac ționarea unor echipamente.
În situația în care placa de achizi ții de date comunic ă prin
intermediul liniilor digitale, cu un echipament periferic (înregistrator, procesor de date, imprimant ă), este necesar ă posibilitatea de a grupa, din
punct de vedere logic, mai multe linii digitale într-un port de
comunica ție.
Protocolul de comunica ție digitală poate, de asemenea, necesita
derularea unor opera țiuni de sincro nizare între emi țător și receptor, în
scopul reducerii riscului de transmitere eronat ă a informa ției.
În cazul gener ării unor semnale digitale de comand ă sau
acționare, sunt rare situa țiile în care componentel e din proces (motoare,
valve, relee etc.) accept ă direct semnalele TTL ale pl ăcii de achizi ții de
date.
Majoritatea componentelor respective necesit ă prezen ța
intermediar ă a unor condi ționoare de semnale digitale care s ă realizeze
amplificările corespunz ătoare ale valorilor tensiunii sau intensit ății
electrice.
Circuitele de num ărare și cronometrare, ale unei pl ăci de achizi ții
de date, pot fi utilizate atât pentru sesizarea și numărarea unor
evenimente digitale (semnale sub form ă de impulsuri, primite de la
traductoare incrementale de deplasare) cât și pentru generarea unor astfel
de evenimente (de exemplu, pentru ac ționarea motoarelor electrice pas
cu pas).
Parametrii cei mai importan ți pentru aprecierea performan țelor
acestor circuite sunt rezolu ția și frecven ța maximă. Având, ca și în
Autor : Viorel Paleu 80
cazurile anterioare, semnifica ția numărului de bi ți utilizați, rezoluția
determină direct num ărul maxim de evenimente pe care un astfel de
circuit le poate num ăra.
Frecvența maximă a unui num ărător determin ă atât gama de
semnale pe care acesta le poate m ăsura corect, cât și frecvența maximă a
semnalelor pe care num ărătorul respectiv le poate genera. Pl ăcile de
achiziții de date, din categoriile cele mai evoluate, utilizeaz ă
numărătoare cu rezolu ții de 16 sau 24 de bi ți, lucrând la frecven țe
maxime de 20MHz.
Numărul de canale, de intrare analogic ă, poate fi specificat
(pentru pl ăcile care dispun de ambele tipuri) atât pentru configura ția uni-
polară cât și pentru cea diferen țială.
Intrările analogice, în configura ție uni-polar ă se referă la tensiuni
electrice (de pe canale diferite) m ăsurate în raport cu un poten țial de
referință comun, aflat pe leg ătura la mas ă a plăcii de achizi ție de date.
Acest tip de intr ări analogice este utilizat de obicei pentru semnale cu
amplitudini relativ mari (peste 1 V), în situa ția în care firele de leg ătură
dintre sursa de semnal și placa de achizi ție de date au lungimi mai mici
de 5 m.
În celelalte situa ții se utilizeaz ă configura ția diferen țială, în care
fiecare tensiune electric ă, ce corespunde unui canal de intrare analogic ă,
este măsurată în raport cu un poten țial de referin ță propriu.
În configura ție diferen țială are loc reducerea erorilor datorate
influențelor perturba țiilor electromagnetice, din mediul exterior, asupra
firelor de leg ătură.
Plăcile de achizi ție moderne permit definirea prin programare a
unor domenii multiple de lucru.
Achizi ția și procesarea semnalelor 81
4.3. Achizi ția multipl ă de date
Achiziția multipl ă se refer ă la stocarea în acela și spațiu de
memorie și tratarea numeric ă a N semnale, provenind de la N captori.
Numărul de canale de intrare stabile ște numărul de traductori care pot fi
cuplați la placă DAQ. Uzual, num ărul de canale de intrare ale unei pl ăci
DAQ este cuprins între 4 si 64. Exist ă accesorii, precum DT727 Channel
Expansion Panel, care extind num ărul de intr ări al plăcilor DAQ
compatibile pân ă la 256 de canale.
Canalele de intrare pot fi cu un singur cap ăt (notate cu SE, eng.
"single ended"), sau diferen țiale (DI, eng. "differential"). Dac ă în
caracteristicile unei pl ăci DAQ g ăsim notația "16SE/8DI", înseamn ă că
placa are 16 canale de intrare tip SE și 8 de tip DI. Canalele DI ofer ă
imunitate la zgomot și sunt utilizate în urm ătoarele cazuri:
– traductori sau dispoz itive legate la plac ă DAQ prin cabluri lungi;
– traductori cu domenii joase de m ăsurare (cu scal ă < 1 V);
– convertizoare de rezolu ție înaltă (>16 biti);
– când diferite dispozitive care se leag ă la placa DAQ au diferite
potențiale de referin ță.
În fapt, intr ările DI imbun ătatesc acurate țea măsurătorilor în
cazul în care existã fluctua ții sau diferen țe ale nivelului de tensiune ale
semnalelor de intrare, put ându-se adapta la aceast ă diferență între
semnalele de referin ță pe o scar ă de tensiune de câ țiva Volți.
Există mai multe arhitecturi de sisteme de achizi ție multipl ă de
date (cu mai mul ți traductori), arhitecturi redate schematizat în cele ce
urmează.
Autor : Viorel Paleu 82
4.3.1. Achizi ția secven țială decalată
Acesta este denumit în mod curent și sistem conven țional de
achiziție multipl ă. Se bazeaz ă pe utilizarea în amonte a unui multiplexor,
care va orienta semnalul corespunz ător fiecărui captor c ătre un canal
unic de achizi ție. Există un singur dispozitiv S/H și un singur convertizor
A/D. Schema achizi ției secven țiale este redat ă în Figura 4.6 .
Fig. 4.6 . Structura unui lan ț de achizi țtie secven țială decalată
Este evident c ă avantajul unui astfel de sistem este
economicitatea, fiind realizat ă achiziția de la N captori în acela și timp.
Această metodă este aplicat ă mai ales la supravegherea st ării mașinilor
dintr-o linie de fabrica ție, sau a unei linii de testare. E șantionarea se
realizează însă secvențial, existând un singur dispozitiv de e șantionare.
Timpul de achizi ție crește propor țional cu num ărul captorilor
(senzorilor).
Achizi ția și procesarea semnalelor 83
4.3.2. Achizi ția secven țială simultan ă (SS&H – Simultaneous
Sample and Hold)
Fig. 4.7. Structura unui lan ț de achizi ție secvențială simultană
In cazul achizi ției secven țiale simultane e șantionarea celor N
semnale se realizeaz ă simultan, conversia fiind realizat ă mai apoi,
progresiv. Se mic șorează în acest fel de N ori timpul necesar e șantionării
semnalelor de la cei N senzori, frecven ța de achizi ție fiind dictat ă în
special de frecven ța de lucru a convertizorului.
Se deosebeste de achizi ția secven țială decalată prin plasarea a
unui num ăr de N dispozitive de e șantionare – blocare (S/H) imediat dupa
cei N captori de semnal, în amonte fat ă de multiplexor.
Autor : Viorel Paleu 84
Când eșantionarea începe, toate circuitele sunt comutate automat
pe hold, înghe țând fiecare semnal de intrare pân ă când va fi preluat de
către convertizorul analog / digital.
Punerea în practic ă a acestei scheme de achizi ție necesit ă costuri
medii.
4.3.3. Achizi ția paralel ă (Delta – Sigma)
Această soluție este cea mai scump ă, necesitând pe lang ă N
captori si N dispozitive de e șantionare-blocare și N convertori analog
digitali (CAN). Avem în fapt N lan țuri de achizi ție legate la o baza de
date comun ă. Deoarece un sistem Delta-Sigma utilizeaz ă câte un CAN
pe fiecare canal, este posibil ă eșantionare a tuturor intr ărilor simultan.
Cu o asfel de structur ă de sistem de achizi ție se poate efectua în
același timp achizi ția de date și stocarea de date, timpul total de
eșantionare, achizi ție și stocare fiind mic șorat. Se poate alege și soluția
de a realiza toate e șantionarile și conversiile simultan, dup ă care se va
realiza progresiv stocarea datelor.
Achizi ția și procesarea semnalelor 85
Fig. 4.8. Structura unui lan ț de achizi ție paralelă
Această structură de achizi ție este scump ă, fiind preferat ă în
cazul în care este foarte important ca semnalul achizi ționat și prelucrat s ă
ajungă în minimum de timp posibil la receptor.
Autor : Viorel Paleu 86
CAPITOLUL 5
EȘANTIONAREA ȘI CUANTIZAREA
5.1. Teoria discretiz ării in timp. E șantionarea.
Vom începe teoria discretiz ării în timp cu câteva trat ări diferite
ale problemei. Aceasta ne va permite s ă știm ce trebuie f ăcut pentru a
căpăta informa ții corecte despre un semnal, astfel încât s ă evităm
fenomenul de aliasing și distorsionare a semnalului.
Pentru a analiza și sintetiza un semnal în domeniul digital,
trebuie s ă convertim semnalele analogice în semnale digitale prin
achiziția de „probe” din semnal la anum ite intervale regulate de timp.
Acest proces, numit eșantionare , se realizeaz ă prin „interogarea”
semnalului analogic la o perioad ă regulată de timp, T BeB.
T BeB se nume ște perioadă de eșantionare și reprezint ă inversul
frecvenței de eșantionare , f BeB (
eeTf1= ). În form ă matematic ă, un
eșantion dintr-un semnal se ob ține prin înmul țirea semnalului cu un
impuls unitar (sau impuls Dirac ), la anumite perioade de timp, ce
corespund perioadei de e șantionare alese. E șantionarea unui semnal se
reprezintă matematic prin înmul țirea funcției ce descrie semnalul cu un
„pieptene Dirac ” (tren de impulsuri Dirac )
Achizi ția și procesarea semnalelor 87
Fig. 5.1 . (a) Func ția impuls Dirac; (b) Func ția pieptene Dirac
Formula (5.1) reprezint ă un semnal discretizat:
∑∞
=−⋅=
0) ()( ][
kkTt tx tx δ (5.1)
) (kTt−δ reprezint ă impulsul Dirac, k=indice, T=perioada de
eșantionare.
Un semnal e șantionat are alura din Figura 5.2.
Fig. 5.2. Semnal analogic continuu și semnal e șantionat (discret)
Prin eșantionare nu trebuie s ă deteriorăm semnalul. La ie șirea din
circuitele de prelucrare numeric ă, semnalul util trebuie s ă fie cuprins în
următoarele limite de frecven ță:
• Sunet: [0; 20 kHz];
• Video: [0; 6 MHz].
Autor : Viorel Paleu 88
Deasemnea, trebuie avut ă în vedere limitarea spa țiului de
memorie necesar stoc ării unui semnal: (n * f BeB) biți /sec.
In concluzie, problema e șantionarii unui semnal se rezum ă la a
minimiza spa țiul de stocare, f ără a deteriora semnalul. Pentru a îndeplini
cu succes aceast ă operațiune, trebuie avute în vedere trei aspecte
importante:
• Selectarea corecta a frecven ței de eșantionare a semnalului;
• Alegerea potrivit ă a numărului de bi ți pe care se face conversia
semnalului din analogic în digital și invers;
Alegerea corect ă a tipului de filtru.
5.1.1. Teorema lui Shannon. Fenomenul de aliasing.
Teorema Shannon – defini ție
Pentru a evita pierderea de informa ție în procesul de e șantionare
a unui semnal analogic, trebuie ca frecvența de eșantionare s ă fie cel
puțin de dou ă ori mai mare decât frecven ța maximă a semnalului
eșantionat .
max2f fe⋅= (5.2)
Frecvența Nyquist reprezint ă jumatate din frecven ța de
eșantionare. Spre exemplu, dac ă un semnal analogic este compus din
frecvențe intre 10 Hz și 2 KHz, conform teoremei Shannon trebuie s ă
realizãm e șantionarea semnalului la o frecven ța care să reprezinte cel
putin dublul frecven ței maxime, adic ă 4 KHz. S ă presupunem c ă alegem
o frecven ță de eșantionare de 5 KHz. In acest caz frecven ța Nyquist va fi
de 2,5 KHz.
Achizi ția și procesarea semnalelor 89
2e
Nff= (5.3)
Dacă nu se respect ă condiția (5.2), se poate produce interferent ă
cu alte frecven țe, care nu se afl ă în banda de inte res a semnalului
analizat, fenomenul de interferen ță fiind denumit „ aliasing ”.
Un semal digital nu trebuie s ă coțină frecvențe mai mari decât
frecvența Nyquist. Dacă există frecvențe peste freceven ța Nyquist, se
produce iar ăși fenomenul de aliasing . Spre exemplu, dac ă frecvența
semnalului e șantionat este 0.2 din frecven ța de eșantionare, putem
întâlni în spectrul semnalului oricare din num ărul infinit de freceven țe
multiple frceven ței semnalului analog: 0.2, 0.8, 1.2, 1.8, 2.2 etc. Aceasta
va produce distorsionarea semnalului, în spectrul de putere întâlnind
frecvențe duplicate, atât în band ă înaltă cât și în cea joas ă.
Fig. 5.3. Semnalul analogic
Autor : Viorel Paleu 90
Fig. 5.4. (a) Spectrul original al semnal ului; (b) fenomenul de aliasing
pentru semnal supra-e șantionat; (c) fenomenul de aliasing pentru
semnalul sub-e șantionat (suprapunere in spectrul semnalului)
Achizi ția și procesarea semnalelor 91
In cazul suprae șantionării se poate aplica un filtru trece-jos, care
taie toate frecven țele mai mari decât frecven ța Nyquist, reconstruindu-se
semnalul ini țial. În cazul sub-e șantionării, suprapunerea de frecven țe din
spectru nu mai permite refacerea semnalului ini țial, chiar dac ă se aplică
un filtru trece jos (FTJ).
In realitate spectrul unui semnal achizi ționat are largime infinit ă.
Chiar dac ă eșantionarea respect ă legea lui Shannon, se produce
fenomenul de aliasing, adic ă de suprapunere în spectrul de putere al
semnalului. Pentru acesta este necesar s ă filtrăm semnalul de origine,
prin plasarea unui filtru trece-jos (filtru de gard ă) în amonte de
dispozitivul de e șantionare.
Fig. 5.5. Utilizarea filtrului de gard ă
Dupa eșantionare, semnalul trebuie cuantificat. In acest scop,
trebuie men ținută constant ă valoarea de cuantificat, pentru a permite
convertorului analog-numeric s ă trateze e șantionul și să-l numerizeze.
Timpul de blocaj al e șantionului la intrarea CAN trebuie s ă fie de durata
superioară timpului de conversie.
Fig. 5.6. Schema e șantionării-blocării
Autor : Viorel Paleu 92
Dacă î n u r m a e șantionării și conversiei unui semnal se poate
reface semnalul de origine prin ap licarea procesului invers, se poate
afirma că lanțul de achizi ție în prelucrare este corect proiectat.
5.2. Teoria discretiz ării in timp. Cuantizarea. Conversia
analog-numerica (CAN).
5.2.1. Elemente introductive
Marea majoritate a semnalelor întâlnite în inginerie sunt semnale
continui: tensiunea electric ă variabilă în timp, intensitatea luminoasa
care se modific ă în funcție de distan ță, o reacție chimic ă dependenta de
temperatura, etc.
Pentru a realiza interac țiunea dintre calculatoare și semnalele
analogice este nevoie de convertirea semnalului analogic în semnal digital. Reamintim c ă, pentru transformarea un ui semnal analogic în
semnal numeric este nevoie atât de e șantionare, cât și de cuantizare.
Atâta eșantionarea cât și cuantizarea trebuie rea lizate astfel încât s ă ofere
răspuns la urm ătoarele intreb ări:
• Care informa ție trebuie s ă o rețin?
• Câtă informație îmi pot permite s ă pierd fără a denatura semnalul
de origine (analogic)?
5.2.2. Teoria cuantiz ării
In vederea stoc ării, semnalul e șantionat poate fi convertit în
formă binară (numeric ă). Operațiunea de codificare a informa ției se
numește cuantizare .
Achizi ția și procesarea semnalelor 93
Rolul cuantiz ării este de a reprezenta în imagine binar ă a
semnalului analogic:
• Trecerea Analogic-Numeric;
• Semnal continuu – Semnal discret;
• Tensiune –cifre.
5.2.3. Principiul cuantiz ării
Fiecarui nivel de tensiune îi este asociat ă o valoare binar ă
codificată pe n biți. Cei N bi ți ne vor permite s ă distingem 2 Pn
P niveluri de
tensiune repartizate între –V BmB si + V BmB. Pasul de cuantizare va fi:
nmV*q
22= (5.3)
Astfel, un semnal de ±5 V pe 8 bi ți va da un pas de cuantizare q=39mV.
Spre exemplificare, vom reprezenta varia ția unui semnal analogic
în timp ( Fig. 5.7. a ), a aceluia și semnal e șantionat ( Fig. 5.7. b ), iar mai
apoi a unui semnal cuantificat (digitizat, Fig. 5.7. c ). Diferen ța dintre
valorile semnalului e șantionat și a celui cuantificat reprezint ă eroarea de
cuantizare, reprezentat ă în Figura 5.7. d .
Autor : Viorel Paleu 94
Fig. 5.7. Schematizarea proceselor de e șantionare și cuantizare
Achizi ția și procesarea semnalelor 95
Comaprând figurile 5.7. (a) și 5.7. (b) se observ ă că prin
eșantionare se realizeaz ă trecerea de la varia ția continu ă a semnalului în
timp la varia ția discretă. Comparând figurile (b) și (c) se observ ă că prin
conversie analog/ digital ă se asociaz ă numere între 0 și 4095 (conversie
pe 12 biti) fiec ărui platou de valori din fi gura (b), platou corespunzând
unei tensiuni cuprinse între 0 și 4.095 V. Spre exemplu, valorile 2.56001
V și 2.56000 V vor fi convertite în num ărul 2560. Este evident ă
existența unei erori de cuantizare.
În concluzie, prin cuantizare se converte ște variabila dependent ă,
în cazul nostru o tensiune, din domeniul continuu în domeniul discret.
Este de preferat s ă se evite compararea figurii (a) cu figura (c),
deoarece se sumeaz ă efectele e șantionării și cuantizăãrii. Acest lucru nu
este rațional, deoarece e șantionarea și cuantizarea degradeaz ă semnalul
în forme diferite. Chiar d.p.d.v. electr onic avem de-a face cu parametri
de control diferi ți. Există aplicații în care nu se face cuantizarea, ci doar
eșantionarea.
Se poate observa c ă, eroarea de cuantizare se ob ține prin sc ăderea
semnalului e șantionat din cel cuantificat , cu conversia specific ă. Asadar,
prin cuantizare se transform ă semnalul continuuu din fig. 5.7. (b) în
semnalul discret din fig. 5.7. (c) , cu o anumit ă eroare de cuantizare,
reprezentat ă in fig. 5.7. (d).
Nu putem vorbi despre cuantizare f ără a aminti de Convertizorul
Analog – Digital (CAN). Ca racteristica de intrare și ieșire a unui CAN
este sub forma unor trepte de scar ă. Fiecare palier are o la țime de pas de
cantificare, q. Trecerea de la un palier la altul corespunde varia ției
unitare a codific ării („1”).
Autor : Viorel Paleu 96
Fig. 5.8. Caracteristica de intrare – ie șire a unui CAN
Pasul de cuantizare se mai nume ște și cuantum . Acesta
corespunde rezolu ției convertizorului. Cuan tumul este cea mai mic ă
variație de tensiune pe care c onvertizorul o poate codifica.
Achizi ția și procesarea semnalelor 97
CAPITOLUL6
STRUCTURA ȘI CARACTERISTICILE
CONVERTIZOARELOR ANALOG-NUMERICE
(CAN)
Un convertizor analog- numeric are rolul de a transforma o m ărime
fizică analogic ă, V
BinB (de obicei o tens iune), într-o m ărime numeric ă
proportional ă, reprezentat ă printr-un num ăr N (de obicei un num ăr binar
pe N biți).
Convertizoarele analog-numerice se simbolizeaz ă într-unul din cele dou ă
moduri reprezentate în Figura 6.1:
Fig. 6.1 : Reprezentarea simbolic ă a unui CAN
6.1. Convertizor paralel sau flash
Acest tip de convertizor are ca principiu m ăsurarea prin compara ție a
obiectului de m ăsurat cu o rigla comparatoare (etalon). În termeni de
tensiune electric ă, putem spune c ă tensiunea de convertit este comparat ă
cu fracțiuni de tensiune de referin ță, furnizate de un divizor rezistiv
Autor : Viorel Paleu 98
(rigla sau etalonul). Tensiunea ob ținută este cea corespunzatoare
ultimului nivel logic „1” întalnit. Un lan ț de 2 PN+1
P resitențe electrice
determină o eșalonare cu pasul q (cuantum) a valorilor cuprinse în scala
de tensiuni (Vmin… Vmax). Excep ție face doar prima valoare, care are
pasul q/2.
Avantaj : timpul scurt de conversie.
Dezavantaj : este foarte complex, fiind necesarã o cre ștere
exponențialã a num ărului de comp ărători cu num ărul de biți și numărul
de porți logice.
Spre exemplu, pentru o conversie pe 8 bi ți avem nevoie de 255
comparatoare.
Fig. 6.2: CAN flash sau paralel
Achizi ția și procesarea semnalelor 99
6.2. Convertizor cu rampã simpl ă
Acest convertizor utilizeaz ă un contor care se incrementeaz ă începând
din zero. Tensiunea intern ă V BiB se folose ște drept element de compara ție
pentru tensiunea extern ă de convertit Ve. Cont orul se incrementeaz ă atât
timp cât Vi este inferior lui Ve. Când cele dou ă valori sunt egale,
contorul se opre ște, furnizând rezultatul la ie șirea contorului.
Fig. 6.3: CAN cu ramp ă simplă
Avantaj : Este simplu ca si construc ție.
Dezavantaj : are precizie redus ă și este lent (timpul de conversie cre ște
cu valoarea tensiunii de convertit).
6.3. Convertizor cu ramp ă dublă
Pentru a ameliora pr ecizia se utilizeaz ă principiul de in tegrare a tensiunii
de măsurat Ve in timpul unei perioade predeterminate, timp în care
contorul se incrementeaz ă. La finalul procesului, valoarea N BcB este atins ă
pentru o tensiune intern ă maximă V BiB. Integrarea unei tensiuni de
referintă negative, V BrefB, produce descre șterea V BiB. Când aceasta tensiune
Autor : Viorel Paleu 100
se anuleaz ă, contorul atinge valoarea N BdB. Rezultatul pentru valoarea
tensiunii de ie șire convertite este ob ținut astfel:
ref
dc
i VNNV⋅=
Avantaj : Este precis (aparatele de masur ă utilizeaz ă cu preponderen ță
acest gen de CAN).
Dezavantaj : relativ lent.
Fig. 6.4 : CAN cu ramp ă dublă
6.4. Convertizor cu treceri succesive
Tensiunea de intrare de convertit se aplic ă la una din intrarile
comparatorului. Aceast ă tensiune este comparat ă succesiv cu tensiuni de
referintă, procedeul fiind asem ănător cu cel de cânt ărire cu balan ța. În
Figura 6.5. avem reprezentarea schemei func ționale și a diagramei
funcționale a unui CAN cu treceri succesive. Schema logic ă de
convertire este reprezentat ă în Figura 6.6
Achizi ția și procesarea semnalelor 101
Fig. 6.5 : CAN cu treceri succesive
schema functional ă (a) si diagrama functional ă (b)
Avantaj: Relativ rapid (1+log B2Bn B Bperioade de ceas, în care
perioada de ceas este dictat ă de timpul de stabiliz are a convertizorului)
Autor : Viorel Paleu 102
Dezavantaj: Nu este cel mai precis, fiind un compromis între
precizie si rapiditate. Este foarte utilizat în circuitele integrate.
Fig. 6.6 : Schema logic ă a funcționării unui CAN cu tr eceri succesive
Achizi ția și procesarea semnalelor 103
6.5. Convertizor semi-paralel, sau semi-flash
Reprezint ă o combina ție de convertizoare analog-numerice și numeric
analogice. Schema func țională este redat ă in Figura 6.6.
Fig. 6.7: CAN semi-paralel sau semi-flash
In figura de mai sus se d ă exemplul unei conversii pe 8 bi ți. Avem un
CAN flash pe 4 bi ți, un CNA și un comparator.
Metoda const ă în a converti grosier tensiunea de intrare V
BeB cu ajutorul
unui CAN pe 4 bi ți. Rezultatul corespunde par ții superioare a
rezultatului nume ric (celor 4 bi ți superiori). Rezult atul este memorat
într-un sistem de închidere basculat, D. Simultan, rezultatul este convertit în semnal analogic, tensiune ce va fi retransat ă pentru a fi
comparată cu V
BeB. Diferența este convertita digital de un alt CAN, care
transmite rezultatul c ătre partea de bi ți corespunzatoarea (cea inferioar ă).
Memorarea rezultatului par ții reziduale a semnalului completeaz ă
cuvântul pe 8 bi ți, corespunz ător tensiunii de intrare V BeB convertite
numeric. Acest convertizor reprezint ă un compromis eficient între viteza de
execuție și precizie.
Autor : Viorel Paleu 104
6.6 Conversia numeric-analogic ă (digital-analogic ă) a
semnalelor
In teorie, cea mai simpl ă metodă digital-analogic ă e s t e d e a
colecta eșantioanele de date din memorie și de a le converti mai apoi
într-un tren de impulsuri. Schema corespunz ătoare este prezentat ă in
Fig. 6.8
Fig. 6.8. Semnal analogic transformat într-un tren de impulsuri: (a)
reprezentare în domeniul timp; (b ) reprezentare în domeniul frecven ță.
După cum am prezentat la c onversia analog-numeric ă, pentru
reconstruirea senalului anlogic se pot folosi filtre analogice de reconstruc ție, de obicei un filtru trece-jos care taie toate frecven țele peste
frevența Nyquist.
Teoretic, semnalul original și trenul de impulsuri au acela și
spectru de frecven țe sub frecven ța Nyquist (jumatatea frecven ței de
eșantionare). La frecven țe mai înalte, trenul de impulsuri con ține o
duplicare a acestei informa ții, deși semnalul original nu con ține aceste
informații (presupunând c ă nu avem de a face cu fenomenul de aliasing).
Achizi ția și procesarea semnalelor 105
In realitate, este dificil s ă se genereze trenuri de impulsuri foarte
înguste cu ajutorul componentel or electronice. Aproape toate
convertizoarele digital-analogice (p resurtat DAC – Digital to Analog
Convertor, sau CAN – Convertizor Numeric- Analogic) opereaz ă prin
păstrarea ultimei valori in memorie pân ă când un nou e șantion este
primit.
Aceasta se nume ște „zeroth-order hold”, adic ă „păstrare de ordin
zero”, echivalentul di spozitivului de e șantionare și blocare („sample and
hold”, adica SH) din cazul conversie i analog-numerice. Un „zeroth-order
hold” reprezint ă unirea prin linii drepte a punctelor, pe când „second-
order hold” reprezintã unirea prin parabole a punctelor.
Metoda „zeroth-order hold” produce o conversie numeric-
analogică precum cea din Figura 6.2 , adică o unire a punctelor prin linii
verticale și orizontale.
Fig. 6.9. Conversia numeric-analogica real ă, reprezentare în domeniul
timp și în domeniul frecven ță.
Se observ ă că în spectrul de frecven țe apare și spectrul func ției
sinus cardinal. Defini ția matematic ă a funcției sinus cardinal este dat ă de
relația 6.8:
Sinc(x)=sin(x)/x (6.1)
Autor : Viorel Paleu 106
Efectul „zeroth-order hold” poate fi v ăzut ca o convolutie a
trenului de impulsuri cu un puls rectangular care are perioada egal ă cu
perioada de e șantionare a semnalului analogic original.
In domeniul frecven ță vom ob ține tranformat ă Fourier a
impulsului dreptunghiular, adic ă tocmai func ția sinus cardinal, care va
multiplica spectrul „corect” al semnalului analogic rezultat în urma conversiei digital-analogice.
Pentru a reconstrui semnalul analogic avem nevoie de un filtru
analogic de reconstruc ție, care s ă taie toate frecven țele ce depa șesc
jumatate din frecven ța de eșantionare (frecven ța Nyquist) și să
îndepărteze toate frecven țele introduse de efectul „zeroth-order hold”,
adică să joace rolul func ției 1/sinc(x).
Fig. 6.10. Filtrul de reconstructie ideal pentru eliminarea efectului sinus
cardinal
Achizi ția și procesarea semnalelor 107
Aceasta este echivalent cu amp lificarea a aproximativ 36% din
jumatatea frecven ței de eșantionare. Filtru ideal de reconstruc ție este
reprezentat în Figura 6.10.
Dupã conversia digital-analogic ă și filtrarea cu filtrul de
reconstruc ție, se ob ține semnalul analogic rec onstruit, reprezentat in
Figura 6.11.
Fig. 6.11. Semnalul analogic reconstruit: reprezentare în domeniul timp
și în domeniul frecven ță
In prelucrarea semnalelor, exist ă 4 moduri de a trata frecven ța
corespunz ătoare func ției sinus cardinal generat ă de efectul „zeroth-order
hold” al convertiri i numeric-analogice:
1. Proiectarea unui filtr u analogic, care s ă includă răspunsul în
frecvență pentru func ția 1/sinc(x);
2. Efectuarea unei corec ții software, înainte de intrarea semnalului
în convertorul numeric-analogic;
3. Utilizarea unei tehnici de conversie multifrecvent ă („multirate
technique”), ce va fi descris ă ulterior;
4. Ignorarea efectului și suportarea consecin țelor, în cazul în care
nu se cere acurate țe mare a semnalului reconstruit.
Autor : Viorel Paleu 108
Rezoluția convertizorului numeric -analogic, sau cuantumul
convertizorului, reprezint ă incrementul teoretic de tensiune la ie șirea
semnalului, corespunzând unei intr ări egale care se calculeaz ă cu relația
6.2:
1 2−∆=NVq (6.2)
unde DV= scala analogic ă complet ă a convertizorului sau plaja de
conversie;
N=num ărul de biți pe care se face conversia.
Numitorul apare modificat fa ță de cazul convertizorul ui analogic-digital,
pentru ca 2 PN
Pvalori corespund la 2 PN
P-1 intervale.
Cantitatea de informa ție purtată de un semnal digital este influen țată de:
– Numărul de bi ți pe care se face conversia fiec ărui eșantion;
acesta limiteaz ă rezoluția variabilei dependente, adic ă schimbări
mici în amplitudinea semnalului pot fi pierdute în zgomotul de cuantizare.
– Frecvența de eșantionare, care limiteaz ă rezoluția variabilei
independente, adic ă informații foarte apropiate ca spa țiu din
semnalul analogic pot fi pierdute între e șantioane.
Cu acelea și probleme ne confrunt ăm și în cazul unui semnal
analogic, zgomotul și lațimea de band ă influențând calitatea semnalului.
Achizi ția și procesarea semnalelor 109
6.7. Zgomotul de cuantizare
Fiecare eșantion cuantificat poate avea o eroare maxim ă de ±1/2
LSB ( Least Significant Bit ), jargon utilizat pentru a exprima distan ța
dintre dou ă nivele adiacente de cuantizare.
In cele mai multe cazuri, eroare a de cuantizare nu înseamn ă decât
adăugarea unui anumit nivel specific de zgomot unui semnal. Un zgomot
aleator generat de opera ția de cuantizare se suprapune la celelalte
zgomote deja prezente în semnalul analogic. Zgomotul de cuantizare va avea distribu ție uniform ă între -1/2 LSB și + ½ LSB, o medie aritmetic ă
zero, și o deviație standard de
121/ LSB, adic ă 0.29 LSB.
Deoarece eroarea de cuantizare nu este decât un zgomot aleator,
numărul de biți pe care se face cuantizarea determin ă precizia datelor. Se
poate astfel afirma: „Am crescut precizi a analizei semnalului de la 8 la
12 biți”.
Spre exemplu, s ă luăm cazul un semnal analogic cu amplitudinea
maximă de 1 V și un zgomot aleator cu rms (root mean square, adic ă
rădăcină medie pătratică, Nx.. x xxNxNN
ii RMS2 2
22
1
12 1 +++=⋅=∑
=) de 1 mV,
o cuantizare pe 8 bi ți rezultă că un volt va fi reprezentat prin num ărul
255, iar un milivolt va fi egal cu 0.255 LSB.
Prin cuantizarea unui semnal analogic pe 8 bi ți se aduag ă un
zgomot cu RMS de 0.29/256, apr oximativ 1/900 din scala total ă a
valorilor. O conversie pe 12 bi ți adaugă un zgomot de 0.29 / 4096 = 1/14
000, o cuantizare pe 16 bi ți adaugă un zgomot cu un RMS de 0.29/ 65
536 = 1/227 000.
Când se ia decizia asupra num ărului de bi ți necesari cuantiz ării
unui semnal, trebuie s ă răspundem la întreb ările:
• Care este nivelul de zgomot deja existent in semnalul analogic?
Autor : Viorel Paleu 110
• Cât de mult zgomot poate fi tolerat în semnalul analogic?
Procesul de cuantizare nu este valid dacă eroarea de cuantizare
nu poate fi tratat ă ca aleatoare.
In figura 6.12. (a) se da exemplul unui semnal analogic de
amplitudini mici, care în urma cuantiz ării este total distorsionat, datorit ă
faptului c ă eșantionele cuantificate cap ătă, pentru diferite valori ale
semnalului analogic, aproape aceleea și valoare numeric ă.
Fig. 6.12. Procesul de „dithering” – ad ăugare de zgomot
Achizi ția și procesarea semnalelor 111
Prin adãugarea unui zgomot spunem c ă am realizat procesul de
„dithering”, adic ă de „tremurare” a semnalului. Se observ ă că, prin
adăugarea unui zgomot ob ținem o cuantizare mai apropiat ă de semnalul
analogic. Aceasta este o situa ție mai special ă, prin adăugare de zgomot
obținând mai multe informa ții.
Circuitele pentru dithering pot fi sofisticate, spre exemplu se
generează un vector aleator (comnada Matlab: v=rând(N)), care este
transformat în zgomot prin trec erea printr-un conve rtizor numeric-
analogic (CNA), dup ă care este suprapus peste semnalul analogic. Dup ă
cuantizare se poate extrage, prin prelucrare pe calculator, num ărul
aleator introdus ca zgomot, prin opera ții în virgul ă mobilă (floating point
arithmetics).
Pentru dithering se mai poate utiliza și zgomotul deja prezent în
semnal, dar aceasta nu este mereu posibil.
Pentru comanda proceselor industriale se realizeaz ă din ce în ce
mai mult sistemele numerice și calculatoarele. În vederea transform ării
semnalelor analogice de intrare în semnale numerice, aceste sisteme utilizează convertizoare analog -nuemerice (CAN). Dup ă tratarea
semnalului, controlul actuatorilor necesit ă reconvertirea semnalului din
formă numeric ă în form ă analogic ă. În acest scop se utilizeaz ă
convertizoarele numeric-analogice (CNA). Anterior a fost prezentat principiul de efectuare a conversiei analog-
digitale. În cele ce urmeaz ă vom prezenta principiul conversiei digital-
analogice, iar în final vor fi prezentate câteva scheme de convertizoare analog-numerice și numeric analogice, împreun ă cu caracetristicile lor
de bază.
Autor : Viorel Paleu 112
CAPITOLUL 7
FILTRE ANALOGICE SI NUMERICE
7.1. Analiza comparativ ă a filtrelor analogice și digitale
Filtrele analogice și cele digitale sunt utilizate pentru:
• a separa semnale care au fost co mbinate, spre exemplu zgomotul
suprapus peste muzic ă în timpul proceului de înregistrare;
• a separa semnale în frecven țele corespunzatoare constituente;
• a demodula semnale;
• a reconstitui semnale deterior ate de procese cunoscute sau
necunoscute.
Pentru îndeplinirea acestor sarcini se pot utiliza filtre analogice,
însă sunt de preferat cele digitale, deoarece ofer ă o mai mare flexibilitate
și acuratețe în compara ție cu cele analogice.
Deasemenea, procesarea digital ă corectă a semnalelor (DSP)
depinde în mare masur ă de calitatea filtr ării, fiind recomandat ă filtrarea
digitală.
Filtrele analogice sunt mai ieftine, mai rapide și au o scal ă
(domeniu) dinamic ă mai mare. Abilitatea de a cr ea filtre care au curbe de
răspuns în frecven ță și care trebuie s ă îndeplineasc ă anumite criterii de
performan ță, precum l ățime strict impus ă a benzii de trecere, sau l ățime
impusă a benzii de tranzi ție, depășește capabilita țile filtrelor analogice.
Filtrele numerice îndeplinesc cerin țele de flexibilitate și putere
mare, îndeplinind totodat ă și cerințe de cost și gabarit redus. Acestea
s u n t l a f o a r t e m a r e c ăutare, putând lucra în dub lã precizie sau virgula
Achizi ția și procesarea semnalelor 113
mobilă atunci când dispunem de procesoare digitale puternice, cum ar fi
cel al unui calculator de birou sau al calculatorului de bord de la
autovehicule. În cazul telefo anelor celulare, când cerin țele de gabarit
sunt stricte și se impune folosirea telefonului un anumit num ăr de ore
fară a epuiza bateria, se utilizeaz ă filtrele și procesoarele numerice care
lucrează în algoritmul cu punct fix (fixed-point algorithm).
Filter Design Toolbox – oferã func țiile de care avem nevoie
pentru a crea filtre ce îndeplinesc condi ții restrictive severe. În plus,
oferă funcțiile necesare analiz ării efectului proces ului de cuantizare
asupra performan ței filtrului și asupra calit ății procesării semnalului,
precum și posibilitatea de a crea filt re cu structuri prototip.
Structurile acestor filtre poate fi cu r ăspuns finit la impuls –
Finite Impulse Response (FIR) , sau cu r ăspuns infinit la impuls –
Infinite Impulse Response (IIR) .
7.2.Tipuri principale de filtre
Modulul Filtering din blocul DSP are si posibilitatea cre ării automate a
filtrelor. Deosebim 4 tipuri principale de filtre:
1. Filtrul trece-jos (lowpass filt er) – reprezentat în Figura 1 :
lasă să treacă componentele de frecven ță joasă ale semnalului,
până la frecven ța de taiere (cut frequency), dup ă care prezint ă o
zonă de trece care este cu atât mai abrupt ă cu cât ordinul filtrului
este mai mare. A șadar, ordinul mai mare al filtrului înseamnn ă
lațime a benzii de tranzi ție mai mic ă, adică un filtru mai precis.
Dupã banda de tranzi ție urmeaz ă banda de stop, cu frecven ță
minimă de stop. Nu mai trece nici o component ă a semnalului cu
frecvența mai mare decat frecven ța de stop, în banda de tranzi ție
a filtrului fiind totu și posibile unele scap ări.
Autor : Viorel Paleu 114
2. Filtrul trece-sus (highpass filter) – reprezentat in Figura 2 :
lasă să treacă componentele de frecven ță înaltă ale semnalului,
începând cu frecven ța de trecere (pass frequency).
3. Filtrul trece-banda (bandpass filt er)– reprezentat in Figura 3
: lasă să treacă componentele de frecven ță cu valori cuprinse
între două frecvențe de tăiere.
4. Filtrul stop-banda (bandstop filter)– reprezentat in Figura 4 :
taie componentele de frecven ță cu valori cuprinse între dou ă
frecvențe de tăiere.
Fig. 7.1 : Exemplu de filtru trece-jos (IIR) tip Butterworth, cu ordinul 8,
frecvență de tăiare 10,8 KHz, frecven ță de eșantionare 48 Khz.
Achizi ția și procesarea semnalelor 115
Fig.7.2 : Exemplu de filtru trece-sus (IIR ) tip Chebyshev, cu ordinul 80,
frecvență de stop de 12 KHz, frecven ță de eșantionare 48 Khz, o
atenuare în banda de stop de 200 dB.
Fig. 7.3 : Exemplu de filtru trece-banda (FIR) tip fereastr ă Hamming, cu
ordinul 80, cu frecven țe de tăiere Fc1=8,4 KHz si Fc2=13,2 KHz
Autor : Viorel Paleu 116
Fig. 7.4 : Exemplu de filtru stop-banda (FIR) tip equiripple, cu ordinul
80, cu frecven țe de trecere Fp1=7,2 KHz și Fp2=14,4 KHz și frecvențe
de stop Fc1=9,6 KHz și Fc2=12 KHz
7.3. Alegerea principalelor tipuri de filtre
Un filtru trece-jos este destinat bloc ării tuturor frecven țelor mai
mari decât frecven ța de prag, în timp ce toate frecven țele de sub acest
prag sunt acceptate. Figura 3-11 arat ă răspunsul în frecven ță a acestor
trei filtre într-o scara logaritmic ă.
Achizi ția și procesarea semnalelor 117
Fig. 7.5. : Caracteristicile a trei filt re (Bessel, Butherwoth si
Chebyshev) reprezentate pe o scal a liniara. Se observa ca filtrul
Chebyshev se apropie cel mai mult de unul ideal in ce priveste panta
abrupta a benzii de tranzitie
Graficele sunt reprezent ări ale unor filtre cu o frecven ță de prag
de un Hertz, dar pot fi demultiplicate direct pentru frecven ța de prag
dorită. Cum pot fi clasificate aceste filtre? Filtrul Chebyshev este de
departe cel mai bun, Butterworth este mai slab, iar Bessel este
Autor : Viorel Paleu 118
nesatisfcator. Acesta este scopul pentru care a fost conceput filtrul
Chebyshev, varia ția rapidă cu frecven ța (scăderea amplitudinii) cât de
repede posibil.
Din păcate, chiar și un filtru Chebyshev cu 8 poli nu este foarte
performant. Sa luam exemplul unui sistem de e șantionare pe 12 bi ți cu
10.000 de e șantionări pe secund ă. Teorema de e șantionare spune c ă orice
frecvență mai mare de 5 kHz va fi suprapus ă în spectrul de frecven țe,
lucru care se dore ște a fi evitat. La o prim ă estimare, se observ ă că toate
frecvențele mai mari de 5 kHz trebuie reduse în amplitudine de 100 de
ori, asigurându-ne astfel c ă toate frecven țele din spectru vor avea o
amplitudine mai mic ă de 1%. Privind figura 3-11c, ve ți observa c ă un
filtru Chebyshev cu 8 poli, cu o frecven ță de prag de 1 Hz, nu poate
reduce semnalul de 100 de ori decâ t pe la aproximativ 1,35 Hz. Astfel,
frecvența de prag a filtrului trebuie regl ata la 3,7 kHz astfel încât orice
valoare peste 5 kHz va avea atenuarea dorit ă. Rezultă deci că banda de
frecvență dintre 3,7 kHz si 5 kHz se pierde printr-o varia ția nepotrivit ă
cu frecven ța a filtrului analog.
Ca o chestiune de subtilitate putem afirma c ă factorul de atenuare
100 ales în acest exemplu este probabil suficient chiar dac ă se folosesc
4096 de opera țiuni pe 12 bi ți. Din Figura 3-4 , observăm că 5.100 Hz vor
fi trecuți în 4.900 Hz, 6.000 Hz în 4.000 Hz etc. Nu conteaz ă ce
amplitudine are semnalul între 5.000 și 6.300 Hz pentru ca acesta va fi
redus in regiunea inutilizabil ă dintre 3.700 și 5.000 Hz. Pentru ca o
frecvența sa fie redus ă in banda acceptat ă de filtru, trebuie ca aceasta s ă
fie mai mare de 6.300 Hz, sau de mi nim 1,7 ori mai mult decât frecven ța
de prag a filtrului (3.700 Hz). A șa cum se arat ă și in figura 3-11c,
atenuarea oferit ă de un filtru Chebyshev cu 8 poli pent ru de 1,7 ori
frecvența de prag este de 1300, mult mai potrivit ă decât valoarea de 100
cu care am început aceast ă analiză. Concluzia este c ă În multe dintre
sisteme, banda de frecven ță cuprinsă între 0,4 si 0,5 din frecven ța de
Achizi ția și procesarea semnalelor 119
eșantionare se pierde datorit ă variației cu frecven ța și a suprapunerilor
în spectrul de frecven țe. Acesta este un rezultat direct al limit ărilor
impuse de filtrele analoage.
Răspunsul in frecven ță a unui
filtru “trece-jos” ideal are o pant ă mică.
În figura 3-11, toate fi ltrele par a fi destul
de bine sub acest aspect, dar acest lucru se datoreaz ă axei verticale, afi șate pe o
scară logaritmic ă. Când graficul este
convertit la o scar ă verticală liniară,
lucrurile se schimba radical a șa cum se
vede în figura 3-12.
Fig. 7.6. : Caracteristicile a trei filtre
(Bessel, Butherwoth si Chebyshev) reprezentate pe o scala liniara. Se observa ca filtrul Butterworth are banda de trecere cea mai neteda.
Ondulația benzii de trecere poate fi observat ă acum la filtrele
Chebyshev (varia țiile în amplitudine ale frecven țelor acceptate au forma
ondulată). De fapt, filtrul Chebyshev ob ține excelentul sau r ăspuns cu
frecvența chiar prin admiterea acestor varia ții. Cu cât este admisa o mai
Autor : Viorel Paleu 120
mare varia ți e î n f i l t r u c u a t â t r ăspunsul în frecven ță va fi mai rapid.
Toate filtrele Chebyshev concepute conform Tabelului 3-1 au o varia ție
a benzii de trecere de aproximativ 6% (0,5 dB), un compromis bun si uzual.
Un concept similar, filtrele eliptice , permit varia ții atât în zona
de trecere cât și în zona benzii de stop. Chiar dac ă sunt mai greu de
proiectat, filtrele eliptice pot oferi o optimizare mai bun ă între varia ția cu
frecvența si variația benzii de trecere.
Ca o compara ție, filtrul Butterworth este conceput s ă ofere o
variație cu frecven ța cât mai liniar ă fără a permite varia ții ale zonei de
trecere. Acesta mai este numit si cel mai drept filtru si este identic cu un filtru Chebyshev proiectat far ă variație a zonei de trecere. Filtrul Bessel
nu are varia ții ale zonei de trecere da r este mult mai slab decat
Butterworth.
Ultimul parametru care trebuie evaluat este răspunsul
tranzitoriu, felul în care un filtru r ăspunde unui impuls (unei intrari ce
se modifica brusc de la o valoare la alta valoare). Figura 3-13 arată acest
parametru pentru fiecare dint re cele 3 filtre. Axa orizontal ă este
reprezentat ă pentru filtre cu frecven ța de prag de un Hertz, dar poate fi
multiplicat ă pentru frecven țe de prag mai mari. De exemplu, o frecven ță
de prag de 1.000 Hz va indica un raspuns tranzitoriu mai de grab ă în
milisecunde decât în secunde. Supraoscila ția la filtrele Butterworth și
Chebzshev au ca efect o oscila ție tranzitorie amortizat
ă încet. Prin
comparație, la filtrul Bessel nu apar astfel de probleme.
Achizi ția și procesarea semnalelor 121
Fig. 7.7. si 7.8.
Autor : Viorel Paleu 122
Figura 3-14 ilustreaz ă această caracteristic ă a filtrelor Bessel.
Graficul (a) arat ă un impuls format dintr-o treapt ă care urcă urmată de
una ce coboar ă. Figurile (b) și (c) arata cum va ar ăta acest semnal dupa
filtrele Bessel respectiv Chebyshev. Dac ă acesta ar fi un semnal video de
exemplu, distorsiunea introdus ă de filtrul Chebyshev ar fi devastatoare,
facând imaginea s ă fie diferit ă ca luminozitate la margini fa ță de centru.
Mai mult, partea stâng ă a imaginii va ap ărea mai luminoas ă în timp ce
partea dreapt ă va fi mai întunecat ă. Multe aplica ții nu pot tolera un
răspuns treapt ă slab. Acesta este locul unde filtrele Bessel exceleaz ă.
În concluzie, pentru fiecare aplica ție dată se recomand ă alegerea
cu atenție a filtrelor folosite, în func ție de specificul aplica ției și de
cerințele impuse.
Achizi ția și procesarea semnalelor 123
CAPITOLUL 8
REȚELE NEURONALE – GENERALIT ĂȚI
8.1. Domenii de aplica ție
Rețelele neuronale s-au impus în diverse aplica ții, datorit ă
soluțiilor eficiente pe care le prezint ă în rezolvarea unor probleme care
nu pot fi rezolvate prin metode cl asice. Dintre avantajele utiliz ării
rețelelor neuronale amintim:
− Integrează rezultate din disciplin e variate, în scopul ob ținerii unor
arhitecturi simple de calcul. În cadrul teoriei re țelelor neuronale se
reformuleaz ă în mod unitar tehnici deja clasice, dar apar ținând unor
domenii variate. Se asigur ă în acest mod acoperirea unor zone de
graniță, fapt important în condi țiile în care interdisciplinaritatea
câștiga tot mai mult teren.
− Modeleaz ă inteligen ța umană, putând contribui la o mai buna
întelegere a modului cum func ționează creierul uman.
− Sunt o alternativa la paradigma computa țională clasică bazată pe
descompunerea problemelor în unit ăți logice și pe secven ța de
instrucțiuni programate.
− Pot fi considerate ca realiz ări prototip ale conceptului de procesare
paralelă și distribuit ă. Având în vedere c ă tehnologiile actuale nu
permit o m ărire considerabil ă a vitezei componentelor, prin urmare
accelerarea rezolv ării sarcinilor computa ționale, se impune
procesarea paralel ă. Paralelizarea algoritmilor clasici nu u șor de
realizat, deci este de dorit s ă existe sisteme implicit paralele c ărora să
li se prezinte probleme formulate clasic.
Autor : Viorel Paleu 124
Teoria re țelelor neuronale și-a găsit o multitudine de aplica ții
practice, în diverse domenii:
¾ industria aerospa țială:
• creșterea performan țelor avioanelor cu pilot automat;
• sisteme de detectare a posibilelor defecte;
• sisteme de control a aparatelor de zbor.
¾ industria automobilelor:
• sisteme de ghidare automat ă a automobilelor;
• analiza activit ăților de garan ție.
¾ sistemul bancar:
• citirea și verificarea validit ății documentelor;
• evaluarea riscului de credit are a unui client (persoana
fizică sau juridic ă).
¾ domeniul militar:
• localizarea țintelor;
• recunoașterea facial ă;
• noi tipuri de senzori;
• sonarul;
• identificarea imaginilor și sunetelor.
¾ În electronic ă:
• sintetizarea vocii;
• modelarea neliniar ă;
• procese de control.
¾ În industrie:
• Rețelele neuronale sunt “inva țate” să detecteze
eventualele sc ăpări de gaze din furnale sau alte procese industriale.Ele
pot înlocui echipamentele costisitoare și complexe folosite în trecut
pentru detectarea sc ăpărilor de gaze;controlul pr oceselor de prelucrare,
analiza si proiectarea produselor, pl anificarea si managmentul, analiza
proceselor de exploatare;
Achizi ția și procesarea semnalelor 125
¾ În domeniul medical:
• Diagnosticarea pacientului pe baza analizelor și
radiografiilor, accesând o baz ă de date existen ța ecografiilor (analiza și
detectarea celulelor canceroase).
¾ În robotic ă:
• controlul traiectoriei mecanismelor;
• controleri de mi șcare.
¾ telecomunica ție:
• comprimarea imaginilor și datelor;
• traducerea în timp real a limbii vorbite;
• sisteme automate de informare.
¾ În transporturi:
• sisteme de diagnosticare a frânelor;
• sisteme de ghidare.
Autor : Viorel Paleu 126
8.2. Noțiuni generale privind re țelele neuronale
8.2.1. Defini ție
Din punct de vedere func țional o re țea neuronal ă este un sistem
ce primește date de intrare (corespunz ătoare datelor ini țiale ale unei
probleme) și produce date de ie șire (ce pot fi interpretate ca r ăspunsuri
ale problemei analizate).
Mai corect spus re țelele neuronale caracterizeaz ă ansambluri de
elemente de procesare simple, puternic inteconectate și operând în
paralel, care urm ăresc să interacționeze cu mediul înconjur ător într-un
mod asem ănător creierelor biologice, prezentând capacitatea de a înv ăța.
Originea acestor re țele trebuie c ăutată în studierea re țelelor
bioelectrice din creier formate de neuroni și sinapsele acestora.
Principala tr ăsătură a acestor re țele este capacitatea de a înv ăța pe bază
de exemple, folosindu-se de experien ța anterioar ă pentru a- și îmbunătăți
performan țele.
Deși se aseam ănă în func ționare cu creierul uman, re țelele
neurale (sau neuronale) au o structur ă diferită de cea a creierului. O re țea
neuronala este mult mai simpl ă decât corespondentul uman, dar la fel ca
și creierul uman, este compus ă din unit ăți puternice de calcul, mult
inferioare îns ă corespondentului uman, neuronul.
Principala deosebire a re țelelor neurale fa ță de alte sisteme de
prelucrare a informa țiilor îl constituie capacitatea de înv ățare în urma
interacțiunii cu mediul înconjur ător, și îmbunătățirii performan țelor.
Nu există o definiție general acceptat ă a acestor tipuri de sisteme,
dar majoritatea cercet ătorilor sunt de acord cu definirea re țelelor
artificiale ca re țele de elemente simple puternic interconectate prin
Achizi ția și procesarea semnalelor 127
intermediul unor leg ături numite interconexiuni prin care se propag ă
informație numeric ă.
O caracteristic ă esențială a rețelelor neuronale este capacitatea de
a se adapta la mediul informational corespunz ător unei probleme
concrete, printr-un proces de învatare. În felul acesta re țeaua extrage
modelul problemei pornind de la exemple.
Din punct de vedere structural o re țea neuronal ă este un
ansamblu de unit ăți interconectate, fiind caracterizat ă de o func ționare
simplă. Funcționarea unit ăților este influen țată de o serie de parametri
adaptabili. Astfel o re țea neuronal ă este un sistem extrem de flexibil,
organizat ca în Fig. 8.1.
Structura unit ăților func ționale, prezen ța conexiunilor și a
parametrilor adaptivi, precum și modul de func ționare sunt inspirate de
creierul uman. Fiecare unitate func ționala prime ște o serie de semnale de
intrare pe care le prelucreaz ă și produce un semnal de ie șire.
Autor : Viorel Paleu 128
Fig.8. 1 . Schema structural ă generală a unei rețele neuronale
Interacțiunea multor unit ăți cu funcționare simpl ă conduce la un
sistem care poate s ă rezolve probleme complexe. Func ționarea
sistemului este controlat ă de un set numeros de pa rametri ajustabili care
permit acestuia s ă se adapteze cât mai fidel mediului informa țional în
care este amplasat (specific problemei de rezolvat).
După cum am men ționat, una dintre cele mai importante
caracteristici ale unui sistem neuronal este caracterul s ău adaptiv, faptul
că aceasta poate s ă-și stabileasc ă parametrii de func ționare printr-un
proces de înv ătare, bazat pe informa țiile primite.
Achizi ția și procesarea semnalelor 129
Fig.8. 2. Reprezentare simplificat ă a rețelei neuronale
Astfel de sisteme sunt adecvate pe ntru problemele ce sunt dificil,
sau chiar imposibil de rezolvat, pe ntru ele existând doar exemple de
rezolvare.
8.2.2. Motiva ția biologic ă
În încercarea de a proiecta sisteme inteligente, cel mai la
îndemână model este chiar creierul uman. Acesta este capabil s ă
prelucreze cantit ăți mari de date la un moment dat și surclaseaz ă în mod
cert calculatoarele (în special cele seri ale) în probleme complexe de tipul
înțelegerii scenelor (cum ar fi recunoa șterea unei imagini familiare într-
un mediu necunoscut).
Din punct de vedere biologic creierul este constituit dintr-un
număr mare de celule care efectueaz ă sarcini simple și la o vitez ă nu
prea mare, dar care sunt puternic interconectate și lucrează în paralel.
Având în vedere faptul c ă, componentele electronice care stau la
baza calculatoarelor actuale au timpi de r ăspuns mult mai mici și totusi
Autor : Viorel Paleu 130
sunt surclasate de c ătre creier în rezolvarea unor probleme complexe
(vedere, decizii pe baza unor date incomplete etc.), rezult ă că puterea
computațională a creierului const ă în milioanele de neuroni care
operează simultan.
Evident, ar fi de dorit r ealizarea de sisteme care s ă lucreze cu
viteza componentelor electronice și să fie caracterizate de conectivitatea
creierului. Dintre cara cteristicile creierului, care sunt de dorit și în
sistemele artificiale, pot fi enumerate:
• robustete și toleranța la erori (mor zilnic neuroni, f ără ca aceasta
să afecteze semnificativ performan țele creierului);
• flexibilitate (fiin țele sunt capabile s ă se adapteze la un nou mediu
prin învățare);
• capacitatea de a prelucra informa ție incomplet ă, nedeterminist ă
sau chiar incon știentă.
În ceea ce prive ște robuste țea și toleranța la erori, aceasta este
asigurată de faptul c ă informația este reprezentat ă în mod distribuit și nu
localizat. Astfel, din punct de vedere cibernetic, creierul este un sistem
natural de prelucrare paralel-distribuit ă a informa ției.
Rețelele neuronale pot fi v ăzute atât ca modele ale creierului cât
și ca sisteme de prelucrare a informa ției și rezolvare a problemelor.
Acestea sunt dou ă direcții distincte în domeniul re țelelor neuronale, fiind
diferite atât din punct de vede re al tehnicilor utilizate cât și din punct de
vedere al aplica țiilor.
În ceea ce urmeaz ă, ne vom referi doar la re țele neuronale
artificiale destinate rezolv ării unor probleme computa ționale.
Achizi ția și procesarea semnalelor 131
8.2.3. Etape principale în evolu ția rețelelor neuronale
artificiale
¾ [McCullough and Pitts, 1943]
Au propus primul model formal al neuronului punând în eviden ță
abilitatea de calcul a acestuia și posibilitatea de a imita func ționarea
acestuia prin circuite electrice. ¾ [Hebb, 1949]
A enunțat principiul adapt ării permeabilit ății sinaptice, conform
căruia de fiecare dat ă când o conexiune sinaptica este "folosit ă"
permeabilitatea ei cre ște. Acest principiu st ă la baza adapt ării prin
modificarea ponderilor sinaptice. ¾ [Rosenblatt, 1957]
A dezvoltat o re țea implementat ă hard, numit ă perceptron, pentru
clasificarea caracterelor tip ărite.
¾ [Widrow si Hoi, 1950-1960]
Au dezvoltat algoritmi de înv ățare bazați pe minimizarea erorii
pe setul de antrenare pentru re țele cu un nivel de unit ăți funcționale
(ADALINE – Adaptive LINear Element și MADALINE – Multiple
ADaptive LINear Element). ¾ [Minsky si Papert, 1969]
Au publicat cartea "Perceptrons " în care se pun în eviden ță
limitele re țelelor cu un singur nivel de unit ăți funcționale. Reprezint ă
finalul primei etape de dezvoltare a re țelelor neuronale, dup ă care a
urmat o perioada de ci rca 10 ani în care cercet ările în domeniu au fost
reduse considerabil. ¾ [Hopfield, 1982]
Propune o abordare a analizei re țelelor neuronale folosind
formalismul fizicii statistice prin punerea în eviden ță a analogiei între
rețelele recurente (destinate memor ării asociative) și sistemele de spini
Autor : Viorel Paleu 132
magnetici. Marcheaz ă începutul unei noi perioa de de interes în domeniu,
caracterizat ă prin extinderea domeniilor de aplicabilitate și volumul
mare de implement ări soft și hard folosite în aplica ții practice.
¾ [Rumelhart, Parker, 1985]
Este descris, într-o manier ă accesibil ă, algoritmul de învatare al
rețelelor cu mai multe nivele – bazat pe ideea minimiz ării unei func ții de
eroare – calculat ă pornind de la un set de an trenare. Algoritmul este
cunoscut sub denumirea de "backpropagation", adic ă propagare invers ă,
provenită de la faptul c ă pentru determinarea ajust ărilor ce vor fi aplicate
ponderilor semnalul de eroare se propag ă prin rețea în sens invers (de la
nivelul de ie șire către cel de intrare).
¾ [Carpenter, Grosberg, 1983]
Dezvoltă "teoria rezonan ței adaptive", care c onduce la algoritmi
de învătare nesupervizat ă bazată pe procese de competi ție.
¾ [Kohonen, 1980]
Dezvoltă rețele neuronale cu auto-organizare, care modeleaz ă
procese neuronale, dar pot fi folosite și pentru prelucrarea datelor.
8.3. Structura unei re țele neuronale artificiale
O rețea neuronal ă artificial ă este un ansamblu de unit ăți
funcționale amplasate în nodurile unui graf orientat și între care circul ă
semnale de-a lungul arcelor grafului . Elementele definitorii ale unei
rețele neuronale sunt:
Arhitectura: specific ă modul în care sunt amplasate și
interconectate unita țile funcționale. Arhitectura determin ă și fluxul
informațional în cadrul re țelei.
Funcționarea: specific ă modul în care fieca re unitate în parte și
rețeaua în ansamblul ei transform ă semnalele de intrare în semnale de
Achizi ția și procesarea semnalelor 133
ieșire. Funcționarea este influen țată de arhitectur ă, în special de modul
de interconectare a unit ăților.
Adaptarea (înva țarea): specific ă modul de stabilire a parametrilor
ajustabili astfel încât re țeaua să poate rezolva anumite probleme. În
funcție de natura informa ției de care se dispune, înva țarea poate fi
supervizat ă sau nesupervizat ă.
Învătarea const ă în modificarea func ționalității rețelei prin
modificarea parametrilor și/sau a structurii acesteia. Procesul de înva țare
bazat pe adaptarea parametrilor const ă în existen ța unor reguli de
modificare a parametrilor și un algoritm (de obicei iterativ) de aplicare a
acestor reguli.
Structura general ă a unui algoritm de înva țare bazat pe
modificarea parametrilor este:
// inițializarea (aleatoare) a parametrilor re țelei:
init W(0) // inițializarea indicatorului de itera ție:
t=0 // prelucrare repetitiv ă:
repeat W(t+1)=adjust(W(t),X(t)[,d(t)]) t=t+1 until <criteriu de stop>
unde W(t) reprezint ă valorile parametrilor la momentul t, X(t)
reprezintă semnalul de intrare, iar d(t) semnalul de înv ătare
corespunz ător (poate fi chiar r ăspunsul corespunz ător intrării X(t), sau
doar un indicator de corectitudine / eroare a r ă
spunsului dat de re țea). In
cazul învățării nesupervizate d(t) poat e lipsi din regula de înv ățare.
Autor : Viorel Paleu 134
8.3.1. Neuronul simplu
Intrarea p de tip scalar este transmis ă printr-o conexiune care ii
multiplică valoarea cu ponderea w, pentru a forma produsul wp, care
este un scalar. Produsul wp es te singurul argument al func ției de transfer
care produce ie șirea a, ca fiind deasemenea un scalar.
Fig. 8.3. Structura unui neuron
Neuronul din dreapta are o influen ță b, denumit ă curent și “bias”
(b fiind un scalar). w reprezint ă o pondere, suma ponderilor pentru o
rețea de neuroni fiind întotdeauna egal ă cu unitatea. Intrarea n a func ției
de transfer, din nou un scalar, este su ma ponderilor de in trare wp, la care
se adaugă biasul b. Aceast ă sumă este argumentul func ției de transfer f.
Parametrii w (pondere) și b (bias) sunt reglabili, aceasta fiind și
idea de baz ă a rețelelor neuronale: dispunând de o multitudine de date de
intrare și de ieșire, începem procesul de înv ățare a rețelei adaptând
ponderea sau biasul pân ă când rețeaua neuronal ă iși gasește funcția de
transfer adecvat ă.
Introducând date de intrare care nu fac parte din cele folosite în
procesul de înv ățare, rețeaua neuronal ă trebuie s ă fie capabil ă să
Achizi ția și procesarea semnalelor 135
gasească o soluție care respect ă proprietățile commune datelor de ie șire
folosite în procesul de înv ățare.
Biasul pote fi privit ca o cantitate suplimetar ă (un scalar), care se
adugă la suma ponderilor w, astfel încât s ă ajusteze func ția de transfer a
rețelei la rezultatul dorit. Biasul poat e lipsi dintr-un neuron. El este un
parametru adjustabil al neuronului, nu un parametru de intrare. Totu și, în
cazul în care biasul ia valoarea constant ă egală cu unitatea (1), el poate fi
privit ca o intrare și trebuie tratat ca în cazul dependen ței liniare a
intrărilor. Dac ă biasul este zero, se ajunge la cazul neuronului simplu,
fără bias.
8.3.2. Func ții de transfer
8.3.2.1. Func ția de transfer hard-limit (func ția treapt ă):
Restrânge ie șirea neuronului la valoarea de 0, dac ă argumentul de intrare
al rețelei n este mai mic decat 0; sau 1 dac ă n este mai mare sau egal cu
zero.
Fig. 4. Funcția de transfer hard-limit
8.3.2.2. Func ția de transfer liniar
Între valorile de intrare și iesire exist ă o dependen ță liniară.
Autor : Viorel Paleu 136
Fig. 8.5. Funcția de transfer liniar
8.3.2.3. Func ția de transfer Log-Sigmoid
Fig.8. 6. Funcția de transfer log-sigmoid
Funcția de transfer log-sigmoid pr eia intrarea, care poate avea
orice valoare între plus și minus infinit, și limiteaz ă valoarea ie șirii în
spectrul valorilor 0 și 1.
Achizi ția și procesarea semnalelor 137
8.3.3. Neuronul cu in trare de tip vector
Fig. 8.7. Neuronul cu intrare de tip vector
Fiecare element al vectorului de intrare, p B1B, p B2B, p B3B,…, p BRB este
inmulțit cu ponderea corespunz ătoare, iar produsele wp se sumeaz ă.
Neuronul are biasul b, care es te sumat cu valoarea intr ărilor pentru a
forma intrarea re țelei, n. Aceast ă sumă n reprezint ă argumentul func ției
de transfer f.
b p w p wp wnR R+⋅++⋅+⋅=,1 2 2,1 1 1,1 …
unde R reprezint ă numărul de elemente componente ale vectorului de
intrare.
Schematizarea structurii unui neuron cu intrare vectorial ă este
reprezentat ă în figura urmatoare.
Autor : Viorel Paleu 138
Fig. 8.8. Neuron cu intrare vectorial ă – reprezentare schematizat ă
Intrarea p este reprezentat ă de către dreptunghiul negru, p fiind
un vector cu R elemente. Dac ă avem mai mult decât un singur neuron,
ieșirea va fi un vector. Un stra t (layer) include o combina ție de intr ări
ponderate, opera țiile de multiplicare și de sumare, biasul b și funcția de
transfer f.
T8.4. Tipuri de re țele neuronale
Doi sau mai mul ți neuroni pot fi combina ți într-un strat, o re țea
poate con ține unul sau mai multe straturi de acest fel.
8.4.1. Rețea neuronal ă de tip strat unic (one layer)
O rețea neuronal ă de tip strat unic este prezentat ă în Error!
Reference source not found. și are R elemente de intrare și S neuroni.
Achizi ția și procesarea semnalelor 139
Fig. 8.9. Rețea neuronal ă cu strat unic (one layer)
În această rețea, fiecare element al vectorului de intrare p este
conectat la neuronul de intrare prin ponderea de tip ma trice W. Neuronul
cu indicele i con ține o sumare a tuturor ponderilo r sale cu biasul pentru a
forma propria ie șire, n(i), de tip scalar. Ie șirea finală a neuronului are
forma unui vector coloan ă a, fiind de forma mai sus amintit ă.
Un strat nu este obligatoriu s ă aibă numărul de intr ări egal cu
numărul de neuroni propr ii. In exemplul din Error! Reference source
not found. , se observ ă că numărul de intr ări în strat este diferit de
numărul de neuroni.
Elementele vectorului de intrare în re țea sunt ponderate cu
elementele ponderii matriciale W, care are forma:
Autor : Viorel Paleu 140
Se observ ă că indicele de coloan ă ale elementelor matricii W localizeaz ă
neuronul din strat (1… S), iar indicele de coloan ă localizeaz ă intrarea în
rețeaua neuronal ă (1…R).
8.4.2. Re țele neuronale multistrat
O rețea neuronal ă poate avea mai multe straturi ( Error! Reference
source not found. ). Fiecare strat ar e o pondere matricial ă W, un vector
bias b și o ieșire a de tip vectorial.
Fig. 8.10. Rețea neuronal ă de tip multistrat
Achizi ția și procesarea semnalelor 141
Pentru a face diferen ța dintre ponderea matriceal ă, vectorii de
ieșire etc., pentru fiecare din aceste straturi, am ad ăugat num ărul
stratului ca indice s uperior corespunz ător fiecăuia.
Straturile unui asemenea re țele au fiecare câte un rol diferit. Un
strat care produce ie șirea rețelei se nume ște strat de ie șire. Toate
celelalte straturi se numesc straturi ascunse. În Error! Reference source
not found. , straturile 1 și 2 sunt straturi ascunse iar stratul 3 reprezint ă
stratul de ie șire. O reprezentare mai simplificat ă a rețelei multistrat este
dată în figura urm ătoare.
Fig. 8.11. Rețea neuronal ă multistrat reprezentat ă schematizat
Rețelele multistrat sunt destul de puternice. De exemplu, o re țea
cu două straturi, unde primul st rat este de tip sigmoid și al doilea strat
este de tip liniar, poate fi antrenat s ă aproximeze orice func ție (cu un
număr finit de discontinuit ăți).
Autor : Viorel Paleu 142
8.5. Clasificarea re țelelor neuronale
8.5.1. Perceptronul multistrat (MLP)
Este de departe cel mai cunoscut și cel mai popular sistem
neuronal dintre toate cele cunoscute.
MLP-ul este o variant ă a modelului original propus de Rosenblatt
în anii ’50. În acest model, unui singur neuron ii este aplicat ă o funcție
ponderată liniara. Intrar ea in acest neuron
este un
vector caracteristic într-un spa țiu n-dimensional caracteristic. Func ția
rețelei reprezint ă suma ponderilor intr ărilor:
iar ieșirea este ob ținută din funcția rețelei printr-o func ție de detectare a
pragului:
Fig. 8.12. Modelul perceptronului
Achizi ția și procesarea semnalelor 143
O rețea neuronal ă de tipul perceptronului multistrat reprezint ă o
rețea neuronal ă stratificat ă. Fiecare neuron din aceast ă rețea are o func ție
de transfer neliniar ă care este de obic ei continuu diferen țiabilă.
Cele mai utilizate func ții de transfer în acest caz sunt func ția
sigmoid și funcția tangent hiperbolic ă. În figura de mai jos am
reprezentat modelul perceptr onului cu 3 straturi. Ace ști neuroni sunt
organizați in straturi, straturi etichetate ca ascunse.
Numele de straturi ascunse se referă la faptul c ă ieșirile acestor
neuroni vor intra în stratul cel mai de sus, fiind ascuns de utilizator, care
observă doar ieșirea neuronului de la cap ătul stratului. Se observ ă că
interconexiunile sunt numai între neuronii din straturi succesive din
aceeași rețea.
Fig. 8.13. Modelul perceptronului
Autor : Viorel Paleu 144
8.5.2. Re țele tip Radial Basis
O rețea de acest tip este o re țea ‘feed-forward’ (bucla de reac ție
inversă) care utilizeaz ă funcția de transfer radial basis. O asemenea
funcție este simetric ă față de un punct de reper. Câ teva exemple de astfel
de funcții sunt prezentate în imaginea de mai jos:
Fig. 8.14. Funcții tipice re țelelor Radial Basis
Rețelele neuronale tip Radial Ba sis sunt folosite pentru a
aproxima o func ție dată. De exemplu, o func țe radial basis de form ă
dreptunghiular ă poate fi folosit ă pentru a realiza o aproximare sub forma
de scară a funcției respective sau o func ție radial basis de form ă
triunghiular ă poate fi folosit ă pentru a construi o func ție de aproximare
trapezoidal ă.
Fig. 8.15. Aproximare ale func țiilor tipice
Achizi ția și procesarea semnalelor 145
8.5.3. Re țele de înv ățare de tip competitiv
8.5.3.1.Re țele ortogonal liniare
Fig. 8.16. Rețele ortogonal linare
Acest tip de re țele este unul destul de folosit și unul din primele
rețele neuronale dezvoltate și aplicate.
Autor : Viorel Paleu 146
8.5.3.2. H ărți auto-organizate
Fig. 8.17. Rețele de tip h ărți auto-organizate
Reprezint ă un tip de re țea neuronal ă bazat pe interconexiunea
dintre neuroni,legatura dintre ace știa fiind foarte important ă.
8.5.3.3.Sisteme de decizie
Un sistem de decizie reprezint ă o rețea neuronal ă modular ă.
Aceleaăi intrări vor fi aplicate tuturor modulelor re țelei. Ieșirile fiecărui
modul vor fi combinate pentru a da form ă ieșirii finale, astfel deciziile se
iau colectiv.
Achizi ția și procesarea semnalelor 147
8.6. Algoritmi de înv ățare a rețelelor neuronale
Asemenea neuronilor umani, ponderile în neuronii artificiali sunt
ajustate pe parcursul procedurii de înv ățare. Au fost dezvolta ți diferiți
algoritmi de înv ățare. Doar câ țiva algoritmi sunt potrivi ți pentru re țelele
neuronale tip multistrat. Unii algoritmi folosesc doar semnalele locale din neuroni, al ții necesită informații de la ieșiri.
Există algoritmi care necesit ă un supervizor. Supervizorul știe care ie șiri
sunt potrivite datelor de intrare ini țiale. O alt ă categorie de algoritmi sunt
cei nesuperviza ți. Aceștia nu necesit ă informa ții suplimentare din
exterior.
Principala deosebire a re țelelor neurale fa ță de alte sisteme de
prelucrare a informa țiilor îl constituie capacitatea de
HTUînvățare UTH în urma
interacțiunii cu mediul înconjur ător și îmbunătățirea performan țelor. O
reprezentare corect ă a informa țiilor, care s ă permită interpretarea,
predicția și răspunsul la un stimul extern, poate permite re țelei să
construiasc ă un model al procesului analizat.
Acest model va putea r ăspunde astfel unor stimuli neutiliza ți în
procesul prealabil de înv ățare. Informa țiile utilizate în procesul de
învățare pot fi informa ții disponibile a priori sau perechi intrare-ie șire
(care stabilesc rela ții de tipul cauz ă-efect), iar modul de reprezentare
internă urmărește un set de regului bine documentate.
Acești algoritmi pot fi clasifica ți după mai multe criterii cum ar
fi : disponibilitatea r ăspunsului dorit la ie șirea rețelei, existen ța unui
model analitic, tipul aplica ției în care sunt utiliza ți etc.
In general, putem afirma ca avem dou ă metode de înva țare:
învățarea supravegheat ă (care presupune existe ța în oric moment a
unei valori dorite a fiec ărui neuron din stratul de ie șire) și învățarea
nesupravegheat ă (în care re țeaua extrage singur ă anumite caracteristici
Autor : Viorel Paleu 148
importante ale datelor de ie șire, în urma unui gen de competi ție între
neuronii elementari).
În ultima perioad ă se remarc ă încă o clasă de algoritmi,
algoritmii de înv ățare folosind valori critice, rezultate în urma
observațiilor experimentale f ăcute pe animale, ace știa fiind de tipul
recompens ă / pedeaps ă
O parte din algoritmii de înv ățare sunt descri și în cele ce
urmează.
8.6.1. Regula de înv ățare Hebbian
Acest procedeu de înv ățare se bazeaz ă pe presupunerea c ă, dacă
doi neuroni vecini trebuie sa fie activa ți și dezactiva ți în acela și timp,
atunci ponderea care leag ă neuronii ar trebui s ă crească. Pentru neuronii
care lucreaz ă în faze opuse ponderea care ii leag ă ar trebui s ă scadă.
Dacă nu exist ă un semnal de corela ție, ponderea ar trebui s ă rămană
neschimbat ă.
Procesul de înv ățare începe de obicei cu setarea valorilor tuturor
ponderilor la valoarea zero. De vreme ce r ăspunsul dorit al neuronului
nu este folosit în procedura de înv ățare, acest algoritm de înv ățare este
de tip nesupervizat.
8.6.2. Algoritmul de înv ățare prin corelare
Se bazeaz ă pe un principiu similar algoritmului de înv ățare
Hebbian. Procedeul presupune ca ponderile neuronilor cu r ăspuns
simultan s ă capete valori pozitive, ia r ponderile neuronilor cu reac ție
opusă să ia valori negative. C ontrar algoritmului de înv ățare Hebbian,
aceast algoritm reprezint ă o învățare supervizat ă.
În locul r ăspunsului real, r ăspunsul dorit este folosit pentru
calcularea ponderii schi mbate. Se observ ă că, informa ția necesar ă
calculării ponderii este luat ă numai de la semnalele de intrare.
Achizi ția și procesarea semnalelor 149
8.6.3. Algoritmul de înv ățare “Instar”
Dacă vectorii de intrare și ponderile sunt stabili, sau dac ă au
numai valori binare bipolare (-1 sau +1), at unci valoarea re țelei va avea
cea mai mare valoare pozitiv ă când ponderile și semnalele de intrare sunt
la fel. Prin urmare, ponderile ar trebui schimbate numai dac ă sunt
diferite de semnale.
Se observ ă că informația necesar ă pentru pondere este luat ă
numai de la semnalele de intrare. Acest algoritm este unul local și
nesupervizat.
8.6.4. Winner Takes All (WTA, ‘înving ătorul ia totul’)
Metoda de înv ățare WTA a fost dezvoltat ă de către Kohonen
(1982) și este asem ănătoare cu precedenta, cu deosebirea c ă ponderile
sunt modificate numai pentru neur onul cu cea mai mare valoare din
rețea. Ponderile neuronilor r ămași sunt lăsate neschimbate.
Uneori acest algoritm este modificat în a șa fel încât doar pu țini
neuroni cu cele mai mari valoari din re țea sunt modifica ți în același timp.
Cu toate c ă acest algoritm este unul nesupervizat, pentru c ă nu știm care
sunt ieșirile dorite, este nevoie de un “supervizor” sau “judec ător” care
să stabileasc ă un “câștigător”, cu cea mai mare valoare din re țea.
8.6.5. Algoritmul de înv ățare Outstar
În acest algoritm, ponderile legate la un oarecare nod ar trebui sa
fie egale cu ie șirile dorite pentru neuronii uni ți de acele ponderi. Aceast ă
metodă a fost dezvoltat ă, ca de altfel și algoritmul de înv ățare Instar, de
către Grossberg (1969) și este o metod ă de învățare supervizat ă deoarece
ieșirile dorite trebuie cunoscute.
Autor : Viorel Paleu 150
8.6.6. Algoritmul de înv ățare Widrow-Hoff LMS
Este un algoritm de înv ățare supervizat, care permite antrenarea
unui neuron pentru un anumit raspuns dorit. Acest algoritm este derivat astfel încât diferen ța pătratică medie ale valorilor din re țea și valoarea
ieșirii sunt minime. De aceea ace st algoritm mai este denumit și LMS
(least mean square) adic ă “cea mai mic ă medie pătratică.
8.6.7. Descre șterea liniar ă “Linear Regression”
Aplicarea metodei LMS necesit ă sute sau chiar mii de itera ții
până să ajungă la soluția optimă. Folosind algoritmul regresiei liniare,
același rezultat poate fi ob ținut într-un singur pas.
8.6.8. Algoritmul de înv ățare Delta
Aplicarea metodei de înv ățare LMS presupune folosirea func ției
de activare liniar ă și soluția obtinut ă este de multe ori departe de solu ția
optimă. În compara ție cu metoda de înv ățare de tip LMS, algoritmul de
învățare conduce întotdeauna la o solu ție apropiat ă de cea asteptat ă.
8.6.9. Algoritmul de înv ățare de tipul erorii propag ării inverse
Este o generalizare a metodei precedente și este aplicabil ă în mod special
în cazul re țelelor neuronale multistrat.
Achizi ția și procesarea semnalelor 151
8.7. Structuri de date
8.7.1.Simularea cu intr ări concurente într-o re țea neuronal ă
statică
Cea mai simpl ă situație de simularea a unei re țele neuronale
corespunde cazului re țelelor statice, adic ă rețele în care nu apar întârzieri
și nu apar feedback-u ri (bucle de r ăspuns). În acest caz, nu ne mai
intereseaz ă dacă vectorul de intrare apare sau nu intr-o anumita secven ță
de timp, a șa că putem trata intr ările ca fiind concurente sau, mai simplu,
putem spune c ă rețeaua are doar o singur ă intrare vectorial ă.
Fig. 8.18. Rețea neuronala static ă
8.7.2.Simularea cu intr ări secven țiale într-o re țea neuronal ă
dinamic ă
Când o re țea neuronal ă conține întârzieri, intrarea re țelei va fi în
mod normal o secven ță de vectori de intrare care survin într-o anumit ă
Autor : Viorel Paleu 152
ordine. Pentru a ilustra acest caz am utilizat o re țea neuronal ă simplă
care conține o întarziere
Fig. 8.19. Rețea neuronal ă simplă cu întârziere
Comenzile urm ătoare creaz ă rețeaua:
net=newlin([-1 1], 1, [0 1]); net.biasConnect=0;
Se adaugă și matricea ponderilor W=[ 1 2 ];
Se poate deci simula re țeaua: A=sim(net,P);
8.7.3. Simularea cu intr ări concurente într-o re țea neuronal ă
dinamic ă
Dacă aplicăm aceleași intrări ca în exemplul precedent (un set de
intrări concurente în loc de secvent ă de intrări), atunci vom ob ține un cu
totul alt r ăspuns. Va fi ca și cum fiecare intr are ar fi aplicat ă simultan la
o alta rețea paralel ă. Rezultatul va fi acela și ca în cazul în care aveam
aplicate o singur ă intrare la o singur ă rețea și ar fi rezult ă în acest caz
doar o singur ă ieșire.
Achizi ția și procesarea semnalelor 153
8.8. Simularea re țelelor neuronale cu mediul Matlab
8.8.1. Introducere
Identificarea bazat ă pe modele neuronale s-a conturat ca direc ție
de cercetare la începutul anilor ’90, drept urmare a investiga țiilor
matematice asupra propriet ăților de aproximare ale re țelelor neuronale
de tip MLP (Multilayer Perceptron) și de tip RBF (Radial-Basis
Function). Evolu ția noului domeniu a fost impulsionat ă de contribu țiile
remarcabile, din aceea și perioad ă, ale unor nume de prestigiu în
automatic ă, care au deschi s drumul utiliz ării rețelelor MLP în
identificarea neliniar ă și care s-au orientat pe arhitecturi de tip RBF.
În acest context, merit ă subliniat faptul c ă aplicarea în automatic ă
a tehnicilor specifice re țelelor neuronale a fost dominat ă, pe intreaga
durată a anilor ‘90, de exploata rea topologiilor MLP cu noduri
sigmoidale în stratul (straturile) ascuns(e). Totu și, un num ăr de
cercetatori au continuat studierea aplicabilit ății rețelelor de tip RBF în
identificarea și conducerea sistemelor.
Pe de alt ă parte, firmele produc ătoare de software tehnico-
știintific au demarat dezvoltarea de facilitate specifice re țelelor
neuronale, astfel încât apari ția în 1992 a primei versiuni a Neuronal
Network Toolbox (NNT) încorporat ă în mediul MATLAB 4.2 a avut un
impact major asupra interesului acordat de c ătre automati ști acestei
direcții de cercetare. Întrucât NNT , de la prima versiune pân ă la cea mai
recentă a fost conceput s ă acopere o arie cât mai larg ă de aplica ții ale
rețelelor neuronale, proiectan ții săi nu și-au propus dezvoltarea
concomitent ă a unor blocuri Simulink, dedicate construc ției modelelor
dinamice.
O initiativ ă valoroas ă în aceast ă direcție trebuie semnalat ă în
studiile practice care prezint ă realizarea unui bloc Simulink destinat
Autor : Viorel Paleu 154
antrenării on-line, prin metoda propag ării inverse, a unei configura ții
dinamice bazat ă pe topologie MLP, destinat ă identificării neliniare.
Instrumentele soft utilizate vizeaz ă un cadru mult mai larg de
exploatare a re țelelor neuronale în Simulink, versiunea 4.0.1., îin scopul
construirii modelelor dinamice, permi țând utilizarea topologiilor
ADALINE, MLP și RBF, selectarea a diverse strategii de organizare a
datelor pentru identificare, precum și utilizarea mai multor tehnici de
antrenare în conform itate cu topologia re țelei. Prin crearea unor astfel de
instrumente, se realizeaz ă un progres notabil în ceea ce prive ște
simplitatea manevr ării modelelor neuronale în experimente de
identificare, care, astfel, pot fi conduse direct în mediul Simulink
(considerând inclusiv situa ția aplicațiilor de timp real pentru care se
poate face apel la serviciile Real-Time Workshop).
Facilitațile Matlab-Simulink pentru utilizarea re țelelor neuronale
în automatic ă au avut în vedere , în mod constant, și aspectul educa țional,
experiența acumulat ă permitănd crearea bibliotecii prezentate. Firma
producătoare, The MathWorks, incepând cu versiunea Simulink
comercializat ă în 2001, a inclus un bloc pe ntru identificare neuronal ă
bazată pe arhitectura MLP. Implementarea furnizat ă de firma The
MathWorks nu con ține blocuri structurat e pe topologiile ADALINE și
RBF și nici nu permite utilizarea strategiilor de antrenare on-line (pe
eșantioane).
8.8.2. Reprezentarea simplificat ă a modelor de tip neuronal
Utilizarea re țelelor neuronale în identificare permite construirea
de modele “black-box”, liniare sau neliniare, care se bazeaz ă pe
rezultatele teoretice privind capacita tea de aproximare a arhitecturilor
feedforward, formulate pent ru topologii ADALINE, MLP și respectiv
RBF. Un interes practic deosebit prezint ă obținerea modelelor discrete
Achizi ția și procesarea semnalelor 155
de tip NNARX cu perioad ă de eșantionare T. Formularea concret ă a
funcțiilor obiectiv este corelat ă cu modul de ob ținere și exploatare a
datelor experimentale corespunz ătoare procesului
8.8.3. Blocuri Simulink pe ntru identificarea bazat ă pe modele
neuronale
Metodologia de realizare a blocurilor SIMULINK se bazeaz ă pe
conceptul specific de func ție S introdus de produc ătorii software-ului,
care este caracterizat ă printr-o standardizare a arhitecturii ce asigur ă
interconectarea modulelor. În dezvolta rea blocurilor pentru identificare
cu modele neuronale, construirea func țiilor de tip S s-a bazat pe
scheletul sfuntmpl.m.
Versiunea 4.0.1 a NNT pune la dispozi ție funcții specializate
pentru definirea topolog iei, realizarea antren ării și simularea transferului
intrare-ieșire a rețelelor neuronale. Astfel, pot fi descrise intr-o manier ă
unitară (care opereaz ă cu structuri) arhitect uri cu unul sau mai multe
straturi și diferite tipuri de neuroni.
Totodată, antrenarea poate fi controlat ă prin diver și algoritmi, de
ordinul unu sau doi, pentru care NNT furnizeaz ă implement ări eficiente,
cu sintaxe de apel similare.
Autor : Viorel Paleu 156
CAPITOLUL 9
APLICA ȚII ALE RE ȚELELOR NEURONALE
În principiu, re țelele neuronale pot reprezenta orice func ție
calculabil ă. Ceea ce este îns ă mai important, este faptul c ă pot învăța
oricare astfel de func ție, pornind de la exemple.
Nu sunt îns ă eficiente pentru orice problem ă, ele fiiind utile în
rezolvarea problemelor pentru care se dispune de un num ăr mare de
exemple și pentru care nu pot fi g ăsite ușor și rapid reguli de
formalizare.
9.1.Clase de probleme care pot fi rezolvate cu ajutorul
rețelelor neuronale
9.1.1. Clasificare și recunoa ștere.
Date de intrare: Descriere sintetic ă a unui obiect (de exemplu descrierea grafic ă a
unei litere, sau ansamblul caracterist icilor acesteia). În majoritatea
situațiilor descrierea este un vect or de valori numerice ob ținute printr-o
prelucrare prealabil ă (preprocesare) a informa țiilor brute.
Date de ie șire:
Indicator al clasei c ăreia îi apar ține obiectul (de exemplu num ărul
de ordine al literei în cadrul alfabetului).
Abilitatea de clasificare a re țelei este rezultatul unui proces de
învățare, pornind de la exemple de clasificare corect ă.
Achizi ția și procesarea semnalelor 157
Pe lângă exemplul de mai sus, de recunoa ștere a caracterelor, alte
probleme concrete de clasificare sunt: recunoa șterea vorbirii, clasificarea
semnalelor (de exemplu separarea electrocardiogramelor în normale și
anormale), clasificarea celulelor în normale și anormale, recunoa șterea
unor chipuri umane într-o imagine, clasificarea te xturilor etc.
9.1.2. Gruparea pe categorii a datelor
Este similar ă problemei de clasificare cu diferen ța că antrenarea
rețelei se realizeaz ă pornind doar de la date de intrare, f ără a specifica
clasele cărora le apar țin. Clasele sunt construite pornind doar de la
similarități existente în datele de intrare. În felul acesta re țeaua neuronal ă
descoperă criteriul de grupare. Probleme concrete din aceast ă categorie
intervin în analiza da telor (în special în domeniul cunoscut sub
denumirea de "data mining") și compresia datelor.
9.1.3. Aproximare și estimare
Se referă la extragerea dependen ței funcționale dintre dou ă
mărimi, pornind de la un set de valori ale celor dou ă mărimi. De regul ă
valorile din set sunt alterate de zgomot (afectate de erori de m ăsurare,
sau de alt ă natură). Folosind acest set re țeaua este antrenat ă pentru a
determina dependen ța dintre cele dou ă mărimi. O dat ă rețeaua antrenat ă,
pentru orice valoare a argumentului ea furnizeaz ă aproximarea valorii
asociate.
O problem ă concretă din aceast ă clasă este reprezentat ă de
determinarea dependen ței func ționale între m ărimi măsurate
experimental.
Autor : Viorel Paleu 158
În aceeași clasă se încadreaz ă determinarea parametrilor unor
modele din ingineri e, sau orice problem ă de asociere.
9.1.4. Predic ții
¾ Date de intrare:
• succesiune de valori (numit ă serie temporal ă) pentru care
nu este cunoscut ă o relație formală care să le genereze.
¾ Data de ie șire:
• Aproximarea urm ătoarei valori din serie.
• Antrenarea re țelei: Se realizeaz ă pornind de la valorile
cunoscute din serie.
• Probleme concrete din aceast ă clasa sunt:
• predicția evoluției stocurilor,
• predicția în meteorologie,
• predicție în evolu ția vânzărilor etc.
9.1.5. Optimiz ări
Diferite probleme din stiin ță, inginerie și economie pot fi
formulate ca probleme de optimizare, constând în necesitatea determinării unei valori care satisface anumite restric ții și optimizeaz ă o
funcție obiectiv.
Rețelele neuronale sunt adecvate pentru rezolvarea problemelor
de optimizare dificile, pentru care nu pot fi g ăsite soluții pe căi
matematice precise. Probleme concrete din aceast ă categorie sunt cele care intervin în:
• proiectarea circu itelor electronice,
• alocarea resurselor,
• rezolvarea problemelor de rutare în re țele, etc.
Achizi ția și procesarea semnalelor 159
9.1.6. Stocarea și regăsirea informa ției după conținut
Rețelele neuronale permit stocarea informa ției astfel încât aceasta
să fie ulterior reg ăsită pornind de la indicii legate de con ținut (indiciile
pot fi porțiuni din informa ția stocată).
Astfel de sisteme de stocare sunt mai tolerante la erori în raport
cu memoriile bazate pe adrese. Aplica ții concrete sunt în proiectarea
bazelor de date multimedia.
9.1.7. Modelare și control adaptiv
Controlul unui sistem dinamic se refer ă la a determina un semnal de
control, u(t), care asigur ă producerea unui semnal de ie șire dorit y(t).
Rețeaua neuronal ă este antrenat ă pornind de la un model de referin ță.
9.1.8. Prelucrarea și analiza semnalelor
• Date de intrare:
– Un semnal, care poate fi o imagine sau un semnal sonor.
• Date de ie șire:
– Semnalul transformat (de exemplu prin eliminarea zgomotului), sau
o informa ție extrasă din cadrul semnalului.
Autor : Viorel Paleu 160
9.2. Descriere a unor aplica ții clasice
9.2.1. Eliminarea adaptiv ă a zgomotului – "adaptive noise
canceling"
La transmiterea unui semnal (sonor sau de alt ă natură) printr-un
canal de comunica ție (de exemplu o linie telefonic ă) intervine un zgomot
care afecteaz ă calitatea transferului. Pentru a întelege mai bine aceast ă
problemă trebuie s ă ințelegem modul în care factorul uman percepe și
clasifică sunetele.
Pentru urechea uman ă, a separa un sunet dintr-un anumit context
sonor (de exemplu a în țelege ceea ce spune o persoan ă într-o înc ăpere în
care se aude și muzică) nu este o problem ă dificilă. Aceasta este o
abilitate de a elimina zgomotul, pe care o utiliz ăm fără să ne gandim
explicit la ceea ce facem.
În mod analog dac ă în timpul unei convorbi ri telefonice intervine
un zgomot pe linie îl putem ignora, de și zgomotul respectiv nu are o
anumită caracterizare. Tocmai datorit ă acestui fapt este foarte dificil,
dacă nu imposibil, s ă separăm prin metodele clasice zgomotul de
semnalul util.
Oamenii sunt capabili s ă ignore acest zgomot, deoarece au
învățat această abilitate din experien ță. Este motivul pentru care aceast ă
problemă a fost rezolvat ă utilizând re țele neuronale, înc ă din primii ani
ai dezvolt ării lor (1950-1960, re țăeaua ADALINE proiectat ă de B.
Widrow).
9.2.2. Evaluarea risculu i creditului ipotecar
Unul dintre cele mai importa nte aspecte pe care o banc ă trebuie
să le ia îin considerare înaintea aprob ării unui credit pentru o persoan ă
este evaluarea riscului (ca persoana s ă nu fie capabil ă să returneze
Achizi ția și procesarea semnalelor 161
împrumutul). O re țea antrenat ă pe baza a câtorva mii de informa ții
privind cererile accepta te sau respinse a ob ținut o rată de succes de 98%
(în timp ce rata de succes a func ționarilor este în jur de 85%).
9.2.3. Cititor de coduri po ștale
Serviciul po ștal din SUA manevreaz ă volume mari de
coresponden ță. Una dintre sarcinile angaja ților este clasificarea
coresponden ței pe baza codului po ștal. Un sistem care asigur ă
clasificarea pe baza codului po ștal rezolvă următoarele subprobleme:
• identificarea zonei în care este scris codul;
• împarțirea acestei zone în subzone mai mici care se suprapun
pentru izolarea cifrelor.
• recunoașterea cifrelor.
A doua etap ă este repetat ă în paralel cu recunoa șterea cifrelor
până când sunt recunoscute toate cifrele. Re țelele neuronale sunt folosite
de regulă în etapa de recunoa ștere propriu-zis ă. Rata de succes a acestei
aplicații este de 95%. Ea a reprezentat punctul de pornire pentru
aplicațiile destinate recunoa șterii scrisului de mân ă (deși rata de succes a
acestor aplica ții este mult mai mic ă).
9.2.4. Recunoa șterea vorbirii
Pentru oameni, recunoa șterea vorbirii pare ceva intuitiv dar a
realiza o aplica ție care să facă acest lucru nu mai este deloc un lucru
simplu. La începutul anilor 1980, Intel a proiectat o aplica ție bazată pe o
rețea neuronal ă artificială care putea s ă identifice vocea unei persoane pe
baza unui vocabular limitat.
Autor : Viorel Paleu 162
Acest sistem, cunoscut sub numele de sistem de recunoa ștere
automată a vorbirii , poate identifica vocea unei persoane ce folose ște
un vocabular limitat, pe baza c ăruia a fost antrenat ă rețeaua de către acea
persoană. Aceasta aplica ție este utilizat ă în liniile de asamblare unde un
inspector poate comunica cu cal culatorul printr-o interfa ță vocală pentru
a controla procesul de asamblare.
9.2.5. Clasficarea semnalelor produse de "sonar"
"Sonar"-ul este un echipament care permite detectarea
obstacolelor submarine. Utilizarea echipamentului necesit ă un operator
experimentat care s ă recunoasc ă adevaratele obstacole în raport cu cele
false. A fost realizat ă o aplicație bazată pe o RNA antrenat ă pe baza unor
date ale sonarului înregistrate din cât mai multe direc ții posibile.
Sistemul a reu șit să identifice 98% dintre obstacolele din setul de
antrenare și 90% din datele noi.
Achizi ția și procesarea semnalelor 163
CAPITOLUL 10
FILTRE ADAPTIVE ȘI FILTRAREA ADAPTIV Ă
10.1.Modelul neuronului liniar
Un neuron cu R intr ări este descris în figura de mai jos:
Fig.10.1. Modelul neuronului liniar
Această rețea neuronal ă are aceea și structură de bază ca și ceea a
perceptronului ,singura diferen ță fiind că neuronul liniar folose ște o
funcție de transfer liniar ă, funcție numită purelin.
Funcția de transfer liniar ă calculeaz ă ieșirea neuronului prin simpla
returnare a valorii sale.
a=purelin(n)=purelin(Wp+b)=Wp+b
Neuronul poate fi antrenat s ă învețe o func ție asemănătoare
intrărilor sale sau s ă gasească o aproximare liniar ă a unei func ții
neliniare.
Autor : Viorel Paleu 164
10.2. Arhitectura unei re țele neuronale liniare adaptive
Rețelele neuronale de tip ADALIN E pot rezolva numai probleme
liniare separabile.
10.2.1. Single ADALINE
Considerăm un singur ADALINE cu dou ă intrări. Schema acestei
rețele neuronale este reprezentat ă mai jos:
Fig.10.2. Modelul ADALINE
La fel ca și perceptronul, ADALINE-ul ar e de luat o decizie de
graniță care este rezolvat ă de către vectorii de intrare penru care intrarea
rețelei n este 0(zero).
Achizi ția și procesarea semnalelor 165
Fig.10.3 :Schematizarea procesului decizional
Vectorii de intrare din partea din dreapta sus de culoare gri
conduce la o ie șire mai mare decat 0 (zero).Vec torii de intrare din partea
de jos de culoare alb ă conduce la ie șiri mai mici decat zero.Astfel
,ADALINE poate fi folosit s ă clasifice obiectele în dou ă categorii.Se
poate găsi ieșirea rețelei cu ajutorul func ției sim. În concluzie,se poate
crea o re țea ADALINE cu ajutorul comenz ii newlin,i se pot ajusta
elementele cum dorim și rețeaua se poate simula cu func ția sim.
Rețeaua neuronal ă de tipul ADALINE prezentat ă în figura de
mai jos are un strat cu S neuroni lega ți de R intr ări printr-o matrice a
ponderilor W.
Autor : Viorel Paleu 166
Fig. 10.4. Arhitectura re țelelor neuronale liniare adaptive
10.3. Eroarea p ătratică medie (Mean Square Error)
Ca și algoritmul de înv ățare a perceptronului, LMS-ul este un
exemplu înv ățare supervizat ă, în care algoritmul de înv ățare este
prevăzut cu un set de exempl e de comportare a re țelei neuronale:
{}{}{}QQtp tptp , ,…,, ,,22 11
unde primul termen reprezint ă intrarea re țelei neuronale, iar al
doilea termen reprezint ă ieșirea corespunz ătoare intr ării. Pentru
fiecare intrare care este aplicat ă, iesirea re țelei neuronale este
comparată cu ținta dorit ă. Eroarea este calculat ă ca diferen ță
dintre ie șirea și intrarea re țelei. În principal, se dore ște
minimizarea media aritmetic ă a sumei erorilor.
() () ()()∑∑
= =− = =Q
kQ
kkaktQkeQmse
12
121 1
Algoritmul de invatare LMS ajusteaz ă ponderile și biasul
ADALINE-ului astfel încât eroarea p ăratică medie să fie cât mai mic ă.
Achizi ția și procesarea semnalelor 167
10.4. Eliminarea adaptiv ă a zgomotului.
Conducerea adaptiv ă a sistemelor a ap ărut ca urmare a faptului
că multe dintre sistemele conduse sunt descrise prin modele cu parametri
constanți, sau lent variabili în timp, necunoscu ți sau insuficient
cunoscuți.
10.4.1.Tapped Delay Line (linie de întârziere de tip band ă)
Pentru a putea folosi la maxim re țelele neuronale de tip
ADALINE, avem nevoie de o nou ă component ă: linia de întârziere de
tip bandă (tapped delay line). O asemenea linie de întârziere este ar ătată
în figura de mai jos, aici semnal ul de intrare apare din stanga și trece
prin N-1 întârzieri. Ie șirea TDL-ului este un v ector N-dimensional,
compus din semnalele de intrare la timpul curent, semnalul de intrare precedent etc.
Fig.10.5. . Tapped delay line
Autor : Viorel Paleu 168
10.4.2. Filtru adaptiv
Prin combinarea unui tapped delay line cu o re țea neuronal ă de
tip ADALINE se realizeaz ă un filtru adaptiv, filtr u descris în figura de
mai jos:
Fig. 10.6. .Filtru adaptiv
Ieșirea filtrului este dat ă de relația de mai jos:
Achizi ția și procesarea semnalelor 169
10.5. Filtre adaptive multi-neuron
Arhitectura unei astfel de re țele neuronale este prezentat ă în
figura urm ătoare:
Fig. 10.7 . Arhitectura filtrelor adaptive multi-neuron
Schematic , aceast ă rețea neuronal ă are forma:
Fig. 10.8. Reprezentarea schematizat ă
Autor : Viorel Paleu 170
Aici avem un TDL (o band ă de întârziere) care trimite semnalul
curent, semnalul precedent și semnalul întârziat matricii ponderate. Am
putea avea o list ă mai lung ă și câteva din valorile întârziate ar putea fi
omise, dac ă se dorește. Singura necesitate este de a afi șa întârzierile în
ordine cresc ătoare, de sus în jos.
10.6. Algoritmi de filtrare adaptiv ă
Trebuie subliniat înc ă de la început c ă o aplica ție de filtrare
adaptivă nu admite o solu ție unică. În fapt, avem la dispozi ție un întreg
arsenal de tehnici diferite, fiecare având avantaje și dezavantaje
specifice, iar alegerea uneia sau alteia dintre variantele posibile trebuie
să ia în considerare criterii precum viteza de convergen ță, volumul de
calcul și de memorie necesar, ori efectul apari ției erorilor specifice
implement ării algoritmului, folosind circuite care ofer ă precizie limitat ă.
În cele ce urmeaz ă vom trece în revist ă câteva exemple de
algoritmi adaptivi reprezentativi, anume:
• algoritmul LMS (Least-Mean-Squares);
• algoritmul RLS (Recurrent Least-Squares);
• filtrul Kalman.
Acești algoritmi au fost elabora ți în contextul utiliz ării unor filtre
liniare, îns ă cu modific ări specifice se reg ăsesc și în cazul filtrelor
neliniare, în particular al re țelelor neurale.
10.6.1. Algoritmul LMS
După cum am spus mai sus, una dintre abord ările cele mai des
utilizate în teoria filtr ării adaptive este cea bazat ă pe formularea unei
Achizi ția și procesarea semnalelor 171
astfel de aplica ții sub forma unei probleme de optimizare. În mod
concret, se define ște un criteriu de performan ță (denumit de regul ă
funcție de eroare), care depinde de setul de coeficien ți ai filtrului și de
proprietățile statistice ale semnalelor de la intrarea și ieșirea dorit ă a
acestuia, asociind fiec ărui vector de coeficien ți o valoare scalar ă.
Aspectul geometric al suprafe ței multidimensionale rezultate
poate fi foarte complicat, îns ă în cazul particular al unui filtru discret
liniar de tip FIR și al erorii p ătratice medii aceasta se prezint ă ca o
suprafață parabolic ă de formă convexă, având o valoare minim ă unică.
Mai mult, vectorul de coeficienti corespunz ător acestei valori minime
este chiar setul optim definit de ecua țiile Wiener-Hopf. În principiu,
determinarea acestui sistem de ecua ții s-ar putea efect ua “dintr-un singur
foc” prin calcul algebric, îns ă în multe situa ții practice apar dificult ăți
datorate dimensiunilor mari ale matricilor implicate sau probleme de
stabilitate ale metodelor numerice folosite în inversarea matricii de autocorela ție R. Determinarea valorilor extreme ale unei func ții de mai
multe variabile poate fi asigurat ă printr-o palet ă largă de metode, expuse
cu acurate țe în textele referitoare la tehnicile de optimizare. Una dintre
cele mai des folosite solu ții o reprezint ă scăderea dup
ă gradient
(gradient descent), care în esen ță se bazeaz ă pe modificarea succesiv ă a
variabilelor pe direc ția și în sens invers gradientului func ției supuse
procesului de optimizare.
În multe situa ții practice, datorit ă imposibilit ății de a caracteriza
corect din punct de vedere statistic procesele aleatoare implicate, aceste
mărimi nu sunt disponibile, astfel încât suntem nevoi ți să utilizăm valori
estimate ale acestora. Cea mai simpl ă metodă de estimare const ă în
înlocuirea valorilor exacte ale matricilor men ționate anterior, calculate
prin acțiunea operatorului de mediere pe un ansamblu de realiz ări
individuale ale proceselor aleatoar e considerate – prin valorile lor
instantanee. Procedeul st ă la baza formul ării algoritmului LMS.
Autor : Viorel Paleu 172
10.6.2. Algoritmul Least Squares (LS)
Problema de filtrare liniar ă optimală poate fi abordat ă și dintr-o
perspectiv ă complementar ă celei specifice filtrului Wiener, renun țând la
punctul de vedere statistic, bazat pe considerarea unui ansamblu de
realizări individuale ale unor procese aleatoare cu rol de intrare și ieșire
dorită a filtrului și înlocuindu-l cu o abordare temporal ă. În mod concret,
acțiunea operatorului de medier e statistic E{.} este înlocuit ă cu simpl ă
mediere aritmetic ă a valorilor unor realiz ări particulare unice ale
proceselor aleatoare men ționate anterior.
10.6.3. Filtrul Kalman
Problema de filtrare liniar ă optimală a fost abordat ă pe parcursul
paragrafelor anterioare din perspe ctiva teoriei filtrului Wiener, bazat ă pe
minimizarea unei func ții de cost dependente de eroarea de estimare,
calculată la randul ei pornind de la ecua ția care exprim ă legătura intrare-
ieșire a filtrului considerat. În plus, algoritmul RLS a introdus principiul
elegant al calculului iterativ al m ărimilor de interes, cu avantaje majore
asupra performan țelor algoritmului.
Un alt punct de vedere în solu ționarea problemei studiate este
oferit de a șa-numitul filtru Kalman, care p ăstrează ideea calculului
recursiv, îns ă introduce descrierea sistemul ui adaptiv analizat prin
ecuații de stare. O asemenea abordare permite extinderea comod ă a
teoriei la aplica ții cu intrări/ieșiri multiple și, mai important, ofer ă cadrul
de operare cu semnale reprezentând manifest ări ale unor procese
aleatoare nesta ționare.
Achizi ția și procesarea semnalelor 173
10.7.Aplica ții ale filtr ării adaptive – No țiuni introductive
Filtrele adaptive au fost aplicate cu succes în numeroase domenii,
printre care transmisiuni de date , prelucrarea semnalelor radar,
seismologie, inginerie biomedical ă.
Se disting patru clase principale de aplica ții, ale căror scheme-
bloc se prezint ă în figura de mai jos, abor date cu succes folosind atât
filtre adaptive liniare cât și versiuni neliniare, în particular sub forma
rețelelor neurale artificiale. În toate aceste categorii de aplica ții
rezultatele ob ținute cu re țele neuronale sunt de regul ă mai performante,
însă “prețul” plătit se refer ă la dificulta țile sporite de a asigura
stabilitatea sistemelor, vol umul mai mare de calcul și posibilitatea de
cantonare în solu ții suboptimale.
• identificare de sistem : rolul filtrului adaptiv este de a
furniza un model al unui sistem necunoscut. În acest gen de aplica ții atât
filtrul adaptiv cât și sistemul necunoscut primesc la intrare acela și
semnal, iar diferen ța dintre ie șirile acestora define ște semnalul de eroare
care este folosit pentru modificarea recursiv ă a coeficientilor filtrului.
Există mai multe elemente care trebuie avute în vedere în acest gen de
aplicații, dintre care men ționăm: achizi ționarea datelor de intrare-ie șire
într-o manier ă care să limiteze nivelul de zgomot suprapus peste
semnalele utile, alegerea unui model adecvat și a algoritmului de
estimare a valorilor parametrilor acestuia, folosirea unei metode de validare corespunz ătoare. Aceasta direc ție de cercetare este foarte bine
acoperită în literatur ă și beneficiaz ă de o palet ă extrem de larg ă de
tehnici, nu neap ărat adaptive.
Autor : Viorel Paleu 174
Testarea validit ății modelului ob ținut este fundamental ă, fiind
disponibile criterii stat istice riguroase în spec ial în cazul modelelor
liniare. În cazul în care drept sistem adaptiv se utilizeaz ă o rețea
neuronală, suportul teoretic care justific ă o asemenea solu ție este oferit
de capacitatea de aproximare universal ă pe care o de ține o clasa larg ă de
astfel de sisteme.
• modelare invers ă: în acest caz rolul filtru lui adaptiv este de
furniza un model invers pentru un si stem necunoscut, în general inso țit
de zgomot. În cazul unor sisteme liniare, modelul c ăutat are o func ție de
transfer egal ă cu inversa func ției de transfer a sistemului necunoscut.
Semnalul dorit este dat de versiunea, în general întirziat ă, a semnalului
de intrare în sistem. Un aspect f undamental este legat de asigurarea
stabilității modelului invers ob ținut, un exemplu în acest sens fiind oferit
de aplica țiile în care sistemul original este un sistem discret liniar și
invariant în timp, care nu este de faz ă minimă (zerourile func ției de
transfer sunt plasate în afara doemniu lui de stabilitate al filtrului). Au
fost elaborate tehnici speciale care permit asigurarea stabilit ății unor
astfel de filtre adaptive, de exemplu prin readucerea “fortat ă” a
singularit ăților sistemului în domeni ul de stabilitate ca etapa
premergatoare actualiz ării propriu-zise a coeficien ților filtrului
considerat. Un exempl u practic de aplica ție inclusă în aceast ă categorie
este egalizarea adaptiv ă a canalelor de transmisiuni de date.
• predicție: rolul filtrului adaptiv este de a aproxima cât mai
bine valoarea unui semnal la un moment dat pe baza unui num ăr finit de
valori anterioare ale acestuia. Ideea fundamental ă care justific ă atingerea
unui asemenea obiectiv const ă în supozi ția ca valorile succesive ale
semnalului analizat respect ă în mod obiectiv o dependenî ă funcțională
(în cazul cel mai simplu, liniar ă) dependen ța de un num ăr limitat de
Achizi ția și procesarea semnalelor 175
parametri, ale c ăror valori pot fi estimate folosind un algoritm adaptiv
adecvat. În cazul liniar, modelele considerate se aleg de regul ă dintre
următoarele 3 variante: auto regresiv (AR), cu medie alunec ătoare
(MA), respectiv combina ția acestora (ARMA). Num ărul de parametri
care descriu modelul ( și care definesc ordinal acestuia) se estimeaz ă
folosind criterii statistice consacrate.În unele situa ții informa ția de ieșire
este dependent ă nu numai de valorile anterioa re ale semnalului analizat,
ci și ale altor semnale. În plus, natura acestei dependen țe poate varia în
timp, sistemul adaptiv fiind for țat să asigure pe de o parte convergen ța
rapidă a valorilor parametrilor și pe de alt ă parte urm ărirea modific ărilor
apărute în procesul fizic analizat.
Exemple practice de aplica ții sunt:
tehnica LPC (Linear Predictive Coding) utilizat ă în prelucrarea
semnalelor vocale; metoda ADPCM (Adaptive Differentia l Pulse Code Modulation) folosit ă
în transmisiuni de date, predic ția seriilor financiare.
•
filtrare de zgomot : spre deosebire de cazurile anterioare, în
acest gen de aplica ții apar 2 intr ări. Intrarea primar ă este constituit ă
dintr-un semnal util pest e care este suprapus zg omot. La cea de a doua
intrare se aplic ă numai un semnal de tip zgomot prelevat dintr-un punct
foarte apropiat sursei de semnal primar, astfel încât acesta s ă fie puternic
corelat cu cel prezent în semnalul prim ar. Rolul filtrului adaptiv este de a
furniza la ie șire un semnal cât mai apropiat de componen ța de zgomot
prezentă în semnalul primar, astf el încât prin scadere s ă obținem un
semnal mai “curat”. Exemple concrete sunt oferite de aplica țiile de tip ANC (Active Noise
Control) folosite pentru diminua rea nivelelor de zgomot în spa ții închise
de mici dimensiuni (hab itaclul autoturismului, ca ști audio), eliminarea
Autor : Viorel Paleu 176
ecourilor pe liniile de comunica ții (echo cancelling), îmbun ătățirea
calității recepției în medii afectate de nivele mari de zgomot (cabine de
tancuri sau elicoptere).
Fig.10.9 :Aplicații ale filtrelor adaptive
Achizi ția și procesarea semnalelor 177
10.8. Eliminarea adaptiv ă a zgomotului
Considerăm un pilot într-un av ion. Când pilotul vorbe ște în microfon,
zgomotul motorului din cockpit se adaug ă la vocea pilotului, iar
semnalul rezultat auzit de pasageri va fi de slab ă calitate. Astfel se
dorește obținerea unui semnal care sa con țină doar vocea pilotului, f ără
zgomotul produs de motor. Se poate face asta cu un filtru adaptiv, dac ă
avem la dispozi ție o mostr ă de zgomot de motor și o vom folosi ca
intrare în filtrul adaptiv. Rețeaua neuronal ă liniară este antrenat ă să prezică semnalul combinat
pilot/motor m fat ă de semnalul motor n. Semnalul motor n nu spune
rețelei neuronale adaptive nimic despre semnalul vocii pilotului con ținut
în m.Totu și, semnalul motor n,red ă informa ții despre contribu ția
semnalului pilot/motor m. Rețeaua va face tot posibilul s ă regleze ie șirea m. În acest caz, re țeaua
poate doar s ă prezică semnalul de interferen ță al motorului în semnalul
pilot/motor m. Eroarea re țelei e, este egal ă cu m,semnalul
pilot/motor,minus semnalul zgomotului motorului care este contaminator. Astfel, va con ține doar vocea pilotului Re țeaua neuronal ă liniară
adaptivă a eliminat zgomotul produs de motor.
Autor : Viorel Paleu 178
Fig. 10.10. Schematizarea procedeului de eliminare adaptiv ă a
zgomotului
S-a constatat faptul c ă, rata de înv ățare a rețelelor neuronale
trebuie aleas ă astfel încat eroarea de eliminare a zgomotelor s ă fie
minimă.
O rată de învățare prea mare conduce la r ăspunsuri întârziate ale
sistemului, pe când o rat ă de învățare prea mic ă produce erori însemnate,
datorate datelor de intrare insuficiente.
Achizi ția și procesarea semnalelor 179
Fig.10.11. Eliminarea adaptiv ă a zgomotului – rat ă de învățare mare
Fig. 10.12. Eliminarea adaptiv ă a zgomotului – rat ă de învățare mică
Autor : Viorel Paleu 180
CAPITOLUL 11
PROCESAREA SEMNALELOR AUDIO
11.1. Din punct de vedere fiziologic
Sunetul constituie senza ția produs ă asupra organului auditiv de
către vibrațiile materiale ale corpurilor și transmise pe calea undelor
acustice. Urechea uman ă este sensibil ă la vibrații ale aerului cu frecven țe
între 20 Hz și 20 kHz, cu un maxim de sensibilitate auditiv ă în jur de
3500 Hz. Acest interval depinde mult de amplitudinea vibra ției și de
vârsta și starea de s ănătate a individului. Sub amplitudinea de 20 µPa
vibrațiile nu mai pot fi percepute.
11.2. Din punct de vedere fizic
Sunetul are o defini ție mai larg ă, el nefiind legat de senza ția
auditivă: orice perturba ție a energiei mecanice propagat ă printr-un mediu
material sub forma unei unde se nume ște sunet. În aceast ă definiție se
includ și vibrații la frecven țe din afara domeniului de sensibilitate al
urechii: infrasunete (sub 20 Hz) și ultrasunete (p este 20 kHz).
Un caz particular de sunet este zgomotul, care se remarc ă prin
lipsa obiectiv ă sau subiectiv ă a unei înc ărcături informa ționale.
Zgomotul deranjeaz ă fie prin senza ția neplăcută pe care o produce, fie
Achizi ția și procesarea semnalelor 181
prin efectul negativ asupr a transmiterii de informa ție. Orice zgomot
poate fi perceput ca sunet util dac ă i se atribuie o valoare informa țională.
11.2.1.Sunetul
Foneticienii au analizat și clasificat mai multe sute de sunete care
pot fi recunoscute ca distincte, de și nu exist ă nici o limb ă care să le
folosească pe toate. Alfabetul Fonetic Interna țional cuprinde aceste
sunete grupate dup ă modul lor de articulare.Exist ă diferențe foarte mari
între diverse limbi în ceea ce prive ște numărul de sunete folosite de
vorbitorii lor.
De exemplu, limba numit ă rotokas, vorbit ă de cca 4000 de
oameni de pe o insul ă din Noua Guinee, folose ște numai 6 consoane (p,
t, k, v, r, g) și 5 vocale (a, e, i, o, u); în plus nu are tonuri, iar accentul
pare să nu determine sensul cuvintelor.
Prin compara ție, limba !kung vorbit ă în Africa de sud, de-a
lungul rîului Okavango (Namibia și Angola), folose ște nu mai pu țin de
141 de sunete (num ărul poate s ă difere în func ție de modul cum se face
analiza) dintre care 117 consoane, o mare parte dintre acestea din urm ă
fiind clicuri – semnul exclam ării din numele limbii este tocmai un astfel
de clic, și anume unul alveolar; în plus, limba !kung distinge între trei și
cinci tonuri.
Limba român ă este între limbile cu un num ăr mediu de sunete
distincte fonemic (32), nu are tonuri și se bazeaz ă pe accent în
diferențierea cuvintelor.
Sunetul se propaga prin aer sub forma unei unde; aceast ă undă
poate fi caracterizat ă prin amplitudinea ei în fiecare moment. Un sunet
„pur'', fundamental, are amplitudinea descris ă de o sinusoid ă. Frecven ța
sinusoidei (inversul perioadei) se nume ște „frecven ța sunetului'', și se
măsoară în hertzi, Hz.
Autor : Viorel Paleu 182
Cînd mai multe surse emit sunete simultan, undele lor se
suprapun (se adun ă) și auzim sunetul rezultant. Dintre sunetele
instrumentelor muzicale, cel mai apr opiat de un sunet pur este cel al
flautului. Toate instrumentele emit de fapt o mixtur ă de sunete, dintre
care unul este preponderent; de aceea nota „la'' cîntat ă la pian sun ă altfel
decît nota „la'' cîntat ă la vioar ă, deși ambele au aceea și frecven ță
(stabilită la 440hz). În natur ă nu există surse de sunete pure, dar ele pot
fi generate electronic, folosind oscilatoare.
Chiar dac ă putem genera sunete pure, urechea omeneasc ă nu le
poate auzi: chiar organele de sim ț din ureche vibreaz ă ele însele și intră
în rezonan ță cu alte frecven țe decît cele prezente în sunetul ambiant. Pe
lîngă faptul că genereaz ă sunete inexistente, urechea omeneasc ă este
inegal de sensibil ă la frecven țe diferite; aparatul auditiv poate percepe
sunete între 16hz și 24khz, fiind cel mai sensibil în jurul frecven ței de
4khz (sensibil însemnînd c ă poate auzi semnalele cu energia cea mai
mică).
Putem distinge dou ă clase mari de metode de stocare a muzicii
sub formă digitală: înregistr ările și descrierile simbolice.
11.2.2.Viteza sunetului
Viteza cu care se propag ă undele sonore depinde de mediul de
propagare, în particular de elasticitatea și densitatea acestuia. În aer și
alte gaze viteza sunetului depinde în primul rând de temperatur ă.
Presiunea are un efect mic, iar umiditatea nu are aproape nici un
efect asupra vitezei. Pentru aer, exista formule aproximative care permit calculul vitezei de propaga re a sunetelor în func ție de temperatur ă:
La 20°C viteza sunetului este de aproximativ 343,4 m/s.
Achizi ția și procesarea semnalelor 183
11.2.3.Num ărul Mach
Mach (pronun ție /mah/, dup ă numele fizicianul ui austriac Ernst
Mach) este o unitate de m ăsură folosită în aerodinamic ă pentru a
exprima viteza unui corp care se deplaseaz ă într-un fluid: proiectil,
avion, rachet ă etc. Viteza Mach 1 este egal ă cu viteza sunetului în fluidul
respectiv; în condi ții standard Mach 1 este egal cu 1225 km/h.
Numărul lui Mach este o m ărime adimensional ă care arat ă de
câte ori este mai mare viteza unui mobil decât viteza sunetului în acel
mediu. Valorile subunitare ale num ărului lui Mach înseamn ă viteze
subsonice (mai mici decât viteza sune tului), iar valor ile supraunitare
înseamnă viteze supersonice. O clasificare mai detaliat ă definește în plus
vitezele transsonice (între Mach 0,8 și Mach 1,2) și vitezele hipersonice
(mai mari de Mach 5).
11.2.4.Captarea și stocarea sunetelor
Sunetele generate de dispozitiv e sau persoane sunt captate de
dispozitive de captare a sunetelor.
Cel mai bun exemplu de dispozitiv de captare a sunetelor este
microfonul.
Principiul de func ționare al acestuia este similar modului de
funcționare a urechii umane, prin urmare, sunetele care ajung la
microfon interac ționează cu membrana acestuia care genereaz ă semnale
electrice care reprezint ă amplitudinea sunetului în func ție de timp.
Semnalele electrice generate de microfon trebuie transformate în
șiruri de numere. Acest lucru se realizeaz ă de că
tre o unitate ADC
(Analog Digital Conve rtor) care prime ște la intrare o tensiune electric ă și
Autor : Viorel Paleu 184
generează la ieșire un num ăr reprezentat binar. Datorit ă faptului c ă orice
tensiune electric ă se reprezint ă numeric printr-un șir finit de bi ți, apare o
eroare numit ă eroare de cuantificare.
Pentru reprezentarea unui semnal în form ă digitală, acesta trebuie
eșantionat. Prin e șationare, dintr-un semnal se extrag cadre la intervale
de ∆T secunde. Dup ă eșantionarea unui semnal, ac esta poate fi folosit
pentru a prelucra și/sau stoca șirurile de bi ți generate de unit ățile ADC.
Calitatea sunetului digital care se dore ște a fi obținută depinde de
numărul de biți folosiți pentru a reprezenta un cadru și de intervalul de
timp dintre cadre. Calitat ea sunetului este mai bun ă cu cât num ărul de
biți este mai mare și cu cât intervalul de timp dintre dou ă cadre este mai
mic.
De exemplu, pentru sistemul telefo nic, cadrele sunt reprezentate
folosindu-se 7 sau 8 bi ți, intervalul dintre cad re este 1/8000 secunde
(8000 cadre/sec) și se pierd toate sunetele cu frecven țe mai mari de 4
kHz.
11.2.5.Înregistr ări digitale
Exista doua modalitati de inregist rare, transmitere sau stocare a
sunetului. Acestea sunt:
• mod analogic
• mod digital.
Dispozitivele clasice: magnetof onul, casetofonul, pick-up-ul sunt
mijloace de inregistrare analogica, in timp ce CD-player-ul, DAT-ul, MD-ul sau Computerul sunt dispozit ive de inregistrare digitala a
sunetului. Diferenta consta in faptul ca inregistrarile digitale stocheaza
sunetul sub forma unor siruri lungi de cifre (0 si 1 siru ri de biti) care
Achizi ția și procesarea semnalelor 185
apoi sunt interpretate de cititorul dispozitivului de redare si redate
ulterior sub forma de sunet.
Sistemele de înregistrare digital ă aproximeaz ă valorile posibile
ale amplitudinii printr-un num ăr finit; acesta este procesul de cuantizare.
Intervalul între amplitudinea zero și o amplitudine maxim ă posibilă este
împărțit în segmente (de obicei egale). Num ărul de segmente este apoi
codificat printr-un num ăr de biți.
Compact disc-urile folosesc 16 bi ți de precizie pentru a descrie o
valoare a amplitudinii; asta înseamn ă că pot distinge 216 = 65536 de
nivele diferite de amplitudine, suficient de fine pentru a p ăcăli urechea
umană.
Inregistrarea digitala se face prin prelevarea unor esantioane
sonore cu o frecventa ridicata astfel incat sunetul este practic diseminat
si apoi recompus din mici bucatele intocmai cum imaginea miscarii intr-
un film este realizata prin afisarea u nor cadre cu o frecventa mai ridicata
decat capacitatea ochiul de a sesiza inlocuirea imagini.
In cazul inregistrarii si redarii sunetului aceasta rata de
esantionare se numeste frecventa si de ea depinde in mare masura
calitatea inregistrarii: cu cat frecventa este mai mare pe unitate de timp cu atat calitatea sunetului inregist rat si reprodus este mai mare.
Desigur pentru a stoca un numa r mai mare de esantioane pe
unitate de timp (/sec) este nevoie de un spatiu alocat mai mare si astfel
calitatea este direct proportionala cu spatiul alocat.
Cu toate acestea exista mijloace de codificare si comprimare a
sunetului astfel incat el sa isi pastreze cat mai mult din calitatea perceputa auditiv si in acelasi timp sa isi reduca considerabil volumul (numarul de biti necesari pentru a fi stocat).
Autor : Viorel Paleu 186
11.3. Înregistr ări digitale. PCM-urile și CD-urile.
Înregistrările digitale sunt echivalente cu tehnicile de înregistrare
analogică patentate de Edison în urm ă cu 127 de ani: capteaz ă un semnal
din aer, îl prelucreaz ă, codifică și stocheaz ă. Spre deosebire de patefon,
tehnicile digitale descriu semnalul prin secven țe de cifre și nu prin
procese fizice (de exemplu, patefonul descrie semnalul prin forma
șanțurilor de pe disc).
Pentru a putea transforma o m ărime continu ă într-o serie de
numere trebuie s ă facem dou ă operații distincte: s ă o eșantionăm și să o
cuantizăm.
Teorema lui Nyquist arat ă că din aceste e șantioane, în num ăr
finit, se poate reconstitui complet, f ără nici un fel de pierderi, forma
semnalului original, continuu.
Fig.11.1.: Semnalele înregistrate
sunt funcții continue de timp.
(a). Semnalul este întîi e șantionat,
măsurînd valoarea lui într-un
număr finit de puncte, de regul ă
echidistante (b). Apoi valorile e șantioanelor
sunt codificate cu un num ăr finit
de biți în procesul de cuantizare
(c). În aceast ă figură
cuantizarea
s-a făcut cu 3 bi ți, care pot
distinge opt valori diferite ale amplitudinii (unele pozitive, unele negative.)
Achizi ția și procesarea semnalelor 187
Eșantionarea m ăsoară semnalul audio din timp în timp, de obicei
cu o perioad ă fixă.
Teorema lui Nyquist arat ă că dacă vrem să înregistrăm un semnal
ale cărui frecven țe componente sunt sub X hz, e suficient s ă eșantionăm
semnalul cu frecven ța 2X hz. Compact-disc-urile de pild ă eșantioneaz ă
sunetul la 44.1 khz, ceea ce este du blul lui 22.05khz, care este o limit ă
mult înafara auzului celor mai multe persoane (dac ă nu a tuturor).
Dacă înregistr ăm valoarea fiec ărui eșantion în ordinea în care
apar am înregistrat efectiv sunetul. Acest gen de descriere a unui semnal
se numește „modulare cu pulsuri'', pulse code modulation, prescurtat
PCM.
Compact-disc-urile stocheaz ă informa ția necomprimat ă;
dimpotriv ă, pentru a preveni erorile care pot ap ărea din cauza
zgîrieturilor, expandeaz ă informația și o codific ă în mod redundant: dac ă
unii biți dispar, ei pot fi reconstitui ți în măsura în care stric ăciunile nu
sunt prea mari.
Un CD înregistrat stereo are dou ă canale care con țin 44100 de
valori de 16 bi ți pentru fiecare secund ă de muzic ă; asta înseamn ă o rată
de transfer a informa ției de 2 * 44100 * 16 = 1.411Mbps (megabi ți pe
secundă). Aceasta este viteza cu care informa ția iese din CD-player-ul
calculatorului dumneavoastr ă; în interior rata este chiar mai mare, din
cauza codific ării redundante. Un compact di sc poate stoca aproximativ
70 de minute de muzic ă, avînd deci o capacitate de 70 * 60 * 1.411 / 8 =
740 MB (megaocte ți). Pe un hard-disc de 20 de gigaocte ți putem deci
stoca aproximativ 25 de CD-uri.
Tipul standard de fi șier de sunet în Microsoft Windows este cel
cu extensia .wav, care codific ă frecvent informa ția în form ă PCM. De
asemenea, PCM este metoda folosit ă pentru codificarea vocii în telefonia
digitală și ISDN.
Autor : Viorel Paleu 188
11.3.1.Calitatea sunetului inregi strat si stocat digital pe
computer
Se stie ca urechia umana poate receptiona sunetele care au o
frecventa intre 20 herti si 20.00 herti. Inregistrarile audio digitale
efectuate pe DAT (digital audio tape caseta digitala audio) ajung pina la
48.000 herti, cele realizate pe CDA (compact disc audio) ajung pana la 44.100 herti iar cele efectuate cu un casetofon clasic pot atinge 25.000 herti. Pentru a se obtine o inregistrare cat mai fidela este necesar sa se atinga o rata de esantionare cat mai mare, aceasta rata fiind exprimata in
herti.
11.3.2. Compresia sunetelor digitale
Datorită faptului c ă pentru a transmite la distan ță sunete cu o
calitate foarte bun ă (de calitatea CD-urilor audio) sunt necesari 1,411
Mbps pentru semnale audio stereo și 705,6 Kbps pentru semnale audio
mono. Aceste numere sunt foarte mari și s-a pus problema compresiei
sunetelor.
Cei mai importan ți algoritmi utiliza ți în procesul de compresie a
sunetelor sunt codificarea formei de und ă și codificarea perceptiv ă.
Prin codificarea formei de und ă, semnalul este transformat cu
ajutorul transformatei Fourier în componentele sale în frecven ță
(reprezentarea amplitudinlor în func ție de timp).
După aplicarea transformatei, amplitudinea fiec ărei componente
este codificat ă minimal, folosind cât mai pu țini biți. Transformata
Fourier duce la pierdere de informa ție
Sirul de bi ți obținuți se comprim ă folosind unul dintre algoritmii
prezentați în episoadele anterioare ale compresiilor de date. Scopul este
Achizi ția și procesarea semnalelor 189
de a reproduce exact forma de und ă, la celălalt capăt folosind cât mai
puțini biți.
Codificarea perceptiv ă constă în a transforma sunetul digital,
astfel încât un ascult ător uman s ă nu poată face diferen ța între un sunet
transformat și unul netransformat.
La baza acestui tip de codificare st ă psihoacustica.
Psihoacustica este știința care se ocup ă de modul în care sunetele
sunt percepute de c ătre om.
Proprietatea de baz ă a codific ării perceptive este constituit ă de
faptul că unele sunete pot masca alte sunete, astfel încât acestea din urm ă
nu se vor mai auzi atâta timp cât primele continu ă să fie prezente. Pe
baza acestei propriet ăți, sunetele care nu vor putea fi auzite de
ascultătorii umani vor fi eliminate. Dac ă generăm un sunet cu frecven ța
de 1 KHz la un volum de 60 dB și alt sunet cu frecven ța de 1.1 KHz și
un volum de 40 dB, nu vom auzi cel de-al doilea sunet. Acest fenomen poartă numele de mascarea frecven ței. Sunetele care se aud poart ă
numele de sunete masc ă.
Un alt fenomen care are loc în realitate este acela c ă, dacă un
sunet mascheaz ă un alt sunet, urechea uman ă este adaptat ă să
audă
numai sunetele masc ă. În cazul în care sunetele masc ă de la un moment
dat dispar, celelalte sunete nu vor putea fi auzite decât dup ă un inverval
de timp, care reprezint ă timpul în care urechea uman ă se regleaz ă pentru
a le putea percepe. Acest fenomen poart ă numele de mascare
temporară.Prin urmare, o aplica ție de compresie a sunetelor care se
bazează pe psihoacustic ă va elimina pe baza unor rela ții sunetele care nu
vor putea fi auzite de c ătre om.
După eliminarea sunetelor care nu pot fi percepute asupra
rezultatului se aplic ă unul dintre algoritmii de compresie f ără pierdere de
informație. Se observ ă în acest caz c ă pierderea de informa ție este dat ă
de eliminarea sunetelor care nu pot fi auzite de c ătre om.
Autor : Viorel Paleu 190
Raportul calitate sunet/dimensiune fi șier de ieșire este mai mare
dacă se aplică aceste reguli decât în cazul în care se încearc ă compresia
sunetelor f ără a elimina sunetele care nu se aud.
11.3.3. Compresia f ără pierderi
Un program care comprim ă un semnal audio se nume ște codec,
de la codor-decodor. Fiecare firm ă mare din telecomunica ții, industria
electronic ă a echipamentelor audio și din software a dezvoltat propriile
codec-uri; cele mai multe dintre acestea sunt secrete bine p ăzite.
În general, nu putem comprima decît pu țin muzica dac ă insistăm
să nu avem pierderi (lossl ess), dar pentru aplica ții specifice compresia
fără pierderi este acceptabil ă ca performan ță (măsurată prin resurse de
calcul consumate pentru a ob ține o anumit ă calitate a sunetului). De
exemplu, vocea uman ă are un spectru relativ îngust, și variațiile de
intensitate și frecvență nu sunt foarte mari în timp scurt.
Prin eșantionare și cuantizare putem stoca informa țiile din orice
semnal continuu (în anumite limite de frecven ță). Adesea îns ă informația
din acest semnal este foarte ampl ă și redundant ă. Depinzînd de mediul
de stocare și transmisie putem dori s ă reducem informa ția sau nu.
Mai multe scheme din ce în ce mai sofisticate au fost dezvoltate
pentru a comprima muzica. Putem distinge dou ă mari categorii de
metode de compresie: compresie cu pierderi și compresie f ără pierderi.
Compresia f ără pierderi poate oricînd reconstitui identic semnalul
original; cea cu pierderi decide s ă arunce la gunoi informa țiile
„neimportante'‘. Compresia cu pierderi
Compresia f ără pierderi poate cel mult ob ține reduceri de 2-3 ori
a cantității de informa ție din semnal. De aceea cele mai folosite la ora
actuală pe scară sunt compresiile cu pierderi (lossy).
Achizi ția și procesarea semnalelor 191
Cele mai eficace scheme de compresie cu pierderi se bazeaz ă pe
sensibilitatea urechii umane pentru a deduce ce p ărți din semnal pot fi
aruncate, și de aceea se numesc compresii perceptuale.
De pildă, dacă auzim un sunet foarte put ernic, alte sunete slabe
din imediata vecin ătate temporal ă sunt acoperite (cîteva milisecunde).
Dacă le elimin ăm pe acestea din semnal putem transporta mai pu țină
informație. Sunetele puternice acoper ă vecinii lor apropia ți atît în timp
cît și în frecven ță; asta înseamn ă că un sunet puternic va împiedica
percepția altor sunete de frecven țe apropiate sau care se aud în imediata
vecinătate.
Pentru a descoperi p ărțile nesemnificative, codec-urile
perceptuale adesea fac o analiz ă spectral ă a sunetului, extr ăgînd
frecvențele componente. Apoi calculeaz ă cîtă energie sonor ă este în
fiecare frecven ță, și cele care sunt sub pragur ile audibile, sau care sunt
acoperite de alte frecven țe care se aud mai tare, sunt eliminate din
semnal.
Alte trucuri de ștepte sunt folosite pentru a reduce informa ția cînd
înregistrăm canale stereo, sau chiar s ound surround (cinci canale): de
exemplu se înregistreaz ă doar un canal și diferența de la acesta la
celălalt, care tinde s ă fie mică, și se folosesc canale cu band ă de
frecvență redusă pentru ba și (subwoofers).
Printre cele mai importante formate de compresie cu pierderi sunt:
Dolby Digital numit și AC-3, care este folosit în televiziunea de
înaltă rezoluție (HDTV), DVD, discuri la ser, televiziune digital ă și în
unele cinematografe pentru sunetul filmelor.
MPEG audio este o familie mare de standarde, care cuprinde mai
multe variante MPEG1, MPEG 2, MPEG4, MPEG7; MPEG1 și doi la
rîndul lor au s ub-nivele 1, 2, 3 și AAC. MP3 este la ora actual ă formatul
preferat pentru schimb de muzic ă pe Internet, datorit ă compresiei care
poate ajunge pîn ă la 12/1; este o prescurt are de la MPEG 2 level 3.
Autor : Viorel Paleu 192
Liquid Audio este un format so fisticat pentru a reprezenta
muzica, bazat atît pe Dolby Digital cît și pe MPEG AAC. Permite
integrarea unor tipuri de date în flux ul muzical (imagini , text, partitura,
versuri, etc).
Apple quicktime e un format dezvo ltat de Apple, care permite
codificarea atît a muzicii cît și a informa ției video.
DVD Audio este înc ă în curs de de zvoltare; fabrican ții încearc ă
să dezvolte metode eficie nte împotriva copierii.
11.3.4. Formate flux (streaming)
E o diferen ță foarte mare între a reda sunetul de pe un disc aflat
în unitatea calculatorului propriu și a transfera sunetul de la distan ță prin
rețea. Discul local poate garanta un flux sus ținut de informa ții, fără erori
și pierderi. Internet-ul este îns ă impredictibil, și nu orice tip de format
este potrivit pentru transmisiune.
Dacă se dorește și reproducerea informa ției în timp ce aceasta
este primit ă, avem de a face cu un format de tip flux (streaming).
Formatele flux trebuie s ă prevină erorile care pot ap ărea. Dou ă
tehnologii sunt folosite pent ru transmisiune pe o re țea nefiabil ă:
Stocarea (buffering): în func ție de variabilitatea (jitter) pachetelor
de date care sosesc la receptor, acesta trebuie s ă întîrzie redarea
informației cu cîteva secunde. De pild ă, dacă un pachet poate face între 3
și 9 secunde de la surs ă la destina ție, destinatarul trebuie s ă cînte cu cel
puțin 6 secunde întîrziere. Astfel, știe că atunci cînd vrea s ă cînte
pachetul urm ător, acesta a sosit deja.
Codificarea redundant ă: pentru c ă adesea înc ărcătura serverului
și timpul de transmisiune dus-întors face imposibil ă re-transmiterea
pachetelor pierdute, transmi țătorul codific ă redundant informa ția, în așa
Achizi ția și procesarea semnalelor 193
fel încît un pachet pierdut s ă poată fi reconstituit în întregime din vecinii
săi.
Real Audio este probabil cel mai r ăspîndit format de tip flux în
Internet, dar Microsoft împinge ta re propriul format secret, Windows
Media Audio.
11.3.5. Formate simboli ce. Compresia digital ă
Toate formatele pe care le-am trecut în revist ă pînă acum sunt
destinate pentru a „înregistra'' un s unet. Alte formate, cele simbolice,
descriu doar forma echivalent ă a sunetului. Acestea sunt mult mai
compacte, pentru c ă reprezint ă doar notele, duratele lor (eventual
informații despre instrumenta ție).
In cazul partiturilor muzicale, cel mai r ăspîndit standard de
reprezentare simbolic ă este MIDI: Musical Instruments Digital Interface.
Acesta este folosit practic de toat e instrumentele electronice pentru
codificarea informa ției.
O metod ă hibridă este de a reprezenta notele, ca într-o
reprezentare simbolic ă, dar de a le ob ține prin e șantionare. Un exemplu
concret îl reprezint ă înregistrarea unei melodii la o org ă electronic ă,
interogând semnalul la fiecare 2 milisecunde (pentru a afla care clape au fost apăsate). MIDI poate con ține multe alte informa ții: mai multe canale
separate, informa ții despre ritm, intensitate și informa ții simbolice
despre titlul piesei, autor, etc.
Sistemul pe care îl vom prezenta în continuare folose ște ca mod
de reprezentare a muzicii aceast ă din urm ă metodă. Dacă melodia
conține o singur ă voce (
și nu are acompaniament), ea poate fi
reprezentat ă printr-o func ție, ca în figura 2. Graficul acestei func ții arată
ca o colec ție de segmente orizontale, numite „func ții treaptă''.
Autor : Viorel Paleu 194
Fig.11.2 : Reprezentarea muzicii sub form ă de funcții-treaptă reprezint ă
la fiecare moment de timp nota muzical ă cîntată în acel moment.
Pauzele sunt indicate prin absen ța oricărei note. Timpul este
eșantionat cu granularitate mic ă (în jur de 2 milisecunde).
Dacă știm că un anumit fenomen se repet ă la un interval de timp
T, putem calcula frecven ța lui prin simpla inversie matematic ă:
Pentru m ăsurarea frecven ței se pot folosi și alte unit ăți. De
exemplu, pulsul inimii și tempoul muzical se exprim ă în bătăi pe minut,
rotația motoarelor în rota ții pe minut, etc.
11.3.6. Procesarea digitala a semnalelor audio
Procesarea digital ă a semnalelor audio se poate realiza softuri
specializate, dintre care amintim iZotope Ozone, FL Studio și Sony
Sound Forge. Dintre cele trei softuri men ționate, Sound Forge este un
program de editare de sunet care pe lang ă funcțiile de baz ă (înregistrarea
și redarea sunetului), permite executarea unei multitudini de alte
prelucrări deosebit de complexe.
Un astfel de program poat e înlocui cu succes un num ăr destul de
mare de echipamente electronice ex istente într-un studio de înregistr ări
putând deasemenea realiza opera ții care altfel ar necestita mult mai mult
efort și timp din partea celui ce prelucreaz ă sunet. Acest program îns ă nu
Achizi ția și procesarea semnalelor 195
trebuie confundat cu unul de compunere de muzica de și Sound Forge
permite și astfel de ini țiative în conjunc ție cu o tastatur ă de orgă și o
placă de sunet profesional ă, însă nu la un nivel profesional. Sound forge
este recomandat celor care doresc s ă foloseasc ă computer-ul pe post de
instrument de înregistrare editare și postprelucrare de sunet. Modul de
înregistrare a sunetului este aseman ător înregistr ării efectuate cu un
casetofon sau combin ă muzicală, cu deosebirea ca sunetul este stocat
(păstrat) digital în diverse formate pe hard discul computer-ului.
Pentru diagnosticarea ma șinilor prin aprecierea nivelului
semnalului vibroacustic specific func ționării acestora, se folosesc softuri
specializate (LabVIEW, MATLAB, Si gnal Express), mult mai generale
și cu totul diferite de softurile dedicate proces ării semnalelor muzicale.
Autor : Viorel Paleu 196
CAPITOLUL 12
INTRODUCERE IN ACHIZITIA SI
PROCESAREA IMAGINILOR
12.1. Introducere
Imaginile sunt și un concept cu caracter informa țional. Oamenii
primesc pe cale vizual ă cea mai mare parte din informa ția pe care
sistemul lor senzorial o achizi ționează. Oamenii preistorici au pictat,
mult înainte de a scrie, transmi țând în acest mod informa ții selectate.
Probabil c ă am putea identifica aceste picturi din pe șteri ca
primele imagini artificiale cu aplicabilitate grafic ă. Multe mii de ani
imaginile artificiale au fost create de oameni prin metode grafice și au
fost interpretate în mod natural tot de c ătre oameni. Apari ția și ulterior
dezvoltarea calculatoarelor a oferit posibilitatea ca imaginile artificiale
să fie create și memorate sub form ă numerică.
Noul domeniu este grafica pe calculator și el este ast ăzi foarte
cunoscut și utilizat. Informa ția, sub form ă de imagine de sintez ă,
furnizată de o aplica ție de grafic ă pe calculator este legat ă de lumea
înconjurătoare numai în m ăsura în care se dore ște ca aceast ă realitate s ă
fie mai mult sau mai pu țin copiată.
Decodificarea informa ției transmise prin aceste imagini este
făcută de oamenii care le privesc și care sunt utilizatorii finali ai
aplicației. Din acest punct de vedere, imaginile au o rezolu ție din ce în ce
mai bună pentru a putea reprezenta cât mai bine detaliile. Num ărul de
Achizi ția și procesarea semnalelor 197
culori este deasemenea din ce în ce mai mare pentru ca fidelitatea
reprezentărilor să fie susținută și din acest punct de vedere.
Se crează în acest mod o realitate virtual ă aflată sub controlul
total al programatorului care a proiectat-o. Dac ă ar fi necesar atunci s-ar
putea oferi un text explicativ care s ă descrie toate obiectele incluse în
scena virtual ă reprezentat ă printr-o astfel de imagine pentru c ă totul este
cunoscut aprioric de c ătre programator.
Dezvoltarea tehnicii a creat, chiar înaintea calculatoarelor,
senzori care s ă ofere semnale electrice dependente de interac țiunea
dintre lumin ă și o scenă cu obiecte. A ap ărut astfel posibilitatea de a
produce imagini artificiale care ulterior s ă fie afișate pe dispozitive
speciale și să fie privite de oameni. Con ținutul acestor imagini
achiziționate este puternic și direct legat de scena pe care o reprezint ă.
Calitatea imaginilor de acest tip nu este, în majoritatea cazurilor,
satisfăcătoare și ca urmare semnalele corespunz ătoare trebuie prelucrate
pentru a elimina zgomotele sau pent ru a amplifica al te caracteristici
utile, de exemplu contrastul. Cele dou ă etape, achizi ția și prelucrarea
imaginilor, î și păstrează scopurile generale, dar î și adapteaz ă tehnicile și
metodele, și atunci când sistemul este completat cu un calculator și
formatul imaginii este unul numeric.
Imaginile achizi ționate pot fi afi șate, ca și imaginile de sintez ă,
pentru a fi privite și analizate de un obs ervator uman. Dac ă se dorește să
se determine ce con ține imaginea achizi ționată fără a face apel la un
observator uman atunci apare o problem ă nouă, interpretarea sau
înțelegerea imaginilor folosind tehnici de inteligen ță artificial ă.
Rezolvarea acestei probleme presupune ad ăugarea unei noi etape dup ă
achiziția și prelucrarea imaginii.
Noua etap ă realizeaz ă o decodificare a informa ției conținute într-
o imagine și poate fi asociat ă termenului generic de recunoa ștere a
imaginilor. Pe lâng ă fotografie și cinematografie, din punct de vedere
Autor : Viorel Paleu 198
istoric, primele aplica ții care au necesitat achizi ția și prelucrarea
imaginilor au fost aplica țiile militare, spa țiale și medicale.
Cele trei etape amintite anterior, achizi ția, prelucrarea și
recunoașterea imaginilor, se constituie în problemele principale ale
domeniului vederii artificiale. O tendin ță naturală ar fi aceea de a lucra
cu imagini cu o cât mai bun ă rezoluție spațială și cu cât mai multe culori.
În multe cazuri, echipamentel e disponibile azi nu pot s ă-și îndeplineasc ă
sarcinile atât de repede pe cât este necesar și atunci vom constata c ă în
aplicațiile de vede re artificial ă imaginile au o rezolu ție redusă și sunt
reprezentate cu nivele de gri.
Privind numai imaginile folosite, s-ar putea trage concluzia c ă
vederea artificial ă este mai pu țin spectaculoas ă decât grafica pe
calculator. Totu și, identificarea și localizarea automate ale unui obiect,
care pe baza acestor informa ții va fi manipulat corespunz ător de un
robot, este un exemplu de aplica ție care ne poate trezi interesul. Sunt
prezentate în continuare principiile de func ționare și parametrii
caracteristici, inclusiv comparativ, pentru senzorii de imagine în tehnologiile CCD și CMOS.
Se prezint ă principiile de achizi ț
ie a imaginilor, f ără de care nu
poate exista prelucrarea, tipurile de senzori și caracteristicile lor și o
scurtă comparare a tipurilor de senzori, cu avantaje și dezavantaje.
In continuare, este detaliat ă problematica form ării imaginii
numerice printr-o succ esiune de transform ări: transformarea optic ă,
transformarea geometric ă, eșantionarea spa țială și eșantionarea în
frecvență. Sunt trecute în revist ă noțiuni definitorii legate de culori și de
poziția pixelilor în imagine. Imaginile numerice ocup ă volume mari de
memorie.
Achizi ția și procesarea semnalelor 199
12.2. Achizi ția imaginii
12.2.1. Introducere
Indiferent de domeniul de aplica ție, utilizarea calculatoarelor
impune un format numeric pentru informa ția prelucrat ă. Vederea
artificială respectă această regulă și lucrează cu imagini numerice.
Pentru a ob ține imaginea numeric ă (digital image) este nevoie de
două elemente: senzorul și covertorul (digitize r). Senzorul este un
element fizic care percepe o radia ție electromagnetic ă într-o anumit ă
bandă de frecven ță (ultraviolete, infraro șu, vizibil ă, raze X). Ie șirea
senzorului este o m ărime electric ă, în general o tensiune, propor țională
cu energia radia ției electromagnetice primit ă de senzor. În func ție de
aplicație, banda de frecven ță și senzorul aferent sunt diferite.
Convertorul este un dispoz itiv electronic care prime ște mărimea electric ă
furnizată de senzor și o transform ă într-un format numeric.
Pentru aplica țiile de vedere artificial ă, cel mai frecvent, senzorii
sunt identifica ți cu numele generic de camere de luat vederi. Realitatea
observată se prezint ă atunci sub forma unei scene tridimensionale care
este iluminat ă natural sau artifici al. Lumina reflectat ă este absorbit ă de
senzor a c ărui suprafa ță activă este bidimensional ă.
Desigur, se pot imagina și alte situa ții particulare, dar cazul
prezentat mai sus este cel mai frecvent și el are avantajul c ă poate fi pus
ușor în coresponden ță, și deci în țeles, cu vederea uman ă. Cele mai
cunoscute camere de luat vede ri au fost, în ordinea apari ției și utilizării
istorice, camerele vidicon și camerele matriceale (solid state).
Lumina este focalizat ă pe suprafa ța senzorului prin intermediul
unui sistem de lentile la nivelul c ăruia are loc o transformare optic ă care
depinde de natura și caracteristicile lentilei, respectiv ale luminii și sursei
Autor : Viorel Paleu 200
de lumină. O condiție pentru ob ținerea unei imagini ideale este ca planul
de focalizare s ă coincidă cu planul senzorului.
Camerele matriceale sunt formate din elemente fotosensibile,
senzori individuali. Fiecare element fotosensibil poate fi privit ca o
capacitate individual ă care acumuleaz ă o sarcină mai mare sau mai mic ă
în funcție de intensitatea luminoas ă primită. Citirea sarcinilor nu se
poate face în acela și timp pentru toate elementele (este evident c ă nu
putem avea practic, din punct de vedere tehnologic, un ci rcuit electronic
cu sute de mii sau milioane de pini) și ca urmare un proces de baleiere
rămâne necesar. Aici, baleierea este de fapt un transfer al sarcinilor c ătre
dispozitivul care face efectiv citirea.
Rezultatul va fi tot o m ărime electric ă variabilă în timp u(t).
Coresponden ța dintre pozi ția (x,y) a senzorului individual în matrice și
momentul de timp t la care se considera valoarea u(t) este determinant ă
pentru geometria imaginii. Coresponden ța dintre intensitatea luminoas ă
corespunz ătoare pozi ției (x,y) și valoarea m ărimii electrice u(t) este
responsabil ă pentru generarea unui nivel de gri sau a unei culori corecte.
În concluzie, fie un punct P(X, Y, Z) din scena tridimensional ă.
Lumina provenit ă de la o surs ă este parțial absorbit ă și parțial reflectat ă
de acest punct. Lumina reflectat ă din punctul P este focalizat ă de
sistemul de lentile al camerei pe suprafa ța senzorului, în punctul P'(x,y).
Coresponden ța dublă P – P' constituie problema transform ării
geometrice.
Este intuitiv clar c ă pentru un sistem de lentile cunoscut și un
punct P dat se poate determina în mod unic punctul P' corespunz ător de
pe suprafa ța senzorului. Invers problema este mai complicat ă, dacă se dă
un punct P' de pe suprafa ța senzorului atunci exist ă o infinitate de puncte
P din scena tridimensional ă al căror corespondent poate fi P'. Toate
aceste puncte P sunt a șezate pe dreapta care pleac ă din P' și trece prin
centrul lentilei.
Achizi ția și procesarea semnalelor 201
În urma conversiei analog numerice se va ob ține o matrice cu
elemente numerice I(i,j) numite pixeli (picture element). Aceast ă
conversie analog numeric ă presupune dou ă procese. E șantionarea, sau
discretizarea spa țială, este procesul care pune în eviden ță coresponden ța
dintre momentul t la care se face conversia și poziția (i,j)
corespunz ătoare din imagine. Cuantificarea, sau discretizarea în
amplitudine, este procesul care asociaz ă fiecărui nivel al m ărimii
continue u(t) o valoare numeric ă I(i,j) pe care o numim nivel de gri sau
culoare.
12.2.2 Senzori de imagine
Prezentarea principial ă care urmeaz ă nu se adreseaz ă
electroniștilor interesa ți de solu țiile tehnice utilizate în proiectarea și
fabricarea senzorilor. Se dore ște introducerea no țiunilor minimale
necesare pentru în țelegerea fenomenelor care au loc la nivelul diferitelor
tipuri de senzori. Aceast ă înțelegere constituie baza pentru aprecierea
parametrilor unui senzor de imagine și, ca urmare, pentru posibilitatea
alegerii senzorului adecvat unei anumite aplica ții de vedere artificial ă.
12.2.3 Fotodiode și fototranzistori
Cele mai simple componente electronice sensibile la lumin ă sunt
fotodioda și fototranzistorul. O fotodiod ă este o jonc țiune pn, polarizat ă
în sensul de blocare, la care unul dintre straturi, s ă presupunem c ă p, este
subțire și poate fi expus la lumin ă. Fotonii elibereaz ă perechi electron –
loc la zona de tranzi ție. Aici câmpul electric este foarte intens, locurile și
electronii vor migra și se va stabili un curent propor țional cu fluxul
Autor : Viorel Paleu 202
luminos. Alte fotodiode i și expun luminii stratul lor n. Un fototranzistor
funcționează după un principiu asem ănător: fotonii elibereaz ă perechi
electron – loc în jonc țiunea baz ă – colector a unui tranzistor npn. Acest
flux de perechi va crea un curent de baz ă proporțional cu fluxul luminos
și deci unul de emitor m ărit cu factorul de amplificare.
Fig.12.1
O capacitate MOS, privit ă ca o celul ă fotosenzorial ă (figura
12.1), utilizeaz ă propriet ățile fotoelectrice ale materialelor
semiconductoare cu siliciu care, în anumite condi ții, elibereaz ă electroni
(-) și goluri (+), propor țional cu fluxul de fotoni . Sarcinile negative sunt
colectate de câmpul electric al unei jonc țiuni de siliciu dopat
(impurificat).
Prin concatenarea unor celul e individuale se pot ob ține senzorii
liniari și matriceali. Senzorii individuali sunt izola ți între ei și sunt
dispuși echidistant sub forma unui vect or sau a unei matrice. Într-un
astfel de senzor senzorul individual este chiar pixelul (picture element).
Achizi ția și procesarea semnalelor 203
Culegerea sarcinilor individuale, tran sferul lor de-a lungul senzorului și
transformarea lor într-un semnal electric sunt opera ții complexe și
delicate realizate prin tehni ci diverse care diferen țiază tipurile de
senzori. În final semnalul analogic este furnizat într-un format standardizat. Conversia analog numeric ă poate avea loc în camera care
conține senzorul sau în afara ei.
Fig.12.2
Un strat semiconductor de tip p este acoperit cu un strat sub țire
de oxid de siliciu. Acest ultim strat este acoperit la randul lui cu benzi
conductoare pe post de electrozi. Senz orul este de fapt compus din
capacități dispuse echidistant, fiecare capacitate fiind constituit ă din trei
părți:
– Electrodul, metalic; – Izolantul, din oxid; – Un strat inferior de siliciu impurificat p. Dacă se aplică din exterior pe electrozi un poten țial V pozitiv în
raport cu bara impurificat ă de siliciu, atunci fiecar e capacitate se încarc ă
și se creaz ă un câmp electric local. Sub fi ecare electrod apar acum zone
de tranziție. Fotonii elibereaz ă în aceste zone perechi loc – electron.
Autor : Viorel Paleu 204
Câmpul local respinge locurile, atra ge electronii sub fiecare electrod.
Această acumulare depinde de fluxul luminos pe perioada cât s-a f ăcut
integrarea.
Fig.12.4
Aceeași celulă elementar ă poate fi folosit ă pentru ob ținerea
senzorilor color care disting culorile componente ale culorii albe. Anumite sisteme disting culorile de baz ă RGB, roșu, verde și albastru, în
timp ce altele lucreaz ă cu culorile complementare YCM, galben, cyan și
mangeta (figura 12.4). Pentru a diferen ția culorile sau complementele lor
se adaugă filtre individu ale pentru pixeli și culori.
12.2.4. CCD
Senzorii CCD (Charge coupled devices) capteaz ă lumina în mici
fotocelule și și-au primit numele de la modul în care sarcinile sunt citite
după expunere. Pentru aceasta, mai întâi sarcinile din prima linie sunt
transferate într-un registru de citire. De acolo, semnalele sunt preluate de
un amplificator și ulterior de un convertor analog – numeric. Dup ă ce o
linie a fost citit ă, sarcinile ei din regi strul de citire sunt șterse.
Achizi ția și procesarea semnalelor 205
Următoarea linie va fi transferat ă în registrul de citire, iar toate
liniile sunt transferate cu o linie mai jos. Sarcinile din fiecare linie sunt cuplate astfel încât la fie care transfer din linia curent ă în linia urm ătoarea
are loc și un transfer din linia precedent ă în linia curent ă. În acest mod se
poate citi o linie întreag ă la un moment dat.
Nodurile re țelei sunt atât de mici și de apropiate încât permit
păstrarea electronilor pân ă când ace știa sunt muta ți fizic pân ă din poziția
în care lumina incident ă i-a generat, de-a lungul suprafe ței cipului, pân ă
la un amplificator de ie șire. Pentru a realiza acest proces, re țeaua de
electrozi este comandat ă de un ceas extern senzorului. Aceste func ții
sunt, în mod normal, implementate în alt cip.
Fig. 12.5. Funcționarea principial ă a senzorului CCD
În acest fel se ajunge la solu ții tehnice care presupun între 3 și 8
cipuri. Un alt punct nevralgic al tehnologiei CCD este necesitatea
semnalelor de ceas cu o amplitudine și de o form ă impuse care
influențează decisiv performan țele finale ale sistemului Un cip
Autor : Viorel Paleu 206
specializat care s ă genereze semnale corecte de ceas, ca form ă și
amplitudine, necesit ă tensiuni de alimentare nestandardizate și crește
puterea consumat ă. Plecând de la o singur ă tensiune de alimentare,
pentru a genera 5 sau 6 semnale dife rite de alimentare, este nevoie de
câteva regulatoare interne care ev ident cresc complexitatea solu ției.
Aceste inconveniente sunt pre țul plătit pentru o imagine de foarte
bună calitate. Exist ă patru tipuri de baz ă pentru senzorii CCD:
– Liniari; – Interliniari; – Cadru întreg (full frame); – Transfer pe cadre (frame transfer). Un senzor CCD liniar (figura 12.6) este alc ătuit dintr-un șir de
senzori dispu și pe o singur ă linie. Pentru a achizi ționa o imagine
folosind un senzor liniar este necesar ca senzorul s ă se deplaseze cu
viteză controlat ă de-a lungul imagini. Viteza de achizi ție este redus ă
dacă se folose ște această manieră. Structura electromecanic ă care asigur ă
deplasarea se bazeaz ă pe motoare pas cu pas și crește, pe de o parte
complexitatea sistemul ui, iar pe de alt ă parte riscul de alterare a
geometriei imaginii. Utilizarea actual ă a senzorilor liniari se concetreaz ă
în fabrica ția scanerelor și a cititoarelor de coduri cu bare.
Achizi ția și procesarea semnalelor 207
Fig. 12.6. Structura unui senzor liniar
Celelalte trei variante de senz ori sunt consid erate generic ca
senzori matriceali CCD pentru c ă formează zone senzoriale cu linii și
coloane, de form ă dreptunghiulare sau p ătrate.
Un senzor CCD cu transfer inte rliniar (figura 12.7) are pentru
fiecare pixel și un fotodetector și o zonă de stocare a sarcinii rezultate.
Zona de stocare este format ă prin ecranarea (opacizarea) unei p ărți din
zona pixelului. Prin concat enarea zonelor opace se formeaz ă un canal
vertical care permite transferul sa rcinilor de-a lungul senzorului pân ă la
un registru orizontal de depl asare. Prin modul de func ționare varianta
interliniar ă permite transferul rapid al sarcin ilor din zona în care au fost
acumulate sub influen ța luminii mai întâi în zone le opace de stocare, iar
ulterior din linie în linie pân ă la registrul orizontal de deplasare. Prin
deplasarea vechilor sarcinilor se las ă loc pentru noilor sarcini acumulate
ceea ce este un suport deosebit pentru achizi ția de secven țe video. Prin
prezența zonelor de stocare și transfer se mic șorează zona din senzor
care este efectiv sensibil ă la lumină. Deși este o complica ție din punct de
Autor : Viorel Paleu 208
vedere al fabrica ției, se poate recurge la ata șarea de microlentile pentru
pixeli. Aceste microlentile au rolul de a concentra lumina de pe o zon ă
mai mare decât zona efectiv fotosensibil ă a senzorului.
Fig.12.7. CCD cu transfer interliniar
Senzorii CCD de tip cadru într eg (figura 12.8) folosesc toat ă
zona pixelului pentru achizi ția imaginii. În acest fel pe timpul
transferului de sarcini nu se mai poate face integrare, deci nu se mai
poate face acumulare de sarcini prin expunerea la lumin ă. Pentru a
împiedica influen ța luminii pe timpul cât are loc transferul de sarcini
(ceea ar strica calitatea imaginii) se pot plasa diafragme mecanice în fa ța
Achizi ția și procesarea semnalelor 209
senzorilor. Exist ă și situații în care aplica ția, prin natura ei, elimin ă
necesitatea diafragmei mecanice, ca de exemplu atunci când durata și
volumul luminii este controlat extern prin lumin ă stroboscopic ă de
studio.
Varianta cu transfer pe cadre este similar ă cu varianta cadru
întreg, dar se ecraneaz ă (mascheaz ă) jumătate din matricea senzorial ă
astfel încât s ă fie aptă pentru stocarea sarcinilor. Dup ă terminarea
perioadei de integrare, când elementele senzoriale elementare au înmagazinat sarcinile, are lo c un transfer al sarcinilor c ătre zona de
stocare și ca urmare o nou ă integrare se poate face f ără o întârziere
expresă. În acest mod, acest tip de senzor i se pot folosi pentru achizi ții
rapide.
Fig.12.8. CCD cadru întreg (full frame)
Autor : Viorel Paleu 210
Totuși, suprapunerea perioadelor de integrare cu acelea de
transfer de sarcini conduce la o sc ădere a calit ății imaginii (smear).
Prețul de cost al acestor se nzori este crescut datorit ă complexit ății induse
de prezen ța celor dou ă zone, senzoriale și de stocare. Varianta
interliniar ă reprezint ă, din acest punct de vedere, o îmbun ătățire pentru
că se permite integrarea și transferul simultane, f ără efectul de murd ărire
a imaginii.
Pentru citirea datelor din senzor se folosesc dou ă metode:
– Citire progresiv ă;
– Citire între țesută.
Într-un mod analog cu baleiajul video, și aici conteaz ă ordinea în
care coloanele senzorului sunt transferate în registrul orizontal și ulterior
la ieșirea din senzor. În varianta progresiv ă, liniile se citesc succesiv în
ordinea în care apar în imagine. În varianta între țesută, se citesc întâi
liniile pare și ulterior liniile impare, dup ă care are loc reintegrarea.
Pentru senzorii mai mari de 1 Mpix cea mai frecvent ă metodă este aceea
intrețesută în care un rând de electrozi controleaz ă transferul vertical al
sarcinilor din dou ă rânduri de pixeli.
12.2.5. CMOS
CMOS este, ca și CCD, o tehnologie pe baz ă de siliciu și are
proprietăți fundamentale relativ similare din punct de vedere al
sensitivității în spectrul vizibil și aproape de infraro șu. Ambele
tehnologii convertesc lumina incident ă sub form ă de fotoni în sarcini
electrice sub form ă de electroni. Senzorii color pot fi fabrica ți în ambele
tehnologii, în mod normal, prin ad ăugarea la fiecare pixel a unor filtre de
culoare (de exemplu ro șu, verde și albastru). Tehnol ogia CMOS este o
tehnologie de tip semiconductor metal – oxid și este arhitectura cea mai
folosită pentru tehnica de calcul, unit ăți centrale și module de memorie.
Achizi ția și procesarea semnalelor 211
Senzorii de imagine CMOS (figura 12.9) performan ți folosesc tehnica
APS (active pixel)
Fig.12.9.
Senzorii CCD sunt produ și pe linii de fabrica ție specializate pe
care nu se pot produce alte ci rcuite integrate ceea ce cre ște prețul de
cost. Alte linii de fabrica ție folosesc tehnologia CMOS Complementary
Metal Oxide Semiconductor pentru circ uite integrate pentru procesoare
și memorii. De exemplu procesorul Pentium III con ține 10 milioane de
elemente active de acest tip. Fabricâ nd senzori de imagine pe astfel de
linii de fabrica ție conduce la sc ăderea important ă a costului. Trebuie
precizat c ă aici termenul CMOS se refer ă la modalitatea de fabrica ție și
nu la o tehnologie specific ă pentru senzori.
Există două variante de baz ă pentru senzorii de imagine CMOS:
PPS (Passive pixel sensors) a fost prima variant ă dezvoltat ă în
anii 1960. La nivelul zonelor fotosensibile lumina sub form ă de fotoni
este convertit ă în sarcini, adic ă electroni. Sarcina acumulat ă pe timpul
expunerii, integr ării, este citit ă și amplificat ă. Senzorii sunt mici, atât cât
Autor : Viorel Paleu 212
să permită expunerea zonei fotosensibile și să includă conexiunile.
Problema major ă o constituie, la acest tip se senzori, zgomotul
materializat într-o re țea pe fundalul imaginii. Pentru a înl ătura acest
zgomot de fond sunt necesare et ape de prelucrare suplimentare.
APS (Active pixel sensors) reduce exact zgomotul amintit
pentru varianta pasiv ă. Circuite specializate la nivelul fiec ărui pixel
determină și anulează zgomotul ap ărut. De la aceste circuite active vine
și numele tehnologiei. Performa țele acestei variante de tehnologie
CMOS se apropie de performa țele oferite de tehnologia CCD și permit
realizarea de senzori de mare dimensiune și înaltă rezoluție.
Tehnologia CMOS permite includer ea în cipul senz orului a unor
funcții suplimentare (inclusiv pentru mic șorarea jitterului și stabilizarea
imaginii sau compresia imaginii, pe lâng ă cele amintite anterior) care
necesită cipuri suplimentare la CCD. În aceast ă tehnologie se poate
comuta rapid între achizi ția de imagini (fotografii) și achiziția de
secvențe video (filme). Prin prezen ța circuitelor suplimentare de
eliminare a zgomotelor se mic șorează procentul zonelor influen țate de
lumină din suprafa ța totală a circuitului (fill factor – procentul de
acoperire). În acest fel sensitivitatea la lumin ă scade și apar probleme
legate de calitatea imaaginilor achizi ționate în condi ții de lumin ă puțină.
Situația se poate corecta, extern, prin prezen ța surselor de lumina de tip
flash și prin m ărirea timpului de expunere . Din punct de vedere
tehnologic, intern, se recurge la in troducerea de microlentile pentru
fiecare pixel, pentru a aduna mai mult ă lumină, și la reducerea circuitelor
suplimentare.
Pentru că senzorii CMOS au un nivel de zgomot mai mare decât
senzorii CCD este nevoie de un tim p de procesare mai mare între dou ă
imagini. Se pot folosi pentru ace asta procesoare de semnal (DSP)
specilizate. Pre țul este un avantaj major pentru CMOS ceea ce determin ă
Achizi ția și procesarea semnalelor 213
tendința de a îndrepta cercet ările în direc ția producerii unor astfel de
senzori și de a le îmbun ătății performan țele.
1 T2.2.6. Controlul timpului de integrare (shutter electronic)
Dacă aparatele fotografice clasi ce controlau timpul de expunere
al filmului prin timpul de deschidere al diafragmei, aceast ă soluție nu
mai poate fi aplicat ă cu succes în cadrul senzorilor pentru imagini.
Controlul timpului de integrar e, timpul în care se acumuleaz ă sarcinile
electrice în fotocelulel e individuale, se face electronic prin validarea
senzorului la momentul ales și invalidarea lui dup ă perioada dorit ă.
Există câteva situa ții care justific ă o funcție care să permită declanșarea
la comand ă și pentru o durat ă prestabilit ă a achiziției.
Gama dinamic ă pentru un senzor de imagine poate fi definit ă și
ca diferen ța între num ărul electronilor pentru cazul lipsei de lumin ă
(întuneric) și acela pentru cazul cu lumin ă maximă. Această gamă este
finită și, de exemplu, pentru un rapor t de 2000 putem avea 50 pentru
negru (zgomot de fond) și 100000 pentru alb.
Această valoare nu se apropie de ra portul natural dintre noapte
absolută și lumina de la soare. Pentru a putea achizi ționa imagini în
condiții diferite de iluminare este nevoie de controlul intensit ății
luminoase recep ționate de senzor ceea ce se poate realiza prin ajustarea
timpului de integrare. La scenele în mi șcare apare “blur”, imaginea are
geometria alterat ă pentru c ă apar schimb ări chiar în timpul achizi ției
unei imagini. Solu ția este reducerea timpului de expunere. Pentru a putea
prinde evenimente care dureaz ă foarte pu țin timp e nevoie de startarea
achiziției unei imagini la comand ă.
Transferul interliniar (figura 12.10) presupune doi pixeli, ambii
în planul imagine, unul propriu-zis și al doilea pentru memorare.
Operația decurge astfel: pixelul e ținut în reset ignorând lumina, pixelul
Autor : Viorel Paleu 214
e activat, la sfâr șitul perioadei dorite este mutat în zona de memorie,
pixelul revine în starea reset. Mutarea se face aproape, în loca ții
adiacente, și necesită doar un tact. Stocare se face în form ă analogic ă.
Zona de stocare, opac ă, trebuie golit ă până la o nouă utilizare.
Fig. 12.10. Transfer interliniar
Transferul pe cadre (figura 12.11) lucreaz ă similar, dar cei doi
pixeli nu sunt situa ți în acest plan. Opera ția decurge similar cu
precizarea c ă deplasarea nu se face în zone adiacente, ci din pixel în
pixel de-alungul planului imagine, pân ă în zona de stoc are. Va fi nevoie
de mai multe tacte, propor țional cu num ărul de elemente pe coloane
(sute până la mii).
Achizi ția și procesarea semnalelor 215
Fig.12.11. Transfer pe cadre
Tehnica inciziei (slit shutter) nu folose ște zone de memorie
asociate (figura 12.12). La sfâr șitul achizi ției sarcinile sunt transferate
printr-un amplificator de coloan ă direct la ie șirea senzorului. Timpul de
expunere poate fi foarte scurt sau cât timpul unui cadru dar trebuie
facută sincronizarea cu ie șirea senzorului. Transferul interliniar este cel
mai rapid pentru c ă necesită o perioad ă de tact pentru startarea expunerii
și o perioad ă de tact pentru de rularea transferului.
Autor : Viorel Paleu 216
Fig.12.12. Transfer prin incizie
Aceeași metodă este cea mai imun ă la zgomot pentru c ă
transferul se face în zone situat e fizic în apropiere. În schimb
sensibilitatea e redus ă pentru că numai jum ătate din lumin ă cade pe zona
activă, restul cade pe zona opac ă. Transferul pe cadre preia un procent
mult mai mare din lumin ă incidentă pentru că memoria opac ă este situat ă
într-o zon ă separată. Și această metodă este rapid ă ca și varianta
interliniar ă. Problema este c ă lumina cade și pe zona care corespunde
pixelilor care sunt în curs de a se transfera, ca urmare este alterat ă
informația care este în tranzit. În aces t fel scade imunitatea la zgomot. Și
pentru aceast ă tehnică este nevoie de dou ă ori mai mul ți pixeli decât
rezoluția imaginii finale ob ținute.
Tehnica inciziei ofer ă o mult mai mic ă complexitate, de dou ă ori
mai mică, și deci un pre ț mult mai mic. Viteza e bun ă, dar mai mic ă ca la
transferul interliniar pentru c ă distanța de transfer e mai mare, cu cât
traseul care str ăbate planul imagine pân ă la amplificatorului comun este
mai mare. Marea problem ă este că pixelii nu sunt expu și simultan și deci
Achizi ția și procesarea semnalelor 217
pot apare deform ări la imaginile în mi șcare, blur. Aceast ă distorsionare
poate fi corectat ă printr-o prelucrare ulterioar ă.
În concluzie, pe principiul de cost minim, ca și pentru cazul
imaginilor statice, se impune tehni ca inciziei. Pentru scene în mi șcare cu
lumină suficient ă se recomand ă trasferul interliniar. Pentru scene în
mișcare cu lumin ă puțină, utilizatorul trebuie s ă aleagă între zgomot și
distorsiuni. Pentru achizi ția evenimentelor aleatoare se pot folosi toate
cele trei tehnici, dar iar ăși depinde cât de repede se mi șcă scena.
Autor : Viorel Paleu 218
CAPITOLUL 13
FORMAREA IMAGINII NUMERICE
Există două aspecte ale procesului pr in care fluxul luminos emis
de scena real ă trece prin lentil ă și este proiectat pe planul senzorial.
13.1 Transformarea optic ă
Mai întâi se pune problema dac ă distanțele dintre obiect și
lentilă, dintre lentil ă și planul imaginii, verific ă legile specifice ale
opticii, deci dac ă imaginea este bine focalizat ă. În acest caz planul
senzorial va coincide cu planul im aginii. În caz contrar între cele dou ă
plane va exista o distan ța nenulă care va introduce o estompare, o
neclaritate în imagine (efect flou) . Studiile optice al e fenomenului au
arătat că dependen ța între imaginea ideal ă Ii, corespunz ătoare unei
focalizări perfecte, și imaginea real ă Ir, corespunz ătoare unei distan țe d
între planul imagine și planul senzorial, se poate exprima sub form ă
liniară:
(13.1)
unde * reprezint ă o convolu ție. h este r ăspunsul impulsional al
sistemului și depinde de natura și caracteristicile lentilei, respectiv ale
luminii și sursei de lumin ă. Pentru o lumin ă albă și coerentă se poate
face o aproximare gaussian ă a răspunsului impulsional:
Achizi ția și procesarea semnalelor 219
(13.2)
unde dacă d→0 atunci σ→0 și h →1.
Scena și iluminarea obiectelor de interes din ea sunt foarte
importante pentru rezultatul final, care este clasificarea / recunoa șterea acestor obiecte.
Deși alegerea solu ției de iluminare este clar dependent ă de aplica ție,
totuși unele aspecte generale pot fi eviden țiate și au fost f ăcute într-un
paragraf anterior.
13.2 Eșantionare
O eșantionare ideal ă constă în multiplicarea imaginii Ir cu un
impuls Dirac multiplicat spa țial ca în figura 13.1.
(13.3)
unde pașii de eșantionare ∆x, ∆y verifică teorema lui Shenon. Referindu-
ne la principiul de func ționare al camerelor CCD e șantionarea în fiecare
punct corespunde la inte grarea imaginii formate pe fiecare zon ă de
dimensiune dx *dy (dimensiunea pixelului):
(13.4)
Dacă presupunem c ă se face o singur ă integrare într-o unitate de
timp, atunci putem extinde la infinit limitele de integrare:
Autor : Viorel Paleu 220
(13.5)
unde
este o func ție de tip palier definit ă pe zona dx *dy
(figura 13.1). Funcția continu ă imagine numeric ă In se poate ob ține atunci ca un
produs de convolu ție între Ir și Π.
(13.6)
Deci eșantionarea imaginii Ir revine la o convolu ție cu o func ție
de tip palier, urmat ă de o eșantionare cu impulsuri Dirac. Se poate ar ăta
că prin interpolare se poat e reconstrui imaginea ini țială: la o eșantionare
ideală corespunzänd o imagine reconstruit ă ideală.
Fig.13.1 . Eșantionarea imaginilor
Achizi ția și procesarea semnalelor 221
Eșantionarea spa țială este urmat ă de o eșantionare în frecven ță,
prin care valorile e șantionate sunt proiectate într-un interval discret
[0,2m-1], unde 2m este num ărul de nivele de gri. În principiu se pune
problema unei cuantific ări optimale prin minimizarea, de tipul celor mai
mici pătrate, a distorsiunilor între valoarea real ă și valoarea cuantificat ă.
Pentru conversia analog – numeric ă a imaginii se mai folosesc
termenii digitizare sa u discretizare: a e șantiona imaginea pentru a
discretiza coordonatele (x,y) și a cuantifica nivelele de gri pentru a
discretiza amplitudi nea într-un punct.
Uzual se lucreaz ă cu 2 Pm
P nivele de gri cu m = 6, 7, 8, 9, 10 și cu
imagini de dimensiune N x N cu N=2 Pn
P cu n= 6, 7, 8, 9, 10 (adic ă 64 x
64,…, 512 x 512, 1024 x 1024 pixeli). Deci num ărul de biți necesari
pentru a memora o imagine este b = N x N x m. De exemplu o imagine de 512 x 512 pixeli cu 256 ni vele de gri (deci pe 8 bi ți) ocupă 512 x 512
x 8 = 512 x 512 octe ți = 256 kB și analog o imagine color de 1024 x
1024 pixeli cu 2
P8
P x 2 P8
P x 2 P8
P = 224 = 16 megaculori ocup ă 3 MB.
Sunt trei factor i care limiteaz ă rezoluția efectiv ă a imaginii și
fidelitatea imaginilor numerice:
– Frecven ța de eșantionare a senzorului.
– Lățimea de band ă a semnalului video.
– Frecven ța de eșantionare a convertorului analog-numeric.
Cât de mic ă trebuie sa fie zona de e șantionare pentru a putea
lucra cu varianta discretizat ă a imaginii, cu imaginea numeric ă în loc de
imaginea continu ă, analogic ă? Teorema de e șantionare a lui Shannon
stipulează [12][179], în esen ță, că dacă un semnal de band ă limitată BHz
trebuie eșantionat, atunci frecven ța utilizată în acest proces trebuie s ă fie
mai mare sau egal ă cu dublul frecven ței de tăiere.
Dacă un senzor liniar are 756 de fotodiode dispuse liniar pe
direcția orizontal ă, atunci el va fi capabil s ă reprezinte o varia ție în
intensitatea luminoas ă care are o frecven ță spațială de 378 de ciclii pe
Autor : Viorel Paleu 222
unitatea de distan ță. Eșantionarea unei imagini este o opera ție analoag ă
care se ob ține prin decuparea unui semnal bidimensional, dup ă o rețea
pătrată pe x și pe y. Eșantionarea nu depinde numai de frecven ța aleasă
pentru impulsurile Dirac. Dimensi unea unei celule CCD este sensibil
mai mare decât deschiderea spotului de la Vidicon, ceea ce face ca s ă se
inducă un prefiltraj al imaginii (o convolu ție a imaginii sau o
multiplicare cu o func ție de transfer) mai important.
Pentru standardul CCIR frecven ța pe linii este 15625 Hz. În plus,
dacă lărgimea de band ă nominală a semnalului video este 5,0 MHz,
adică un semnal poate transmite o imagine video cu cinci milioane de
variații periodice în nivelul (str ălucirea) semnalului, atunci rezult ă un
maxim de 5 x 106/15625 = 320 varia ții periodice pe linie, deci frecven ța
spațială maximă care poate fi reprezentat ă corect de un semnal video
este de 320 ciclii pe linie.
13.3 Culoarea și spațiul tri-dimensional
Deși culorile sunt foarte importa nte pentru noi, dintr-un anumit
punct de vedere nu sunt esen țiale. Să ne gândim la discroma ți. Ei nu
percep culorile, dar reu șesc să ducă la bun sfâr șit majoritatea ac țiunilor
pe care și le propun. La început, din punct de vedere istoric, culorile au
fost definite prin conven ție și asociere cu propriet ăți identificabile în
natură. Cine are culoarea ierbii va avea culoarea numit ă verde, cine are
culoarea sângelui va avea culoarea numit ă roșu etc.
Din acest motiv a ap ărut la un moment dat și întrebarea dac ă
roșul nostru este acela și pentru to ți! Când tehnica a creat instrumentele
cu care s-au putut m ăsura lungimile de und ă ale radia țiilor asociate
culorilor, atunci culorile au putut fi definite mai precis. Exprimarea sub
formă numerică a fost necesar ă mai târziu atunci când a ap ărut tehnica
numerică materiaalizat ă în calculatoare.
Achizi ția și procesarea semnalelor 223
Așa cum s-a ar ătat anterior, retina uman ă are trei tipuri de celule
cu trei sensibilit ăți diferite în func ție de lungimea de und ă recepționată.
Energia luminii poate fi distribuit ă pe lungimile de und ă (SPD Spectral
Power Distribution). Se pot clasifica efectele pe care fiecare element al
acestei distribu ții le are asupra fiec ăruia dintre cele trei tipuri de celule
(conuri). Reciproc, putem ob ține efectul vizual al unei culori amestecând
aditiv ponderat cele trei componente, ro șu, verde și albastru. Plecând de
la acest model, dup ă un drum lung și nu unul direct, s-a ajuns la o
reprezentare numeric ă cu trei componente, deci la o culoare într-un
spațiu tridimensional. În acest mod putem reprezenta cele mai multe, dar
nu toate, culorile adunând pondera t trei componente primare: ro șu,
verde, și albastru.
Daca vom nota o culoare prin C vom avea:
C = r*R + g*G + b*B
unde r, g, b sunt ponderile relative ale fiec ărei componente primare
pentru a ob ține culoarea care trebuie specificat ă.
Spre exemplu, în standardul CIE XYZ, R=700nm, G=546,1nm și
B=435,8nm, iar ponderile se determin ă experimental.
O observa ție important ă este aceea c ă cele trei ponderi nu
reprezintă o informa ție legată direct de distribu ția spectral ă a culorii
respective, ci la faptul c ă dacă s-ar face un experiment atunci un
observator ar alege în acest mod cel e trei componente primare pentru a
simula o culoare care s ă se potriveasc ă cu culoarea C.
Pe un monitor de calculator o culoare este produs ă activând o
tripletă de puncte adiacente asociate cu ro șu, verde și albastru. Punctele
sunt mici, iar ochiul percepe tripleta ca un singur punct de culoare. Pentru a specifica culorile se utilizeaz ă cele trei componente primare.
Distincția culorii pe un astfel de monitor nu este produs ă din amestecul
de radiații din cele trei surse de lumin ă ci din plasarea surselor de lumin ă
una în apropierea celeilalte.
Autor : Viorel Paleu 224
Plecând de la aceast ă premiză a gener ării culorilor folosind
numai cele trei culori de baz ă RGB și ținând cont de eroarea introdu-s ă
de eșantionarea finit ă a domeniului de culo ri se poate estima c ă există o
eroare în simularea culorilor printr-o astfel de metod ă. În principal are
loc o decalarea (aliasing) a culori lor ceea ce nu este foarte important ă în
grafica pe calculator, dar care poate infuen ța negativ aplica țiile grafice
de realitate virtual ă sau pe acelea de vedere artificial ă.
Acceptând totu și acest mod de reprezenta re a culorilor se na ște
problema alegerii standardizate acomponentelor primare și a ponderilor
corespunz ătoare. Solu ția reprezent ării culorilor folosind tripleta RGB nu
este suficient ă în măsura în care aceast ă reprezentare este dependent ă de
dispozitivul fizic, monitor sau senzor. O reprezentare universal ă trebuie
să fie independent ă de dispozitivul fizic și să se poată aplica pentru orice
culoare. Un astfel de spa țiu există și este cunoscut ca standardul CIE
XYZ. O triplet ă CIE este o etichet ă numerică asociată oricărei culori
perceptibile.
Pentru a realiza o simulare mai intuitiv ă a culorilor se prefer ă
folosirea no țiunilor de nuan ță, saturație și luminozitate (hue, satura ție,
lightness). Astfel s-a ajuns la folosirea unor reprezent ări de urm ătorul
tip:
– Spațiul CIE XYZ este principalul standard interna țional pentru
specificarwea culorilor. O culoare este specificat ă ca un set de 3 valori,
componente primare artificiale.
– Variante ale spa țiului CIE XYZ, cum ar fi spa țiul CIE xyY,
care se ob țin din modific ări dependente de contex t ale standardului CIE
XYZ și care își propun eviden țierea anumitor aspect e particulare, cum
este de exemplu liniaritatea.
– Spațiul spectral care realizeaz ă sinteza surselor de lumin ă
pentru imagini prin asocierea culorilor cu mul țimi de n componente
corespunz ătoare lungimilor de und ă diferite. Aceast ă reprezentare este
Achizi ția și procesarea semnalelor 225
similară măsurării culorii pe fiecare lungime de und ă cu un
spectofotometru și ea nu corespunde neap ărat cu modul nostru de a
percepe o anumit ă lungime de und ă ca o culoare sau alta.
– Spațiul RGB este varianta cu n=3 componente a spa țiului
spectral: ro șu, verde și albastru. Se presupune c ă aceste componente sunt
saturate sau pure.
– Spațiul RGBdispozitiv se bazeaz ă pe reprezent ări dependente
de dispozitiv care genereaz ă culorile dorite. Acea și reprezentare poate
genera efecte diferite în func ție de dispozitivul utilizat.
Fig.13.2. Spațiul RGB
– Spațiul HSV se bazeaz ă pe valorile nuan ță, saturație și valoare
obținute din valorile RGB prin tr-o transformare neliniar ă.
– Spațiul YIQ este o variant ă utilizată în televiziune și este
obținut deasemenea printr-o transformare neliniar ă.
Autor : Viorel Paleu 226
Dată fiind distinc ția subtilă între RGB și RGB BdispozitivB ne vom
referi la RGB ca la un concept general. În acest sistem (0,0,0) este negru,
iar (1,1,1) este alb. O culo area va fi reprezentat ă printr-o triplet ă de
ponderi pentru cele trei componente de baz ă. Spațiul tuturor culorilor
disponibile în acest sistem este re prezentat de cubul RGB (figura 13.2).
Relativ la spa țiul RGB pot fi precizate urm ătoarele:
– Este perceput neliniar pentru c ă distanțele egale din acest spa țiu
nu corespund în general unor percep ții egale. Un pas între 2 puncte într-o
regiune a spa țiului poate produce diferen țe nesesizabile, iar un pas egal
în altă regiune a spa țiului poate determina o schimbare a culorii
percepută ca major ă. Ca urmare, o aceea și senzație poate fi generat ă de
mai multe triplete RGB. Pentru reprezentarea pe 8 bi ți a fiecărei
componente primare se pot ob ține 2 P8
P* 2 P8
P* 2 P8
P = 2 P24
P =2 P4
P *2 P20
P , adică mai
mult de 16 milioane de combina ții de cod diferite care nu vor genera îns ă
tot atâtea senza ții diferite de culori.
Fig.13.3. Spațiul HSV
Achizi ția și procesarea semnalelor 227
– Din cauza acestor rela ții neliniare, schimb ările de valori mici nu
vor produce schimb ări la fel de sesizabile ca schimb ările similare dar
care au loc la valorile mari.
– Mulțimea culorilor produse prin amestecarea componentelor
spațiului RGB este întotdeauna o submul țime a mul țimii culorilor care
pot fi percepute de oameni.
– RGB nu este o bun ă descriere intuitiv ă a culorii. F ără o
experiență deosebită, utilizatorul g ăsește cu greu ponderile cu care poate
reprezenta o culoare dat ă.
Modelul HSV (figura 13.3) este fo losit pentru a facilita un
control mai intuitiv al reprezent ării culorii, comparativ cu selec ția celor
trei culori RGB. Modelului HSV i se poate asocia o reprezentare sub
forma unei piramide hexagonale. Pi ramida HSV e o transformare
neliniară a cubului RGB. De și HSV tinde s ă fie privit ca un model
perceptual, e doar un alt mod de a clasifica mul țimea culorilor care
păstrează neliniaritatea mo ștenită de la sistemul RGB. O interfa ță bazată
pe modelul HSV va permite un cont rol mai bun al procesului de ob ținere
a unei culori anume. Folosind nuan ța, saturația și valoare este mai u șor
de obținut o culoare mai str ălucitoare, mai ștearsă sau mai maro decât
dacă se folose ște reprezentarea RGB. Reprezentarea HSV se bazeaz ă pe
coordonate polare, nu pe coordonate ca rteziene, iar H es te specificat în
grade între 0 și 360. O prim ă varianta a acestui sistem, care folose ște
nuanța, crominan ța și valoarea (hue, chroma, value) a fost propus ă în
1905 și este încă folosită:
– Hue este calitatea prin care se distinge între familiile de
culoare, de exemplu între ro șu și galben, sau între albastru și verde,
– Chroma este calitatea prin care se distinge o culoare puternic ă
de alta slab ă, intensitatea unei culori.
– Value este calitatea prin care se distinge o culoare închis ă de
una deschis ă.
Autor : Viorel Paleu 228
Modelul HSV se mai apropiatde modul în care pictorii amestec ă
culorile: alegerea valorii H corespunde alegerii culorii, sc ăderea lui V
corespunde ad ăugării de negru, sc ăderea lui S corespunde la ad ăugarea
de alb.
Transformarea între cele dou ă modele RGB și HSV poate c ăpăta
o formă geometric ă. Cubul RGB poate fi proiectat de-a lungul
diagonalei lui principale pe un pl an perpendicular pe planul s ău diagonal
generând un disc hexagonal. Se poate face o coresponden ță între cele 6
vârfuri ale cubului RGB și cele 6 vârfuri ale piramidei HSV ca în tabelul
13.1.
RGB HSV
(100) Ro șu (0,1,1)
(110) Galben (60,1,1)
(010) Verde (120,1,1)
(011) Cian(albastru închis) (180,1,1)
(001) Albastru (240,1,1)
(101) Magenta(ro șu purpuriu) (300,1,1)
Tabel 13.1 Coresponden ța RGB – HSV
În figura 13.3 este reprezentat ă piramida hexagonal ă HSV.
Semiplanul drept al fiec ărei secțiuni verticale este asociat unei valori H
constante, iar semiplanul stâng corespunz ător este asociat valorii H+180.
In plus fa ță de neliniaritate, o alt ă problem ă imoprtant ă e
reprezentat ă de faptul c ă aceste atribute nu sunt perceptual independente.
De exemplu, se poate sesiza o schimbare în nuan ță atunci când se
schimbă valoarea. In sfîr șit, poate c ă cea mai serioas ă abatere fa ță de
realiatea perceptual ă este generat ă tocmai de geometria modelului.
Modelul eticheteaz ă toate culorile disponibi le pentru un dispozitiv și
presupune c ă toate culorile dintr-un plan cu valoarea V constant ă au
strălucirea constant ă. Ceea ce nu este cazul pentru c ă, de exemplu ro șu
Achizi ția și procesarea semnalelor 229
de intensitate maxim ă este perceput ca mai str ălucitor decât galbenul de
intensitate maxim ă. Luând în considerare neliniaritatea perceptual ă a
reprezentării și faptul c ă la intensitate maxim ă diferitele culori sunt
percepute ca având str ăluciri diferite, se poate spune c ă orice
reprezentare bazat ă pe un corp geometric re gulat nu poate conduce decât
la o aproximare a senza țiilor de culoare. Divizâ nd nivelele de tensiune
corespunz ătoare componentelor primare RGB și combinându-le conform
modelului RGB nu se poate ob ține decât o aproximare a unei culori
dorite care este în realitate o senza ție perceptual ă. Situația este similar ă
și la modelul HSV chiar dac ă acestuia I se asociaz ă atributul perceptual.
Spațiul YIQ se ob ține printr-o transformare liniar ă din spațiul
RGB și a fost folosit ă în special pentru se mnalul analog TV. Scopul
introducerii acestui sistem a fost pos ibilitatea unei mai bune reprezent ări
din punct de vedere al utiliz ării benzii de frecven ță și păstrarea
compatibilit ății cu reprezentarea semnalel or TV alb – negru (toate
informațiile pentru recep ția alb-negru sunt con ținute în componenta Y).
De exemplu, pentru un semnal NTSC transformarea este urm ătoarea
(relația 13.7):
(13.7)
Forma constant ă a matricei de tran sformare se bazeaz ă pe
presupunerea c ă și componentele primare RGB sunt sub o form ă care
respectă standardul de televi ziune (NTSC pentru rela ția de mai sus).
Componenta Z este aceea și din standardul CIE și se nume ște
luminanță.Informația de culoare este con ținută numai în componentele I
și Q (dacă avem valori egale pentru RGB atunci avem valori nule pentru
I și Q). Optimizarea utiliz ării benzii de frecven ță este susținută de faptul
că oamenii sunt mai sensibili la schimb ările luminan ței decât la
Autor : Viorel Paleu 230
schimbările de culoare și ca urmare percep mai bine detaliile în
imaginile cu nivele de gri decât în imaginile color. Se poate tolera astfel o diminuare a l ățimii benzii de frecven ță pentru I și Q, ceea ce este un
avantaj în raport cu re prezentarea RGB. O astfel de reprezentare cu
separarea informa țiilor de luminan ță și respectiv culoare poate fi util ă
atunci când se dore ște prelucrarea structur ii imaginii, dar cu p ăstrarea
neschimbat ă a culorii.
13.4 Pozi ția pixelilor în imagine
Modelul imaginii numerice introdus anterior, a ar ătat că
imaginea se reduce la o matrice de pixeli codifica ți pe m bi ți și ca
urmare acoperind 2 Pm
P nivele de gri sau culori. Un pixel reprezentat prin
intensitatea sau nivelul de gri sau culoarea, considerate atribute ale
punctului P(i,j), are patru puncte vecine în pozi țiile: (i+1,j), (i-1,j),
(i,j+1), (i,j-1). Putem nota acest ansa mblu de pixeli (4 vecini) prin N B4B(P)
și îi putem identifica prin punctele cardinale c ărora le corespund. Pe
diagonală mai putem identifica 4 vecini în pozi țiile: (i+1,j+1), (i+1,j-1),
(i-1,j-1), (i-1,j+1). Acest ansamblu îl putem nota cu N BDB(P). Dacă facem
reuniunea:
N B8B =N B4B(P) U N BDB(P)
obținem o mul țime de 8 pixeli care se numesc 8-vecinii pixelului curent
(figura 13.4).
Achizi ția și procesarea semnalelor 231
Fig.13.4. -vecinătate
Asociind pozi ției și atributul unui pixel, de exemplu nivelul de
gri, se poate introduce no țiunea de conectivitate relativ la doi pixeli
P B1B(x B1B,y B1B) și P B2B(x B2B,y B2B) cu nivelele de gri g B1B respectiv g B2B. Putem defini 3
tipuri de conectivit ăți impunând condi ția g B1B,g B2B€[a,b] în urm ătorul sens:
– 4-conectivitate: P B1B, P B2B sunt 4-conecta ți dacă P B1B€N B4B(P B2B ) ,
– 8-conectivitate: P B1B, P B2B sunt 8-conecta ți dacă P B1B€N B8B (P B2B ) ,
– conectivitate mixt ă: se obține din modificarea 8-conectivit ății
prin eliminarea conectivit ăților multiple care sunt surse de erori. P B1B, P B2B
sunt mixt – conecta ți dacă P B1B€N B4B(P B2B ) sau dac ă P B1B€N BDB (P B2B ) și N B4B(P B1B)∩N B4B
(P B2B ) =Φ (un exemplu în figura 13.5)
Autor : Viorel Paleu 232
Fig.13.5. Exemplu de conectivita te mixte pentru a=20 și b=24
Putem calcula distan țele între doi pixeli P1(x1,y1) și P2(x2,y2),
dintr-o imagine numeric ă cu nivele de gri, folosind metrice de
următoarele forme:
– distața euclidian ă:
– distanța Manhattan:
– distanța de tip șah:
Așa cum s-a ar ătat, raportul dimensiunilor, orizontal ă și verticală,
pentru imaginile TV tradi ționale este 4/3. Pentru sistemele de vedere
artificială care presupun inspec ție și măsurare este util ă o imagine
pătrată cu un raport de 1/1. Dac ă se folose ște un semnal video cu
raportul 4/3 este digitizat ă pentru a ob ține o imagine p ătrată atunci va
avea loc o deformare a distan țelor pe cele dou ă direcții perpendiculare,
distanța efectivă dintre pixelii vecini pe orizontal ă devenind de 4/3 ori
mai mare decât aceea pe vertical ă. Dacă nu am lua în considerare aceast ă
Achizi ția și procesarea semnalelor 233
deformare, am putea considera c ă distanța pe diagonal ă între doi pixeli
vecini ar fi
În realitate aceast ă distanță este
(13.8)
Mai mult, la un standard TV nu to ate liniile din semnal sunt afi șate.
Astfel la standardul CCIR numai 576 din cele 625 de linii sunt afi șate
efectiv în timp ce restul sunt folosite pentru altceva. Dac ă se lucreaz ă cu
o imagine numeric ă de dimensiune 512×512 atunci se va introduce o
nouă distorsionare. Noul raport între dimensiuni va fi
(13.9)
ceea ce conduce la urm ătoarele distan țe între doi pixeli vecini: 1 pentru
verticală, 3/2 pe orizontal ă si √13/2pe diagonala.
13.5 Detec ția contururilor
Extragerea contururilor este o etap ă necesară pentru a realiza
caracterizarea regiunilor din imagine în vederea identific ării obiectelor
din lumea real ă. În plus aceast ă operație faciliteaz ă o reducere
important ă a volumului de informa ție de la sute de mii sau milioane de
pixeli la mii de puncte de contur.
O etapă preliminar ă destinată creșterii calit ății imaginii este
pretratarea ei. Se poate interveni la nivelul convertorului analog numeric
pentru o mai bun ă folosire a dinamicii camerei de luat vederi, (se
controleaz ă limitele domeniul convertit astfel încât acesta s ă se
Autor : Viorel Paleu 234
suprapună pe căt posibil peste domeniul real al nivelelor de gri din
imagine) și se poate controla LUT-ul (L ook Up Table) de intrare (pentru
a se adapta sistemul de achizi ție la modul de varia ție al nivelelor de gri).
Trebuie subliniat faptul c ă nu întotdeauna aprecierea calit ății imaginii
poate fi corect f ăcută cu ochiul liber. Cu alte cuvinte, nu imaginea pe
care sistemul de vedere uman o apreciaz ă drept cea mai bun ă va conduce
cu necesitate la cele mai bune cont ururi. Intervin aici particularit ățile
sistemului de ve dere artificial ă. Histogramele imaginilor sunt un
instrument util în controlul efectului pe care diferitele opera ții de
pretratare le au asupra imaginilor numerice.
Fig.13.6. Exemple de tipuri de muchii
Vom privi contururile ca pe grani țele regiunilor care alc ătuiesc
imaginile obiectelor. Segmentarea este opera ția prin care se pun în
evidență regiunile din imagine. Dac ă suprafețele din scen ă ar primi
lumina numai direct de la sursa de lumin ă, atunci muchiile ar corespunde
la variații ale intensit ății luminoase de tip treapt ă, impuls, scar ă, rampă,
sau creast ă. Dacă se ia în considerare faptul c ă pe de o parte, suprafe țele
reflectă lumină unele spre altele (reflexii), iar pe de alt ă parte aceast ă
reflexie se poate face într-o direc ție unică sau în toate direc țiile, atunci
Achizi ția și procesarea semnalelor 235
pentru muchii pot apare profile de varia ție de tipuri mult diferite de cele
ideale (figura 13.6.).
Studiind metodele de segmentare prezentate în literatura de
specialitate le putem împ ărți în două mari categorii:
◊ Metode care pun în eviden ță regiunile ca agreg ări de pixeli cu
nivele de gri sau culori apr opiate. Contururile se vor ob ține, eventual,
într-un al doilea pas ca fr ontiere ale regiunilor.
Există abordări care folosesc histogramele imaginilor pentru a
obține informa ții sintetice asupra reparti ției nivelelor de gri, și aplică
detecția cu praguri pe aceste histograme pentru a pune în eviden ță
regiunile din imagine. Este clasic exemplul histogramei bimodale la care prin aplicarea unui singur prag se izoleaz ă obiectul de fondul imaginii.
În experimentele practice s-a eviden țiat faptul c ă una dintre cele mai
dificile probleme este tocmai alegerea pragurilor implicate în diferite procese de prelucrare a imaginilor. În cazul de mai sus, influen ța alegerii
pragului se tra duce în distribu ția pixelilor albi și negri din imagine, și
deci implicit în m ărimea (aria) regiunii reprezentate de obiect în
imagine. Dac ă se dorește numai localizarea aproximativ ă în spațiul de
operare (de exemplu pozi ția centrului de greutate al unui obiect), sau
numai determinarea tipului formei plane din imagine, atunci metoda este deosebit de direct ă și în consecin ță se poate aplica cu succes în aplica ții
practice. Influen ța alegerii pragului pe histogram ă asupra pozi ției
centrului de greutate este mai mic ă decât influen ța asupra lungimii
conturului
și mult mai mic ă decât influen ța asupra ariei. Când este vorba
de obiecte poliedrale, me toda devine restrictiv ă și își păstrează
aplicabilitatea doar dac ă se folosesc metode ba zate pe conturul absolut
exterior al obiectului, și nu se iau în considerare toate muchiile
obiectului, inclusiv cele interi oare, acelea care nu-l separ ă de fondul
imaginii.
Autor : Viorel Paleu 236
Alte abord ări de acest tip fie pleac ă de la o regiune maximal ă din
imaginea pe care o divizeaz ă succesiv, fie pleac ă de la regiuni minimale
cărora le cresc dimensiunea prin agregare. În ambele abord ări,
descendent ă respectiv ascendent ă, criteriul folosit este nivelul de gri, iar
în final se ajunge la regiunile reale din imagine.
◊ Metode care pun în eviden ță inițial contururile. Regiunile vor fi
atunci zonele din imagine delimitate de contururi.
Metoda general ă care s-a impus presupune trei pa și succesivi:
• Se filtreaz ă trece – jos imaginea și se elimin ă zgomotele care
sunt asociate frecven țelor înalte. Opera ția este în principiu o mediere,
care introduce și o pierdere a detaliilor și o estompare a contururilor,
care sunt și ele asociate tot frecven țelor înalte.
• Se filtreaz ă trece – sus imaginea.
• Se aplic ă o detecție cu prag pe imaginea derivat ă pentru a pune
în eviden ță punctele cu derivat ă mare, care corespund la o varia ție
important ă a nivelului de gri și care sunt declarat e puncte de contur.
• Problema alegerii pragurilor revine : praguri prea mici conduc la
contururi prea groase, iar praguri prea înalte conduc la contururi eventual
întrerupte. Sunt interesante me todele de segmentare simple și deci
rapide, care s ă se preteze la aplica ții practice, industriale. Aceste
aplicații, pe de o parte cer un r ăspuns în timp scurt, iar pe de alt ă parte
oferă condiții relativ stabile și controlabile de lucru.
Achizi ția și procesarea semnalelor 237
CAPITOLUL 14
TEHNICI DE FILTRARE A IMAGINILOR
14.1 Conceptul general de histogram ă
Fie o imagine digitizat ă pe 2 Pm
P nivele de gri, și care are n = N x N
= N P2
P pixeli. Procesarea de imagini este des folosit ă pentru a cre ște
calitatea imaginii în sensul de-a fi mai u șor înțeleasă de observatorul
uman, sau pentru a permite extrag erea unor caracteristic i importante de
către un sistem de vedere artificial ă. În acest sens este frecvent necesar
să se identifice un grup de pixeli lega ți între ei printr-o caracteristic ă
comună. Informa ții utile pot fi extrase și dintr-o reprezentare f ăcută
dintr-un punct de vedere mai general, cum este reparti ția nivelelor de gri
care conduce la histograma acestor nivele. Se m ăsoară și se reprezint ă,
pe ordonat ă, frecvența de apari ție a fiecărui nivel de gri (figura 14.1).
Prin generalitatea reprezent ării se pierd rela țiile geometrice dintre
pixeli, iar coresponden ța histogram ă-imagine nu este reciproc ă. Totuși
această reprezentare are cel pu țin două avantaje:
" conține informa ții despre natura fundamental ă a imaginii, și în
anumite privin țe despre calitatea ei.
" constituie baza de definire a unor prelucr ări pentru
transformarea imaginii. Una dintre informa țiile utile con ținute în
histogram ă este aceea despre contrastul imaginii ( și deci despre
contururi).
Autor : Viorel Paleu 238
Fig 14.1 Histograma unei imagini cu nivele de gri
Dacă histograma este plat ă, relativ uniform ă (figura 14.2 a),
putem trage concluzia c ă s-a realizat o bun ă utilizare a nivelelor de gri
disponibile, și deci este de a șteptat o bun ă observabilitate a detaliilor din
imagine. O histogram ă cu un maxim într-o extremitate a intervalului de
nivele de gri și o lipsă a nivelelor de gri din extremitatea opus ă a
intervalului (figura 14.2 b) va semnala un contrast slab și deci în
consecință o pierdere a detaliilor din imagine în zonele predominant albe
sau negre din imagine. O similar ă lipsă de contrast poate fi semnalat ă și
în cazul unei distribu ții relativ uniforme pe întreaga scar ă de nivele de
gri, dar cu un vârf proeminent într-o extremitate (figura 14.3 a).
Achizi ția și procesarea semnalelor 239
Fig.14.2 Exemple de histograme
a) histogram ă plată
b) histogram ă unei imagini care nu folose ște toată gama de
nivele de gri
O cale de control a calit ății imaginii ar fi reachizi ționarea ei
numerică după modificarea anumitor parametrii pe lan țul de achizitie, în
sensul cre șterii calit ății imaginii, și recalcularea hist ogramei pentru
controlul efectului ob ținut. Chiar și în situa țiile în care nu intereseaz ă
foarte mult calitatea reprezent ării detaliilor, hist ograma poate fi un
instrument util. De exemplu, o histogram ă bimodal ă (figura 14.3 b),
semnaleaz ă prezența unei zone (obiect) de culoare deschis ă și a unei
zone (fond) de culoare închis ă. Această situație este des întâlnit ă în
aplicațiile practice, de exemplu prezen ța unui reper pe o band ă
transportatoare. În astfel de cazuri poate fi util ă reprezentarea imaginii
pe un singur bit (binari zarea imaginii), doar dou ă nivele de gri: alb și
negru.
Autor : Viorel Paleu 240
Fig.14.3 Exemple de histograme
a) histogram ă cu un maxim într-o extremitate a intervalului de nivele de
gri
b) histogram ă bimodală
Trebuie g ăsit pragul care s ă delimiteze cele dou ă nivele de gri
pentru a programa corect convertorul analog – numeric implicat în
achiziție. Histograma ofer ă un ajutor important în aceast ă alegere.
Problema nu este la fel de simpl ă dacă în aplicația respectiv ă contează în
detaliu forma și mărimea obiectelor. În acest c az alegerea pragului cere o
precizie mult mai mare.
14.2 Tehnici de modificare a histogramei
Fie In = f(x,y) o imagine numeric ă, h(g) histograma ei, g nivelele
de gri. Fie Φ o transformare a nivelelor de gri, g →g' , care conduce la f
'(x, y) noua imagine, h'(g') noua histogram ă, g' noile nivele de gri.
Achizi ția și procesarea semnalelor 241
Translatarea liniar ă a nivelelor de gri
Să luăm exemplul foarte simplu al urm ătoarei histograme
bimodale. Din cele prezentate anterior în țelegem c ă este cazul unui
obiect deschis la culoare pe un fond întunecat. Dac ă această imagine
trebuie afi șată pe un display care are o neliniaritate pentru nivelele de gri
în plaja (g B1B, g B2B) și dacă intereseaz ă numai forma și mărimea obiectului,
nu și culoarea lui, atunci o simpl ă translatare a nivelelor de gri aduce
vârful de pe histograma ini țială într-o zon ă în care displayul
funcționează corect (figura 14.4). Atunci Φ, funcția de transformare,
poate fi reprezentat ă ca o transla ție cu θ.
Fig.14.4 Translatarea nivelelor de gri
14.2.2 Punerea la scar ă
După o analiz ă a histogramei, nivelele de gri sunt configurate
pentru a utiliza întreaga dinamic ă a semnalului de ie șire al senzorului
Pentru a folosi ideal gama dinamic ă a senzorului, este necesar ca
intervalul de conversie [LOW, HIGH] s ă fie identic cu intervalul
nivelelor de gri din imagine [Gmin, Gmax]. Aceste valori se pot determina u șor din histograma imaginii. Dac ă imaginea nu este static ă,
Autor : Viorel Paleu 242
este practic im posibil ca aceast ă identitate s ă se păstreze prin reglarea
dinamică a pragurilor convertor ului analog – numeric.
14.2.3 Aplatizarea hist ogramei (egalizarea)
Teoretic imaginea cu cel ma i bun contrast este aceea care
utilizează egal toate nivelele de gri. Într-o astfel de imagine, func ția de
repartiție, adică totalul pixelilor mai întuneca ți decât nivelul de gri curent
(cu valori asociate mai mici decât aceea curent ă), este o dreapt ă. După
egalizarea histogramei, vor fi realocat e nivelele de gri astfel încât func ția
de reparti ție să tindă, pe cât posibil adic ă atât cât permite con ținutul
imaginii reale, la o dreapt ă.
Un exemplu de func ție care implic ă o astfel de schimbare pe
histograma imaginii este urm ătoarea:
(14.1)
Pe histogram ă, efectul este unul de aplatizare (figura 14.5), cu
valorile asociate nivelelor de gri ma i uniform distribuite (în special dac ă
se vizualizeaz ă anvelopa). Pe imagine încep s ă apară și detaliile dintr-o
imagine cu contrast ini țial mai slab. Se înt ărește contrastul, se
îmbunătățește dinamica imaginii, prin folosirea tuturor nivelelor de gri.
În același timp imaginea poate c ăpăta un aspect dur, iar zgomotele sunt
și ele amplificate. Func ția descris ă este cunoscut ă și ca "Func ția
cumulativ ă de distribu ție" (histograma este o func ție densitate de
probabilitate). În aplica țiile practice, datorit ă discretizării, rezultatele nu
sunt la fel de bune ca în cazul ideal.
Achizi ția și procesarea semnalelor 243
Fig. 14.5 Egalizarea histogramei
Transform ările de mai sus nu sunt singurele moduri de a
transforma histograma. Ega lizarea histogramei poate avea
inconvenientul c ă pentru imagini cu un fond omogen de mare suprafa ță,
această corecție duce la un contrast prea mare pentru o zon ă de gri
limitată, ceea ce face vizibil zgomotul electronic.
Reglajul dup ă contrast aduce un remediu pentru c ă s e f a c e o
corecție combinat ă între o aducere la scar ă și egalizarea histogramei.
Alternativ pot fi f ăcute transform ări exponen țiale sau hiperbolice, spre
exemplu. Se mai procedeaz ă curent la sumare sau sc ădere de imagini.
Histograma sumei este egal ă cu produsul de convolu ție al histogramelor
imaginilor ini țiale. Se mai pot aplica transform ări punctuale asupra
pixelilor individuali a șa cum este cazul LUT-ului.
De exemplu, pentru egalizarea de histogram ă (figura 14.6) la o
imagine de n = 64 x 64 = 4096 pixeli, 23 = 8 nivele de gri, datele sunt prezentate în tabelul 4.1, cu titlu de exemplificare.
Autor : Viorel Paleu 244
Tabelul 14.1 Exemplu de aplatizare a unei histograme
Fig.14.6. Rezultatul aplatiz ării
r BkB – nivele de gri
n BkB – număr de pixeli
p B1B(r BkB ) – densitate de probabilitate
s BkB – funcția cumulat ă
s Bk'B – cele mai apropiate nivele de gri
s Bk"B – eliminare valori dublate
n Bk'B – redistribu ția pixelilor
p B2B(s Bk"B) – noua densitate de probabilitate
(14.2)
(14.3)
Achizi ția și procesarea semnalelor 245
Este util ca transform ările asupra histogramelor s ă se poată face
hard, prin componente specializate, deci mai rapid. Mecanismul pe care
îl oferă în acest sens pl ăcile de achizi ție și prelucrare de imagini (frame-
grabber) este cunoscut sub numele de LUT (Look Up Table). LUT-ul
este o zon ă de memorie adresat ă de valoarea numeric ă corespunz ătoare
nivelului de gri oferit, pentru fiecare pixel, de convertorul analog-numeric Valoarea de la respectiva loca ție din LUT, este noul nivel de gri
care se asociaz ă pixelului și care va fi memorat ă în planul video, deci în
memoria imagine. Are loc astfel o transformare pixel cu pixel a
histogramei.
Dacă histograma normalizat ă este:
(14.4)
• media
(14.5)
• variatia
(14.6)
• energia
(14.7)
Autor : Viorel Paleu 246
14.3 Filtrarea zgomotelor
Zgomotul este o informatie ne dorita care deterioreaza calitatea
unei imagini. Zgomotul din imaginile digitale poate proveni dintr-o
multime de surse. Procesul de achi zitie al imaginii digitale, care
converteste o imagine optica intr-un semnal electric continuu este un
proces primar prin care zgomotele ap ar in imagini digitale. La fiecare
pas din proces exista fluctuatii cauzate de fenomene naturale si acestea aduaga o valoare aleatoare la extrag erea fiecarei valo ri a luminozitatii
pentru un pixel dat. In imaginile tip ice zgomotul poate fi modelat fie
printr-o distributie gaussiana, uniforma sau de tip salt-and peper (sare
si piper / impuls). Forma distribuitiei acestor tipuri de zgomote ca si o
functie de nivele de gri poate fi modelata sub forma unei histograme ca in figura urmatoare:
14.3.1 Zgomot gaussian
Fig.14.7.
unde:
HISTOGRAMA BGaussian B=2() 2
21
2gmeσ
πσ−−
B
g=nivel de gri;
Achizi ția și procesarea semnalelor 247
m=media;
σ=deviatia standard;
Aproximativ 70% din valori su nt incadrate intre medie ± σ
(deviatia standard) si 95% dintre va lori sunt cuprinse intre medie ± 2 σ.
Din punct de vedere teoretic aceasta ecuatie defineste valori cuprinse intre -∞ si +∞, dar deoarece nivelele actual e de gri sunt definite intrun
domeniu finit, numarul de pixeli de la valorile minime si maxime va fi
mai mare decat precizeaza aceasta ecuat ie. Aceasta datorita faptului ca
toate valorile mai mici decat minimul vor fi egalate cu minimul si toate
valorile mai mari decat maximul vor fi egalate cu maximul. Acest lucru
trebuie considerat pentru toate modele le teoretice de zgomote, cand sunt
aplicate pe o zona fixa, discreta ca si imaginile digitale.
14.3.2 Zgomot uniform
Fig.14.8.
HISTOGRAMA Buniforma B=
//////1,
0,agbba
altfel⎧≤≤ ⎪−⎨
⎪⎩
media=(a+b)/2
Autor : Viorel Paleu 248
variatia=(a+b) P2
P/12
Cu distributia uniforma, valorile nivelelor de gri ale zgomotelor
sunt distribuite intr-un domeniu speci fic, care poate fi intreg domeniul
(0-255 pentru 8 biti), sau o portiune mai mica din acest domeniu.
14.3.3 Zgomot sare si pi per (salt-and-peper)
Fig,14.9.
HISTOGRAMA Bsare&piperB=, ( " " )
, ( " " )A pentru g a piper
Bpentru g b sare= ⎧
⎨= ⎩
In modelul de zgomot de tip salt-and-peper exista doar doua
valori posibile, a si b, si probabilitatea de aparitie a fiecaruia este mai mica de 0.1 -cu numere mai mari d ecat acestea, zgomotul va domina
imaginea. Pentru o imagine de 8 biti, valoare de intensitate tipica pentru
zgomotul peper este 0 si pe ntru zgomotul salt este 255.
Modelul gausian este cel mai des folosit pentru modelarea
proceselor cu zgomot natural, cum ar fi cele care provin din zgomotul
electronic in sistemul de achizitie al imaginilor.
Zgomotul salt-and-peper este in general cauzat de functionarea
proasta a celulelor din senzorii came relor, greseli ale locatiilor de
memorie, sau erori de sincronizare in procesul de digitizare.
Achizi ția și procesarea semnalelor 249
Zgomotul uniform este folositor de oarece poate fi folosit pentru a
genera orice alt tip de distributie de zgomot si este de obicei folosit
pentru a degrada imagini pentru a put ea fi evaluati algoritmii de refacere
a imaginilor, deoarece ofera un model de zgomot neutru.
In urma studiilor s-a observat ca zgomotul gaussian si cel
uniform par a fi similare in timp ce zgomotul salt-and-peper este diferit in totalitate.
Mai pot fi amintite si alte tipuri de zgomote care apar cum ar fi:
– zgomot exponential negativ; – zgomot gamma; – zgomot Ralyeigh;
Multe zgomote care apar datorita fenomenelor naturale pot fi
modelate ca si o forma de zgomot exponential.
14.3.4. Filtre spatiale pent ru eliminarea zgomotelor
Filtrele spatiale pot fi folosite efectiv pentru o inlatura anumite
tipuri de zgomote din imaginile digitale. Aceste filtre spatiale opereaza pe vecinatati mici, intre 3×3 si 11×11, si unele pot fi implementate ca si
masti de convolutie.
Principalele categorii de filtrele spatiale folosite la inlaturarea
zgomotelor sunt filtrele ordonate si f iltrele de mediere. Filtrele ordonate
sunt implementate prin asezarea pixeli lor vecini in ordine de la cel cu
valoarea cea mai mica a nivelelor de gr i la cel cu valoarea cea mai mare
a nivelelor de gri. Aceasta ordonare se foloseste pe ntru a selecta valoarea
"corecta", in timp ce la filtrele de mediere se determina, intr-un fel sau altul, o valoare medie a vecinilor. Filtrele medie lucreaza mai bine cu
zgomot uniform sau zgomot gaussia n, si filtrele ordonate (in special
filtru median) lucreaza mai bine cu zgomote salt-and-peper, zgomote
exponential negative, zgomote Ryleigh.
Autor : Viorel Paleu 250
Filtrele medie au dezavantajul de a voala marginile sau detaliile
imaginilor. Filtrele ordonate nu sunt lin iare, astfel ca rezultatele acestora
sunt uneori imprevizibile.
In practica ambele tipuri de filtre pierd informatii in incercarea
lor de a inlatura zgomotele, si scopul este de a diminua aceste pierderi de informatie cand se maximizeaza inlaturarea zgomotului. Un filtru care isi schimba comportamentul bazandu-se pe caracteristicile nivelelor de
gri ale vecinilor este numit filtru adaptativ, si aceste filtre sunt de folos in multe aplicatii practice.
14.3.4.1. Filtre ordonate
Filtrele ordonate sunt bazate pe un tip specific de statistici ale
imaginilor numit statistica ordonata. Aceste filtre opereaza pe subimagini mici, ferestre, si inlocuiesc valoarea pixelului central (similar cu procesul de convolutie). Stat istica ordonata este o tehnica care
aranjeaza toti pixelii intr-o ordine secventiala, bazata pe valoarea
nivelelor de gri. Plasarea unei va lorii in cadrul acestei multimi ordonate
va fi caracterizata de un de rang. Da ndu-se o fereastra W de NxN pixeli,
valorile pixelilor pot fi ordonate crescator dupa cum urmeaza:
2 123 …NIII I≤≤≤≤
unde:
{ } 2 123 …NIII I≤≤≤≤
reprezinta Intensitatea (nivelele de gri) valorilor corespunzatoare
subsetului de pixeli din imagine, car e sunt in fereastra W de NxN pixeli
(care este, (r,c)W).
Exemplu: dandu-se o subimagine 3×3:
Achizi ția și procesarea semnalelor 251
110 110 114
100 104 104
95 88 85⎡ ⎤
⎢ ⎥
⎢ ⎥
⎢ ⎥⎣ ⎦
rezultatul aplicarii sta tisticii ordonate va fi:
{85, 88, 95, 100, 104, 104, 110, 110, 114}
Filtrul median
Filtrul median selecteaza valoarea de mijloc a unui pixel dintr-o
multime ordonata. In exemplul de mai sus valoarea selectata ar fi 104. Filtrul median aplicat asupra unei imagini are o comportare asemanatoare cu cea a convolutiei. Aceas ta este exemplificata mai jos:
Imaginea de intrare I(r,c) Imaginea de
iesire
Fig.14.10.
a. Imaginea de intrare este impartita intr-o fereastra NxN, si
valoarea de mijloc a pixelilor aflati in fereastra este plasata in imaginea
de iesire la locatia X.
Autor : Viorel Paleu 252
Imaginea de intrare I(r,c) Imaginea de
iesire
Fig.14.11.
b. fereastra este mutata la dreap ta cu un pixel, si valoarea de
mijloc a pixelilor acum acoperiti de fereastra este plasata la locatia X.
Imaginea de intrare I(r,c) Imaginea de iesire
Fig.14.12.
c. cand se ajunge la sfarsitul unei linii, fereastra se muta inapoi
spre marginea stanga si mai jos cu o linie.
Achizi ția și procesarea semnalelor 253
Imaginea de intrare I(r,c) Imaginea de iesire
Fig.14.13.
d. intreaga imagine a fost pro cesata. Se observa ca liniile si
coloanele de pe margini nu au fost inlocuite.
In practica liniile si co loanele pierdute sunt umplute cu zero iar la
o masca de 3×3 se pierde o linie si o coloana, la o masca de 5×5 se pierd
doua linii si doua coloane, acest fapt de obicei nu este semnificativ
pentru imagini tipice de 256×256 pixeli si 512×512 pixeli.
Alte tipuri de filtre ordonate sunt:
Filtrul de maxim
– selecteaza cea mai mai mare valo are dintr-o fereastra ordonata
de valori ale pixelilor;
– este folosit pentru eliminarea zgomotelor peper.
Filtrul de minim
– selecteaza cea mai mai mica valo are dintr-o fereastra ordonata
de valori ale pixelilor;
– este folosit pentru eliminarea zgomotelor salt.
Autor : Viorel Paleu 254
Filtrul punctului de mijloc
– face media intre valoarea minima si valoarea maxima din
fereastra;
– este folosit pentru zgomot gaussian si zgomot uniform.
Filtrul medie alpha-ordonat
– realizeaza media valori lor pixelilor din fereastra, dar cu unele
valori de rang final excluse; – este definit in modul urmator:
daca:
2 123 …NIII I≤≤≤≤
atunci:
(14.8)
– unde T este numarul valorilor pixelilor exclusi de la inceputul si
sfarsitul fiecarui set 2 ordonat, si poate fi de la 0 la (N-1).
– este folosit pentru imagini care contin mai multe tipuri de
zgomot, cum ar fi zgomot gaussi an si zgomot salt-and-peper.
14.3.4.2. Filtre de medier e (mean / average filters)
Filtrele de mediere functioneaza prin gasirea unor forme de
medie in fereastra de NxN pixeli, fo losind operatia de convolutie pentru
a procesa intreaga imagine.
Filtrul medie aritmetica
Este cel mai simplu filtru me die. Este un filtru trece jos.
Calculeaza media aritmetica a valorilo r pixelilor din fereastra in felul
urmator:
(14.9)
Achizi ția și procesarea semnalelor 255
Acest filtru produce in urma aplic arii sale asupra imaginilor un
efect de voalare a acest ora care este cu atat mai pronuntat cu cat
dimensiunea mastii de convolutie este mai mare.
Poate fi folosit pentru zgomot gaussian si zgomot uniform. Toate celelalte tipuri filtre de me diere au fost realizate asttfel
incat sa reduca cat mai mult efectul de voalare a imaginii.
Acestea sunt:
Filtrul medie contra-armonica
– este folosit pentru eliminar ea zgomotelor salt-and-peper;
– daca R<0 atunci elimina zgomote salt; – daca R>0 atunci elimina zgomote peper.
(14.10)
Filtrul medie geometrica
– este folosit pentru zgomot gaussian;-retine detaliile imaginii
mai bine decat filtrul media aritmetica.
(14.11)
Filtrul medie armonica
– poate fi folosit pentru zgomot gaussian si zgomot salt; -retine
detaliile imaginii mai bine decat filtrul media aritmetica.
(14.12)
Autor : Viorel Paleu 256
Filtru medie YP
– acest filtru elimina zgomotele salt pentru P<0 si zgomotele
peper pentru P>0.
(14.13)
Achizi ția și procesarea semnalelor 257
CAPITOLUL 15
PRELUCRAREA IMAGINILOR
15.1 Generali ăți
Pachetul de programe Preluc rarea Imaginilor (Toolbox Image
Processing) este o colec ție de func ții ce extinde posibilit ățile mediului de
calcul numeric din MATLAB [202], of erind un spectru larg de opera ții
de prelucrare a imaginilor, incluzând:
• Operații geometrice
• Operații pe blocuri și vecinătăți
• Filtrare liniar ă și proiectarea filtrelor
• Transform ări
• Analiza și amplificarea imaginii
• Operații pe imagini binare
• Operații pe zone de interes
În această secțiune se vor prezenta, pr intr-o traducere selectiv ă și
adaptată a documenta ției de firm ă, fundamentele prelucr ării imaginilor
folosind mediul MATLAB precum și pachetul Prelucrarea Imaginilor.
Se vor descrie tipurile de imagini și modul cum sunt ele reprezentate în
MATLAB. De asemenea, vor fi prezentate elemente de baz ă în lucrul cu
imagini, dar și noțiuni legate de sisteme de coordonate.
Structura de baz ă a datelor în MATLAB este vectorul, un set
ordonat de elemente complexe sau real e. Acest obiect, care în mod firesc
Autor : Viorel Paleu 258
este potrivit reprezent ărilor de imagini, este or donat în seturi de date
(valori reale) de culori sau intensit ăți (MATLAB nu recunoa ște imagini
de valoare complex ă).
MATLAB recunoa ște cele mai multe imagini ca vectori
bidimensionali (matrice), în care fie care element al matricei corespunde
unui singur pixel în imaginea afi șată (termenul de pixel deriv ă de la
noțiunea de picture element care indic ă existența unui singur punct pe
displayul calculatorului).
De exemplu, o imagine alc ătuită din elemente dispuse pe 200 de
linii și 300 de coloane, reprezentând puncte diferit colorate, ar fi stocate
de MATLAB ca o matrice de dimensiune 200 x 300. Aceast ă convenție
face ca lucrul cu imagini în MATLAB s ă fie similar lucrului cu orice alt
tip de matrice de date, și face disponibil ă întreaga putere a MATLAB în
aplicațiile de prelucrare de imagini.
De exemplu, se poate selecta un singur pixel di ntr-o matrice
imagine folosind comanda I(2,15). Aceast ă comandă returneaz ă valoarea
pixelului de pe linia 2, coloana 15 din imaginea I.
15.2 Tipuri de date
MATLAB stocheaz ă cele mai multe date în vectori de clas ă
double. Datele din ace ști vectori sunt stocate ca numere reprezentate în
dublă precizie (numere cu virgul ă flotantă pe 64 biți). Toate func țiile și
facilitățile MATLAB lucreaz ă cu ace ști vectori. Totu și, pentru
prelucrarea de imagini aceast ă reprezentare a datelor nu este întotdeauna
ideală. Numărul de pixeli dintr-o imagine poate fi foarte mare: de
exemplu, o imagine de 1000 x 1000 are un milion de pixeli. Deoarece fiecare pixel este reprezentat de cel pu țin un element din vector, aceast ă
imagine ar necesit ă în jur de 8 MB de memorie.
Achizi ția și procesarea semnalelor 259
Pentru a reduce cerin țele memoriei, MATLAB stocheaz ă datele
din imagini în vectori de clas ă uint8. Datele din ace ști vectori sunt
memorate ca numere întregi f ără semn reprezentate pe 8 bi ți. Datele
memorate în vectori de tipul uint8, necesit ă o optime din memorie fa ță
de datele din vectorii de tip double. Deoarece tipurile de valori care pot
fi stocate în vectorii uint8 și vectorii de tip double sunt diferite, pachetul
de programe Prelucrarea Imaginilor folose ște diferite conven ții pentru
interpretarea valorilor din ace ști vectori (valorile neîntregi nu pot fi
stocate în vectori de tip uint8, îns ă ele pot fi stocate în vectori de tip
double). În continuare se va discut a despre felul în care sistemul
interpreteaz ă datele din imagine, în conformitate cu clasa vectorului de
date.
15.3 Tipuri de imagine
MATLAB suport ă patru tipuri de imagini:
• Imagini indexate
• Imagini de intensitate
• Imagini binare
• Imagini RGB
Imagini indexate
O imagine indexat ă conține două tabele, o matrice de imagine și
o hartă de culori. Harta de culori es te un set ordonat de valori care
reprezintă culorile din imagine. Pentru fiecare pixel din imagine,
matricea de imagine con ține o valoare care este un index în harta de
culori. Harta de culori es te o matrice m x 3 de clas ă double. Fiecare linie
a matricei h ărții de culori specific ă valorile de ro șu, verde și albastru
Autor : Viorel Paleu 260
(RGB) pentru o singur ă culoare: culoare = [ R G B ], R, G și B sunt
scalari reali care variaz ă între 0 (negru) și 1.0 (intensitate maxim ă).
Relația dintre valorile din matricea imaginii și harta de culori este
condiționată de apartenen ța la clasa double sau ui nt8 a matricei de
imagine. Dac ă matricea imaginii este de clas ă double, valoarea 1
conduce spre prima linie din hart a de culori, valoarea 2 indic ă linia a
doua, ș.a.m.d.. Dac ă matricea imaginii este de clas ă uint8, exist ă o
diferență: valoarea 0 indic ă prima linie din harta de culori, valoarea 1
indică al doua linie, ș.a.m.d.. Conven ția uint8 este de asemenea folosit ă
în formatul fi șierelor grafice, și face posibil ca imaginea indexat ă pe 8
biți să suporte pân ă la 256 de culori.
Imagini de intensitate (im agini cu nivele de gri)
MATLAB memoreaz ă imaginea de intensitate ca matrice unic ă,
fiecărui element al matricii corespunzâ ndu-i un pixel imagine. Matricea
poate fi de clasa double, în acest caz ea con ținând valori cuprinse în
intervalul [0,1]. Când matricea este de clas ă uint8, intervalul este
[0,256]. Elementele din matric ea de intensitate reprezint ă diferite
intensități, sau nivele de gri, unde intensitatea 0 reprezint ă negrul și
intensitatea 1 (sau 255) reprezint ă intensitatea maxim ă, sau albul.
Imagini binare
Într-o imagine binar ă, fiecare pixel prime ște doar una dintre cele
două valori discrete, 0 sau 1. Aceste dou ă valori corespund st ărilor
inactiv (off) și activ (on). O imagine binar ă este memorat ă ca o matrice
bidimensional ă de 0-uri(pixeli inactivi) și 1-uri (pixeli activi). Aceast ă
poate fi considerat ă un tip special de imagine de intensitate, con ținând
numai negru și alb. Imaginea binar ă poate fi depozitat ă într-un vector de
clasă double sau uint8. Totu și un vector uint8 este preferabil, deoarece
necesită mult mai putin ă memorie. În pachetul Prelucrarea Imaginilor,
toate func țiile care proiecteaz ă o imagine binar ă, o proiecteaz ă ca un
vector logic uint8.
Achizi ția și procesarea semnalelor 261
Pachetul de programe folose ște prezen ța unui indicator logic
pentru a marca dac ă datele sunt cuprinse în intervalul [0,1] (dac ă
indicatorul logic este inactiv , pachetul de programe folose ște intervalul
de date [0,255]).
Imagini RGB
Ca și imaginea indexat ă, o imagine RGB reprezint ă fiecare pixel
de culoare ca un set de 3 valori, constând în intensit ățile de roșu, verde și
albastru care alc ătuiesc culoarea. Spre deosebire de imaginea indexat ă,
aceste valori de intensitate sunt sto cate direct în vectorul imagine, nu
indirect în harta de culori. În MATLAB componentele de ro șu, verde și
albastru ale unei imagini RGB rezid ă într-o tabela unic ă de tip m x n x 3,
m și n reprezentând numerele de linii și coloane ale pixelilor din
imagine, iar a treia dimensiune presupune trei planuri, con ținând valori
intensitate de ro șu, verde și albastru. Pentru fiecare pixel din imagine
elementele de ro șu, verde și albastru se combin ă pentru a crea culoarea
reală a pixelului. De exemplu pentru a determina culoarea pixelului
(112,86), este necesar a se cerceta tr ipletul RGB stocat în (112,86,1:3).
Să presupunem c ă (112,86,1) con ține valoarea 0.1238, (112,86,2)
conține 0.9874 și (112,86,3) con ține 0.2543. Culoarea pixelului este:
0.1238 0.9874 0.2543
O tabelă RGB poate fi de clas ă double, în acest caz ea con ținând
valori în intervalul [0,1], sau de clas ă uint8, în acest caz intervalul de
date fiind [0,255].
Tabele de imagini cu cadre multiple
Pentru unele aplica ții, s-ar putea s ă fie nevoie de lucrul cu
colecții de imagini asem ănătoare în timp sau spa țiu, ca de exemplu
formarea imaginilor de rezonan ță magnetic ă (MRI) sau a cadrelor
cinematografice. Pachetul de programe ofer ă baza pentru stocarea
imaginilor multiple în aceea și tabelă. Fiecare imagine separat ă este
numită cadru (frame). Dac ă o tabelă deține cadre multiple, ele sunt
Autor : Viorel Paleu 262
concatenate în a 4-a dimens iune. De exemplu, o tabel ă cu cinci imagini
RGB de dimensiune 400 x 300 ar fi 400 x 300 x 3 x 5. O imagine similară, indexat ă sau de intensitate, cu câmp multiplu ar fi de
dimensiune 400 x 300 x 1 x 5. De exemplu, dac ă avem un grup de
imagini A1, A2, A3, A4 și A5, atunci acestea pot fi stocate într-o singur ă
tabelă folosind:
A = cat (4,A1,A2,A3,A4,A5)
De asemenea se pot extrage cadre dintr-o imagine cu cadre
multiple. De exemplu dac ă avem o imagine cu cadre multiple MULTI,
comanda urm ătoare extrage cel de -al treilea cadru:
FRM3 = MULTI ( : , : , : , 3)
A se remarca faptul c ă într-o tabel ă de imagine cu cadre multiple,
fiecare imagine trebuie s ă aibă aceeași dimensiune și același număr de
plane. Intr-o imagine indexat ă cu câmpuri, fiecare imagine trebuie s ă
aibă și aceeași hartă de culori. Exist ă limitări. Multe dintre func țiile din
pachetul de programe opereaz ă numai în primele dou ă sau trei
dimensiuni. Se pot folosi îns ă și tabele cu patru di mensiuni cu aceste
funcții, dar fiecare cadru trebuie prel ucrat individual. De exemplu
comanda urm ătoare afișează cel de-al 7-lea cadru în tabela MULTI:
imshow (MULTI ( : , : , : , 7 ) )
Dacă tabela este transferat ă unei func ții, și are mai multe
dimensiuni decât func
ția pe care este creat ă să opereze, rezultatul poate
fi imprevizibil. În unele cazuri, func ția va prelucra primul cadru al
tabelei, pe când în alte cazuri opera ția nu va produce rezultate
importante.
Achizi ția și procesarea semnalelor 263
15.4 Date de tip imagine
Această secțiune discut ă modurile de a lucra cu tabelele de date
care reprezint ă imagini, incluzând:
• citirea datelor de imagine din fi șier, și tipărirea lor în alte fi șiere;
• conversia imaginilor în alte tipuri de imagini;
• lucrul cu tabelele uint8 în MATLAB și pachetul de programe
Prelucrarea
• Imaginilor.
Înregistrarea și transferarea imaginilor
Se poate folosi func ția MATLAB imread pentru a citi datele de
imagini din fi șiere. Func ția imread recunoa ște următoarele formate
grafice:
• BMP
• HDF
• JPEG
• PCX
• TIFF
• XWD
Pentru a transfera datele de imagine din MATLAB într-un fi șier,
se folosește funcția imwrite . imwrite poate transfera acelea și formate pe
care imread le recunoa ște. De asemenea, func ția imfinfo poate fi
folosită pentru a returna informa țiile despre datele din imagine într-un
fișier.
Conversia imaginilor în alte tipuri de imagine
Pentru anumite opera ții, este folositor ca o imagine s ă fie
convertită într-un tip diferit de imagine. De exemplu, dac ă vrem să
filtrăm o imagine colorat ă care este stocat ă ca imagine indexat ă, trebuie
ca în primul rând s ă o convertim în format RGB, MATLAB filtrând
valorile de intensitate ale imaginii. Dac ă încercăm să filtram imaginea
Autor : Viorel Paleu 264
indexată, MATLAB doar va aplica filtrul indicilor din matricea imaginii
indexate, și rezultatul nu ar avea nici un sens.
Pachetul de programe ofer ă câteva func ții care fac posibil ă
convertirea oric ărei imagini într-un alt tip de imagine. De exemplu,
ind2gray convertește o imagine indexat ă într-un format de intensitate pe
scara de gri. Alte func ții de conversie sunt: dither , gray2ind , grayslice ,
im2bw , ind3rgb , mat2gray , rgb2gray , rgb2ind . A se remarca faptul ca
atunci când se converte ște o imagine dintr-un format în altul, imaginea
rezultată poate ap ărea diferit ă față de original. De exemplu, dac ă se
convertește o imagine indexat ă de culoare într-o imagine de intensitate,
imaginea rezultat ă este o imagine cu nivele de gri, nu colorat ă.
Se pot efectua, de asemenea, anumite conversii doar prin
folosirea sintaxei MATLAB. De exemplu, se poate converti o imagine de intensitate într-un format RGB prin concatenarea a trei copii ale matricei originale în cea de-a treia dimensiune:
RGB = cat(3,I,I,I);
Imaginea RGB rezultat ă are matrice identice pentru planurile de
roșu, verde și albastru, astfel ca imaginea se afi șează sub forma unor
tonuri de gri. Pe lâng ă aceste instrumente standard de conversie, sunt
câteva func ții care returneaz ă tipuri diferite de imagini ca parte ale
operației pe care o îndeplinesc. De exemplu, func țiile care lucreaz ă cu
zone de interes returneaz ă o imagine binar ă care poate fi folosit ă pentru
a masca o imagine indexat ă sau de intensitate pentru filtrare sau alte
feluri de opera ții.
Conversia spa țiilor de culori
Pachetul de programere prezint ă culorile ca valori RGB, fie
direct (într-o imagine RGB) sau indirect (într-o imagine indexat ă).
Totuși, există și alte metode pentru reprezentarea culorilor. De exemplu,
o culoare poate fi reprezentat ă prin nuan ță, saturație și componente de
valoare (HSV). Se poate prelucra o imagine care folose ște un spațiu de
Achizi ția și procesarea semnalelor 265
culoare diferit prin convertirea lui în RGB și apoi prin convertirea
imaginii prelucrate înapoi în spa țiul original de culoare.
Lucrul cu date uint8
MATLAB ofer ă suport limitat pentru opera ții în tabele uint8.
imread înregistreaz ă imagini în MATLAB ca tabele uint8, și funcțiile
image și imagesc pot
afișa imagini uint8.
MATLAB de asemenea suport ă următoarele opera ții în tabele
uint8:
• Afișarea valorilor,
• Indexarea în tabele folosind subscrierea MATLAB standard,
• Corectarea, reordonarea și concatenarea tabelelor, folosind
funcții ca reshape, cat și permute,
• Salvarea și încărcarea din fi șierele .MAT,
• Funcțiile all și any,
• Operatori logici și indexare,
• Operatori rela ționali.
MATLAB suport ă de asemenea func ția find pentru tabelele
uint8, dar tabela returnat ă este de clas ă double. În afar ă de opera țiile
enumerate mai sus, MATLAB nu suportr ă alte opera ții pentru tabelele
uint8. În special, MATLAB nu suport ă operații matematice. Dac ă se
intenționează efectuarea unei opera ții ce nu poate fi realizat ă într-o
tabelă uint8, rezultatul este un me saj de eroare. De exemplu:
BW3=BW1+BW2
??? Function ’+’ not defined fo r variables of class uint8
Cele mai multe func ții acceptă intrări de clasă uint8.
Conversia între tipuri de date
Dacă se dorește efectuarea unor opera ții care nu pot fi realizate
de tabelele uint8, atunci se pot converti datele în precizie dubl ă folosind
funcția double. De exemplu:
Autor : Viorel Paleu 266
BW3 = double (BW1) + double (BW2)
A se retine c ă, conversia între tipurile de date modific ă modul în
care MATLAB interpreteaz ă datele din imagine. Dac ă vrem ca tabela
rezultată să fie corect interpretat ă în date de imagine, avem nevoie de
rescalarea sau de decalarea da telor când facem conversia.
A se remarca c ă se poate executa rescal area sau decalarea numai
în tabele de clas ă double deoarece tabelele de clas ă uint8 nu suport ă
operații aritmetice. De aceea când se realizeaz ă conversia din double în
uint8, trebuie s ă se execute toate opera țiile aritmetice înainte de apelarea
funcției uint8: când se realizeaz ă conversia din uint8 în double, trebuie
să se efectueze toate opera țiile aritmetice dup ă apelarea func ției double.
Următorul tabel arat ă cum se face conversia imaginilor din uint8 în
double:
Acest tabel arat ă cum se face conversia imaginilor din double în
uint8:
A se observa c ă aceste exemple rotunjesc valorile în imaginea de
intrare înainte de conversia în uint8. Când se converte ște din double în
uint8, partea frac ționară a fiecărei valori este ignorat ă. Aceasta
înseamnă, de exemplu, c ă uint8 (102,99) este 102, nu 103. De aceea, de
Achizi ția și procesarea semnalelor 267
regulă este recomandabil s ă se foloseasc ă funcția round înainte de
conversie.
Activarea și dezactivarea i ndicatorului logic
O imagine binar ă uint8 trebuie s ă aibă indicatorul logic activat.
Dacă se converte ște o imagine binar ă de tip double în uint8, atunci
indicatorul nu este activat automat. Putem folosi func ția logical pentru a
crea o tabel ă cu indicatorul logic activat:
B = logical (uint8 (round (A)))
Pentru a dezactiva indicatorul lo gic, putem folosi operatorul unar
+. De exemplu, dac ă A este o tabel ă logică uint8 vom avea: B = +A
15.5 Sisteme de coordonate
Locațiile într-o imagin e poate fi exprimat ă în diferite sisteme de
coordonate. Aceast ă secțiune discut ă cele dou ă sisteme principale de
coordonate folosite în toolbox, precum și relațiile dintre ele. Sistemele
sunt:
• sistemul de coordonate pixel,
• sistemul de coordonate spa țiale.
Coordonate pixel
De regulă, cea mai convenabil ă metodă pentru a exprima loca ții
într-o imagine este folosirea coordona telor pixel. În acest sistem de
coordonate, imaginea este tratat ă ca o gril ă de elemente discrete,
ordonate de sus în jos și de la stânga la dreapta . De exemplu ca în figura
15.1. Pentru coordonatele pixel, prima component ă r (linie) se m ărește
de sus în jos, în timp ce cea de-a doua component ă, c (coloana), se
mărește spre dreapta. Coordonatele pixel sunt valori întregi și variază
între 1 și lungimea liniei sau coloanei. Exist ă o corespondent ă biunivoc ă
între coordonatele pixel și coordonatele pe care MATLAB le folose ște în
Autor : Viorel Paleu 268
matricea de subscriere. Aceast ă coresponden ță face ca rela țiile dintre
matricea de date a imaginii și modul în care imaginea se afi șează, să fie
ușor de înțeles. De exemplu, datele pentru pixelul din a 5-a linie, coloana
a 2-a sunt stocate în elementul matrice (5, 2).
Fig. 15.1 Dispunerea liniilor și a coloanelor
Coordonate spa țiale
În sistemul de coordonate pixel, un pixel este tratat ca o entitate
discretă, identificat în mod unic printr-o singur ă pereche de coordonate,
cum ar fi (5,2). Din aceast ă perspectiv ă, o locație precum (5.3,2.2) nu
este important ă. Totuși, este folositor ca un pixel s ă fie considerat ca
fiind pătrat și având arie. Astfel, o loca ție ca (5.3,2.2) este deosebit ă de
locația (5,2). În acest sist em de coordonate în spa țiu, locațiile într-o
imagine sunt pozi ții într-un plan și sunt descrise în termeni X și Y.
Figura 15.2 ilustreaz ă sistemul de coordonate spa țial folosit pentru
imagini. A se observa c ă Y crește de sus în jos.
Acest sistem de coordonate corespunde destul de bine și din mai
multe puncte de vedere sistemului de coordonate pixel. De exemplu,
coordonatele spa țiale ale punctelor centrale ale oric ărui pixel sunt
identice coordonatelor pixel pentru pixelul respectiv.
Achizi ția și procesarea semnalelor 269
Totuși există și diferente importante. În coordonatele pixel,
coltul din stânga sus al unei imagini este (1,1) în timp ce în coordonatele
spațiale, aceast ă locație este (0.5,0.5).
De asemenea, valoarea ini țială a coltului din stânga sus este
întotdeauna (1,1) în coordonatele pi xel, dar putem specifica o valoare
neinițială a originii pentru sistemul de coordonate spa țiale.
Ordinea componentelor orizontale și verticale este invers ă în
relațiile celor dou ă sisteme. Coordonatele pixel sunt exprimate ca (r,c) în
timp ce coordonatele spa țiale sunt exprimate ca (X,Y).
Fig.15.2. Dispunerea liniilor și a coloanelor
Folosirea unui sistem de coordonate spatial neimplicit
Inițial, coordonatele spa țiale ale unei imagini corespund
coordonatelor pixel. De exemplu, punctu l central al pixelului din linia 5,
coloana 3 are coordonatele spa țiale X = 3, Y = 5 (trebuie reamintit c ă
ordinea coordonatelor este invers ă). Aceast ă corespondent ă simplific ă
multe dintre func țiile pachetului. Câteva func ții lucreaz ă în primul rând
cu coordonate spa țiale decât cu coordonate pixel, dar atât timp cât,
inițial, se folose ște sistemul de coordonate spa țial, se pot specifica
locațiile în coordonate pixel.
Există situații când se dore ște însă să se foloseasc ă un sistemul
de coordonate spa țiale neimplicit. De exemplu, se poate specifica, col țul
Autor : Viorel Paleu 270
din stânga sus al imaginii este pu nctul (19.0,7.5) în locul punctului
(0.5,0.5). Dac ă se apeleaz ă o funcție care returneaz ă coordonatele pentru
această imagine, coordonatele returnat e vor fi valori în respectivul
sistem de coordonate spa țiale neimplicit.
Pentru a stabili un sistem de coordonate spa țial neimplicit,
trebuie specificate propriet ățile de imagine Xdata și YData când se
afișează imaginea. Aceste proprieta ți sunt date de vectori forma ți din
două elemente care controleaz ă intervalul coordona telor cuprinse în
imagine. Implicit pentru o imagine A, Xdata este [1 size(A,2)], iar YData este [1 size(A,1)].
De exemplu, dac ă A este o imagine de dimensiune 100 x 200,
atunci valoarea ini țială XData este [1 200], iar valoarea ini țială YData
este [1 100]. Valorile din ace ști vectori sunt de fa pt coordonatele pentru
punctele centrale ale primului și ultimului pixel (nu laturile pixelului),
astfel că intervalul real de coordonate cuprins de imagine este într-o
oarecare m ăsură mai larg; de exemplu, dac ă XData este [1 200],
intervalul axei X cuprins de imagine este [0.5, 200.5].
15.6 Exemple de prelucr ări de imagini în MATLAB
Acest subcapitol vizeaz ă prezentarea unor seturi de func ții din
pachetul de programe Prelucrare a Imaginilor din MATLAB. Gruparea
funcțiilor a fost realizat ă astfel încât s ă cuprindă informații despre
extragerea și reconstituirea imaginilor, opera ții de colorare, geometrie și
morfologie, transform ări bidimensionale, proiectarea filtrelor 2-D,
analiza și statistica imaginilor. În prezentarea teoretic ă sau inclus și
exemple folosind func ții specifice acestor opera ții. Prezentarea vizeaz ă
urmatoarele aspecte:
• Afișarea de imagini.
Achizi ția și procesarea semnalelor 271
• Operații I/O cu fi șiere imagine. Opera ții geometrice.
• Valorile pixelului și statistici.
• Analiza și amplificarea imaginii.
• Filtrarea liniar ă și proiectarea filtrelor.
• Transform ări.
• Vecinătăți și operații în bloc.
• Operații cu imagini binare.
• Imagini color și conversii între imagini color.
• Tipuri de imagini și conversii.
15.6.1 Afi șarea de imagini
Se urmărește descrierea unor func ții de afișare a imaginilor. De
exemplu, func ția imshow afi șează orice tip de imagine la o singur ă
apelare de func ție. Alte func ții tratează cazuri speciale de afi șare. Sunt
prezentate tehnicile de baz ă ale afișării imaginilor multiple și alcătuirea
de hărți ale texturii. Func țiile descrise în acest exemplu sunt: image ,
imagesc , imshow , zoom , subimage , colorbar , getimage , montage ,
immovie , truesize , warp . În MATLAB, modul principal de afi șare a
imaginii este folosirea func ției image . MATLAB include de asemenea
funcția imagesc , care este asem ănătoare cu func ția image , dar care
detectează automat datele introduse. P achetul de programe include o
procedura suplimentara de afi șare, imshow . imshow stabilește automat
proprietățile imaginii, pentru a optimiza afi șarea. De regula, imshow
este preferabil ă funcțiilor image și imagesc pentru aplica ții de prelucrare
a imaginilor.
Afișarea unei imagini reprezentate matriceal ( image , imagesc ,
imshow )
Sintaxa principal ă a funcției image este urm ătoarea: image(C)
Autor : Viorel Paleu 272
Aceasta va afi șa matricea C ca o imagine. Fiecare element din C
specifică culoarea unei anumite zone di n imagine. C poate sa fie o
matrice de dimensiune m xn sau m xnx3. Dacă matricea C este de
dimensiune m xnx3, atunci elementele din C(:,:,1) sunt interpretate ca
intensități de roșu, C(:, :, 2) ca intensit ăți de verde iar C(:, :, 3) ca
intensități de albastru. De exemplu:
image ([1 6 2 4 9 0 3 5 7 8; 8 9 2 0 3 1 5 4 6 1]);
Funcția imagesc este asem ănătoare cu image cu diferen ța ca
imagesc folose ște întreaga gam ă de culori. De exemplu:
imagesc ([1 6 2 4 9 0 3 5 7 8; 8 9 2 0 3 1 5 4 6 1]);
Când se afi șează o imagine folosind func ția imshow, MATLAB
stabilește figura, axele și proprietățile imaginii care controleaz ă modul în
care datele de imagine sunt interpretate. Aceste propriet ăți includ
imaginea Cdata precum și propriet ățile axelor Clim și propriet ățile de
figură Colormap. În plus, depinzân d de argumentele specificate și de
preferințele stabilite pentru pachetul de programe, imshow poate de
asemenea:
• stabili propriet ăți ale figurii și axelor pentru a execut ă afișarea.
• include sau omite bordura din jurul imaginii;
• apela func ția truesize pentru a afi șa imaginea f ără interpolare.
Pachetul de programe include o func ție, iptsetpref, care poate fi
folosita pentru a stabili parametrii care afecteaz ă comportamentul
funcției imshow:
• ImshowBorder determin ă dacă imshow traseaz ă o bordur ă între
axele ce con țin imaginea și marginile figurii.
• ImshowAxesVisible determin ă dacă imshow afi șează imagini cu
axe și marcaje.
Pentru a determina valoarea curent ă a unei parametru, se folose ște
funcția iptgetpref .
Sintaxa principal ă a funcției imshow este: imshow (filename)
Achizi ția și procesarea semnalelor 273
Această comanda afi șează imaginea stocat ă în fișierul grafic
filename. Pentru a realiza ace st lucru, imshow apeleaz ă funcția imread
(vezi exemplul 2) pentru a citi informa ția din fișierul grafic filename. De
exemplu:
imshow ('flowers.tif')
sau
I = imread ('flowers.tif');
imshow (I)
Controlul detaliilor la afi șarea imaginilor (zoom)
Se realizeaz ă o apropiere (zoom in) sau o dep ărtare (zoom out)
asupra planului imaginii. zoom on realizeaz ă o mărire interactiva a
figurii curente. Când m ărirea este permis ă, apăsând butonul mouse-ului
într-un punct din interi orul axelor, se schimb ă limitele axelor cu un
factor egal cu 2, pentru zoom in sau zoom out astfel:
• Pentru un mouse prev ăzut cu un singur buton, zoom in se
realizează apăsând butonul mouse-lui și zoom out se realizeaz ă
cu SHIFT-CLICK;
• Pentru un mouse care are dou ă sau trei butoane, zoom in se
realizează apăsând butonul din stânga, iar zoom out ap ăsând
butonul din dreapta. Apăsând butonul mouse-ului și plimbând mouse-ul între axe
când mărirea interactiv ă este permis ă, se va trasa o fereastr ă. Când
butonul mouse-ului este eliberat, se realizeaz ă zoom in pe regiunea
încadrată de fereastr ă. Apăsând de dou ă ori butonul mouse-ului axele vor
reveni la starea ini țială. De exemplu:
imshow('flowers.tif')
zoom on
De asemenea se poate sp ecifica un factor de m ărire (factor de zoom) ca
în exemplul urm ător:
Autor : Viorel Paleu 274
imshow('flowers.tif')
zoom (3)
Afișarea imaginilor multiple (subimage)
Aceasta func ție afișează mai multe imagini în cadrul aceleia și
figuri. Pentru a realiza acest lucru, subimage se folose ște alături de
subplot. Exemplu:
load trees
[X2, map2] = imread('forest.tif');
subplot(1,2,1), subimage(X,map)
subplot(1,2,2), subimage(X2,map2)
Accesul la datele de defin ire a unei imagini (getimage)
getimage ofer ă date dintr-o imagine. De exemplu:
I1=[1 0 0 1];
I2=[1 0 1 0 1
0 1 0 1 0 1 1 1 1 1 0 0 0 0 0
1 0 0 1 0];
imshow(I1), G1=getimage imshow(I2), G2=getimage
Afișarea barei de culori (colorbar)
Afișează o bara de culori ordonate (o scara color). Sintaxele
principale sunt:
colorbar
colorbar('vert') colorbar('oriz')
Exemplu:
Achizi ția și procesarea semnalelor 275
imshow('flowers.tif'), colorbar('vert')
imshow('flowers.tif'), colorbar('horiz')
Ajustarea m ărimii imaginii (truesize)
truesize(fig, [mrows mcols]) ajusteaz ă mărimea imaginii. fig este
o figură care conține o singur ă imagine, sau o singur ă imagine cu o bar ă
de culori. [mrows mcols] este un vector de dimensiune 1x 2 care
specifică (în pixeli) regiunea de pe ecran cerut ă, pe care imaginea
urmează să o ocupe.
Exemplu:
imshow ('tire.tif')
truesize ([128 423])
Texturi (warp)
Afișează o suprafa ța ca o hart ă de texturi. De exemplu dac ă se
dorește afișarea unei imagini pe o suprafa ța cilindric ă vom avea:
[x, y, z]=cylinder;
I=imread('blood1.tif');
warp(x, y, z, I)
15.6.2 Opera ții I/O cu fi șiere imagine. Opera ții geometrice
Se prezint ă funcțiile cu ajutorul c ărora se pot efectua opera ții I/O
și geometrice. Sunt avute în vedere, pentru opera țiile I/O, func țiile:
imfinfo, imread și imwrite. Opera țiile geometrice pot fi realizate cu
ajutorul func țiilor: imcrop, imresize, imrotate și interp2. Opera țiile I/O
sunt opera ții care permit citirea resp ectiv scrierea din fi șiere grafice sau
oferă informații despre imagini. Se vor descrie și funcțiile geometrice
Autor : Viorel Paleu 276
folosite la prelucrarea de imagini. Aceste func ții modific ă geometria
unei imagini prin redimensionarea, rotirea sau culegerea unor por țiuni
din imagini. Aceste func ții suportă toate tipurile de imagini.
Informații despre fi șiere grafice (imfinfo)
Sintaxa acestei func ții este urm ătoarea:
info=imfinfo(filename, fmt)
sau
info=imfinfo(filename)
info = imfinfo (filename, fmt) returneaz ă o structur ă ale cărei câmpuri
conțin informa ții despre o imagine dintr-un fi șier grafic. filename
specifică numele fi șierului grafic, iar fmt specific ă formatul fi șierului.
Dacă imfinfo nu poate g ăsi un fișier numit filename, el va caut ă un fișier
numit filename.fmt. Formele posibile pentru formatul fmt sunt următoarele: BMP, HDF, JPG (JPEG), PCX, TIF (TIFF), XWD. Exista
și posibilitatea ca anumite tipuri de fi șiere sa con țină mai mult de o
imagine. De exemplu:
info=imfinfo('flowers.tif');
Citirea de imagini din fi șiere grafice (imread)
Sintaxa principal ă a acestei func ții este:
I=imread(filename, fmt)
Specificațiile referitoare la numele fi șierului (filename), formatul
acestuia (fmt) dar și formele posibile ale formatului sunt acelea și ca la
funcția imfinfo. De exemplu:
I=imread('saturn.tif');
figure, imshow(I)
Scrierea unei imagini într-un fi șier grafic (imwrite)
Sintaxa acestei func ții este:
imwrite(I, filename, fmt)
Achizi ția și procesarea semnalelor 277
O imagine din I va fi scris ă în fișierul cu numele specificat
filename, care este și numele fi șierului de ie șire. Ca și funcțiile
anterioare, imwrite suport ă următoarele valori pentru fmt: BMP, HDF,
JPG (JPEG), PCX, TIF (TIFF), XWD.
În cazul în care sintaxa este urm ătoarea:
imwrite(I, map, filename, fmt)
atunci se va scrie imaginea indexat ă în I, iar harta sa de culori asociat ă se
va scrie în filename. Exemplu:
imwrite(I, 'saturn.tif');
figure, imshow(I)
Culegerea de por țiuni selectate din imagini (imcrop)
Culegerea de por țiuni selectate din imagini se realizeaz ă prin
alegerea unui dreptunghi de selec ție, cu ajutorul c ăruia sa se precizeze
zona de interes. Acest lucr u se poate face în doua moduri:
• prin alegerea dreptunghiulu i cu ajutorul mouse-ului;
• prin alegerea dreptunghiului sp ecificind coordonatele acestuia
prin vectorul:
[ Xmin Ymin width height]
Sintaxa pentru primul caz este urm ătoarea: A=imcrop(I)
De exemplu:
I=imread('ic.tif');
A=imcrop(I);
figure, imshow(A)
Într-o prim ă fază s e v a a f i șa imaginea ic.tif. Se va observa c ă
trecând cu mouse-ul peste imagine, cu rsorul mouse-ului se va transforma
într-o cruce. Cu ajutorul acesteia se va delimita por țiunea (dreptunghiul)
din imagine care se dore ște a fi selectat ă.
În cel de-al doilea caz sintaxa func ției este urm ătoarea:
A=imcrop(I, rect)
Autor : Viorel Paleu 278
De exemplu:
I=imread('ic.tif');
A=imcrop(I, [10 5 100 80]);
imshow(I)
figure, imshow(A)
În aceast ă situație, dreptunghiul cu ajutorul c ăruia s-a f ăcut
selecția a fost definit de c ătre utilizator prin inte rmediul vectorului [10 5
100 80].
Redimensionarea imaginilor (imresize)
Sintaxa func ției imresize este descris ă mai jos:
A=imresize(I, m, method)
Funcția imresize redimensioneaz ă o imagine de orice tip folosind
metoda de interpolare specificat ă. Method este un câmp ce poate con ține
una din urm ătoarele trei valori:
• nearest – valoare implicit ă folosește interpolarea celui mai
apropiat vecin;
• bilinear – folose ște interpolarea biliniar ă;
• bicubic – folose ște interpolarea bicubic ă.
A=imresize(I, m, method) returneaz ă o imagine care are de m ori
mărimea lui A. Dac ă m este subunitar, at unci A este mai mic ă decât I.
Dacă m este mai mare decât 1, atunci A este mai mare decât I. De
exemplu:
I=imread('ic.tif');
A=imresize(I, 0.5);
figure, imshow(X)
Rotirea imaginilor (imrotate)
Cu ajutorul acestei func ții se realizeaz ă rotiri de imagini. Sintaxa
funcției este:
Achizi ția și procesarea semnalelor 279
A=imrotate(I, angle, method)
Imaginea I se rote ște după unghiul specificat în grade în sensul
acelor de ceasornic, folosind metoda de interpolare specificat ă. Metodele
de interpolare sunt acelea și ca la func ția imresize. Imaginea de ie șire A
este în general mai mare decât imaginea ini țiala I, pentru a include
întreaga imagine rotit ă. De exemplu:
I=imread('ic.tif'); A=imrotate(I, 30); imshow(I) figure, imshow(A)
Exemple de apeluri:
I=imread('ic.tif'); A=imresize(I, [20 20]); imshow(I), figure, imshow(A) I=imread('ic.tif'); A=imrotate(I, -7, 'crop'); imshow(I), figure, imshow(A)
15.6.3 Valorile pixelului și statistici
Se vor prezenta câteva func ții care dau informa ții despre
imaginile numerice. Aceste func ții sunt:
• impixel – determin ă valorile datelor pentru pixelii selecta ți;
• improfile – determin ă valorile datelor de-a lungul unui traseu
precizat din imagine;
• imcontour – traseaz ă contururile regiunilor din imagini;
• imhist – traseaz ă histogramele imaginilor numerice;
• mean2, std2, corr2 – calculeaz ă câteva statistici standard ale
imaginilor numerice.
Autor : Viorel Paleu 280
Accesul la datele unui pixel pr ecizat din imagine (impixel)
Funcția întoarce valorile culorilor ro șu, verde, albastru (RGB) ale
pixelilor specifica ți în imagine. În sintaxele de mai jos, func ția impixel
afișează imaginea de intrare și așteaptă specificarea pixelilor cu mouse-
ul:
P=impixel(I) P=impixel(X,map) P=impixel(RGB)
unde: I este imaginea cu care se lucreaz ă, X este imaginea indexat ă, map
este paleta de culori, RGB = tripletul RGB (adic ă culorile ro șu, verde,
albastru). Dac ă se omit argumentele de intrare, impixel opereaz ă asupra
imaginii în axele curente.
Pentru selectarea unui pixel folosi ți click-ul normal. Pentru a
șterge pixelul selectat anterior ap ăsați BACKSPACE sau DELETE.
Pentru a ad ăuga un pixel final și a termina selec ția apăsați shift-click,
right-click sau dublu-click. Pentru a termina selec ția fără adăugarea unui
pixel apăsați ENTER. Când s-a terminat selectarea pixelilor, impixel
întoarce o matrice de dimensiune m x 3 a valorilor RGB în argumentul
de ieșire indicat. Dac ă nu indica ți un argument de ie șire, impixel întoarce
matricea în ANS (r ăspuns).
Pentru a specifica neinteractiv pixelii se folosesc urm ătoarele sintaxe:
P=impixel(I, c, r) P=impixel(X, map, c, r) P=impixel(RGB, c, r)
unde: c și r sunt vectori de lungime egal ă specificând coordonatele
pixelilor ale c
ăror valori RGB sunt întoarse în P.
Pentru trei argumente, impixel întoarce coordonatele pixelilor
selectați:
[c, r, P]=impixel(…)
În locul punctelor dintre paranteze se scrie imaginea cu care se lucreaz ă.
Achizi ția și procesarea semnalelor 281
Pentru a specifica un si stem de coordonate spa țial neimplicit,
pentru imaginea de intrare se folosesc sintaxele:
P=impixel(x,y,I,xi,yi) P=impixel(x,y,X, map,xi,yi) P=impixel(x,y,RGB,xi,yi)
unde: x și y sunt vectorii cu dou ă elemente specificând imaginea Xdata
și Ydata. xi și yi sunt vectori de lungime egal ă specificând coordonatele
spațiale ale pixelilor ale c ăror valori RGB sunt întoarse în P.
Pentru trei argumente de ie șire, impixel întoarce coordonatele
pixelilor selecta ți.
[x
BiB, y BiB, P]=impixel(x, y…)
Exemple:
a) imshow canoe.tif impixels b) I=imread('flowers.tif'); imshow(I); c=[12 146 410]; % vector care specific ă
coordonatele pixelilor.
r=[104 156 129]; % vector care specific ă
coordonatele pixelilor.
P=impixel(I, r, c)
Se observa ca impixel întoarce o matrice de dimensiune 3 x 3 a
valorilor RGB în argumentul de ie șire indicat (P) (pen tru programul de
la b) ).
Accesul la datele unui grup de pixeli (improfile)
Caracteristicile acestei func ții sunt enumerate în continuare.
Funcția improfile calculeaz ă valorile nivelelor de gri de-a lungul unei
linii sau unei linii frânte dintr-o imagine. improfile selecteaz ă puncte
egal distan țate de-a lungul unei li nii pe care o specifica ți și apoi se
Autor : Viorel Paleu 282
folosește interpolarea pentru a g ăsi valoarea nivelu lui de gri pentru
fiecare punct. improfile lucreaz ă cu imagini de tip intensitate, cu nivele
gri, și imagini RGB. Dac ă apelati improfile cu una din urm ătoarele
sintaxe, aceasta opereaz ă interactiv asupra imaginii în axele curente
(coordonatele curente):
c=improfile c=improfile(n)
unde: n specific ă numărul de puncte pentru care se calculeaz ă valoarea
nivelelor de gri. Dac ă nu dați acest argument, improfile alege o valoare
pentru n aproximativ egal ă cu numărul de pixeli pe care îi traverseaz ă
traseul. Linia sau traseul se poate specifica folosind mouse-ul, apasând
click pe punctele din imagine. Pentru a șterge punctul sele ctat anterior
apăsați BACKSPACE sau DELETE. Pentru a ad ăuga un punct final și a
termina selec ția apăsați shift-click, right-click, dublu-click. Pentru a
termina selec ția fără a adăuga un punct ap ăsați ENTER. Când a ți
terminat de selectat punctele, improfile întoarce valorile datelor interpolate în c. c sau este un v ector de dimensiune n x 1, dac ă intrarea
este o imagine de tip intensitate de gam ă gri, sau o matrice n x 1 x 3 dac ă
intarea este o imagine RGB. Dac ă omiteți argumentul de ie șire,
improfile afi șează un grafic al nivelelor de gri calculate. Dac ă traseul
specificat const ă dintr-un singur segment de linie, improfile creaz ă un
grafic bidimensional al valorilor nivelelor de gri fa ță de distan ța de-a
lungul segmentului de linie. Dac ă traseul con ține două sau mai multe
segmente de linie, improfile creeaz ă un grafic tridimensional al valorilor
nivelelor de gri fa ță de coordonatele lor x și y. Pentru specificarea
neinteractiv ă a traseului se folosesc urm ătoarele sintaxe:
c=improfile( I, x, y)
c=improfile (I, x, y,n])
xi, yi sunt vectori de lungime egal ă specificând coordonate spa țiale ale
capetelor segmentelor de linie.
Achizi ția și procesarea semnalelor 283
Pentru a întoarce informa ții suplimentare se urm ătoarele sintaxe:
[ c BxB, c ByB, c]=improfile(…)
[ c BxB, c ByB, c, x BiB, y BiB]=improfile(…)
c BxB, c ByB sunt vectori de lungime n, con ținând coordonatele punctelor la care
valorile nivelelor de gri sunt calculate.
Pentru a specifica un sistem de coordonate neimplicit pentru
imaginea de intrare, se folosesc urm ătoarele sintaxe:
[…]=improfile(x, y, I, x BiB, y BiB)
[…]=improfile(x, y, I, x BiB, y BiB, n)
x și y sunt vectori bidimensionali specificând imaginea Xdata și Ydata.
[…]=improfile(…, method) folose ște metoda de interpolare specificat ă.
method este un șir ce poate avea una din urm ătoarele valori:
• nearest – folose ște interpolarea vecinului cel mai apropiat.
• bilinear – folose ște interpolarea biliniar ă.
• bicubic – folose ște interpolarea bicubic ă.
Dacă omiteți argumentul method, improfile folose ște metoda
implicită nearest. Exemplu:
I=imread('tire.tif'); imshow('tire.tif'); x=[35 338 346 103]; % vector care specific ă
coordonatele spa țiale ale % capetelor segmentelor
de linie. y=[253 250 17 148]; % vector care specific ă
coordonatele spa țiale ale % capetelor segmentelor
de linie. improfile(I, x, y), % afi șează valorile nivelelor de
gri de-a lungul grid on % traseului.
Marcarea contururilor din imagini (imcontour)
Autor : Viorel Paleu 284
imcontour(I, n) deseneaz ă contururile dintr-o imagine de tip
intensitate I, setând automat axele; n este num ărul de nivele ale
conturului egal distan țate din grafic. Dac ă se omite argumentul, num ărul
de nivele și valorile nivelelor sunt alese automat. imcontour(I, v)
desenează contururile dintr-o imagine I, cu linii de contur la valorile
datelor specificate în vectorul v. Num ărul de nivele de contur este egal
cu length(v), adic ă lungimea vectorului v. imcontour(x, y, …) folose ște
vectorii x și y pentru a specifica limitele axelor x și y. imcontour(…,
LineSpec) deseneaz ă contururile folosind tipul de linie și culoarea
specificat ă de LineSpec.
[C, h]=imcontour(…) întoarce matricea C a conturului și un
vector h al prinderilo r de obiectele din figur ă. Figura este format ă acum
din regiuni, iar liniile sunt c ontururile regiunilor. Exemplu:
I=imread('ic.tif'); imshow(I) imcontour(I, 3)
Calculul și afișarea histogramelor (imhist)
imhist(I, n) afi șează o histograma cu n valori pentru imaginea de
tip intensitate I, deasupra unei bare de nuan țe de gri de lungime n. Dac ă
omiteți argumentul, imhist folose ște valoarea implicit ă n = 256 dac ă I
este o imagine în nuan țe de gri, sau n = 2 dac ă I este o imagine binar ă
(două nivele de gri).
imhist(X, map) afi șează o histogram ă pentru imaginea indexat ă
X. Aceast ă histogram ă arată distribuția valorilor pixe lilor deasupra unei
bare de culori a palete i de culori. Histograma are câte o valoare pentru
fiecare intrare a pale tei de culori.
[counts, x]=imhist(…) întoarce va lorile histogramei în vectorul
counts și localizarea valorii în X astf el încât stem(x, counts) arat ă
histograma. Pentru imaginile inde xate, imhist întoarce valorile
Achizi ția și procesarea semnalelor 285
histogramei pentru fiecare intrare a paletei de culori; lungimea lui counts
este aceea și cu lungimea paletei de culori.
Exemplu:
I=imread('tire.tif'); imshow(I) imhist(I)
Calculul valorilor medi i din imagini (mean2)
Această funcție are urm ătoarea sintax ă: b=mean2(A) %
calculează media valorilor din matricea A.
Trebuie men ționat faptul ca b este s calar de clasa double. De
exemplu:
I=[1 1 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0]; imshow(I) b=mean2(I)
Autor : Viorel Paleu 286
15.6.4 Analiza și amplificarea imaginii
Se prezint ă funcțiile care trateaz ă analiza și amplificarea
imaginii:
• pentru analiza imaginii: edge, qtdecomp, qtgetblk, qtsetblk;
• pentru amplificarea imaginii: imnoise, histeq, imadjust, ordfilt2,
medfilt2, wiener2. Tehnicile de analiz ă ale imaginii returneaz ă informații despre
structura unei imagini. Tehnicile de amplificare a imaginii sunt utilizate
pentru îmbun ătățirea calității unei imagini.
Detecția granițelor regiunilor (edge)
Putem folosi func ția edge pentru detectarea grani țelor regiunilor
din imagine care corespund limitelor obiectului. Pentru detectarea
granițelor, aceast ă funcție caută zone în imagine unde intensitatea se
schimbă rapid, utilizând unul din cele dou ă criterii:
• Locuri unde prima derivat ă a intensit ății are amplitudinea mai
mare decât un anume prag;
• Locuri unde cea de-a doua derivat ă a intensit ății are o trecere prin
0.
edge oferă un num ăr de operatori de derivare, fiecare dintre ei
implementând una dintre defini țiile de mai sus. Pentru unii operatori,
putem specifica dac ă operația trebuie s ă fie sensibil ă la marginile
orizontale sau verticale, sau la ambele margini. edge returneaz ă o
imagine binar ă ce conține 1 unde marginile sunt detectate și 0 în restul
zonelor. Exemplul de mai jos folose ște metoda Sobel pentru a detecta
granițele în imaginea celulelor de sânge. Implicit opera ția este sensibil ă
și la marginile orizontale și la marginile verticale.
A1 = imread ( 'blood1.tif' ); A2 = edge ( A1 , 'Sobel ' );
Achizi ția și procesarea semnalelor 287
imshow ( A1 )
figure, imshow ( A2 )
Descompunerea imaginilor (qtd ecomp, qtgetblk, qsetblk)
Putem executa o descompunere folosind func ția qtdecomp.
Această funcție lucreaz ă divizând o imagine p ătrată în patru blocuri
pătrate de aceea și dimensiune și apoi testând fiecare bloc pentru a vedea
dacă satisfac vreun criteriu de omogenitate. Dac ă blocul satisface
criteriul, nu mai poa te fi divizat. Dac ă nu satisface criteriul, este
subdivizat din nou în 4 blocuri, și criteriul test este aplicat acestor
blocuri. Acest pr oces se repet ă până când fiecare bloc satisface un
criteriu. Rezultatul ar putea consta în blocuri de m ărime diferite.
Exemplu:
I=[ 1 1 1 1 2 3 6 6 1 1 2 1 4 5 6 8 1 1 1 1 10 15 7 7 1 1 1 1 20 25 7 7 20 22 20 22 1 2 3 4 20 22 22 20 5 6 7 8 20 22 20 20 9 10 11 12 22 22 20 20 13 14 15 16]; Q=qtdecomp(I, 5); full(Q);
Sintaxa principal ă a funcției
qtgetblk este următoarea:
[mat, r, c]=qtgetblk(I, S, dim)
qtgetblk întoarce în mat o matrice care con ține blocurile dim x
dim din decompozi ția lui I. S este o matrice de tip sparse returnat ă de
qtdecomp. mat este o matrice de di mensiune dim x dim x k unde k este
numărul blocurilor de di mensiune specificat ă. r și c sunt vectori care
Autor : Viorel Paleu 288
conțin coordonatele liniei și coloanei col țului din stânga sus al blocului.
De exemplu:
I=[ 1 1 1 1 2 3 6 6 1 1 2 1 4 5 6 8 1 1 1 1 10 15 7 7 1 1 1 1 20 25 7 7 20 22 20 22 1 2 3 4 20 22 22 20 5 6 7 8 20 22 20 20 9 10 11 12 22 22 20 20 13 14 15 16]; Q=qtdecomp(I, 5); [mat, r, c]=qtgetblk(I, Q, 4);
Sintaxa principal ă a funcției qsetblk este urm ătoarea:
J=qtgetblk(I, S, dim, mat)
qsetblk înlocuie ște fiecare bloc din decompozi ția lui I cu
blocurile dim x dim corespunz ătoare în mat. S este o matrice sparse
returnată de qtdecomp. mat este o matri ce de dimensiune dim x dim x k,
unde k este num ărul blocurilor din decompozi ție.
De exemplu: I=[ 1 1 1 1 2 3 6 6
1 1 2 1 4 5 6 8 1 1 1 1 10 15 7 7 1 1 1 1 20 25 7 7 20 22 20 22 1 2 3 4 20 22 22 20 5 6 7 8 20 22 20 20 9 10 11 12 22 22 20 20 13 14 15 16 ]; Q=qtdecomp(I, 5); mat=cat(3, zeros(4), ones(4)); K=qtgetblk(I, Q, 4, mat);
Redispunerea nivelelor de gri (imadjust, histeq)
Achizi ția și procesarea semnalelor 289
Ajustarea intensit ății este o tehnic ă pentru dispune rea valorilor
nivelelor de gri ale unei imagini într-un nou interval. De exemplu, dac ă
pentru o imagine se observ ă că imaginea are un contrast sc ăzut, atunci
prin redispunerea valorile numerice astfel încât s ă se umple tot intervalul
de intensitate [0, 255] se poate m ări contrastul imaginii. Se poate face
acest tip de ajustare cu func ția imadjust. De exemplu, codul urm ător
execută ajustarea descris ă mai sus:
A = imread ( 'rice.tif' ); B = imadjust ( A , [ 0.15 0.9 ] , [ 0 1 ] );
A se observa c ă nivelele de gri sunt specificate ca valori între 0 și
1, chiar dac ă A este de clasa uint8. Dac ă A este de clasa uint8, valorile
furnizate se înmul țesc cu 255 pentru a determina valorile adecvate
pentru a fi utilizate.
Sintaxa general ă este următoarea:
J = imadjust ( I , [ low high ] , [ bottom top ] );
unde low și high sunt extremele nivelelor de gri ale imaginii de intrare
care sunt dispuse între bottom și top în imaginea de ie șire.
Procesul de ajustare a valorilor de intensitate poate fi realizat
automat de func ția histeq. histeq execut ă egalizarea histogramei, care
presupune transformarea nivelelor de gr i astfel încât hist ograma imaginii
de ieșire să se potriveasc ă aproximativ histogramei specificate.
Exemplul urm ător ilustreaz ă utilizarea lui histeq pentru a ajusta o
imagine de tip intens itate. Imaginea ini țială are contrast sc ăzut, cu cele
mai multe valori în mijlocul intervalului de intensitate. histeq produce o imagine de ie șire cu valori distribuite uniform în interval.
I = imread ( 'pout.tif' ); J = histeq ( I ); imshow ( I ) figure, imshow ( J )
Autor : Viorel Paleu 290
Adăugarea de zgomot în imagini (imnoise)
Funcția imnoise o putem utiliza pentru ad ăugarea diferitor tipuri
de zgomote unei imagini. De exemplu:
I = imread ( 'eight.tif' ); J = imnoise ( I , 'salt & pepper' , 0.02 ); imshow ( I ) figure, imshow ( J )
Funcții pentru eliminarea zgomotelor dintr-o imagine (medfilt2,
wiener2)
Pachetul de programe ofer ă un num ăr de metode diferite de
eliminare sau de reducere a zgom otelor într-o imagine. Func ția medfilt2
implementeaz ă filtrarea median ă. Exemplul de mai jos compar ă
utilizarea unui filtru median și medfilt2 pentru eliminarea zgomotului
parazit. Acest tip este alc ătuit din pixeli arbitrari seta ți pe negru și alb
(extremitățile intervalului de date). În ambele cazuri dimensiunea
vecinătății folosite pentru filtrare este 3 x 3. În primul rând, se cite ște
imaginea și se adaug ă perturba ția (pentru acest lucru se va introduce
exemplul de la functia imnoise). Apoi se filtreaz ă imaginea perturbat ă și
se afișează ezultatele. Se observ ă că medfilt2 elimin ă mai bine
perturbația fără a estompa prea mult imaginile.
K = filter2 ( fspecial ( 'average' , 3 ) , J ) / 255; L = medfilt2 ( J , [ 3 3 ] ); imshow ( K ) figure, imshow ( L )
Funcția wiener2 aplica filtrul Wiener, un tip de filtru liniar
adaptiv, unei imagini, determinând varia țiile locale ale imaginii. Filtrul
adaptiv este mult mai selectiv decât un filtru liniar, p ăstrând muchiile
sau alte p ărți cu o frecventa mai înalta ale unei imagini. Ca dezavantaj,
Achizi ția și procesarea semnalelor 291
wiener2 necesit ă un timp de calcul mai mare decât în cazul unei filtr ări
liniare.
Funcția wiener2 lucreaz ă cel mai bine atunci când zgomotul este
un zgomot aditiv de putere constant ă, ca în cazul zgomotului Gaussian.
Exemplul urm ător aplica func ția wiener2 unei imagini c ăreia i s-a aplicat
un zgomot Gaussian:
I = imread ('saturn.tif' ); J = imnoise ( I , 'gaussian' , 0 , 0.005 ); K = wiener2 ( J , [ 5 5 ] ); imshow ( J ) figure, imshow ( K )
Alt exemplu se ob ține înlocuind în exemplul de la func ția
imadjust cu urm ătoarea func ție:
J = imadjust ( I, [ 0 1 ] , [ 0.3 0.8 ] );
15.6.5 Filtrarea liniar ă și proiectarea filtrelor
Pachetul de programe ofer ă un num ăr de func ții pentru
proiectarea și implementarea filtrelor liniare bidimensionale. Aceast
paragraf descrie aceste func ții, împreun ă cu câteva exemple. Filtrarea
este o tehnic ă pentru modificarea și amplificarea imaginii. De exemplu
putem filtra o imagine pentru a sublinia anumite tr ăsături sau pentru a
îndepărta anumite tr ăsături ale acesteia. Fi ltrarea este o opera ție pe
vecinătăți în care valoarea oric ărui pixel din imaginea de ie șire este
determinat prin aplicarea unui algor itm valorilor pixelilor din vecin ătatea
pixelilor corespunz ători de intrare. Vecin ătatea unui pixel reprezint ă un
grup de pixeli defini ți prin așezarea lor spa țială raportată la acel pixel.
Filtrarea liniar ă este o filtrare în care valoarea unui pixel de ie șire este o
combinație liniară a valorilor pixelilor din vecin ătatea pixelului de
Autor : Viorel Paleu 292
intrare. De exemplu, un algoritm care calculeaz ă o medie ponderat ă a
pixelilor învecina ți reprezint ă un tip de opera ție de filtrare liniar ă. In
MATLAB, filtrarea liniar ă a imaginilor este implementat ă prin
convoluție bidimensional ă. În convolu ție, valoarea unui pixel de ie șire
este determinat ă prin multiplicarea elementelor a dou ă matrici și
adunarea rezultatelor. Una di ntre aceste matrici reprezint ă însăși
imaginea, în timp ce cealalt ă matrice este filtrul. De exemplu, un filtru
poate fi:
K = [ 1 2 1; 0 2 0 ; 3 1 3 ]
Această reprezentare a filtrului este cunoscut ă ca nucleu de
convoluție. Func ția conv2 implementeaz ă filtrarea imaginii prin
aplicarea nucleului de convolu ție la matricea unei imagini. conv2
acceptă ca argumente o imagine de intrare și un filtru, și returneaz ă o
imagine de iesire. De exemplu, în apelul urmator, K este nucleul de
convoluție, A este imaginea de intrare ( de exemplu A=magic(5)) iar B
este imaginea de ie șire:
B = conv2 ( A , K );
Similar cu conv2 func ționează și funcția convn. În afar ă de
funcția conv2, MATLAB-ul ofer ă funcția filter2 pentru filtrarea liniar ă
bidimensional ă. filter2 pote produce acelea și rezultate ca și conv2 și
diferă în primul rând prin faptul c ă acceptă o mască, ca argument de
intrare, și nu un nucleu de convolutie (filter2 opereaz ă prin formarea
nucleului de convolu ție din masc ă, printr-o rota ție cu 180 de grade,
apelând apoi conv2). Opera ția pe care filter2 o execut ă este numit ă
corelație.
Dacă K este un nucleu de convolu ție, H este masca
corespunz ătoare, iar A este o matrice imagine, apelurile urm ătoare au
rezultate identice:
B = conv2 ( A , K , 'same' );
și:
Achizi ția și procesarea semnalelor 293
B = filter2 ( H , A , 'same' );
Functiile din pachet care produc filtre (fspecial, fsample etc.)
returnează toate măștile. Putem folosi aceste filtre direct cu filter2 sau le
putem roti cu 180 grade și apela cu conv2. De exemplu:
A=magic(5); h=fspecial('prewitt'); B=filter2(h, A)
Funcția fspecial este o func ție de creare de filtre predefinite,
folosind una din valorile urm ătoare: gaussian, sobel, prewitt, log,
average, unsharp. Exemplul urmator folose ște valoarea predefinit ă sobel:
I=imread('saturn.tif'); h=fspecial('sobel'); I1=filter2(h, I)/255; imshow(I) figure, imshow(I1)
Filtrul Sobel de dimensiune 3 x 3, prezentat aici ca exemplu, este
eficient la detectarea muchiilor orizon tale ale obiectelor dintr-o imagine.
Forma sa este:
În continuare se vor prezenta câtev ă funcții pentru proiectarea de
filtre. Acestea lucreaz ă prin crearea unui filtru bidimensional dintr-un
filtru unidimensional trece band ă și prin utilizarea func țiilor din pachetul
de programe Preluc rarea Semnalelor.
Funcția ftrans2 implementeaz ă metoda de transformare în
frecvență. Matricea dat ă de transformarea func ției produce filtre cu
simetrie aproape circular ă, trece band ă între 0,1 și 0,6 (frecven ță
Autor : Viorel Paleu 294
normalizat ă, unde 1 corespunde la jum ătate din frecven ța de eșantionare,
sau la π radiani).
Prin definirea propriei matri ce de transformare, putem ob ține
simetrii diferite. Metoda de transformare în frecven ță dă, de regul ă,
rezultate foarte bune deoarece este mai u șor de proiectat un filtru
unidimensional cu caracteristici sp eciale decât un filtru bidimensional
corespunz ător.
În următorul exemplu se proiecteaz ă un filtru FIR (Finite
Impulse Response) unidimensional cu ondula ție optimă, folosit la
crearea unui filtru bidimensional cu caracteristici asem ănătoare.
b = remez ( 10 , [ 0 0 , 4 0 , 6 1 ] , [ 1 1 0 0 ] ); h = ftrans2 ( b ); [ H , w ] = freqz ( b , 1 , 64 , 'whole' ); colormap ( jet ( 64 ) ) plot ( w / pi – 1 , fftshift ( abs ( H ) ) ) figure, freqz2 ( h , [ 32 32 ] )
Funcția fsamp2 sus ține implementarea și analiza filtrelor pentru
filtre bidimensionale FIR. fsamp2 returneaz ă un filtru h cu un raspuns în
frecvență care trece prin punctele din matricea de intrare G.
Exemplul de mai jos creaz ă un filtru de dimensiune 11 x 11
folosind fsamp2 și schițează răspunsul în frecven ță din filtrul rezultat
(funcția freqz2 din aces t exemplu calculeaz ă răspunsul în frecven ță
bidimensional al filtrului):
G = zeros ( 11 , 11 ); G ( 4 : 8 , 4 : 8 ) = 1; [ f1 , f2 ] = freqspace ( 11 , 'meshgrid' ); mesh (f1, f2, G) , axis ( [ -1 1 –1 1 0 1.2 ] ), colormap ( jet ( 64 ) ) h = fsamp2 ( G ); figure, freqz2 ( h , [ 32 32 ] ) , axis ( [ -1 1 –1 1 0
1.2 ] )
Achizi ția și procesarea semnalelor 295
Pachetul de programe ofer ă două funcții pentru proiectarea de
filtre bazat ă pe metoda ferestrei: fwind1 și fwind2. fwind1 proiecteaz ă
un filtru bidimensional prin utili zarea unei ferestre bidimensionale
create dintr-una sau dou ă ferestre unidimensiona le specificate. fwind2
proiecteaz ă un filtru bidimensional prin utilizarea direct ă a unei ferestre
bidimensionale specificate.
Exemplul de mai jos utilizeaz ă fwind1 pentru crearea unui filtru
de 11×11 dintr-un r ăspuns în frecven șă dorit Hd. Aici, func ția hamming
din pachetul de programe Prelucrarea Semnalelor este utilizat ă pentru a
crea o fereastr ă unidimensional ă, pe care fwind1 o extinde apoi la o
fereastră bidimensional ă.
G = zeros (11 , 11); G( 4 : 8, 4 : 8) = 1;
[f1 , f2] = freqspace (11 , 'meshgrid'); mesh(f1, f2, G) , axis ([ -1 1 –1 1 0 1.2 ]) ,
colormap ( jet ( 64 )) h = fwind1(G , hamming ( 11 )); figure, freqz2 (h, [ 32 32 ]) , axis ([ -1 1 –1 1 0 1.2 ])
Funcțiile pentru proiectarea de filtre fsamp2, fwind1 și fwind2
crează filtre bazate pe matricea m ărimii răspunsului în frecven ță dorit.
Putem crea o matrice a r ăspunsului în frecven ță dorit folosind functia
freqspace. De exemplu:
[ f1 , f2 ] = freqspace ( 25 , 'meshgrid' ); Hd = zeros ( 25 , 25 ); d = sqrt ( f1. ^ 2 + f2. ^ 2 )
< 0.5; Hd ( d ) = 1; mesh ( f1 , f2 , Hd )
Funcția freqz2 calculeaz ă răspunsul în frecven ță pentru un filtru
bidimensional. F ără argumente de ie șire, freqz2 creeaz ă un grafic al
Autor : Viorel Paleu 296
răspunsului în frecventa. De exemplu, sa consider ăm următorul filtru
FIR:
H = [ 0.1667 0.6667 0.1667 0.6667 -3.3333 0.6667 0.1667 0.6667 0.1667 ];
Următoarea comand ă calculeaz ă și afișează răspunsul în
frecvență pe 64×64 puncte în H:
freqz2 ( H )
În final, se poate utiliza func ția fspecial folosind valorile:
gaussian, sobel, prewitt, log, av erage, unsharp. Cu ajutorul func țiilor
fwind1 și fwind2, se vor crea filtre de diferite dimensiuni (de exemplu
16 x 16), apoi se va vizualiza r ăspunsul în frecvent ă folosind func ția
freqz2;
15.6.6 Transform ări
Printre tipurile de transform ări care sunt necesa re în prelucrarea
imaginilor sunt și: transformarea Fourier, transformarea cosinus discret ă,
transformarea Radon. Lucrarea de fa ță definește fiecare dintre aceste
transform ări precum și funcțiile specifice acestora. Acestea sunt: dct2,
dctmtx, fft2, fftn, fftshift, idct2, ifft2, ifftn, radon. Reprezentarea
matematic ă obișnuită a unei imagini este o func ție cu dou ă variabile
spațiale de forma: f(x,y). Valoarea func ției la o anumit ă locație (x,y),
reprezintă intensitatea imaginii în acel punct. Termenul transformare se
referă la o reprezentare matematic ă a unei imagini. De exemplu,
transformarea Fourier este o re prezentare a unei imagini, dat ă ca sumă a
unor exponen țiale complexe de amplitudini, frecven țe și faze variabile.
Această reprezentare este folosi toare într-o gama larg ă de varia ții,
incluzând analiza imaginii, restaurarea și filtrarea. Transform ările
Achizi ția și procesarea semnalelor 297
Discrete Cosinus (DCT) reprezint ă de asemenea o imagine ca fiind suma
sinusoidelor unor frecven țe și magnitudini vari abile. DCT este
folositoare pentru compresia imaginii și reprezint ă baza unui foarte
utilizat algoritm de compresie (JPEG) al imaginii. Transformarea Radon reprezintă o imagine ca o colec ție de proiec ții în diferite direc ții.
Transformarea Fourier
Transformarea Fourier are un rol important într-o gam ă largă de
aplicații de prelucrare de imagini, incluzând amplificarea, analiza,
restaurarea și compresia. Func țiile fft2 și fftn implementeaz ă algoritmul
Transform ării Fourier Rapide pentru ca lculul DFT unidimensionale,
DFT bidimensionale și respectiv DFT Ndimensionale. Func țiile ifft2 și
ifftn calculeaz ă inversa DFT.
Fie următorul exemplu:
I=imread('tire.tif'); A=fft2(I); imshow(I) figure, imshow(log(A), [ ])
Rezoluția poate fi m ărită suplimentând I cu 0-uri când îi
calculăm DFT. Ad ăugarea 0-urilor și calculele DFT pot fi executate într-
un singur pas cu urm ătoarea comand ă:
A=fft2(I, 256, 256);
Se introduc urm ătoarele comenzi:
imshow (log (A), [ -1 5 ]); colormap (jet);
colorbar
În mod asem ănător se procedeaz ă cu funcția fftn.
Funcția fftshift pozi ționează componenta DC a transform ării
Fourier rapide în centrul spectrului. Sintaxa func ției este:
I=fftsfift (J)
Autor : Viorel Paleu 298
Pentru vectori, fftshift (A) schimb ă jumătatea stâng ă și dreaptă a
lui A. Pentru matrice, fftshift(A) schimb ă cadranele 1 și 3 ale lui A cu
cadranele 2 și 4. Pentru tablouri de dimensiuni mai mari, fftshift (A)
schimbă jumătăți de spații ale lui A dealungul fiec ărei dimensiuni. De
exemplu:
I=imread('tire.tif'); A=fftn(I); B=fftshift(A); imshow(I) figure, imshow(B)
O proprietate foarte important ă a transform ării Fourier este faptul
ca multiplicarea a doua transform ări Fourier corespunde convolu ției
funcțiilor spa țiale asociate. Aceast ă proprietate, împreun ă cu
Transformarea Fourier Rapid ă formează baza pentru un algoritm rapid
de convolu ție.
Se presupunem ca A este o ma trice de dimensiune M x N și B
este o matrice P x Q. Convolu ția lui A și B poate fi calculata utilizând
următoarele etape:
•
Adăugarea 0-urilor pentru A și B pentru a avea dimensiunea
(M+P-1)x(N+Q-1) (adesea, A și B sunt suplimentate cu 0-uri
pentru a avea o dime nsiune care reprezint ă puterea lui 2 deoarece
funcția fft2 este mai rapid ă la aceste dimensiuni).
• Calculul DFT bidime nsionale a lui A și B utilizând fft2.
• Multiplicarea celor doua DFT.
• Utilizând ifft2 calculam DFT bidimensionala inversa a
rezultatului din etapa anterioar ă.
De exemplu:
A=magic (3); B=ones (3);
Achizi ția și procesarea semnalelor 299
A(8, 8)=0; ad ăugare de 0-uri lui A pentru a
avea 8×8; B(8, 8)=0; ad ăugare de 0-uri lui B pentru a
avea 8×8; C=ifft2 (fft2 (A) . * fft2 (B)); C=C ( 1 : 5 , 1 : 5 ); extragere por țiune nenul ă;
C=real (C); elimin ă partea imaginar ă.
Transformarea cosinus discreta (DCT),
Funcțiile care se utilizeaz ă sunt: dct2, idct2, dctmtx. Func ția dct2
calculează DCT bidimensional ă a unei imagini. DCT-ul are proprietatea
ca, pentru o imagine, cele mai multe din informa țiile vizuale ale imaginii
sunt date de câ țiva coeficien ți DCT. Din acest motiv, DCT este adesea
utilizată în aplica țiile de compresie a imaginilor. De exemplu, DCT st ă
la baza algoritmului interna țional standard pentru compresia imaginilor,
cunoscut sub numele de JPEG. Codul exemplificat mai jos calculeaz ă
DCT bidimensional ă pentru blocuri 8×8 în imaginea de intrare; se
păstrează numai 10 dintre cei 64 de coeficien ți DCT din fiecare bloc,
apoi reconstruie ște imaginea utilizând i nversa DCT bidimensional ă a
fiecărui bloc. Este utilizat ă metoda de calcul a matricei de transformare.
I = imread ('cameraman .tif'); I = double ( I ) / 255; T = dctmtx ( 8 ); B = blkproc ( I , [ 8 8 ] , 'P1 * x * P2' , T , T '); mask= [ 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
Autor : Viorel Paleu 300
B2 = blkproc ( B , [ 8 8 ] , 'P1 . * X' , mask );
I2 = blkproc ( B2 , [ 8 8 ] , 'P1 * X * P2' , T , T' );
imshow ( I ), figure, imshow ( I2 )
Comenzile de mai jos calculeaz ă transformata cosinusoidal ă
discretă pentru o imagine. Not ăm că majoritatea energiei se afl ă în colțul
stânga sus.
RGB = imread ('autumn.tif'); I = rgb2gray (RGB); J = dct2 (I); imshow (log (abs (J) , [ ] ), colormap (jet (64)),
colorbar
Acum set ăm pe 0 valorile din matricea DCT, care sunt mai mici
ca amplitudinea 10 și apoi reconstituim imaginea folosind func ția
inversă idct2:
J (abs(J)<10) = 0; K = idct2 ( J ) / 255; imshow ( K )
Transformarea Radon
Funcția radon calculeaz ă proiecțiile unei matrice imagine în
direcții specificate. Fie urm ătorul exemplu de determinare a muchiilor
obiectelor dintr-o figur ă (s-a folosit func ția edge):
I = imread('ic.tif' ) A = edge ( I ); imshow (I); figure, imshow (A)
Determinarea transform ării Radon a imaginii ob ținute anterior:
theta = 0 : 179;
[ R , xp ] = radon ( A , theta );
Achizi ția și procesarea semnalelor 301
imagesc ( theta , xp , R ); colormap ( hot );
xlabel (' \ theta (grade) ' ); ylabel ('x', ' ' ); colorbar
15.6.7 Imagini color și conversii între imagini colorate
În acest paragraf sunt descrise func țiile sistemului de programe
care sunt utile în lucrul cu imagini în culori. Func țiile utilizate pentru
conversii între diferite tipuri de imag ini colorate sunt: hsv2rgb, rgb2hsv,
ntsc2rgb, rgb2ntsc. Func țiile utilizate pentru diferite opera ții pe imagini
color sunt: brighten, cmpermute, cmunique, colormap, imapprox, rgbplot. Pachetul de programe reprezint ă culorile ca valori RGB, fie
direct (într-o imagine RGB) sau indirect (într-o imagine indexat ă).
Totuși există și alte metode (spa ții de culoare) în afar ă de RGB pentru
reprezentarea numeric ă a culorilor. De exemplu o culoare poate fi
reprezentat ă în modelul HSV (nuan ța, saturație, valoare). Func țiile din
pachetul de programe care lucreaz ă cu culori presupun c ă imaginile
utilizează spații de culoare RGB. Pachetul de programe sus ține și alte
spații de culoare printr-un set de func ții de conversie. Putem utiliza
aceste func ții pentru conversia între RGB și următoarele spa ții de
culoare:
•
Formatul NTSC,
• Formatul HSV.
Formatul NTSC este utilizat în televiziunile din Statele Unite.
Unul din principalele avantaje al e acestui format este ca informa țiile de
nivele de gri sunt separate de datele color, astfel ca acela și semnal poate
fi utilizat și pentru reprezent ări color și pentru reprezent ări alb-negru. În
formatul NTSC, datele de imagine con țin 3 componente: luminozitatea
(Y), nuan ța (I) și saturația (Q). Prima component ă, luminozitatea,
Autor : Viorel Paleu 302
reprezintă informația despre nivelele de gri, în timp ce ultimele dou ă
componente alc ătuiesc crominan ța (informa țiile color). Func ția rgb2ntsc
convertește imaginile RGB în imagini NTSC. ntsc2rgb execut ă operația
inversă. De exemplu:
RGB = imread ('flowers.tif'); YIQ = rgb2ntsc ( RGB );
Deoarece luminozitatea este una dintre componentele formatului
NTSC, conversia din RGB în NTSC este util ă și la izolarea informa ției
de gri dintr-o imagine. Func țiile sistemului de programe rgb2gray și
ind2gray utilizeaz ă funcția rgb2ntsc pentru a extr age nivelele de gri din
imaginea color.
YIQ=rgb2ntsc(RGB); I=YIQ(:,:,1);
Funcțiile rgb2hsv și hsv2rgb convertesc imaginile dintre RGB în
HSV. Spa țiul color HSV este deseori utili zat pentru alegerea culorilor
dintr-o palet ă cromatic ă, deoarece corespunde mai exact modului în care
subiectul uman percepe culorilor comparativ cu reprezentarea RGB.
Deoarece nuan ța variază de la 0 la 1.0, culorile corespunz ătoare variaz ă
de la roșu, prin galben, verde, cyan, albastru și mangeta, și înapoi la
roșu. Deoarece satura ția variază de la 0 la 1.0, culorile corespunz ătoare
variază de la nesaturate (nuan țe de gri) pân ă la total saturate (f ără
componenta alb ă). Deoarece valoarea sau str ălucirea variaz ă de la 0 la
1.0, culorile corespunz ătoare devin din ce în ce mai str ălucitoare.
Comenzile urm ătoare convertesc o imagine RGB într-un spa țiu color
HSV:
RGB = imread ('flowers.tif'); HSV = rgb2hsv ( RGB );
Operații pe imagini color
Funcția imapprox este bazata pe rgb2ind și oferă aceleași metode
de aproximare. imapprox se folose ște când avem nevoie s ă reducem
Achizi ția și procesarea semnalelor 303
numărul de culori dintr-o imagine indexat ă. imapprox comand ă mai întâi
ind2rgb pentru a converti imaginea în tr-un format RGB, apoi comand ă
rgb2ind pentru a returna o imagine indexat ă nouă cu mai pu ține culori.
De exemplu, comenzile urm ătoare creeaz ă o versiune a unei imagini cu
64 de culori și nu cu 128 de culori ca în original.
load trees [ Y, newmap ] = imapprox ( X , map , 64 );
Funcția brighten lumineaz ă sau întuneca un plan colorat. Ea
înlocuiește planul colorat ini țial cu un plan mai luminat sau mai
întunecat, dar care are în esen ța aceleași culori. Sintaxa func ției este
brighten (beta), iar planul este mai luminos daca 0< beta≤1, și este mai
întunecat daca −1 ≤beta<0 . brighten(beta) urma t de brighten (-beta)
restabilește planul ini țial. De exemplu:
load trees imshow('trees.tif'), brighten(- 0.9)
Funcția rgbplot returneaz ă o reprezentare grafic ă a ponderii celor
trei componente de culoare, ro șu – verde – albastru, care constituie
matricea de culoare C și se apeleaz ă cu sintaxa:
rgbplot(C)
Matricea C este o matrice de dimensiune mx3 care este folosita
de funcția colormap. Fiecare coloan ă a matricei de culoare este
reprezentat ă cu culoarea proprie. De exemplu:
map1=[255 1 754
32 76 87 543 896 0];
map2=[55 154 354
10 6 870 53 86 70];
rgbplot(map1);
rgbplot(map2);
Autor : Viorel Paleu 304
Funcția cmunique are urm ătoarea sintax ă:
[Y, newmap]=cmunique(RGB) [Y, newmap]=cmunique(I)
cmunique converte ște imaginea RGB (sau I) intr-o imagine indexata Y
căreia i se asociaz ă o nouă hartă de culori newmap. newmap este cea mai
mică reprezentare a h ărții de culori pentru imagine, con ținând o intrare
pentru fiecare culoare luat ă separat din imaginea RGB (respectiv I).
Exemplu:
I=imread('trees.tif'); [Y, newmap]=cmunique(I) imshow(I) figure, imshow(Y)
15.6.8 Tipuri de imagini și conversii
În continuare sunt exemplificate opera ții cu diferite tipuri de
imagini, dar și realizarea unor conv ersii între diferite tipuri de imagini.
Pachetul de programe suport ă patru tipuri de imagini:
• Imagini indexate
• Imagini de intensitate
• Imagini binare
• Imagini RGB
Operații cu tipuri de imagini (isb w, isgray, isrgb, isind)
Aceste patru func ții sunt folosite pentru a determina tipul
imaginilor. De exemplu func ția isgray stabile ște dacă o imagine este de
intensitate (adic ă este formata din nivele de gri).
I1=imread('tire.tif'); I2=[0 0.6 1 0.1 0 1 0.7 1
Achizi ția și procesarea semnalelor 305
1 1 0.3 0.9
0.5 0 1 1]; flag1=isgray(I1) flag2=isgray(I2)
Se va observa c ă aceste dou ă imagini sunt imagini de intensitate.
Analog se va proceda cu celelalte func ții, testându-se pe diferite imagini.
Conversia imaginilor în alte tipuri de imagine
Pentru anumite opera ții, este folositor ca o imagine s ă fie
convertită într-un tip diferit de imagine. De exemplu, dac ă vrem să
filtrăm o imagine colorat ă care este stocat ă ca imagine indexat ă, trebuie
ca în primul rând s ă o convertim în format RGB, MATLAB filtrind
valorile de intensitate ale imaginii. Dac ă încercăm să filtrăm imaginea
indexată, MATLAB doar va aplica filtrul indicilor din matricea imaginii
indexate, și rezultatul nu ar avea nici un sens. Pachetul de programe
oferă câteva func ții care fac posibil ă convertirea oric ărei imagini într-un
alt tip de imagine. De exemplu, ind2gray converte ște o imagine indexat ă
într-un format cu nivele de gri. A se remarca faptul c ă atunci când se
convertește o imagine dintr-un format în altul, imaginea rezultat ă poate
apărea diferit ă față de original. De exemplu, dac ă se converte ște o
imagine indexat ă de culoare într-o imagine de intensitate, imaginea
rezultată este o imagine cu nive le de gri, nu colorat ă. Tabelul de mai jos
rezumă aceste func ții ale conversiei de imagine:
Autor : Viorel Paleu 306
Se pot efectua, de asemenea, anumite conversii doar prin
folosirea sintaxei MATLAB. De exemplu, se poate converti o imagine de intensitate într-un format RGB prin concatenarea a 3 copii ale matricei originale în cea de-a treia dimensiune:
RGB = cat(3, I,I,I);
Imaginea RGB rezultat ă are matrice identice pentru planurile de
roșu, verde și albastru, astfel ca imaginea se afi șează sub forma unor
nivele de gri. Pe lâng ă aceste instrumente standard de conversie, sunt
câteva func ții care returneaz ă tipuri diferite de imagini ca parte ale
operației pe care o îndeplinesc. De exemplu, fiecare zon ă de interes a
procedurii returneaz ă o imagine binar ă care poate fi folosit ă pentru a
masca o imagine indexat ă sau de intensitate pentru filtrare sau alte feluri
de operații. Pachetul de programe reprezint ă culorile ca valori RGB, fie
direct (într-o imagine RGB) sau indirect (într-o imagine indexat ă).
Totuși, există și alte metode pentru reprezentarea culorilor. De exemplu,
o culoare poate fi reprezentat ă prin nuan ță, saturație și valoare (HSV). Se
poate prelucra o imagine care folose ște un spațiu de culoare diferit prin
convertirea lui în RGB și apoi prin convertirea imaginii prelucrate înapoi
în spațiul original de culoare. Fie exemplul urm ător:
Achizi ția și procesarea semnalelor 307
I=imread('tire.tif');
BW=dither(I); imshow(I) figure, imshow(BW)
În acest exemplu, dither a re alizat conversia imaginii de
intensitate tire.tif într-o imagine binar ă. Acest lucru poate fi verificat
aplicând imaginii BW func ția isbw.
Conversia unei imagini de inte nsitate într-o imagine indexat ă
(gray2ind, grayslice, inversa gray2ind este ind2gray):
I=imread('rice.tif');
[X, map]=gray2ind(I, 100); imshow(I) figure, imshow(X)
Funcția grayslice realizeaz ă aceeași operație ca și gray2ind, dar
folosind un prag:
I=imread('blood1.tif'); X=grayslice(I, 16); imshow(I) figure, imshow(X, hot(19))
S-a aplicat un prag asupra im aginii (16), rezultatul fiind re ținut în
imaginea X. Se observ ă că pentru a vizualiza imaginea dup ă ce s-a
aplicat pragul, s-a folosit imshow(X, hot(19)), deci o harta de culori
apropiată de valoarea pragului.
Crearea de imagini binare din im agini indexate, de intensitate
sau RGB (im2bw).
Se converte ște imaginea de intrare într-o imagine cu nivele de
gri, după care o converte ște pe aceasta din urm ă în imagine binar ă prin
aplicarea unui prag. Imaginea de ie șire BW are valori 0 (negru) pentru
Autor : Viorel Paleu 308
toți pixelii din matricea de intr are cu luminozitatea mai redus ă decât
pragul, și 1(alb) pentru to ți ceilalți pixeli.
I=imread('cameraman.tif'); BW=im2bw(I, 0.3); imshow(I) figure, imshow(BW)
Conversia unei imagini RG B într-o imagine indexat ă (rgb2ind,
inversa rgb2ind este ind2rgb):
I=imread('flowers.tif');
[X, map]=rgb2ind(I, 130); imshow(I) figure, imshow(X)
Conversia unei imagini RGB într-o imagine de intensitate (rgb2gray)
I=imread('flowers.tif');
X=rgb2gray(I); imshow(I) figure, imshow(X)
Achizi ția și procesarea semnalelor 309
CAPITOLUL 16
APLICATII ALE PROCESARII IMAGINILOR
IN INGINERIE
16.1. Determinarea gradului de coroziune
Prelucrarea imaginilor in Matlab are nenumarate aplica ții pratice
in aproape toate domeniile tehnice care ajut ă la imbunata țirea mediului
de lucru și de viață a oamenilor.
Una din aplica ții este și “Determinarea gradului de coroziune” ,
care se realizeaz ă cu ajutorul mediului de programare MatLab. Pa șii care
trebuie urma ți in determinarea gradului de coroziune sunt foarte simpli:
Pasul 1 obținerea unor imagini digitale cu zonele afectate de
coroziune;
imaginea 1 imaginea 2 imaginea 3
Autor : Viorel Paleu 310
rust1.jpg rust2.jpg rust3.jpg
Pasul 2 stocarea acestora in zona de lucru MatLab;
Pasul 3 inițializarea programului de testare a gradului de
coroziune, run_corossion ;
a. selectarea imaginii-test cu ajutorul func ției uigetfile , la care s-
a adaugat un filtru de c ăutare dup ă tipul imaginii (in cazul
nostru de tip jpg) fileName =uigetfile(‘*.jpg’) ;
Achizi ția și procesarea semnalelor 311
Pasul 4 calcularea histogramei pentru imaginea-test, cu ajutorul
functiei hist A=hist(im(:), 0:255) , 255 fiind numarul de nivele de gri
posibile;
Pasul 5 calculul valorii medii a hist ogramei cu ajutorul functiei
mean2 , val=mean2(A) .
Pasul 6 afișarea, in mediul MatLab, a rezultatului testului de
coroziune, cu ajutorul func ție plot, după compararea valorii medii ( val)
cu o serie de valori ob ținute anterior și stocate in baza de date.
if (val>=0 && val<150);
plot(0:255,A);
title('Coroziune mica' );
Autor : Viorel Paleu 312
elseif (val>=150 && val<250);
plot(0:255,A);
title('Coroziune medie' );
else (val>=250)
plot(0:255,A);
title('Coroziune mare' )
end
Rezultate testului pot fi stocate in baza de date pentru o folosire
ulterioară.
Achizi ția și procesarea semnalelor 313
16.2. Pseudocolorarea
O alta aplica ție practic ă este “Pseudocolorarea” , care
convertește imaginile alb-negru (cu 0-256 ni vele de gri si 1 strat) in
imagini pseudo-colorate (cu 3 straturi).
Pasul 1 : selectarea imaginii alb-negru:
im=input( 'Enter the file name (gray level image) :' ,'s');
Enter the file name (gra y level image): rust1_g.jpg
Pasul 2 : transformarea nivelelor de gri in pseudo-culori
k=imread(im);
[x y z]=size(k);
k=double(k);
for i=1:x
for j=1:y
if k(i,j)>=0 & k(i,j)<50
m(i,j,1)=k(i,j,1)+5;
m(i,j,2)=k(i,j)+10;
m(i,j,3)=k(i,j)+10;
end
if k(i,j)>=50 & k(i,j)<100
m(i,j,1)=k(i,j)+35;
m(i,j,2)=k(i,j)+28;
m(i,j,3)=k(i,j)+10;
end
Autor : Viorel Paleu 314
if k(i,j)>=100 & k(i,j)<150
m(i,j,1)=k(i,j)+52;
m(i,j,2)=k(i,j)+30;
m(i,j,3)=k(i,j)+15;
end
if k(i,j)>=150 & k(i,j)<200
m(i,j,1)=k(i,j)+50;
m(i,j,2)=k(i,j)+40;
m(i,j,3)=k(i,j)+25;
end
if k(i,j)>=200 & k(i,j)<=256
m(i,j,1)=k(i,j)+120;
m(i,j,2)=k(i,j)+60;
m(i,j,3)=k(i,j)+45;
end
end
end
Pasul 3 : afișarea rezultatului ob ținut
figure,imshow(uint8(m),[]);
Se observ ă o colorare u șoară a imaginii, dar acest lucru se poate
imbunătăți prin mic șorarea pasului de pseudo-colorare din algoritm.
Acest pas poate fi ameliorat doar prin incerc ări repetate.
Achizi ția și procesarea semnalelor 315
16.3. Măsurarea la distan ță
O aplica ție obisnuit ă in domeniul robo ților dotați cu camere de
luat vederi este și “Măsurarea la distan ță” folosind achizi ția și
prelucrarea de imagini. In cazul nostru scopul este m ăsurarea unghiului
și a punctului de intersec ție dintre dou ă grinzi folosind filtrul
bwtraceboundary , care este o rutin ă de urmărie a contururilor.
Pasul 1 presupune ob ținerea unei imagini digitale a grinzilor de
măsurat, citirea imaginii in mediul de lucru MatLab și evidențierea
grinzilor de m ăsurat.
RGB = imread( 'gantrycrane.png' );
imshow(RGB);
text(size(RGB,2),size(RGB,1)+15); line([300 328],[85 103], 'color',[1 1 0]);
line([268 255],[85 140], 'color',[1 1 0]);
text(150,72, 'Measure the angle between these
beams','Color','y',…
'FontWeight' , 'bold');
Autor : Viorel Paleu 316
Pasul 2 extragerea zonelor de interes prin t ăierea imaginii in
bucati mai mici care sa con țină doar grinzile ales e anterior. Acest pas
ușurează obținerea contururilor ale celor dou ă grinzi metalice.
% se pot obtine coordontatele rectangulare ale regiunii
folosind % informatiile pixelilor afisate de
comanda imtool
start_row = 34;
start_col = 208;
cropRGB = RGB(start_row:163, start_col:400, :);
imshow(cropRGB)
% se pastreaza coodonatele (X,Y) pentro o folosire ulterioara;
% se scade 1 astfel incat fiecare coodonata sa corespunsa
pixelului
% anterior regiunii alese
offsetX = start_col-1;
offsetY = start_row-1;
Pasul 3 transformarea imaginii color in una alb-negru și
obținerea complementului imagin ii pentu a usura extragerea
coodonatelor folosind rutina bwtraceboundary .
I = rgb2gray(cropRGB);
threshold = graythresh(I); BW = im2bw(I,threshold);
BW = ~BW; % complementul imaginii (obiectele de interes
sunt albe)
imshow(BW)
Achizi ția și procesarea semnalelor 317
Pasul 4 găsirea punctului initial al fi ecarui contur prin apelarea
rutinei bwtraceboundary care ne impune specifi carea unui singur punct
pe contur. Acest punct va fi folos it ca punct de start in procesul de
definire a conturului. Pentru extragerea conturului grinzii mai joase, se alege o coloan ă
din imagine si se cerceteaza pana la gasirea unui pixel care apartine
fondului. Se stocheaza aceasta locatie pentru folosirea ulterioara in
rutina
bwtraceboundary . Se repet ă procedura pentru cealalta grinda, dar
de data aceasta in plan orizontal.
dim = size(BW);
% grinda orizontala
col1 = 4;
row1 = min(find(BW(:,col1)));
% grinda inclinata
row2 = 12;
col2 = min(find(BW(row2,:)));
Pasul 5 extragea contururilor prin folosirea rutinei
bwtraceboundary si a coodonatelo r (X,Y) corespunz ătoare punctelor de
pe contur. Pentru o acurate țe mai bun ă a calculelor unghiului și a
punctului de intersec ție este indicat s ă se extrag ă cât mai multe puncte
posibile de pe conturul grinzilor. Num ărul acestor puncte se determin ă
experimental. Intrucât punctul de start pentru grinda orizontal ă a fost
obținută căutând de sus in jos, este cel mai sigur s ă setăm pasul de
căutare către marginile exterioare ale obiectului.
boundary1 = bwtraceboundary(BW, [row1, col1], 'N', 8, 70);
Autor : Viorel Paleu 318
% setarea directie de cauta in sens invers acelor de
ceasornic
boundary2 = bwtraceboundary(BW, [row2, col2], 'E', 8,
90,'counter' );
imshow(RGB); hold on;
% se aplica offsets pentru a desena in imaginea originala
plot(offsetX+boundary1(:,2),offsetY+boundary1(:,1), 'g','LineW
idth',2);
plot(offsetX+boundary2(:,2),offsetY+boundary2(:,1), 'g','LineW
idth',2);
Pasul 6 alinierea liniilor pe contur. De și am obținut perechea de
coordonate (X,Y) anterior, nu toate punctele formeaz ă o linie. Se ridic ă
intrebări care vor fi folosite la calcularea unghiului și a punctului de
intersecție. Presupunând ca toate punctele ob ținute sunt la fel de
importante se lipesc lini ile de contur pe loca țiile pixelilor.
Ecuația pentru o linie este y = [x 1]*[a; b] . Valorile
parametrilor a si b se pot afla folosind comanda polyfit.
ab1 = polyfit(boundary1(:,2), boundary1(:,1), 1);
ab2 = polyfit(boundary2(:,2), boundary2(:,1), 1);
Achizi ția și procesarea semnalelor 319
Pasul 7 calcularea unghiului de inters eccie cu ajutorul comenzii
dot.
vect1 = [1 ab1(1)]; % se creeaz ă un vector bazat pe
ecuația liniei
vect2 = [1 ab2(1)];
dp = dot(vect1, vect2);
% se calculeaza lungimea vectorului
length1 = sqrt(sum(vect1.^2));
length2 = sqrt(sum(vect2.^2));
% obținerea celui mai mare unghi, in grade
angle = 180-acos(dp/(length1*length2))*180/pi
angle =
129.4971
Pasul 8 calcularea punctului de intersec ție prin rezolvarea
sistemului de dou ă ecuații pentru ob ținerea coordonatelo r punctului de
intersecție (X,Y).
intersection = [1 ,-ab1(1); 1, -ab2(1)] \ [ab1(2);
ab2(2)];
% se aplica offsets pentru calcularea coordonatelor in
imaginea
% initiala, nedecupata
intersection = intersection + [offsetY; offsetX] intersection =
143.0917
295.7494
Pasul 9 afișarea rezultatelor
inter_x = intersection(2);
inter_y = intersection(1);
% se deseneaza un X in punctul de intersectie
plot(inter_x,inter_y, 'yx','LineWidth' ,2);
text(inter_x-60, inter_y-30,
[sprintf( '%1.3f',angle), '{\circ}' ],…
'Color','y','FontSize' ,14,'FontWeight' ,'bold');
Autor : Viorel Paleu 320
interString = sprintf( '(%2.1f,%2.1f)' , inter_x, inter_y);
text(inter_x-10, inter_y+20, interString, …
'Color','y','FontSize' ,14,'FontWeight' ,'bold');
Prelucrarea imaginilor reprezintă un domeniu complex, dinamic,
cu numeroase aplica ții. Aplicațiile referitoare la procesarea imaginilor cu
ajutorul mediul ui MATLAB eviden țiază faptul c ă, procedee precum
detecția contururilor, egalizare, filtrare de zg omote, pseudocolorare,
măsurari de la distan ță utilizand imaginile, sau determinarea gradului de
coroziune a pieselor metalice, sunt instrumente puternice, la îndemâna
inginerilor mecatroni ști. Pentru sporirea eficientei tehnicilor de
prelucrare a imaginilor se pot folosi combina ții ale tehnicilor enumerate
anterior.
Noile de tehnologii folosite în industria circuitelor integrate (s-au
creat circuite integrate dedicate pentru achizi ție de imagine sau pentru o
serie de prelucr ări de imagine) permit aplicarea unor noi algoritmi și
metode pentru extragerea informa țiilor utile din imagini.
Achizi ția și procesarea semnalelor 321
Există în prezent diverse implement ări de sisteme e lucreaz ă în
timp real, bazate pe prelucrarea de imagini, sisteme utilizate în industria militară, medicină, sisteme de control automat a proceselor industriale.
S-au adus diverse îmbun ătățiri sistemelor de procesare a
amprentelor digitale, recunoa șterea feței, a scrisului. Pentru zonele
aglomerate sau de interes st rategic au fost proiectate și implementate
sisteme de securitate și supraveghere bazate pe vedere artificial ă
(
machine-vision ).
De asemeni, prelucrarea computerizat ă a imaginilor are un rol
foarte important în medicin ă, în domeniul tehnicii medicale: tomografia
asistată de calculator, analiza și interpretarea imaginilor microscopice
celulare.
În centrele de cercetare din universit ăți s-au creat sisteme
autonome mobile (robo ți mobili), care folosesc pentru deplasare sau
luare a diverselor tipuri de deciz ii subsisteme de vedere artificial ă.
Autor : Viorel Paleu 322
Bibliografie
1. ****, „ Lessons in electric circuits ”, Vol. 4: Digital, www.
allaboutcircuits.com.
2. ****, HTUhttp://www.datatranslation.com/white_papers/ UTH
3. ***, “ Building GUIs with MATLAB”, The MathWorks, Inc.,
December 1996
4. ***, “ DSP Guide” , www.dspguide.com
5. ***, “ Using MATLAB” , version 7, The MathWorks, Inc., 2006
6. Ardelean, D., Kloetzer, M., Pastravanu, O., " Crearea unei
biblioteci SIMULINK pentru expl oatarea retelelor neuronale in
identificare" ( HTUhttp://iasi.bu.edu/~kmari us/Publications/rria.pdf UTH ).
7. Auvray, J., „ Traitement du signal – Cours” , Universite Pierre et
Marie Currie, IST-SETI 3, 2001-2002.
8. Bishop, R. H. (Editor-in-Chief), „ The Mecatronics Handbook” ,
CRC Press, Series: Electrical Engineering Handbook, Vol. 33,
1272 p., 2002
9. Burlacu, S., „ Comunicatii analogice si numerice – Curs ”, Ed.
Acad. Fortelor Terestre, Sibiu, 2000.
10. Buzuloiu, V., „ Prelucrarea imaginilor: note de curs” ,
Universitatea “Politehnica” Bucuresti, 1998
11. Damian, I., Paleu, V., Cretu, Sp., " Experimental Data
Acquisition for Ball Bearing Fr iction Torque Measuring”,
Buletinul I.P.I., Tom LII (LVI), Fasc. 1, 2006, Sectia Stiinta si
Ingineria Materialelor, ISSN 1453-1690, pp. 109-113.
12. Drăgan, B., „ Achiziția și procesarea semnalului vibroacustic ”,
Ed. Politehnium, Iasi, 2004
13. Drăgan, B., „ Controlul vibratiilor si zgomotului ”, Ed. Gh.
Asachi, Iasi, 2003
Achizi ția și procesarea semnalelor 323
14. Français, O., „ Acquisition de donées, Notes de cours” , ESIEE
Paris (Ecole supérieure d'ingénieurs en électronique et électrotechnique), 2000
15.
Gafițanu, M., Cre țu, Sp., Dragan, B., Diagnosticarea
vibroacustic ă a mașinilor și utilajelor, Ed. Tehnic ă, București,
1989.
16. Ghinea, M., Fire țeanu, V., „ MATLAB. Calcul numeric ~ grafic ă
~ aplicații”, Ed. Teora, 1995.
17. Gopi, E.S., „ Algorithm Collections for Digital Signal Processing
Applications using MATLAB” , Springer, The Netherlands, 2007.
18. Gray, R. M., Davisson, L.D., „ An Introduction to Statistical
Signal Processing” , Cambridge University Press, 2004.
19. Grigoras, V., Tarniceru, D., „ Procesarea numerica a semnalelor,
Partea I: Semnale si sisteme discrete” , Ed. Gh. Asachi. Iasi,
1995
20. Hu, Y., H., Hwang, J.-N. (editori), " Handbook of Neural Network
Signal Processing", CRC PRESS, 2002
21. Huminiuc, C., Macovei, C., Paleu, V., “ Procesarea semnalelor
audio”, Sesiunea de cercuri stiin țifice studen țești, Facultatea de
Mecanică, Iași, 2006.
22. Ivanescu, M., Cojocaru D., „ Un sistem pentru procesarea
imaginilor” , SINTES 3, Craiova, p247-252, 1984.
23. Ivanescu, M., Cojocaru, D., „ Un sistem pentru transmisia și
procesarea de imagini statice” , Al 3lea Simpozion Na țional de
Robotică, București, p253-257, 1983.
24. Jähne, B., “ Practical Handbook on Image Processing for
Scientific Applications” , CRC Press, 1997
25. Jain, A. K., “ Fundamentals of Digital Image Processing” ,
Prentice Hall, Englewood Cliffs NJ, 1989
Autor : Viorel Paleu 324
26. Leich, H., Dutoit, T., „ Traitement du signal – Notes de cours ”,
Faculté Polytechni que de Mons, 2001
27. Leon, F., (2006). " Agenti inteligenti cu capacitati cognitive" ,
Tehnopress, Iasi, ISBN 978-973-702-422-0, 271 pag.
28. Leon, F., (editor) (2006). " Inteligenta artificiala – principii,
tehnici, aplicatii" , Tehnopress, Iasi, ISBN 978-973-702-423-7,
702 pag.
29. Morgan, D., „Practical DSP Modeling, Techniques, and
Programming in C” , John Wiley @ Sons, Inc., 1994
30. Nayman, P., „ Certains aspects du traitement du signal ”, DEA-
MIP, LPNHE Paris, 2003-2004
31. TNelias, D., Bercea, I., Paleu, V., “ Prediction of Roller Skewing in
Tapered Roller Bearings” , Tribology Transactions, Volume 51,
Issue 2, 2008, pp. 128 – 139. T
32. Paleu, V., Mitu, N., Damian, I., Cretu, Sp ., "Scuffing Detection
by Friction Moment Measurement in All-Steel and Hybrid Silicon
Nitride Ball Bearings”, prezentat la cel de-al doilea Simpozion
A.C.M.E., Iasi, 2006 si publicat in Buletinul I.P.I., Tom LII
(LIV), Fasc. 6A, 2006, Sectia Const. Mas., pp. 339-353.
33. TPaleu, V., “ High-Speed Hybrid Angular Contact Ball
Bearings Lubricated by Kerosene Mist”, conferinta The 10th
International Conference On Tribology ROTRIB’07, 8-10 Nov. 2007, Bucuresti.
34. Paleu, V., Bercea, I., Cretu, Sp., Bercea, M., “Lubricant Oils
Additived With Polymers in EHD Contacts : Part 2. Tests
using a Four-Ball Machine” , Lubrication Science, Vol. 17, 2
(2005), pp. 173-184. Leaf Coppi n Publishing Co., ISSN 0954-
0075, Digital Object Iden tifier: 10.1002/ls.3010170205
35. Paleu, V., Cretu, Sp., and Nelias, D., “ Behavior of Hybrid and
All-Steel Angular Contact Ball Bearings in Oil Shut – Off
Achizi ția și procesarea semnalelor 325
Conditions: Experimental and Theoretical Results”, Society of
Tribology and Lubrication Engin eers' 58th Annual Conference
(STLE Annual Meeting), New York, 27 April -1 May 2003.
36. Paleu, V., Cretu, Sp., Drag an, B., si Balan, R.M., “ Test Rig For
Friction Torque Measurement in Rolling Bearings”, The Annals
of “Dunarea de Jos” University of Galati, Fascicle VIII, Tribology, 2004, ISSN 221-4590, pp. 86-93.
37.
Paleu, V., Cretu, Sp., Nelias, D., “ Friction Moment in Oil
and Kerosene Mist Lubricated All-Steel and Hybrid Ball
Bearings”, International Colloquium Tribology, Automotive
And Industrial Lubrication, held on January 15– 17, 2008,
pp.12, in Stuttgart / Ostfildern (Esslingen), Germany.
38. Paleu, V., Nelias, D. , “On Kerosene Lubrication of Hybrid
Ball Bearings”, conferinta Diagnosis And Prediction In
Mechanical Engineering Syst ems (DIPRE’07), 26-27 oct.
2007, Galati.
39. Paleu, V., Nelias, D., „SUPERSONIQUE: Fatigue de roulemt
sous condition extremes : lubr ification au kerosene et tenue
aux hautes temperatures (300, 500 et 800 P0
PC) de nouveaux
materiaux pour roulements” , Raport de cercetare, program de
cercetare interna ționala, contract in coope rare CNRS / INSA de
Lyon, num ărul 5514, INSA-Lyon, Fran ța, 2003-2004.
40. Paleu, V., Sauvinet, H., Nelias, D., „ Dimensionnement et
calcul de la durée de vie des paliers à roulements des
moteurs electriques de traction ferroviaire, intégrant les effets induits par la cinéma tique et la dynamique d’une
transmission à double joint de cardan
”, raport la contractul
de cercetare între INSA-Lyon (Franta) și ALSTOM Transport
Ornans, (Fran ța), Comanda nr. FG133844 din 18.05.2000,
Autor : Viorel Paleu 326
Referința INSAVALOR: Conventia 00-006961, Mai – Août
2000.
41. Poularikas, A.D., „ The Transforms and Applications Handbook ”,
Second Edition, CRC Press & IEEE Press, 2000.
42. Ripa, M., Frangu, L., " A Survey of Artificial Neural Network
applications in wear a nd manufacturing processes ", Analele
Universitatii "Dunarea de Jos" din Galati. Fascicula VIII: Tribologie, 2004.
43.
Sen, M., Goodwine, B., "Soft Computing in Control, from The
MEMS Handbook, CRC Press, 2001, ISBN 0849300770
44. Smith, S. W., " The Scientist and Engineer's Guide to Digital
Signal Processing ”, 2 Pnd
P Edition, California Technical Publishing,
San Diego, 1997-1998.
45. Spataru, A., “ Teoria Transmisiunii Informatiei” , Ed. Didactica si
Pedagogica, Bucuresti, 1984
46. Stearn, S.D., David, R.A., " Signal Processing Algorithms in
Matlab ”, Prentice Hall PTR, Uppe r Saddle River, New Jersey
07458
47. Taraboan ță, F., „ Echipamente pentru procesarea si comunicarea
datelor ”, Ed. Astel Design, Iasi, 2000.
48. Taras, I., Paleu, V., “ Aplicatii ale re țelelor neuronale în
prelucrarea semnalului – filtrarea unui semnal”, proiect de
licență, Iași, 2006.
49. Vechiu, V., Paleu, V., “ Prelucrarea imaginilor cu aplica ții în
Mecatronic ă”, Proiect de licen ță, Iași, 2006.
50. Vertan, C., “ Prelucrarea si analiza imaginilor: indrumar de
laborator” , Universitatea “Polit ehnica” Bucuresti, 1999
51. Vertan, C., “ Prelucrarea si analiza im aginilor: note de curs” ,
Universitatea “Politehnica” Bucuresti, 1999
Achizi ția și procesarea semnalelor 327
52. Vertan, C., Ciuc, M., “ Tehnici fundamentale de Prelucrarea si
Analiza Imaginilor ”, Ed. MatrixROM, Bucuresti, 2007.
53. Wahl, F. M., “ Digital Image Signal Processing” , Artech House,
Boston, 1987
54. Webster, Jh. G. (Editor-in-Chief), „ Measurement,
Instrumentation, and Sensors Handbook” , CRC Press, 1999.
55. Wilamowski, B.M., "Neural Networks and Fuzzy Systems" din
"The Mechatronics Handbook", CRC Press, 2002
56. Zamperoni, P., “ Image Enhancement ”, Advances in Imaging and
Electron Physics, vol. 92, pp. 1-77, Academic Press, 1995.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Achizi ția și procesarea semnalelor 1 [600899] (ID: 600899)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
