Sunteți pe pagina 1din 29

Suport pentru proiectarea

filtrelor analogice

Definiii
Filtrele sunt reele electrice selective, care
schimb caracteristicile de amplitudine i/sau
faz ale semnalelor n raport cu frecvena
Filtrele active se caracterizeaz prin prezena
elementelor de amplificare, care asigur
amplificarea semnalelor, i elementele
pasive, care asigur selectivitatea filtrului.
Circuitele cu mod de lucru in curent au o
acuratee funcional superioar i o band
mai larg dect circuitele similare cu mod de
lucru n tensiune.

Proiectarea filtrului prototip


Filtrul prototip, de obicei,
este un filtru trece jos
(poate sa fie si altceva)
In figura caracteristica
ideala a unui FTJ este
colorat cu albastru.
Laboratorul cuprinde
urmatoarele aproximari:

Butteworth
Chebisev
Invers-Chebisev
Cauer

omega=-2:0.001:2;
plot(omega,1./(1+(0.2^2).*(8.*omega.^48.*omega.^2+1).^2),'LineWidth',2,'color','red');
hold on;
plot(omega,abs(omega)<1,'LineWidth',2);
plot(omega,1./(1+omega.^8),'LineWidth',2,'color','green');

Proiectarea filtrului prototip Butterworth


-calculul ordinii Trebuie sa cunoastem urmatoarele specificatii pentru
Atenuarea (dB)
a calcula ordinul:

pass frecventa limita a benzii de trecereastop


stop frecventa limita a benzii de oprire
apass atenuarea in banda de trecere
apass
astop atenuarea in banda de oprire

pass stop

Pornim de la proprietatea aproximarii Butterworth:


A
1 2n
n-ordinea aproximarii
H ( j )
2

A-atenuarea (amplificarea) in banda de trecere

Frecventa
(radian/s)

Proiectarea filtrului prototip Butterworth


-calculul ordinii Expresia caractersiticii de amplitudine in decibel
se scrie in felul urmator:

1
H ( j ) 20 log
10 log 1
1
Cunoscand atenuarea la limita benzii de trecere
putem scrie:
a
2n

dB

2n

2n
2n
a pass 10 log(1 pass
) pass
10

Item pentru limita benzii de oprire

pass

10

astop

2n
2n
astop 10log(1 stop
) stop
10 10 1

Impartind cei doi ecuatii:

stop

pass

astop

2n

10 10 1
a pass

10

10

Proiectarea filtrului prototip Butterworth


-calculul ordiniiastop

Sa notam:

Ka

10 10 1
a pass

10

10

Kf

stop
pass

Rezulta formula de calcula a ordinului:

Exemplu:
S se se calculeze ordinul unui FTJ Butterworth cu
urmtoarele caracteristici:

atenuarea n banda de trecere :


atenuarea n banda de blocare :
frecvena limit n banda de trecere :
frecvena limit n banda de blocare :

1dB
20dB
8 KHz
12 KHz

log K a

log K f

Proiectarea filtrului prototip Butterworth


-calculul ordinii Rezolvare:
102 1
Ka
19.5538
100.1 1

12KHz
Kf
1.5
8KHz

log 19.5538
log 1.5

Cod MATLAB
os=12000;op=8000;as=20,ap=1;
ka=sqrt((10^(0.1*as)-1)/(10^(0.1*ap)-1));
kf=os/op;
n=log(ka)/log(kf)
Sau
buttord(2*pi*8000,2*pi*12000,1,20,'s')

7.3327

Proiectarea filtrului prototip Butterworth


-functia de transfer Functia de transfer a unui filtru Butteroworth de ordninul n se scrie sub
forma:

j n 2 k 1
1
H n n 1
, unde sk e 2 n
, pentru k 0, n 1
s sk
k 0

Functia de trasfer va avea poli repartizati uniform pe un semicerc de raza


unitate in planul complex. Exemplu: n=4
Cod MATLAB
>>[z,p,k]=buttap(4);
>>zplane(z,p)
Sunt disponibile si tabele cu coeficientii
filtrului Butterwort de ordinul n.

Proiectarea filtrului prototip Butterworth


-functia de transfer

Cascadarea bicvazilor cere gruparea polipor complex conjugate in numarator


astfel incat sa rezulte un polinom bipatratic cu coeficienti reali:
Numitorul
(s + 1)
s2 + 1.4142s + 1
(s + 1)(s2 + s + 1)
(s2 + 0.7654s + 1)(s2 + 1.8478s + 1)
(s + 1)(s2 + 0.6180s + 1)(s2 + 1.6180s + 1)

Ordinul filtrului
1
2
3
4
5

Ordinal
filtrului
1
2
3
4
5
6
7
8
9
10

Coeficientii functiei de transfer obtinute prin approximarea Butterworth sunt


trecute in urmatorul tabel:
s0

s1

s2

s3

s4

s5

s6

s7

s8

s9

s10

1
1
1
1
1
1
1
1
1
1

1
1.414214
2
2.613126
3.236068
3.863703
4.493959
5.125831
5.75877
6.392453

1
2
3.414214
5.236068
7.464102
10.09784
13.13707
16.58172
20.43173

1
2.613126
5.236068
9.14162
14.59179
21.84615
31.16344
42.80206

1
3.236068
7.464102
14.59179
25.68836
41.98639
64.8824

1
3.863703
10.09784
21.84615
41.98639
74.23343

1
4.493959
13.13707
31.16344
64.8824

1
5.125831
16.58172
42.80206

1
5.75877
20.43173

1
6.392453

Proiectarea filtrului prototip Chebysev


-calculul ordinii Trebuie sa cunoastem urmatoarele specificatii pentru
a calcula ordinul:
Atenuarea (dB)

pass frecventa limita a benzii de trecere


stop frecventa limita a benzii de oprire astop
apass atenuarea in banda de trecere
astop atenuarea in banda de oprire apass

riplul permis este egal cu apass

pass stop

Pornim de la proprietatea aproximarii Chebysev:


H ( j )
2

10

A
1 2 Cn2 ( )

Apass /10

1; ( exp rimat n funcie de a pass )

Cn - polinomul Chebysev de ordinul n


A-atenuarea (amplificarea) in banda de trecere (ctigul n curent continuu)

Frecventa
(radian/s)

Proiectarea filtrului prototip Chebysev


-calculul ordinii Cunoscand atenuarea la limita benzii de trecere:
a
a pass 10log(1 2Cn2 ( pass )) 2Cn2 ( pass ) 10

pass

10

Cuncoscand atenuarea la limita penzii de oprire:


astop

astop 10log(1 2Cn2 (stop )) 2Cn2 (stop ) 10 10 1

Avand in vedere definitia polinoamelor Chebysev


de prima speta Cn ( ) cosh n cosh 1 ( ) , pentru 0
prin calcule complicate obtinem:
cosh K
unde K 10 1 K
n
1

astop

cosh

K
f

10

a pass

10

10

stop

pass

Proiectarea filtrului prototip Chebysev


-calculul ordinii Considerand exemplul de la aproximarea
Butterworth, sa se calculeze ordinul filtrului
Chebysev
102 1
Ka
19.5538
0.1
10 1

12KHz
Kf
1.5
8KHz

arcosh 19.5538
arcosh 1.5

Cod MATLAB

os=12000;op=8000;as=20,ap=1;
ka=sqrt((10^(0.1*as)-1)/(10^(0.1*ap)-1));
kf=os/op;
n=acosh(ka)/acosh(kf)
Sau
Cheb1ord(2*pi*8000,2*pi*12000,1,20,'s')

3.8

Proiectarea filtrului prototip Chebysev


-functia de transfer Functia de transfer a unui filtru Chebysev de ordninul n se scrie sub forma:
Hn

2k 1
2k 1
1

,
unde
s

sinh
ar
sinh(

)
sin

j
cosh
ar
sinh(

)
cos

n
n
n
2
n
n
2

s sk
g

k 1

g - este ales astfel ca coeficientul lui s n sa fie egal cu 1 (castig)

Functia de trasfer va avea poli repartizati uniform pe o elipsa. Exemplu: n=4


Cod MATLAB
>>ord=4, rip=1 %in dB
>>[z,p,k]=cheb1ap(ord,rip);
>>zplane(z,p)
Sunt disponibile si tabele cu coeficientii
filtrului Chebysev de ordnul n.

Proiectarea filtrului prototip Chebysev


-functia de transfer

Coeficientii filtrului Chebysev sunt trecute in tabele in functie de riplul permis


Pentru 1dB: Ordinul castigul s0
s1
s2
s3
s4
s5
s6
filtrului
1
2
3
4
5
6
7
8

Pentru 3dB:

Ordinul
filtrului
1
2
3
4
5
6
7
8

1.9652
0.98261
0.49131
0.24565
0.12283
0.061413
0.030707
0.015353

castigul
1.0024
0.50119
0.25059
0.1253
0.062649
0.031324
0.015662
0.0078311

1
1
1
1
1
1
1
1

s0
1
1
1
1
1
1
1
1

1.9652
1.0977
0.98834
0.95281
0.93682
0.92825
0.92312
0.91981

s1
1.0024
0.6449
0.59724
0.58158
0.5745
0.5707
0.56842
0.56695

1.1025
1.2384
1.4539
1.6888
1.9308
2.1761
2.423

s2

0.70795
0.92835
1.1691
1.415
1.6628
1.9116
2.1607

0.49131
0.74262
0.9744
1.2021
1.4288
1.6552

s3

0.25059
0.40477
0.54894
0.69061
0.83144
0.97195

0.27563
0.58053
0.93935
1.3575
1.8369

s4

0.17699
0.40797
0.6991
1.0518
1.4667

0.12283
0.30708
0.54862
0.84682

s5

0.062649
0.16343
0.30002
0.4719

0.068907
0.21367
0.44783

s6

0.044247
0.14615
0.32076

s7

0.030707
0.10734

s7

0.015662
0.056481

s8

0.017227

s8

0.011062

Proiectarea filtrului prototip invers-Chebysev


-calculul ordinii Trebuie sa cunoastem urmatoarele specificatii pentru a
calcula ordinul:

Atenuarea (dB)

pass frecventa limita a benzii de trecere


stop frecventa limita a benzii de oprire
apass atenuarea in banda de trecere
astop
astop atenuarea in banda de oprire
riplul in banda de oprire este limitat
apass
de astop

pass stop

Pornim de la proprietatea aproximarii Chebysev:


A 2 Cn2 (1/ )
H ( j )
1 2 Cn2 (1/ )
2

10
1; (valoarea liniara)
Cn - polinomul Chebysev de ordinul n
A-atenuarea (amplificarea) in banda de trecere (ctigul n curent continuu)
astop /10

Frecventa
(radian/s)

Proiectarea filtrului prototip invers-Chebysev


-calculul ordinii La fel ca si la Chebysev simplu.
Atentie: aproximarea invers-Chebysev permite
ripluri in banda de oprire!

Cod MATLAB
>>omega=-2:0.1:2;
>> plot(omega,((0.2^2).*(8.*(1./omega).^48.*(1./omega).^2+1).^2)./(1+(0.2^2).*(8.*(1./omega).^48.*(1./omega).^2+1).^2),'LineWidth',2,'color','red');
>> hold on;
>> plot(omega,1./(1+(0.2^2).*(8.*omega.^48.*omega.^2+1).^2),'LineWidth',2,'color','blue');

Proiectarea filtrului prototip invers Chebysev


-functia de transfer

Functia de transfer a unui filtru invers Chebysev de ordinul n se scrie sub


forma:
n

Hn

s z
k 1
n

ss
k 1

zk

, unde sk

1
2k 1
2k 1
1

sinh ar sinh( ) sin


j cosh ar sinh( ) cos

n
n
2
n
n
2

1
2k 1
j cos

n
2

Functia de trasfer va avea poli repartizati


uniform pe o elipsa si zerouri pe axa
imaginara. Exemplu: n=4
Cod MATLAB
>>ord=4,astop=20 % db riplu permis
>>[z,p,k]=cheb2ap(ord,astop);
>>zplane(z,p)
Sunt disponibile si tabele cu coeficientii
filtrului invers Chebysev de ordnul n.

Proiectarea filtrului prototip invers Chebysev


-functia de transfer Coeficientii functiei de transfer obtinut cu aproximarea invers-Chebysev
Pt. riplu de 20 dB: Ordinul castigul
s0
s1
s2
s3
s4
filtrului

numarator
numitor
numarator
numitor
numarator
numitor
numarator
numitor

2
3
4

Pt. riplu de 25 dB:

Ordinul
filtrului
1
2
3
4

castigul

0.1005

0.1005

0.1

0.2

0.6

0.2

0.30151

0.40202

1.4054

0.9421

0.40202

0.1

0.8

0.8

2.2615

2.6371

1.7145

0.8

s0

s1

s2

s3

s4

numarator
numitor
numarator
numitor
numarator
numitor
numarator

0
1
0.056234
1
0
1
0.056234

0.056323
0.056323
0
0.46075
0.16897
1.1717
0

0.11247
0.11247
0
0.67218
0.44987

0.22529
0.22529
0

0.44987

numitor

2.005

2.0354

1.1944

0.44987

Proiectarea filtrului prototip Cauer (eliptic)


-calculul ordinii Trebuie sa cunoastem urmatoarele specificatii pentru a calcula
ordinul:

Atenuarea (dB)

pass frecventa limita a benzii de trecere


stop frecventa limita a benzii de oprire
apass atenuarea in banda de trecere
astop
astop atenuarea in banda de oprire
riplul este egal cu apass
a

Cunoscand zerourile si polurile a filtrului pass


Cauer, putem calcula contrinbutia fiecaruia
la caracteristica de atenuare. Prin urmare
obtinem fomula:

pass stop
astop

K ( K f 1 ) K ( K a1 )

stop
10 10 1
n
, unde K f
, Ka
,
a
K ( K f 1 ) K ( K a1 )
pass
10
pass

10

functia K (k )

/2

d
1 k sin
2

, iar K (k ) K

1 k2

Frecventa
(radian/s)

Proiectarea filtrului prototip Cauer (eliptic)


-calculul ordinii Considerand exemplul de mai sus, sa se
calculeze ordinul filtrului Cauer
102 1
Ka
19.5538
0.1
10 1
12KHz
Kf
1.5
8KHz
K ( K a1 ) 1.5915

K ( K a1 ) 4.7069
K ( K f 1 ) 2, 029
K ( K f 1 ) 2,1483
n

K ( K ) K ( K )
1
f
1
f

1
a
1
a

K ( K ) K ( K )

Cod MATLAB
>> ka=19.5528;kf=1.5;
>> k1=ellipke(1/ka);
>> k2=ellipke(sqrt(1-(1/ka)^2));
>> k3=ellipke(1/kf);
>> k4=ellipke(sqrt(1-(1/kf)^2));
>> n=k2*k3/(k1*k4)
Sau

2.7933

>> ellipord(2*pi*8000,2*pi*12000,1,20,'s')

Proiectarea filtrului prototip Cauer (eliptic)


-calculul ordinii Cod MATLAB pentru calculul si
afisajul polilor si zerourilor:
>>ord=3, apass=1,astop=20
>>[z,p,k]=ellipap(ord,apass,astop)
>>zplane(z,p)
Functiile de transfer optinute pentru ordinele n=1:4
apass=1dB si astop=20dB:

Ordinul
filtrului
1
2
3
4

castigul
numarator
numitor
numarator
numitor
numarator
numitor
numarator
numitor

s0
0
1
0.1
1
0
1
0.1
1

s1
1.9652
1.9652
0
1.0296
0.32058
0.96657
0
0.90377

s2

1.0277
1.1531
0
1.2407
0.5422
1.6765

s3

s4

0.66467
0.66467
0
0.86881

0.52559
0.58972

Comparatie
Pentru exemplul de mai sus am obtinut
urmatoarele ordini:
Butterworth ordinul 8
Chebysev ordinul 4
Invers Chebysev - ordinul 4
Cauer ordinul 3

filtrele obtinute prin aproximare Cauer au


ordinul cel mai scazut (in cazul aproximarii
caracteristicii de atenuare)

Transformarea filtrului prototip


Cele mai utilizate transfomari de frecventa
sunt:
FTJ -> FTS
FTJ -> FTB
FTJ -> FOB
Si operatia de denormare se poate interpreta ca si
o transformare de frecventa FTJ -> FTJ

Transformarea FTJ->FTJ

s
s

Schimbarea de variabila:
0 2 f
Cod MATLAB:

>> omega=1/10:0.001:10;
>> w0=2;
>> [b,a]=butter(4,1,'s');
>> [bt,at]=lp2lp(b,a,w0);
>> loglog(omega,abs(freqs(b,a,omega)))
>> hold on
>> loglog(omega,abs(freqs(bt,at,omega)),'red')

Valoarea elementelor pasive se


schimba in felul urmator:

Transformarea FTJ-FTS
Schimbarea de variabila:
Cod MATLAB

>> omega=1/10:0.001:10;
>> [b,a]=butter(4,1,'s');
>> [bt,at]=lp2hp(b,a,1);
>> loglog(omega,abs(freqs(b,a,omega)))
>> hold on
>> loglog(omega,abs(freqs(bt,at,omega)),'red')
Elementele pasive se schimba in felul urmator:

1
s

Transformarea FTJ-FTB
2

Schimbarea de variabila:
Cod MATLAB

s
1
0 0
s

, unde 0 12 , B 2 1
s
B

>> omega=1/10:0.001:10;
>>w1=1;w2=2;w0=sqrt(w1*w2);B=w2-w1;
>> [b,a]=butter(4,1,'s');
>> [bt,at]=lp2bp(b,a,w0,B);
>> loglog(omega,abs(freqs(b,a,omega)))
>> hold on
>> loglog(omega,abs(freqs(bt,at,omega)),'red')

Transformarea FTJ-FTB
Schimbarea elementelor pasive
Sa consideram ca frecventa centrala 0 este unitara, astfel schimbarea de
variabila devine:
s2 1
s
Bs
Elementele pasive se modifica in felul urmator:

Daca se doreste modificarea frecventei centrale, atunci se apeleaza


transformareaFTJ->FTJ

Transformarea FTJ-FOB
Schimbarea de variabila:
s

0 s
1
0
2

, unde 0 12 , B 2 1

Cod MATLAB

>> omega=1/10:0.001:10;
>> w1=1;w2=2;w0=sqrt(w1*w2);B=w2-w1;
>> [b,a]=butter(4,1,'s');
>> [bt,at]=lp2bs(b,a,w0,B);
>> loglog(omega,abs(freqs(b,a,omega)))
>> hold on
>> loglog(omega,abs(freqs(bt,at,omega)),'red')

Transformarea FTJ-FOB
Schimbarea elementelor pasive
Sa consideram ca frecventa centrala 0 este unitara, astfel schimbarea de
variabila devine:
Bs

s 2
s 1
Elementele pasive se modifica in felul urmator:

Daca se doreste modificarea frecventei centrale, atunci se apeleaza


transformareaFTJ->FTJ