Minggu, 12 Mei 2013

Percobaan 6. Filter Analog



PERCOBAAN6
FILTER ANALOG


Tujuan Praktikum

-          Memahami konsep dasar filter dalam kaitannya dengan frekuensi suatu sinyal
-          Mempu mendesain dan membuat program untuk notch filter.


6.1 Teori Dasar

6.1.1 Filter
Sebuah filter adalah sebuah perangkat yang dirancang untuk meredam kisaran frekuensi tertentu, sementara tetap melewatkan frekuensi yang lain, dan digunakan untuk mengerjakan pembatasan spectrum frekuensi tertentu dari sebuah sinyal.Kisaran frekuensi yang diredam disebut stopband, dan kisaran frekuensi yang ditransmisikan siebut passband. Unjuk kerja dari filter dapat dikarakteristikkan dengan saru dari empat fungsi seperti ditunjukkan pada Gambar 9.1: low-pass, high-pass, band-bass and band-stop.
Pada Gambar 11.1 ditunjukkan karakteristik filter ideal, secara tipikal didasarkan sebagai garis tegak, dengan sifat:
1. Tanggapan amplitudo passband datar secara kontinyu dengan nilai 1.
    Frekuensi yang dapat dilewatkan filter secara lengkap dan tanpa cacat.
2. Tanggapan amplitudo stopband adalah datar secara kontinyu dengan nilai 0. Frekuensi yang tidak diharapkan ditekan secara lengkap.
3. Transisi antara passband dan stopband terjadi secar kontinyu

Gambar 6.1. Empat Tipe Dasar dari Filter.  (a) Low-Pass filter.
(b) High-Passfilter. (c) Band-Pass. (d) Band-Stop filter.

Model filter ideal yang ditunjukkan pada Gambar 11.1 dapat dimodifikasi parameternya secara akurat menjadi tanggapan sebuah filter yang dapat direalisasi (baik analog maupun digital). Kedataran relatif dari Passband dan stopband dapat dijelaskan dengan penambahan faktor ripple yang mana menspesifikasikan deviasi maksimum dan minimum dari nilai ideal.
Lebih lanjut, karakteristik transisi dari filter tidak dapat diubah menjadi bentuk tak kontiny antara passband dan stopband seperi dijelaskan dengan tanggapan the brick-wall. Daerah transisi didefinisikan penunjukkan satu daerah yang terdiri dari lebarpita transmisi dimana transmisi sinyal menggeser dari passband ke stopband atau sebaliknya. Secara alami, daerah transisi yang lebih sempit adalah, filter yang lebih ideal. Ketajaman yang kurang baik dari pojok frekuensi, secara visual didefinisikan dalam tanggapan filter  brickwall. Secara historis, spesifikasi filter didefinisikan sebagai frekuensi dimana keluaran daya dari filter adalah setengah dari daya yang masuk.


Gambar 6.2  Karakteristik Filter Secara Praktis: (a)   Low Pass, (b) High Pass,
(c) Band Pass dan  (d) StopBand.

Kemiringan relatif dari filter adalah daerah transisi yang dijelaskan dengan orde filter; orde filter yang lebih tinggi menghasilkan daerah transisi yang lebih sempit. Perhatikan bahwa daerah stopband tidak akan pernah secara lengkap mnghilangkan komponen frekuensi  pada kisaran tersebut. Merupakan suatu hal yang penting untuk menentukan faktor penguatan untuk aplikasi tertentu suatu filter. Kisaran faktor antara dari –20 sampai  –100 dB (1/10 to 1/100000) dapat dicapai.
Karakteristik tambahan yang menjeaskan tingkah-laku filter adalah lebar dari darah transisi yang ditunjukkan pada Gambar 11.2. Untuk kisaran transisi yang lebih kecil akan memerlukan perancangan yang lebih komplek. Kompleksitas dari filter (di sini adalah ketajaman kemiringan transisi) dapat dikarakteristikkan dengan orde dari filter. Perancangan yang paling sederhana adalah filter dengan orde satu. Band dari transisi filter menguatkan sinyal masukan -20 dB untuk setiap peubahan frekuensi dalam kelipatan 10. Filter demikian dinamakan sebagai filter dengan penguatan pada -20 dB/decade. Konsep ini diilustrasikan dalam filter pelewat frekuensi rendah orde satu yang ditunjukkan pada Gambar 11(a), dimana satu decade didasarkan pada pertambahan frekuensi dengan faktor 10. Diulangi, bahwa –20 dB bersesuaian dengan sebuah penurunan dengan faktor 10. Kemudian filter akan mengurani amplitudonya dari sinyal masukan dengan 1/10 untuk setiap decade dalam pertambahan frekuensi. Sebagai alternatif dengan cara yang sama  dapat juga dinyatakan sebagai –6 dB/octave, dimana satu octave menunjukkan kelipat-gandaan dari frekuensi.

Pada Gambar 11.3(a) ditunjukkan filter pelewat frekuensi rendah orde dua. Perancangan penguatan adalah –40 dB/decade atau –12 dB/octave. Jadi unjuk kerja dari perancangan filter ini adalah pembentukan dua kali, sehingga secara umum menjadi lebih mahal dengan kompleksitas yang lebih tinggi, karena filter orde dua disusun dari filter orde satu tersusun dua tingkat secara seri.

Gambar 6.3  (a) Tanggapan Filter Pelewat Frekuensi Rendah Orde Satu.
  (b) Tanggapan Filter Pelewat Frekuensi Rendah Orde Dua.

Sekarang, bahwa karakteristik dasar dari filter dapat ditunjukkan, kemudia dilanjutkan dengan pertimbangan pemilihan tipe dari filter. Setiap tipe filter mempunyai parameter tertentu yang mana dapat dioptimalkan dalam pendekatan dengan bentuk filter ideal. Yang tidak menguntungkan adalahtidak ada filter yang dapat digunakan untuk pendekatan seluruh karakteristik filter ideal.


Filter Butterworth

Filter ini adalah terbaik jika digunakan untuk tanggapan kedataran yang maksimal dalam  transmisi passband, minimalisasi ripple passband (didasarkan pada Gambar 11.1). Seperti yang dapat kita lihat dari tanggapan magnitude pada Gambar 10.4, pendekatan tanggapan ideal brick wall dapat dicapai sesuai dengan pertambahan orde N. Untuk menentukan orde minimum dapat ditentukan dengan melakukan pertimbangan overshot maksimum yang diijinkan. Filter ini merupakan yang terbaik untuk aplikasi linieritas amplitudo pada daerah passband. Frekuensi pojok , fc, dari filter ini didefinisikan sebagai titik  3-db seperti yang telah dijelaskan terdahulu. Tanggapan fasa filter ini tidak linier. Pada Gambar 11.4(a) ditunjukkan tanggapan magnitude dari filter Butterworth dengan orde yang berbeda.

Filter Chebyshev

Sama dengan filter Butterworth, filter ini dapat mencapai steep rolloffs dengan perancangan orde yang lebih tinggi. Antara filter Chebyshev dan Butterworth mempunyai bentuk perancangan penguatan pada daerah transisi yang sama. Keuntungannya adalah ripple yang terjadi pada daerah passband (seperti ditunjukkan pada Gambar 11.4(a) dan 11.4(b)). Perbedaannya dengan filter Butterworth adalah frekuensi cutoff untuk filter ini tidak dispesifikasikan pada titik 3-dB point, tapi lebih disukai pad frekuensi dimana dispesifikasikan ripple maksimumnya. Seperti pada filter Butterworth, filter ini secara lengkap  dispesifikasikan dengan penguatan passband maksimum, frkuensi cutoff dan orde frekuensi.

Filter Elliptic

Bila dibandingkan dengan filter Butterworth dan filter Chebyshev, filter elliptik mempertahankan tanjakan kemiringan cutoff pada orde filter terendah. Tapi mempunyai ripple yang sangat kurang baik pada daerah passband dan stopband. Ketajaman cutoff dicapai dengan menambahkan dip atau  notches” pada daerah stopband. Notch untuk memberikan zero transmission (penguatan yang lengkap) pada daerah yang dipilih. Sebagai tambahan terhadap pengatan passband maksimum dan frekuensi corner. Spesifikasi yang lengkap dari filter ini termasuk orde dari filter tersebut dan ripple pada stopband. Klompleksitas dari filter ii biasanya memerlukan sebuah komputer dalam perancangannya. Tanggapan fasa dari filter ini biasanya tidak linier. Perhatikan Gambar 11.4(c).

Filter Thompson atau Bessel

Tanggapan magnitude dari filter Bessel adalah monotonic dan and smooth- tidak ada ripple pada transmission band atau stop band. Tapi roll off filter ini kurang tajam dibandingkan dengan filter yang telah disebutkan di atas. Keuntungan utama dari filter ini adalah linieritas fasanya.






Gambar 6.4 Pembandingan Tipe Magnitude dari High-pass dengan  Cutoff 20Hz dan Variasi Orde (n=1,2,4,8). (a) Filter Butterworth, (b) Filter Chebyshev, (c) Filter Besse, (d) Filter Elliptic.

11.1.2 Perencanaan Filter dengan MATLAB
Berikut ini merupakan statemen yang dapat digunakan untuk perencanaan filter elliptic atau Cauer analog dan digital.
  
[B,A] = ELLIP(N,Rp,Rs,Wn)

Keterangan:
N  = orde lowpass digital
Rp= decibels dari ripple pada passband dan
Rs =decibels dari stopband dan menurun. 
ELLIP mempunyai koefisien filter dengan panjang   N+1 dengan vector B (sebagai pembilang dan A (sebagai penyebut). 
Frekuensi cut-off Wn harus terletak antara 0.0 < Wn < 1.0, dengan 1.0 sesuai dengan setengah dari kecepatan sampling.  Menggunakan Rp = 0.5 dan Rs = 20 sebagai titik awal, jika dipilihnya. Jika Wn merupakan dua elemen vector, Wn = [W1 W2], ELLIP menjadi filter BPF dengan orde 2N dengan  passband  W1 < W < W2.

[B,A]=ELLIP(N,Rp,Rs,Wn,'high') untuk perencanaan HPF.
[B,A]=ELLIP(N,Rp,Rs,Wn,'stop') adalah filter bandstop jika Wn=[W1 W2].

11.2  Peralatan

- PC multimedia yang sudah dilengkapi dengan OS Windows
- Perangkat Lunak Matlab yang dilengkapi dengan Tool Box DSP

11.3  Langkah Percobaan
Berikut ini beberapa contoh perangkat lunak untuk filter elliptik, yaitu untuk LPF, HPF, BPF, dan Bandstop. Silakan  dijalankan perangkat lunak tersebut untuk mengetahui tanggapannya. Pada LPF dan HPF, ulangi percobaan ini untuk Wn = 1000, 8000, 10000. Jika program tidak dapat dieksekusi maka gantilah Fs=22000, dan amati yang terjadi. Pada BPF dan Banstop, ulangi percobaan ini untuk Wn = [1000  2000], Wn = [3000  8000], Wn = [5000  10000]. Jika program tidak dapat dieksekusi maka gantilah Fs=22000, dan amati yang terjadi.

%---------------------------------------------------
% Nama File : Tanggapan_LPF_Ellip.m
% Oleh          : Yulianto
%---------------------------------------------------

clear all
Fs=16000;
Wn =5000;
% Bagian inisialisasi filter
%[B,A] = ELLIP(N,Rp,Rs,Wn)
[B,A] = ELLIP(4,0.1,40,Wn*2/Fs);
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'p','LineWidth',1); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

Amati hasilnya!. Ganti nilai variabelnya agar anda dapat memahami filter tersebut. Ingat-ingat / catat responnya, karena nantinya anda harus menganilisis termasuk membandingkan tanggapan filter elliptic terhadap filter lainnya. Lanjutkan dengan menjalankan program elliptik berikutnya. Sama dengan percobaan di atas, tapi berikut ini adalah filter untuk melewatkan bagian frekuensi tinggi.

%----------------------------------------------------
% Nama File : Tanggapan_HPF_Ellip.m
% Oleh          : Yulianto
%----------------------------------------------------
clear all
Fs=16000;
Wn =5000;
% Bagian inisialisasi filter
%[B,A] = ELLIP(N,Rp,Rs,Wn, 'high')
 [B,A] = ELLIP(4,0.1,40,Wn*2/Fs,'high');
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'p','LineWidth',1); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

%--------------------------------------------------
% Nama File : Tanggapan_BPF_Ellip.m
% Oleh          : Yulianto
%--------------------------------------------------
clear all
Fs=16000;
Bawah=3000;
Atas =5000;
% Bagian inisialisasi filter
[B,A] = ELLIP (4,0.1,40,[Bawah Atas]*2/Fs);
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'p','LineWidth',1); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

%----------------------------------------------------------
% Nama File : Tanggapan_Stopband_Ellip.m
% Oleh          : Yulianto
%----------------------------------------------------------
clear all
Fs=16000;
Bawah=3000;
Atas =5000;
% Bagian inisialisasi filter
[B,A] = ELLIP (4,0.1,40,[Bawah Atas]*2/Fs,'Stop');
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'p','LineWidth',1); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

Berikut ini beberapa contoh perangkat lunak untuk filter chebyshev 1, yaitu untuk LPF, HPF, BPF, dan Bandstop. Silakan  dijalankan perangkat lunak tersebut untuk mengetahui tanggapannya. Pada LPF dan HPF, ulangi percobaan ini untuk R = 0.2, 0.5, 1, dan 1.5.

%---------------------------------------------
% Nama File : Tanggapan_LPF_Cheby1.m
% Oleh          : Yulianto
%---------------------------------------------
clear all
Fs=16000;
Wn=5000;
% Bagian inisialisasi filter
%[B,A] = CHEBY1(N,R,Wn)
[B,A] = CHEBY1(4,0.2,Wn*2/Fs);
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'r','LineWidth',1); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

%---------------------------------------------
% Nama File : Tanggapan_HPF_Cheby1.m
% Oleh      : Yulianto
%---------------------------------------------
clear all
Fs=16000;
Wn=5000;
% Bagian inisialisasi filter
%  [B,A] = CHEBY1(N,R,Wn,'high')
[B,A] = CHEBY1(4,0.2,Wn*2/Fs,'high');
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'r','LineWidth',1); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

%---------------------------------------------
% Nama File : Tanggapan_Stopband_Cheby1.m
% Oleh      : Yulianto
%---------------------------------------------
clear all
Fs=16000;
Bawah=3000;
Atas =5000;
% Bagian inisialisasi filter
[B,A] = CHEBY1(N,Rp,[Bawah Atas]*2/Fs,'Stop');
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'b','LineWidth',3); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

Berikut ini beberapa contoh perangkat lunak untuk filter Bessel, yaitu untuk LPF, HPF, BPF, dan Bandstop. Silakan  dijalankan perangkat lunak tersebut untuk mengetahui tanggapannya.

%---------------------------------------------
% Nama File : Tanggapan_LPF_Bessel.m
% Oleh      : Yulianto
%---------------------------------------------
clear all
Fs=16000;
Bawah=3000;
Atas =5000;
% Bagian inisialisasi filter
[B,A] = BESSELF(N,FA*2/Fs);
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'r','LineWidth',3); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

%---------------------------------------------
% Nama File : Tanggapan_HPF_Bessel.m
% Oleh      : Yulianto
%---------------------------------------------
clear all
Fs=16000;
Bawah=3000;
% Bagian inisialisasi filter
[B,A] = BESSELF(N,Bawah*2/Fs,'high');
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'g','LineWidth',3); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

%---------------------------------------------
% Nama File : Tanggapan_BPF_Bessel.m
% Oleh      : Yulianto
%---------------------------------------------
clear all
Fs=16000;
Bawah=3000;
Atas =5000;
% Bagian inisialisasi filter
 [B,A] = BESSELF(N,[Bawah Atas]*2/Fs);
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'c','LineWidth',3); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

%---------------------------------------------
% Nama File : Tanggapan_Stopband_Bessel.m
% Oleh      : Yulianto
%---------------------------------------------
clear all
Fs=16000;
Bawah=3000;
Atas =5000;
% Bagian inisialisasi filter
[B,A] = BESSELF(N,[Bawah Atas]*2/Fs,'Stop');
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'b','LineWidth',3); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

Berikut ini beberapa contoh perangkat lunak untuk filter Butterworth, yaitu untuk LPF, HPF, BPF, dan Bandstop. Silakan  dijalankan perangkat lunak tersebut untuk mengetahui tanggapannya.

%------------------------------------------------------------
% Nama File : Tanggapan_LPF_Butterworth.m
% Oleh      : Yulianto
%------------------------------------------------------------
clear all
Fs=16000;
Bawah=3000;
Atas =5000;
% Bagian inisialisasi filter
[B,A] = BUTTER(N,FA*2/Fs);
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'r','LineWidth',3); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

%-------------------------------------------------------------
% Nama File : Tanggapan_HPF_Butterworth.m
% Oleh      : Yulianto
%-------------------------------------------------------------
clear all
Fs=16000;
Bawah=3000;
Atas =5000;
% Bagian inisialisasi filter
[B,A] = BUTTER(N,FB*2/Fs,'high');
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'g','LineWidth',3); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');
%---------------------------------------------
% Nama File : Tanggapan_BPF_Butterworth.m
% Oleh      : Yulianto
%---------------------------------------------
clear all
Fs=16000;
Bawah=3000;
Atas =5000;
% Bagian inisialisasi filter
[B,A] = BUTTER(N,[FB FA]*2/Fs);
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'c','LineWidth',3); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

%---------------------------------------------
% Nama File : Tanggapan_Stopband_Butterworth.m
% Oleh      : Yulianto
%---------------------------------------------
clear all
Fs=16000;
Bawah=3000;
Atas =5000;
% Bagian inisialisasi filter
[B,A] = BUTTER(N,[FB FA]*2/Fs,'Stop');
[H,W]=freqz(B,A,512);
plot(W*Fs/(2*pi),abs(H),'b','LineWidth',3); grid on
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');

%---------------------------------------------
% Nama File : Stopband_Butter_Diberi_Masukan.m
% Oleh      : Yulianto
%---------------------------------------------
clear all
Fs=16000;
Bawah=2000;
Atas =4000;
N=2;
% Bagian inisialisasi filter
[B,A] = BUTTER(N,[Bawah Atas]*2/Fs,'Stop');
[H,W]=freqz(B,A,512);
Fs=100;
t=(1:300)/Fs;
s1=sin(2*pi*t*20);
s2=sin(2*pi*t*7);
Data_Masukan=s1 + s2;
a=length(Data_Masukan);
Data_Keluaran=filter(B,A,Data_Masukan);
subplot(3,1,1), plot(t,Data_Masukan);
  title('Sinyal Masukan'); 
  ylabel('amplitudo');
subplot(3,1,2),plot(W*Fs/(2*pi),abs(H));
  xlabel('Frekuensi (Hz)');
  ylabel('Magnitude dari tanggap frekuensi');
subplot(3,1,3), plot(t,Data_Keluaran);
  title(' Hasil Penyaringan');
  xlabel('waktu (sekon)');  ylabel('amplitudo');

10.4 Analisis Data

Pada akhir percobaan ini, anda harus memahami dan mejelaskan beberapa hal berikut ini:
  1. Tunjukkan perbedaan tanggapan dari beberapa jenis filter tersebut di atas (elliptik, Bessel, Butterworth, dan chebyshev). Dan jelaskan implementasi dari filter tersebut?
  2. Coba anda buat rekaman suara anda atau suara yang lain, terserah berupa vokal atau ucapan yang lain, dan umpankan pada sebuah filter dengan berbagai batasan frekuensi untuk meniadakan derau yang terjadi. Amati dan jelaskan.
  3. Dari pertanyaan nomor 2, tampilkan gelombang masukan dan keluaran sebagai fungsi frekuensi dalam satu kurve tapi dengan warna yang berbea.
10.5  Tugas

  1. Rancang perangkat lunak sebuah filter eliiptik yang dapat melewatkan frekuensi antara 1000 – 4000 Hz. Tampilkan tanggapan filter tersebut. Tampilkan tanggapan filter tersebut.
  2. Rancang perangkat lunak sebuah filter Bessel yang dapat melewatkan frekuensi antara 1000 – 4000 Hz. Tampilkan tanggapan filter tersebut. Tampilkan tanggapan filter tersebut.
  3. Rancang perangkat lunak sebuah filter Butterworth yang dapat melewatkan frekuensi antara 1000 – 4000 Hz. Tampilkan tanggapan filter tersebut. Tampilkan tanggapan filter tersebut.
  4. Rancang perangkat lunak sebuah filter chebysev 1 yang dapat melewatkan frekuensi antara 1000 – 4000 Hz. Tampilkan tanggapan filter tersebut. Tampilkan tanggapan filter tersebut.
  5. Rancang perangkat lunak sebuah filter chebysev 1 yang dapat melewatkan frekuensi di bawah 1000 dan di atas 4000 Hz. Abaiakan frekuensi di atas 8000. Tampilkan tanggapan filter tersebut.
  6. Buat program yang dapat menampilkan tiga kurve sekaligus yaitu gelombang masukan, tanggapan frekuensi, dan gelombang keluaran.