Sunteți pe pagina 1din 4

Lucrarea 6

Filtrarea semnalelor
Filtrarea este o operaie fundamental de procesare dintr-un sistem de procesare a semnalelor. Filtrarea este utilizat de regul pentru eliminarea zgomotului care afecteaz
un semnal. n funcie de tipul ltrului (trece jos, trece band sau trece sus), acesta va
lsa s treac anumite frecvene ale semnalului, dintr-o band specicat, rejectnd
frecvenele din afara benzii de trecere.

6.1.

Noini teoretice

Operaia de ltrare reprezint de regul trecerea unui semnal x(t) printr-un sistem
liniar invariant n timp, a crui funcie pondere h(t) este cunoscut (vezi Figura 6.1)

x(t)

h(t)

y(t)

Figura 6.1. Operaia de ltrare

Un sistem se numete liniar, dac respect principiul superpoziiei, adic dac la


intrarea sistemului aplicm o combinaie liniar de dou (sau mai multe) semnale
ax1 (t) + bx2 (t), a, b R, atunci semnalul de la ieirea sistemului poate scris ca ind
ay1 (t) + by2 (t), unde y1 (t) i y2 (t) reprezint rspunsurile sistemului la semnalele x1 (t)
respectiv x2 (t).
Dac rspunsul sistemului este mereu acelai pentru un acelai semnal de intrare,
indiferent de momentul de timp la care este aplicat semnalul respectiv la intrarea
sistemului, atunci sistemul se numete invariant n timp.
Sistemul are asociat o funcie pondere h(t), care reprezint rspunsul la impuls al
sistemului, adic ieirea corespunztoare unui impuls Dirac aplicat la intrare. Operaia
realizat de un bloc de ltrare nu este altceva dect o operaie de convoluie dat de
33

6. Filtrarea semnalelor
urmtoarea formul:
Z+
Z+
y(t) = h(t) x(t) =
h( ) x(t ) d =
h(t ) x( ) d

(6.1)

n domeniul spectral, produsul de convoluie se transform n produs simplu:


Y () = H() X()

(6.2)

unde Y (), H() i X() reprezint spectrele Fourier ale lui y(t), h(t) respectiv y(t).
H() poart numele de funcie de transfer a sistemului/ltrului
Convoluia poate imaginat ca o fereastr glisant (g. 6.2) reprezentat de funcia ponder h(t), care se deplaseaz peste semnalul de la intrare, realizndu-se o sum
a eantioanelor de intrare ponderate cu coecienii ltrului. Suma nu este altceva dect
rspunsul ltrului la un moment dat.
x(t)

h(t)

Figura 6.2. Convoluia

n domeniul discret convoluia are urmtoarea form:

y(n) =

h(k) x(n k)

(6.3)

k=

i descrie rezultatul cnd funcia x trece prin sistemul caracterizat prin funcia pondere
h.
Dac funcia pondere a sistemului (rspunsul la impuls) este un vector de lungime
K atunci convoluia devine:
y(n) =

K
X

h(k) x(n k)

(6.4)

k=0

adic echivalent cu nmulirea a dou polinoame cu coecieni din vectorii x i h, ceea


ce este simplu de realizat cu ajutorul unui procesor.
Cnd rspunsul la impuls al blocului respectiv are lungimea innit, nu se poate realiza convoluia cu funcia de transfer. n acest caz se folosesc dou seturi de coecieni,
unul care se convolv cu eantioanele de la intrare iar cellalt cu ieirile anterioare,
astfel nct rspunsul la impuls al ntregului sistem s e exact rspunsul necesar.
34

Filtrarea n matlab
Astfel ltrarea se poate descrie cu formula:
a(1) y(n) = b(1) x(n) + b(2) x(n 1) + + b(B) x(n B + 1)
a(2) y(n 1) a(A) y(n A + 1)

(6.5)

Aceast formul poate realizat zic prin folosirea unor blocuri de ntrziere
i amplicare asupra intrrii i ieirii, i nsumarea acestor semnale rezultate, ca n
Figura 6.3.
b3
z-1
b2
z-1

b1

+
z-1
a2

z-1
a3

Figura 6.3. Implementarea unui ltru cu blocuri de ntrziere i amplicare

6.2.

Filtrarea n matlab

Filtrarea unui semnal se realizeaz n matlab cu funcia filter:


y = filter (b,a,x);

n acest caz x este vectorul ce conine semnalul de la intrare, iar b i a sunt doi
vectori ce conin coecienii ltrului. Dac vrem s realizm o ltrare cu o funcie de
transfer de lungime nit (adic o convoluie) putem folosi urmtorul apel al funciei
filter:
35

6. Filtrarea semnalelor
y = filter (h,1,x);

n care apare 1 n loc de a, pentru c a(1) trebuie neaprat s e denit pentru c la


aceast valoare se face normarea rezultatului.

6.3.

Exerciii

1. Implementai o funcie de ltrare cu formatul y = myfilter(b,a,x) i comparai


rezultatele cu cele obinute folosind funcia matlab filter.
2. Observai efectul ltrrii asupra unui semnal folosind un ltru Cebev. Pentru
semnal de test putei folosi semnalul generat la lucrarea 2, sau orice semnal
alctuit din sinusoide de frecvene diferite. Pentru determinarea coecienilor
acestui ltru, folosii urmtoarea funcie matlab, apelat cu parametrii indicai
n exemplu:
[b a] = cheby1 (5 ,0.5 ,50/4000);

36