Informatica
Filtre numerice iir - lucrarea de laboratorfiltre numerice IIR - lucrarea de laborator Obiectivele lucrarii 1 Studiul operatorilor de filtrare numerica 2) Asimilarea functiilor MATLAB pentru proiectarea filtrelor cu raspuns infinit la impuls; 3 Realizarea filtrajului numeric IIR al secventelor 1D si 2D; 4) Studiul interactiv al filtrelor numerice IIR 1D si 2D utilizand mediul DIDACTICIEL. Desfasurarea lucrarii Proiectarea FILTRELOR NUMERICE tip RII (IIR)
Proiectarea
unui FA FTJ prototip buttap, cheb1ap,
ellipap, cheb2ap Transformare
de frecventa lp2lp, lp2hp, bp2bp, bp2bs Discretizare -
biliniar -
impinv Proiectare directa in planul variabilei z
iar:
Exemple de proiectare a unor FA prototip Proiectati un FA-FTB Cebasev tip I de ordinul cu si si . [b, a]=cheby1(n, Rp, wn, 'ftype', 's') [b, a]=cheby1(10, 3, 1, 's') freqs(b, a) w1=0.2*pi ; w2=pi; Bw=w2-w1; w0=sqrt(w1*w2); [bt, at]=lp2bp(b, a, w0, Bw); w=linspace(0.01, 1, 500)*2*pi; H=freqs(bt, at, w); semilogy(w/2/pi, abs(H)); grid Proiectarea FN prin aproximare in planul z Proiectati un FN FTB cu banda de trecere 1 KHz, 2 KHz], benzilede blocare [0, 500 Hz] si [2.5 KHz, 5 KHz], iar . [n, Wn]=buttord([1000, 2000]/5000, [500, 2500]/5000, 1, 60); [b, a]=butter(n, Wn) sau: [n, Wn]=ellipord([1000, 2000]/5000, [500, 2500]/5000, 1, 60) [b, a]=ellip(n, 1, 60, Wn) w=linspace(0.01, 1)*pi;
freqz(b, a, w); Proiectati un FN-FTS cu: ws = ws = 0.25p, ds = ds = 0.02 wp = wp = 0.35p, dp = dp = 0.1 prin aproximare directa tip Cebasev (in banda de trecere) in planul z. [n, wt]=cheby1ord(wp, wa, aM, am) [Bd, Ad]=cheby1(nc1, aM, wt, 'high'); freqz(Bd, Ad) Proiectarea FN-IIR prin metoda invariantei la impuls Proiectati un FN dintr-un FA-tip Butterworth cu prin metoda invariantei la impulsul unitate alegand In general functia folosita este: [bz, az]=impinvar(b, a, Fs) Daca lipseste, atunci implicit . [b, a]=butter(4, 0.3, 's'); freqs(b, a) [bz, az]=impinvar(b, a, 10) real(bz); freqz(bz, az) Exemplu: Sa se proiecteze un FN-IIR tip trece jos dintr-un FA prin metoda invariantei raspunsului la impulsul unitate. wp = wp = 0.2p, dp = dp = 0.1 ws = ws = 0.3p, ds = ds = 0.01 Se va considera frecventa de esantionare . Sa determinam parametri FA.
Sa determinam ordinul FA-Butterworth care satisface aceste conditii: [n, Wt]=butterord(wp, ws, aM, am, 's'); Sa proiectam FA-Butterworth: [b, a]=butter (n, Wt, 's'); Sa analizam FA proiectat: freqz(Ba, Aa) Se proiecteaza FN din FA prototip: [Bd, Ad]=impinvar(Ba, Aa, Fs) Comentariu: in Matlab: si nu . In acest ultim caz se va modifica Bd astfel:
Se analizeaza FN obtinut: freqz(Bd, Ad) Exemplu: Proiectati un FN - FTS cu: ws = ws = 0.25p, ds = 0.02 = ds wp = wp = 0.35p, dp = 0.1 = dp dintr-un FA - FTS de referinta prin metoda invariantei la impulsul unitate pentru . omgp=wp*Fs; omgs=ws*Fs; aM=20*log10(1/(1-dp)); am=20*log10(1/ds); [n omgt]=cheby1ord(omgp, omgs, aM, am, 's'); [Ba, Aa]=cheby1(n, aM, omgp, 'high', 's'); figure(1); freqs(Ba, Aa) [Bd, Ad]=impinvar(Ba, Aa, Fs); figure(2); freqz(Bd, Ad) Proiectarea FN - IIR prin transformarea biliniara Proiectarea FN tip IIR dintr-un FA folosind transformarea biliniara [zd, pd, kd]=bilinear(z, p, k, Fs, Fp) unde este optional si precizeaza frecventa de preaccentuare. [bd, ad]=bilinear(b, a, Fs, Fp)
cu iar si . Rezulta: Optional, pentru : , Proiectarea FN - IIR dintr-un FA folosind metoda biliniara Sa se proiecteze un FN - FTJ plecand de la un FA - FTJ de tip Butterworth, Cebasev I, Cebasev II si Eliptic pentru: wp = wp = 0.2p, dp = 0. 1 = dp ws = ws = 0.3p, ds = 0.01 = ds Sa determinam parametrii FA:
Sa proiectam FA-prototip: [nb, wb]=butterord(wp, ws, aM, am, 's') [nc1, wc1]=cheby1ord(wp, ws, aM, am, 's') [nc2, wc2]=cheby2ord(wp, ws, aM, am, 's') [nel, wel]=ellipord(wp, ws, aM, am, 's') Sa proiectam cate un FA prototip: [Bb, Ab]=butter(nb, wb, 's') [Bc1, Ac1]=cheby1(nc1, aM, wc1, 's') [Bc2, Ac2]=cheby2(nc2, aM, wc2, 's') [Bel, Ael]=ellip(nel, aM, am, wel, 's') [Bbd, Abd]=bilinear(Bb, Ab, 1) [Bc1d, Ac1d]=bilinear(Bc1, Ac1, 1) [Bc2d, Ac2d]=bilinear(Bc2, Ac2, 1) [Beld, Aeld]=bilinear(Bel, Ael, 1) freqz(B_d, A_d) Exemplu: Proiectati un FN - FTS pentru: ws = ws = 0.25p, ds = 0.02= ds wp = wp = 0.35p, dp = 0. 1 = dp dintr-un FA - FTS de referinta prin metoda transformarii biliniare. Se va considera . T=1; omgp=(2/T)*tan(wp/2); omgs=(2/T)*tan(ws/2); aM=20*log10(1/(1-dp)); am=20*log10(1/ds); [n, ongt]=cheby1ord(omgp, omgs, aM, am, 'high', 's'); [Ba, Aa]=cheby1(n, aM, omgt, 'high', 's'); wa=linspace(0.1, 1, 500)*2*pi; figure(1), freqs(Ba, Aa); [Bd, Ad]=bilinear(Ba, Aa, 1/T); figure(2), freqz(Bd, Ad, ); Proiectarea FN- IIR prin optimizarea in planul z Proiectarea unui FN - IIR care aproximeaza in sensul erorilor patratice minime o caracteristica de frecventa foloseste functia: [b, a]=yulewalk(n, f, m) unde: - un vector cu valorile amplitudinilor dorite - un vector cu valorile frecventelor specificate Exemplu: Proiectati un FN de gradul de tip trece jos, a carui caracteristica de frecventa este specificata prin: f=[0 0.6 0.6 1]; m=[1 1 0 0 ]; [b, a]=yulewalk(8, f, m); [h, w]=freqz(b, a, 128); plot(f, m, w/pi, abs(h), '--') Proiectarea unui FN tip Butterworth generalizat: [b, a]=maxflat(nb, na, Wn) [b, a, b1, b2]=maxflat(na, nb, Wn) [b, a, b1, b2]=maxflat(nb, na, Wn, 'design_flat') Studiul filtrelor numerice IIR utilizand mediul DIDACTICIEL 1) Se lanseaza DIDACTICIEL-ul prin introducerea comenzii: didact 2) Se studiaza interactiv operatorii de filtraj numeric IIR 1D si 2D cu ajutorul meniurilor definite in: Filtering Image processing Tema Sa se proiecteze un FN - FTJ IIR plecand de la un FA - FTJ de tip eliptic, prin metoda invariantei la impuls si metoda transformarii biliniare pentru: wp = wp = 0.1p, dp = 0.1 = dp ws = ws = 0.2p, ds = 0.001 = ds Se va considera frecventa de esantionare .
|