LAPORAN AKHIR PRAKTIKUM KEAHLIAN FISIKA MODUL 13 Syakir Yaqdhi Amrulloh 140310160075 LA 7.3 Listing h = [-4,1,-1,-2,5,6,5,-2,-1,1,-4]; M = length(h); n = 0:M-1; [Hr,w,a,L] = Hr_Type1(h) amax = max(a)+1; amin = min(a)-1; subplot(2,2,1); stem(n,h); axis([-1 2*L+1 amin amax]) xlabel('n'); ylabel('h(n)'); title('Impulse Response') subplot(2,2,3); stem(0:L,a); axis([-1 2*L+1 amin amax]) xlabel('n'); ylabel('a(n)'); title('a(n) coefficients') subplot(2,2,2);plot(w/pi,Hr);grid xlabel('frequency in pi units'); ylabel('Hr') title('Type-1 Amplitude Response') subplot(2,2,4);zplane(h,1)= Tampilan Analisa : Percobaan diatas yaitu menganalisa Lokasi Zero, pada filter FIR terdapat (M -1) pole pada titik asal dan (M-1) zero terletak disekitar bidang z. Dari plot diatas kita mengamti bahwa tidak terdapat pembatasan pada Hr(w) baik pada w = 0 atau pada w = lambda terdepat satu zero-quadruplet constellation dan tiga pasangan zero. LA 7.4 Listing subplot(1,1,1) h = [-4,1,-1,-2,5,6,6,5,-2,-1,1,-4]; M = length(h); n = 0:M-1; [Hr,w,b,L] = Hr_Type2(h) bmax = max(b)+1; bmin = min(b)-1; subplot(2,2,1); stem(n,h); axis([-1 2*L+1 bmin bmax]) xlabel('n'); ylabel('h(n)'); title('Impulse Response') subplot(2,2,3); stem(1:L,b); axis([-1 2*L+1 bmin bmax]) xlabel('n'); ylabel('b(n)'); title('b(n) coefficients') subplot(2,2,2);plot(w/pi,Hr);grid xlabel('frequency in pi units'); ylabel('Hr') title('Type-2 Amplitude Response') subplot(2,2,4);zplane(h,1) Tampilan Analisa : Pada percobaan ini sama dengan percobaan sebelunya dengan filter FIR fasa linear Tipe 2 karena h(n) merupakan simetri yang bergantung dengan alpha = (12 -1) :2 = 5.5. Terdapat zzero – quadruplet constellation, tiga pasang zero, dan satu zero pada w = lambda seperti yang diharapkan. LA 7.5 Listing subplot(1,1,1) h = [-4,1,-1,-2,5,0,-5,2,1,-1,4]; M = length(h); n = 0:M-1; [Hr,w,c,L] = Hr_Type3(h) cmax = max(c)+1; cmin = min(c)-1; subplot(2,2,1); stem(n,h); axis([-1 2*L+1 cmin cmax]) xlabel('n'); ylabel('h(n)'); title('Impulse Response') subplot(2,2,3); stem(0:L,c); axis([-1 2*L+1 cmin cmax]) xlabel('n'); ylabel('c(n)'); title('c(n) coefficients') subplot(2,2,2);plot(w/pi,Hr);grid xlabel('frequency in pi units'); ylabel('Hr') title('Type-3 Amplitude Response') subplot(2,2,4);zplane(h,1) Tampilan Analisa Pada program yang dibuat sama dengan sebelumnya. Hr (ω) = 0 pada ω=0 dan ω=π. LA 7.6 Listing subplot(1,1,1) h = [-4,1,-1,-2,5,6,-6,-5,2,1,-1,4]; M = length(h); n = 0:M-1; [Hr,w,d,L] = Hr_Type4(h) dmax = max(d)+1; dmin = min(d)-1; subplot(2,2,1); stem(n,h); axis([-1 2*L+1 dmin dmax]) xlabel('n'); ylabel('h(n)'); title('Impulse Response') subplot(2,2,3); stem(1:L,d); axis([-1 2*L+1 dmin dmax]) xlabel('n'); ylabel('d(n)'); title('d(n) coefficients') subplot(2,2,2);plot(w/pi,Hr);grid xlabel('frequency in pi units'); ylabel('Hr') title('Type-4 Amplitude Response') subplot(2,2,4);zplane(h,1) Tampilan Analisa Kita dapat melihat pada percobaan ini Hr (ω) merupakan zero pada ω=0. Program ini sama dengan program sebelumnya. LA 7.7 Listing wp = 0.2*pi; ws = 0.3*pi; tr_width = ws - wp M = ceil(6.6*pi/tr_width) + 1 n=[0:1:M-1]; wc = (ws+wp)/2 hd = ideal_lp(wc,M); w_ham = (blackman(M))'; h = hd .* w_ham; [db,mag,pha,grd,w] = freqz_m(h,[1]); delta_w = 2*pi/1000; Rp = -(min(db(1:1:wp/delta_w+1))) % Passband Ripple As = -round(max(db(ws/delta_w+1:1:501))) % Min Stopband attenuation % plots subplot(1,1,1) subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('hd(n)') subplot(2,2,2); stem(n,w_ham);title('Hamming Window') axis([0 M-1 0 1.1]); xlabel('n'); ylabel('w(n)') subplot(2,2,3); stem(n,h);title('Actual Impulse Response') axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('h(n)') subplot(2,2,4); plot(w/pi,db);title('Magnitude Response in dB');grid xlabel('frequency in pi units'); ylabel('Decibels') Tampilan Analisa Percobaan ini merupakan window hamming yang memberikan transisi band yang lebih kecil dan karena itu mempunyai orde yang lebih kecil pula. Untuk amplitude responnya dapan dilihat bahwa responnya lambat. Dapat dilihat dari bentuk gelombangnya. Jenis windows hamming ini memberikan respon yang kurang baik. Hal ini dapat dilihat dari ripple respon magnitudenya. Grafik hasil filter dengan grafik idelnya juga jauh berbeda. LA 7.8 Listing wp = 0.2*pi; ws = 0.3*pi; As = 50; tr_width = ws - wp; M = ceil((As-7.95)/(14.36*tr_width/(2*pi))+1) + 1 n=[0:1:M-1]; beta = 0.1102*(As-8.7) wc = (ws+wp)/2; hd = ideal_lp(wc,M); w_kai = (kaiser(M,beta))'; h = hd .* w_kai; [db,mag,pha,grd,w] = freqz_m(h,[1]); delta_w = 2*pi/1000; As = -round(max(db(ws/delta_w+1:1:501))) % Min Stopband Attenuation subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('hd(n)') subplot(2,2,2); stem(n,w_kai);title('Kaiser Window') axis([0 M-1 0 1.1]); xlabel('n'); ylabel('w(n)') subplot(2,2,3); stem(n,h);title('Actual Impulse Response') axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('h(n)') subplot(2,2,4);plot(w/pi,db);title('Magnitude Response in dB');grid axis([0 1 -100 10]); xlabel('frequency in pi units'); ylabel('Decibels') set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]) set(gca,'YTickMode','manual','YTick',[-50,0]) set(gca,'YTickLabelMode','manual','YTickLabels',['50';' 0']) Tampilan Analisis Program ini sama dengan program sebelumnya, namun jenis windows yang digunakan berbeda. Jenis windows yang digunakan merupakan jenis Kaiser dengan M=67 dan beta=4.5513 dan atenuasi stopband aktual adalah 52dB. Pada windows jenis Kaiser ini, ripple yang dihasilkan sangat banyak namun menuju titik nolnya lebih cepta disbanding windows sebelumnya. Dan grafik hasil filter dengan grafik aktualnya tidak jauh berbeda. Namun jenis filter ini masih kurang baik. LA 7.9 Listing ws1 = 0.2*pi; wp1 = 0.35*pi; wp2 = 0.65*pi; ws2 = 0.8*pi; As = 60; tr_width = min((wp1-ws1),(ws2-wp2)) M = ceil(11*pi/tr_width) + 1 %;M=68 n=[0:1:M-1]; wc1 = (ws1+wp1)/2; wc2 = (wp2+ws2)/2; hd = ideal_lp(wc2,M) - ideal_lp(wc1,M); w_bla = (blackman(M))'; h = hd .* w_bla; [db,mag,pha,grd,w] = freqz_m(h,[1]); delta_w = 2*pi/1000; Rp = -min(db(wp1/delta_w+1:1:wp2/delta_w)) % Actua; Passband Ripple As = -round(max(db(ws2/delta_w+1:1:501))) % Min Stopband Attenuation subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') axis([0 M-1 -0.4 0.5]); xlabel('n'); ylabel('hd(n)') subplot(2,2,2); stem(n,w_bla); title('Blackman Window') axis([0 M-1 0 1.1]); xlabel('n'); ylabel('w(n)') subplot(2,2,3); stem(n,h); title('Actual Impulse Response') axis([0 M-1 -0.4 0.5]); xlabel('n'); ylabel('h(n)') subplot(2,2,4); plot(w/pi,db);%set(gca,'FontName','cmr12'); title('Magnitude Response in dB');grid; xlabel('frequency in pi units'); ylabel('Decibels') Tampilan Analisa Pada percobaan ini sama dengan percobaan sebelumnya, namun jenis windows yang digunakan adalah windows blackman dengan panjang Window Blackman adalah M = 61 dan atenuasi stopband aktual adalah 75 db. Sehingga magnitude responnya lebih baik karena pengaruh nilai dari M. Respon impulse dapat ditentukan dari dua respon besaran dua buah lowpass ideal dengan sifat respon fasa yang sama. LA 7.10 Listing M = 45; As = 60; n=[0:1:M-1]; beta = 0.1102*(As-8.7) w_kai = (kaiser(M,beta))'; wc1 = pi/3; wc2 = 2*pi/3; hd = ideal_lp(wc1,M) + ideal_lp(pi,M) - ideal_lp(wc2,M); h = hd .* w_kai; [db,mag,pha,grd,w] = freqz_m(h,[1]); subplot(1,1,1) subplot(2,1,2); plot(w/pi,db); title('Magnitude Response in dB');grid; xlabel('frequency in pi units'); ylabel('Decibels') M = 45; As = 60; n=[0:1:M-1]; beta = 0.1102*(As-8.7)+.3 w_kai = (kaiser(M,beta))'; wc1 = pi/3; wc2 = 2*pi/3; hd = ideal_lp(wc1,M) + ideal_lp(pi,M) - ideal_lp(wc2,M); h = hd .* w_kai; [db,mag,pha,grd,w] = freqz_m(h,[1]); subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') axis([-1 M -0.2 0.8]); xlabel('n'); ylabel('hd(n)') subplot(2,2,2); stem(n,w_kai);title('Kaiser Window') axis([-1 M 0 1.1]); xlabel('n'); ylabel('w(n)') subplot(2,2,3); stem(n,h);title('Actual Impulse Response') axis([-1 M -0.2 0.8]); xlabel('n'); ylabel('h(n)') subplot(2,2,4);plot(w/pi,db); title('Magnitude Response in dB');grid; xlabel('frequency in pi units'); ylabel('Decibels') Tampilan Analisa Dengan menggunakan windows Kaiser dengan filter bandstop filter dengan panjang 45 dengan atenuasi stopband 60 dB dapat dilihat grafik hasil dari filter dengan grafik aktualnya terlihat sedikit mirip. Kemudian dilihat dari magnitude responyanya, ripple yang dihasilkan sedikit. LA 7.11 Listing M = 25; alpha = (M-1)/2; n = 0:M-1; hd = (2/pi)*((sin((pi/2)*(n-alpha))/2).^2)./(n-alpha); hd(alpha-1)=0; w_han = (hanning(M))'; h = hd .* w_han; [Hr,w,P,L] = Hr_Type3(h); % plots subplot(2,2,1);stem(n,hd);title('Ideal Implus Response') axis([-1 M -1.2 1.2]); xlabel('n'); ylabel('hd(n)') subplot(2,2,2); stem(n,w_han);title('Hanning Window') axis([-1 M 0 1.2]); xlabel('n'); ylabel('w(n)') subplot(2,2,3);stem(n,h);title('Actual Implus Response') axis([-1 M -1.2 1.2]); xlabel('n'); ylabel('h(n)') w = w'; Hr = Hr'; w = [-fliplr(w),w(2:501)]; Hr = [-fliplr(Hr), Hr(2:501)]; subplot(2,2,4); plot(w/pi,Hr); title('Amplitude Response');grid; axis([-1 1 -1.1 1.1]); xlabel('frekuensi in pi units'); ylabel('Hr') Tampilan Analisa Filter dengan menggunakan jenis windows hanning lebih baik dari windows lain karena yang paling cepat menuju ke nilai nol. Ripple yang ada hanyalah sedikit. Pada grafik terlihat bahwa metode hanning palingbaik karena grafik hasil filter dan gradik idealnya sangatlah mirip atau sama, sedangkan untuk metode lain masih kurang mirip jika dibandingkan dengan metode hanning. LA 7.12 Listing M = 20; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; Hrs = [1,1,1,zeros(1,15),1,1]; Hdr = [1,1,0,0]; wdl = [0,0.25,0.25,1]; k1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1; angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)]; H = Hrs.*exp(j*angH); h = real(ifft(H,M)); [db,mag,pha,grd,w] = freqz_m(h,1); [Hr,ww,a,L] = Hr_Type2(h); subplot(1,1,1) subplot(2,2,1); plot(wl(1:11)/pi,Hrs(1:11),'o',wdl,Hdr); axis([0,1,-0.1,1.1]); title('Frequency Samples: M=20') xlabel('frequency in pi units'); ylabel('Hr(k)') subplot(2,2,2); stem(l,h); axis([-1,M,-0.1,0.3]) title('Impulse Response'); xlabel('n'); ylabel('h(n)'); subplot(2,2,3); plot(ww/pi,Hr,wl(1:11)/pi,Hrs(1:11),'o'); axis([0,1,-0.2,1.2]); title('Amplitude Response') xlabel('frequency in pi units'); ylabel('Hr(w)') subplot(2,2,4);plot(w/pi,db); axis([0,1,-60,10]); grid title('Magnitude Response'); xlabel('frequency in pi units') Tampilan Analisa Pada program ini berbeda dengan program sebelumnya. Pada program ini diberikan sinyal impuls bukan windows. LA 7.13 Listing M = 40; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; Hrs = [ones(1,5),0.39,zeros(1,29),0.39,ones(1,4)]; Hdr = [1,1,0,0]; wdl = [0,0.25,0.25,1]; %Ideal Amp Res for plotting k1 = 0:floor((M-1)/2); k2 = floor((M-1)/2)+1:M-1; angH = [-alpha*(2*pi)/M*k1, alpha*(2*pi)/M*(M-k2)]; H = Hrs.*exp(j*angH); h = real(ifft(H,M)); [db,mag,pha,grd,w] = freqz_m(h,1); [Hr,ww,a,L] = hr_type2(h); subplot(2,2,1);plot(wl(1:11)/pi,Hrs(1:11),'o',wdl,Hdr); axis([0,1,-0.1,1.1]); title('Frequency Samples: M=40') xlabel('frequency in pi units'); ylabel('Hr(k)') subplot(2,2,2); stem(l,h); axis([-1,M,-0.1,0.3]) title('Impulse Response'); xlabel('n'); ylabel('h(n)'); subplot(2,2,3); plot(ww/pi,Hr,wl(1:11)/pi,Hrs(1:11),'o'); axis([0,1,-0.2,1.2]); title('Amplitude Response') xlabel('frequency in pi units'); ylabel('Hr(w)') subplot(2,2,4);plot(w/pi,db); axis([0,1,-90,10]); grid title('Magnitude Response'); xlabel('frequency in pi units'); ylabel('Decibels'); Tampilan Analisa : Percobaan ini erupakan metode desain optimum, bahwa atenuasi minimum stopband sekarang adalah 30Db, yang lebih baik dari atenuasi desain perobaan sebelunya 1. a. b. c. 2. Kesimpulan Mengenal algoritma dasar filter digital Terdapat 3 dasar filter. Yaitu: Spesifikasi Approksimasi Implementasi Mampu mendesain filter FIR dengan spesifikasi yang ditentukan Terdapat 2 spesifikasi pada filter FIR. Yaitu a. Absolute Specifications b. Relative Specifications 3. Filter digital adalah filter elektronik yang bekerja dengan menerapkan operasi matematika digital atau algoritma pada suatu pemrosesan sinyal. Pada praktikum ini, kita menggunakan filter FIR. menggunakan filter FIR, kita bisa mengamati respon sinyal yang dihasilkan dari impulse yang diberikan.