Filter FIR merupakan salah satu filter digital yang dipakai pada aplikasi
pemrosesan sinyal digital. FIR kepanjangan dari Finite Impulse Respon, karena
respon impulse filternya terbatas. Pada filter FIR tidak ada feedback sebagaimana
halnya pada filter IIR. Artinya keluaran sinyal sebelumnya tidak ada yang digunakan
untuk memproses sinyal masukan. Sinyal akan keluar melewati delay line dengan
koefisien-koefisiennya. Keuntungan filter FIR adalah stabil dan memiliki fasa yang
linier. Sedangkan kelemahannya adalah membutuhkan banyak memori atau
perhitungan untuk mencapai karakteristik respon filter yang diinginkan.
Gambar di bawah ini ditunjukkan perbedaan antara diagram blok filter FIR dan IIR.
Untuk membuat filter FIR sesuai spesifikasi filter yang diinginkan , kita harus
mencari bagaimana impulse respon filter FIR. Atau singkatnya dapat dikatakan
berapa harga-harga koefisien-koefisien penyusun impulse respon tersebut, yaitu
h[m]= [b0 b1 b2 ....bm].
Dalam bentuk spektrum frekuensi, impulse respon filter dinyatakan dengan
persamaan :
(8.3)
Hd(ej) fungsi periodik dengan periode = 2.
Untuk memperoleh kembali hd(n) maka dilakukan inverse dari persamaan 8.3 :
(8.4)
Sebagai contoh filter lowpass ideal memiliki range passband pada c < :
(8.5)
Substitusi persamaan 8.5 ke persamaan 8.4 maka akan diperoleh persamaan impulse
respon untuk filter lowpass sebagai berikut :
(8.6)
Catatan :
= T = 2 f /Fs = frekuensi digital. adalah frekuensi analog. Agar tidak terjadi
aliasing maka frekuensi sampling Fs harus minimal sama dengan dua kali frekuensi
Menentukan impulse respon h(n) seperti cara tersebut di atas yang terangkum
pada tabel disebut perancangan filter FIR dengan metode langsung. Namun persoalan
yang perlu diperhatikan pada filter FIR adalah menentukan panjang filter yang
memenuhi syarat, dimana sinyal informasi yang difilter tidak bekerja pada daerah
osilasi. Karena bila bekerja pada daerah osilasi sinyal masukan akan menjadi
terosilasi pula. Salah satu metode agar sinyal masukan tidak bekerja pada daerah
osilasi adalah dengan mengalikan impulse respon filter dengan suatu fungsi yang
disebut window dan metode ini disebut dengan metode windowing. Persamaan
prosess windowing adalah :
h(n) = hd(n) . w(n)
dengan h(n) = impulse respon filter FIR windowing, w(n) = fungsi window.
(8.7)
Nama Fungsi
Window
Rectangular
Fungsi Window
1, 0 n M ,
w[n]
0, otherwise
3
Bartlett
Hanning
2 n / M , 0 n M / 2
w[n] 2 2n / M , M / 2 n M
0, otherwise
Hamming
Blackman
2 n
4 n
0.08cos
, 0nM
0.42 0.5cos
w[n]
M
M
0, otherwise
6
Kaiser
w[n]
n 2 2
) ) ]
, 0 n M , M / 2
I 0 ()
I 0 [(1 (
(.5 x) m
I ( x)
m!
m 0
%===========================================================
figure(2);
subplot 221
plot(t,x);title('Sinyal input');ylabel('x, input');xlabel('t
(s)');
grid on;
subplot 222
X=fft(x);%FFT sinyal input bernoise
magX=abs(X);
N1=length(X); T1=1/Fs; k1=0:N1-1;
hertz=k1*(1/(N1*T1));
plot(hertz(1:N1/4),magX(1:N1/4));
xlabel ('f (Hz)');title('Spektrum frekuensi sinyal semula')
ylabel ('|X|');grid on
%====================Proses pemfilteran=====================
y=conv(hn,x); %proses konvolusi respon impulse filter dengan
sinyal input
%============================================================
subplot 223
r=max(x)/max(y);
yy=r*y;%Normalisasi/pemulihan amplitudo sinyal
p=(length(hn)-1)/2;
q=p+length(t)-1;
plot(t,yy(p-10:q-10));
ylabel('y, output');xlabel ('t (s)');
grid on;
title('Sinyal Ouput')
subplot 224
Y=fft(y);%FFT sinyal setelah difilter
magY=abs(Y);
N1=length(Y); T1=1/Fs; k1=0:N1-1;
hertz=k1*(1/(N1*T1));
plot(hertz(1:N1/4),magY(1:N1/4));
xlabel ('f (Hz)');title('Spektrum frekuensi sinyal difilter')
ylabel ('|Y|');grid on
0.06
h(n)
0.04
0.02
0
-0.02
10
20
30
40
t (s)
Respon Magnitudo Filter FIR
1.5
50
60
|H(f)|
1
0.5
0
10
15
f (Hz)
20
25
Figure 2:
Sinyal input
|X|
x, input
100
-1
-2
t (s)
Sinyal Ouput
200
150
100
|Y|
y, output
-1
-2
10
20
30
f (Hz)
Spektrum frekuensi sinyal difilter
10
50
0
t (s)
f (Hz)
20
30
Isilah nilai frekuensi cut-off fc = 7 Hz, maka frekuensi sinyal 8 Hz dan 20 Hz akan
diloloskan sedangkan frekuensi 1 Hz akan dilemahkan (tidak diloloskan). Bagaimana
hasilnya bila fc = 18 atau 19 Hz ?
Buatlah analisa hasil percobaan berdasarkan karakteristik filter lowpass/highpass
menggunakan window rectangular (segi empat) dan spektrum-spektum sinyal yang
diperoleh pada laporan praktikum Anda
alfaa=(N-1)/2;
for i=1:N;
t=0+(1/Fs)*i;
if i==alfaa
hd=(wc2-wc1)./pi;
else
hd=(sin(wc2*(i-alfaa))-sin(wc1*(i-alfaa)))./(pi*(ialfaa));
end;
ha(i)=hd;
end;
%=============== windowing =================================
hn=ha*Wn;%impulse respon di-windowing
%===========================================================
[h,f]=freqz(hn,1,length(hn),'whole',Fs);%ada 1024-point vector
H complex frequency
%response dan 1024 titik vector frequency W (radians/sample)
%===========================================================
figure(1);
subplot 211
plot(hn);%Anda bisa gunakan hn(150:250) u/ melihat hn lebih
jelas!!
ylabel('h(n)');xlabel('t (s)');
grid on;
title('Respon Impulse FIR Filter h(n)')
subplot 212
L=length(f);
plot(f(1:L/4),abs(h(1:L/4)));grid
title('Respon Magnitudo Filter FIR');
ylabel('|H(f)|');xlabel ('f (Hz)');
%==============Sinyal dengan beragam frekuensi===============
t=1/Fs:1/Fs:5;%(4+1/Fs);
x=1*sin(2*pi*1*t)+0.5*sin(2*pi*8*t)+0.5*sin(2*pi*20*t);%sinyal
beragam frekuensi
%===========================================================
figure(2);
subplot 221
plot(t,x);title('Sinyal
(s)');
grid on;
input');ylabel('x,
input');xlabel('t
subplot 222
X=fft(x);%FFT sinyal input bernoise
magX=abs(X);
N1=length(X); T1=1/Fs; k1=0:N1-1;
hertz=k1*(1/(N1*T1));
plot(hertz(1:N1/4),magX(1:N1/4));
xlabel ('f (Hz)');title('Spektrum frekuensi sinyal semula')
ylabel ('|X|');grid on
%=====================Proses pemfilteran=====================
y=conv(hn,x); %proses konvolusi respon impulse filter dengan
sinyal input
%===========================================================
subplot 223
r=max(x)/max(y);
yy=r*y;%Normalisasi/pemulihan amplitudo sinyal
p=(length(hn)-1)/2;
q=p+length(t)-1;
plot(t,yy(p-10:q-10));
ylabel('y, output');xlabel ('t (s)');
grid on;
title('Sinyal Ouput')
subplot 224
Y=fft(y);%FFT sinyal setelah difilter
magY=abs(Y);
N1=length(Y); T1=1/Fs; k1=0:N1-1;
hertz=k1*(1/(N1*T1));
plot(hertz(1:N1/4),magY(1:N1/4));
xlabel ('f (Hz)');title('Spektrum frekuensi sinyal difilter')
ylabel ('|Y|');grid on
Figure 1:
Respon Impulse FIR Filter h(n)
0.02
h(n)
0.01
0
-0.01
-0.02
50
100
1.5
150
200
250
300
t (s)
Respon Magnitudo Filter FIR
350
400
450
|H(f)|
1
0.5
0
10
f (Hz)
15
20
25
Figure 2:
10
Sinyal input
|X|
x, input
100
-1
-2
t (s)
Sinyal Ouput
300
10
20
30
20
30
f (Hz)
Spektrum frekuensi sinyal difilter
200
100
-1
-2
10
|Y|
y, output
t (s)
f (Hz)
Jalankan program 18 dengan mengubah nilai frekuensi cut-off bawah fc1 = 0.8 Hz
dan frekuensi cut-off atas fc2 = 9 Hz sehingga filter hanya meloloskan frekuensi
sinyal 1 Hz dan 8 Hz, sedangkan frekuensi 20 Hz hilang sebagai noise yang tidak
diloloskan. Bagaimana hasilnya bila fc1 = 7 Hz dan fc2 = 9 Hz?
Buatlah analisa hasil percobaan berdasarkan karakteristik filter bandpass/bandstop
butterworth dan spektrum-spektum sinyal yang diperoleh pada laporan praktikum
Anda.
11
wc1=wp1-dW; wc2=wp2-dW;
alfaa=(N-1)/2;
for i=1:N;
t=0+(1/Fs)*i;
if i==alfaa
hd=1-((wc2-wc1)./pi);
else
hd=-(sin(wc2*(i-alfaa))-sin(wc1*(i-alfaa)))./(pi*(ialfaa));
end;
ha(i)=hd;
end;
%=========================================================
Isilah nilai frekuensi stopband bawah fs1 = 7 Hz dan frekuensi stopband atas fs2 = 9
Hz, maka frekuensi sinyal 8 Hz tidak akan diloloskan sedangkan frekuensi yang lain
akan diloloskan. Bagaimana hasilnya bila fs1 = 19 Hz dan fs2 = 21 Hz?
Buatlah
analisa
hasil
percobaan
berdasarkan
karakteristik
filter
FIR
bandpass/bandstop menggunakan window retangular dan spektrum-spektum sinyal
yang diperoleh pada laporan praktikum Anda.
12
N=301;
alfaa=(N-1)/2;
for i=1:N;
t=0+(1/Fs)*i;
if i==alfaa
hd=wc/pi;
else
hd=(wc/pi)*(sin(wc*(i-alfaa)))./(wc*(i-alfaa));
end;
ha(i)=hd;
end;
%======================== windowing =========================
hn=conv(ha,Wn);%impulse respon di-windowing
%===========================================================
[h,f]=freqz(hn,1,length(hn),'whole',Fs);%ada 1024-point vector
H complex frequency
%response dan 1024 titik vector frequency W (radians/sample)
%===========================================================
figure(1);
subplot 211
plot(hn);%Anda bisa gunakan hn(150:250) u/ melihat hn lebih
jelas!!
ylabel('h(n)');xlabel('t (s)');
grid on;
title('Respon Impulse FIR Filter h(n)')
subplot 212
L=length(f);
plot(f(1:L/4),abs(h(1:L/4)));grid
title('Respon Magnitudo Filter FIR');
ylabel('|H(f)|');xlabel ('f (Hz)');
%==============Sinyal dengan beragam frekuensi===============
t=1/Fs:1/Fs:5;%(4+1/Fs);
x = 1*sin(2*pi*1*t)+ 0.5*sin(2*pi*8*t) + 0.5*sin(2*pi*20*t);%
sinyal beragam frekuensi
X=fft(x);%FFT sinyal input bernoise
magX=abs(X);
N1=length(X); T1=1/Fs; k1=0:N1-1;
hertz=k1*(1/(N1*T1));
%==========================================================
figure(2);
subplot 221
plot(t,x);title('Sinyal input');ylabel('x, input');xlabel('t
(s)');
grid on;
subplot 222
plot(hertz(1:N1/4),magX(1:N1/4));
xlabel ('f (Hz)');title('Spektrum frekuensi sinyal semula')
ylabel ('|X|');grid on
%===================Proses pemfilteran=======================
y=conv(hn,x); %proses konvolusi respon impulse filter dengan
sinyal input
%==========================================================
subplot 223
r=max(x)/max(y);
yy=r*y;%Normalisasi/pemulihan amplitudo sinyal
13
p=(length(hn)-1)/2;
q=p+length(t)-1;
plot(t,yy(p-10:q-10));
ylabel('y, output');xlabel ('t (s)');
grid on;
title('Sinyal Ouput')
subplot 224
Y=fft(y);%FFT sinyal setelah difilter
magY=abs(Y);
N1=length(Y); T1=1/Fs; k1=0:N1-1;
hertz=k1*(1/(N1*T1));
plot(hertz(1:N1/4),magY(1:N1/4));
xlabel ('f (Hz)');title('Spektrum frekuensi sinyal difilter')
ylabel ('|Y|');grid on
Figure 1:
Respon Impulse FIR Filter h(n)
0.3
h(n)
0.2
0.1
0
-0.1
50
100
200
250
t (s)
Respon Magnitudo Filter FIR
|H(f)|
10
150
300
350
10
15
20
25
f (Hz)
30
35
40
45
50
Figure 2:
14
Sinyal input
|X|
x, input
200
-1
-2
t (s)
Sinyal Ouput
3000
2000
-1
-2
20
20
40
60
40
60
f (Hz)
Spektrum frekuensi sinyal difilter
4000
|Y|
y, output
1000
0
t (s)
f (Hz)
15
Program 20.
16
Gambar berikut ini adalah contoh hasil running program 20 menggunakan frekuensi
sampling Fs = 100 Hz, frekuensi cut-off passband bawah fp1 = 7 Hz dan passband
atas fp2 = 9 Hz .
17
Figure 1:
Respon Impulse FIR Filter h(n)
0.2
h(n)
0.1
0
-0.1
-0.2
50
100
150
250
300
t (s)
Respon Magnitudo Filter FIR
200
350
400
450
|H(f)|
4
2
0
10
15
f (Hz)
20
25
Figure 2:
Sinyal input
|X|
x, input
100
-1
-2
t (s)
Sinyal Ouput
600
20
30
f (Hz)
Spektrum frekuensi sinyal difilter
10
400
200
-1
-2
10
|Y|
y, output
t (s)
f (Hz)
20
30
18
Jalankan program 20 dengan mengubah nilai frekuensi passband bawah fp1 = 0.8 Hz
dan frekuensi passband atas fp2 = 9 Hz sehingga filter hanya meloloskan frekuensi
sinyal 1 Hz dan 8 Hz, sedangkan frekuensi 20 Hz hilang sebagai noise yang tidak
diloloskan. Bagaimana hasilnya bila fp1 = 7 Hz dan fp2 = 21 Hz?
Buatlah analisa hasil percobaan berdasarkan karakteristik filter bandpass/bandstop
butterworth dan spektrum-spektum sinyal yang diperoleh pada laporan praktikum
Anda.
Figure 1:
19
h(n)
1
0
-1
50
100
150
t (s)
Respon Magnitudo Filter FIR
200
250
|H(f)|
2
1
0
10
20
30
40
f (Hz)
50
60
70
80
Figure 2:
20
Sinyal input
600
400
|X|
x, input
-1
-2
200
0
t (s)
Sinyal Ouput
40
60
80
f (Hz)
Spektrum frekuensi sinyal difilter
1500
20
1000
500
-1
-2
20
|Y|
y, output
t (s)
40
f (Hz)
60
80
Gantilah nilai frekuensi stopband bawah fs1 = 19 Hz dan frekuensi stopband atas fs2
= 21 Hz, maka frekuensi sinyal 20 Hz tidak akan diloloskan sedangkan frekuensi
yang lain akan diloloskan.
Buatlah
analisa
hasil
percobaan
berdasarkan
karakteristik
filter
FIR
bandpass/bandstop menggunakan window bartlett dan spektrum-spektum sinyal
yang diperoleh pada laporan praktikum Anda.
21