Transcript OT3OS1
OT3OS1 10.01.2008. Sve najbolje u novoj godini Puno : – Ljubavi – Sreće – Položenih ispita • Telekomunikacije (bar do 3) • Obrada signala (bar do 1, a ima i 2 koga zanima) Metode projektovanja IIR filtara Specifikacije za amplitudsku karakteristiku 1 1-δp δs 0 ωp ωa π Impulsno invarijantna transformacija (1) R uU C uI C1R1 0.0016 s C2R2 0.0159 s 1 1 CR Ha s 1 sCR 1 s CR Impulsno invarijantna transformacija (2) R uU f3 dB C uI 3 dB 1 1 2 2 CR C1R1 0.0016 s C2R2 0.0159 s Impulsno invarijantna transformacija (3) R N Ha s Rk k 1 s sk uU C uI 1 1 CR Ha s 1 sCR 1 s CR k 1 R1 1 CR s1 1 CR Impulsno invarijantna transformacija (4) N Ha s Rk k 1 s sk N Rk e sk t , t 0 ha t k 0 0, t 0 N hn Tha nT TRk esk nT u n k 1 R1 1 CR s1 1 CR t 1 RC ha t e RC k 1 nT T RC hn Tha nT e u n RC Impulsno invarijantna transformacija (5) nT T RC hn Tha nT e u n RC H z hn z n n 0 H z T RC 1 e T CR z 1 C2R2 0.0159 s Impulsno invarijantna transformacija (6) nT T RC hn Tha nT e u n RC H z hn z n n 0 H z T RC 1 e T CR z 1 C1R1 0.0016 s Impulsno invarijantna transformacija (7) C2R2 0.0159 s C1R1 0.0016 s Bilinearna transformacija (1) R uU f3 dB C uI 3 dB 1 1 2 2 CR C1R1 0.0016 s C2R2 3.1831e - 004 s Bilinearna transformacija (2) C1R1 0.0016 s Bilinearna transformacija (3) C2R2 3.1831e - 004 s Bilinearna transformacija (4) gDIG gANALOG gANALOG _ KORIGOVANO g 2fs tg 2 C2R2 2.5000e - 004 s Bilinearna transformacija (5) • Filter propusnik opsega – Propusni opseg 200 – 300Hz – Frekvencija odabiranja 2000 Hz – Red filtra 2 Bilinearna transformacija (5) 1 2 fg 1 fs 206.8 Hz fg 1 2 1 rad Ω1 tg 2fs tg 4000 0.3249 1299.6 T 2 s fs 324.4 Hz fg 2 rad 2 2 4000 0.5095 2038.0 Ω2 tg 2fs tg T 2 s fs Ω0 Ω1 Ω2 ΩW Ω2 Ω1 PO→NF prototip Red LP analognog prototip filtra će biti 1! Bilinearna transformacija (6) 1 H s LP 1 s NF prototip Ωp=1 H s H s s s 2 2 s W 0 2 1 z 1 s T 1 z 1 H z H S s s 2 z 1 T z 1 W s s 2 W s 02 BP Red BP analognog filtra će biti 2! 1 z 2 0.1367 1 1.2362 z 1 0.7265 z 2 Bilinearna transformacija (7) 0 MATLAB proracun -10 -20 [b,a]=butter(1,[200 300]/1000); b1=0.1367*[1 0 -1]; a1=[1 -1.2362 0.7265]; [H,w]=freqz(b,a,1000,2000); [H1,w]=freqz(b1,a1,1000,2000); plot(w,20*log10(abs(H)),… w,20*log10(abs(H1))); |H(ejw )|[dB] -30 -40 -50 -60 -70 -80 0 200 400 600 f [Hz] 800 1000 Primer 1 - LP f0=8000; fp=1000; fs=2000; wp=fp/(f0/2); ws=fs/(f0/2); rp=1; rs=40; [nb,wnb]=buttord(wp,ws,rp,rs) [nc1,wnc1]=cheb1ord(wp,ws,rp,rs) [nc2,wnc2]=cheb2ord(wp,ws,rp,rs) [ne,wne]=ellipord(wp,ws,rp,rs) [bb,ab]=butter(nb,wnb); [bc1,ac1]=cheby1(nc1,rp,wnc1); [bc2,ac2]=cheby2(nc2,rs,wnc2); [be,ae]=ellip(ne,rp,rs,wne); ***ord – ista lista ulaznih podataka Projektovanje filtra – različita lista ulaznih podataka Primer 1 – rezultati1 nb = 6 wnb = 0.2767 nc1 = 4 wnc1 = 0.2500 nc2 = 4 wnc2 = 0.5000 ne = 4 wne = 0.2500 U opštem slučaju red eliptičkog filtra će biti najmanji Primer 1 – rezultati2 1.4 Butt Cheb1 Cheb2 ellip 1.2 |H(ejw )| 1 Čebiševljev I i eliptički talasanje u propusnom opsegu 0.8 0.6 0.4 0.2 0 0 1000 2000 f [Hz] 3000 4000 Primer 1 – rezultati3 50 Butt Cheb1 Cheb2 ellip 0 -50 Čebiševljev II i eliptički talasanje u nepropusnom opsegu |H(ejw )|[dB] -100 -150 -200 -250 -300 -350 0 1000 2000 f [Hz] 3000 4000 Primer 1 – rezultati4 1 Butt Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 1 – rezultati5 1 Cheb1 Imaginary Part 0.5 0 4 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 1 – rezultati6 1 Cheb2 Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 1 – rezultati7 1 ellip Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 2 f0=80000; Promenjeno f0 fp=1000; fs=2000; wp=fp/(f0/2); ws=fs/(f0/2); rp=1; rs=40; [nb,wnb]=buttord(wp,ws,rp,rs) [nc1,wnc1]=cheb1ord(wp,ws,rp,rs) [nc2,wnc2]=cheb2ord(wp,ws,rp,rs) [ne,wne]=ellipord(wp,ws,rp,rs) [bb,ab]=butter(nb,wnb); [bc1,ac1]=cheby1(nc1,rp,wnc1); [bc2,ac2]=cheby2(nc2,rs,wnc2); [be,ae]=ellip(ne,rp,rs,wne); Primer 2 – rezultati1 nb = 8 wnb = 0.0282 nc1 = 5 wnc1 = 0.0250 nc2 = 5 wnc2 = 0.0500 ne = 4 wne = 0.0250 Primer 2 – rezultati2 1.4 Butt Cheb1 Cheb2 ellip 1.2 |H(ejw )| 1 0.8 0.6 0.4 0.2 0 0 1 2 f [Hz] 3 4 4 x 10 Primer 2 – rezultati3 100 Butt Cheb1 Cheb2 ellip 0 |H(ejw )|[dB] -100 -200 -300 -400 -500 -600 0 1 2 f [Hz] 3 4 4 x 10 Primer 2 – rezultati4 1 Butt Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 2 – rezultati5 1 Cheb1 Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 2 – rezultati6 1 Cheb2 Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 2 – rezultati7 1 ellip Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 3 - HP f0=8000; fp=2000; fs=1000; wp=fp/(f0/2); ws=fs/(f0/2); rp=1; rs=40; [nb,wnb]=buttord(wp,ws,rp,rs) [nc1,wnc1]=cheb1ord(wp,ws,rp,rs) [nc2,wnc2]=cheb2ord(wp,ws,rp,rs) [ne,wne]=ellipord(wp,ws,rp,rs) [bb,ab]=butter(nb,wnb,'high'); [bc1,ac1]=cheby1(nc1,rp,wnc1,'high'); [bc2,ac2]=cheby2(nc2,rs,wnc2,'high'); [be,ae]=ellip(ne,rp,rs,wne,'high'); Ključna reč high Primer 3 – rezultati1 nb = 6 wnb = 0.4638 nc1 = 4 wnc1 = 0.5000 nc2 = 4 wnc2 = 0.2500 ne = 4 wne = 0.5000 Primer 3 – rezultati2 1.4 Butt Cheb1 Cheb2 ellip 1.2 |H(ejw )| 1 0.8 0.6 0.4 0.2 0 0 1000 2000 f [Hz] 3000 4000 Primer 3 – rezultati3 50 Butt Cheb1 Cheb2 ellip 0 -50 |H(ejw )|[dB] -100 -150 -200 -250 -300 -350 -400 0 1000 2000 f [Hz] 3000 4000 Primer 3 – rezultati4 1 Butt Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 3 – rezultati5 1 Cheb1 Imaginary Part 0.5 4 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 3 – rezultati6 1 Cheb2 Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 3 – rezultati7 1 ellip Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 4 - BP f0=8000; fp=[2000 3000]; fp i fs - vektori fs=[1000 3500]; wp=fp/(f0/2); ws=fs/(f0/2); rp=1; rs=40; [nb,wnb]=buttord(wp,ws,rp,rs) [nc1,wnc1]=cheb1ord(wp,ws,rp,rs) [nc2,wnc2]=cheb2ord(wp,ws,rp,rs) [ne,wne]=ellipord(wp,ws,rp,rs) [bb,ab]=butter(nb,wnb); [bc1,ac1]=cheby1(nc1,rp,wnc1); [bc2,ac2]=cheby2(nc2,rs,wnc2); [be,ae]=ellip(ne,rp,rs,wne); Primer 4 – rezultati1 nb = 5 wnb = 0.4641 0.7744 nc1 = 4 wnc1 = 0.5000 0.7500 nc2 = 4 wnc2 = 0.2500 0.8750 ne = 3 wne = 0.5000 0.7500 n* - red NF (LP) prototipa wn* - vektori Primer 4 – rezultati2 1 Butt Cheb1 Cheb2 ellip 0.9 0.8 0.7 |H(ejw )| 0.6 0.5 0.4 0.3 0.2 0.1 0 0 1000 2000 f [Hz] 3000 4000 Primer 4 – rezultati3 0 Butt Cheb1 Cheb2 ellip -50 |H(ejw )| [dB] -100 -150 -200 -250 -300 -350 0 1000 2000 f [Hz] 3000 4000 Primer 4 – rezultati4 1 Butt Imaginary Part 0.5 0 3 2 5 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 4 – rezultati5 1 Cheb1 Imaginary Part 0.5 0 4 4 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 4 – rezultati6 1 Cheb2 Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 4 – rezultati7 1 ellip Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 5 - BS f0=8000; fp=[1000 3500]; fp i fs - vektori fs=[2000 3000]; wp=fp/(f0/2); ws=fs/(f0/2); rp=1; rs=40; [nb,wnb]=buttord(wp,ws,rp,rs) [nc1,wnc1]=cheb1ord(wp,ws,rp,rs) [nc2,wnc2]=cheb2ord(wp,ws,rp,rs) [ne,wne]=ellipord(wp,ws,rp,rs) [bb,ab]=butter(nb,wnb,'stop'); [bc1,ac1]=cheby1(nc1,rp,wnc1,'stop'); Ključna reč stop [bc2,ac2]=cheby2(nc2,rs,wnc2,'stop'); [be,ae]=ellip(ne,rp,rs,wne,'stop'); Primer 5 – rezultati1 nb = 5 wnb = 0.3364 0.8490 nc1 = 4 wnc1 = 0.2500 0.8750 nc2 = 4 wnc2 = 0.5000 0.7500 ne = 3 wne = 0.2500 0.8750 n* - red NF (LP) prototipa wn* - vektori Primer 5 – rezultati2 1.4 Butt Cheb1 Cheb2 ellip 1.2 |H(ejw )| 1 0.8 0.6 0.4 0.2 0 0 1000 2000 f [Hz] 3000 4000 Primer 5 – rezultati3 50 Butt Cheb1 Cheb2 ellip 0 -50 |H(ejw )| [dB] -100 -150 -200 -250 -300 -350 0 1000 2000 f [Hz] 3000 4000 Primer 5 – rezultati4 1 Butt Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 5 – rezultati5 4 1 Cheb1 Imaginary Part 0.5 0 -0.5 4 -1 -1 -0.5 0 Real Part 0.5 1 Primer 5 – rezultati6 1 Cheb2 Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 5 – rezultati7 1 ellip Imaginary Part 0.5 0 -0.5 -1 -1 -0.5 0 Real Part 0.5 1 Primer 6 – notch IIR filter Projektovati “notch” IIR filtar koji zadovoljava: 1. Potiskuje se frekvencija 50 Hz 2. 3 dB propusni opseg je +/- 5 Hz u odnosu na frekvenciju koja se potiskuje 3. Frekvencija odabiranja je 500 Hz Primer 6 – rešenje1 1. Postavimo nulu na 2*pi*50/500 1 0.8 Koeficijenti b (uz x) 1.0000 -0.8090 - 0.5878i 0.6 Imaginary Part 0.4 Magnitude (dB) 200 0 0 -0.2 -0.4 -0.6 -200 -0.8 -400 0 50 100 150 Frequency (Hz) 200 100 150 Frequency (Hz) 200 250 50 0 -50 -100 0 50 -1 -1 100 Phase (degrees) 0.2 250 -0.5 0 Real Part 0.5 1 Primer 6 – rešenje2 1 2. Dodamo konjugovano kompleksnu nulu 0.8 0.6 Koeficijenti b (uz x) 1.0000 -1.6180 1.0000 Imaginary Part 0.4 Magnitude (dB) 20 0.2 0 -0.2 0 -0.4 -20 -0.6 -0.8 -40 -1 -60 0 50 100 150 Frequency (Hz) 200 250 0 50 100 150 Frequency (Hz) 200 250 Phase (degrees) 150 100 50 0 -50 -1 -0.5 0 Real Part 0.5 1 Primer 6 – rešenje3 2. Dodamo konjugovano kompleksne polove 1 Koeficijenti a (uz z) 1.0000 -1.5164 0.8783 0.8 0.6 0.4 Imaginary Part Magnitude (dB) 10 0 -10 0.2 0 -0.2 -0.4 -0.6 -20 0 50 100 150 Frequency (Hz) 200 250 -0.8 -1 Phase (degrees) 100 -1 50 0 -50 -100 0 50 100 150 Frequency (Hz) 200 250 -0.5 0 Real Part 0.5 1 Primer 6 - rešenje - kod close all clear fs=500; bw=10; w0=2*pi*50/500; z0=exp(j*w0); figure,zplane(z0); b0=poly(z0) figure,freqz(b0,1,fs,fs) z1=exp(-j*w0); z_uk=[z0;z1]; figure,zplane(z_uk); b1=poly(z_uk) figure,freqz(b1,1,fs,fs) ro=1-(bw/fs)*pi p_uk=ro*[exp(j*w0);exp(-j*w0)] figure,zplane(z_uk,p_uk); a1=poly(p_uk) figure,freqz(b1,a1,fs,fs)