Sunteți pe pagina 1din 25

3.

FILTRE CU RĂSPUNS FINIT LA IMPULS

LUCRAREA 3
FILTRE CU RĂSPUNS FINIT LA IMPULS

3.1. Introducere

Un filtru digital este un sistem discret, utilizat în scopul modificării


spectrului de amplitudini şi/sau de faze al unui semnal. Sistemele (filtrele)
prezentate în această lucrare vor fi liniare şi invariante în timp. Răspunsul în
domeniul timp al unui SDLIT este dat de produsul de convoluţie dintre semnalul
de intrare x[n] şi răspunsul la impuls al sistemului, notat cu h[n] , denumit şi
funcţie pondere:


y[n] = x[n] ∗ h[n] = ∑ h[k ]x[n − k ] (3.1)
k = −∞

Aplicarea transformatei Z ambilor membri ai relaţiei (3.1) permite


stabilirea legăturii dintre transformatele Z ale semnalelor de intrare şi ieşire:

Y ( z) = H ( z) X ( z) (3.2)

unde H (z ) reprezintă funcţia de transfer a SDLIT.


Filtrele cu răspuns finit la impuls (prescurtat RFI) au funcţia pondere
h[n] nenulă pentru n ∈ {0,1, … , N − 1}. Se spune că N reprezintă lungimea
răspunsului la impuls. Pentru aceste filtre implementarea operaţiei de filtrare are
la bază produsul de convoluţie (3.1) particularizat corespunzător:

N −1
y[n] = x[n] ∗ h[n] = ∑ h[k ]x[n − k ] (3.3)
k =0

51
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

În această situaţie funcţia de transfer devine:


N −1
H ( z ) = ∑ h[n]z − n (3.4)
n =0

Deci funcţia de transfer nu prezintă poli, fiind o funcţie polinomială de ordinul


N − 1 în z −1 . Coeficienţii filtrului sunt chiar valorile răspunsului la impuls.

3.2. Filtre RFI cu fază liniară

Posibilitatea filtrelor RFI de a avea o caracteristică de fază liniară permite


realizarea operaţiei de filtrare fără a introduce distorsiuni de fază, aspect important
în reconstrucţia fidelă a semnalelor.
Transformata Fourier a răspunsului la impuls, denumită răspuns în
frecvenţă sau funcţie de transfer Fourier, se obţine prin evaluarea lui H (z ) de
forma (3.4) de-a lungul cercului de rază unitate din planul Z:
N −1
H (e ) = H ( z ) z =e jω = ∑ h[n]e − jnω

(3.5)
n =0

unde
F
ω = 2π f = 2π (3.6)
FS

Frecvenţa normată f se calculează ca raportul dintre valoarea frecvenţei (F


exprimată în Hz) şi valoarea frecvenţei de eşantionare ( FS exprimată în Hz).
Funcţia de transfer evaluată la frecvenţe fizice, periodică în frecvenţă cu
perioada 2π, poate fi exprimată în forma polară:

H (e jω ) = H (e jω ) e jϕ (ω ) (3.7)

unde H (e jω ) şi ϕ (ω ) sunt părţi ale funcţiei de sistem, purtând denumirile de:


caracteristică de modul (de amplitudine), respectiv caracteristică de fază. În
practică ne interesează filtrele cu coeficienţi reali, adică cu h[n] ∈ R , conform
relaţiei (3.4). Pentru aceste filtre caracteristica de modul este o funcţie pară iar cea
de fază, o funcţie impară, adică:

H (e − jω ) = H (e jω ) ; ϕ (−ω ) = −ϕ (ω ) (3.8)

52
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Filtrele RFI pot avea o caracteristică de fază liniară prin obligarea funcţiei
pondere h[n] să prezinte proprietatea de simetrie sau de antisimetrie faţă de axa
sa centrală ( n = ( N − 1) / 2 ). Mai mult, funcţia de transfer Fourier poate fi pusă în
forma:

H (e jω ) = H 0 (e jω )e jθ (ω ) (3.9)

cu H 0 (e jω ) ∈ R şi θ (ω ) funcţie liniară. Funcţia reală H 0 (e jω ) poartă


denumirea de funcţie de transfer de fază zero.
Există 4 tipuri de filtre RFI cu fază liniară, în funcţie de lungimea N a
răspunsului la impuls şi de simetria sau antisimetria acestuia:
tipul 1: filtre RFI cu lungime impară şi răspuns la impuls simetric:
h[n] = h[ N − 1 − n] (3.10)
tipul 2: filtre RFI cu lungime pară şi răspuns la impuls simetric;
tipul 3: filtre RFI cu lungime impară şi răspuns la impuls antisimetric:
h[n] = −h[ N − 1 − n] (3.11)
tipul 4: filtre RFI cu lungime pară şi răspuns la impuls antisimetric.

Tip Lungime Secvenţa h[n] H 0 (e jω ) θ (ω )

N −1
simetrică
2 N −1
1 N impar ∑ an cos ( nω ) − ω
h[n] = h[ N − 1 − n] n=0
2

simetrică N
2
⎛ 1⎞ N −1
2 N par ∑ bn cos ⎜ n − ⎟ω − ω
h[n] = h[ N − 1 − n] n =1 ⎝ 2⎠ 2

antisimetrică N −1
h[n] = −h[ N − 1 − n] 2 π N −1
3 N impar ∑ cn sin ( nω ) − ω
⎡ N − 1⎤ 2 2
h⎢ =0
⎣ 2 ⎥⎦
n =1

antisimetrică N
2
⎛ 1⎞ π N −1
4 N par ∑ d n sin ⎜ n − ⎟ω − ω
h[n] = −h[ N − 1 − n] n =1 ⎝ 2⎠ 2 2

Caracteristici ale filtrelor RFI cu fază liniară


53
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Poziţionarea în planul Z a zerourilor funcţiei de transfer


Simetria sau antisimetria secvenţei h[n] implică şi o poziţionare specifică
a zerourilor funcţiei de transfer H (z ) . Consecinţele în planul Z sunt:
1. Dacă z i este un zero al funcţiei H ( z ) , atunci şi 1 / z i este de asemenea un
zero al acesteia;
2. Pentru aplicaţiile ce prezintă interes practic, coeficienţii h[n] ai polinomului
H (z ) sunt reali şi drept urmare orice zero va fi însoţit şi de complex conjugatul
său. Considerând zeroul z1 exprimat în coordonate polare: z1 = r1e jθ1 , atunci, în
funcţie de valorile razei vectoare r1 şi unghiului θ1 , sunt posibile următoarele
configuraţii de zerouri:
a) r1 ≠ 1 ; θ 1 ≠ 0 ; θ 1 ≠ π :
z1 = r1e jθ1 ; z 2 = z1* = r1e − jθ1 ; z 3 = 1 / z1 = (1 / r1 )e − jθ1 ; z 4 = 1 / z 2 = (1 / r1 )e jθ1
b) r1 = 1 ; θ 1 ≠ 0 ; θ 1 ≠ π :
z1 = e jθ1 ; z 2 = z1* = 1 / z1 = e − jθ1
c) r1 ≠ 1 ; θ 1 = 0 sau θ 1 = π :
z1 = r1 ; z 2 = 1 / z1 = 1 / r1 sau z1 = −r1 ; z 2 = 1 / z1 = −1 / r1
d) r1 = 1 ; θ 1 = 0 sau θ 1 = π :
z1 = 11 sau z1 = −1

Zerourile oarecare apar deci obligatoriu în grupuri de 4 zerouri: două în


interiorul cercului unitate şi două în exteriorul acestuia, în relaţie de simetrie
geometrică; zerourile de pe cercul unitate apar în perechi complex conjugate;
zerourile reale apar în perechi simetrice geometric faţă de cerc, cu excepţia
zerourilor z = 1 şi z = −1 care sunt simultan propriile lor inverse.

H 0 (e jω ) H 0 (e jω ) Zerouri
Tip Se pot proiecta
în ω = 0 în ω = π obligatorii
fără fără FTJ, FTS
1 fără constrângeri
constrângeri constrângeri FTB, FOB
fără FTJ, FTB
2
constrângeri
0 z = −1
FTB,
3 0 0 z = 1 şi z = −1 transf. Hilbert,
diferenţiator
FTS, FTB,
fără
4 0
constrângeri z =1 transf. Hilbert,
diferenţiator

Caracteristici ale filtrelor RFI cu fază liniară


54
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Exemple:
1. Să se reprezinte poziţionarea zerourilor în planul Z şi să se precizeze tipul
filtrului RFI definit prin funcţia pondere:
3 ⎛ 3π ⎞
h[n] = sinc⎜ (n − 8) ⎟ , n = 0,1,…,16 .
5 ⎝ 5 ⎠
Reprezentaţi grafic răspunsul la impuls al filtrului.

n=0:16;
h=3/5*sinc(3/5*(n-8));
// vezi help sinc
zplane(h)

1.5

0.5
Imaginary part

-0.5

-1

-1.5
-2 -1.5 -1 -0.5 0 0.5 1 1.5
Real part

// reprezentarea zerourilor în planul Z corespunde unui filtru de tipul 1; observaţi


simetria geometrică a zerourilor faţă de cercul de rază unitate; remarcaţi faptul
că zerourile de pe cercul unitate apar în perechi complex conjugate.

stem(n,h),grid
0.6

0.5

0.4

0.3

0.2

0.1

-0.1
0 2 4 6 8 10 12 14 16

// din reprezentarea grafică a răspunsului la impuls se observă de asemenea că


filtrul RFI din exemplu este de tipul 1.

55
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

2. Să se determine şi să se reprezinte grafic funcţia pondere h[n] a filtrului


digital RFI cu fază liniară, de tipul 3, cu coeficienţi reali şi cu ordinul minim
2π π
1 j j
posibil, ştiind că funcţia de transfer H (z ) are zerourile z1 = e 3 , z 2 = e 3
2
(
şi H e )
jπ / 2
= −26 j . Să se reprezinte poziţionarea zerourilor în planul Z.

z1=1/2*exp(j*2*pi/3);
z2=exp(j*pi/3);
z=[z1;conj(z1);1/z1;conj(1/z1);z2;conj(z2);1;-1];
// vectorul coloană z conţine valorile zerourilor funcţiei de transfer a filtrului
ţinând cont că:
- dacă z1 este zerou complex şi nu se află pe cercul de rază unitate atunci vor fi
1 1
zerouri şi z1∗ , şi ∗ ;
z1 z1
- dacă z 2 este zerou complex şi se află pe cercul de rază unitate atunci şi z 2∗ va
fi zerou;
- filtrul este de tipul 3 şi este deci obligatorie prezenţa simultană a zerourilor
z = 1 şi z = −1 ;
- filtrul este de ordin minim şi deci nu mai apar alte zerouri în afara celor de
mai sus.
zplane(z)

1.5

0.5
Imaginary part

-0.5

-1

-1.5

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2


Real part

p=poly(z);
// vectorul p va conţine valorile polinomului ale cărui rădăcini sunt zerourile din
vectorul z; vezi help poly.
v=polyval(p,exp(i*pi/2)) → v =
0.0000 - 6.5000i
// vectorul p conţine de fapt coeficienţii funcţiei de transfer a filtrului; s-a
evaluat această funcţie în e jπ / 2 ; pentru a satisface cerinţa din problemă trebuie
să efectuăm o înmulţire cu 4; vezi help polyval.

56
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

h=4*p;
n=0:length(h)-1;
stem(n,h),grid
15

10

-5

-10

-15
0 1 2 3 4 5 6 7 8

// s-a reprezentat funcţia pondere a filtrului; se observă că ea corespunde unui


filtru de tipul 3.

E1. Exerciţii:
1. Să se reprezinte poziţionarea zerourilor în planul Z şi să se precizeze tipul
filtrelor RFI definite prin:
⎧4 − n − 3 , 0 ≤ n ≤ 6
a) h[n] = ⎨
⎩ 0 , rest
⎧⎪ 1
, 0≤n≤8
b) h[n] = ⎨ 9
⎪⎩ 0 , rest
⎧ n , n = 0,6

c) h[n] = ⎨ 0 , n=7
⎪n − 14 , n = 8,14

d) y[n] = x[n] − 2 x[n − 3] + 5 x[n − 5] + 5 x[n − 6] − 2 x[n − 8] + x[n − 11]
e) H ( z ) = 0,5 + z −1 − z −2 + z −4 + 2 z −5 − 2 z −6 − z −7 + z −9 − z −10 − 0,5 z −11
f) H ( z ) = 1 − z −5
g) H ( z ) = 1 − z −6
Reprezentaţi grafic răspunsul la impuls al fiecărui filtru.
2. Să se determine şi să se reprezinte grafic funcţia pondere h[n] a filtrului
digital RFI cu fază liniară, de tipul 2, cu coeficienţi reali şi cu ordinul minim
posibil, ştiind că funcţia de transfer H (z ) are zerourile z1 = 0,33e − jπ / 4 ,
z 2 = −0,7 , z3 = e jπ / 4 şi z 4 = 0,5 j . Să se reprezinte poziţionarea zerourilor în
planul Z .
3. Reluaţi problema 2 în cazul în care filtrul este de tipul 4.
57
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

3.3. Proiectarea filtrelor RFI cu fază liniară

Principalele metode utilizate în proiectarea acestei categorii importante de


filtre RFI sunt: metoda ferestrelor, metoda eşantionării în frecvenţă şi metode
bazate pe minimizarea erorii în domeniul frecvenţă, utilizând un anumit criteriu
de eroare.

3.3.1. Metoda ferestrelor

Se distinge printr-o serie de avantaje constând în simplitate, obţinerea de


formule compacte pentru calculul coeficienţilor şi lipsa procedurilor de
optimizare a soluţiei (care necesită în general un timp de calcul important).
Metoda presupune parcurgerea a două etape:
a) În prima etapă se determină răspunsul la impuls h∞ [n] , cu suport infinit
( − ∞ < n < ∞ ), pornind de la funcţia de transfer impusă, notată aici H ∞ (e jω ) . În
acest scop suportul matematic îl oferă transformata Fourier inversă:

{
h∞ [n] = ℱ −1 H ∞ (e jω ) = } 1
2π ∫ H ∞ (e

)e jωn dω (3.12)

Deoarece se doreşte ca filtrul rezultant să aibă faza liniară, este necesar ca în


H ∞ (e jω ) să fie inclus şi factorul de fază liniară, adică:

jω jω jθ (ω ) ⎧ H d (e jω )e − jω ( N −1) / 2 ; pentru tipurile 1,2


H ∞ (e ) = H d (e )e =⎨ jω j (π / 2−ω ( N −1) / 2 )
(3.13)
H
⎩ d ( e ) e ; pentru tipurile 3,4

unde H d (e jω ) reprezintă funcţia de transfer dorită de fază zero a filtrului ideal


(FTJ, FTS, FTB, FOB, diferenţiator digital, transformator Hilbert digital).
b) În a doua etapă se realizează trunchierea răspunsului la impuls h∞ [n] astfel
încât să se obţină secvenţa de lungime finită N, adică:

⎧w[n]h∞ [n] pentru 0 ≤ n ≤ N − 1


h[n] = ⎨ (3.14)
⎩ 0 in rest

Trunchierea abruptă a răspunsului la impuls poate fi privită şi ca o ponderare


(înmulţire) a secvenţei de lungime infinită cu o funcţie pondere de lungime N,
denumită fereastră şi notată prin w[n] .

58
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Trunchierea directă a seriei Fourier conform relaţiei (3.14), conduce la


fenomenul Gibbs (efectul Gibbs) care se manifestă prin apariţia unor ondulaţii
(denumite ripluri) ale răspunsului în frecvenţă al filtrului proiectat, care cresc
către marginile benzilor de trecere şi oprire, în apropierea punctelor de
discontinuitate ale caracteristicii ideale. În plus va apărea şi o zonă de tranziţie
în jurul frecvenţelor de tăiere teoretice.
Studiul efectului Gibbs permite evidenţierea cerinţelor fundamentale pe
care trebuie să le îndeplinească o fereastră în scopul obţinerii unui filtru RFI cu
performanţe cât mai bune şi anume:
1. Lobul principal al ferestrei să fie cât mai îngust;
2. Lobul principal să conţină cea mai mare parte din energia ferestrei;
3. Energia lobilor secundari să fie cât mai uniform repartizată între aceştia.
Restricţiile de mai sus determină în aceeaşi ordine următoarele
performanţe pentru filtrul proiectat:
1. Zonă de tranziţie îngustă;
2. Ripluri mici ale răspunsului în frecvenţă;
3. Uniformizarea riplurilor, în scopul evitării situaţiei în care energia lobilor
secundari ai răspunsului în frecvenţă al filtrului proiectat este concentrată în
principal în primii lobi secundari.
În general cele trei cerinţe nu pot fi satisfăcute de nici o fereastră de
ponderare deoarece cerinţele 1 şi 2 sunt contradictorii.
Cea mai simplă fereastră este fereastra dreptunghiulară, definită astfel:

⎧1 pentru 0 ≤ n ≤ N − 1
wd [ n] = ⎨ (3.15)
⎩0 in rest

Ea îndeplineşte cel mai bine prima cerinţă şi satisfăcător cerinţele 2, 3.

Sintaxa:
w = boxcar(N)
• returnează un vector coloană w de lungime N ce va conţine valorile
ferestrei dreptunghiulare.

Se poate acţiona pentru reducerea riplurilor în cele două benzi prin


utilizarea altor tipuri de ferestre, care realizează trunchieri mai puţin abrupte ale
răspunsului la impuls h∞ [n] , comparativ cu fereastra dreptunghiulară şi anume:

Fereastra triunghiulară (Bartlett)

2 N −1
w[n] = 1 − n− , 0 ≤ n ≤ N −1 (3.16)
N +1 2

59
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Fereastra Blackman

⎡ 2π ⎛ 1 ⎞⎤ ⎡ 4π ⎛ 1 ⎞⎤
w[n] = 0,42 − 0,5 ⋅ cos ⎢ ⎜ n + ⎟⎥ + 0,08 ⋅ cos ⎢ ⎜ n + ⎟⎥ , 0 ≤ n ≤ N −1
⎣N ⎝ 2 ⎠⎦ ⎣N ⎝ 2 ⎠⎦
(3.17)

Fereastra Hamming

⎡ 2π ⎛ 1 ⎞⎤
w[n] = 0,54 − 0,46 cos ⎢ ⎜ n + ⎟⎥ , 0 ≤ n ≤ N −1 (3.18)
⎣N ⎝ 2 ⎠⎦

Fereastra Hanning (von Hann)

⎡ 2π ⎛ 1 ⎞⎤
w[n] = 0,5 − 0,5 cos ⎢ ⎜ n + ⎟⎥ , 0 ≤ n ≤ N −1 (3.19)
⎣N ⎝ 2 ⎠⎦

Fereastra Kaiser

⎡ ⎛ 2n ⎞
2⎤
I0 ⎢ β 1 − ⎜ − 1⎟ ⎥
⎢⎣ ⎝ N − 1 ⎠ ⎥⎦
w[n]= , 0 ≤ n ≤ N −1 (3.20)
I0 ( β)
unde I0[•] este funcţia Bessel modificată de ordinul zero.
Parametrul β depinde de atenuarea minimă am[dB] din zona de oprire a filtrului
proiectat după formula:

⎧ 0,1102(a m − 8,7) , a m > 50dB



β = ⎨0,5842(a m − 21) 0.4 + 0,07886(a m − 21) , 21dB ≤ a m ≤ 50dB (3.21)
⎪ 0 , a m < 21dB

Performanţele filtrelor proiectate cu ferestrele dreptunghiulară, Hamming,


Blackman pot fi obţinute folosind ferestre Kaiser cu β = 0, β = 5,4414 respectiv
β = 8,885.

Sintaxa:
w = kaiser(N,beta)
• returnează un vector coloană w de lungime N ce conţine valorile
funcţiei fereastră Kaiser (vezi relaţia (3.20)); beta reprezintă valoarea
parametrului β (vezi relaţia (3.21)).
60
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Atenţie:
În MATLAB există şi funcţiile fereastră bartlett, blackman,
hamming, hanning, triang ce pot fi apelate cu sintaxa generală:

w = nume_fereastră(N)
• returnează un vector coloană w de lungime N ce va conţine valorile
ferestrei specificate prin nume_fereastră.

E2. Exerciţiu:
Realizaţi o comparaţie între fereastra dreptunghiulară şi celelalte tipuri de
ferestre din punct de vedere al cerinţelor teoretice discutate, rulând programul
demofer.m.
a) Pentru lungimea ferestrelor N=20 se măsoară lăţimea lobului principal al
spectrului fiecărei fereastre şi se verifică valorile din tabelul de mai jos.
Comparaţi lăţimea lobilor spectrelor diferitelor ferestre.
b) Se măsoară atenuarea în dB a lobilor secundari pentru fiecare fereastră şi se
verifică valorile din tabel.
c) Se reiau punctele a) şi b) pentru N=40. Cum se modifică lăţimea lobului
principal cu creşterea lui N? Dar atenuarea lobilor secundari?

Amplitudinea maximă a
Tipul ferestrei Lăţimea lobului principal
lobilor laterali

Dreptunghiulară –13,3
N

Triunghiulară –26,5
N +1

Hanning –31,5
N

Hamming –42,7
N
12π
Blackman –58,1
N
Kaiser 2πβ 15,73π –57
=
cu β = 7,865 N N (reglabil cu β )

Proprietăţi ale ferestrelor utilizate în proiectarea filtrelor RFI cu fază liniară

61
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Funcţii MATLAB pentru proiectarea filtrelor RFI prin metoda ferestrelor

Fie h[n] răspunsul la impuls al filtrului digital RFI. Notând cu N


lungimea acestei secvenţe cauzale, definită pe suportul 0 ≤ n ≤ N − 1 ,
transformata Z a lui h[n] reprezintă funcţia de transfer a filtrului:

N −1
H ( z ) = ∑ h[n]z −n = h[0] + h[1]z −1 + h[2]z −2 + ...... + h[ N − 1]z −( N −1) (3.22)
n =0

Ţinând cont de faptul că în MATLAB primul element dintr-un vector are


indicele 1, funcţia de transfer a unui filtru digital cu răspuns finit la impuls poate
fi implementată sub forma:

H ( z ) = h[1] + h[2]z −1 + h[3]z −2 + ...... + h[n + 1]z − n (3.23)

în care h[1], h[2], h[3],......, h[n + 1] reprezintă coeficienţii funcţiei de transfer a


filtrului (eşantioanele răspunsului la impuls) iar n va fi ordinul filtrului.

Atenţie:
• Comparând relaţiile (3.22) şi (3.23) putem trage concluzia că ordinul filtrului
n din relaţia (3.23) este egal cu N – 1 (lungimea secvenţei minus unu) din
relaţia (3.22).
• Funcţia MATLAB fir1 calculează coeficienţii filtrului astfel încât suma lor
să fie egală cu 1, impunând ca în ω = 0 să avem H (e jω ) = ∑ h[n] = 1 (0 dB).
n
• Normarea frecvenţelor se face în mod diferit (în comparaţie cu relaţia (3.6)):

F F
f MATLAB = = 2 = 2 fteoretic (3.24)
FS / 2 FS

fir1 – Proiectarea prin metoda ferestrelor a filtrelor digitale RFI de tipul


trece jos (FTJ), trece sus (FTS), trece bandă (FTB) şi opreşte bandă (FOB).

Sintaxe:
h = fir1(n,wn)
• proiectează prin metoda ferestrelor, utilizând o fereastră Hamming de lungime
n + 1, un filtru trece jos de ordinul n cu frecvenţa de tăiere normată wn; wn
are valori cuprinse între 0 şi 1, unde 1 corespunde jumătăţii frecvenţei de
eşantionare ; dacă avem frecvenţele de tăiere şi de eşantionare exprimate în
Hz atunci
wn = 2*frecvenţa de tăiere/frecvenţa de eşantionare;
62
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

• dacă wn este un vector cu două elemente, wn=[w1,w2] cu w1<w2, se va


proiecta prin metoda ferestrelor, utilizând o fereastră Hamming de lungime
n+1, un filtru trece bandă de ordinul n, cu banda de trecere cuprinsă între
frecvenţele w1 şi w2 (normate după regula precedentă).
• se va returna vectorul linie h de lungime n+1 ce conţine coeficienţii funcţiei
de transfer H ( z ) a filtrului ( h = [h[1], h[2], h[3],......, h[n + 1]] ; vezi relaţia
(3.23));

h = fir1(n,wn,’high’)
• proiectează prin metoda ferestrelor, utilizând o fereastră Hamming de lungime
n+1, un filtru trece sus de ordinul n (ordinul n trebuie să fie par) cu frecvenţa
de tăiere Wn;

h = fir1(n,wn,’stop’)
• wn este un vector cu două elemente, wn=[w1,w2] cu w1<w2 ; se va
proiecta prin metoda ferestrelor, utilizând o fereastră Hamming de lungime
n+1, un filtru opreşte bandă de ordinul n (ordinul n trebuie să fie par), cu
banda de oprire cuprinsă între w1 şi w2.

h = fir1(n,wn,tip_fereastra(n+1))
• tip_fereastra specifică tipul ferestrei cu care dorim să proiectăm
filtrul; în loc de tip_fereastra(n+1) poate fi orice vector coloană de
lungime n+1 ce conţine valorile eşantioanelor unei secvenţe pe care dorim să
o folosim pe post de fereastră în proiectarea filtrului;
• se va proiecta prin metoda ferestrelor, utilizând fereastra specificată de
lungime n + 1, un filtru trece jos de ordinul n cu frecvenţa de tăiere Wn;
• dacă Wn este un vector cu două elemente, wn=[w1,w2] cu w1<w2, se va
proiecta prin metoda ferestrelor, utilizând fereastra specificată de lungime
n+1, un filtru trece bandă de ordinul n, cu banda de trecere cuprinsă între
frecvenţele w1 şi w2.

h = fir1(n,wn,’high’,tip_fereastra(n+1))
• proiectează prin metoda ferestrelor, utilizând fereastra specificată de lungime
n+1, un filtru trece sus de ordinul n (ordinul n trebuie să fie par) cu frecvenţa
de tăiere Wn;

h = fir1(n,wn,’stop’,tip_fereastra(n+1))
• Wn este un vector cu două elemente, wn=[w1,w2] cu w1<w2; se va proiecta
prin metoda ferestrelor, utilizând fereastra specificată de lungime n+1, un
filtru opreşte bandă de ordinul n (ordinul n trebuie să fie par), cu banda de
oprire cuprinsă între w1 şi w2.

63
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Exemplu:
Să se proiecteze prin metoda ferestrelor, utilizând o fereastră
dreptunghiulară, un filtru trece jos cu lungimea N = 31 şi frecvenţa de tăiere
Ft = 5kHz . Frecvenţa de eşantionare este FS = 40kHz . Să se reprezinte grafic
funcţia pondere a filtrului, poziţionarea zerourilor în planul Z şi caracteristica
amplitudine-frecvenţă pentru funcţiei de transfer (reprezentare liniară şi în dB).

Dacă filtrul are lungimea N = 31 atunci ordinul filtrului (n din sintaxa


MATLAB) va fi n = N − 1 = 30 , lungimea ferestrei va fi n + 1 = N = 31, iar
frecvenţa de tăiere normată (Wn din sintaxa MATLAB) se calculează astfel:
Ft 5
f MATLAB = = = 0,25
FS / 2 40 / 2

N=31; Ft=5000; Fs=40000;


wn=2*Ft/Fs
h=fir1(N-1,wn,boxcar(N));
n=0:N-1;
figure(1),stem(n,h),grid
0.3

0.25

0.2

0.15

0.1

0.05

-0.05

-0.1
0 5 10 15 20 25 30

// se observă că filtrul proiectat este de tipul 1.


figure(2),zplane(h)

0.8

0.6

0.4
Imaginary part

0.2

-0.2

-0.4

-0.6

-0.8

-1

-1 -0.5 0 0.5 1 1.5


Real part

64
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

H=fft(h,512);
w=-pi:2*pi/512:pi-2*pi/512;
figure(3),plot(w,fftshift(abs(H))),grid
1.4

1.2

0.8

0.6

0.4

0.2

0
-4 -3 -2 -1 0 1 2 3 4

figure(4),plot(w,20*log10(fftshift(abs(H)))),grid
20

-20

-40

-60

-80

-100
-4 -3 -2 -1 0 1 2 3 4

// se remarcă prezenţa riplurilor şi mărimea lor în apropierea zonei de tranziţie .

E3. Exerciţii:

1. a) Completaţi exemplul precedent proiectând, folosind fereastra Hamming,


încă un filtru cu aceiaşi parametri. Reprezentaţi pe acelaşi grafic, cu culori
diferite, caracteristicile amplitudine-frecvenţă ale celor două filtre. Comparaţi
lărgimea benzilor de tranziţie şi atenuările în banda de oprire.
b) Modificaţi lungimea filtrelor pentru N = 51. Ce observaţi referitor la
dimensiunea riplurilor şi a zonei de tranziţie?
c) Cât ar trebui ales N pentru filtrul proiectat folosind fereastra Hamming
astfel ca să aibă banda de tranziţie de aceeaşi dimensiune ca filtrul proiectat
cu fereastra dreptunghiulară de lungime N = 31 ?
65
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

2. a) Să se proiecteze prin metoda ferestrelor, utilizând o fereastră


dreptunghiulară, un filtru trece sus cu lungimea N = 31 şi frecvenţa de tăiere
Ft = 5kHz . Frecvenţa de eşantionare este FS = 40kHz . Precizaţi tipul
filtrului. Să se reprezinte grafic funcţia pondere a filtrului, poziţionarea
zerourilor în planul Z şi caracteristica amplitudine-frecvenţă pentru funcţia
de transfer (reprezentare liniară şi în dB).
b) Reluaţi subpunctul a) folosind N = 51. Reprezentaţi pe acelaşi grafic
caracteristicile amplitudine-frecvenţă obţinute în cele două cazuri. Discutaţi
rezultatele obţinute.
c) Reluaţi subpunctul a) folosind în proiectare şi celelalte tipuri de ferestre.
Reprezentaţi pe acelaşi grafic caracteristicile amplitudine-frecvenţă obţinute.
Comentaţi rezultatele prezentând avantajele şi dezavantajele folosirii fiecărui
tip de fereastră.

3. a) Să se proiecteze prin metoda ferestrelor, utilizând o fereastră


dreptunghiulară, un filtru trece bandă cu lungimea N = 46 şi frecvenţele de
tăiere Ft1 = 5kHz şi Ft 2 = 15kHz . Frecvenţa de eşantionare este FS = 40kHz .
Precizaţi tipul filtrului. Să se reprezinte grafic funcţia pondere a filtrului,
poziţionarea zerourilor în planul Z şi caracteristica amplitudine-frecvenţă
pentru funcţia de transfer (reprezentare liniară şi în dB).
b) Reluaţi subpunctul a) folosind N = 86 . Reprezentaţi pe acelaşi grafic
caracteristicile amplitudine-frecvenţă obţinute în cele două cazuri. Discutaţi
rezultatele obţinute.
c) Reluaţi subpunctul a) folosind în proiectare şi celelalte tipuri de ferestre.
Reprezentaţi pe acelaşi grafic caracteristicile amplitudine-frecvenţă obţinute.
Comentaţi rezultatele prezentând avantajele şi dezavantajele folosirii fiecărui
tip de fereastră.
4. Reluaţi problema 3 pentru frecvenţele de tăiere Ft1 = 8kHz şi Ft 2 = 10kHz .
Comentaţi rezultatele obţinute.

5. a) Să se proiecteze prin metoda ferestrelor, utilizând o fereastră


dreptunghiulară, un filtru opreşte bandă cu lungimea N = 45 şi frecvenţele
de tăiere Ft1 = 5kHz şi Ft 2 = 15kHz . Frecvenţa de eşantionare este
FS = 40kHz . Precizaţi tipul filtrului. Să se reprezinte grafic funcţia pondere a
filtrului, poziţionarea zerourilor în planul Z şi caracteristica amplitudine-
frecvenţă pentru funcţia de transfer (reprezentare liniară şi în dB).
b) Reluaţi subpunctul a) folosind N = 85 . Reprezentaţi pe acelaşi grafic
caracteristicile amplitudine-frecvenţă obţinute în cele două cazuri. Discutaţi
rezultatele obţinute.
c) Reluaţi subpunctul a) folosind în proiectare şi celelalte tipuri de ferestre.
Reprezentaţi pe acelaşi grafic caracteristicile amplitudine-frecvenţă obţinute.

66
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Comentaţi rezultatele prezentând avantajele şi dezavantajele folosirii fiecărui


tip de fereastră.
6. Reluaţi problema 5 pentru frecvenţele de tăiere Ft1 = 8kHz şi Ft 2 = 10kHz .
Comentaţi rezultatele obţinute.

fir2 – Proiectarea prin metoda ferestrelor a filtrelor digitale RFI cu


răspuns în frecvenţă arbitrar ales.

Sintaxe :

h = fir2(n,f,m)
• n reprezintă ordinul filtrului pe care dorim să-l proiectăm (lungimea minus
unu);
• vectorul f conţine valori de pe axa frecvenţelor normate; aceste valori sunt
cuprinse între 0 şi 1 (primul element al vectorului f trebuie să fie 0 iar ultimul
element trebuie să fie 1), unde 1 corespunde jumătăţii frecvenţei de
eşantionare; dacă avem frecvenţele exprimate în Hz atunci pentru a calcula
elementele vectorului f vom face conversia:
frecvenţa[Hz]/(frecvenţa de eşantionare[Hz]/2);
• vectorul m conţine valorile modulului răspunsului în frecvenţă dorit; aceste
valori corespund frecvenţelor din vectorul f; comanda plot(f,m) va afişa
caracteristica de modul a răspunsului în frecvenţă al filtrului dorit;
• se va returna vectorul linie h de lungime n + 1 ce conţine coeficienţii funcţiei
de transfer H ( z ) a filtrului ( h = [h[1], h[2], h[3],......, h[n + 1]] ; vezi relaţia
(3.23));
• proiectarea se face prin metoda ferestrelor folosind o fereastră Hamming de
lungime n + 1.

h = fir2(n,f,m,tip_fereastra(n+1))
• n, f, m şi h au aceleaşi semnificaţii ca în sintaxa precedentă;
• tip_fereastra specifică tipul ferestrei cu care dorim să proiectăm
filtrul; în loc de tip_fereastra(n+1) poate fi orice vector coloană de
lungime n+1 ce conţine valorile eşantioanelor unei secvenţe pe care dorim să
o folosim pe post de fereastră în proiectarea filtrului.

67
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Exemplu:
Să se proiecteze prin metoda ferestrelor, utilizând o fereastră
dreptunghiulară, un filtru trece jos cu lungimea N = 31 şi frecvenţa de tăiere
Ft = 5kHz . Frecvenţa de eşantionare este FS = 40kHz . Să se reprezinte grafic
funcţia pondere a filtrului, poziţionarea zerourilor în planul Z şi caracteristica
amplitudine-frecvenţă pentru funcţiei de transfer (reprezentare liniară şi în dB).
Dacă filtrul are lungimea N = 31 atunci ordinul filtrului (n din sintaxa
MATLAB) va fi n = N − 1 = 30 , lungimea ferestrei va fi n + 1 = N = 31, iar
frecvenţa de tăiere normată (Wn din sintaxa MATLAB) se calculează astfel:
Ft 5
f MATLAB = = = 0,25
FS / 2 40 / 2

f=[0,0.25,0.25,1]; 1.2

m=[1,1,0,0]; 1
figure(1),plot(f,m)
axis([0 1 –0.2 1.2]) 0.8

0.6

0.4

0.2

-0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

// s-a afişat răspunsul în frecvenţă al filtrului dorit (filtru trece jos ideal); se
observă corespondenţa dintre valorile vectorilor f şi m; comanda axis s-a
folosit pentru o mai bună vizualizare a graficului.

N=31; 0.25

h=fir2(N-1,f,m,boxcar(N)); 0.2

n=0:30;
0.15
figure(2),stem(n,h),grid
0.1

0.05

-0.05

-0.1
0 5 10 15 20 25 30

// se observă diferenţa faţă de valorile răspunsului la impuls obţinut prin


proiectarea cu fir1; aceasta se datorează faptului că funcţia fir2 nu mai
impune condiţia ca în ω = 0 să avem H (e jω ) = ∑ h[n] = 1 (0 dB).
n

68
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

figure(3),zplane(h)
1

0.8

0.6

0.4

Imaginary part
0.2

-0.2

-0.4

-0.6

-0.8

-1

-1 -0.5 0 0.5 1 1.5


H=fft(h,512); Real part

w=-pi:2*pi/512:pi-2*pi/512;
figure(4),plot(w,fftshift(abs(H))),grid
1.4

1.2

0.8

0.6

0.4

0.2

0
-4 -3 -2 -1 0 1 2 3 4

figure(5),plot(w,20*log10(fftshift(abs(H)))),grid
10

-10

-20

-30

-40

-50

-60

-70

-80

-90
-4 -3 -2 -1 0 1 2 3 4

// se remarcă prezenţa riplurilor şi mărimea lor în apropierea zonei de tranziţie.

E4. Exerciţii:
Reluaţi problemele 2, 3 şi 5 din cadrul exerciţiilor de la fir1 (vezi E3) folosind
pentru proiectare funcţia fir2. Comentaţi rezultatele obţinute.
69
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

3.3.2. Funcţii MATLAB pentru proiectarea filtrelor RFI prin metode


bazate pe aproximarea în domeniul frecvenţă

Suportul teoretic îl constituie teoria aproximării funcţiilor de transfer


utilizând un anumit criteriu de minimizare a erorii dintre funcţia de transfer
aproximantă şi cea aproximată (dorită), eroarea fiind evaluată în benzile de
frecvenţă de interes practic (banda de trecere efectivă şi banda de oprire efectivă
în cazul unui filtru trece jos).

firls – Proiectarea filtrelor digitale RFI prin aproximarea în sensul celor


mai mici pătrate a unui răspuns în frecvenţă specificat.

Sintaxe:

h = firls(n,f,m)
• n reprezintă ordinul filtrului pe care dorim să-l proiectam (lungimea minus
unu);
• vectorul f conţine valori de pe axa frecvenţelor normate; aceste valori sunt
cuprinse între 0 şi 1, unde 1 corespunde jumătăţii frecvenţei de eşantionare;
dacă avem frecvenţele exprimate în Hz atunci pentru a calcula elementele
vectorului f vom face conversia:
frecvenţa[Hz]/(frecvenţa de eşantionare[Hz]/2);
• vectorul m conţine valorile modulului răspunsului în frecvenţă dorit; aceste
valori corespund frecvenţelor din vectorul f; comanda plot(f,m) va afişa
caracteristica de modul a răspunsului în frecvenţă al filtrului dorit;
• lungimea vectorilor f şi m trebuie să fie un număr par ;
• se va returna vectorul linie h de lungime n + 1 ce conţine coeficienţii funcţiei
de transfer H ( z ) a filtrului ( h = [h[1], h[2], h[3],......, h[n + 1]] ; vezi relaţia
(3.23));
h = firls(n,f,m,’hilbert’)
• n, f, m şi h au aceleaşi semnificaţii ca în sintaxa precedentă;
• se va proiecta un transformator Hilbert.

h = firls(n,f,m,’differentiator’)
• n, f, m şi h au aceleaşi semnificaţii ca în sintaxa precedentă;
• se va proiecta un diferenţiator digital.

h = firls(n,f,m,w)
• n, f, m şi h au aceleaşi semnificaţii ca în sintaxa precedentă;
• vectorul w conţine valorile ponderilor aproximărilor din fiecare bandă;
lungimea sa va fi egală cu jumătate din lungimea vectorilor f şi m.

70
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

h = firls(n,f,m,w,’hilbert’)
• n, f, m, w şi h au aceleaşi semnificaţii ca în sintaxele anterioare;
• se va proiecta un transformator Hilbert.
h = firls(n,f,m,w,’differentiator’)
• n, f, m, w şi h au aceleaşi semnificaţii ca în sintaxele anterioare;
• se va proiecta un diferenţiator digital.

firpm – Proiectarea filtrelor digitale RFI prin aproximare Cebîşev, utilizând


algoritmul Parks-McClellan (algoritmul schimbărilor Remez).

Sintaxe:

h = firpm(n,f,m)
• n reprezintă ordinul filtrului pe care dorim să-l proiectam (lungimea minus
unu);
• vectorul f conţine valori de pe axa frecvenţelor normate; aceste valori sunt
cuprinse între 0 şi 1, unde 1 corespunde jumătăţii frecvenţei de eşantionare;
dacă avem frecvenţele exprimate în Hz atunci pentru a calcula elementele
vectorului f vom face conversia:
frecvenţa[Hz]/(frecvenţa de eşantionare[Hz]/2);
• vectorul m conţine valorile modulului răspunsului în frecvenţă dorit; aceste
valori corespund frecvenţelor din vectorul f; comanda plot(f,m) va afişa
caracteristica de modul a răspunsului în frecvenţă al filtrului dorit;
• lungimea vectorilor f şi m trebuie să fie un număr par ;
• se va returna vectorul linie h de lungime n + 1 ce conţine coeficienţii funcţiei
de transfer H ( z ) a filtrului ( h = [h[1], h[2], h[3],......, h[n + 1]] - relaţia (3.23));

h = firpm(n,f,m,’hilbert’)
• n, f, m şi h au aceleaşi semnificaţii ca în sintaxa precedentă;
• se va proiecta un transformator Hilbert.

h = firpm(n,f,m,’differentiator’)
• n, f, m şi h au aceleaşi semnificaţii ca în sintaxa precedentă;
• se va proiecta un diferenţiator digital.
h = firpm(n,f,m,w)
• n, f, m şi h au aceleaşi semnificaţii ca în sintaxa precedentă;
• vectorul w conţine valorile ponderilor corespunzătoare aproximărilor din
fiecare bandă; lungimea sa va fi egală cu jumătate din lungimea vectorilor f
şi m.

71
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

h = firpm(n,f,m,w,’hilbert’)
• n, f, m, w şi h au aceleaşi semnificaţii ca în sintaxele anterioare;
• se va proiecta un transformator Hilbert.
h = firpm(n,f,m,w,’differentiator’)
• n, f, m, w şi h au aceleaşi semnificaţii ca în sintaxele anterioare;
• se va proiecta un diferenţiator digital.

firpmord – Determinarea parametrilor de intrare ai funcţiei firpm.

Sintaxe:

[n,fo,mo,w] = firpmord(f,m,dev)
• vectorul f conţine valorile frecvenţelor de la capetele benzilor de interes (de
exemplu în cazul unui filtru trece jos este vorba despre frecvenţa limită
superioară a benzii de trecere şi frecvenţa limită inferioară a benzii de oprire);
• vectorul m specifică valorile amplitudinilor dorite pentru modulul răspunsului
în frecvenţă al filtrului, în benzile specificate de vectorul f (de exemplu în
cazul unui filtru trece jos vectorul m va conţine valorile 1, corespunzătoare
benzii de trecere şi 0, corespunzătoare benzii de oprire);
• lungimea vectorului f = 2⋅(lungimea vectorului m) – 2;
• vectorul dev conţine valorile maxim admise ale erorilor de aproximare dintre
amplitudinea dorită (specificată în vectorul m) şi amplitudinea caracteristicii
de modul a răspunsului în frecvenţă al filtrului rezultat;
• lungimea vectorului dev = lungimea vectorului m ;
• rezultatele n, fo, mo şi w vor fi chiar parametrii de intrare ai funcţiei firpm:
h=firpm(n,fo,mo,w)

[n,fo,mo,w] = firpmord(f,m,dev,Fs)
• Fs specifică valoarea frecvenţei de eşantionare; dacă nu este specificată
frecvenţa de eşantionare (ca în sintaxa precedentă) se alege în mod implicit
valoarea Fs = 2 Hz (acest lucru implică faptul că frecvenţa Nyquist este 1 Hz)
• ceilalţi parametrii au aceleaşi semnificaţii ca în sintaxa precedentă.

Observaţie:
În unele cazuri funcţia firpmord subestimează ordinul filtrului. În acest
caz, dacă nu suntem mulţumiţi de caracteristicile filtrul obţinut, se poate încerca
un ordin mai mare majorând ordinul estimat cu 1 sau 2, folosindu-se pentru
proiectare h=firpm(n+1,fo,mo,w) sau h=firpm(n+2,fo,mo,w).

72
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Exemplu:
Să se proiecteze folosind algoritmul Parks-McClellan, un filtru trece jos având
riplul de 0.01 în banda de trecere şi 0.1 în banda de oprire. Frecvenţa limită
superioară a benzii de trecere este 6 kHz iar frecvenţa limită inferioară a benzii
de oprire este 8 kHz. Frecvenţa de eşantionare este Fs = 24 kHz.
Gabaritul filtrului dorit este prezentat mai jos:

±0.01
1

0.1

0 Fe=6000Hz Fb1=8000Hz

Fs=24000;
f=[6000,8000];
m=[1,0];
dev=[0.01,0.1];
[n,fo,mo,w]=firpmord(f,m,dev,Fs) → n =
16
fo =
0
0.5000
0.6667
1.0000
mo =
1
1
0
0
w =
10
1
h=firpm(n+2,fo,mo,w);
freqz(h)

73
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

Se observă că atenuarea în banda de oprire este peste 20dB ceea ce corespunde


condiţiilor de proiectare impuse (câştig maxim de 0.1 în banda de oprire).
Se poate mări imaginea în zona benzii de trecere pentru a se măsura
dimensiunea riplurilor (folosind zoom) şi pentru a se verifica riplul maxim
impus (1±0.01 înseamnă în decibeli aproximativ ±0.08dB).

E5. Exerciţii:
1. Să se proiecteze un filtru trece jos de ordin 15 cu frecvenţa de tăiere
Ft=2KHz şi frecvenţa de eşantionare Fs=20KHz, utilizând metoda
aproximării în sensul celor mai mici pătrate (procedura firls din
MATLAB). Frecvenţa limită inferioară a benzii de oprire, Fb=2.2KHz.
Reprezentaţi coeficienţii filtrului şi caracteristica amplitudine-frecvenţă.

2. Să se proiecteze, folosind algoritmul Parks-McClellan (procedura firpm) , un


FTS cu riplul de 0.02 în banda de trecere şi 0.08 în banda de oprire. Frecvenţa
limită superioară a benzii de oprire este 2400Hz, iar frecvenţa limită inferioară
a benzii de trecere 3000Hz. Frecvenţa de eşantionare este 8kHz. Determinaţi
ordinul filtrului. Reprezentaţi coeficienţii filtrului şi caracteristica amplitudine-
frecvenţă.

74
3. FILTRE CU RĂSPUNS FINIT LA IMPULS

3. Să se proiecteze, folosind procedura firpm, un filtru care să aproximeze


caracteristica filtrului trece bandă:
⎧0, 0 ≤ ω ≤ 0.3π
jω ⎪
H (e ) = ⎨1, 0.4π ≤ ω ≤ 0.6π
⎪0 0.7π ≤ ω ≤ π

Filtrul trebuie să aibă o atenuare de maxim 1 dB în banda de trecere şi minim
40dB în banda de oprire. Frecvenţa de eşantionare este 24kHz. Determinaţi
ordinul filtrului. Reprezentaţi coeficienţii filtrului şi caracteristica amplitudine-
frecvenţă.

4. Reluaţi problema precedentă folosind procedura firls.

Tema de casă.

Fiecare student primeşte 4 probleme din fişierul Tema_RFI.pdf.

75

S-ar putea să vă placă și