LAPORAN PRAKTIKUM PENGOLAHAN SINYAL DIGITAL
FILTER DIGITAL JENIS IIR
DISUSUN OLEH :
AZAZ TRI WAHYUDI
10507131003
MAHMUDAH HARDIYANTI
10507131006
YUDHA NAWA ANGGARA
10507131011
PROGRAM STUDI TEKNIK ELEKTRONIKA FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA 2012
A. Kompetensi Setelah mengikuti praktikum ini, mahasiswa dapat merancang suatu filter digital sederhana
B. Sub Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat: 1. 2. 3.
Merancang filter analog, khususnya yang menggunakan pendekatan Butterworth Merancang filter digital IIR berbasis rancangan filter analog Menerapkan filter digital IIR untuk memfilter sinyal
C. Dasar Teori Filter prototype adalah filter low pass dengan frekuensi cut off 1 rad/detik.
1 rad/s
Orde Filter ditentukan oleh pangkat tertinggi dari polinomial s yang ada pada penyebut fungsi alih suatu filter.
Contoh:
Filter orde 1 : G s
Filter orde 2 : G s
Filter orde 3 : Gs
1 s 1
1 s
2
1.414s 1 1
s
3
2s 2 2s 1
2
Transformasi frekuensi adalah proses transformasi dari fungsi alih filter prototype ke fungsi alih filter yang dikehendaki : Prototype orde n Lowpass ke lowpass
Transformasi frekuensi ke frekuensi s
Orde n
s 0
Lowpass ke highpass
s
n
0
s
Lowpass ke bandpass
Lowpass ke bandstop
12 s s2 1 s
s
s
s
2n
2
2
2
1
2n
1 2
dengan = 2f radian dan f adalah frekuensi cut-off filter dalam Hz. Transformasi bilinear adalah proses transformasi dari transformasi Laplace ke transformasi Z, dengan rumus :
s
z 1 , dimana T adalah periode sampling. T z 1 2
am
4. Alat dan Bahan personal computer ) yang sudah terinstal sistem operasi Windows dan perangkat lunak PC ( personal
Matlab
(versi
5.3.1
atau
yang
lebih
baru)
yang
dilengkapi
dengan
toolbox-nya.
3
D. Table Pengamatan No 5.3
Sintac % Program 5.3 % Penerapan filter analog t = 0:0.001:2; f1 = 2; f2 = 30; % dalam Hz x = sin(2*pi*f1*t) + sin(2*pi*f2*t); subplot(211), plot(t,x), grid; xlabel('waktu xlabel( 'waktu (detik)' ), ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal sebelum difilter'); difilter' ); [z,p,k] = buttap(2); % filter prototype orde 2 [n,d] = zp2tf(z,p,k); fc = 5; % dalam Hz wc = 2*pi*fc; % dalam radian/detik [n1,d1] = lp2lp(n,d,wc); % transformasi frekuensi sys = tf(n1,d1); y = lsim(sys,x,t); subplot(212), plot(t,y), grid; xlabel('waktu xlabel( 'waktu (detik)' ), ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal setelah difilter'); difilter' );
Penjelasan Program ini menampilkan hasil penerapan filter analog.
Pada subplot(211) menampilkan sinyal hasil penjumlahan dua sinyal dengan frekuensi f1 dan f2. Sinyal ini masih berupa sinus, belum difilter.
Fungsi buttap untuk membuat prototype butterworth filter lowpass analog.
Fungsi zp2tf untuk mengubah zero pole ke transfer konversi fungsi dengan menggunakan rumus : NUM(s) H(s) = ----------DEN(s)
Fungsi 1p2lp = [NUMT,DENT] = LP2LP(NUM,DEN,Wo) megubah low pass filter prototype NUM(s)/DEN(s) dengan frekuensi cutoff 1 rad/sec ke low pass filter dengan frekuensi cutoff Wo (rad/sec).
Fungsi tf untuk membuat fungsi transfer atau konversi ke fungsi transfer.
Fungsi lsim sebagai simulasi respon waktu dari LTI ke perubahan input.
5.3a
t = 0:0.001:2; f1 = 2; f2 = 30; % dalam Hz x = sin(2*pi*f1*t) + sin(2*pi*f2*t); subplot(211), plot(t,x), grid; xlabel('waktu xlabel( 'waktu (detik)' ), ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal sebelum difilter'); difilter' ); [z,p,k] = buttap(7); [n,d] = zp2tf(z,p,k); fc = 25; wc = 2*pi*fc; [n1,d1] = lp2hp(n,d,wc); sys = tf(n1,d1); y = lsim(sys,x,t); subplot(212), plot(t,y), grid; xlabel('waktu xlabel( 'waktu (detik)' ), ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal setelah difilter'); difilter' );
Pada subplot(212) menampilkan sinyal yang sudah difilter.
Program ini menampilkan hasil penerapan filter analog.
Pada subplot(211) menampilkan sinyal hasil penjumlahan dua sinyal dengan frekuensi f1 dan f2. Sinyal ini masih berupa sinus, belum difilter.
Fungsi buttap untuk membuat prototype butterworth filter lowpass analog.
Fungsi zp2tf untuk mengubah zero pole ke transfer konversi fungsi dengan menggunakan rumus : NUM(s) H(s) = ----------DEN(s)
Fungsi 1p2hp > [NUMT,DENT] = LP2HP(NUM,DEN,Wo) mengubah low pass filter dengan NUM(s)/DEN(s) dan satu frekuensi ke high pass filter dengan frekuensi cutoff Wo.
Fungsi tf untuk membuat fungsi transfer atau konversi ke fungsi transfer.
Hasil Running
5.3a
t = 0:0.001:2; f1 = 2; f2 = 30; % dalam Hz x = sin(2*pi*f1*t) + sin(2*pi*f2*t); subplot(211), plot(t,x), grid; xlabel('waktu xlabel( 'waktu (detik)' ), ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal sebelum difilter'); difilter' ); [z,p,k] = buttap(7); [n,d] = zp2tf(z,p,k); fc = 25; wc = 2*pi*fc; [n1,d1] = lp2hp(n,d,wc); sys = tf(n1,d1); y = lsim(sys,x,t); subplot(212), plot(t,y), grid; xlabel('waktu xlabel( 'waktu (detik)' ), ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal setelah difilter'); difilter' );
Program ini menampilkan hasil penerapan filter analog.
Pada subplot(211) menampilkan sinyal hasil penjumlahan dua sinyal dengan frekuensi f1 dan f2. Sinyal ini masih berupa sinus, belum difilter.
Fungsi buttap untuk membuat prototype butterworth filter lowpass analog.
Fungsi zp2tf untuk mengubah zero pole ke transfer konversi fungsi dengan menggunakan rumus : NUM(s) H(s) = ----------DEN(s)
Fungsi 1p2hp > [NUMT,DENT] = LP2HP(NUM,DEN,Wo) mengubah low pass filter dengan NUM(s)/DEN(s) dan satu frekuensi ke high pass filter dengan frekuensi cutoff Wo.
Fungsi tf untuk membuat fungsi transfer atau konversi ke fungsi transfer.
Fungsi lsim sebagai simulasi respon waktu dari LTI ke perubahan input.
Pada subplot(212) menampilkan sinyal yang sudah difilter.
Nilai wc adalah 157.
5
5.3b
clc clear t = 0:0.001:2; f1 = 2; f2 = 50; f3 = 100; x = sin(2*pi*f1*t) + sin(2*pi*f2*t)+ sin(2*pi*f3*t); subplot(211), plot(t,x), grid; xlabel('waktu xlabel( 'waktu (detik)' ), ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal Sebelum Filter'); Filter' ); [z,p,k] = buttap(10); [n,d] = zp2tf(z,p,k); wo = f3/f1; bw = f3-f1; [n1,d1] = lp2bp(n,d,wo,bw); sys = tf(n1,d1); y = lsim(sys,x,t); subplot(212), plot(t,y), grid; xlabel('waktu xlabel( 'waktu (detik)' ), ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal setelah difilter'); difilter' );
Program ini menampilkan hasil penerapan filter analog.
Pada subplot(211) menampilkan sinyal hasil penjumlahan dua sinyal dengan frekuensi f1 dan f2. Sinyal ini masih berupa sinus, belum difilter.
Fungsi buttap untuk membuat prototype butterworth filter lowpass analog.
Fungsi zp2tf untuk mengubah zero pole ke transfer konversi fungsi dengan menggunakan rumus : NUM(s) H(s) = ----------DEN(s)
Fungsi lp2bp > [NUMT,DENT] = LP2BP(NUM,DEN,Wo,Bw)
mengubah low pass fiter NUM(s)/DEN(s) dengan frekuensi
cutoff ke band pass filter dengan Wo sebagai sebagai frekuensi jenuh (cutoff) dan Bw adalah bandwidth.
Fungsi tf untuk membuat fungsi transfer atau konversi ke fungsi
5.3b
clc clear t = 0:0.001:2; f1 = 2; f2 = 50; f3 = 100; x = sin(2*pi*f1*t) + sin(2*pi*f2*t)+ sin(2*pi*f3*t); subplot(211), plot(t,x), grid; xlabel('waktu xlabel( 'waktu (detik)' ), ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal Sebelum Filter'); Filter' ); [z,p,k] = buttap(10); [n,d] = zp2tf(z,p,k); wo = f3/f1; bw = f3-f1; [n1,d1] = lp2bp(n,d,wo,bw); sys = tf(n1,d1); y = lsim(sys,x,t); subplot(212), plot(t,y), grid; xlabel('waktu xlabel( 'waktu (detik)' ), ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal setelah difilter'); difilter' );
Program ini menampilkan hasil penerapan filter analog.
Pada subplot(211) menampilkan sinyal hasil penjumlahan dua sinyal dengan frekuensi f1 dan f2. Sinyal ini masih berupa sinus, belum difilter.
Fungsi buttap untuk membuat prototype butterworth filter lowpass analog.
Fungsi zp2tf untuk mengubah zero pole ke transfer konversi fungsi dengan menggunakan rumus : NUM(s) H(s) = ----------DEN(s)
Fungsi lp2bp > [NUMT,DENT] = LP2BP(NUM,DEN,Wo,Bw)
mengubah low pass fiter NUM(s)/DEN(s) dengan frekuensi
cutoff ke band pass filter dengan Wo sebagai sebagai frekuensi jenuh (cutoff) dan Bw adalah bandwidth.
Fungsi tf untuk membuat fungsi transfer atau konversi ke fungsi transfer.
Fungsi lsim sebagai simulasi respon waktu dari LTI ke perubahan input.
Pada subplot(212) menampilkan sinyal yang sudah difilter.
6
5.4
% Program 5.4 % Desain filter digital IIR [z,p,k] = buttap(3); % filter orde 3 [num,den] = zp2tf(z,p,k); fc = 2; % frek cut-off dalam Hz wc = 2*pi*fc; % frek cut-off dalam rad/detik [n1,d1] = lp2lp(num,den,wc); fs = 50; % frekuensi sampling (Hz) points = 512; [nd,dd] = bilinear(n1,d1,fs); [h,w] = freqz(nd,dd,points,fs); [h3,w] = freqz(0.707,1,points,fs) ; subplot(121), plot(w,h3,w,abs(h)), grid; xlabel('frekuensi xlabel( 'frekuensi (Hz)'); (Hz)' );
Program ini digunakan untuk menampilkan Diagram Bode
fc = 5
fc = 10
Filter.
Fungsi buttap digunakan untuk menampilkan low pass filter prototype butterworth dalam bentuk analog dengan orde tertentu.
Fungsi zp2tf digunakan untuk membuat zero-pole untuk mentransfer fungsi konversi.
Fungsi lp2lp digunakan untuk mentransformasikan low pass filter ke low pass filter.
Fungsi bilinear digunakan untuk mengubah fungsi transformasi s dengan z, p, dan k ke transformasi z.
Fungsi freqz digunakan untuk melihat respon filter sinyal digital
Pada hasil running terlihat letak frekuensi cut off sebesar 2 Hz. Letaknya berada pada garis perpotongan garis biru dan sinyal garis hijau.
5.4
% Program 5.4 % Desain filter digital IIR [z,p,k] = buttap(3); % filter orde 3 [num,den] = zp2tf(z,p,k); fc = 2; % frek cut-off dalam Hz wc = 2*pi*fc; % frek cut-off dalam rad/detik [n1,d1] = lp2lp(num,den,wc); fs = 50; % frekuensi sampling (Hz) points = 512; [nd,dd] = bilinear(n1,d1,fs); [h,w] = freqz(nd,dd,points,fs); [h3,w] = freqz(0.707,1,points,fs) ; subplot(121), plot(w,h3,w,abs(h)), grid; xlabel('frekuensi xlabel( 'frekuensi (Hz)'); (Hz)' ); ylabel('magnitude' ylabel( 'magnitude' ); title('Diagram title( 'Diagram Bode Filter'); Filter' ); % *** tampilan dalam semilog *** mag = 20*log10(abs(h)); m3 = 20*log10(abs(h3)); subplot(122), semilogx(w,m3,w,mag), grid; xlabel('frekuensi xlabel( 'frekuensi (Hz)'); (Hz)' );
Program ini digunakan untuk menampilkan Diagram Bode
fc = 5
fc = 10
Filter.
Fungsi buttap digunakan untuk menampilkan low pass filter prototype butterworth dalam bentuk analog dengan orde tertentu.
Fungsi zp2tf digunakan untuk membuat zero-pole untuk mentransfer fungsi konversi.
Fungsi lp2lp digunakan untuk mentransformasikan low pass filter ke low pass filter.
Fungsi bilinear digunakan untuk mengubah fungsi transformasi s dengan z, p, dan k ke transformasi z.
Fungsi freqz digunakan untuk melihat respon filter sinyal digital
Pada hasil running terlihat letak frekuensi cut off sebesar 2 Hz. Letaknya berada pada garis perpotongan garis biru dan sinyal garis hijau.
Dari pengamatan, dapat dianalisa bahwa : 1. Semakin besar frekuensi cut off-nya, maka semakin banyak juga frekuensi yang dilewatkan oleh filter. 2. Perbedaan terlihat jelas pada hasil running dalam tampilan semilog. Semakin besar frekuensi cut off-nya, maka garis sinyalnya semakin mendekati sudut 90°. Semakin mendekati 7
ylabel('magnitude ylabel( 'magnitude (dB)'); (dB)' ); title('Diagram title( 'Diagram Bode Filter'); Filter' );
sudut 90° maka sinyal semakin bagus. Sinyal filter dengan sudut 90° dikatakan bagus karena sinyal tersebut lebih ideal.
Tabel : fc
n1
5
1984.4017
10
1984.4017
d1
nd
dd
1
0.23
1
25.13
0.69
0.42
315.82
0.69
0.38
1984.40
0.23
0.039
1
0.075
1
25.13
0.226
-0.83
315.83
0.226
0.52
1984.4017
0.075
-0.086
ylabel('magnitude ylabel( 'magnitude (dB)'); (dB)' ); title('Diagram title( 'Diagram Bode Filter'); Filter' );
sudut 90° maka sinyal semakin bagus. Sinyal filter dengan sudut 90° dikatakan bagus karena sinyal tersebut lebih ideal.
Tabel : fc
n1
5
1984.4017
10
1984.4017
d1
nd
dd
1
0.23
1
25.13
0.69
0.42
315.82
0.69
0.38
1984.40
0.23
0.039
1
0.075
1
25.13
0.226
-0.83
315.83
0.226
0.52
1984.4017
0.075
-0.086
8
5.5
% Program 5.5 % Penerapan filter digital n = 0:250; T = 0.01; f1 = 2; f2 = 30; % frekuensi sinyal dalam Hz x = sin(2*pi*f1*n*T) + sin(2*pi*f2*n*T); subplot(211), plot(n*T,x), grid; xlabel('waktu xlabel( 'waktu (detik)' ); ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal sebelum difilter'); difilter' ); [z,p,k] = buttap(2); % orde filter = 2 [num,den] = zp2tf(z,p,k); fc = 5; % frek cut-off dalam Hz wc = 2*pi*fc; % frek cut-off dalam radian/detik [n1,d1] = lp2lp(num,den,wc); [nd,dd] = bilinear(n1,d1,1/T);
Program ini digunakan untuk menampilkan simulasi Penerapan
Ordo 1
Ordo 2
Filter Digital di kehidupan nyata dengan sinyal yang dijumlahkan adalah sinyal sinus dengan frekuensi 2 dan 30 Hz.
Fungsi buttap digunakan untuk menampilkan low pass filter prototype butterworth dalam bentuk analog dengan orde tertentu.
Fungsi zp2tf digunakan untuk membuat zero-pole untuk mentransfer fungsi konversi.
Fungsi lp2lp digunakan untuk mentransformasikan low pass filter ke low pass filter.
Fungsi bilinear digunakan untuk mengubah fungsi transformasi s dengan z, p, dan k ke transformasi z.
Fungsi filter digunakan untuk mengubah menjadi filter satu dimensi.
Sinyal yang dihasilkan tidak cacat.
Dari gambar hasil running program, dapat dianalisa bahwa jika
5.5
% Program 5.5 % Penerapan filter digital n = 0:250; T = 0.01; f1 = 2; f2 = 30; % frekuensi sinyal dalam Hz x = sin(2*pi*f1*n*T) + sin(2*pi*f2*n*T); subplot(211), plot(n*T,x), grid; xlabel('waktu xlabel( 'waktu (detik)' ); ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal sebelum difilter'); difilter' ); [z,p,k] = buttap(2); % orde filter = 2 [num,den] = zp2tf(z,p,k); fc = 5; % frek cut-off dalam Hz wc = 2*pi*fc; % frek cut-off dalam radian/detik [n1,d1] = lp2lp(num,den,wc); [nd,dd] = bilinear(n1,d1,1/T); y = filter(nd,dd,x); subplot(212), plot(n*T,y), grid; xlabel('waktu xlabel( 'waktu (detik)' ); ylabel('simpangan' ylabel( 'simpangan' ); title('Sinyal title( 'Sinyal setelah difilter'); difilter' );
Program ini digunakan untuk menampilkan simulasi Penerapan
Ordo 1
Ordo 2
Filter Digital di kehidupan nyata dengan sinyal yang dijumlahkan adalah sinyal sinus dengan frekuensi 2 dan 30 Hz.
Fungsi buttap digunakan untuk menampilkan low pass filter prototype butterworth dalam bentuk analog dengan orde tertentu.
Fungsi zp2tf digunakan untuk membuat zero-pole untuk mentransfer fungsi konversi.
Fungsi lp2lp digunakan untuk mentransformasikan low pass filter ke low pass filter.
Fungsi bilinear digunakan untuk mengubah fungsi transformasi s dengan z, p, dan k ke transformasi z.
Fungsi filter digunakan untuk mengubah menjadi filter satu dimensi.
Sinyal yang dihasilkan tidak cacat.
Dari gambar hasil running program, dapat dianalisa bahwa jika orde filter semakin besar, maka pada hasil filter akan memiliki delay yang lebih panjang pada awal sinyal hasil filter.
Delay yang makin panjang pada awal sinyal hasil filter terlihat jelas jika orde dinaikkan menjadi puluhan.
9
Ordo 3
Ordo 3
10
E. Kesimpulan
Dari praktikum yang telah dilakukan, dapat disimpulkan : 1. Filter lowpass melewatkan frekuensi sinyal rendah, filter highpass melewatkan frekuensi tinggi. Sedangkan filter band pass frekuensi sedang. 2. Hasil sinyal filter yang sudah difilter sesuai dengan transformasi frekuensi yang digunakan. 3. Semakin besar frekuensi cut off, maka semakin banyak juga frekuensi yang dilewatkan oleh filter. 4. Perbedaan terlihat jelas pada hasil running dalam tampilan semilog. Semakin besar frekuensi cut off-nya, maka garis sinyalnya semakin mendekati sudut 90°. Semakin mendekati sudut 90° maka sinyal semakin bagus. 5. Jika orde filter semakin besar, maka pada hasil filter akan memiliki delay yang lebih
E. Kesimpulan
Dari praktikum yang telah dilakukan, dapat disimpulkan : 1. Filter lowpass melewatkan frekuensi sinyal rendah, filter highpass melewatkan frekuensi tinggi. Sedangkan filter band pass frekuensi sedang. 2. Hasil sinyal filter yang sudah difilter sesuai dengan transformasi frekuensi yang digunakan. 3. Semakin besar frekuensi cut off, maka semakin banyak juga frekuensi yang dilewatkan oleh filter. 4. Perbedaan terlihat jelas pada hasil running dalam tampilan semilog. Semakin besar frekuensi cut off-nya, maka garis sinyalnya semakin mendekati sudut 90°. Semakin mendekati sudut 90° maka sinyal semakin bagus. 5. Jika orde filter semakin besar, maka pada hasil filter akan memiliki delay yang lebih panjang pada awal sinyal hasil filter.