LUCRAREA 3 FILTRE CU RĂSPUNS FINIT LA IMPULS 3.. 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 [ şi răspunsul la impuls al sistemului, notat cu h [, denumit şi funcţie pondere: k = y [ = x[ h[ = h[ k] x[ n k] (3.) Aplicarea transformatei Z ambilor membri ai relaţiei (3.) 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 [ nenulă pentru 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.) particularizat corespunzător: N k = y [ = x[ h[ = h[ k] x[ n k] (3.3) 5
În această situaţie funcţia de transfer devine: N n H ( z) = h[ z (3.4) n= Deci funcţia de transfer nu prezintă poli, fiind o funcţie polinomială de ordinul N în 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 H (z) de forma (3.4) de-a lungul cercului de rază unitate din planul Z: H ( e ) = H ( z) z= e N n= jnω = h[ e (3.5) unde F ω = 2π f = 2π (3.6) F S Frecvenţa normată f se calculează ca raportul dintre valoarea frecvenţei (F exprimată în Hz) şi valoarea frecvenţei de eşantionare ( F S exprimată în Hz). Funcţia de transfer evaluată la frecvenţe fizice, periodică în frecvenţă cu perioada 2π, poate fi exprimată în forma polară: jϕ ( ω ) H ( e ) = H ( e ) e (3.7) unde H ( e ) ş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[ 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 ) = H ( e ) ; ϕ( ω ) = ϕ ( ω) (3.8) 52
Filtrele RFI pot avea o caracteristică de fază liniară prin obligarea funcţiei pondere h [ să prezinte proprietatea de simetrie sau de antisimetrie faţă de axa sa centrală ( n = ( N ) / 2). Mai mult, funcţia de transfer Fourier poate fi pusă în forma: ( e ) jθ ( ω ) H ( e ) = H e (3.9) cu H ( e ) R şi θ (ω ) funcţie liniară. Funcţia reală H ( e ) 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 : filtre RFI cu lungime impară şi răspuns la impuls simetric: h[ = h[ N (3.) 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[ = h[ N (3.) tipul 4: filtre RFI cu lungime pară şi răspuns la impuls antisimetric. j Tip Lungime Secvenţa h[ H( e ω ) θ ( ω ) N impar simetrică h[ = h[ N N 2 n= a n cos ( nω ) N ω 2 2 N par simetrică h[ = h[ N N 2 n= bn cos n ω 2 N ω 2 3 N impar antisimetrică h[ = h[ N N h = 2 N 2 n= c n sin ( nω ) π N ω 2 2 4 N par antisimetrică h[ = h[ N N 2 n= dn sin n ω 2 π N ω 2 2 Caracteristici ale filtrelor RFI cu fază liniară 53
Poziţionarea în planul Z a zerourilor funcţiei de transfer Simetria sau antisimetria secvenţei h [ implică şi o poziţionare specifică a zerourilor funcţiei de transfer H (z). Consecinţele în planul Z sunt:. Dacă z i este un zero al funcţiei H (z), atunci şi / zi este de asemenea un zero al acesteia; 2. Pentru aplicaţiile ce prezintă interes practic, coeficienţii h [ ai polinomului H (z) sunt reali şi drept urmare orice zero va fi însoţit şi de complex conjugatul jθ său. Considerând zeroul z exprimat în coordonate polare: z = r e, atunci, în funcţie de valorile razei vectoare r şi unghiului θ, sunt posibile următoarele configuraţii de zerouri: a) r ; θ θ π : ; jθ * jθ jθ = r e ; z2 = z = r e ; z3 = / z = (/ r ) e ; z4 = / z2 (/ r r = ; θ ; θ : jθ * = e ; z2 = z = / z jθ = e r ; θ = sau θ = : = r ; z2 = / z = / r sau z = r ; z2 = / z = / r r = ; θ = sau θ = : = sau z = z = b) π ) z c) π z d) π z 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 = şi z = care sunt simultan propriile lor inverse. e jθ H Tip ( e ) în ω = fără constrângeri fără 2 constrângeri H( e ) în ω = π fără constrângeri Zerouri obligatorii fără constrângeri z = 3 z = şi z = 4 fără constrângeri z = Se pot proiecta FTJ, FTS FTB, FOB FTJ, FTB FTB, transf. Hilbert, diferenţiator FTS, FTB, transf. Hilbert, diferenţiator Caracteristici ale filtrelor RFI cu fază liniară 54
Exemple:. Să se reprezinte poziţionarea zerourilor în planul Z şi să se precizeze tipul filtrului RFI definit prin funcţia pondere: 3 3π h[ = sinc ( n 8), n =,,, 6. 5 5 Reprezentaţi grafic răspunsul la impuls al filtrului. n=:6; h=3/5*sinc(3/5*(n-8)); // vezi help sinc zplane(h).5.5 Imaginary part -.5 - -.5-2 -.5 - -.5.5.5 Real part // reprezentarea zerourilor în planul Z corespunde unui filtru de tipul ; 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.6.5.4.3.2. -. 2 4 6 8 2 4 6 // din reprezentarea grafică a răspunsului la impuls se observă de asemenea că filtrul RFI din exemplu este de tipul. 55
2. Să se determine şi să se reprezinte grafic funcţia pondere h [ a filtrului digital RFI cu fază liniară, de tipul 3, cu coeficienţi reali şi cu ordinul minim 2π π j j posibil, ştiind că funcţia de transfer H (z) are zerourile z 3 = e, z 3 2 = e 2 şi H ( e j π / 2 ) = 26 j. Să se reprezinte poziţionarea zerourilor în planul Z. z=/2*exp(j*2*pi/3); z2=exp(j*pi/3); z=[z;conj(z);/z;conj(/z);z2;conj(z2);;-]; // vectorul coloană z conţine valorile zerourilor funcţiei de transfer a filtrului ţinând cont că: - dacă z este zerou complex şi nu se află pe cercul de rază unitate atunci vor fi zerouri şi z, şi z z ; - 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 = şi z = ; - filtrul este de ordin minim şi deci nu mai apar alte zerouri în afara celor de mai sus. zplane(z).5 Imaginary part.5 -.5 - -.5-2 -.5 - -.5.5.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 =. - 6.5i // vectorul p conţine de fapt coeficienţii funcţiei de transfer a filtrului; s-a jπ / 2 evaluat această funcţie în e ; pentru a satisface cerinţa din problemă trebuie să efectuăm o înmulţire cu 4; vezi help polyval. 56
h=4*p; n=:length(h)-; stem(n,h),grid 5 5-5 - -5 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. E. Exerciţii:. Să se reprezinte poziţionarea zerourilor în planul Z şi să se precizeze tipul filtrelor RFI definite prin: 4 n 3, n 6 a) h[ =, rest, n 8 b) h[ = 9, rest n, n =,6 c) h [ =, n = 7 n 4, n = 8,4 d) y [ = x[ 2x[ n 3] + 5x[ n 5] + 5x[ n 6] 2x[ n 8] + x[ n ] 2 4 5 6 7 9 e) H ( z) =,5 + z z + z + 2z 2z z + z z,5z 5 f) H ( z) = z 6 g) H ( z) = z Reprezentaţi grafic răspunsul la impuls al fiecărui filtru. 2. Să se determine şi să se reprezinte grafic funcţia pondere h [ a filtrului digital RFI cu fază liniară, de tipul 2, cu coeficienţi reali şi cu ordinul minim jπ / 4 posibil, ştiind că funcţia de transfer H (z) are zerourile z =, 33e, jπ / 4 z 2 =,7, z 3 = e şi z4 =, 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.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.. 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 [, cu suport infinit ( < n < ), pornind de la funcţia de transfer impusă, notată aici H ( e ). În acest scop suportul matematic îl oferă transformata Fourier inversă: n h [ = F { H ( e )} = H ( e ) e dω 2 π 2 π (3.2) Deoarece se doreşte ca filtrul rezultant să aibă faza liniară, este necesar ca în H ( e ) să fie inclus şi factorul de fază liniară, adică: H H = H ( N ) / 2 ( ) ; ( jθ ( ω ) d e e e ) = H d ( e ) e j( π / 2 ω ( N ) / 2 ( ) ) d e e pentru ;pentru tipurile tipurile,2 3,4 (3.3) unde H d ( e ) 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 [ astfel încât să se obţină secvenţa de lungime finită N, adică: w[ h [ pentru n N h [ = (3.4) 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 [. 58
Trunchierea directă a seriei Fourier conform relaţiei (3.4), 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:. 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:. 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 şi 2 sunt contradictorii. Cea mai simplă fereastră este fereastra dreptunghiulară, definită astfel: pentru n N w d [ = (3.5) 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 [, comparativ cu fereastra dreptunghiulară şi anume: h Fereastra triunghiulară (Bartlett) 2 N w [ = n, n N (3.6) N + 2 59
Fereastra Blackman 2π 4π w [ =,42,5 cos n + +,8 cos n +, n N N 2 N 2 (3.7) Fereastra Hamming 2π w [ =,54,46cos n +, n N (3.8) N 2 Fereastra Hanning (von Hann) 2π w [ =,5,5cos n +, n N (3.9) N 2 Fereastra Kaiser 2 2n I β N w[ n ] =, n N (3.2) I( β) unde I [ ] este funcţia Bessel modificată de ordinul zero. Parametrul β depinde de atenuarea minimă a m [db] din zona de oprire a filtrului proiectat după formula:,2(a m 8,7), a m > 5dB.4 β =,5842(a m 2) +,7886(a m 2), 2dB a m 5dB (3.2), a m < 2dB Performanţele filtrelor proiectate cu ferestrele dreptunghiulară, Hamming, Blackman pot fi obţinute folosind ferestre Kaiser cu β =, β = 5,444 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.2)); beta reprezintă valoarea parametrului β (vezi relaţia (3.2)). 6
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=2 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=4. Cum se modifică lăţimea lobului principal cu creşterea lui N? Dar atenuarea lobilor secundari? Tipul ferestrei Dreptunghiulară Triunghiulară Hanning Hamming Blackman Kaiser cu 7,865 β = Lăţimea lobului principal 4π N 8π N + 8π N 8π N 2π N 2πβ 5,73π = N N Amplitudinea maximă a lobilor laterali 3,3 26,5 3,5 42,7 58, 57 (reglabil cu β ) Proprietăţi ale ferestrelor utilizate în proiectarea filtrelor RFI cu fază liniară 6
Funcţii MATLAB pentru proiectarea filtrelor RFI prin metoda ferestrelor Fie hn [ ] răspunsul la impuls al filtrului digital RFI. Notând cu N lungimea acestei secvenţe cauzale, definită pe suportul n N, transformata Z a lui h[ reprezintă funcţia de transfer a filtrului: N = n= n 2 ( N ) H ( z) h[ z = h[] + h[] z + h[2] z +... + h[ N ] z (3.22) Ţinând cont de faptul că în MATLAB primul element dintr-un vector are indicele, funcţia de transfer a unui filtru digital cu răspuns finit la impuls poate fi implementată sub forma: 2 H ( z) = h[] + h[2] z + h[3] z +... + h[ n + ] z n (3.23) în care h [ ], h[2], h[3],..., h[ n + ] 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 (lungimea secvenţei minus unu) din relaţia (3.22). Funcţia MATLAB fir calculează coeficienţii filtrului astfel încât suma lor j să fie egală cu, impunând ca în ω = să avem H ( e ω ) = h[ = ( db). n Normarea frecvenţelor se face în mod diferit (în comparaţie cu relaţia (3.6)): f MATLAB = F F 2 2fteoretic F /2 = F = (3.24) S S fir 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 = fir(n,wn) proiectează prin metoda ferestrelor, utilizând o fereastră Hamming de lungime n +, un filtru trece jos de ordinul n cu frecvenţa de tăiere normată wn; wn are valori cuprinse între şi, unde 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
dacă wn este un vector cu două elemente, wn=[w,w2] cu w<w2, se va proiecta prin metoda ferestrelor, utilizând o fereastră Hamming de lungime n+, un filtru trece bandă de ordinul n, cu banda de trecere cuprinsă între frecvenţele w şi w2 (normate după regula precedentă). se va returna vectorul linie h de lungime n+ ce conţine coeficienţii funcţiei de transfer H( z) a filtrului ( h = [ h [], h[2], h[3],..., h[ n + ] ]; vezi relaţia (3.23)); h = fir(n,wn, high ) proiectează prin metoda ferestrelor, utilizând o fereastră Hamming de lungime n+, un filtru trece sus de ordinul n (ordinul n trebuie să fie par) cu frecvenţa de tăiere Wn; h = fir(n,wn, stop ) wn este un vector cu două elemente, wn=[w,w2] cu w<w2 ; se va proiecta prin metoda ferestrelor, utilizând o fereastră Hamming de lungime n+, un filtru opreşte bandă de ordinul n (ordinul n trebuie să fie par), cu banda de oprire cuprinsă între w şi w2. h = fir(n,wn,tip_fereastra(n+)) tip_fereastra specifică tipul ferestrei cu care dorim să proiectăm filtrul; în loc de tip_fereastra(n+) poate fi orice vector coloană de lungime n+ 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 +, un filtru trece jos de ordinul n cu frecvenţa de tăiere Wn; dacă Wn este un vector cu două elemente, wn=[w,w2] cu w<w2, se va proiecta prin metoda ferestrelor, utilizând fereastra specificată de lungime n+, un filtru trece bandă de ordinul n, cu banda de trecere cuprinsă între frecvenţele w şi w2. h = fir(n,wn, high,tip_fereastra(n+)) proiectează prin metoda ferestrelor, utilizând fereastra specificată de lungime n+, un filtru trece sus de ordinul n (ordinul n trebuie să fie par) cu frecvenţa de tăiere Wn; h = fir(n,wn, stop,tip_fereastra(n+)) Wn este un vector cu două elemente, wn=[w,w2] cu w<w2; se va proiecta prin metoda ferestrelor, utilizând fereastra specificată de lungime n+, un filtru opreşte bandă de ordinul n (ordinul n trebuie să fie par), cu banda de oprire cuprinsă între w şi w2. 63
Exemplu: Să se proiecteze prin metoda ferestrelor, utilizând o fereastră dreptunghiulară, un filtru trece jos cu lungimea N = 3 şi frecvenţa de tăiere F t = 5kHz. Frecvenţa de eşantionare este F S = 4kHz. 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 = 3 atunci ordinul filtrului (n din sintaxa MATLAB) va fi n = N = 3, lungimea ferestrei va fi n + = N = 3, iar frecvenţa de tăiere normată (Wn din sintaxa MATLAB) se calculează astfel: Ft 5 fmatlab = = =,25 F /2 4/2 N=3; Ft=5; Fs=4; wn=2*ft/fs h=fir(n-,wn,boxcar(n)); n=:n-; figure(),stem(n,h),grid S.3.25.2.5..5 -.5 -. 5 5 2 25 3 // se observă că filtrul proiectat este de tipul. figure(2),zplane(h).8.6.4 Imaginary part.2 -.2 -.4 -.6 -.8 - - -.5.5.5 Real part 64
H=fft(h,52); w=-pi:2*pi/52:pi-2*pi/52; figure(3),plot(w,fftshift(abs(h))),grid.4.2.8.6.4.2-4 -3-2 - 2 3 4 figure(4),plot(w,2*log(fftshift(abs(h)))),grid 2-2 -4-6 -8 - -4-3 -2-2 3 4 // se remarcă prezenţa riplurilor şi mărimea lor în apropierea zonei de tranziţie. E3. Exerciţii:. 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 = 5. 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 3 N =? 65
2. a) Să se proiecteze prin metoda ferestrelor, utilizând o fereastră dreptunghiulară, un filtru trece sus cu lungimea N = 3 şi frecvenţa de tăiere F t = 5kHz. Frecvenţa de eşantionare este F S = 4kHz. 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 = 5. 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 F t = 5kHz şi F t2 =5kHz. Frecvenţa de eşantionare este F S = 4kHz. 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 F t = 8kHz şi F t2 =khz. 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 F t = 5kHz şi F t2 =5kHz. Frecvenţa de eşantionare este F S = 4kHz. Precizaţi tipul filtrului. Să se reprezinte grafic funcţia pondere a filtrului, poziţionarea zerourilor în planul Z şi caracteristica amplitudinefrecvenţă 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
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 F t = 8kHz şi F t2 =khz. 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 şi (primul element al vectorului f trebuie să fie iar ultimul element trebuie să fie ), unde 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 + ce conţine coeficienţii funcţiei () a filtrului ( h = [ h [], h[2], h[3],..., h[ n + ] ] de transfer H z ; vezi relaţia (3.23)); proiectarea se face prin metoda ferestrelor folosind o fereastră Hamming de lungime n +. h = fir2(n,f,m,tip_fereastra(n+)) 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+) poate fi orice vector coloană de lungime n+ ce conţine valorile eşantioanelor unei secvenţe pe care dorim să o folosim pe post de fereastră în proiectarea filtrului. 67
Exemplu: Să se proiecteze prin metoda ferestrelor, utilizând o fereastră dreptunghiulară, un filtru trece jos cu lungimea N = 3 şi frecvenţa de tăiere F t = 5kHz. Frecvenţa de eşantionare este F S = 4kHz. 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 = 3 atunci ordinul filtrului (n din sintaxa MATLAB) va fi n = N = 3, lungimea ferestrei va fi n + = N = 3, iar frecvenţa de tăiere normată (Wn din sintaxa MATLAB) se calculează astfel: Ft 5 fmatlab = = =,25 F /2 4/2 S f=[,.25,.25,]; m=[,,,]; figure(),plot(f,m) axis([.2.2]).2.8.6.4.2 -.2..2.3.4.5.6.7.8.9 // 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=3; h=fir2(n-,f,m,boxcar(n)); n=:3; figure(2),stem(n,h),grid.25.2.5..5 -.5 -. 5 5 2 25 3 // se observă diferenţa faţă de valorile răspunsului la impuls obţinut prin proiectarea cu fir; aceasta se datorează faptului că funcţia fir2 nu mai j impune condiţia ca în ω = să avem H ( e ω ) = h[ = ( db). n 68
figure(3),zplane(h).8.6.4 Imaginary part.2 -.2 H=fft(h,52); w=-pi:2*pi/52:pi-2*pi/52; figure(4),plot(w,fftshift(abs(h))),grid -.4 -.6 -.8 - - -.5.5.5 Real part.4.2.8.6.4.2-4 -3-2 - 2 3 4 figure(5),plot(w,2*log(fftshift(abs(h)))),grid - -2-3 -4-5 -6-7 -8-9 -4-3 -2-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 fir (vezi E3) folosind pentru proiectare funcţia fir2. Comentaţi rezultatele obţinute. 69
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 şi, unde 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 + ce conţine coeficienţii funcţiei de transfer H( z) a filtrului ( h = [ h [], h[2], h[3],..., h[ n + ] ]; 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. 7
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 şi, unde 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 + ce conţine coeficienţii funcţiei de transfer H z h = h [], h[2], h[3],..., h[ n + ] - relaţia (3.23)); ( ) a filtrului ( [ ] 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. 7
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, corespunzătoare benzii de trecere şi, 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 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 sau 2, folosindu-se pentru proiectare h=firpm(n+,fo,mo,w) sau h=firpm(n+2,fo,mo,w). 72
Exemplu: Să se proiecteze folosind algoritmul Parks-McClellan, un filtru trece jos având riplul de. în banda de trecere şi. î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: ±.. F e =6Hz F b =8Hz Fs=24; f=[6,8]; m=[,]; dev=[.,.]; [n,fo,mo,w]=firpmord(f,m,dev,fs) n = h=firpm(n+2,fo,mo,w); freqz(h) 6 fo =.5.6667. mo = w = 73
Se observă că atenuarea în banda de oprire este peste 2dB ceea ce corespunde condiţiilor de proiectare impuse (câştig maxim de. î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 (±. înseamnă în decibeli aproximativ ±.8dB). E5. Exerciţii:. Să se proiecteze un filtru trece jos de ordin 5 cu frecvenţa de tăiere F t =2KHz şi frecvenţa de eşantionare F s =2KHz, utilizând metoda aproximării în sensul celor mai mici pătrate (procedura firls din MATLAB). Frecvenţa limită inferioară a benzii de oprire, F b =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.2 în banda de trecere şi.8 în banda de oprire. Frecvenţa limită superioară a benzii de oprire este 24Hz, iar frecvenţa limită inferioară a benzii de trecere 3Hz. Frecvenţa de eşantionare este 8kHz. Determinaţi ordinul filtrului. Reprezentaţi coeficienţii filtrului şi caracteristica amplitudinefrecvenţă. 74
3. Să se proiecteze, folosind procedura firpm, un filtru care să aproximeze caracteristica filtrului trece bandă:, ω.3π j He ( ω ) =,.4π ω.6π.7π ω π Filtrul trebuie să aibă o atenuare de maxim db în banda de trecere şi minim 4dB în banda de oprire. Frecvenţa de eşantionare este 24kHz. Determinaţi ordinul filtrului. Reprezentaţi coeficienţii filtrului şi caracteristica amplitudinefrecvenţă. 4. Reluaţi problema precedentă folosind procedura firls. Tema de casă. Fiecare student primeşte 4 probleme din fişierul Tema_RFI.pdf. 75