Anda di halaman 1dari 21

Arif Surtono, M.Si., M.

Eng Fisika FMIPA Unila 2015


VIII . DESAIN FILTER FIR

8.1 Tujuan Praktikum


1. Membuat program low pass filter FIR menggunakan window rectangular dan Bartlett
2. Membuat program high pass filter FIR menggunakan window rectangular dan Bartlett
3. Membuat program band pass filter FIR menggunakan window rectangular dan Bartlett
4. Membuat program band stop filter FIR menggunakan window rectangular dan Bartlett
8.2 Pendahuluan

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.

Bentuk persamaan matematik proses filter FIR dinyatakan sebagai berikut :


(8.1)
Tetapi karena impulse responnya terbatas (finite) maka batas persamaan di atas
berubah menjadi dari 0 hingga q:
(8.2)

Impulse respon h[m] terdiri atas koefisien-koefisien bm , yaitu h[m]=[bo b1 b2


b3....bm].
Dalam domain waktu, proses filter FIR merupakan konvolusi antara sinyal input
diskrit (digital) x(n) dengan impule respon filter FIR h(n) yang menghasilkan
keluaran y(n). Adapun bentuk struktur filter FIR sesuai dengan diagram blok dan
persamaan diatas adalah :

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

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

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

(maksimum) sinyal (Fs = 2 f), sehingga harga maksimum = . Itulah sebabnya


rentang frekuensi keseluruhan pada persamaan 8.5 adalah 0 < < .
Untuk memperoleh impulse respon filter highpass, bandpass dan bandstop, maka
batas-batas integral disesuaikan spesifikasinya. Tabel berikut ini adalah persamaanpersamaan impulse respon ke empat jenis filter .

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)

Ada beberapa fungsi window yang dikenal, diantaranya adalah window


rectangular (segi empat), Bartlett, Hanning, Hamming, Blackman dan Kaiser. Tabel
berikut ini merangkum fungsi-fungsi window tersebut.
No
1

Nama Fungsi
Window
Rectangular

Fungsi Window

1, 0 n M ,
w[n]
0, otherwise
3

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015


2

Bartlett

Hanning

2 n / M , 0 n M / 2

w[n] 2 2n / M , M / 2 n M

0, otherwise

0.5 0.5 cos(2n / M ), 0 n M


w[n]
0, otherwise

Hamming

Blackman

0.54 0.46 cos(2n / M ), 0 n M


w[n]
0, otherwise

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

8.3 Percobaan percobaan.


Window Rectangular : Filter FIR Lowpass dan Highpass
Program 17
%Filter Lowpass FIR Rectangular windowing
%by: PSD Lab.Physics Dept. Unila @ 2010
clear all;clf;
%=============Parameter masukan==============================
Fs=100;
fp=input('Frekuensi cutoff lowpass fp (Hz)=');
wp=2*pi*fp/Fs;
fs=fp-0.5;%frek stopband
ws=2*pi*fs/Fs;
wc=(ws+wp)/2;

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015


%======impulse respon lowpass ==============================
Wn=1;% fungsi window rectangular Wn
N=51;% N=4*pi/dW krn window Rectangular
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=ha*Wn;%impulse respon di-windowing
%===========================================================
[h,f]=freqz(hn,1,1024,'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 =sin(2*pi*1*t)+ 0.5*sin(2*pi*8*t) + 0.5*sin(2*pi*20*t);%
sinyal beragam frekuensi
%===== Representasi alternatif sinyal input beragam frek.===
A = [1 0.5 0.5];
% Sinusoid amplitudes (row vector)
f = [1;8;20];
% Sinusoid frequencies (column vector)
x = A*sin(2*pi*f*t);%+10*randn(size(t));

%===========================================================
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));

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

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

Contoh hasil running program 17 menggunakan frekuensi sampling Fs = 100 Hz,


dan frekuensi cut-off fc = 3 Hz seperti berikut ini:
Figure 1:

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015


Respon Impulse FIR Filter h(n)

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

Spektrum frekuensi sinyal semula


300
200

|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

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

Jalankan program 17 dengan mengubah nilai frekuensi cut-off fc = 9 Hz sehingga


sinyal yang frekuensinya dibawah 9 Hz akan diloloskan, sedangkan frekuensi di atas
9 Hz tidak diloloskan (dilemahkan). Bagaimana hasilnya bila fc = 22 Hz?
Untuk melakukan filtering sinyal menggunakan highpass filter, gantilah impulse
respon lowpass hn menjadi impulse respon highpass sebagai berikut:
%======impulse respon highpass ============================
Wn=1;% fungsi window rectangular Wn
N=201;
alfaa=(N-1)/2;
for i=1:N;
t=0+(1/Fs)*i;
if i==alfaa
hd=1-(wc/pi);
else
hd= -wc/pi)*(sin(wc*(i-alfaa)))./(wc*(i-alfaa));
end;
ha(i)=hd;
end;
%===========================================================

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

Window rectangular: Filter FIR Bandpass dan Bandstop


Program 18
%Filter Bandpass FIR Rectangular windowing
%by: PSD Lab.Physics Dept. Unila @ 2010
clear all;clf;
%=============Parameter masukan==============================
Fs=100;
fp1=input('Frekuensi passband bawah fp1 (Hz)=');
wp1=2*pi*fp1/Fs;
fs1=fp1-0.1;%frek stopband bawah
ws1=2*pi*fs1/Fs;
fp2=input('Frekuensi passband atas fp2 (Hz)=');
wp2=2*pi*fp2/Fs;
fs2=fp2+0.1;%frek stopband atas
ws2=2*pi*fs2/Fs;
%======impulse respon bandpass ==============================
Wn=1;% fungsi window rectangular Wn
deltaWl=abs(ws1-wp1); deltaWh=abs(ws2-wp2);
dW=min(deltaWl,deltaWh);
N=401;%(4*pi/dW)+1
wc1=wp1-dW; wc2=wp2+dW;

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

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

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

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

Contoh hasil running program 18 menggunakan frekuensi sampling Fs = 100 Hz,


frekuensi cut-off bawah fp1 = 0,8 Hz dan frekuensi cut-off atas fp2 = 1,2 Hz untuk
meloloskan frekuensi sinyal 1 Hz.

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

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

Sinyal input

Spektrum frekuensi sinyal semula


300
200

|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.

Untuk melakukan filtering sinyal menggunakan bandstop filter, gantilah parameter


masukan dan impulse respon sebagai berikut:
%=============Parameter masukan=========================
Fs=100;
fs1=input('Frekuensi stopband bawah fs1 (Hz)=');
ws1=2*pi*fs1/Fs;
fp1=fs1-0.1;%frek passband bawah
wp1=2*pi*fp1/Fs;
fs2=input('Frekuensi stopband atas fs2 (Hz)=');
ws2=2*pi*fs2/Fs;
fp2=fs2+0.1;%frek passband atas
wp2=2*pi*fp2/Fs;
%======impulse respon bandstop =========================
Wn=1;% fungsi window rectangular Wn
deltaWl=abs(ws1-wp1); deltaWh=abs(ws2-wp2);
dW=min(deltaWl,deltaWh);
N=401;%(4*pi/dW)+1;% N=4*pi/dW krn window Rectangular

11

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

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.

Window Bartlett : Filter FIR Lowpas dan Highpas :


Program 19
%Filter: Lowpass FIR Bartlett windowing
%by: PSD Lab, Physics Dept. Unila
clear all;clf;
%=============Parameter masukan==============================
Fs=200;
fp=input('Frekuensi passband fp (Hz)=');
wp=2*pi*fp/Fs;
fs=fp-0.5;%frek stopband
ws=2*pi*fs/Fs;
wc=(ws+wp)/2;
%================Bartlett window=============================
N=9;dt=1/Fs;
for n=1:N;
t=0+dt*(n);%0.1 pengganti 1/Fs
if and(t>0,t<((N-1)*dt/2))
Wb=2*t/(N-1);
elseif and(t>=((N-1)*dt/2),t<(N-1)*dt)
Wb=2-(2*t/(N-1));
else
Wb=0;
end;
Wn(n)=Wb;
end;
%=============impulse respon ha lowpass ====================

12

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

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

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

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

Contoh hasil running program 19 menggunakan frekuensi sampling Fs = 100 Hz,


dan frekuensi cut-off fc = 4 Hz seperti berikut ini:

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

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

Sinyal input

Spektrum frekuensi sinyal semula


600
400

|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)

Untuk memperoleh filter highpass, gantilah bagian impulse respon lowpass


menjadi impulse respon highpass filter sebagai berikut:
%==========impulse respon highpass filter ==============
N=201;%(4*pi/dW)+1;% N=4*pi/dW krn window Rectangular
alfaa=(N-1)/2;
for i=1:N;
t=0+(1/Fs)*i;
if i==alfaa
hd=1-(wc/pi);
else
hd=-(wc/pi)*(sin(wc*(i-alfaa)))./(wc*(i-alfaa));
end;
ha(i)=hd;
end;
hn=conv(ha,Wn);%impulse respon di-windowing
%======================================================
Kemudian 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 bartlett dan spektrum-spektum sinyal yang diperoleh pada
laporan praktikum Anda

Window Bartlett : Filter FIR Bandpass dan Bandstop

15

Program 20.

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

%Filter: Bandpass FIR Bartlett windowing


%by: PSD Lab, Physics Dept. Unila
clear all;clf;
%=============Parameter masukan bandpass=====================
Fs=100;
fp1=input('Frekuensi passband bawah fp1 (Hz)=');
wp1=2*pi*fp1/Fs;
fs1=fp1-0.1;%frek stopband bawah
ws1=2*pi*fs1/Fs;
fp2=input('Frekuensi passband atas fp2 (Hz)=');
wp2=2*pi*fp2/Fs;
fs2=fp2+0.1;%frek stopband atas
ws2=2*pi*fs2/Fs;
%=========Bartlett window====================================
N=35;dt=1/Fs;
for n=1:N;
t=0+0.1*(n);%0.1 pengganti 1/Fs
if and(t>0,t<((N-1)*dt/2))
Wb=2*t/(N-1);
elseif and(t>=((N-1)*dt/2),t<(N-1)*dt)
Wb=2-(2*t/(N-1));
else
Wb=0;
end;
Wn(n)=Wb;
end;
%=========== Pembentukan impulse respon h(n) bandpass =======
deltaWl=abs(ws1-wp1); deltaWh=abs(ws2-wp2);
dW=min(deltaWl,deltaWh);
N=401;%(4*pi/dW)+1;% N=4*pi/dW krn window Rectangular
wc1=wp1-dW; wc2=wp2+dW;
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=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

16

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

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 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

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

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

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

Spektrum frekuensi sinyal semula


300
200

|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

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

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.

Untuk melakukan filtering sinyal menggunakan bandstop filter window bartlett,


gantilah parameter masukan dan impulse respon sebagai berikut:
%=============Parameter masukan bandstop===============
Fs=300;
fs1=input('Frekuensi stopband bawah fs1 (Hz)=');
ws1=2*pi*fs1/Fs;
fp1=fs1-0.1;%frek passband bawah
wp1=2*pi*fp1/Fs;
fs2=input('Frekuensi stopband atas fs2 (Hz)=');
ws2=2*pi*fs2/Fs;
fp2=fs2+0.1;%frek passband atas
wp2=2*pi*fp2/Fs;
%=========== Impulse respon h(n) bandstop =============
deltaWl=abs(ws1-wp1); deltaWh=abs(ws2-wp2);
dW=min(deltaWl,deltaWh);
N=201;
wc1=wp1+dW; wc2=wp2-dW;
alfaa=(N-1)/2;
for i=1:N;
if i==alfaa
hd=1-((wc2-wc1)./pi);
else
hd=-(sin(wc2*(i-alfaa))-sin(wc1*(ialfaa)))./(pi*(i-alfaa));
end;
ha(i)=hd;
end;
%=====================================================
Gambar berikut ini adalah contoh hasil filtering menggunakan bandstop filter
window bartlett dengan frekuensi stopband bawah fs1=7 Hz dan frekuensi stopband
atas fs2 = 9 Hz.

Figure 1:

19

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015


Respon Impulse FIR Filter h(n)

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

Arif Surtono, M.Si., M.Eng Fisika FMIPA Unila 2015

Sinyal input

Spektrum frekuensi sinyal semula


800

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

Anda mungkin juga menyukai