Sunteți pe pagina 1din 37

CUPRINS

1. Semnale şi sisteme
1.1. Introducere...................................................................................1
1.2. Clasificarea semnalelor................................................................2
1.3. Clasificarea sistemelor.................................................................9
1.4. Procesare numerică versus procesare digitală ...........................10
1.5. Istoric, perspective.....................................................................14
2. Procesarea semnalelor analogice
2.1. Introducere.................................................................................15
2.2. Semnalul sinusoidal în timp continuu .......................................16
2.3. Semnalul sinusoidal funcŃie de variabilă complexă ..................19
2.4. Propagarea semnalelor sinusoidale în circuite liniare ...............21
2.5. Filtre analogice realizate cu circuite electrice liniare ................25
2.5.1. Rezolvarea circuitelor în regim sinusoidal.......................26
2.5.2. Caracteristica de frecvenŃă ...............................................28
2.5.3. Caracteristica de frecvenŃă exprimată în decibeli ............31
2.5.4. AplicaŃii............................................................................35
2.6. Teorema Fourier în timp continuu.............................................40
2.6.1. Teorema Fourier în domeniul real....................................40
2.6.2. Teorema Fourier în electronică ........................................43
2.6.3. Spectrul real al unui semnal periodic real ........................45
2.6.4. AplicaŃii............................................................................47
2.6.5. Teorema Fourier în domeniul complex............................52
2.6.6. Spectrul complex al semnalului periodic real ..................55
2.7. Transformata Fourier directă şi inversă în timp continuu .........55
2.7.1. De ce se folosesc transformări? .......................................55
2.7.2. Transformata Fourier (TF) ..............................................57
2.7.3. Legătura dintre TF şi teorema Fourier ............................58
2.7.4. De ce se folosesc transformări?........................................60
2.7.5. AplicaŃii ...........................................................................61
2.8. Bibliografie................................................................................62
IV Cuprins

3. Semnalele în calculatorul numeric


3.1. Semnale analogice / semnale numerice ....................................63
3.2. Eşantionarea şi cuantizarea.......................................................64
3.3. Spectrul semnalului eşantionat .................................................66
3.4. Teorema eşantionării ...............................................................69
3.5. Alegerea frecvenŃei de eşantionare ...........................................71
3.6. Alegerea nivelului de cuantizare ...............................................72
3.7. ReconstrucŃia semnalelor..........................................................75
3.7.1. Interpolarea de ordinul zero cu păstrarea valorii..............75
3.7.2. Interpolarea liniară ...........................................................75
3.7.3. Interpolarea polinomială ..................................................76
3.7.4. Interpolarea cu nucleul "sinc" ..........................................77
3.8. Sisteme de achiziŃie de date......................................................78
3.9. AplicaŃii ....................................................................................80
3.10. Bibliografie..............................................................................82

4. Semnale şi sisteme discrete


4.1. Sinusoida discretă......................................................................83
4.2. Sisteme numerice.......................................................................84
4.2.1. Sisteme discrete liniare ....................................................85
4.2.2. Sisteme discrete invariante în timp ..................................86
4.2.3. Sisteme discrete cauzale / necauzale................................86
4.2.4. Sisteme discrete recursive / nerecursive ..........................86
4.2.5. Sisteme discrete stabile / instabile ...................................86
4.3. Exemple de procesare analogică versus procesare digitală .....87
4.3.1. Amplificarea unei sinusoide ..........................................87
4.3.2. Defazarea unei sinusoide .................................................88
4.4. Transformata Fourier Discretă (TFD) .......................................90
4.4.1. DefiniŃia TFD...................................................................90
4.4.2. Legătura dintre TFD şi TF ...............................................94
4.5. Transformata Fourier Rapidă (TFR) ........................................95
4.6. La ce folosesc transformatele Fourier?......................................96
4.6.1. Calculul spectrului unui semnal.......................................96
4.6.2. Ferestruirea (windowing) .................................................98
4.6.3. Calculul densităŃii spectrale de putere ...........................100
4.6.4. Calculul convoluŃiei a două semnale .............................100
4.7. Alte transformări......................................................................100
4.7.1. Transformarea Cosinus ..................................................101
Cuprins V

4.8. Transformări şi sisteme ...........................................................102


4.8.1. Transformări ale sistemelor ...........................................102
4.8.2. Caracteristica de frecvenŃă a unui sistem discret ...........104
4.9. AplicaŃii ..................................................................................105
4.10. Bibliografie............................................................................110

5. Procesări numerice în domeniul timp


5.1. Introducere..............................................................................111
5.2. Medierea .................................................................................112
5.3. Derivarea ................................................................................112
5.4. CorelaŃia ..................................................................................114
5.5. ConvoluŃia ...............................................................................115
5.5.1. Implementarea produsului de convoluŃie.......................116
5.5.2. ProprietăŃile convoluŃiei.................................................118
5.5.3. Aspecte spectrale ale convoluŃiei...................................119
5.6. Procesări neliniare ...................................................................121
5.7. Procesări statistice ..................................................................122
5.7.1. Valoarea medie ..............................................................122
5.7.2. DeviaŃia ..........................................................................122
5.7.3. Histograma.....................................................................122
5.8. AplicaŃii ...................................................................................124
5.9. Bibliografie..............................................................................126

6. Procesări în domeniul frecvenŃă. Filtre numerice


6.1. Introducere ...............................................................................127
6.1.1. Algoritm cu rol de filtru Trece Jos.................................128
6.1.2. Algoritm cu rol de filtru Trece Sus ................................130
6.2. Clasificarea filtrelor numerice .................................................133
6.2.1. Filtre recursive / nerecursive..........................................133
6.2.2. Filtre cauzale / necauzale ...............................................137
6.2.3. Filtre stabile / instabile...................................................137
6.2.4. Filtre FIR / IIR ..............................................................138
6.2.5. Ordinul filtrului..............................................................139
6.3. AplicaŃii ...................................................................................140
6.4. Bibliografie ..............................................................................142

7. Proiectarea filtrelor nerecursive


7.1. Introducere ...............................................................................143
7.2. Metoda Transformatei Fourier.................................................144
VI Cuprins

7.2.1. Filtru Trece Jos ..............................................................144


7.2.2. Filtru Trece Sus..............................................................148
7.2.3. Filtru Trece Bandă .........................................................148
7.2.4. Filtru Opreşte Bandă ......................................................149
7.3. Metoda Transformatei Fourier Discretă ..................................150
7.4. Sinteza modului de proiectarea a filtrelor nerecursive .......153
7.5. Proiectarea filtrelor nerecursive în MATLAB.........................154
7.6. AplicaŃii ...................................................................................156
7.7. Bibliografie ..............................................................................158
8. Proiectarea filtrelor recursive
8.1. Transformarea Laplace? ..........................................................159
8.2. Rezolvarea numerică a ecuaŃiilor diferenŃiale .........................166
8.2.1. De la analogic la discret .................................................166
8.2.2. AplicaŃii..........................................................................169
8.3. Transformata Z ........................................................................170
8.3.1. DefiniŃie .........................................................................170
8.3.2. De la transformata Laplace la transformata Z...............171
8.3.3. ProprietăŃile transformatei Z ..........................................176
8.3.4. Trasarea caracteristicii de frecvenŃă ..............................177
8.3.5. Filtre recursive. Forme de realizare ...............................179
8.3.6. Rezolvarea ecuaŃiilor cu diferenŃe finite .......................183
8.4. Poli şi zerouri............................................................................184
8.4.1. Ce sunt polii şi zerourile? ..............................................184
8.4.2. Ce efect au polii şi zerourile ?........................................186
8.5. Proiectare filtrelor cu metoda “poli - zerouri” .........................189
8.5.1. Proiectarea unui filtru trece bandă .................................190
8.5.2. Filtru trece bandă cu calităŃi îmbunătăŃite......................192
8.5.3. Exemple de filtre simple ................................................193
8.5.4. Concluzii la metoda “poli - zerouri”..............................196
8.6. Proiectarea filtrelor recursive folosind transf. Z ......................198
8.6.1. Etapele proiectării ..........................................................199
8.6.2. Stabilirea gabaritului caracteristicii de frecvenŃă.......200
8.6.3. Alegerea unei funcŃii de aproximare..............................201
8.6.4. Determinarea transformatei Z a funcŃiei ........................203
8.6.5. Sinteza schemei filtrului recursiv........................ 204
8.7. Proiectarea filtrelor recursive folosind transf. Bilineară..........205
8.8. Proiectarea filtrelor recursive în MATLAB.............................206
8.9. AplicaŃii ...................................................................................206
8.10. Bibliografie ...............................................................................208
5. PROCESĂRI NUMERICE ÎN DOMENIUL TIMP

5.1. Introducere

Am văzut în capitolul anterior că există două modalităŃi de descriere a unui


semnal: în domeniul timp sau în domeniul frecvenŃă. Cu siguranŃă acestea
nu sunt singurele modalităŃi de a descrie un semnal, dar sunt cele mai
importante.
O primă consecinŃă a acestui mod de descriere este faptul că semnalele
discrete pot fi prelucrate atât în domeniul timp, cât şi în domeniul frecvenŃă.
Capitolul de faŃă se ocupă cu prelucrarea semnalelor în domeniul timp.
Procesările din acest capitol nu presupun cunoaşterea unor instrumente
matematice complexe şi în plus algoritmii prezentaŃi aici produc adesea
rezultate uşor de intuit. Cel puŃin din acest motiv capitolul de faŃă este
potrivit pentru introducere în tehnica procesărilor numerice. Este util să
începem în acest fel, fiindcă astfel se câştigă deprinderea procesării
secvenŃelor de date numerice, provenite cel mai adesea din achiziŃii de date
din procese reale.
Caracterul intuitiv al unor procesări numerice de semnal rezultă din analogia
cu procesarea semnalelor analogice din care acestea provin. Procesul de
achiziŃie numerică este în fond primul proces de procesare în domeniul timp
al oricărui semnal şi va reprezenta o etapă de referinŃă pentru prelucrările
ulterioare.
Majoritatea procesărilor din acest capitol Ńin cont de caracterul secvenŃial al
setului de date supus procesării, caracter rezultat din procesul de achiziŃie.
Alături de acestea vor fi amintite şi unele prelucrări statistice ale semnalelor,
prelucrări care se efectuează de regulă off line, pe semnale stocate în baze
de date.
112 Procesare Numerică în Domeniul Timp

5.2. Medierea

Algoritmul propus este o simplă medie aritmetică a ultimelor M eşantioane


din secvenŃa de intrare x[n] .
1 M −1
y[n] = ∑x
M i=0 [ n −i ]
(5.1)

Deşi extrem de simplu, algoritmul 5.1 produce date utile. Spre exemplu,
dacă semnalul x[n] conŃine variaŃii rapide între eşantioane apropiate, datorate
unor zgomote, prin mediere acestea vor dispărea. Acest tip de zgomote pot
fi astfel uşor înlăturate, rezultând un semnal “curat”.

5.3. Derivarea / DiferenŃierea


DefiniŃia derivatei de ordinul întâi a unei funcŃii continue x(t), este:
∆ x dx
y(t) = x ' (t) = lim = (5.2)
∆t →0 ∆ t dt
SemnificaŃia geometrică a derivatei unei funcŃii continue este prezentată în
figura 5.1.
ϕ
x (t)

t
t0
ϕ
x (nTe)

n0 n
Figura 5.1. Derivata întâi definită pentru funcŃii continue şi funcŃii discrete.
Ioan P. MIHU - Procesarea Numerică a Semnalelor 113

Valoarea derivatei într-un punct este egală cu tangenta unghiului făcut de


tangenta geometrică la graficul funcŃiei în acel punct. În cazul derivării unei
funcŃii în timp discret, plecând de la definiŃia 5.2 se obŃine:

y[n] = x '[n] =
x [n] - x [n - 1]
n ⋅ Te - (n - 1) ⋅ Te
=
1
Te
(
x [n] - x [n - 1] ) (5.3)

Vorbind despre semnale discrete, termenul consacrat este cel de diferenŃiere


în locul celui de derivare. Aşa cum se observă în figura 5.1, valoarea
derivatei unei secvenŃe numerice este egală cu tangenta unghiului făcut cu
axa absciselor de dreapta ce uneşte valorile a două eşantioane succesive:
eşantionul curent x[n] şi cel anterior lui x[n−1].
Prin simpla derivare a unei secvenŃe x[n], se va obŃine o altă secvenŃă y[n], cu
unele proprietăŃi extrem de interesante legate de viteza de variaŃie a
semnalului între două momente de eşantionare consecutive.
Trebuie menŃionat că analiza vitezei de variaŃie se putea face şi altfel decât
în modul descris de relaŃia 5.3, luând spre exemplu în calcul eşantioanele
x[n+1]- x[n]. Procedând în acest fel nu ar mai fi însă posibilă analiza on line
a semnalului, deoarece în algoritm este implicat eşantionul “viitor” x[n+1],
care nu există la momentul calculării derivatei.
Derivata unui semnal produce date extrem de interesante şi utile. Să
presupunem că în secvenŃa x[n] există o porŃiune în care toate valorile sunt
egale între ele. În urma derivării, scăzând valori egale pe acea porŃiune vor
rezulta doar valori nule în semnalul rezultat y[n]. Similar, dacă pe o porŃiune,
semnalul variază foarte lent, în urma derivării, vor rezulta valori foarte mici
în semnalul y[n]. Semnalul pe care l-am presupus şi anume unul foarte lent
variabil poate fi spre exemplu un semnal sinusoidal de frecvenŃă foarte
joasă. Iată deci că dacă la „intrarea unui algoritm” de diferenŃiere de ordinul
întâi se aduce un semnal în timp discret de frecvenŃă foarte scăzută, la
ieşirea blocului de calcul va rezulta un semnal de valoare foarte mică.
Dacă în schimb avem o porŃiune de semnal x[n] în care valorile învecinate
variază mult între ele, provenind spre exemplu dintr-un semnal sinusoidal de
frecvenŃă ridicată, atunci prin derivare vor rezulta valori numerice mari.
Acest fapt permite identificarea fronturilor abrupte din componenŃa unui
semnal, caracterizate de diferenŃe mari între eşantioane apropiate.
În ipoteza că semnalul x[n] ar fi format dintr-un semnal continuu şi unul de
frecvenŃă ridicată, rezultă în urma celor prezentate că semnalul continuu nu
se va regăsi în semnalul de ieşire. Iată deci că algoritmul de derivare are
proprietăŃi selective faŃă de semnale de frecvenŃă diferită, el permiŃând
îndepărtarea componentei continue, sau diminuând foarte mult
componentele de frecvenŃă foarte joasă.
114 Procesare Numerică în Domeniul Timp

Ca şi în cazul funcŃiilor în timp continuu, şi pentru funcŃiile în timp discret


se poate defini derivata de ordinul doi:

x ' '[n] =
x'[n] - x'[n - 1]
=
n ⋅ Te - (n - 1) ⋅ Te Te
1
(
x [n] - x [n - 1] - ( x [n -1] - x [n - 2] ) ) (5.4)

Rezultă: x ' '[n] =


1
Te
(
x [n] - 2 ⋅ x [n - 1] + x [n - 2] ) (5.5)

O analiză similară cu cea anterioară ne permite să identificăm componentele


fronturilor abrupte sau să eliminăm componentele continue ale derivatei
întâi ale secvenŃei de intrare, ceea ce este similar cu a determina punctele de
inflexiune ale graficului secvenŃei de intrare x[n] .
O soluŃie interesantă o constituie derivarea dintre valori mediate, care ne
oferă o valoare medie a derivatei calculate pentru ultimele M eşantioane.
M −1 M −1
1 1
y[n] =
M

i=0
x [ n −i ] −
M
∑ x[ n
i=0
−i − M ]
(5.6)

Un astfel de algoritm combină efectele menŃionate la algoritmul de mediere


şi cel de derivare.

5.4. CorelaŃia

Considerând o secvenŃă x[n] zisă „de intrare”, şi o secvenŃă dată h[n] de


lungime constantă M, relaŃia de definiŃie a corelaŃiei dintre x[n] şi h[n] este
următoarea:
M −1
y[n] = ∑ h [k] ⋅ x [n + k] (5.7)
k =0

În cazul în care relaŃia 5.7 se implementează pentru procese on line, atunci


pentru a evita implicarea în calcule a unor eşantioane viitoare, este nevoie ca
semnalul x[n] să fie întârziat cu M-1 eşantioane. RelaŃia devine:
M −1
y[n] = ∑ h [k] ⋅ x [n - (M -1) + k] (5.8)
k =0

CorelaŃia are importante aplicaŃii practice. Astfel ea poate servi la


identificarea unor forme cunoscute în evoluŃia semnalului.
Să presupunem că suntem interesaŃi de identificarea formei h[n] în semnalul
x[n] , aşa cum este ilustrat în figura 5.2. Pentru aceasta, „vom plimba”
Ioan P. MIHU - Procesarea Numerică a Semnalelor 115

semnalul h[n], numit şablon, de-a lungul semnalului x[n]. În momentul


coincidenŃei şablonului cu o parte din semnalul x[n] , rezultatul produs de
algoritmul (5.8) va fi maxim şi în consecinŃă se poate lua decizia: „în acest
moment a apărut evenimentul cercetat”. Chiar dacă semnalul x[n] este înecat
în zgomot, în momentele în care forma semnalului este apropiată de cea a
şablonului, rezultatul produs de algoritm va fi tot unul de amplitudine mare.

x[n]
ECG cu zgomot

h[n]

y[n] ECG corelat cu


sablonul h[n]

Figura 5.2. CorelaŃia unui semnal ECG înecat în zgomot,


cu un şablon h[n] ales adecvat.

Se produce deci un rezultat de valoare maximă atunci când şablonul “se


potriveşte cel mai bine” cu semnalul. În literatura de specialitate, acest
algoritm este cunoscut şi sub denumirea de template matching. Această
tehnică este folosită spre exemplu la identificarea unor forme în semnale
biomedicale, aşa cum este arătat în exemplul din figura 5.2, unde se observă
că după corelaŃie semnalul rezultat permite identificarea uşoară a
momentelor în care “bate” inima. Se observă o întârziere sistematică a
momentului identificării, întârziere dată de lungimea N a şablonului h[n].
116 Procesare Numerică în Domeniul Timp

O altă aplicaŃie tipică este radarul, la care corelaŃia permite recunoaşterea


semnalelor reflectate de la un avion. Semnalul emis are o anumită formă
(şablon). După reflexia lui de pe suprafaŃa unui avion, el se întoarce înapoi
cu o amplitudine extrem de mică şi este recepŃionat alături de multe alte
zgomote. Dacă se face corelarea semnalului emis cu cel recepŃionat,
maximul acestuia va indica apariŃia unui obiect în câmpul de cercetare al
radarului.
Atunci când corelaŃia unui semnal se face cu el însuşi, algoritmul se
numeşte autocorelaŃie. Prin acest procedeu se identifică cel mai uşor
existenŃa periodicităŃii evenimentelor apărute într-un semnal.

5.5. ConvoluŃia

Este unul dintre cei mai importanŃi algoritmi utilizaŃi în procesarea numerică
a semnalelor. ConvoluŃia dintre un semnal x[k] şi un al doilea h[k] de lungime
M, se defineşte astfel:
N −1
y[n] = ∑ h [k] ⋅ x [n - k] = h [n] ∗ x [n] (5.9)
k =0

ConvoluŃia mai poartă denumirea de produs de convoluŃie.


Dacă observăm că x[−k] reprezintă imaginea reflectată în oglindă a
eşantionului x[k] atunci convoluŃia poate fi privită ca fiind corelaŃia unui
semnal cu imaginea sa reflectată „în oglindă”.

x [n] h [n] y [n]

Figura 5.3. ConvoluŃia între secvenŃele de date h [n] şi x [n].

RelaŃia 5.9 poate fi privită în două feluri: ca şi convoluŃie între două


semnale x [n] şi h [n] , sau ca şi convoluŃie între două secvenŃe de date: un
semnal x [n] , zis de intrare şi coeficienŃii h [n] ai unui sistem liniar, aşa
cum este prezentat în figura 5.3.

5.5.1. Implementarea algoritmului de convoluŃie


În ipoteza că h[n] reprezintă coeficienŃii unui sistem liniar, este util să avem
o imagine exactă a ceea ce înseamnă implementarea algoritmului 5.9
Ioan P. MIHU - Procesarea Numerică a Semnalelor 117

atunci când semnalul x[k] zis de intrare, reprezintă un şir de date rezultate
dintr-un proces de achiziŃie. Pentru aceasta să considerăm un exemplu
numeric şi anume N=4.
y[n] = x [n]⋅ h[0] + x [n-1]⋅h [1] + x [n-2]⋅h [2] + x [n-3]⋅h [3] (5.10)
Raportarea momentului calculului eşantionului curent la semnalul de intrare
este prezentată în figura 5.3.

Ultimele 4 eşantioane sosite


x[n]

nTe

Te
x[n-3] x[n-2] x[n-1] x[n]

h[3] h[2] h[1] h[0]

y[n]

y[n]
nTe

Figura 5.3. ObŃinerea eşantionului curent de ieşire.

În sinteză:
• La convoluŃia dintre coeficienŃii unui sistem liniar şi semnalul de
intrare, eşantionul curent de ieşire se obŃine ca sumă ponderată a
ultimelor N eşantioane ale semnalului de intrare, coeficienŃii de
pondere fiind cele N valori ale coeficienŃilor h[k] ai sistemului.
• Aceasta obligă rezervarea unei locaŃii de memorie, pentru
memorarea ultimelor N eşantioane ale semnalului de intrare.
• Pentru calculul eşantionului de ieşire sunt necesare N înmulŃiri şi
N-1 adunări.
• La sosirea unui nou eşantion al semnalului de intrare, fereastra
definită de cei N coeficienŃi se va deplasa şi ea cu un pas “spre
dreapta”, producând astfel un nou eşantion în semnalul de ieşire.
118 Procesare Numerică în Domeniul Timp

• O problemă practică interesantă este cea legată de calculul


primelor N-1 eşantioane ale semnalului de ieşire, adică a
eşantioanelor aflate la “capătul din stânga” al semnalului y[n] . Dar
care este problema? Pentru a o pune în evidenŃă, este suficient să
calculăm primul eşantion al semnalului de ieşire adică y[0] :
y[0] = x [0] h [0] + x [-1] h [1] + x [-2] h [2] + x [-3] h [3] (5.11)
Se observă că în calcul intervin: x [-1] , x [-2] şi x[-3] . Ele sunt
eşantioane inexistente fizic şi au semnificaŃia unor eşantioane care
provin dinaintea începerii experimentului, când semnalul x[n] încă
nu exista. Pentru a depăşi impasul, se consideră că toate aceste
eşantioane sunt nule . Metoda se numeşte zero-padding.
• Prin zero-padding semnalul s-a prelungit la stânga cu N-1
eşantioane nule. Este evident că această tehnică introduce o
“alterare” a semnalului la margine, fiindcă semnalul x [n] iniŃial nu
mai coincide cu cel prelungit.
• În consecinŃă partea de început a semnalului de ieşire va fi diferită
de restul semnalului de ieşire, fiind bazată pe informaŃii artificiale
ale semnalului de intrare. Fenomenul poate fi asociat cu
fenomenele de tranziŃie care au loc în circuitele electronice, atunci
când acestea sunt conectate la tensiune.
• Dacă h[n] are M elemente, iar x [n] este finit, având lungimea N,
atunci lungimea secvenŃei de ieşire y[n] este de M+N-1 elemente.
• Pentru a rezolva problema calculului la capetele semnalului există
si alte tehnici de prelungire a semnalului x[n]:
- prelungirea prin simetrie;
- prelungirea prin periodicitate;
- prelungirea prin extrapolare liniară, etc.
• În Matlab funcŃia care realizează calculul convoluŃiei a două
secvenŃe este conv(h,x).

5.5.2. ProprietăŃi ale convoluŃiei

Iată câteva din proprietăŃile produsului de convoluŃie:


• Comutativitatea : h [n] * x [n] = x [n] * h [n].
Privind lucrurile din punct de vedere al sistemului din figura 5.3,
comutativitatea nu are în acest caz o semnificaŃie fizică, decât aceea că
din punct de vedere matematic secvenŃele x[n] şi h [n] pot fi schimbate
între ele.
Ioan P. MIHU - Procesarea Numerică a Semnalelor 119

• Asociativitatea : h2 [n] * (h1 [n] * x [n]) = (h2 [n] * h1 [n])*x[n]


Permite echivalarea a două convoluŃii efectuate în serie:
x [n] y [n] x [n] h2 * h2 y [n]
h1[n] h2[n] ⇔ [n] [n]

• ConsecinŃă a asociativităŃii transformărilor liniare, se poate arăta


că rezultatul final este acelaşi dacă se aplică o altă transformare
semnalului de intrare înainte de convoluŃie sau după convoluŃie.

x [n] h[n] y [n]

T T

y’ [n]
x’ [n] h[n]

• Distributivitatea : (h1 [n] * x[n]) + (h2 [n] * x [n] )= (h2[n] + h2 [n] )* x [n]
Permite echivalarea a două convoluŃii efectuate în paralel:
h2[n]
x [n] y [n] x [n] h2[n]+ h2[n] y [n]

h1[n]

• ConvoluŃia unui semnal cu un impuls unitar permite exprimarea


matematică a unor operaŃii elementare aplicate semnalului.
(Impulsul unitar este definit de funcŃia δ[n] având valoarea 1 pentru
n=0 şi zero în rest.)
- Identitatea x [n] = x [n] * δ [n]
- Amplificarea k ⋅x [n] = x [n] * k ⋅δ [n]
- Întârzierea x [n– No] = x [n] * δ [n – No]
• Dacă la intrarea sistemului din figura 5.2 se aduce un impuls unitar
(un singur eşantion având valoare unitară), atunci la ieşirea
sistemului vor apare toŃi coeficienŃii filtrului în ordine. Acest lucru
poate fi uşor probat pe figura 5.3. De aceea coeficienŃii h [n] ai
sistemului mai poartă denumirea de răspuns la impuls.

5.5.3. Aspecte spectrale ale convoluŃiei

Una dintre cele mai importante proprietăŃi ale convoluŃiei este legată
de domeniul frecvenŃă. Am văzut în capitolul precedent că
transformata Fourier se poate aplica atât sistemelor cât şi semnalelor.
120 Procesare Numerică în Domeniul Timp

Aşa cum se vede din figura 5.4, convoluŃia semnalelor x [n] şi h[n] se
poate calcula pe două căi:
• Direct, folosind definiŃia (5.9)
• O cale “mai ocolită”, implicând şi transformata Fourier, în felul
următor:
- se calculează transformatele Fourier ale lui x[n] şi h[n] ;
- se face produsul acestora;
- se calculează transformata Fourier inversă a produsului.
La prima vedere, a doua cale pare o soluŃie în care se efectuează mai
multe calcule. Cu toate acestea, vom vedea mai departe că are
numeroase aplicaŃii în care se economiseşte timp de calcul.
ConvoluŃia a două semnale în domeniul timp însemnă produsul lor în
domeniul frecvenŃă. Reciproc, convoluŃia a două semnale în domeniul
frecvenŃă reprezintă produsul lor în domeniul timp. Ea este menŃionată
în literatura de specialitate ca: teorema convoluŃiei .

N -1

x[n]
y[n] = ∑ x[k] ⋅ h[n -k] = x[n] * h[n]
k =0
h[n]

TFD TFD

Ω]
X[jΩ Ω] = X[jΩ
Y[jΩ Ω] ⋅ H[jΩ
Ω]
Ω]
H[jΩ

TFDI

Ω] ⋅ H[jΩ
y[n] = TFDI { X[jΩ Ω]}
x[n]
h[n]

Figura 5.4. Despre teorema convoluŃiei

În exemplul din figura 5.5 este ilustrată teorema convoluŃiei. Este


prezentat rezultatul convoluŃiei unui semnal compus din două
armonici de frecvenŃe F1 şi F 2 cu un al doilea semnal având un spectru
continuu între 0 şi Ft. În paralel, este arătată şi semnificaŃia
convoluŃiei în domeniul frecvenŃă.
Ioan P. MIHU - Procesarea Numerică a Semnalelor 121

Domeniul timp Domeniul frecvenŃă

sin (2π n F1/Fe)


+ sin (2π n F2/Fe)
nTe f

F1 F2

sin (2πnFt/Fe)

2πnFt/Fe

nTe f

Ft

sin (2π n F1/Fe)


nTe f

F1

Figura 5.4. ConvoluŃia şi semnificaŃia ei în domeniul frecvenŃă.

Rezultatul convoluŃiei celor două semnale se poate stabili rapid,


interpretându-l ca fiind produsul spectrelor celor două semnale,
rezultatul final fiind dispariŃia frecvenŃei F2.
Iată deci că prin convoluŃie am reuşit să înlăturăm (filtrăm) o
frecvenŃă din spectrul semnalului de intrare. Aceste aspecte vor fi
reluate în capitolul dedicat procesărilor în domeniul frecvenŃă.

5.6. Procesări neliniare

Aceste procesări au specific faptul că algoritmul de calcul a secvenŃei de


ieşire nu este o combinaŃie liniară a secvenŃei de intrare, ci are la bază
funcŃii neliniare (logaritmi, radicali, etc.) sau combinaŃii neliniare. Un astfel
de exemplu este transformarea mediană, cunoscută şi sub numele de filtru
median. Trebuie evitată confuzia dintre „valoarea medie” a unei secvenŃe şi
“valoarea mediană". Valoarea medie, numită şi medie aritmetică, este o
122 Procesare Numerică în Domeniul Timp

transformare liniară, valoarea eşantionului la ieşire calculându-se cu relaŃia


5.1, pe când transformarea mediană este o transformare neliniară.
Algoritmul de calcul al valorii mediane este următorul:
• Se selectează din şirul de date ce trebuie filtrat o secvenŃa de date de
lungime M. În tehnica procesărilor numerice, o secvenŃă scurtă dintr-un
şir de date mai lung, se numeşte fereastră.
• M se numeşte ordin al filtrului median;
• Se ordonează toate eşantioanele din fereastră în ordine crescătoare.
• Dacă lungimea ferestrei este impară, atunci valoarea mediană y[n] va fi
egală cu valoarea eşantionului aflat în centrul ferestrei, după ordonare.
• Dacă lungimea ferestrei este pară, mediana se calculează ca medie
aritmetică a celor două valori aflate în centrul ferestrei.
• Se deplasează apoi fereastra cu un eşantion şi se reia algoritmul descris,
până la epuizarea setului de date.
Pentru calculul primei valori vom extinde şirul de date original cu valori de
zero la stânga primului eşantion, câte sunt nevoie pentru a completa
fereastra.
Exemplu. Se dă următorul set de date: [3; 8; 1; 4; 4; 5; 2; 0; 1].
a. Să se determine secvenŃa de date rezultată prin trecerea acestui set
de date printr-un filtru median de ordinul trei.
Rezultatul este: [3; 3; 4; 4; 4; 4; 2; 1; 0].
b. Să se determine secvenŃa de date rezultată dacă se alege o fereastră
de lungime patru (filtru median de ordinul patru).
Rezultatul este: [1,5; 5,5; 4,5; 2,5; 4; 4,5; 3,5; 1; 0,5]

5.7. Procesări statistice ale semnalelor numerice

Este bine să fie amintit aici şi acest tip de prelucrări ale semnalelor
numerice. Această categorie de procesări este utilă, fiindcă oferă parametri
cu caracter global despre semnalul analizat. Aceştia pot fi utili atunci când
se doreşte aflarea unor trăsături specifice ale semnalului, identificarea
sau încadrarea acestuia într-o anume categorie.
Există şi statistici al căror rezultat poate induce în eroare, sau poate da
informaŃii în spatele cărora adevărul este altul. Spre exemplu, un ins are
două pâini iar un altul nu are nici una. Rezultatul statisticii arată că pe cap
de locuitor revine câte o pâine…
Prelucrările statistice se fac de obicei off line. Fie că este rezultatul unor
achiziŃii de date din procese fizice, fie că reprezintă rezultatul unor activităŃi
Ioan P. MIHU - Procesarea Numerică a Semnalelor 123

contabile, etc, setul de date care se procesează există la un moment dat, fiind
disponibil pe calculator şi nu mai suferă schimbări pe durata procesării.

4.6.1. Valoarea medie


1 N-1
µ= ⋅∑ x [k] (5.9)
N k= 0
N reprezintă numărul de date aflate în setul analizat, de exemplu numărul de
date aflat într-un fişier rezultat din achiziŃia unui semnal.

4.6.2. DeviaŃia
1 N−1
σ2 =
N − 1 k= 0
(
⋅∑ x [k] −µ ) 2
(5.10)

4.6.3. Histograma
− Câte date de o anume valoare există într-un set de date?
− Câte date aflate într-un anumit interval de valori există într-un set de date?
La astfel de întrebări, răspunsul este dat de histograma setului de date.
n = 0; k = 0;

i = 0;

Da
X[n] = k; i = i+1;
?

n = n + 1;

Da
n ≤ Ndat HST[k] = i;
?
k = k +1; n=0;

Da
END k ≤ Kmax
?

Figura 5.5. Determinarea valorilor histogramei HST[k]

Eşantioanele setului de date sunt x[n], iar xmax şi xmin sunt limitele între care
se găsesc cuprinse valorile secvenŃei. În fond domeniul [xmin ÷ xmax]
124 Procesare Numerică în Domeniul Timp

defineşte domeniul de valori al funcŃiei x[n]. Să presupunem că setul de date


x[n] este unul format din numere întregi, spre exemplu întregi codificaŃi pe
un octet. Vor fi deci 256 de valori posibile pe care le pot lua elementele din
setul de date.
Histograma este o reprezentare grafică a valorilor HST[k]. Dacă ne referim
la exemplul ales, atunci pe axa absciselor se vor găsi cele 256 de valori, iar
corespunzător fiecăreia din cele 256, se va reprezenta numărul HST, rezultat
în urma algoritmului prezentat în figura 5.5.

HST[k]

01234 255 k

Figura 5.6. Exemplu de histogramă.

Dacă setul de date este format din numere reale, atunci pentru a stabili
histograma se împarte domeniul de valori al semnalului [xmin ÷ xmax] în M
intervale egale, şi se cercetează câte valori se găsesc în fiecare interval.
O remarcă importantă referitoare la histogramă este aceea că spre deosebire
de celelalte procesări amintite, ea nu produce un singur eşantion, ci produce
un set nou de date. O astfel de procesare este o “transformare”, fiindcă
pornind de la un set de date de intrare, ea produce un alt set de date.
Prelucrările propuse în acest capitol pot fi realizate şi on line. În acest sens,
din semnalul ce soseşte secvenŃial din procesul de achiziŃie, se alege o
fereastră conŃinând ultimele M eşantioane, iar acestei ferestre i se aplică
algoritmul statistic propus, spre exemplu histograma. Evident că în acest fel
histograma devine o histogramă dinamică, fiindcă la fiecare nou eşantion,
este posibil ca ea să-şi modifice conŃinutul.
Există şi alte tipuri de procesări asupra seturilor de date provenite din
achiziŃia de semnale, procesări care produc rezultate utile pentru analiza şi
clasificarea semnalelor. Un astfel de exemplu este şi “numărul de treceri
prin zero” ale semnalului, pentru o fereastră dată din semnal.
Ioan P. MIHU - Procesarea Numerică a Semnalelor 125

5.8. AplicaŃii
Problema 5.1. Fie două fişiere conŃinând fiecare câte 1.000 de date. Valorile
acestora sunt generate prin următoarele funcŃii matematice:
a. x[n] = n
0 pt n par
b. x [n] = 
1 pt n impar
Să se traseze histogramele seturilor de date din cele două fişiere.
Problema 5.2. Se dau variabilele:
h[6] = [0 0 1 2 1 -1 0];
x[6] = [0 0 0 1 2 3 1];
a. Să se calculeze “cu creionul” produsul de convoluŃie y[n] = h[n] * x[n]
pe baza relaŃiei 5.8.
b. ReprezentaŃi grafic h[6], x[6], y[6].
c. VerificaŃi rezultatul în Matlab.
Problema 5.3. În următoarea sesiune de lucru în Matlab:
a. Să se genereze şi să se afişeze două perioade ale unui semnal
sinusoidal de frecvenŃă 50 Hz, amplitudine 10 şi Fe= 1.000 Hz.
b. Să se genereze un semnal aleator cu amplitudinea 1, care să se
însumeze cu cel de la punctul a. Să se afişeze grafic suma.
c. Să se folosească un algoritm de mediere pentru înlăturarea
semnalului aleator din semnalul sumă.
d. Să se afişeze rezultatul filtrării.
e. Să se compare semnalul iniŃial cu cel procesat şi să se analizeze
efectul lungimii ferestrei de mediere asupra rezultatului.
Problema 5.4. În următoarea sesiune de lucru în Matlab:
a. Să se genereze şi să se facă graficul unui semnal sinusoidal de
frecvenŃă 50 Hz, amplitudine 10 şi având Fe= 1.000 Hz.
b. Să se folosească un algoritm de derivare de ordinul unu cu care
să fie procesat semnalul de la punctul a.
c. Să se afişeze separat rezultatul.
d. Cu ce diferă rezultatul, de cel care s-ar fi obŃinut dacă derivam
întâi semnalul analogic şi apoi îl eşantionam?
e. Să se facă derivata derivatei şi să se afişeze rezultatul.
Problema 5.5. În următoarea sesiune de lucru în Matlab:
a. Să se facă derivata unui semnal audio.
b. Să se analizeze numărul de treceri prin zero al semnalului audio
şi apoi al derivatei acestuia.
126 Procesare Numerică în Domeniul Timp

Problema 5.6. În următoarea sesiune de lucru în Matlab: Să se traseze


histograma dinamică a unui semnal preluat dintr-un fişier .wav,
a. pentru o fereastră M = 10 ;
b. pentru o fereastră M = 100.
Problema 5.6.. Unui filtru numeric i se aduce la intrare secvenŃa x[n] =
{2,3}. La ieşirea lui apare y[n] = {0, 2,3}. Să se determine structura şi
valoarea coeficienŃilor filtrului.
SoluŃie:
De vreme ce răspunsul filtrului este finit în timp, filtrul este de tip
nerecursiv (FIR). Dacă h [n] are M elemente, iar x [n] este finit, având
lungimea N, atunci lungimea secvenŃei de ieşire y[n] este de M+N-1
elemente.
Deci:  N = 2 Rezultă: M= 2, adică filtrul are doi coeficienŃi. Aceştia
M + N − 1 = 3
vor fi h[0] şi h[1].
h ⋅2+0=0 h [ 0] = 0
Dezvoltând se obŃine  [ 0] ⇒ 
h [ 0] ⋅ 3 + h [1] ⋅ 2 = 2 h [1] = 1

5.9. Bibliografie

[5.1] Porat, B, “A Course in Digital Signal Processing”, John Wiley and


Sons, 1997
[5.2] Ifeachor, E.C., Jervis, B.W., “Digital Signal Processing – A Practical
Approach”, Addison/Wesley, 1999
[5.3] *** http://www.bores.com/courses/intro/time/index.htm
[5.4] *** http://www.jhu.edu/~signals/index.html
[5.5] *** http://www.dspguide.com/ch6.htm
[5.6] *** http://dsplab.eng.fiu.edu/DSP/Courses/index.html
[5.7] *** http://privatewww.essex.ac.uk/~mpthak/concise_dsp_tutorial.pdf
6. PROCESĂRI ÎN DOMENIUL FRECVENłĂ

FILTRE NUMERICE

6.1. Introducere

Pentru început o scurtă aducere aminte a ceea ce înseamnă filtrare în


lumea semnalelor analogice.

x(t) y(t)

Figura 6.1. Bloc de prelucrare a unui semnal analogic.

Filtrul analogic reprezintă un bloc funcŃional cu proprietăŃi selective în


domeniul frecvenŃei. Dacă semnalul x (t) din figura 6.1 are un spectru
de frecvenŃă dat, atunci datorită filtrului, în spectrul semnalului y(t) nu
se vor regăsi frecvenŃele care compun spectrul lui x (t) cu aceleaşi
amplitudini, ci o anumită parte din ele vor diferi sau chiar vor lipsi cu
totul. Deci acest bloc funcŃional numit filtru analogic are proprietăŃi
selective faŃă de anumite frecvenŃe din spectrul semnalului de intrare.
ConstrucŃia acestor filtre se realizează cu circuite liniare conŃinând ca
elemente de circuit R, L, C, caz în care filtrul se numeşte filtru pasiv,
iar dacă la aceste elemente se adaugă şi blocuri amplificatoare, atunci
filtrul se numeşte filtru activ. Dacă la intrarea acestui circuit se aduce
un semnal sinusoidal, evident şi semnalul de ieşire va fi tot sinusoidal
dar este posibil să aibă o amplitudine diferită faŃă de a celui de intrare,
precum şi o fază diferită.
• Se numeşte „caracteristica amplitudine / frecvenŃă”
reprezentarea grafică a dependenŃei de frecvenŃă a modulului
128 Filtre Numerice

raportului dintre amplitudinea semnalului de ieşire şi


amplitudinea semnalului de intrare, atunci când acestea sunt
sinusoidale.
• Se numeşte „caracteristica fază / frecvenŃă” dependenŃa de
frecvenŃă a defazajului dintre semnalul sinusoidal de ieşire şi
cel de intrare.
Vom încerca să transpunem cele prezentate anterior în domeniul
semnalelor discrete. În figura 6.2 este prezentat un sistem a cărui
funcŃionalitate se doreşte a fi similară cu a filtrului analogic. La
intrarea şi la ieşirea blocului de prelucrare nu se mai găsesc mărimi
fizice, precum tensiuni electrice, ci se găsesc date numerice sau mai
simplu spus, numere. În acest caz, blocul de prelucrare este un
algoritm (regulă) de calcul ce generează o secvenŃă de date la ieşirea
sa, pornind de la o secvenŃă de date de intrare. Pentru ca analogia să
fie completă, va trebui să vedem ce efect are algoritmul de calcul
asupra spectrului de frecvenŃă al semnalului y[n] în raport cu cel al
semnalului x [n].

x[n] y[n]

Figura 6.2. Bloc de prelucrare a unui semnal discret.

Pare neverosimil pentru început că un algoritm de calcul poate duce la


modificări spectrale, dar iată două exemple simple şi uşor de urmărit
care ilustrează acest lucru.

6.1.1. Algoritm cu rol de filtru Trece Jos


X[n] + X[n - 1] 1 1
y[n] = = X[n] + X[n - 1] (6.1)
2 2 2

Conform algoritmului propus, valoarea eşantionului furnizat la ieşirea


filtrului la un moment dat este egală cu semi-suma dintre eşantionul
curent de la intrare x [n] şi cel anterior, x[n-1] .
Ioan P. MIHU - Procesarea Numerică a Semnalelor 129

Te
x [ n]
1/2 1/2

y [ n]
+

Figura 6.3. Schema algoritmului 6.1.


Acest algoritm poate fi intuitiv reprezentat ca în figura 6.3, unde prin
-1
z s-a notat celula de întârziere de ordinul 1. Această celulă realizează
o întârziere în timp egală cu Te, deci la ieşirea ei este disponibil
eşantionul imediat anterior. Din schemă rezultă modul de operare al
algoritmului, şi anume: din secvenŃa de eşantioane x [n] se ia eşantionul
curent şi cel anterior, ambele se înmulŃesc cu 1/2 şi apoi se însumează,
rezultatul fiind depus la ieşirea filtrului.
a.) Pentru început aducem la intrarea filtrului un semnal provenit din
eşantionarea unui semnal continuu constant, de valoare unitară,
(x[n] = x [n-1] = x [n-2] =... =1), aşa cum este arătat în figura 6.4.
x n x [ n]
1 1

nTe nTe

y [ n]
y n

1 1

nTe nTe

Fig. 6.4 Semnal continuu. Fig. 6.5. Semnal de frecvenŃă Fe/2.

Semnalul continuu poate fi considerat ca provenind din eşantionarea în


momentele învecinate maximului unei sinusoide de frecvenŃă nulă
(perioada tinde către infinit). Se poate uşor constata că aplicând
130 Filtre Numerice

algoritmul propus, la ieşirea filtrului vom avea y[n]=1, pentru orice


moment ales sau cu alte cuvinte la ieşirea filtrului se va regăsi
semnalul de la intrare. În acest caz, se poate afirma că "semnalul
continuu (de frecvenŃă nulă), trece nedeformat prin filtru".

b). Vom aduce acum la intrarea aceluiaşi filtru secvenŃa: x [n] =1;
x [n-1] = -1; x [n-2] = 1; x [n-3] = -1; etc. Aşa cum se vede din figura 6.5,
această secvenŃă poate proveni din eşantionarea unui semnal
sinusoidal având frecvenŃa Fe/2, momentele eşantionării "căzând"
chiar în momentele de extrem ale semnalului. Aplicând algoritmul 6.1,
rezultă că la ieşire vom avea în permanenŃă y[n] =0 pentru orice
moment ales. Deci algoritmul 6.1 se comportă total diferit faŃă de
acest al doilea semnal comparativ cu primul, şi anume el nu permite
trecerea semnalului de frecvenŃă Fe/2.
Făcând o sinteză a comportării acestui algoritm faŃă de semnale de
frecvenŃe diferite şi plasând într-o caracteristică de frecvenŃă cele
două semnale exemplificate, rezultă că forma caracteristicii de
frecvenŃă a algoritmului propus este de tip filtru "trece jos" (FTJ), aşa
cum este arătat în figura 6.6.
|H|

Fe / 2

Figura 6.6. Caracteristica aproximativă de frecvenŃă


a algoritmului 6.1.

6.1.2. Algoritm cu rol de filtru Trece Sus


X[n] − X[n - 1] 1 1
y[n] = = ⋅ X[n] − ⋅ X[n - 1] (6.2)
2 2 2

Noul algoritm propus poate fi descris de schema din figura 6.7. Se


observă că algoritmul are aceeaşi structură ca şi cel precedent (o
singură celulă de întârziere), cu excepŃia coeficientului de multiplicare
al lui x [n-1] .
Ioan P. MIHU - Procesarea Numerică a Semnalelor 131

Te
X[ n ]
1/2 -1/2

Y[n]
+

Figura 6.7. Schema algoritmului 6.2.

Vom aplica acestui algoritm pe rând cele două semnale utilizate în


exemplul anterior. Rezultatul trecerii acestora este ilustrat în figurile
6.8 şi 6.9.
Xn -1 Xn Xn -1 Xn
1 1

nTe nTe
-1

Yn Yn
1

nTe nTe
-1

Fig. 6.8 Semnal continuu. Fig. 6.9. Semnal de frecvenŃă Fe/2.

Concluzia acestui exemplu este acea că semnalul continuu (de


frecvenŃă nulă) nu trece prin filtru, pe când cel de frecvenŃă Fe/2 trece
nedeformat. Cele afirmate pot fi înglobate într-o caracteristică de
frecvenŃă aproximativă, căreia îi cunoaştem însă cu exactitate două
puncte prin care va trece, cele corespunzătoare frecvenŃelor 0 şi Fe/2.
Forma caracteristicii determinată de aceste două puncte este una de tip
„trece sus” şi ea este ilustrată în figura 6.10.
132 Filtre Numerice

|H|

Fe / 2

Figura 6.10. Caracteristica aproximativă de frecvenŃă


a algoritmului 6.2.

În sinteză la exemplele prezentate, rezultă că algoritmii de calcul au o


comportare selectivă faŃă de semnale cu frecvenŃe diferite, de unde şi
justificarea denumirii lor de filtre. Deoarece aceste filtre sunt
implementate cu algoritmi numerici, ele se numesc filtre numerice.
Orice algoritm de calcul se încadrează în marea categorie cunoscută
sub numele de procesare numerică de semnal. Obiectivele
algoritmilor de calcul, implementaŃi pe sisteme numerice, pot fi foarte
diverse, aşa cum am arătat în capitolul 1.

În categoria procesărilor numerice de semnal,


vom defini filtrul numeric ca fiind acel algoritm care are ca obiectiv
o comportare spectrală selectivă, apriori stabilită,
faŃă de semnalele pe care acestea le procesează.

Iată, deci, că toate filtrele numerice sunt algoritmi de calcul, care


produc la ieşire o secvenŃă y[n] pornind de la o secvenŃă de intrare x [n],
şi având ca scop o comportare selectivă faŃă de semnale de frecvenŃă
diferită, cuprinse în secvenŃa x [n] .
Există două mari categorii de probleme legate de filtrele numerice:
• Impunându-se filtrului o anumită comportare în domeniul
frecvenŃă (dată de obicei prin caracteristica de frecvenŃă),
trebuie determinată structura şi coeficienŃii acestuia. Problema
o vom numi în continuare „proiectarea filtrului”.
• Fiind dat un algoritm trebuie determinată comportarea sa
spectrală. Problema o vom numi „analiza filtrului”.
Ioan P. MIHU - Procesarea Numerică a Semnalelor 133

6.2. Clasificarea filtrelor numerice

Principial, un filtru numeric reprezintă un sistem liniar prin care „trece” un


semnal. Criteriile de clasificare a filtrelor numerice sunt în parte aceleaşi cu
ale sistemelor, de aceea le vom aminti sintetic, cu câteva precizări
specifice. Dintre criteriile de clasificare a filtrelor numerice, cele mai
importante sunt următoarele:

6.2.1. Filtre nerecursive / filtre recursive. Este un criteriu major de


clasificare a filtrelor din punct de vedere al structurii algoritmului. Astfel,
există două mari categorii:

a. Filtre nerecursive
Aceste filtre au specific faptul că ieşirea y[n] a filtrului depinde doar de
valoarea ultimelor N eşantioane din secvenŃa de intrare x[n] şi de valoarea
celor N coeficienŃi ai filtrului. Acest tip de filtru este definit de algoritmul
următor:
N −1
y[n] = ∑ h [k] ⋅ x[n - k] (6.3)
k =0

Grafic, structura de filtru nerecursiv este ilustrată în figura 6.11.


Reprezentarea grafică a unui filtru prezintă foarte intuitiv circulaŃia fluxului
de date. Se mai numeşte şi filtru „transversal”. ObservaŃii:
−1
• Blocul grafic notat cu z reprezintă „celula de întârziere”. Dacă la
intrarea ei se află eşantionul curent, atunci la ieşirea ei se află
eşantionul anterior acestuia. Din punct de vedere fizic acest lucru este
uşor de realizat: dacă secvenŃa de date de intrare ocupă cronologic un
anumit spaŃiu de memorie, şi dacă eşantionul curent este x[n] , atunci x[n-
1] reprezintă eşantionul mai vechi cu o perioadă de eşantionare, şi care
ocupă locaŃia de memorie învecinată.
• Fiecare eşantion este multiplicat cu unul din cei N coeficienŃi ai
filtrului. Acest lucru este ilustrat grafic de valoarea h[k] trecută în
triunghiul aferent fiecărui eşantion. Adesea coeficienŃii nu se mai
desenează în acel „triunghi” ci sunt trecuŃi alături de linia aferentă
eşantionului.
134 Filtre Numerice

• Valoarea curentă y[n] a ieşirii filtrului rezultă prin însumarea tuturor


produselor, conform relaŃiei de definiŃie 6.3.
x [n] x [n-1] x [n-2] x [n-(N-1]
Te Te Te

h[0] h[1] h[2] h [N-1]

y [n]
+

Figura 6.11. Filtru nerecursiv.

Pentru implementarea unui algoritm de filtru nerecursiv, trebuie:


• Să existe spaŃiu de memorie suficient şi să fie memorate cronologic,
ultimele (N-1) eşantioane din secvenŃa de intrare, inclusiv eşantionul
curent;
• să fie cunoscuŃi cei N coeficienŃi ai filtrului;
• să existe alocat un spaŃiu de memorare pentru cei N coeficienŃi ai
filtrului;
• să se efectueze cele N înmulŃiri;
• să se efectueze cele (N-1) adunări.

b. Filtre recursive
La acest tip de filtre ieşirea y[n] depinde atât de valoarea ultimelor N
eşantioane din secvenŃa de intrare x[n] , cât şi de valoarea ultimelor M
eşantioane din chiar secvenŃa de ieşire.
Acest tip de filtru este definit de algoritmul următor:
N -1 M
y[n] = ∑ h [k] ⋅ x [n - k] − ∑ b [ j ] ⋅ y[n - j ] (6.4)
k =0 j=1

Aşa cum se observă, atât din relaŃia de definiŃie, cât şi din figura 6.13 în
care este ilustrat graful unui filtru recursiv, însumarea pentru termenii
recursivi (cei ce implică secvenŃa de ieşire), nu îl include şi pe y[n] , ci doar
valori anterioare ale acestuia începând cu y[n-1], deoarece este evident că
Ioan P. MIHU - Procesarea Numerică a Semnalelor 135

ieşirea nu poate depinde de ea însăşi, atâta vreme cât ea nu este


determinată.
Structura de bază a filtrului recursiv este cea din figura 6.12, numită forma
transversală.

x [n] x [n-1] x [n-2] x [n-(N-1]


Te Te Te

h[0] h[1] h[2] h [N-1]

y [n]
+

-b [M] - b [2] - b [1]

Te Te Te
y [n- M] y [n-2] y [n-1]

Figura 6.12. Filtru recursiv. Forma transversală.

Există şi alte forme în care poate fi organizată structura unui filtru recursiv.
Spre exemplu, reaşezând forma transversală din figura 6.12 ca în figura
6.13, şi observând că cele două blocuri marcate cu linie punctată sunt
comutative, se obŃine structura din figura 6.14.
136 Filtre Numerice

x [n] y [n]
h[0]
+ +

Te Te
h[1] b[1]

Te Te

h[N-2] b[M]

Te
h[N-1]

Figura 6.13. Filtru recursiv. Variantă a formei transversale.

x [n] y [n]
+ h[0]
+

Te Te

b[1] h[1]

Te Te

b[M] h[N-2]

Te
h[N-1]

Figura 6.14. Filtru recursiv. Variantă a formei transversale.

În figura 6.14, celulele de întârziere învecinate au funcŃii identice, de aceea


se pot înlocui cu câte o singură celulă de întârziere. Rezultă astfel structura
din figura 6.15 numită forma canonică paralel.
Ioan P. MIHU - Procesarea Numerică a Semnalelor 137

x [n] v [n] y [n]


+ h[0]
+

Te

b[1] h[1]

Te

b[M] h[N-2]

Te
h[N-1]

Figura 6.15. Filtru recursiv. Forma canonică paralel.

Avantajul acestei forme faŃă de forma transversală este acela că


implementarea algoritmului necesită un număr mai mic de celule de
întârziere. Forma canonică paralel obligă în schimb la folosirea unei
variabile intermediare.
Există şi alte structuri de filtre, dintre care unele vor fi amintite în capitolul
dedicat proiectării filtrelor recursive.
6.2.2. Filtre cauzale / necauzale
La filtrele cauzale mărimea de ieşire depinde doar de valoarea prezentă şi
de valorile trecute ale secvenŃei x[n] , nu şi de valorile viitoare.
Exemple:
y[n] = 0,8⋅x[n ] − 0,2⋅x[n-1] + 0,05⋅x[n-2] este cauzal;
y[n] = 0,8⋅x[n +1] + 0,2⋅x[n] + 0,05⋅x[n-1] este necauzal, deoarece depinde de
un eşantion necunoscut încă: x[n +1];
y[n] = 0,8⋅x[n -1] + 0,2⋅y[n+1] ; este necauzal; depinde de y[n+1];
Filtrele necauzale nu pot fi implementate pe sisteme numerice on line. De
aceea în cazul în care rezultă algoritmi ce conŃin „eşantioane viitoare”
precum: x[n+1], y[n+1] etc, atunci soluŃia pentru implementarea lor o
constituie transformarea lor în filtre cauzale prin întârzierea lor cu un număr
suficient de impulsuri de tact (k), astfel încât x[n+k] să devină x[n].

6.2.3. Filtre stabile / instabile


138 Filtre Numerice

Filtrele stabile sunt cele care produc la ieşire valori finite, atunci când la
intrare se aduc secvenŃe de valori finite.
Filtrele instabile sunt cele care produc la ieşire valori infinite, atunci când
la intrare se aduc secvenŃe de valori finite. Iată două exemple:
a. y[n] = x[n] + x[n -1] + x[n -2] ;
KTe 0 1 2 3 4 5 6 7 ...... ∞
x[n] 1 1 1 0 0 0 0 0 0
y[n] 1 2 3 2 1 0 0 0 ...... 0

ObservaŃie importantă: De fiecare dată când în calculul unui


eşantion de ieşire intervin eşantioane al căror indice se află în afara
şirului de date existent, acestea vor fi considerate nule. Spre
exemplu, în calculul primului eşantion vom avea: y[0] = x[0] + x[ -1] +
x[ -2]. Ori, aşa cum se vede în şirul de date, nu există decât eşantioane
cu indice superior lui zero. Pentru a depăşi impasul, vom considera
în continuare că: x[ -1] = x[ -2] = 0, ceea ce echivalează de fapt cu
prelungirea la stânga a şirului de date x[ n] cu două valori nule. Din
punct de vedere fizic, semnificaŃia acestei atribuiri de valori nule
este aceea că toate eşantioanele de intrare dinaintea momentului
începerii experimentului, sunt considerate că există şi ca au valoare
nulă.
Din exemplul analizat se observă că ieşirea filtrului ia valori finite,
adică filtrul este stabil. Toate filtrele nerecursive sunt stabile.
b. y[n] = x[n] + y[n -1] + y[n -2] ;
Considerând că x[n] ia o singură dată valoarea 1, şi că iniŃial toate
valorile secvenŃei de ieşire sunt nule, rezultă:
KTe 0 1 2 3 4 5 6 7 ...... ∞
x[n] 1 0 0 0 0 0 0 0 0
y[n] 1 1 2 3 5 8 13 21 ...... ∞
Se observă că indiferent de valoarea lui x[n] > 0, ieşirea tinde către
infinit, ceea ce face ca filtrul să fie instabil. Filtrele recursive pot fi
instabile, în funcŃie de valoarea coeficienŃilor.

6.2.4. Filtre FIR / IIR. Criteriul avut în vedere de această clasificare este
acela al timpului în care ieşirea unui filtru revine la zero, după aplicarea
Ioan P. MIHU - Procesarea Numerică a Semnalelor 139

unui impuls unitar la intrare. Conform acestui criteriu, există două tipuri de
filtre:
• Filtre cu răspuns finit la impuls. În literatura de specialitate sunt
desemnate cu acronimul FIR (Finit Impulse Response). Filtrele de tip
FIR sunt acelea la care ieşirea revine la zero după o durată finită de
timp de la aplicarea impulsului unitar.
• Filtre cu răspuns infinit la impuls sau filtre IIR (Infinit Impulse
Response). Sunt filtrele la care ieşirea revine la zero după o durată
infinită de timp de la aplicarea impulsului unitar. Iată două exemple:

a. y[n] = x[n ] + 2⋅x[n -1] + 3⋅x[n -2];


Se zice că x[n] este un impuls unitar atunci când ia o singură dată
valoarea 1, şi anume în momentul iniŃial, toate celelalte valori fiind
nule. El este similar impulsului Dirac folosit în studiul semnalelor în
timp continuu.
kTe 0 1 2 3 5 ...... ∞
x[n] 1 0 0 0 0 0
y[n] 1 2 3 0 0 ...... 0

Se observă că ieşirea filtrului revine la valoarea zero după un


interval de timp egal cu lungimea filtrului ori perioada de
eşantionare. Mai mult decât atât, aplicarea unui impuls unitar la
intrarea filtrului FIR, va produce la ieşirea acestuia chiar valorile
coeficienŃilor filtrului.
În concluzie, toate filtrele nerecursive sunt FIR.
b. y[n] = x[n ] + 0,1⋅y[n -1] ;
Considerând că x[n] este un impuls unitar şi că iniŃial toate valorile
secvenŃei de ieşire sunt nule, rezultă:
kTe 0 1 2 3 5 ...... ∞
x[n] 1 0 0 0 0 0
y[n] 1 0,1 0,01 0,001 0,0001 ...... 0

Iată deci că la apariŃia unui impuls unitar la intrarea filtrului,


ieşirea sa revine la zero abia după un timp infinit. Din acest
motiv filtrul din acest exemplu este un fitru cu „răspuns infinit
la impuls”.
Se poate afirma că, de regulă, filtrele recursive sunt IIR .
140 Filtre Numerice

În afara tipurilor de filtre amintite există şi alte categorii, ca de exemplu:


• Filtre cu fază liniară. Sunt acele filtre care produc un defazaj
proporŃional cu frecvenŃa între sinusoida de ieşire şi cea de intrare.
Toate filtrele nerecursive sunt filtre cu fază liniară.
• Filtre „notch”. Sunt filtrele al căror obiectiv este acela de a rejecta
(înlătura) o singură frecvenŃă şi de a afecta cât mai puŃin restul
frecvenŃelor.

6.2.5. Ordinul filtrului

În cazul cel mai general, cel al filtrelor recursive:

Se numeşte ordin al filtrului, numărul maxim al celulelor de memorare,


dintre cele aflate la intrare sau cele aflate la ieşire.

Ex: y[n] =2 x[n] – x[n–1] + y[n–2]. ordinul 2


y[n] = x[n] –y[n–3]. ordinul 3
y[n] =2 x[n] – x[n–1] + x[n–2]+ y[n–1] ordinul 2
În cazul filtrelor nerecursive, ordinul filtrului reprezintă numărul maxim de
celule de memorare folosite la intrarea filtrului.
Ex: y[n] =2 x[n] – x[n–1] ordinul 1
y[n] = x[n] – x[n–3] ordinul 3

6.3. AplicaŃii

Problema 6.1. Ordinul unui filtru este egal cu numărul maxim al celulelor
de întârziere, dintre cele aflate la intrarea filtrului sau la ieşirea sa. PrecizaŃi
ordinul filtrelor următoare:
• y[n] =2 x[n] – x[n–1] + y[n–1].
• y[n] = x[n] – x[n–3] + y[n–3].
• y[n] =2 x[n] – x[n–1] + x[n–2]+ y[n–1] + y[n–2].
• y[n] =2 x[n]
• Poate avea un filtru recursiv ordinul zero ?
Ioan P. MIHU - Procesarea Numerică a Semnalelor 141

Problema 6.2. Se dă filtrul: y[n] = x[n] + y[n–1]. PrecizaŃi dacă acest filtru
este:
• cauzal / necauzal;
• recursiv / nerecursiv;
• FIR / IIR.
Problema 6.3. Se dă filtrul: y[n] = x[n] – 2x[n–1] + x[n–2]. SecvenŃa x[n] este
cea din figura 6.16:

x[n]

y[n]

Figura 6.16. Semnale pentru problema 6.3.

• Să se determine şi să se deseneze secvenŃa de ieşire y[n];


• Ce formă ar avea y[n] dacă x[n] ar proveni dintr-o sinusoidă?
• Care ar fi defazajul dintre sinusoida de intrare şi cea de ieşire,
dacă x[n] = Asin (2π⋅n⋅F / Fe) unde F=50 Hz, Fe=1000 Hz ?
• Ce formă ar avea secvenŃa de ieşire dacă x[n]= δ[n] (impuls
unitar)?
• EvidenŃiaŃi eşantioanele de ieşire afectate de zero-padding.
Problema 6.4. Pentru un sistem liniar şi invariant în timp se cunoaşte
răspunsul la impulsul unitar h[n]. Să se determine răspunsul sistemului dacă
se cunoaşte secvenŃa de intrare x[n] pentru exemplul din figura următoare:
142 Filtre Numerice

x[n] 2
1
n

h[n]
1
n

y[n]

Figura 6.17. Semnale pentru problema 6.4.

Problema 6.5. Să se arate printr-un exemplu că sistemul din problema


anterioară este invariant în timp.

Problema 6.6. Un filtru numeric este descris de următorul algoritm:


y[n] =0,5 x[n] – x[n–1] +0,5 x[n–2].
• Care este ordinul filtrului?
• Cum se comportă acest filtru faŃă de un semnal de frecvenŃă nulă?
• Poate fi acest filtru un FTJ?
• DesenaŃi schema bloc a filtrului în forma transversală.
Problema 6.7. Pentru filtrele următoare, determinaŃi răspunsul la impuls
unitar.
a. y[n] =2 x[n] – x[n–1] + x[n–2]
b. y[n] =2 x[n] – x[n–1] + x[n–2]+ y[n–1]
Problema 6.8. Se dă filtrul: y[n] =2 x[n] – x[n–1] + x[n–2]+ y[n–1]
a. DesenaŃi structura filtrului în forma transversală.
b. DesenaŃi structura filtrului în forma canonică paralel.
c. CalculaŃi primele 10 eşantioane ale răspunsului unitar al filtrului
folosind forma transversală
d. CalculaŃi primele 10 eşantioane ale răspunsului unitar al filtrului
folosind forma canonică paralel. ComparaŃi rezultatele.
Ioan P. MIHU - Procesarea Numerică a Semnalelor 143

6.4. Bibliografie

[6.1] Ifeachor, E.C., Jervis, B.W., “Digital Signal Processing – A Practical


Approach”, Addison/Wesley, 1999
[6.2] *** http://www.dspguide.com/ch14.htm
[6.3] *** http://www.jhu.edu/~signals/dtftprops/indexDTFTprops.htm
[6.4] *** http://www.bores.com/courses/intro/freq/index.htm
[6.5] *** http://www.dsptutor.freeuk.com/intro.htm