Sunteți pe pagina 1din 8

LUCRAREA 7

CONVERSIA FILTRELOR ANALOGICE IN FILTRE NUMERICE

Exist dou metode mai des folosite:


-metoda invarianei rspunsului la impuls;
-metoda transformrii biliniare.

1. Metoda invarianei rspunsului la impuls


Se utilizeaz funcia impinvar ce creeaz un filtru numeric al crui rspuns la impuls
reprezint eantionarea rspunsului continuu la impuls al unui filtru analogic. Aceast funcie este
valabil numai pentru filtrele date sub forma funciei de transfer. Metoda invarianei rspunsului la
impuls se utilizeaz pentru filtre trece-jos i trece-band, dar nu se recomand pentru filtrele trece-
sus i oprete-band.

Sintaxa acestei funcii este:


[numd,dend] = impinvar(num,den,Fs) creeaz un filtru digital avnd coeficienii
numrtorului i numitorului returnai n vectorii numd, respectiv dend. Rspunsul la impuls al
filtrului numeric se obine prin eantionarea filtrului analogic, ai crui coeficieni sunt coninui n
vectorii num, respectiv den, cu frecvena de eantionare Fs (Hz). Dac nu se precizeaz Fs atunci
aceasta se ia implicit 1 Hz. Aceast funcie se aplic numai pentru filtre descrise prin funcia de
transfer.
Exemplul 1: S se proiecteze un filtru FTB discret, de tip Chebyshev I avnd riplul n banda
de trecere de maxim 3 dB, atenuarea n banda de oprire de minim 20dB, iar frecvenele
corespunztoare capetelor benzilor sunt: Fp1=0.2 Hz, Fp2=0.3 Hz, Fs1=0.1 Hz, Fs2=0.4 Hz.iar
frecvena de eantionare este Fs = 2 , folosindu-se metoda invarianei rspunsului la impuls. S se
reprezinte rspunsul n amplitudine i faz al filtrului obinut.
Pentru obinerea filtrului digital se folosete funcia impinvar
[bz,az]=impinvar(numt,dent,2);
[hd,wd]=freqz(bz,az);
Rp=3;Rs=20;
Wp=2*pi*[0.2 0.3];
Ws=2*pi*[0.1 0.4];
[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs,'s');
[z,p,k]=cheb1ap(n,Rp);
[num,den]=zp2tf(z,p,k); %vezi help zp2tf
Wo=sqrt(Wn(1)*Wn(2));
Bw=Wn(2)-Wn(1);
[numt,dent]=lp2bp(num,den,Wo,Bw);
h=freqs(numt,dent,w);
plot(w/2/pi,20*log10(abs(h)));grid
[bz,az]=impinvar(numt,dent,2);
[hd,wd]=freqz(bz,az);

Fig1
2. Metoda transformrii biliniare
Transformarea biliniar este o transformare neliniar a domeniului continuu n discret;
transform planul s n planul z astfel:

Funcia bilinear poate fi aplicat pentru trei moduri de descriere a unui sistem: prin
reprezentarea poli-zerouri, prin funcia de transfer i prin reprezentarea cu ecuaii de stare.

H ( z ) = H (s) z 1
s=k
z +1

Dezavantajul acestei metode const n caracterul neliniar al conversiei ntregii axe j n


cercul unitate; aceasta induce o relaie neliniar ntre frecvene

= 2arctg
k
Fenomenul numit warping (distorsiune) impune limitri de principiu n aplicarea metodei.
Relaia ntre frecvene poate fi considerat liniar doar la frecvene destul de joase.
Aceast transformare se realizeaz utiliznd funcia bilinear.
Funcia bilinear poate fi aplicat pentru trei moduri de descriere a unui sistem: prin
reprezentarea poli-zerouri, prin funcia de transfer i prin reprezentarea cu ecuaii de stare.
[zd,pd,kd]=bilinear(z,p,k,Fs) convertete funcia de transfer din domeniul s, specificat
prin zerourile, polii i ctigul din vectorii coloan z, p i k n echivalentul discret din domeniul Z,

obinut prin transformare biliniar (s= 2Fs(z1) /(z+1) ), frecvena de eantionare fiind de Fs Hz.
[numd,dend,kd]=bilinear(num,den,k,Fs), unde num i den sunt vectori linie ce conin
coeficienii funciei de transfer ai filtrului analogic, iar numd i dend coeficienii funciei de
transfer ai filtrului digital.
[Ad,Bd,Cd,Dd]= bilinear(At,Bt,Ct,Dt,Fs) este versiunea pentru ecuaii de stare.
Exemplu 2: S se proiecteze un filtru FTB discret de tip Chebyshev I prin metoda
transformrii biliniare, avnd riplul n banda de trecere de maxim 3 dB, atenuarea n banda de oprire
de minim 20dB, iar frecvenele discrete corespunztoare capetelor benzilor sunt: fp1=0.1, fp2=0.15,
fs1=0.05, fs2=0.2. Frecvena de eantionare este Fs=2. Pentru obinerea filtrului digital se folosete
funcia bilinear. ntr-o prim proiectare se vor transforma specificaiile filtrului discret n domeniul
analogic prin conversia: k = k Fs = 2fk fs

%proiectarea unui FTB discret de tip Chebyshev I


%specificarea parametrilor filtrului discret
wp=2*pi*[0.1 0.15];
ws=2*pi*[0.05 0.2];
Rp=3;Rs=20;Fs=2;
%specificarea parametrilor filtrului analogic
Wp=wp*Fs;
Ws=ws*Fs;
%calculul ordinului si a frecventei de taiere a filtrului analogic
[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs,'s');
%proiectarea filtrului analogic prototip
[z,p,k]=cheb1ap(n,Rp);
[num,den]=zp2tf(z,p,k); %vezi help zp2tf
%translarea de frecventa
Wo=sqrt(Wn(1)*Wn(2));
Bw=Wn(2)-Wn(1);
[numt,dent]=lp2bp(num,den,Wo,Bw);
%raspunsul in frecventa al filtrului analogic
w=linspace(0,1,500)*2*pi; %vezi help linspace
h=freqs(numt,dent,w);
%proiectarea filtrului digital Fs=2
[bz,az]=bilinear(numt,dent,Fs);
%raspunsul in frecventa al filtrului
[hd,wd]=freqz(bz,az);
%reprezentarea grafica
figure(1);
plot(wd/pi,20*log10(abs(hd)),'k-.',w/2/pi,20*log10(abs(h)),'k');
axis([0 1 -100 0]);grid
title('Proiectarea unui FTB discret de tip Chebyshev I');
xlabel('F (Hz) pt analogic \omega/\pi pt. discret');
ylabel('Castig (db)');
legend('filtru discret','filtru analogic');
Proiectarea unui FTB discret de tip Chebyshev I
0
filtru discret
-10 filtru analogic

-20

-30

-40
Castig (db)

-50

-60

-70

-80

-90

-100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
F (Hz) pt analogic / pt. discret

Fig. 2
Dup cum era de ateptat, frecvena benzii de trecere i a benzii de oprire ale filtrului discret
nu coincid cu cele specificate. Acest lucru se datoreaz neliniaritii transformrii biliniare. Pentru a
evita aceast neliniaritate se proiecteaz un filtru n domeniu analogic cu limitele de frecvene ale
benzii de trecere astfel alese nct transformarea biliniar s transforme frecvenele analogice n
frecvenele discrete dorite.
In consecinta in programul de mai sus se modifica e modific la specificarea parametrilor
filtrului analogic cu liniile de program:
Wp=2*Fs*tan(wp/2);
Ws=2*Fs*tan(ws/2);
n acest caz se obin reprezentriledin figura 3 i se observ c frecvenele discrete de tiere ale
filtrului discret obinut coincid cu cele din specificaii.
Proiectarea unui FTB discret de tip Chebyshev I
0
filtru discret
-10 filtru analogic

-20

-30

-40
Castig (db)

-50

-60

-70

-80

-90

-100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
F (Hz) pt analogic / pt. discret

Fig 3
Se mai pot utiliza i urmtoarele funcii MATLAB complete pentru proiectarea unui
filtru digital:
Implicit, fiecare din aceste funcii proiecteaz un FTJ. Pentru FTS se adaug la lista de
parametri high, pentru FTB sau FOB wn reprezint un vector cu dou elemente cu frecvena
inferioar i superioar de tiere, iar pentru configuraia FOB se specific stop.
Pentru a calcula ordinul minim al unui filtru IIR care s ndeplineasc anumite cerine se folosesc
funciile MATLAB din urmtorul tabel:

[n,wn]=buttord(wp,ws,Rp,Rs) returneaz cel mai mic ordin al unui filtru digital


Butterworth care are un riplu maxim n banda de trecere de Rp dB i cel putin o atenuare de Rs dB
n banda de oprire. wp i ws sunt pulsaiile corespunztoare din banda de trecere i respectiv din
banda de oprire, cuprinse ntre 0 i 1 (1 corespunde la radiani). De exemplu:
Lowpass: wp = .1, ws = .2
Highpass: wp = .2, ws = .1
Bandpass: wp = [.1 .8], ws = [.2 .7]
Bandstop: wp = [.2 .7], ws = [.1 .8]
wn reprezint frecvena de tiere la 3 dB, frecven ce se folosete n funcia butter pentru a se
obine coeficienii filtrului. Cnd Rp este 3 dB, wn este egal cu wp din buttord.
[n, wn] = buttord(Wp, Ws, Rp, Rs, 's') returneaz cel mai mic ordin al unui filtru analogic
Butterworth, caz n care wp i ws sunt n radiani/sec.
Exemplul 3: Se proiecteaz filtrul Chebyshev I discret de la Exemplul 2 folosind funciile
complete prezentate anterior.
%proiectarea directa unui FTB de tip Chebyshev I
%specificarea parametrilor filtrului discret
wp=2*[0.1 0.15];
ws=2*[0.05 0.2];
Rp=3;Rs=20;
[n,wn]=cheb1ord(wp,ws,Rp,Rs);
[b,a]=cheby1(n,Rp,wn);
[H,w]=freqz(b,a);
figure(1);
plot(w/pi,20*log10(abs(H)),'k');
title(Raspunsul de modul in frecventa a unui filtru discret);
axis([0 1 -50 0]);grid
xlabel('\omega/\pi'); ylabel('Castig (db)');

-20

-40

-60

-80

-100

-120

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

Fig. 4
APLICATII

Aplicatia 1. Dndu-se:
- frecvena de eantionare 10 Hz
- frecvena benzii de trecere 0.48 Hz
- frecvena benzii de oprire 0.4 Hz
- amplitudinea oscilaiei n banda de oprire 40 dB
- amplitudinea oscilaiei n banda de trecere 1 dB
- frecvena de pre-distorsionare 0.5 Hz
S se proiecteze un filtru eliptic trece-sus. S se reprezinte caracteristica n amplitudine,
faz, rspunsul la impuls i caracteristica poli-zerouri
S se proiecteze un filtru eliptic trece-sus prin transformare dintr-un filtru trece-jos i prin utilizarea
transformarrii biliniare. S se reprezinte caracteristicile de la punctul precedent.
S se proiecteze un filtru eliptic trece-sus prin transformare dintr-un filtru trece-jos i prin
utilizarea metoda invarianei rspunsului la impuls. S se reprezinte caracteristicile de la punctul a.
S se importe datele in interfaa fdatool i s se realizeze o analiz a filtrelor (caracteristica
amplitudine-faz, rspuns la impuls, funcia de transfer a filtrului, caracteristica poli-zerouri, etc. ).
S se precizeze dac filtrele snt stabile sau nu.
Aplicatia 2. S se proiecteze un filtru digital FTJ prin metoda invarianei rspunsului la
impuls, de tip IIR, cu frecvena de eantionare de 1 Hz, cu o atenuare maxim de 0.75 dB n banda
de trecere ( frecvene mai mici de 0.12944 Hz) i de cel putin 20 dB n banda de oprire (frecvene
mai mari de 0.201 Hz).
Aplicatia 3. S se proiecteze un filtru digital Trece Sus de tip Chebyshev I i Chebyshev II
prin metoda transformrii biliniare care s ndeplineasc urmtoarele condiii:
Frecvena de eantionare de Fs=1 Hz;
Atenuarea maxim de 1 dB pentru frecvene mai mari de 0.15 Hz;
O atenuare minim de 15 dB pentru frecvene mai mici de 0.1 Hz.
Aplicatia 4. S se proiecteze filtrele de la punctul 1 i 2 cu ajutorul funciilor complete de
sintez Matlab i cu ajutorul interfeei grafice Filter Design & Analysis Tool.