Filter digital adalah proses komputasi (algoritma) yang mengubah satu sekuen angka x[n] yang merepresentasikan input ke sekuen y[n] yang merepresentasikan output. Yang dimaksud dengan komputasi disini adalah memperformansikan fungsi integrasi, diferensiasi, dan estimasi. Filter dijital diklasifikasikan dalam bentuk durasi response impuls dan dalam bentuk realisasi. Durasi esponse !mpuls ". Filter dijital Infinite Impuls Response (!!) mempunyai impuls response h[n] dengan jumlah sampel tak hingga #. Filter dijital Finite Impuls Response (F!) mempunyai impuls response h[n] dengan jumlah sampel berhingga ealisasi ". ealisasi Filter Dijital ekursif dimana output nya bergantung pada input dan harga output sebelumnya. #. ealisasi Filter Dijital $on%rekursif dimana output bergantung pada harga input sekarang dan lampau. &ransformasi 'ilinear ( &s) *eriode +ampling Contoh 1: (Disain Filter Digital) ,itung fungsi transfer -(.) dari digital filter lo/ pass dengan 0d' frekuensi 1utoff pada #2 ,. dan atenuasi paling ke1il "2 d' untuk frekuensi di atas 32 ,.. +ampling frekuensinya adalah #22 ,.. Solusi 1: 4ita akan menggunakan transformasi bilinear. +e1ara a1ak kita memilih orde dua 'utter/orth lo/ pas filter, yaitu %Buat pada mfiles [z,p,k]=buttap(2) %memberikan zero poles untuk filter %butterworth [b,a]=zp2tf(z,p,k) %transformasi zeropoles ke domain s %run program ini
Dari hasil tersebut diketahui bah/a fungsi transfer filter dengan frekuensi ternormalisasinya adalah 4emudian kita harus mentransformasikan ke frekuensi 1utoff yang sebenarnya yaitu #2 ,.. 4ita namakan sebagai -a(s). *ertama kita gunakan hubungan frekuensi analog dengan frekuensi digital yaitu) Dengan analog 1utoff nya 0d' pada frekuensi /ac, dan frekuensi atenuasi /aa, didapatkan dan 5ntuk men1ari -a(s) kita gantikan s dengan s62.0#7 sehingga *enulisan 89&:9' untuk ekspresi ini adalah) %Buat pada mfiles baru Sms z! simple("#$"%&'(((z($)'(z)$))*2)"#+%,&-(z($)'(z)$))"#$"%&)) %lihat hasilna di.ommand windows %kemudian e/pand(2&+-(z)$)*2) +ehingga fungsi transfernya adalah Dengan menggunakan syntax freqz pada 89&:9' maka kita bisa mendapatkan magnitude dari -(.) tapi kita harus mendefinisikannya dalam po/er negatif. *embagian tiap bentuk dengan 0;". # didapatkan) 89&:9' 1ode diba/ah ini akan memberikan plot magnitude -(.) terhadap frekuensi) %Buat pada mfiles baru bz=["#"&0% "#$1+, "#"&0%]! az=[$ #$#$+2, "#+$20]! [2z, w3]=fre4z(bz,az,2",2"")! semilog/(w3,abs(2z)), a/is(["#$ $""" " $]), hold on! title(56igital 7ow(8ass 9ilter5), /label(59re4uen. in :z5), label(5;agnitude5), grid %2ambar ang anda dapatkan adalah 2ambar 6igital low pass filter pada .ontoh $ Contoh 2: Fungsi transfer diba/ah ini mendefinisikan beberapa tipe filter digital. -unakan fre<. 89&:9' untuk memplot magnitude =ersus radian frekuensi. Solusi: 89&:9' 1ode untuk menghitung dan mengeplot fungsi transfer di atas adalah) % Buat di m files baru % <=%$2 % 6efault b$=[2#=,=2 =#&,+& =#&,+& 2#=,=2]-$"*(#1)! a$=[$ #2#10+$ $#,2,+ #"#%12$]!### [2$z,w$3]=fre4z(b$,a$)! % b2=["#%20& #$#%=2= $#%=2= #"#%20&]! a2=[$ #$#0&"" $#$=2, # "#20=$]!### [22z,w23]=fre4z(b2,a2)! % b1=[&#=+=2 " ($1#&,&+ " &#=+=2]-$"*(#+)! a1=[$ 1#2"11 +#%2++ 1#$1," "#,&"1]!### [21z,w13]=fre4z(b1,a1)! % b+=["#,20" #$#2"0, "#,20"]! a+=[$ #$#2"0, "#=%+$]!### [2+z,w+3]=fre4z(b+,a+)! .lf! % .lear .urrent figure % subplot(22$), semilog/(w$3,abs(2$z)), a/is(["#$ $ " $]), title(59ilter for 2$(z)5) /label(55),label(5;agnitude5),grid! % subplot(222), semilog/(w23,abs(22z)), a/is(["#$ $" " $]), title(59ilter for 22(z)5) /label(55),label(5;agnitude5),grid! % subplot(221), semilog/(w13,abs(21z)), a/is([$ $" " $]), title(59ilter for 21(z)5) /label(55),label(5;agnitude5),grid! % subplot(22+), semilog/(w+3,abs(2+z)), a/is(["#$ $" " $]), title(59ilter for 2+(z)5) /label(55),label(5;agnitude5),grid! %7ihat hasilna## Contoh 3: e1tifier +etengah -elombang dapat direpresentasikan dalam bentuk trigonometrik) Dalam 1ontoh ini kita akan memfilter hanya # bentuk a/al (atau menghilangkan bentuk 1osinus). 5ntuk menyederhanakan bentuk ini, misalkan 9 > 0? dan kita potong dengan menghilangkan dari bentuk ketiga ke atas, sehingga fungsinya menjadi) 8asalahnya menjadi bagaimana mengurangi filter lo/ pass digital dan menggunakan perintah filter untuk menghilangkan bentuk 1osine di atas. Solusi: 4ita akan menggunakan @ pole digital lo/ pass filter 'utter/orth karena kita harus mempunyai transisi yang tajam antara " dan # rad 6 detik. Dan juga, komponen frekuensi tertinggi adalah # rad6s, kita harus menspesifikasikan frekuensi sampling /s > 3 rad6s untuk menghindari aliasing. +ehingga frekuensi sampling haruslah fs > /s6#? > #6? dan periode sampling menjadi &s > "6fs > ?6#. & > 2.7 adalah harga yang 1ukup ke1il( Autoff frekuensi kita pilih /A > ".7 rad6s untuk mengatenuasi bentuk 1osine. 89&:9' 1ode di ba/ah ini adalah meliputi langkah%langkah) ". 8enghitung numerator dan denominator dari fungsi transfer dengan frekuensi 1utoff ternormalisasi #. *erhitungan koefisein untuk frekuensi yang diinginkan 0. 8enggunakan fungsi bilinear yang memetakan fungsi transfer analog ke fungsi transfer digita dan memplot respon frekuensi dari filter digital. 3. 8enghitung filter digital transfer fun1tion untuk menghitung efek /arping. 7. 8enggunakan fungsi filter untuk menghilangkan bentuk 1osine %Buat pada m files baru %7angkah $ [z,p,k]=buttap(&)! [b,a]=zp2tf(z,p,k)! % 7angkah 2 w.=$#%! [b$,a$]=lp2lp(b,a,w.)! % % 7angkah 1 3="#%! % 6efine sampling period [<z,6z]=bilinear(b$,a$,$'3)! w=">2-pi'1"">pi! 2z=fre4z(<z,6z,w)! .lf % semilog/(w,abs(2z))! grid! hold on /label(5?adian 9re4uen. w in rads'se.5), label(5;agnitude of 2(z)5), title(56igital 9ilter ?esponse in <ormalized 9re4uen.5) % fprintf(58ress an ke to .ontinue @n5)! pause! % % 7angkah + p=&! 3="#%! w.=$#%! wd=w.-3'pi! [<zp,6zp]=butter(p,wd)! fprintf(5Summar> @n@n5)! fprintf(5AB3:CD3 8?EAF?8B<2> @n@n5)! fprintf(53he num <(z) .oeff in des. order of z are> @n@n5)! fprintf(5%=#+f @t5,[<z])! fprintf(5@n@n5)! fprintf(53he den 6(z) .oeff in des. order of z are> @n@n5)! fprintf(5%=#+f @t5,[6z])! fprintf(5@n@n5)! fprintf(5AB3: 8?EAF?8B<2> @n@n5)! % fprintf(53he num <(z) .oeff in des. order of z are> @n@n5)! fprintf(5%=#+f @t5,[<zp])! fprintf(5@n@n5)! fprintf(53he den 6(z) .oeff in des. order of z are> @n@n5)! fprintf(5%=#+f @t5,[6zp])! fprintf(5@n@n5)! +etelah didapatkan harga tersebut maka diteruskan dengan langkah 7. % buat di m file ang sama dengan di atas % 7angkah % % <zp=["#"""= "#""%" "#"$2% "#"$&0 "#"$2% "#""%" "#"""=]! 6zp=[$#"""" (1#$$1= +#+%2= (1#%,%0 $#0"0% ("#++0, "#"%"+]! n=">$%"! 3="#%! gt=1)$#%-sin(n-3)(.os(2-n-3)! t=filter(<zp,6zp,gt)! % t=">"#$>$2! gta=1)$#%-sin(t)(.os(2-t)! subplot(2$$), plot(t,gta), a/is([",$2, ", &])! hold on /label(5Gontinuous 3ime t5)! label(59un.tion g(t)5)! % subplot(2$2), plot(n-3,t), a/is([",$2, ", &])! hold on /label(5Gontinuous 3ime t5)! label(59iltered Cutput (t)5)! % subplot(2$$), stem(n-3,gt), a/is([",$2, ", &])! hold on /label(56is.rete 3ime n35)! label(56is.rete 9un.tion g(n-3)5)! % subplot(2$2), stem(n-3,t), a/is([",$2, ", &])! hold on /label(56is.rete 3ime n35)! label(59iltered Cutput (n-3)5)! %Cuput Fnalog dan 6iHital dapat dilihat di hasil 2ambar