Convolutia Si Filtrarea Semnalelor

18
Convolutia si filtrarea semnalelor Convolutia este o modalitate matematica de a combina doua semnale pentru a forma un al treilea. Ea este singura tehnica importanta in procesarea digitala a semnalelor. Folosind strategia descompunerii in impulsuri, sistemele sunt descris de un semnal numit raspuns la impuls. Convolutia este importanta deoarece leaga cele trei semnal de interes: semnalul de intrare, semnalul de iesire si raspunsul la impuls. Acest capitol prezinta convolutia din doua puncte diferite de vedere, numite algoritmul de intrare si algoritmul de iesire. Functia delta si raspunsul la impuls Figura de mai jos ilustreaza definitia a doi termeni importanti in DSP: functia delta si raspunsul la impuls. Functia delta Raspunsul la impuls Functia delta este un impuls normalizat Toate esantioanele sale au valoarea zero cu exceptia unuia singur care are valoarea unu. Raspunsul la impuls al unui sistem liniar, notat de regula prin h[n], este semnalul de iesire al unui sistem liniar atunci cand la intrarea s-a aplicat un semnal impuls unitar (functia delta). Doua sisteme liniare vor avea desigur doua raspunsuri diferite la aplicarea functiei delta. Pe scurt doua raspunsuri la impuls diferite. Orice impuls poate fi exprimat in functie de functia delta. Spre exemplu, un impuls a[n] care ia valoarea -3 pentru esantionul 7 se poate scrie:

Transcript of Convolutia Si Filtrarea Semnalelor

Page 1: Convolutia Si Filtrarea Semnalelor

Convolutia si filtrarea semnalelor

Convolutia este o modalitate matematica de a combina doua semnale pentru a

forma un al treilea. Ea este singura tehnica importanta in procesarea digitala a semnalelor.

Folosind strategia descompunerii in impulsuri, sistemele sunt descris de un semnal numit raspuns

la impuls. Convolutia este importanta deoarece leaga cele trei semnal de interes: semnalul de

intrare, semnalul de iesire si raspunsul la impuls. Acest capitol prezinta convolutia din doua

puncte diferite de vedere, numite algoritmul de intrare si algoritmul de iesire.

Functia delta si raspunsul la impuls

Figura de mai jos ilustreaza definitia a doi termeni importanti in DSP: functia delta si raspunsul

la impuls.

Functia delta

Raspunsul la impuls

Functia delta este un impuls normalizat Toate esantioanele sale au valoarea zero cu exceptia

unuia singur care are valoarea unu.

Raspunsul la impuls al unui sistem liniar, notat de regula prin h[n], este semnalul de iesire al

unui sistem liniar atunci cand la intrarea s-a aplicat un semnal impuls unitar (functia delta).

Doua sisteme liniare vor avea desigur doua raspunsuri diferite la aplicarea functiei delta. Pe scurt

doua raspunsuri la impuls diferite.

Orice impuls poate fi exprimat in functie de functia delta. Spre exemplu, un impuls a[n] care ia

valoarea -3 pentru esantionul 7 se poate scrie:

Page 2: Convolutia Si Filtrarea Semnalelor

Daca h[n] este raspunsul la impul al unui sistem liniar ne putem intreba care este impulsul

acestui sistem la semnalul anterior a[n]. Datorita proprietatilor sistemelor liniare se poate arata

usor ca raspunsul sistemului este acum:

Cu alte cuvinte semnalul de iesire este scalat si deplasat cu aceleasi valori ca si impulsul de

intrare.

Convolutia

Sa rezumam acum modul in care un sistem modifica un semnal de intrare pentru a forma

semnalul de iesire.

1. Semnalul de intrare poate fi descompus intr-un set de impulsuri, fiecare dintre ele putand

fi privit ca fiind obtinut printr-o scalare si o deplasare a functiei delta.

2. Semnalul de iesire rezultat din fiecare imuls este o versiune scalata si deplasata a functiei

de raspuns la impuls.

3. Semnalul de iesire complet poate fi gasit prin adunarea acestor raspunsuri scalate si

deplasate.

Cu alte cuvinte, daca cunoastem raspunsul la semnalul delta, putem calcula care va fi raspunsul

la orice semnal de intrare posibil. Aceasta insamna ca suntem in posesia intregii informatii

despre sistemul liniar. In clar, raspunsul la impuls caracterizeaza complet un sistem liniar.

In anumite aplicatii specifice, functia raspuns la impuls mai poate fi intalnita si sub alte

denumiri.

Daca sistemul este considerat un filtru, raspunsul la impuls este numit nucleul filtrului (the filter

kernel), nucleul de convolutie, sau simplu nucleu.

In procesarea de imagine, functia raspuns la impuls este numita functia de imprastiere a

punctului (the point spread function).

In toate aceste cazuri, aceste denumiri se refera la acelasi lucru: semnalul produs de un sistem

liniar la functia delta.

Convolutia este deci o peratie matematica formala precum adunarea, inmultirea sau integrarea.

Asa cum o operatie matematica binara preia doi operanzi pentru a produce un al treilea, analog,

convolutia combina doua semnale pentru a forma un al treilea semnal.

Page 3: Convolutia Si Filtrarea Semnalelor

Convolutia este utilizata in matematica in multe domenii precum: calculul probabilitatilor si

statistica. La sistemele liniare, convolutia este folosita pentru a descrie relatia dintre trei semnale

de interes: semnalul de intrare, semnalul de raspuns la impuls i semnalul de iesire.

Figura urmatoare prezinta notatia folosita pentru semnale si pentru operatia de convolutie in

cazul sistemelor liniare.

Un semnal de intrare, x[n], ce intra intr-un sistem liniar al carui raspuns la functia delta este h[n]

produce la iesire un semnal y[n] care este rezultatul aplicarii operatie de convolutie asupra

functiilor x[n] si h[n]

Cu alte cuvinte semnalul de intrare convolutat cu semnalul de raspuns la impuls reprezinta

semnalul de iesire. De regula operatia de convolutie este notata folosind caracterul steluta (*)

care, din nefericire, in toate limbajele de programare, desemneaza operatia de inmultire.

Fie doua exemple notabile:

Filtrul trece jos

Filtrul trece sus

Page 4: Convolutia Si Filtrarea Semnalelor

Atenuatorul inversor

Derivata discreta

Sa intram acum in detaliile matematice ale convolutiei. In domeniul procesarii digitale a

semnalelor, convolutia poate fi inteleasa in doua moduri distincte.

Primul priveste convolutia din punctul de vedere al semnalului de intrare. Acesta

analizeaza modul in care fiecare esantion din semnalul de intrare contribuie la valoarea

mai multor puncte ale semnalului de iesire.

Al doilea mod priveste convolutia din punctul de vedere al semnalului de iesire. Acesta

analizeaza modul in care fiecare esantion al semnalului de iesire a primit informatie de la

mai multe puncte ale semnalului de intrare.

De retinut ca aceste doua perspective reprezinta moduri diferite de concepere a aceleiasi operatie

matematica.

Primul punct de vedere este important deoarece el permite o intelegere conceptuala a modului

in care convolutia opereaza in domeniul procesarii digitale a semnalelor. Al doilea punct de

vedere descrie principiile matematice ale convolutiei.

Page 5: Convolutia Si Filtrarea Semnalelor

Convolutia din punctul de vedere al semnalului de intrare

Observam ca daca xk este esantionul k al semnalului de intrare x[n] atunci acesta contribuie la

iesire cu un semnal yyk = xk h[n-k] (prin h[n-k] intelegem semnalul functie de raspuns deplasat la

dreapta cu k unitati).

Mai precis, daca nucleul are M elemente de valori hj, cu j intre 1 si M, vor fi afectate

elementele cu indicii de la k la k+M-1 ale semnalului de iesire prin adaugarea valorilor

(yyk)i+k-1= xk hi, cu i de la 1 la M.

Astfel, algoritmul de calcul al convolutiei semnalului de intrare x[n] format din N esantioane cu

un nucleu h[n] de M elemente se poate scrie

1. Pentru k de la 1 la N+M-1 initializeaza yk = 0.

2. Pentru k de la 1 la N si i de la 1 la M calculeaza yi+k-1 = yi+k-1 + xk hi.

Exemplu de convolutie 9x4

Fie convolutia unui semnal format din 9 esantioane convolutat cu un nucleu format din 4

esantioane.

Page 6: Convolutia Si Filtrarea Semnalelor

Componentele semnalului de iesire pentru aceasta convolutie sunt urmatoarele

Exemplu de convolutie 4x9

Inversam acum nucleul cu semnalul de intrare din exemplul anterior. Avem astfel convolutia

unui semnal format din 4 esantioane convolutat cu un nucleu format din 9 esantioane.

Page 7: Convolutia Si Filtrarea Semnalelor

Componentele semnalului de iesire pentru aceasta convolutie sunt urmatoarele

Convolutia este o operatie comutativa

O simpla comparare a semnalelor de iesire din exemplele anterioare arata ca ele reprezinta o

aceeasi functie. Concluzia nu poate fi decat una singura: convolutia este o operatie comutativa.

Adica

a[n]*b[n] = b[n]*a[n]

Page 8: Convolutia Si Filtrarea Semnalelor

Convolutia in Matlab

Convolutia in matlab se obtine prin comanda “conv”.

Daca ‘u’ este un vector cu lungimea ‘n’ si ‘v’ este un alt vector cu lungimea ‘m’, convolutia lor va

avea lungimea ‘n+m-1’.

Convolutia este o operatie comutativa.

Convolutia in domeniul timp corespunde multiplicarii in domeniul frecventa.

Exemplu:

Raspunsul la impuls si de intrare este folosit pentru a calcula randamentul sistemului, de

exemplu :

Page 9: Convolutia Si Filtrarea Semnalelor

Grafice :

Page 10: Convolutia Si Filtrarea Semnalelor

Analiza in domeniul frecventa:

Comanda de baza pentru analiza Fourier este “fft”:

Grafice pentru domeniul timp si domeniul frecventa:

Page 11: Convolutia Si Filtrarea Semnalelor

Convolutia folosind FFT

În domeniul de frecvență convoluția este numai multiplicarea semnalelor, această proprietate este

folosita pentru a găsi raspunsul sistemelor.

Fie X1 un semnal de intrare a sistemului cu raspunsul de impuls x2, vom lua FFT de X1 și X2 și le vom

multiplica pentru a obține x3 in domeniul frecvența.

Exemplu:

Page 12: Convolutia Si Filtrarea Semnalelor

Filtrarea Semnalelor

Filtrarea este o operatie fundamentala de procesare dintr-un sistem de procesare a semnalelor.

Filtrarea este utilizata de regula pentru eliminarea zgomotului care afecteaza un semnal. In functie de tipul

filtrului (TJ, TB sau TS), aceta va lasa sa treaca anumite frecvente ale semnalului, dintr-o banda

specificata, rejectand frecventele din afara beznii de trecere.

Operatia de filtrare reprezinta de regula trecerea unui semnal x(t) printr-un sistem dliniar

invariant in timp, a carui functie pondere h(t) este cunoscuta.

Un sistem se numeste liniar, daca respecta principiul superpozitiei, adica daca la intrarea

sistemului aplicam o combinatie liniara de doua ( sau mai multe) semnale ax1(t)+bx2(t), a,b ∈ R, atunci

semnalul de la iesirea sistemului poate fi scris ca fiind ay1(t)+ay2(t), unde y1(t) si y2(t)

reprezintaraspunsurile sistemului la semnalele x1(t) respective x2(t).

Daca raspunsul sistemului este mereu acelasi pentru acelasi semnal de intrare, indifferent de

momentul de timp la care este aplicat semnalul respective la intrarea sistemului, atunci sistemul se

numeste invariant in timp.

Sistemul are asociat o functie pondere h(t), care reprezinta raspunsul la impuls al sistemului, daca

iesirea corespunzatoare unui impuls Dirac aplicat la intrare. Operatia realizata de un bloc de filtrare nu

este altceva decat o operatie de convolutie data de urmatoarea formula:

In domeniul spectral, produsul de convolutie se transforma in produs simplu:

unde Y(ω), H(ω) si X(ω) reprezinta spectrele Fourier ale lui y(t), h(t) respective x(t). H(ω) poarta numele

de functie de transfer a sistemului/filtrului.

Convolutia poate fi imaginata ca o fereastra glisanta reprezentata de functia pondere h(t), care se

deplaseaza peste semnalul de intrare, realizandu-se o suma a esantioanelor de intrare ponderate cu

coeficientii filtrului. Suma nu este altceva decat raspunsul filtrului la un moment dat.

Page 13: Convolutia Si Filtrarea Semnalelor

Convolutia

Cand raspunsul la impuls al blocului respective are lungimea infinita, nu se poate realize

convolutia cu functia de transfer. In acest caz se folosesc doua seturi de coeficienti, unul care convolve cu

esantioanele de la intrare iar celalalt cu iesirele anterioare, astfel incat raspunsul la impuls al intregului

sistem sa fie exact raspunsul necesar.

Astfel filtrarea se poate descrie cu formula:

Aceasta formula poate fi realizata fizic prin folosirea unor blocuri de intarziere si amplificare

asupra intrarii si iesirii si insumarea acestor semnale rezultate.

Implementarea unui filtru cu blocuri de intarziere si amplificare

Filtrarea unui semnal se realizeaza in matlab cu functia ‘filter’:

» y = filter(b,a,x);

Page 14: Convolutia Si Filtrarea Semnalelor

In acest caz x este vectorul ce ocntine semnalul de intrare, iar b si a sunt doi vectori ce contin

coeficientii filtrului. Daca vrem sa realizam o filtrare cu o functie de transfer de lungime finite (adica o

convolutie) putem folosi urmatorul apel al functiei ‘filter’:

» y = filter(h,1,x);

in care apare 1 in loc de a, pentru ca a(1) trebuie neaparat sa fie definit pentru ca la aceasta valoare se face

normarea rezultatului.

Proiectarea filtrelor in Matlab:

Filtre FIR

Filtrele FIR sunt filter de convolutie la care semnalul de intrare este convolute cu coeficientii sau functia

pondere a filtrului:

unde Xk sunt esantioanele semnalului de intrare, yk reprezinta raspunsul filtrului la momentul k

(esantionul k al semnalului y de la iesirea filtrului), iar valorile bk reprezinta coeficientii filtrului.

Proiectarea unui filtru FIR se bazeaza pe diverse tipuri de ferestre (dreptunghiulara, triunghiulara,

Hamming, Hann, Chebyshev, Kaiser).

In Matlab, proiectarea unui filtru se face cu comanda fir1 respectiv fir2.

Comanda fir1 are urmatoarele forme:

» fir1(N, Wn);

» fir1(N, Wn, ‘high’);

» fir1(N, Wn, ‘stop’);

»fir1(N, Wn, wind);

unde N este ordinal filtrului (filtrul va avea N+1 coeficienti), Wn este frecventa de taiere raportata la

frecventa maxima a semnalului (frecventa de esantionare /2). Daca Wn este un vector de 2 sau mai multe

elemente atunci filtrul va fi un filtru trece banda cu banda intre perechile de valori din Wn. Daca este

speficicat ‘high’ (in cazul in care Wn este scalar) atunci filtrul va fi un filtru trece sus in loc de filtru trece

jos, iar daca este specificat ‘stop’ (in cazul in care Wn este vector de mai multe elemente) atunci filtrul va

devein filtru opreste banda , wind este o fereastra folosita la generarea filtrului. Implicit fereastra folosita

este o fereastra Hamming. Diferite tipuri de ferestre pot fi generate cu comenzile: boxcar, Bartlett,

hamming, hann, Kaiser, chebwin, blackman.

Page 15: Convolutia Si Filtrarea Semnalelor

Comanda fir2 are urmatoarea sintaxa:

» fir2(N, F, M)

unde N este ordinal filtrului, iar F si M reprezinta raspunsul dorit in frecventa al filtrului specificat sub

forma grafica (ca si cum ar fi desenat cu o comanda gen plot(F,M)). Comanda fir2 va genera un filtru care

aproximeaza acest raspuns in frecventa.

Functia de transfer (coeficientii) si raspunsul in frecventa a unor filtre trece jos, trece banda si

trece sus este prezentat in figura:

Filtre IIR

Filtrele IIR sunt filtre recusive la care pentru calcularea valorii curente a semnalului de iesire sunt folosite

atat valorile semnalului de intrare cat si valorile vechi ale semnalului de iesire. Astfel se poate realize un

raspuns aproape “infinit” fara a utilize foarte multi coeficienti. Ecuatia care implementeaza un filtru IIR

este urmatoarea:

Avantajul acestor filtre este ca se poate realize o filtrare cu raspuns lung cu calculi putine,

dezavantajul fiind ca nu avem control la fel de précis asupra raspunsului filtrului, putand aparea

“ripluri”(oscilatii nedorite) in banda de trecere si in banda de taiere. De asemenea filtrul poate devein

instabil daca coeficientul pentru esantioanele de iesire depaseste 1, caz in care semnalul la iesire va intra

in saturatie.

In Matlab proiectarea filtrelor IIR se poate face cu functiile butter, cheby1, cheby2 , ellip si

yulewalk. Parametrii sunt aceiasi ca la filtrele FIR.

Functia butter genereaza un filtru Butterworth si are urmatoarea sintaxa:

» [b a] = butter(N, Wn);

» [b a] = butter(N, Wn, ‘high’);

» [b a] = butter(N, Wn, ‘stop’);

Functia cheby1 si cheby 2 genereaza filtre Chebyshev de tipul I respective II:

» [b a] = cheby1(N, Rp, Wn);

» [b a] = cheby2(N, Rs, Wn);

Page 16: Convolutia Si Filtrarea Semnalelor

Filtrul Chebysev de tipul I prezinta ripluri in banda de trecere, diferenta maxima a acestor ripluri de la 0

dB poate fi specificata prin parametrul Rp. Filtrul Chebyshev de tipul II prezinta ripluri in banda de taiere,

diferenta minima intre aceste ripluri si lina de 0 dB poate fi specificata prin parametru Rs.

Functia ellip genereaza un filtru elliptic:

» [b a] = ellip(N, Rp, Rs, Wn);

Acest filtru prezinta ripluri atat in banda de trecere, cat si in banda de taiere, aceste ripluri pot fi

controlate cu parametrii Rp si Rs similar cu filtrele Chebysev.

Page 17: Convolutia Si Filtrarea Semnalelor

Un exemplu pentru aceste filtre reprezentate grafic prin intermediul comenzii ‘freqz’ :

Functia yulewalk genereaza un filtru IRR care aproximeaza un raspuns in frecventa precizat in

mod similar cu functia fir2:

» [b a] = yulewalk(N, F, M)

Pentru a calcula ordinal minim al unui filtru IIR care corespunde anumitor constrangeri asupra

riplurilor in banda de trecere si banda de taiere si frecventele limita se pot folosi functiile buttord,

cheblord, cheb2ord si ellipord.

Page 18: Convolutia Si Filtrarea Semnalelor

Biografie:

www.scrib.com

www.mathworks.com

www.unibuc.ro ( Carte a Prof. Cornel Mironel Niculae)