lucrarea 3 filtre cu rĂspuns finit la impuls · 2008-03-22 · realizarea operaţiei de filtrare...

25
3. FILTRE CU RĂSPUNS FINIT LA IMPULS 51 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 ] [ n x şi răspunsul la impuls al sistemului, notat cu ] [ n h , denumit şi funcţie pondere: −∞ = = = k k n x k h n h n x n y ] [ ] [ ] [ ] [ ] [ (3.1) Aplicarea transformatei Z ambilor membri ai relaţiei (3.1) permite stabilirea legăturii dintre transformatele Z ale semnalelor de intrare şi ieşire: ) ( ) ( ) ( z X z H z Y = (3.2) unde ) ( z H reprezintă funcţia de transfer a SDLIT. Filtrele cu răspuns finit la impuls (prescurtat RFI) au funcţia pondere ] [ n h nenulă pentru { } 1 , , 1 , 0 N n . 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: = = = 1 0 ] [ ] [ ] [ ] [ ] [ N k k n x k h n h n x n y (3.3)

Upload: others

Post on 25-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

51

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 ][nx şi răspunsul la impuls al sistemului, notat cu ][nh , denumit şi funcţie pondere:

∑∞

−∞=

−=∗=k

knxkhnhnxny ][][][][][ (3.1)

Aplicarea transformatei Z ambilor membri ai relaţiei (3.1) permite stabilirea legăturii dintre transformatele Z ale semnalelor de intrare şi ieşire: )()()( zXzHzY = (3.2) unde )(zH reprezintă funcţia de transfer a SDLIT. Filtrele cu răspuns finit la impuls (prescurtat RFI) au funcţia pondere

][nh nenulă pentru { }1,,1,0 −∈ Nn … . 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:

∑−

=

−=∗=1

0][][][][][

N

kknxkhnhnxny (3.3)

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

52

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

1

0( ) [ ]

Nn

nH z h n z

−−

=

= ∑ (3.4)

Deci funcţia de transfer nu prezintă poli, fiind o funcţie polinomială de ordinul 1−N în 1−z . 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 )(zH de forma (3.4) de-a lungul cercului de rază unitate din planul Z:

∑−

=

−=

==1

0][)()(

N

n

jnez

j enhzHeH jωω

ω (3.5)

unde

2 2S

FfF

ω π π= = (3.6)

Frecvenţa normată f se calculează ca raportul dintre valoarea frecvenţei (F exprimată în Hz) şi valoarea frecvenţei de eşantionare ( SF exprimată în Hz). Funcţia de transfer evaluată la frecvenţe fizice, periodică în frecvenţă cu perioada 2π, poate fi exprimată în forma polară:

)()()( ωϕωω jjj eeHeH = (3.7)

unde )( ωjeH ş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 Rnh ∈][ , 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ă:

)()(;)()( ωϕωϕωω −=−=− jj eHeH (3.8)

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

53

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

0 )()( ωθωω jjj eeHeH = (3.9) cu ReH j ∈)(0

ω şi )(ωθ funcţie liniară. Funcţia reală )(0ωjeH 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:

]1[][ nNhnh −−= (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:

]1[][ nNhnh −−−= (3.11)

tipul 4: filtre RFI cu lungime pară şi răspuns la impuls antisimetric.

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

1 N impar simetrică

]1[][ nNhnh −−=

( )1

2

0cos

N

nn

a nω

=∑

12

N ω−−

2 N par simetrică

]1[][ nNhnh −−=

2

1

1cos2

N

nn

b n ω=

⎛ ⎞−⎜ ⎟⎝ ⎠

∑ 1

2N ω−

3 N impar

antisimetrică ]1[][ nNhnh −−−=

1 02

Nh −⎡ ⎤ =⎢ ⎥⎣ ⎦

( )1

2

1sin

N

nn

c nω

=∑

12 2

Nπ ω−−

4 N par antisimetrică

]1[][ nNhnh −−−=

2

1

1sin2

N

nn

d n ω=

⎛ ⎞−⎜ ⎟⎝ ⎠

∑ 1

2 2Nπ ω−

Caracteristici ale filtrelor RFI cu fază liniară

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

54

Poziţionarea în planul Z a zerourilor funcţiei de transfer Simetria sau antisimetria secvenţei ][nh implică şi o poziţionare specifică a zerourilor funcţiei de transfer )(zH . Consecinţele în planul Z sunt: 1. Dacă iz este un zero al funcţiei )(zH , atunci şi iz/1 este de asemenea un zero al acesteia; 2. Pentru aplicaţiile ce prezintă interes practic, coeficienţii ][nh ai polinomului

)(zH sunt reali şi drept urmare orice zero va fi însoţit şi de complex conjugatul său. Considerând zeroul 1z exprimat în coordonate polare: 1

11θjerz = , atunci, în

funcţie de valorile razei vectoare 1r şi unghiului 1θ , sunt posibile următoarele configuraţii de zerouri: a) πθθ ≠≠≠ 111 ;0;1r :

1111 )/1(/1;)/1(/1;; 1241131*1211

θθθθ jjjj erzzerzzerzzerz ======= −−

b) πθθ ≠≠= 111 ;0;1r : 11

1*121 /1; θθ jj ezzzez −====

c) πθθ ==≠ 111 sau0;1r : 1121111211 /1/1;sau/1/1; rzzrzrzzrz −==−====

d) πθθ === 111 sau0;1r : 1sau1 111 −== zz

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 1=z şi 1−=z care sunt simultan propriile lor inverse.

Tip 0 ( )jH e ω în 0ω =

0 ( )jH e ω în ω π=

Zerouri obligatorii

Se pot proiecta

1 fără constrângeri

fără constrângeri fără constrângeri FTJ, FTS

FTB, FOB

2 fără constrângeri 0 1−=z

FTJ, FTB

3 0 0 1=z şi 1−=z FTB,

transf. Hilbert, diferenţiator

4 0 fără constrângeri 1=z

FTS, FTB, transf. Hilbert, diferenţiator

Caracteristici ale filtrelor RFI cu fază liniară

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

55

Exemple: 1. Să se reprezinte poziţionarea zerourilor în planul Z şi să se precizeze tipul

filtrului RFI definit prin funcţia pondere:

⎟⎠⎞

⎜⎝⎛ −= )8(

53sinc

53][ nnh π , 16,,1,0 …=n .

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) // 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 // din reprezentarea grafică a răspunsului la impuls se observă de asemenea că filtrul RFI din exemplu este de tipul 1.

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

-1

-0.5

0

0.5

1

1.5

Real part

Imag

inar

y pa

rt

0 2 4 6 8 10 12 14 16-0.1

0

0.1

0.2

0.3

0.4

0.5

0.6

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

56

2. Să se determine şi să se reprezinte grafic funcţia pondere ][nh a filtrului digital RFI cu fază liniară, de tipul 3, cu coeficienţi reali şi cu ordinul minim

posibil, ştiind că funcţia de transfer )(zH are zerourile 32

1 21 πj

ez = , 32

πjez =

şi ( ) jeH j 262/ −=π . 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ă 1z este zerou complex şi nu se află pe cercul de rază unitate atunci vor fi

zerouri şi ,1∗z

1

1z

şi ∗1

1z

;

- dacă 2z este zerou complex şi se află pe cercul de rază unitate atunci şi ∗2z va

fi zerou; - filtrul este de tipul 3 şi este deci obligatorie prezenţa simultană a zerourilor

1=z şi 1−=z ; - filtrul este de ordin minim şi deci nu mai apar alte zerouri în afara celor de

mai sus. zplane(z) 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 2/πje ; pentru a satisface cerinţa din problemă trebuie să efectuăm o înmulţire cu 4; vezi help polyval.

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

-1.5

-1

-0.5

0

0.5

1

1.5

Real part

Imag

inar

y pa

rt

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

57

h=4*p; n=0:length(h)-1; stem(n,h),grid // 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:

a) ⎩⎨⎧ ≤≤−−

=rest

nnnh

,060,34

][

b) ⎪⎩

⎪⎨⎧ ≤≤=

rest

nnh,0

80,91

][

c) ⎪⎩

⎪⎨

=−==

=14,8,147,06,0,

][nn

nnn

nh

d) ]11[]8[2]6[5]5[5]3[2][][ −+−−−+−+−−= nxnxnxnxnxnxny e) 11109765421 5,0225,0)( −−−−−−−−− −−+−−++−+= zzzzzzzzzzH f) 51)( −−= zzH g) 61)( −−= zzH Reprezentaţi grafic răspunsul la impuls al fiecărui filtru.

2. Să se determine şi să se reprezinte grafic funcţia pondere ][nh 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 )(zH are zerourile 4/

1 33,0 πjez −= , 7,02 −=z , 4/

3πjez = şi jz 5,04 = . Să se reprezinte poziţionarea zerourilor în

planul Z . 3. Reluaţi problema 2 în cazul în care filtrul este de tipul 4.

0 1 2 3 4 5 6 7 8-15

-10

-5

0

5

10

15

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

58

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 ][nh∞ , cu suport infinit ( ∞<<∞− n ), pornind de la funcţia de transfer impusă, notată aici )( ωjeH∞ . În acest scop suportul matematic îl oferă transformata Fourier inversă:

=∞ ][nh ℱ { } ∫ ∞∞− =

π

ωωω ωπ 2

1 )(21)( deeHeH njjj (3.12)

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

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

⎩⎨⎧

==−−

−−

∞ 3,4tipurilepentru;)(1,2tipurilepentru;)()()( )2/)1(2/(

2/)1()(

Njjd

Njjdjj

dj

eeHeeHeeHeH ωπω

ωωωθωω (3.13)

unde )( ωjd eH 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 ][nh∞ astfel încât să se obţină secvenţa de lungime finită N, adică:

⎩⎨⎧ −≤≤

= ∞

restin 010pentru][][

][Nnnhnw

nh (3.14)

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 ][nw .

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

59

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:

⎩⎨⎧ −≤≤

=restin 0

10pentru1][

Nnnwd (3.15)

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 ][nh∞ , comparativ cu fereastra dreptunghiulară şi anume: Fereastra triunghiulară (Bartlett)

21

121][ −

−+

−=Nn

Nnw , 10 −≤≤ Nn (3.16)

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

60

Fereastra Blackman

⎥⎦

⎤⎢⎣

⎡⎟⎠⎞

⎜⎝⎛ +⋅+⎥⎦

⎤⎢⎣

⎡⎟⎠⎞

⎜⎝⎛ +⋅−=

214cos08,0

212cos5,042,0][ n

Nπn

Nπnw , 10 −≤≤ Nn

(3.17) Fereastra Hamming

⎥⎦

⎤⎢⎣

⎡⎟⎠⎞

⎜⎝⎛ +−=

212cos46,054,0][ n

Nπnw , 10 −≤≤ Nn (3.18)

Fereastra Hanning (von Hann)

⎥⎦

⎤⎢⎣

⎡⎟⎠⎞

⎜⎝⎛ +−=

212cos5,05,0][ n

Nπnw , 10 −≤≤ Nn (3.19)

Fereastra Kaiser

)(

11

21

][0

2

0

βI

NnβI

=nw⎥⎥⎦

⎢⎢⎣

⎡⎟⎠⎞

⎜⎝⎛ −

−−

, 10 −≤≤ Nn (3.20)

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:

dBdB21a,0

50adB21,)21a(07886,0)21a(5842,0dB50a,)7,8a(1102,0

m

mm4.0

m

mm

⎪⎩

⎪⎨

<≤≤−+−

>−=β (3.21)

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)).

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

61

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?

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

Dreptunghiulară 4Nπ –13,3

Triunghiulară 8

1Nπ+

–26,5

Hanning 8Nπ –31,5

Hamming 8Nπ –42,7

Blackman 12

Nπ –58,1

Kaiser cu 7,865β =

2 15,73N Nπβ π

= –57 (reglabil cu β )

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

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

62

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 1≤ ≤ −n N , transformata Z a lui h n[ ] reprezintă funcţia de transfer a filtrului:

∑−

=

−−−−− −++++==1

0

)1(21 ]1[......]2[]1[]0[][)(N

n

Nn zNhzhzhhznhzH (3.22)

Ţ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: nznhzhzhhzH −−− +++++= ]1[......]3[]2[]1[)( 21 (3.23) în care ]1[],......,3[],2[],1[ +nhhhh 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 1][)( ==∑

n

j nheH ω (0 dB).

• Normarea frecvenţelor se face în mod diferit (în comparaţie cu relaţia (3.6)):

2 2/ 2MATLAB teoretic

S S

F Ff fF F

= = = (3.24)

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;

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

63

• 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 ( [ ]]1[],......,3[],2[],1[h += nhhhh ; 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.

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

64

Exemplu: Să se proiecteze prin metoda ferestrelor, utilizând o fereastră

dreptunghiulară, un filtru trece jos cu lungimea 31=N şi frecvenţa de tăiere kHz5=tF . Frecvenţa de eşantionare este 40kHzSF = . 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 31=N atunci ordinul filtrului (n din sintaxa MATLAB) va fi 301=−= Nn , lungimea ferestrei va fi 311 ==+ Nn , iar frecvenţa de tăiere normată (Wn din sintaxa MATLAB) se calculează astfel:

5 0,25/ 2 40 / 2t

MATLABS

FfF

= = =

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 // se observă că filtrul proiectat este de tipul 1. figure(2),zplane(h)

0 5 10 15 20 25 30-0.1

-0.05

0

0.05

0.1

0.15

0.2

0.25

0.3

-1 -0.5 0 0.5 1 1.5

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Real part

Imag

inar

y pa

rt

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

65

H=fft(h,512); w=-pi:2*pi/512:pi-2*pi/512; figure(3),plot(w,fftshift(abs(H))),grid figure(4),plot(w,20*log10(fftshift(abs(H)))),grid // 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 51=N . 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 31N = ?

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

0.2

0.4

0.6

0.8

1

1.2

1.4

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

-80

-60

-40

-20

0

20

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

66

2. a) Să se proiecteze prin metoda ferestrelor, utilizând o fereastră dreptunghiulară, un filtru trece sus cu lungimea 31=N şi frecvenţa de tăiere

kHz5=tF . Frecvenţa de eşantionare este 40kHzSF = . 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 51=N . 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 46=N şi frecvenţele de tăiere kHz51 =tF şi kHz152 =tF . Frecvenţa de eşantionare este 40kHzSF = . 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 86N = . 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 kHz81 =tF şi kHz102 =tF . 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 45=N şi frecvenţele de tăiere kHz51 =tF şi kHz152 =tF . Frecvenţa de eşantionare este

40kHzSF = . 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 85N = . 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.

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

67

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 kHz81 =tF şi kHz102 =tF . 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 ( [ ]]1[],......,3[],2[],1[h += nhhhh ; 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.

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

68

Exemplu: Să se proiecteze prin metoda ferestrelor, utilizând o fereastră

dreptunghiulară, un filtru trece jos cu lungimea 31=N şi frecvenţa de tăiere kHz5=tF . Frecvenţa de eşantionare este 40kHzSF = . 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 31=N atunci ordinul filtrului (n din sintaxa MATLAB) va fi 301=−= Nn , lungimea ferestrei va fi 311 ==+ Nn , iar frecvenţa de tăiere normată (Wn din sintaxa MATLAB) se calculează astfel:

5 0,25/ 2 40 / 2t

MATLABS

FfF

= = =

f=[0,0.25,0.25,1]; m=[1,1,0,0]; figure(1),plot(f,m) axis([0 1 –0.2 1.2]) // 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; h=fir2(N-1,f,m,boxcar(N)); n=0:30; figure(2),stem(n,h),grid // 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 1][)( ==∑

n

j nheH ω (0 dB).

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

0

0.2

0.4

0.6

0.8

1

1.2

0 5 10 15 20 25 30-0.1

-0.05

0

0.05

0.1

0.15

0.2

0.25

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

69

figure(3),zplane(h) H=fft(h,512); w=-pi:2*pi/512:pi-2*pi/512; figure(4),plot(w,fftshift(abs(H))),grid figure(5),plot(w,20*log10(fftshift(abs(H)))),grid // 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.

-1 -0.5 0 0.5 1 1.5

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Real part

Imag

inar

y pa

rt

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

0.2

0.4

0.6

0.8

1

1.2

1.4

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

-80

-70

-60

-50

-40

-30

-20

-10

0

10

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

70

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 ( [ ]]1[],......,3[],2[],1[h += nhhhh ; 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.

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

71

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 ( [ ]]1[],......,3[],2[],1[h += nhhhh - 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.

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

72

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).

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

73

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 Fe=6000Hz Fb1=8000Hz

±0.01

0.1

1

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)

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

74

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ţă.

3. FILTRE CU RĂSPUNS FINIT LA IMPULS

75

3. Să se proiecteze, folosind procedura firpm, un filtru care să aproximeze caracteristica filtrului trece bandă:

0, 0 0.3( ) 1, 0.4 0.6

0 0.7

jH e ω

ω ππ ω ππ ω π

≤ ≤⎧⎪= ≤ ≤⎨⎪ ≤ ≤⎩

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.