Documente Academic
Documente Profesional
Documente Cultură
Aplicatii
Proiectarea filtrelor IIR prin metoda invarianei rspunsului la impuls
)
H s
0.12093
s 0.364s 0.4945 s 0.9945s 0.4945 s 2 1.3585s 0.4945
2 2
a1) Aplicai metoda invarianei rspunsului la impuls pentru a determina filtrului digital
echivalent.
Soluie
Secvena MATLAB :
1
[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');
2
b)S se proiecteze un filtru IIR trece-jos cu metoda invarianei rspunsului la impuls, pornind de la un
filtru analogic Butterworth. Caracteristicile de gabarit pentru filtrul digital ce trebuie proiectat, sunt:
- fe 1Hz .
Soluie
Secvena MATLAB :
3
% - 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.
[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)|');
4
S se proiecteze cu metoda invarianei rspunsului la impuls un filtru trece-jos IIR, pornind de la filtrele
analogice proiectate cu metodele: Butterworth, Cebev I i II. Caracteristicile filtrului IIR sunt:
Soluie
Secventa MATLAB:
5
Fe = 500;
Wp = 2*100*pi;
Ws = 2*150*pi;
6
7
8
9
4.1.1 Proiectarea filtrelor IIR prin metoda transformrii biliniare
)
H s
0.12093
s 0.364s 0.4945 s 0.9945s 0.4945 s 2 1.3585s 0.4945
2 2
a1) Reluai problema anterioar, punctul a1) aplicnd metoda transformatei biliniare.
Soluie
Cod MATLAB
% 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');
Reprezentare grafica:
10
11
Prin metoda transformrilor de frecven (n domeniul continuu), s se proiecteze un filtru IIR trece-
band pornind de la un filtru prototip normalizat trece-jos, cu urmtoarele specificaii:
Soluie
Cod MATLAB:
12
% impulsului cu o frecventa de esantionare care previne alierea.
% Se construieste filtrul analogic prototip normalizat (cu frecventa de taiere
% unitara).
Fe = 200;
W0 = 2*30*pi;
BW = 2*20*pi;
[z,p,k] = buttap(6);
%discretizam
[Bz,Az] = impinvar(B,A,Fe);
[H, W] = freqz(Bz,Az,[],Fe);
13
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
seciunilor de ordinul doi n care se descompune filtrul iniial.
Solutie
Cod MATLAB
14
NFFT = 256;
Fe = 5000;
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)');
Reprezentare grafica:
15
16