You are on page 1of 7

MODUL 6

ANALISIS DAN DESAIN FILTER DIGITAL


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

You might also like