Sunteți pe pagina 1din 20

Capitolul 4 - Proiectarea filtrelor digitale.

Filtre cu răspuns infinit la impuls (Infinite


Impulse Response - IIR)

4 Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls


(Infinite Impulse Response - IIR)
Obiectivele capitolului
Lucrarea prezintă principalele metode de proiectare a filtrelor digitale IIR şi
simularea lor cu ajutorul programului MATLAB. Sunt analizate de asemenea structuri
de filtre IIR realizate în mediul de programare Simulink.
4.1 Introducere teoretică
Filtrele cu răspuns infinit la impulsul unitate (IIR) pot fi caracterizate cu ajutorul
unei ecuaţii cu diferenţe finite de forma:
N M
y[n] = å bk × x[n - k ] + å ai × y[n - i ] (4.1)
k =0 i =1

unde x [n ] reprezintă secvenţa de intrare, y [n ] este secvenţa de ieşire, iar {ak } şi


{bk } sunt coeficienţii filtrului. Funcţia de transfer corespunzătoare relaţiei (4.1) este:
N -1

åb z k
-k

H (z ) = k =0
M
(4.2)
1- å ai z -i

i =1

Proiectarea filtrelor IIR


În cazul filtrelor IIR, algoritmul de proiectare urmăreşte, ca şi în cazul filtrelor
aproximarea caracteristicii de gabarit, descrisă de următorii parametrii:

- e2 riplul în banda de trecere

- dp deviaţia în banda de trecere

- ds deviaţia în banda de oprire

- f p1 şi f p2 frecvenţele de tăiere ce delimitează banda de trecere

- fs1 şi fs2 frecvenţele de tăiere ce marchează banda de oprire

- fs frecvenţa de eşantionare

Pentru cazul unui filtru IIR de tip trece bandă, caracteristica de gabarit este
prezentată în figura Fig. 4.1. De asemenea, atenuările se pot exprima în decibeli
(dB):

( )
Ap = 10 log10 1 + e 2 = -20 log10 (1 - d p ) [dB] , atenuarea în banda de trecere (4.3)

As = -20 log10 d s [dB], atenuarea în banda de oprire (4.4)

Metodele de calcul ale coeficienţilor filtrelor IIR sunt:

72
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

- Metoda de sinteză directă


- Metoda invarianţei răspunsului la impuls
- Metoda transformării biliniare
- Metoda transformatei Z adaptate
- Metoda transformărilor de frecvenţă, în domeniul analogic/digital
Exceptând prima metoda, toate metodele de proiectare a IIR fac o
conversie a filtrelor analogice în filtre digitale.

|H|
1 dp
1
1 + e2 fe
2

ds

0 fs1 fp1 fp2 fs2 frecvenţa

Banda de trecere

Fig. 4.1. Gabaritul unui filtru IIR de tip trece bandă

4.1.1 Metoda de sinteză directă (metoda poli-zerouri)


Un zero plasat în planul z , determină anularea răspunsului în frecvenţă al
filtrului în acel punct. Un pol determină un maxim al funcţiei de transfer în acel punct.
Polii apropiaţi de cercul unitate vor conduce la apariţia unor maxime ale caracteristicii
de frecvenţă, iar zerourile apropiate de cercul unitate determină minime ale
răspunsului în frecvenţă. Prin plasarea corespunzătoare a polilor şi a zerourilor în
planul z , se pot obţine filtre simple de tip trece-jos, trece-sus, etc.

4.1.2 Metoda invarianţei răspunsului la impuls


Paşii algoritmului de proiectare a filtrelor IIR prin metoda invarianţei
răspunsului la impuls sunt:

1) Determinarea funcţiei de transfer H (s ) normalizată, pentru filtrul analogic ce


0)

satisface cerinţele de proiectare.

2) Dacă este necesar, se realizează dezvoltarea funcţiei de transfer H (s ) în fracţii


simple, pentru a obţine apoi funcţia pondere h(t ) prin aplicarea transformatei Laplace
inverse; prin eşantionarea lui h(t ) se obţine apoi h[n ] = h(t ) t = nT .
e

3) Determinarea transformatei Z a fiecărei fracţii simple obţinute la punctul 2).

73
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

4) Obţinerea funcţiei de transfer a filtrului discret, H (z ) , prin sumarea transformatelor


Z parţiale (ale fracţiilor simple) de la punctul 3).

Observaţie
Răspunsul la impuls, h[n ] al filtrului digital este egal cu răspunsul la impuls ce
caracterizează filtrul analogic, h(t ) , la momentele de timp discrete
t = nT , n = 0,1,.... , de unde rezultă şi denumirea metodei.

4.1.3 Metoda transformării biliniare


Algoritmul de proiectare al filtrelor IIR prin metoda transformării biliniare este
următorul:
0)

1) Determinarea frecvenţelor caracteristice ale filtrului digital, w ci .

2) Predistorsionarea frecvenţelor caracteristice filtrului analogic, folosind relaţia:

2 æ w c Te ö
W ci = × arctançç i ÷
÷ (4.5)
Te è 2 ø

3) Determinarea funcţiei de transfer normalizate H (s ) , pe baza specificaţiilor de mai


sus.

4) Aplicarea transformatei biliniare, dată de substituţia lui s :

2 æ z - 1ö
s= ×ç ÷ (4.6)
T è z + 1ø

Observaţie
În practică, funcţia de transfer H (s ) a filtrului analogic nu este totdeauna
disponibilă şi trebuie determinată din specificaţiile filtrului. De cele mai multe ori, H (s )
poate fi obţinută din funcţiile de transfer ale filtrelor standard: Butterworth, Cebâşev,
eliptic, etc. Caracteristicile acestora sunt prezentate pe scurt în continuare,
presupunând ca filtrul analizat este FTJ.

74
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

4.1.4 Filtre analogice FTJ


Filtrul Butterworth
Are atât banda de trecere cât şi banda de oprire netedă, şi este definit de
următoarele specificaţii: W p , W s , ordinul filtrului N , H a ( jW p ) =
1 1
2N
³ ,
æ Wp ö 1+ e 2
1 + çç ÷
÷
è Wc ø
1 1
H a ( jW s ) = 2N
£
æW ö A
1 + çç s ÷÷
è Wc ø

- Pătratul modulului răspunsului în frecvenţă:

1
H ( jΩ ) =
2
2N
(4.7)
æ Ω ö
1+çç ÷÷
è Ωc ø

cu N ordinul filtrului, W c pulsaţia de tăiere la 3 dB.

Ecuaţia de proiectare a filtrului Butterworth este:

æ A 2 - 1ö
log10 çç ÷
1 è e 2 ÷ø
N³ × (4.8)
2 æW ö
log10 ç s ÷
çW ÷
è pø

Se definesc coeficientul de discriminare k1 şi coeficientul de selectivitate, k :

e Wp
k1 = , k= (4.9)
A -12 Ws

Filtrul Cebâşev
a) tipul 1
Are caracteristica de amplitudine cu ripluri egale (echiriplu) în banda de trecere,
şi monoton descrescătoare în banda de oprire.
Caracteristica de amplitudine este definită de relaţia:

1
H ( jΩ ) =
2
(4.10)
æ Ω ö
1+ε C ç
2 2 ÷
çΩ
N ÷
è p ø

æ W ö
unde C N ç ÷ sunt polinoamele Cebâşev, N este ordinul filtrului iar e este riplul în
çW ÷
è p ø
banda de trecere.

75
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

Polinoamele Cebâşev de ordinul N sunt definite de formula:

( )
ìïcos N cos -1 (W ) , W £ 1
C N (W )= í (4.11)
( )
ïîcosh N cosh (W ) , W > 1
-1

Pentru aceste polinoame este valabilă relaţia de recurenţă:

C N +1 (W )= 2W ×CN (W )- C N -1 (W ) (4.12)

şi sunt îndeplinite următoarele:


0)

1) C N (W ) < 1, W £ 1

2) C N (W ) creşte monoton cu W pentru W > 1

3) C N (1) = 1, "N

4) C N (0 ) = ±1 , pentru N par şi C N (0 ) = 0 pentru N impar

5) Trecerile prin 0 apar în intervalul - 1 < W < 1


Filtrul este caracterizat de riplul în banda de trecere, e , frecvenţa de trecere
W p , şi atenuarea în banda de oprire:

1 1 1
³ = (4.13)
A2 æW ö é æ æW ö öù
1+ e C ç s
2 2 ÷ 1 + e 2 êcoshç N × cosh -1 ç s ÷ ÷ú
çW
N ÷ ç çW ÷ ÷ú
è p ø êë è è p ø øû

de unde rezultă ecuaţia de proiectare a filtrului Cebâşev de tipul I:

æ A2 - 1 ö
cosh -1 ç ÷
ç e ÷
N³ è ø (4.14)
æW ö
cosh -1 ç s ÷
çW ÷
è pø

definindu-se şi pentru acest filtru coeficientul de discriminare k1 şi coeficientul de


selectivitate, date de ecuaţia (4.9).
b) tipul 2
Are caracteristica de amplitudine de tip echiriplu în banda de oprire şi monoton
descrescătoare în banda de trecere. Caracteristica de amplitudine este definită de
relaţia:

76
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

1
H ( jΩ ) =
2
2
(4.15)
æ æ Ωs ö ö
çC ç ÷÷
Nç ÷÷
ç è Ω p ø
1+ε 2 ç ÷
ç C æç Ωs ö÷ ÷
ç Nè Ω ø÷
è ø

unde C N (×) sunt polinoamele Cebâşev, N este ordinul filtrului iar e este riplul în
banda de trecere.
Filtrul eliptic
Are caracteristica de amplitudine de tip echiriplu atât în banda de trecere cât şi
în banda de oprire:

1
H ( jΩ ) =
2
(4.16)
æ W ö
1+ε R ç
2 2 ÷
çW
N ÷
è p ø

( )
R N (×) fiind funcţii raţionale Cebâşev, pentru care R N W -1 = R N-1 (W ) . Acestea sunt
tabelate şi, în consecinţă, valorile pot fi folosite direct în proiectare, neexistând o
formulă exactă pentru determinarea ordinului filtrului, N .

Observaţie
Pentru obţinerea unor filtre de alt tip decât filtrul trece-jos (trece-sus, trece-
bandă, opreşte-bandă), există mai multe metode, ideea fiind de obicei aceea de a
proiecta mai întâi un filtru trece-jos corespunzător şi de a-l transforma apoi în filtrul
dorit, printr-o transformare de frecvenţă corespunzătoare.

4.1.5 Realizarea filtrelor IIR


Realizarea filtrului IIR presupune alegerea structurii de implementare:
structura în cascadă, structura paralelă şi structura latice. Un filtru digital IIR poate fi
descompus într-o cascadă de secţiuni de ordinul 2 obţinute prin gruparea de perechi
poli-zerouri. Această reprezentare este avantajoasă când filtrul este implementat în
aritmetica finită, deoarece pentru anumite ordonări ale secţiunilor de ordin 2 şi pentru
anumite grupări ale polilor şi zerourilor în cadrul secţiunilor, sistemul rezultat este mai
puţin afectat de zgomotul de cuantizare şi de erorile de depăşire. Un pol plasat
aproape de cercul unitate determină un răspuns în frecvenţă mare în acel punct, care
poate genera depăşiri de scală, amplificând zgomotului de cuantizare. Maximul poate
fi grupat cu un zero, aflat de asemenea în vecinătatea cercului unitate, care duce la
minime ale caracteristicii de amplitudine în punctul respectiv.

4.1.6 Funcţii MATLAB folosite în analiza şi proiectarea filtrelor IIR


Tipuri de filtre analogice trece-jos

buttap filtru tip Butterworth

77
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

cheb1ap filtru tip I Chebyshev (riplu în banda de trecere)

cheb2ap filtru tip II Chebyshev (riplu în banda de oprire)

ellipap filtru tip eliptic

Proiectarea filtrelor IIR

butter proiectarea filtrului Butterworth

cheby1 proiectarea filtrului Chebyshev tip I

cheby2 proiectarea filtrului Chebyshev tip II

ellip proiectarea filtrului eliptic

yulewalk proiectarea filtrului Yule-Walker

Metode de proiectare Analiza /Implementarea filtrelor

bilinear Metoda transformării abs Amplitudine


biliniare

impinvar Metoda invarianţei angle Fază


răspunsului la impuls

lp2bp Transformare de frecvenţă filter Implementare directă


analogică trece-jos în
trece-bandă

lp2bs Transformarea de freqs/ Răspuns în frecvenţă prin


frecvenţă analogică trece- freqz transformata Laplace/ Z
jos în opreşte-bandă

lp2hp Transformarea de grpdelay Întârziere de grup


frecvenţă analogică trece-
jos în trece-sus

lp2lp Transformarea de unwrap Fază nelimitată la o perioadă


frecvenţă trece-jos în
trece-jos

ss2zp Conversia din spaţiul zp2sos Conversia de la reprezentarea


stărilor în poli-zerouri poli-zerouri la reprezentarea în
cascadă de secţiuni de ordin 2

tf2ss Conversia de la funcţia de zp2ss Conversia de la reprezentarea


transfer la reprezentarea poli-zerouri la reprezentarea în
în spaţiul stărilor spaţiul stărilor

78
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

4.2 Aplicaţii

4.2.1 Proiectarea filtrelor IIR prin metoda directă de sinteză (metoda


poli/zerouri)
)

a) Se consideră semnalul sinusoidal cu anvelopă exponenţială, definit astfel:

( )
ì a n
x [n ] = í sinθ sin(n × θ +θ ) pentru n³0
ï 2

ï0 pentru n<0
î

unde valoarea q se obţine astfel:

æ a ö
θ =arccosç 1 ÷
ç2 a ÷
è 2 ø

Parametrii a1 şi a 2 satisfac următoarea condiţie:

a12
a2 >>
4

Polii sistemului, în planul Z sunt plasaţi astfel:

-a1 - j 4a 2 - a12
p1 =
2

-a1 + j 4a2 - a12


p2 =
2

a1) Scrieţi secvenţa MATLAB pentru reprezentarea semnalului iniţial, în cazul în care
parametrii au valorile: n = 0..255 (256 eşantioane), a1 = -1 , a 2 = 0.5 .

a2) Completaţi secvenţa de la punctul a1) cu instrucţiunile necesare reprezentării


grafice a polilor, în planul Z , faţă de cercul unitate.
a3) Completaţi secvenţa de la punctul a2) pentru a calcula şi a desena amplitudinea
răspunsului în frecvenţă al sistemului.
b) Să se proiecteze prin metoda plasării polilor şi zerourilor, un filtru digital de
tip IIR. Valorile polilor şi zerourilor sale sunt:

z1 = 1, z2 = -1
p p
j -j
p1 = r × e 2
, p2 = r × e 2
, r = 0. 9

79
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

4.2.2 Proiectarea filtrelor IIR prin metoda invarianţei răspunsului la


impuls
)

a) Se presupune că dispunem de un filtru analogic, proiectat cu una din


metodele de proiectare pentru filtre analogice, filtru care are următoarea transformată
Laplace a răspunsului:

0.12093
H (s ) =
( )( )(
s + 0.364s + 0.4945 s + 0.9945s + 0.4945 s 2 + 1.3585s + 0.4945
2 2
)
a1) Aplicaţi metoda invarianţei răspunsului la impuls pentru a determina filtrului digital
echivalent.
Soluţie
Secvenţa MATLAB pentru rezolvarea punctului a1) al problemei este prezentată
în exemplul EX1_L4.m, listat mai jos. Lansaţi în execuţie programul şi interpretaţi
rezultatele.
% Se presupune ca dispunem de un filtru analogic, proiectat cu una din metodele
% de proiectare a filtrelor analogice si dorim sa gasim filtrul digital corespunzator,
% aplicind metoda invariantei impulsului.
% Fie transformata Laplace a raspunsului filtrului analogic:
%
% 0.12093
% H(s) = -----------------------------------------------------------------------
% (s^2 + 0.364s + 0.4945)(s^2 + 0.9945s + 0.4945)(s^2 + 1.3585s + 0.4945)
%
B = 0.12093;
a1 = [1 0.364 0.4945];
a2 = [1 0.9945 0.4945];
a3 = [1 1.3585 0.4945];
A = conv(a1,conv(a2,a3));

% Se transforma filtrul analogic in filtru digital aplicind metoda invariantei


% impulsului.
Fs = 1;% esantionare la Fs Hz
N = 256;% numar de puncte pentru raspunsul in frecventa
[Bz,Az] = impinvar(B,A,Fs);
[H, W] = freqz(Bz,Az,N);%nu dam frecventa de esantionare, ca sa avem radiani
[Ha,Wa] = freqs(B,A,N);%H(jWa), cu radiani pe axa x

figure
plot(Wa, abs(Ha)); title('b - Filtru analogic, r - Filtru IIR cu invarianta impuls');hold on
plot(W,abs(H),'r'), xlabel('rad'), ylabel('|H(e^jomega)|');

figure
subplot(211), zplane(Bz, Az);
subplot(212),[hd,td] = impz(Bz,Az,[],Fs);plot(td,hd),title('Functia pondere discreta');
a2) Reprezentaţi caracteristica de amplitudine a filtrului în decibeli precum şi
caracteristica de fază a acestuia.

80
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

b) Să se proiecteze un filtru IIR – trece-jos cu metoda invarianţei răspunsului


la impuls, pornind de la un filtru analogic Butterworth. Caracteristicile de gabarit
pentru filtrul digital ce trebuie proiectat, sunt:

- frecvenţa de tăiere în banda de trecere w p = 0.2p

- frecvenţa (omega) de tăiere în banda de oprire w s = 0.3p

- pierderile în banda de trecere nu mai mari de 1 dB.


- atenuarea în banda de oprire de minimum 15 dB.

- frecvenţa de eşantionare f e = 1Hz .

Reprezentaţi caracteristica de amplitudine a filtrului în decibeli precum şi


caracteristica de fază a acestuia.
Soluţie
Secvenţa MATLAB pentru rezolvarea problemei este prezentată în exemplul
EX2_L4.m, listat mai jos:
% Sa se proiecteze un filtru IIR - trece jos cu metoda invariantei la
% impuls, pornind de la un filtru analogic Butterworth.
% Caracteristicile de gabarit pentru filtrul digital de proiectat, sint:
% - frecventa (omega) de taiere in banda de trecere wp=0.2*pi.
% - frecventa (omega) de taiere in banda de oprire ws=0.3*pi.
% - Pierderile in banda de trecere nu mai mari de 1 dB.
% - Atenuarea in banda de oprire de minimum 15 dB.
% - Fe = 1 Hz.

% Urmeaza determinarea parametrilor filtrului analogic Butterworth


% care sa indeplineasca specificatiile date.
% Cum Fe=1Hz rezulta ca frecventa continua 2*pi*f este echivalenta
% cu frecventa discreta omega.
Wp = 0.2;
Ws = 0.3;
Rp = 0.2;
Rs = 20;
Fs = 1;
[N,Wn] = buttord(Wp,Ws,Rp,Rs,'s')

% Se creeaza filtrul analogic Butterworth cu parametrii determinati


% anterior;
[B,A] = butter(N,Wn,'s');

% Se calculeaza si reprezinta raspunsul in frecventa al filtrului analogic. Daca


% se presupune ca nu exista aliere la discretizarea filtrului analogic, atunci
% caracteristica filtrului proiectat va fi echivalenta cu cea a filtrului IIR
% (invarianta impulsului).
[Ha, Wa] = freqs(B,A);

81
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

[Bz,Az] = impinvar(B,A,Fs);
[H, W] = freqz(Bz,Az);%W in radians

figure,subplot(211),plot(Wa,abs(Ha)),title('Filtrul Butterworth
analogic'),xlabel('rad'),ylabel('|H(jWa)|');
title('b - Filtru analogic, r - Filtru IIR cu invarianta impuls');hold on
plot(W,abs(H),'r'), xlabel('Hz'), ylabel('|H(e^jomega)|');
subplot(212),plot(Wa./(2*pi),abs(Ha)),title('Filtrul Butterworth
analogic'),xlabel('Hz'),ylabel('|H(jWa)|');
title('b - Filtru analogic, r - Filtru IIR cu invarianta impuls');hold on
plot(W.*(Fs/(2*pi)),abs(H),'r'), xlabel('Hz'), ylabel('|H(e^jomega)|');
c) Să se proiecteze cu metoda invarianţei răspunsului la impuls un filtru trece-
jos IIR, pornind de la filtrele analogice proiectate cu metodele: Butterworth, Cebâşev
I şi II. Caracteristicile filtrului IIR sunt:

- frecvenţa de tăiere în banda de trecere f p = 100 Hz ;

- frecvenţa de tăiere în banda de oprire fs = 150 Hz;

- frecvenţa de eşantionare f e = 500 Hz.

Reprezentaţi caracteristica de amplitudine a filtrului în decibeli precum şi


caracteristica de fază a acestuia.
Soluţie
Soluţia problemei este prezentată în exemplul EX3_L4.m , listat.
% Sa se proiecteze cu metoda invariantei impulsului un filtru trece - jos IIR,
% pornind de la filtrele analogice proiectate cu metodele: Butterworth,
% Cebisev I si II.
% Caracteristicile filtrului IIR sint:
% - frecventa de taiere in banda de trecere fp=100 Hz ;
% - frecventa de taiere in banda de oprire fs=150 Hz;
% - frecventa de esantionare Fe=500 Hz.
Fe = 500;
Wp = 2*100*pi;
Ws = 2*150*pi;

% Invarianta impulsului pornind de la un filtru analogic Butterworth


[N,Wn] = buttord(Wp,Ws,3,40,'s')

% Se creeaza filtrul analogic Butterworth cu parametrii determinati


% anterior;
[B,A] = butter(N,Wn,'s');
[Ha, Wa] = freqs(B,A,100);%100 frequencies
figure,plot(Wa/(2*pi),abs(Ha)),title('Filtrul IIR Butterworth : b - analogic, r - digital
'),xlabel('Frecventa (Hz)'),ylabel('|H(jf)|');
[Bz, Az] = impinvar(B,A,Fe);
[H, W] = freqz(Bz, Az,[],Fe);%in Hz
hold on,plot(W,abs(H),'r');

82
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

% Invarianta impulsului pornind de la un filtru analogic Cebisev I


[N,Wn] = cheb1ord(Wp,Ws,3,40,'s');

% Se creeaza filtrul analogic Cebisev I cu parametrii determinati


% anterior;
[B,A] = cheby1(N,0.5,Wn,'s');
[Ha, Wa] = freqs(B,A,100);
figure,plot(Wa/(2*pi),abs(Ha)),title('Filtrul IIR Cebisev I : b - analogic, r - digital
'),xlabel('Frecventa (Hz)'),ylabel('|H(jf)|');
[Bz, Az] = impinvar(B,A,Fe);
[H, W] = freqz(Bz, Az,[],Fe);%in Hz
hold on,plot(W,abs(H),'r');

% Invarianta impulsului pornind de la un filtru analogic Cebisev II


[N,Wn] = cheb2ord(Wp,Ws,3,40,'s')

% Se creeaza filtrul analogic Cebisev II cu parametrii determinati


% anterior;
[B,A] = cheby2(N,80,Wn,'s');
[Ha, Wa] = freqs(B,A,100);
figure,plot(Wa/(2*pi),abs(Ha)),title('Filtrul IIR Cebisev II : b - analogic, r - digital
'),xlabel('Frecventa (Hz)'),ylabel('|H(jf)|');
[Bz, Az] = impinvar(B,A,Fe);
[H, W] = freqz(Bz, Az,[],Fe);%in Hz
hold on,plot(W,abs(H),'r');

% Invarianta impulsului pornind de la un filtru analogic eliptic


%[N,Wn]=ellipord(Wp,Ws,3,40,'s')
% Se creeaza filtrul analogic eliptic cu parametrii determinati
% anterior;
[B,A] = ellip(N,0.6,80,Wn,'s');
[Ha, Wa] = freqs(B,A,100);
figure, plot(Wa/(2*pi), abs(Ha)), title('Filtrul IIR eliptic : b - analogic, r - digital '),
xlabel('Frecventa (Hz)'), ylabel('|H(jf)|');
[Bz, Az] = impinvar(B,A,Fe);
[H, W] = freqz(Bz, Az,[],Fe);%in Hz
hold on,plot(W,abs(H),'r');

4.2.3 Proiectarea filtrelor IIR prin metoda transformării biliniare


)

a) Fie un filtru analogic cu următoarea transformată Laplace a răspunsului:

0.12093
H (s ) =
( )( )(
s + 0.364s + 0.4945 s + 0.9945s + 0.4945 s 2 + 1.3585s + 0.4945
2 2
)
a1) Reluaţi problema anterioară, punctul a1) aplicând metoda transformării biliniare.
Soluţie
Soluţia punctului a1) al problemei este dată în programul EX4_L4.m, listat mai
jos.

83
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

% Se presupune ca dispunem de un filtru analogic, proiectat cu una din metodele


% de proiectare a filtrelor analogice si dorim sa gasim filtrul digital corespunzator,
% aplicand metoda transformarii biliniare.
% Fie transformata Laplace a raspunsului filtrului analogic:
% 0.12093
% H(s) = -----------------------------------------------------------------------
% (s^2 + 0.364s + 0.4945)(s^2 + 0.9945s + 0.4945)(s^2 + 1.3585s + 0.4945)
Fs = 10; %Hz
omega = [0:127]*pi/128;
B = 0.12093;
a1 = [1 0.364 0.4945];
a2 = [1 0.9945 0.4945];
a3 = [1 1.3585 0.4945];
A = conv(a1,conv(a2,a3));
[Ha, Wa] = freqs(B, A, 100);
[Bz,Az] = bilinear(B,A,1);
[H, W] = freqz(Bz,Az);

figure,plot(Wa,abs(Ha)),hold on,
plot(W,abs(H),'r'),title('b- Filtru analogic, r -Filtru IIR cu transf. biliniara'
),xlabel('rad'),ylabel('|H(e^jomega)|');

[h,t] = impz(Bz,Az);
figure,stem(t,h);title('Functia pondere');
a2) Modificaţi secvenţa MATLAB pentru a reprezenta diagrama poli-zerouri, asociată
filtrului digital proiectat.

a3) Reprezentaţi funcţia pondere h[n ] a acestui filtru. Care este lungimea secvenţei
h[n ] pentru un filtru IIR? Justificaţi răspunsul.

b) Reluaţi problema 3.2 punctul c) aplicând metoda transformării biliniare.


Soluţie
Soluţia problemei este dată în programul EX5_L4.m, listat.
% Sa se proiecteze cu metoda transformarii biliniare un filtru trece - jos IIR,
% pornind de la filtrele analogice proiectate cu metodele: Butterworth,
% Cebisev I si II.
% Caracteristicile filtrului IIR sint:
% - frecventa de taiere in banda de trecere fp=100 Hz ;
% - frecventa de taiere in banda de oprire fs=150 Hz;
% - frecventa de esantionare Fe=500 Hz.
Fe = 500;
NFFT = 256;

Wp = 2*pi*100;
Ws = 2*pi*150;

wp = 500/(Fe/2);
ws = 600/(Fe/2);

84
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

% Metoda transformarii biliniare pornind de la un filtru analogic Butterworth


[N,Wn] = buttord(Wp,Ws,3,40,'s');
% Se creeaza filtrul digital prin transformarea biliniara a filtrului analogic Butterworth
% cu parametrii determinati anterior;
[B,A] = butter(N,Wn,'s');
[Ha, Wa] = freqs(B,A,100);

figure,plot(Wa/(2*pi),abs(Ha)),title('Filtrul IIR Butterworth: b - analogic, r -


digital'),xlabel('Frecventa (Hz)'),ylabel('|H(jf)|');
[Bz, Az] = bilinear(B,A,Fe);%discretizam cu metoda transfarii bilineare
[H, W] = freqz(Bz,Az,[],Fe);
hold on,plot(W,abs(H),'r');

% Metoda transformarii biliniare pornind de la un filtru analogic Cebisev I


[N,Wn] = cheb1ord(Wp,Ws,3,80,'s');

% Se creeaza filtrul digital prin transformarea biliniara a filtrului analogic Cebisev I


% cu parametrii determinati anterior;
[B,A] = cheby1(N,3,Wn,'s');
[Ha, Wa] = freqs(B,A,100);
figure,plot(Wa/(2*pi),abs(Ha)),title('Filtrul IIR Cebisev I: b - analogic, r -
digital'),xlabel('Frecventa (Hz)'),ylabel('|H(jf)|');
[Bz, Az] = bilinear(B,A,Fe);%discretizam cu metoda transfarii bilineare
[H, W] = freqz(Bz,Az,[],Fe);
hold on,plot(W,abs(H),'r');

% Metoda transformarii biliniare pornind de la un filtru analogic Cebisev II


[N,Wn] = cheb2ord(Wp,Ws,3,80,'s');

% Se creeaza filtrul digital prin transformarea biliniara a filtrului analogic Cebisev II


% cu parametrii determinati anterior;
[B,A] = cheby2(N,3, Wn,'s');
[Ha, Wa] = freqs(B,A,100);
figure,plot(Wa/(2*pi),abs(Ha)),title('Filtrul IIR Cebisev II: b - analogic, r -
digital'),xlabel('Frecventa (Hz)'),ylabel('|H(jf)|');
[Bz, Az] = bilinear(B,A,Fe);%discretizam cu metoda transfarii bilineare
[H, W] = freqz(Bz,Az,[],Fe);
hold on,plot(W,abs(H),'r');

% Metoda transformarii biliniare pornind de la un filtru analogic eliptic


[N,Wn] = ellipord(Wp,Ws,3,80,'s');
% Se creeaza filtrul analogic eliptic
% cu parametrii determinati anterior;
[B,A] = ellip(N,0.6,20,Wn,'s');
[Ha, Wa] = freqs(B,A,100);

85
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

figure,plot(Wa/(2*pi),abs(Ha)),title('Filtrul IIR eliptic: b - analogic, r -


digital'),xlabel('Frecventa (Hz)'),ylabel('|H(jf)|');
[Bz, Az] = bilinear(B,A,Fe);%discretizam cu metoda transfarii bilineare
[H, W] = freqz(Bz,Az,[],Fe);
hold on,plot(W,abs(H),'r');
c) Să se proiecteze prin metoda transformării biliniare, un filtru Butterworth, cu
datele de proiectare:
- amplitudinea oscilaţiilor în banda de trecere: 0.5 dB
- atenuarea în banda de oprire: 50 dB
- frecvenţa de tăiere: 0.1 Hz
- lăţimea benzii de tranziţie: 0.1 Hz

- frecvenţa de eşantionare: f e = 5 Hz.

Să se deseneze amplitudinea şi faza răspunsului în frecvenţă al filtrului


rezultat.
d) Repetaţi punctul c) pentru un filtru Butterworth de tip trece-bandă, cu datele
de proiectare:
- banda de trecere: 600 Hz - 900 Hz

- atenuare de maximum 0.2 dB în banda de trecere 700 £ f £ 800 Hz

- atenuare de minimum 50 dB în banda de oprire 0 £ f £ 600 Hz

- frecvenţa de eşantionare: f e = 2500 Hz.

e) Să se proiecteze prin metoda transformării biliniare un filtru trece-jos


Cebâşev, cu datele de proiectare:
- atenuarea în banda de trecere: 0.5 dB
- atenuarea în banda de oprire: 40 dB
- frecvenţa de tăiere: 0.1 Hz
- lăţimea benzii de tranziţie: 0.2 Hz

- frecvenţa de eşantionare: fe = 5 Hz.

Să se schiţeze pe baza datelor de proiectare schema de tranziţie a filtrului şi


să se deseneze amplitudinea şi faza răspunsului său în frecvenţă.
f) Repetaţi punctul e) pentru un filtru Cebâşev de tip trece-jos, cu specificaţiile
de proiectare:
- riplu maxim în banda de trecere: 1 dB
- pulsaţia de tăiere: 1.3 rad/s

86
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

- atenuare în banda de oprire de cel puţin 40 dB, pentru pulsaţie mai mare de 5 rad/s

- frecvenţa de eşantionare: fe = 5 Hz.

g) Repetaţi punctul e) pentru un filtru Cebâşev cu specificaţiile de proiectare:

- riplu: 1 dB în banda 600 Hz £ f £ 900 Hz


- frecvenţa de eşantionare: 3000 Hz

- câştig maxim: - 40 dB pentru 0 £ f £ 500 Hz


h) Să se proiecteze prin metoda transformării biliniare un filtru eliptic, având
datele de proiectare:
- atenuarea în banda de trecere: 0.5 dB
- atenuarea în banda de oprire: 50 dB
- frecvenţa de tăiere: 0.1 Hz
- lăţimea benzii de tranziţie: 0.1 Hz

- frecvenţa de eşantionare: fe = 5 Hz.

Să se schiţeze schema de tranziţie pe baza datelor de proiectare şi să se


deseneze amplitudinea şi faza răspunsului în frecvenţă al filtrului rezultat.
i) Prin metoda transformărilor de frecvenţă (în domeniul continuu), să se
proiecteze un filtru IIR trece-bandă pornind de la un filtru prototip normalizat trece-
jos, cu următoarele specificaţii:
- frecvenţa centrală: 30 Hz.
- lărgimea benzii de trecere: 20 Hz.

- frecvenţa de eşantionare: fe = 200 Hz.

Se presupune că trecerea de la filtrul analogic, rezultat prin transformarea de


frecvenţă, la filtrul digital corespunzător, se face cu metoda invarianţei răspunsului la
impuls cu o frecvenţă de eşantionare care previne alierea.
Soluţie
Soluţia problemei este dată în programul EX6_L4.m, listat mai jos.
% Prin metoda transformarilor de frecventa (in domeniul continuu), sa se
% proiecteze un filtru IIR trece-banda (FTB) pornind de la un filtru prototip
% normalizat trece-jos, cu urmatoarele specificatii:
% Frecventa centrala =30 Hz.
% Largimea benzii de trecere =20 Hz.
% Se presupune ca trecerea de la filtrul analogic, rezultat prin transformarea
% de frecventa, la filtrul digital corespunzator, se face cu metoda invariantei
% impulsului cu o frecventa de esantionare care previne alierea.
% Se construieste filtrul analogic prototip normalizat (cu frecventa de taiere

87
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

% unitara).
Fe = 200;
W0 = 2*30*pi;
BW = 2*20*pi;
[z,p,k] = buttap(6);

% Se trece de la reprezentarea poli-zerouri la cea in 's'.


[b,a] = zp2tf(z,p,k);
% Se construieste filtrul IIR trece-banda din filtrul prototip, aplicind
% transformarea de frecventa in domeniul continuu.
[B,A] = lp2bp(b,a,W0,BW);
[Ha, Wa] = freqs(B,A,100);

%discretizam
[Bz,Az] = impinvar(B,A,Fe);
[H, W] = freqz(Bz,Az,[],Fe);

% Se reprezinta modulul filtrului. Datorita invariantei impulsului si absentei


% alierii, filtrul digital are aceeasi caracteristica cu cel analogic.
figure,plot(W,abs(H)),grid,title('Modulul filtrului IIR trece banda'), xlabel('Frecventa
(Hz)');
j) Să se proiecteze un filtru IIR trece-jos cu metoda invarianţei răspunsului la
impuls, pornind de la un filtru analogic Butterworth. Caracteristicile de gabarit pentru
filtrul digital de proiectat, sunt:

- frecvenţa de eşantionare: f e = 5000 Hz.

- frecvenţa de tăiere: 1kHz


- ordinul filtrului Butterworth: 10
j1) Să se descompună filtrul proiectat într-o cascadă de filtre de ordinul 2. Să se
reprezinte caracteristica de amplitudine a filtrului proiectat şi caracteristicile de
amplitudine ale secţiunilor de ordinul doi în care se descompune filtrul iniţial.
Soluţie
Soluţia punctului j1) al problemei este dată în programul EX7_L4.m, listat.
% Sa se proiecteze un filtru IIR - trece jos
% cu un filtru analogic Butterworth.
% Caracteristicile de gabarit pentru filtrul digital de proiectat, sint:
% Fe=5 kHz.
% frecventa de taiere = 1kHz
% ordinul filtrului Butterworth = 10;
% Sa se descompuna filtrul proiectat intr-o cascada de filtre de ordinul 2. Sa se
% reprezinte caracteristica de amplitudine a filtrului proiectat si caracteristicile de
% amplitudine ale sectiunilor de ordinul doi in care se descompune filtrul initial.
n = 10;
wn = 0.4;
NFFT = 256;
Fe = 5000;

88
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

% Se determina filtrul digital IIR cu caracteristicile de gabarit impuse.


[B,A] = butter(n,wn);
[Hinit,Finit] = freqz(B,A,NFFT,Fe);
Hinit = 20*log10(abs(Hinit));%scara logaritmica, in dB

% Se descompune filtrul proiectat intr-o cascada de sectiuni de ordinul 2:


% se determina mai intii zerourile (z), polii (p) si factorii de cistig (k),
% dupa care prin functia "zp2sos" se determina sectiunile de ordinul 2.
[z,p,k] = butter(n,wn);
sos = zp2sos(z,p,k,'down');
m = size(sos,1);

H = zeros(NFFT,m);
[H(:,1),F] = freqz(sos(1,1:3),sos(1,4:6),NFFT,Fe);
for i=2:m,
H(:,i) = H(:,i-1).*freqz(sos(i,1:3),sos(i,4:6),NFFT,Fe);
end
H = 20*log10(abs(H));
figure,subplot(211), plotyy(Finit,Hinit,F, H(:,end)), xlabel('Frecventa (Hz)'),
ylabel('Functia de transfer (dB)'); legend('Filtrul analogic','Filtrul discret');
subplot(212), plot(F,H),xlabel('Frecventa (Hz)'),ylabel('|H| ptr. sect. de ordin 2 (dB)');
j2) Modificaţi programul pentru că acesta să afişeze într-o reprezentare spaţială,
caracteristicile de amplitudine ale secţiunilor de ordin 2.
j3) Scrieţi care sunt transformatele Z ale răspunsului secţiunilor de ordin 2.
j4) Verificaţi numeric că structura în cascadă de secţiuni de ordin 2 este echivalentă
cu filtrul iniţial.
j5) Găsiţi modul în care funcţia MATLAB "zp2sos" ordonează, în cascadă, secţiunile
de ordinul 2.
k) Se consideră un filtru IIR proiectat prin metoda transformării biliniare
pornind de la un filtru analogic Cebâşev. Să se studieze efectul cuantizării
coeficienţilor filtrului, rulând programul MATLAB EX8_L4.m, listat mai jos.
% Se considera un filtru IIR cu un filtru Cebisev I. Sa se studieze efectul cuantizarii
% coeficientilor filtrului.

Fe = 2000;
NFFT = 256;
Wp = 200/1000;
Ws = 300/1000;
N1 = 24;
N2 = 0;

% filtru discret Cebisev I


[N,Wn] = cheb1ord(Wp,Ws,4,50);

% Se creeaza filtrul digital prin transformarea biliniara a filtrului analogic Cebisev I

89
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

% cu parametrii determinati anterior;


[B,A] = cheby1(N,0.5,Wn);
[H, W] = freqz(B,A,NFFT,Fe);
[h,t] = impz(B,A,100,Fe);
figure,subplot(221),plot(W,abs(H)),title('Filtrul IIR Cebisev1'),xlabel('Frecventa
(Hz)'),ylabel('|H(jf)|');
subplot(222),zplane(B,A);
subplot(223),plot(t,h),title('Functia pondere a filtrului'),xlabel('Timp (s)');

% Se face cuantizarea coeficientilor filtrului


for i = 1:length(B)
Bq(i) = str2num(num2str(B(i),'%.4f'));
end

for i = 1:length(A)
Aq(i) = str2num(num2str(A(i),'%.4f'));
end

[Hq, Wq] = freqz(Bq,Aq,NFFT,Fe);


[hq,tq] = impz(Bq,Aq,100,Fe);
figure,subplot(221),plot(W,abs(H));
hold on,plot(W,abs(Hq),'r');
title('b-Filtrul IIR Cebisev1 cuantizat, r-cuantizat'),xlabel('Frecventa
(Hz)'),ylabel('|H(jf)|');
subplot(222),zplane(Bq,Aq);
subplot(223),plot(t,h);
hold on,plot(tq,hq,'r'),title('b-Functia pondere a filtrului, r-cuantizat'),xlabel('Timp (s)');

%sau
d = fdesign.lowpass('Fp,Fst,Ap,Ast',Wp,Ws,1,60);
designmethods(d)

Hd = design(d,'equiripple');
fvtool(Hd);
k1) Ce s-a modificat în filtrul obţinut, o dată cu introducerea cuantizării coeficienţilor?
Este filtrul rezultat stabil? Explicaţi de ce se consideră că la proiectarea unui filtru IIR
în aritmetica finită (cu cuantizarea coeficienţilor) trebuie luate măsuri suplimentare
faţă de cazul proiectării filtrelor FIR în aritmetica finită.
k2) Alegeţi o altă precizie de reprezentare a coeficienţilor filtrului de la punctul
anterior, astfel încât filtrul rezultat să corespundă cât mai exact filtrului iniţial
(proiectat cu precizie "infinită" a coeficienţilor).
l) Să se filtreze un semnal ECG (electrocardiografic) uman, existent în fişierul
foetal_ecg.dat (eşantionat cu 500 Hz), cu un filtru IIR şi să se analizeze spectrul
semnalului filtrat. Semnalul este afectat de un zgomot alb de bandă limitată. Se va
rula programul Simulink EX9_L3, cu studierea tuturor modulelor care apar.

l1) Care este frecvenţa perturbaţiei (în Hz)?

90
Capitolul 4 - Proiectarea filtrelor digitale. Filtre cu răspuns infinit la impuls (Infinite
Impulse Response - IIR)

l2) Modificaţi tipul perturbaţiei, alegând o perturbaţie determinată de reţeaua de


alimentare (50 Hz); variaţi uşor frecvenţa perturbaţiei. Ce se modifică în spectrul
semnalului perturbat? Precizaţi dacă trebuie modificat filtrul şi în caz afirmativ,
reproiectaţi-l.
4.3 Exerciţii şi probleme recapitulative
a) Prin metoda transformărilor de frecvenţă (în domeniul continuu), să se
proiecteze un filtru IIR trece-jos pornind de la un filtru prototip normalizat trece-jos, cu
următoarele specificaţii:
- frecvenţa de tăiere care marchează banda de trecere = 600Hz
- frecvenţa de eşantionare = 2kHz.
Se va utiliza un filtru prototip de tip eliptic.
b) Se dă filtrul IIR cu funcţia de transfer:

0.2871 - 0.4466 z -1 - 2.1428 + 1.1455 z -1


H (z ) = + +
1 - 1.2971z -1 + 0.6949 z - 2 1 - 1.0691z -1 + 0.3699 z -2
1.8557 - 0.6303 z -1
+
1 - 0.9972 z -1 + 0.2570 z - 2
b1) Utilizând secţiuni de ordinul 2, ce tip de implementare a filtrului o sugerează
forma funcţiei sistemului ? Realizaţi acest tip de implementare (în mediul Simulink) şi
filtraţi semnalul existent în fişierul semnal5.mat.
b2) Determinaţi polii şi zerourile sistemului.
b3) Reprezentaţi sistemul ca o cascadă de secţiuni de ordin doi. Se vor folosi
funcţiile MATLAB corespunzătoare.
Bibliografie
0)

1) Ungureanu Georgeta Mihaela - Analiza şi prelucrarea semnalelor: aplicaţii în


ingineria biomedicală, MATRIX ROM, 2013;
2) Ungureanu G. Mihaela – Prelucrarea digitală a semnalelor, MATRIX ROM, 2008;
3) Ungureanu Mihaela, Munteanu Cristian, Dumitras Adriana, Vieru Rodica,
Coordonator: Prof.Dr.Ing. Lazarescu Vasile - Prelucrarea digitală a semnalelor.
Aplicaţii Matlab, Matrix ROM, 2003;
4) Vasile Lăzărescu - Prelucrarea digitală a semnalelor; Amco Press, Bucuresti,
Romania, 1995;
5) Robert D. Strum, Donald E. Kirk - First Principles of Discrete Systems and Digital
Signal Processing; Addison - Wesley Publ. Comp., USA, 1988;
6) Alan V. Oppenheim, Roland W. Schaffer - Discrete Time Signal Processing -
Prentice-Hall International, Inc., 1988

91

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