simulasi komputer digital graphic equalizer tugas … · audio , video, sistem kontrol dan...
TRANSCRIPT
i
SIMULASI KOMPUTER DIGITAL GRAPHIC EQUALIZER
TUGAS AKHIR
Diajukan Untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh :
T. TIRTA SARI
NIM: 065114010
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2010
ii
COMPUTER SIMULATION DIGITAL GRAPHIC EQUALIZER
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Electrical Engineering Study Program
T.TIRTA SARI
NIM: 065114010
ELECTRICAL ENGINEERING STUDY PROGRAM
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2010
v
vi
HALAMAN PERSEMBAHAN DAN MOTTO
“Anda takkan tahu apa yang tak dapat Anda lakukan, sampai Anda
mencobanya”
“Hati yang penuh syukur, bukan saja merupakan kebajikan yang
terbesar, melainkan merupakan pula induk segala kebajikan yang lain.
GBU”
Kupersembahkan karya tulis ini kepada :Kupersembahkan karya tulis ini kepada :Kupersembahkan karya tulis ini kepada :Kupersembahkan karya tulis ini kepada :
Tuhan Yesus KristusTuhan Yesus KristusTuhan Yesus KristusTuhan Yesus Kristus terkasihterkasihterkasihterkasih,,,, BapakBapakBapakBapak dan Ibu Tercintadan Ibu Tercintadan Ibu Tercintadan Ibu Tercinta,,,,
AbangkuAbangkuAbangkuAbangku Leo SamodLeo SamodLeo SamodLeo Samodrararara, S.Farm., Apt., S.Farm., Apt., S.Farm., Apt., S.Farm., Apt. Keluarga besarku tercintaKeluarga besarku tercintaKeluarga besarku tercintaKeluarga besarku tercinta,,,,
Almamaterku Teknik ElektroAlmamaterku Teknik ElektroAlmamaterku Teknik ElektroAlmamaterku Teknik Elektro USDUSDUSDUSD
viii
INTISARI
Perkembangan teknologi telah memenuhi kegiatan dalam kehidupan, diantaranya audio, video, sistem kontrol dan sebagainya. Aplikasi software dan hardware dari perkembangan ini dapat dikembangkan untuk mempermudah dalam pemahaman mahasiswa mempelajari filter digital dengan membuat software audio digital graphic equalizer. Tugas akhir ini berisi program simulasi komputer digital graphic equalizer.
Program simulasi akan mensimulasikan tahap-tahap pembagian filter menjadi lima band, berdasarkan spesifikasi masing – masing filter. Kemudian program akan memproses sinyal suara yang diproses secara filtering. Program simulasi ini akan menampilkan lima buah band pass filter (BPF) dan program akan menghitung koefisien filter dari pemberian sinyal masukan. Perhitungan koefisien FIR filter pada program simulasi ini menggunakan metode Optimal. Koefisien filter antara masing-masing band dapat diubah-ubah sesuai keinginan pengguna.
Program simulasi komputer digital graphic equalizer memiliki kesalahan pemrograman pada proses filtering, sehingga keluarannya tidak sesuai dengan tujuan simulasi. Dengan demikian, tidak dapat dilakukan pengujian lebih lanjut untuk mengamati kinerja digital graphic equalizer. Kata kunci : filter digital, FIR filter, BPF
ix
ABSTRACT
The technology development is ready to fulfill in life activity, among other things are
audio, video, control system, etc. Software and hardware application can be developed to help student to have better understanding on digital filter field with digital graphic equalizer. This final project consists of computer simulation program of digital graphic equalizer.
Simulation program will be simulated step by step with five band filter based on each filter specification. Then, program will process audio signal with filtering process. Simulation program will show with five band pass filter (BPF) and calculate filter coefficient from the input signal. FIR filter coefficient will be calculated to simulate program using optimal method. Each filter coefficient band can be changed according to user setting
Simulation program for computer digital graphic equalizer has programming error at the filtering process, so that the output is not match with the simulation goals. Therefore, further testing can not be done to observe the digital graphic equalizer performance. Keyword: digital filter, FIR filter, BPF, transversal structure
x
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Tuhan yang Maha Esa, karena atas
Anugerah-Nya penulis akhirnya dapat menyelesaikan tugas akhir ini dengan baik
dan lancar.
Dalam proses penulisan tugas akhir ini penulis menyadari bahwa ada begitu
banyak pihak yang telah memberikan perhatian dan bantuan dengan caranya
masing-masing sehingga tugas akhir ini dapat terselesaikan. Oleh karena itu
penulis ingin mengucapkan terima kasih antara lain kepada :
1. Tuhan Yesus atas penyertaan dan bimbingannya.
2. Bapak Yosef Agung Cahyanta, S.T., M.T., selaku Dekan Fakultas Teknik.
3. Bapak Damar Wijaya, S.T., M.T., selaku pembimbing atas bimbingan,
dukungan, saran dan kesabaran bagi penulis dari awal sampai tugas akhir ini
bisa selesai.
4. Bapak A. Bayu Primawan, S.T., M.Eng., dan Dr. Linggo Sumarno., selaku
penguji yang telah bersedia memberikan kritik dan saran.
5. Seluruh dosen teknik elektro atas ilmu yang telah diberikan selama penulis
menimba ilmu di Universitas Sanata Dharma.
6. Bapak dan Mama tercinta atas semangat, doa serta dukungan secara moril
maupun materiil.
7. Abangku, Leo Samodra, S.Farm., Apt. atas dukungan dan doa yang sangat
berguna.
8. Dan seluruh pihak yang telah ambil bagian dalam proses penulisan tugas akhir
ini yang terlalu banyak jika disebutkan satu-persatu.
xii
DAFTAR ISI
Halaman
JUDUL .........................................................................................................................i
HALAMAN PERSETUJUAN ...........................................................................................iii
HALAMAN PENGESAHAN ...................................................................................iv
HALAMAN PERNYATAAN KEASLIAN KARYA ................................................v
HALAMAN PERSEMBAHAN DAN MOTTO ...............................................vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ..............................................vii
INTISARI .....................................................................................................................viii
ABSTRACT .......................................................................................................................ix
KATA PENGANTAR ................................................................................................x
DAFTAR ISI ..............................................................................................xii
DAFTAR GAMBAR ..............................................................................................xv
DAFTAR TABEL ............................................................................................xvii
DAFTAR CONTOH ...........................................................................................xviii
BAB I. PENDAHULUAN ....................................................................................1
1.1. Latar Belakang Masalah ........................................................................1
1.2. Tujuan dan Manfaat Penelitian …………………………………….2
1.3. Batasan Masalah …………………………………………………….2
1.4. Metodologi Penelitian …………………………………………….3
1.5. Sistematika Penulisan …………………………………………….4
BAB II. DASAR TEORI ……………………………………… …………….5
2.1. Filter …………………………………………………….5
2.1.1. Filter Analog …………………………………………….5
2.1.2. Filter Digital …………………………………………….5
2.2. Finite Impulse Response ........................................................................7
2.2.1. Spesifikasi FIR Filter ............................................................7
2.3. Metode Optimal ....................................................................................9
2.3.1. Konsep Dasar ..........................................................10
xiii
2.3.2. Parameter Wajib yang Digunakan dalam Program
Optimal.................................................................................11
2.3.3. Hubungan Panjang Filter, N ..................................12
2.4. Transformasi Fourier................................................................................15
2.4.1. Fourier Transform ..........................................................15
2.4.2. Discrete Fourier Transform (DFT) ..................................16
2.4.3. Fast Fourier Transform (FFT) ..................................17
BAB III. PERANCANGAN PROGRAM SIMULASI UNTUK DIGITAL GRAPHIC
EQUALIZER ..............................................................................................19
3.1. Layout Program ..................................................................................19
3.2. Algoritma Program Utama ......................................................................23
3.3. Diagram Alir Utama Program Simulasi untuk Digital Graphic
Equalizer...................................................................................................24
3.4. Proses Pemberian Input ......................................................................24
3.4.1. Subrutin Proses Pemberian Input dari Dalam dan
Pengambilan Sample Sinyal Audio ..................................25
3.4.2. Subrutin Proses Pemberian Input dari Luar dan Pengambilan
Sample Sinyal Audio ......................................................... 28
3.5. Proses Pembagian Filter menjadi Lima band dan Menghitung Koefisien
Masing-masing Filter ......................................................................28
3.5.1. Proses Menghitung Koefisien dari Lima Filter ..........32
3.6. Proses Verifikasi Hasil ......................................................................34
BAB IV. HASIL DAN PEMBAHASAN ..........................................................36
4.1 Tampilan Program …………………………………...………………...36
4.2.Kinerja Digital Graphic Equalizer ……………………………………..42
4.2.1.Proses Pemberian Sinyal Masukan dari Dalam …………......42
4.2.1.1.Proses Filtering dan Filter Output Sinyal Suara
dengan Band Sama …………………...42
4.2.1.2.Proses Filtering dan Filter Output Sinyal Suara
dengan Band yang Berbeda ……..48
4.2.2. Proses Pemberian Sinyal Masukan dari Luar
(Direkam)………………………………………………….53
xiv
4.2.2.1.Proses Filtering dan Filter Output Sinyal Suara
dengan Band Sama ………………...…...53
4.2.2.2.Proses Filtering dan Filter Output Sinyal Suara
dengan Band yang Berbeda ………...…...59
4.3.Karakteristik Band Pass Filter …………………………………......63
BAB V. PENUTUP ..............................................................................................65
5.1.Kesimpulan ..............................................................................................65
5.2.Saran ..............................................................................................65
DAFTAR PUSTAKA
LAMPIRAN
xv
DAFTAR GAMBAR
Halaman
Gambar 1.1. Algoritma Perancangan....................................................................4
Gambar 2.1. Filter digital dengan sinyal input dan output [2].............................6
Gambar 2.2. Spesifikasi tanggapan frekuensi untuk Low Pass Filter dengan
ripple yang seragam pada passband dan stopband [1]....................8
Gambar 2.3. Spesifikasi tanggapan frekuensi untuk Low Pass Filter (LPF)
dengan ripple yang tidak seragam pada passband dan stopband
[7]....…….........................................................................................9
Gambar 2.4. Filter window [1]…………….....…………………………….......10
Gambar 2.5. Filter optimal [1] ………………….…………………….......…...11
Gambar 2.6. Tanggapan Frekuensi Filter [1].....................……..………..........14
Gambar 2.7. Diagram Alir Sederhana dari Metode Optimal [1] ..........….........15
Gambar 3.1. Layout Program..............................................................................22
Gambar 3.2. Algoritma Diagram Alir Utama Program Simulasi Digital Graphic
Equalizer.....................................................................................…26
Gambar 3.3. Diagram Alir Proses Pemberian Input dari Dalam dan dari
Luar................................................................................................27
Gambar 3.4. Diagram Alir Proses Pemberian Input dari Dalam........................27
Gambar 3.5. Diagram Alir Proses Pemberian Input dari Luar............................29
Gambar 3.6. Diagram Alir Menampilkan Filter menjadi Lima Band.…….......30
Gambar 3.7. Diagram Alir Proses Pembagian Filter menjadi Lima Band.........31
Gambar 3.8. Diagram Alir Proses Perhitungan Koefisien Filter dengan
Menggunakan Metode Optimal untuk Band PassFilter ...............33
Gambar 3.9. Diagram Alir Proses Verifikasi Hasil Output.................................35
Gambar 4.1. Tampilan Halaman Pembuka Program..........………………........36
Gambar 4.2. Tampilan Program Utama..............................................................37
Gambar 4.3. Tampilan Submenu Optimal Methode...........................................38
Gambar 4.4. Tampilan Submenu Digital Graphic Equalizer Program..............39
Gambar 4.5. Tampilan Submenu Credit.............................................................40
xvi
Gambar 4.6. Pesan Kesalahan Data Masukan Belum Diberikan........................40
Gambar 4.7. Tampilan File.................................................................................40
Gambar 4.8. Pesan Kesalahan Jumlah Data Masukan Lebih Besar dari Nilai
Sesungguhnya.................................................................................41
Gambar 4.9. Messaga Box Close Aplication.......................................................41
Gambar 4.10. Tampilan Digital Graphic Equalizer dengan Band yang Sama1 ..44
Gambar 4.11. Tampilan Sinyal Suara Masukan....................................................44
Gambar 4.12. Tampilan Spektrum Sinyal Suara Masukan...................................45
Gambar 4.13. Tampilan Kurva Tanggapan Frekuensi dengan Band Sama 1.......46
Gambar 4.14. Tampilan Kurva Sinyal Suara Keluaran Setelah Proses
Filtering..........................................................................................46
Gambar 4.15. Tampilan Spektrum Sinyal Suara Keluaran Setelah Proses
Filtering..........................................................................................47
Gambar 4.16. Tampilan Digital Graphic Equalizer dengan Band Berbeda 2......49
Gambar 4.17. Tampilan Kurva Tanggapan Frekuensi dengan Band Berbeda 1...50
Gambar 4.18. Tampilan Kurva Sinyal Keluaran Suara dengan Band Berbeda.....51
Gambar 4.19. Tampilan Spektrum Sinyal Keluaran Suara dengan Band
Berbeda...........................................................................................51
Gambar 4.20. Tampilan Digital Graphic Equalizer dengan Band Sama 3..........54
Gambar 4.21. Tampilan Sinyal Suara Masukan yang Direkam............................55
Gambar 4.22. Tampilan Spektrum Sinyal Suara Masukan yang Direkam...........55
Gambar 4.23. Tampilan Kurva Tanggapan Frekuensi Band Sama 2....................56
Gambar 4.24. Tampilan Kurva Sinyal Keluaran Suara Rekaman 1......................57
Gambar 4.25. Tampilan Spektrum Sinyal Keluaran Suara Rekaman 1................57
Gambar 4.26. Tampilan Digital Graphic Equalizer dengan Band Berbeda 4......60
Gambar 4.27. Tampilan Kurva Tanggapan Frekuensi Band Berbeda 2................61
Gambar 4.28. Tampilan Kurva Sinyal Keluaran Suara Rekaman 2.....................62
Gambar 4.29. Tampilan Spektrum Sinyal Suara Keluaran Rekaman 2................62
Gambar 4.30. Tampilan Kurva untuk Band 1......................................................64
xvii
DAFTAR TABEL
Halaman
Tabel 4.1 Spesifikasi yang diharapkan pada Simulasi Program 1...............................43
Tabel 4.2 Hasil Proses Filtering 1................................................................................45
Tabel 4.3 Hasil Proses Filter Output 1.........................................................................46
Tabel 4.4 Spesifikasi yang diharapkan pada Simulasi Program 2................................48
Tabel 4.6 Hasil Proses Filtering 2................................................................................50
Tabel 4.7 Spesifikasi yang diharapkan pada Simulasi Program 3................................53
Tabel 4.8 Hasil Proses Filtering 3...............................................................................56
Tabel 4.9 Hasil Proses Filter Output 3……………………………………………….57
Tabel 4.10 Spesifikasi yang diharapkan pada Simulasi Program 4...............................59
Tabel 4.11 Hasil Proses Filtering 4...............................................................................60
Tabel 4.12 Hasil Proses Filter Output 4………………………………………………61
xviii
DAFTAR CONTOH
Halaman
Contoh 2.1 Metode optimal............................................…..…………..……………13
1
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Perkembangan dibidang elektronika telah menghasilkan penemuan-penemuan baru.
Aplikasi software dan hardware dari perkembangan ini telah memenuhi kegitan
kehidupan, diantaranya dalam audio, video, sistem kontrol dan sebagainya. Semua
kegiatan tersebut tidak dapat dipisahkan dengan masalah pengolahan sinyal. Jika masalah
sinyal dikaitkan dengan sistem yang ada, maka pengolahan sinyal bertugas untuk
menerima masukan yang ada dan selanjutnya mengolah atau memproses kemudian
mengeluarkan hasilnya.
Berdasarkan hal tersebut, sinyal audio dari equalization merupakan syarat
fungsional yang penting terhadap penggabungan nada-nada yang banyak digunakan
didalam aplikasi audio professional dan semi-professianal, contohnya di studio rekaman,
sound reinforcement in public address systems, dan broadcasting [1]. Sebuah audio
equalizer pada dasarnya merupakan sekumpulan filter dengan tanggapan frekuensi yang
dapat disesuaikan dengan keinginan pengguna.
Kerumitan dalam mempelajari filter digital sebenarnya telah diatasi dengan
pembuatan software simulasi yang berjudul Program Simulasi untuk Realisasi Struktur
Tapis FIR. Software sebelumnya menghasilkan proses filter dengan berbagai metode, yaitu
metode windowing, metode optimal, dan frequency sampling, tetapi hanya menghasilkan
satu buah filter dengan satu band, dan tidak untuk pengolahan audio. Oleh karena itu,
dibutuhkan visualisasi Digital Graphic Equalizer ini, untuk pengolahan audio dengan lima
band yang berbeda-beda serta membedakan karakteristik dari lima buah filter. Sehingga
pengguna dapat melihat dan mengetahui perbedaan dari masing-masing karakteristik filter
yang ditampilkan. Data input berupa audio yang disimpan dalam file dengan ekstensi
*.wav, dan data input audio dapat juga dari merekam (record) dengan menggunakan
microphone data input tersebut juga akan disimpan dalam file yang berekstensi *.wav.
Tampilan yang menarik dibutuhkan oleh audio software agar diminati banyak
orang. PC digunakan sebagai unit penampil dari hasil pengolahan sinyal audio. Biasanya
2
proses pengolahan dilakukan dengan software yang mempunyai Digital Graphic
Equalizer.
Software tersebut dapat dimanfaatkan sebagai media pembelajaran bagi mahasiswa
yang mengambil mata kuliah Digital Signal Processing (DSP), terutama tentang filter
digital. Untuk membantu pemahaman ini, penulis akan membuat Software Digital Graphic
Equalizer dan menambah penampil dengan karakteristik filter untuk masing – masing
Digital Graphic Equalizer.
1.2. Tujuan dan Manfaat Penelitian
Tujuan yang akan dicapai dari pembuatan software ini adalah menghasilkan
simulasi komputer digital graphic equalizer.
Manfaat yang diperoleh dari penelitian ini adalah:
1. Untuk mempermudah dosen dalam menjelaskan aplikasi filter digital dalam
pengolahan audio berdasarkan pembagian lima band pada mata kuliah DSP.
2. Untuk membantu mahasiswa dalam mempelajari mata kuliah DSP, khususnya
mengenai materi Finite Impulse Respose (FIR) filter dengan menggunakan
metode optimal.
3. Sebagai rujukan untuk pengembangan penelitian lanjutan.
1.3. Batasan Masalah
Pada penelitian ini, dilakukan batasan-batasan terhadap sistem yang akan diteliti.
Batasan yang dilakukan antara lain :
1. Program yang dipakai menggunakan MATLAB.
2. Data input merupakan file yang berekstensi *.wav.
3. Menggunakan Finite Impulse Response (FIR) filter dalam pengolahan dan pemisahan
sinyal suara, dengan metode optimal.
4. Menggunakan lima band dalam pemisahan sinyal suara yang masuk. Untuk band 1
berada pada 500-4500 Hz, band 2 terletak pada 4500-8500 Hz, band 3 terletak pada
8500-12500 Hz, band 4 terletak pada 12500-16500 Hz, dan band 5 terletak pada
16500-20500 Hz.
5. Menampilkan kontrol dan spektrum dalam grafik frekuensi.
3
6. Sinyal masukan dapat direkam oleh pengguna.
1.4. Metodologi Penelitian
Metodologi yang dilakukan pada penelitian ini adalah sebagai berikut:
1. Studi pustaka, yaitu dengan mengumpulkan dan mempelajari berbagai informasi, baik
dari buku, makalah maupun internet mengenai hal-hal yang berkaitan dengan
pemrograman MATLAB dan tampilannya dengan program MATLAB GUI sehingga
informasi yang diperoleh dapat digunakan sebagai referensi pendukung dalam
penyusunan laporan.
2. Merancang software dengan membuat algoritma, flowcart, dan implementasi. Gambar
1.1 menunjukkan algoritma perancangan program.
3. Merancang dan menuliskan program menggunakan MATLAB. Program yang akan
dibuat dengan cara mensimulasikan progam pada MATLAB, menggunakan program
yang terdapat pada PC.
4. Menetapkan variabel-variabel penelitian. Variabel-variabel yang digunakan dalam
program yang akan dibuat yaitu jumlah data dan amplitudo untuk masing-masing
band, variabel-variabel ini dapat diubah-ubah oleh pengguna.
5. Melakukan pengujian terhadap program yang dirancang. Hasil output yang telah
diperoleh yaitu lima filter yang telah dibagi-bagi berdasarkan pembagian band, akan di
mix lagi kemudian dilihat hasilnya apakah sama seperti output yang diawal atau
berbeda. Apabila hasilnya berbeda maka output filter salah dan program akan meminta
ulang input yang baru.
6. Teknik pengunpulan dan analisis data, yaitu dengan mengambil data dan menganalisis
data hasil pengujian dengan teori yang ada. Data yang diambil merupakan contoh
audio yang telah tersimpan pada file atau pun yang telah direkam. Setelah data diambil
lalu diproses menggunakan program MATLAB yang sesuai dengan teori yang akan
diterapkan dalam penelitian ini .
7. Melakukan penafsiran dan penyimpulan data terhadap pengujian yang telah dilakukan
pada hasil penelitian, yaitu merupakan kekurangan dan kelebihan dari hasil pengujian
simulasi software yang telah dilakukan.
4
1.5 Sistematika Penulisan
Sistematika penulisan pada penulisan tugas akhir ini adalah sebagai berikut :
BAB I : Berisi latar belakang masalah, tujuan dan manfaat penelitian, batasan
masalah, metodologi penelitian dan sistematika penulisan tugas akhir.
BAB II : Berisi teori-teori yang mendasari penulisan tugas akhir ini.
BAB III : Berisi penjelasan tentang konsep dan langkah-langkah perancangan
program simulasi digital graphic equalizer.
BAB IV : Berisi hasil simulasi dan pembahasan dari program simulasi untuk
digital graphic equalizer.
BAB V : Berisi kesimpulan dari hasil penelitian dan saran yang mungkin
berguna untuk pengembangan program lebih lanjut.
Gambar 1.1. Algoritma Perancangan
Sinyal input berupa sinyal audio
Filter 1
Filter 2
Filter 3
Filter 4
Filter 5
MIX
Output
Sample Circuit
5
BAB II
DASAR TEORI
Bab ini membahas tentang Finite Impulse Response (FIR) filter yang menggunakan
metode optimal, dan transformasi fourier.
2.1. Filter
Filter merupakan sebuah rangkaian yang dirancang agar mengalirkan suatu
frekuensi tertentu berdasarkan dengan band tertentu dan menghilangkan frekuensi yang
berbeda dengan band tersebut, atau filter juga dapat diartikan sebagai rangkaian yang
dapat memilih frekuensi agar dapat mengalirkan frekuensi yang diinginkan dan menahan
(couple), atau membuang (by pass) frekuensi yang lain [2]. Ada dua macam filter yang
sering digunakan, yaitu filter analog dan filter digital. Kedua sistem pada filter ini
memiliki fungsi secara umum yang sama, yang berbeda hanya terletak pada metode kerja,
dan efektivitas kerja masing – masing filter untuk mengatasi input.
2.1.1. Filter Analog
Filter analog dapat didefinisikan sebagai sebuah alat atau rangkaian atau substansi
yang meneruskan atau meloloskan arus listrik pada frekuensi-frekuensi atau jangkauan
frekuensi tertentu serta menahan atau menghalangi frekuensi-frekuensi lainnya [3].
2.1.2. Filter Digital
Filter digital adalah sistem secara selektif mengubah bentuk gelombang
karakteristik amplitudo-frekuensi dan atau karakteristik fasa-frekuensi dari suatu sinyal [1].
Filter digital sangat penting dalam Digital Signal Processing (DSP). Dibandingkan dengan
filter analog, filter digital lebih banyak digunakan dalam aplikasi, contohnya data
compression, biomedical signal processing, speech processing, image processing, data
tranmission, digital audio, dan telephone echo cancellation. Hal ini disebabkan:
1. Filter digital mempunyai karakteristik yang tidak dimiliki oleh filter analog seperti
tanggapan fase yang benar – benar linear.
6
2. Tidak seperti filter analog, kinerja filter digital tidak mengikuti perubahan terhadap
kondisi sekitar, seperti terhadap perubahan suhu. Sehingga tidak perlu dilakukan
kalibrasi.
3. Tanggapan frekuensi filter digital dapat diubah-ubah secara otomatis jika
diimplementasikan menggunakan proses terprogram.
4. Pada filter digital, tanggapan frekuensi secara otomatis dapat menyesuaikan
perubahan yang terjadi.
5. Pada filter digital data yang melalui proses filtering dan yang tidak melalui proses
filtering dapat disimpan untuk penggunaan selanjutnya.
6. Dalam penggunaannya, filter digital hanya dibatasi oleh panjang koefisien yang
digunakan.
7. Sistem kerja pada filter digital dapat diulang dari unit ke unit.
Filter digital dengan sinyal input dan output ditunjukkan pada Gambar 2.1.
x(n) y(n)
(Input sequence) Filter Digital (Output sequence)
Gambar 2.1. Filter Digital dengan Sinyal Input dan Output [2]
Menurut jumlah koefisiennya, filter dibagi menjadi dua kelompok besar, yaitu
Infinite Impulse Response (IIR) dan Finite Impulse Response (FIR). Persamaan umum
fungsi filter ditunjukkan oleh persamaan (2.1) untuk IIR dan persamaan (2.2) untuk FIR.
y hkxn k∞
y hkxn k
Dalam prakteknya, perhitungan untuk IIR tidak dapat diselesaikan karena memiliki
jumlah panjang filter yang tidak terhingga [4]. Tugas akhir ini hanya akan membahas
mengenai filter FIR. Beberapa metode perhitungan FIR yang sering digunakan antara lain
H(k),k = 0,1,... (Impulse response)
(2.1)
(2.2)
7
window, metode optimal, dan frequency sampling. Metode perhitungan filter FIR yang
digunakan pada perancangan adalah metode optimal.
2.2. Finite Impulse Response
Finite Impulse Response (FIR) memiliki berbagai kelebihan yang membuatnya
sangat berguna untuk bermacam-macam aplikasi dalam pemrosesan sinyal digital [5].
Beberapa kelebihan filter FIR adalah [6]
1. Tanggapan fase linear yang disebabkan tanggapan impuls FIR filter yang simetri.
2. Selalu lebih stabil karena semua pole berada pada origin (titik asal).
3. Dapat direalisasikan dalam bentuk piranti keras.
Struktur filter FIR juga sederhana dan mudah untuk diimplementasikan.
Kekurangan pada filter FIR adalah kebutuhan perkalian yang banyak untuk tanggapan
frekuensi yang diberikan, sehingga memberikan tunda proses yang lama bagi input untuk
mencapai output.
Karakteristik filter FIR adalah [1]:
1) Dasar filter FIR merupakan karakteristik dengan dua persamaan:
y hkxn k
Hz hkz
2) Filter FIR dapat mempunyai tanggapan fase yang benar-benar linear.
3) Filter FIR dalam pelaksanaannya sangat sederhana. Semua processors DSP memiliki
arsitektur yang disesuaikan untuk filtering FIR.
2.2.1. Spesifikasi FIR Filter
Gambar 2.2 menunjukkan spesifikasi dari tanggapan frekuensi low pass filter [1].
Berdasarkan Gambar 2.2, parameter yang terdapat didalamnya meliputi pδ (passband
(2.3)
(2.4)
ripple), sδ (stopband attenuation),
frequency), dan sF (sampling frequency)
pδ dan sδ dinyatakan
Perbedaan antara pf dan
adalah panjang filter (filter
Parameter – parameter tersebut juga digunakan pada
Pass Filter (BPF).
Gambar 2.3 memperlihatkan spesifikasi tanggapan frekuensi
dengan ripple yang tidak seragam pada
untuk merancang filter dengan metode
yang diperlukan adalah
frequency), sf (stopband edge frequency),
adalah frekuensi saat daya
passband yaitu pada minus tiga (
berkurang tujuh puluh tujuh
Jarak diantara cf dan sf disebut
Gambar 2.2 Spesifikasi tanggapan frekuensi untuk yang seragam pada
(stopband attenuation), pf (passband edge frequency), f
sampling frequency).
dinyatakan dalam desibel seperti yang ditunjukkan pada Gambar 2.2
sf disebut filter transition width. Parameter penting yang lain
filter length), N, yang menunjukkan jumlah dari
parameter tersebut juga digunakan pada High Pass Filter
Gambar 2.3 memperlihatkan spesifikasi tanggapan frekuensi Low Pass
yang tidak seragam pada passband dan stopband. Spesifikasi ini digunakan
dengan metode window. Mengacu pada Gambar 2.3, parameter
yang diperlukan adalah pδ (passband ripple), sδ (stopband attenuation),
band edge frequency), sF ( sampling frequency). Cutoff frequency
adalah frekuensi saat daya output filter berkurang sampai setengah kali daya pada
yaitu pada minus tiga (-3) desibel. Hal ini ekuivalen dengan
berkurang tujuh puluh tujuh koma tujuh persen (70.7%) dari amplitude
disebut transition width filter.
Spesifikasi tanggapan frekuensi untuk Low Pass Filter yang seragam pada passband dan stopband [1
8
sf (stopband edge
seperti yang ditunjukkan pada Gambar 2.2.
. Parameter penting yang lain
dari koefisien filter.
High Pass Filter (HPF) dan Band
Low Pass Filter (LPF)
Spesifikasi ini digunakan
. Mengacu pada Gambar 2.3, parameter
band attenuation), cf (cutoff
sampling frequency). Cutoff frequency
berkurang sampai setengah kali daya pada
Hal ini ekuivalen dengan amplitude yang
amplitude pada pass band.
Low Pass Filter dengan ripple 1]
9
2.3. Metode Optimal
Metode optimal untuk perhitungan koefisien filter FIR sangat powerful, flexible,
dan sangat mudah untuk diaplikasikan. Alasan ini yang membuat metode optimal menjadi
pilihan pertama dari banyak aplikasi filter FIR [1].
Dalam merancang tapis FIR dengan metode perancangan tapis optimal, terdapat
suatu program yang sudah umum dikenal, yaitu program Parks-McClellan yang
menghasilkan tapis optimal. Optimal dapat didefinisikan dalam berbagai cara. Program
Parks-McClellan menggunakan algoritma pertukaran Remez (remez exchange algorithm)
untuk mengoptimasi rancangan tapis dengan memilih tanggapan impuls dari panjang yang
diberikan (N), yang meminimalkan riak puncak pada passband dan stopband [8]. Dengan
meminimalkan puncak atau riak maksimum, sama artinya dengan membuat semua puncak
lokal pada riak tersebut bernilai sama satu dengan yang lainnya. Pada umumnya tapis jenis
ini disebut tapis riak-seragam (equiripple) karena puncak lokalnya memiliki deviasi yang
sama terhadap tanggapan tapis yang diinginkan. Karena deviasi riak maksimum
diminimalkan dalam prosedur optimisasi ini, maka tapis jenis ini disebut juga tapis
minimax (meminimalkan riak maksimum).
Gambar 2.3. Spesifikasi tanggapan frekuensi untuk Low Pass Filter (LPF) dengan ripple yang tidak seragam pada passband dan stopband [7]
2.3.1. Konsep Dasar
Pada metode window
menemukan pendekatan untuk tanggapan yang tepat dari frekuensi ideal
puncak (peak rippple) pada
menurun jika menjauhi bandedge
menunjukkan karakter filter
pada passband dan stopbaand
tanggapan frekuensi (frequency response
Pada pass band, tanggapan berosilasi
pada stop band ripple terjadi a
dapat ditunjukan sebagai fungsi
dengan, HD merupakan respon yang diinginkan dan W(
memungkinkan terjadinya
menentukan koefisien filter
[E(ω)] diminimalkan pada
dengan persamaan:
window proses menghitung koefisien filter sebenarnya adalah masalah
menemukan pendekatan untuk tanggapan yang tepat dari frekuensi ideal
pada metode window terjadi didekat bandedge
bandedge. Gambar 2.4 menunjukkan Filter Window
filter optimal. Dari Gambar 2.5 terlihat bahwa
stopbaand. Dengan filter optimal, pendekatan yang
frequency response) yang diinginkan dapat dilakukan
tanggapan berosilasi antara dan
terjadi antara 0 dan . Perbedaan antara filter id
dapat ditunjukan sebagai fungsi error [1]:
respon yang diinginkan dan W(ω) merupakan fungsi bobot yang
terjadinya error yang dapat ditetukan. Pada metode optimal,
filter h(n), sedemikian sehingga nilai maksimum dari
diminimalkan pada passband dan stopband. Secara matematis dapat dinyatakan
min[max|E(ω)]
Gambar 2.4. Filter Window [1]
10
sebenarnya adalah masalah
menemukan pendekatan untuk tanggapan yang tepat dari frekuensi ideal [1]. Ripple
bandedge dan ripple semakin
Filter Window. Gambar 2.5
optimal. Dari Gambar 2.5 terlihat bahwa ripple lebih merata
optimal, pendekatan yang lebih baik untuk
lakukan.
. Tanggapan filter
ideal dan tanggapan
) merupakan fungsi bobot yang
. Pada metode optimal, tujuan untuk
nilai maksimum dari error bobot
. Secara matematis dapat dinyatakan
(2.5)
(2.6)
2.3.2. Parameter Wajib
Pada design program, pengguna harus memberikan se
yang digambarkan filter. Parameter
1. N, merupakan jumlah koefisien dari
2. Jtype , parameter ini merupakan spesifikasi tipe dari
Jtype = satu (1, multiple passband/stopband filters
bandpass, dan bandstop
(3, spesifikasi dari transformer Hilbert)
3. W(ω) , parameter ini merupakan f
relatif penting untuk masing
ripple passband dan atenuasi
masing-masing band.
4. Ngrid, parameter ini
dari points frekuensi
frekuensi diperiksa untuk
(optimum in the sense that the maximum amplitude of the error
pada passband(s), stopband(s)
pada umumnya, nilai
Wajib yang Digunakan dalam Program
program, pengguna harus memberikan sejumlah parameter dari
. Parameter – parameter yang digunakan, yaitu [1]
umlah koefisien dari filter, panjang filter.
arameter ini merupakan spesifikasi tipe dari filter. Ada tiga tipe dari
multiple passband/stopband filters, termasuk
bandstop filters), Jtype = dua (2, specifies differentiator
spesifikasi dari transformer Hilbert)
, parameter ini merupakan fungsi bobot (weight). Spesifikasi parameter ini
relatif penting untuk masing-masing band. Efek ini memungkinkan
dan atenuasi stopband. Bobot merupakan penetapan
.
arameter ini menentukan ketebalan garis (grid density).
frekuensi, selama proses pencarian frekuensi ekstern
frekuensi diperiksa untuk mengetahui bahwa kondisi optimal telah dipenuhi
optimum in the sense that the maximum amplitude of the error
stopband(s)). Nilai default untuk Ngrid yaitu 16.
, nilai Ngrid sebesar 16, 32 atau 64.
Gambar 2.5. Filter Optimal [1]
11
Optimal
parameter dari input
[1]:
. Ada tiga tipe dari filter :
, termasuk lowpass, highpass,
specifies differentiator), Jtype = tiga
. Spesifikasi parameter ini
memungkinkan trade-off antara
merupakan penetapan terhadap
). Merupakan jumlah
eksternal, tanggapan
kondisi optimal telah dipenuhi
optimum in the sense that the maximum amplitude of the error, |E(ω)|, diperkecil
yaitu 16. Untuk design
12
5. Edge , parameter ini menentukan frekuensi bandedge (terdiri dari, lower dan upper
frekuensi bandedge filter). Semua frekuensi harus dimasukkan untuk diubah dalam
bentuk ternormalisasi. Edge pertama secara normal bernilai 0 dan terakhir bernilai
0,5 (sesuai dengan setengah dari frekuensi sampling). Dapat didukung maksimum
sampai 10 band (passband dan stopband).
2.3.3. Hubungan Panjang Filter , N
Pada praktisnya, jumlah koefisien filter itu tidak diketahui. Nilai ini menggunakan
hubungan seperti dibawah ini [1]:
a. Lowpass Filter (Herman et al., 1973)
∞,∆ !, "#∆$ % 1
dengan ∆F merupakan panjang dari trantition band yang ternormalisasi untuk frekuensi
sampling.
'∞ !, "# ()* " +,()* !#- % ,-()* ! % ,./ % 0,1()* !#- % ,3()* ! % ,45
!, "# 11 .012 17 % 0.512 440()* ! ()* "5
a1 = 5,309 x 10-3 ; a2 = 7,114 x 10-2
a3 = - 4,761 x 10-1; a4 = - 2,66 x 10-3
a5 = - 5,941 x 10-1; a6 = - 4,278 x 10-1
b. Bandpass Filter (Mitzer and Liu, 1979)
<∞,∆ % * !, "#∆$ % 1
dengan,
=∞ !, "# ()* " +>()* !#- % >-()* ! % >./ % 0>1()* !#- % >3()* ! % >45
(2.7)
(2.8)
(2.9)
(2.10a)
(2.10b)
(2.10c)
(2.11)
(2.12)
13
* !, "# 14,6()* @
A
b1 = 5,309 x 10-3; b2 = 7,114 x 10-2
b3 = - 4,761 x 10-1; b4 = - 2,66 x 10-3
b5 = - 5,941 x 10-1; b6 = - 4,278 x 10-1
dengan ∆F adalah lebar transisi yang ternormalisasi untuk frekuensi sampling.
Diagram alir sederhana untuk perancangan filter dengan metode optimal ditunjukan
pada Gambar 2.6.
Contoh 2.1 [1]
(2.13)
(2.14a) (2.14b)
(2.14c)
Contoh 2.1
Bandpass filter memiliki spesifikasi sebagai berikut:
Passband 900 – 1100Hz
Passband ripple < 0,87 dB
Stopband attenuation > 30 dB
Penyelesaian :
Sampling frequency 15 kHz
Transition frequency 450 Hz
Gunakan metode optimal untuk menentukan koefisien, dan gambar plot spectrum
filter!
Dari spesifikasi, filter mempunyai 3 band: lower stopband (0 – 450 Hz), passband
(900 – 1100 Hz), dan upper stopband (1550 – 7500 Hz). Menggunakan program
rancangan optimal frekuensi bandedge harus dinormalisasikan, yang diekspresikan
dari frekuensi sampling, sebagai berikut:
450 450/15000 = 0,03
900 900/15000 = 0,06
1100 1100/15000 = 0,0733
1550 1550/15000 = 0,1033
7500 7500/15000 = 0,5
Tiga band yang telah ternormalisasi yaitu (0 - 0,03), (0,06 – 0,0733), (0,1033 – 0,5)
Kemudian dihitung deviasi dari passband ripple dan stopband attenuation:
14
Contoh 2.1 (lanjutan) [1]
Contoh 2.1. (Lanjutan)
0,87 dB ripple : 20 log(1+δp) δp = 0,10535
30 dB attenuation :- 20dB(δs) δs = 0.031623
Rasio dari δp dan δs : 10/3 = 3,33
. "BC! DEFG HIJKLB
!E"" DEFG HIJKLB
Panjang filter, N = 41
Tipe filter, Jtype = 1
Weight, W(ω) = 10, 3, 10
Ngrid = 32
Frekuensi edge = 0, 0,03, 0,06, 0,0733, 0,1033, 0,5
Gambar 2.6. Tanggapan Frekuensi Filter [1].
15
2.4. Transformasi Fourier
Agar sinyal masukan dalam domain waktu dapat diubah menjadi spektrum
frekuensi, maka menggunakan Fast Fourier Transform (FFT).
2.4.1. Fourier Transform
Untuk fungsi kontinyu dari satu variable )(tf , transformasi Fourier )( ωjF akan
didefinisikan sebagai [1]:
∫∞
∞−
−== dtetfjFd
d tjωωπω
ω)()(
2/)(
(2.15)
Dan inverse dari transformasi Fourier sebagai
Menentukan masukan program dari spesifikasi tapis yang diinginkan
Menentukan dugaan awal L + 2 frekuensi ekstrim
Menghitung ( )ωε dan L + 2
frekuensi ekstrim terbesar
Menghitung koefisien tanggapan impuls
Frekuensi ekstrim berubah?
tidak
ya
Gambar 2.7. Diagram Alir Sederhana dari Metode Optimal [1].
16
∫∞
∞−
= dfejFtf tjωω)()( (2.16)
Dengan j adalah akar dari -1 dan e adalah bilangan eksponensial
)sin()cos( φφφ jej += (2.17)
2.4.2. Discrete Fourier Transform (DFT)
Data yang ditransformasikan merupakan diskrit dan tidak periodis. DFT dari
deretan )(nTx dengan n adalah jumlah sample dan T adalah interval sampling untuk
menghasilkan deret sample sebanyak N digambarkan sebagai deretan nilai kompleks
)( ΩkX pada kawasan frekuensi, dengan Ω adalah frekuensi harmonik [1]. )( ΩkX pada
umumnya mempunyai komponen real dan imajiner sehingga untuk harmonik ke-k
diberikan oleh rumus
)()()( kjIkRkX += (2.18)
Jadi N data real (dalam kawasan waktu) ditransformasikan menjadi N
data kompleks (dalam kawasan frekuensi). Nilai DFT, )(kX , diberikan oleh rumus
∑−
=
Ω−=1
0
)()(N
n
nTjkenTxkX ;k =0, 1, …., 1−N (2.19)
dengan k adalah jumlah harmonik dari komponen transformasi. Dan inverse dari
transformasi DFT didefinisikan sebagai
∑−
=
Ω=1
0
)(1
)(N
k
nTjkekXN
nTX ;n=0,1, …, 1−N (2.20)
17
2.4.3. Fast Fourier Transform (FFT)
Algoritma yang lebih cepat telah dikembangkan oleh Cooley dan Tukey sekitar
tahun 1965 yang disebut FFT (Fast Fourier Transform). Ketika diterapkan dalam kawasan
waktu, algoritma ditunjukkan sebagai Decimation in Time (DIT) FFT. Decimation
kemudian menunjuk ke pengurangan yang signifikan dalam jumlah perhitungan yang
diterapkan pada kawasan waktu. Pengurangan perhitungan yang terjadi bisa mengenai
NN
N 22 log
2− kali. Dari persamaan 2.12 dapat ditulis sebagai
∑−
=
−=1
0
/21 )(
N
n
NnkjnexkX π ; k = 0, …., 1−N (2.21)
Jika weighting/twiddle factor
NjN eW /2π−= (2.22)
maka persamaan 2.14 menjadi
knN
N
n
nWxkX ∑−
=
=1
0
1 )( ;k = 0, …., 1−N (2.23)
Beberapa relasi NW adalah
K
NNk
N
NN
NjN
WW
WW
eW
−==
=
+
−
)2/(
2/2
/2π
(2.24)
Untuk menggunakan persamaan 2.16 di atas, urutan data dapat dibagi menjadi dua
urutan yang sama panjang, yakni data nomor genap dan data nomor ganjil. Agar urutan
menjadi sama panjang, maka data harus berjumlah genap, jika urutan data ganjil, maka
diperlukan penambahan nol. )(1 kX dapat ditulis dalam 2 DFT yaitu )(11 kX untuk deretan
18
data genap dan )(12 kX untuk deretan data ganjil. N -point DFT diubah menjadi 2 DFT
masing-masing 2/N . Proses berulang sampai )(1 kX terbagi menjadi 2/N DFT masing-
masing 2 point. Persamaan 2.16 dapat ditulis menjadi
∑ ∑
∑∑
−
=
−
=+
−
=
++
−
=
+=
+=
12/
0
12/
0
212
22
12/
0
)12(12
12/
0
221
sequence oddsequenceeven
)(
N
n
N
n
nkNn
kN
nkNn
N
n
knNn
N
n
nkNn
WxWWx
WxWxkX44 344 2143421
; 1,.....,0 −= Nk (2.25)
Menggunakan persamaan 2.17, nkN
nkN WW 2/2 = , sehingga persamaan 2.18 di atas menjadi
∑ ∑−
=
−=
=++=
12/
0
12/
02/122/2)(
N
n
Nn
n
nkNn
kN
nkNn WxWWxkX ; 1,...,0 −= Nk (2.26)
Persamaan 2.19 dapat disederhanakan menjadi
)()()( 12111 kXWkXkX kN+= ; 1,...,0 −= Nk (2.27)
19
BAB III
PERANCANGAN PROGRAM SIMULASI UNTUK
DIGITAL GRAPHIC EQUALIZER
Bab ini akan membahas perancangan dan pembuatan diagram alir software simulasi
dari penelitian yang akan dilakukan. Software simulasi ini dibuat menggunakan program
aplikasi pada MATLAB®.
3.1. Layout Program
Layout program merupakan rancangan secara visual untuk implementasi program
simulasi untuk Digital Graphic Equalizer dari penelitian yang dibuat. Layout program
ditumjukkan pada Gambar 3.1. Layout pada Gambar 3.1 menggunakan beberapa
komponen visual yang disediakan oleh program aplikasi MATLAB ® untuk menampilkan
proses simulasi.
Komponen-komponen visual tersebut adalah :
a. Uipanel
Uipanel digunakan untuk sebagai tempat meletakkan beberapa komponen,
diantaranya yaitu axis, static text, dan push button.
b. Menu Bar
Menu bar digunakan sebagai tempat untuk menampilkan toolbar. Pada Gambar 3.10
terdapat beberapa toolbar, yaitu file, equalizing, dan help.
c. Figure
Figure adalah objek yang digunakan sebagai tempat untuk merancang program
simulasi dan dapat diisi dengan komponen. Figure disebut sebagai layout area.
d. Static text
Static text adalah area yang digunakan sebagai tempat untuk menampilkan text
informasi. Text informasi pada static text tidak dapat diubah oleh pengguna. Pada program
simulasi ini, static text digunakan untuk menampilkan hasil keluaran dari proses yang
dilakukan oleh pengguna.
20
e. Axes
Axes digunakan untuk menampilkan grafik atau kurva. Pada program simulasi ini
axes digunakan sebagai tempat untuk menampilkan masukan sinyal suara, menampilkan
kurva tanggapan frekuensi dari masing-masing band pass filter menjadi lima band, dan
menampilkan grafik sinyal suara yang telah mengalami proses filter untuk Digital Graphic
Equalizer.
f. Push button
Push button merupakan tombol yang digunakan untuk mengeksekusi sebuah
perintah. Pada Gambar 3.10 terdapat beberapa tombol, yaitu
1. Tombol spec in dan spec out digunakan untuk mengubah sinyal suara dari time
domain menjadi frequency domain.
2. Tombol grid digunakan untuk menampilkan grid pada axes.
3. Tombol ’+’ digunakan untuk membesar (zoom) daerah atau wilayah tanggapan
frekuensi pada point yang diinginkan.
4. Tombol ’-’ digunakan untuk mengembalikan daerah atau wilayah ke ukuran asal
setelah diperbesar.
5. Tombol cursor digunakan untuk menunjuk daerah atau wilayah yang diinginkan.
6. Tombol move digunakan untuk menggeser daerah atau wilayah pada gambar.
7. Tombol legend digunakan untuk mengetahui apabila pada satu grafik terdapat
bermacam-macam line plot.
Layout program tersusun atas 2 bagian utama yaitu:
1. Bagian Input
Bagian input berisi beberapa komponen utama yang diperlukan dalam
perancangan ini, yang terdiri dari dua buah menu bar, dua buah static text, dua
push button, dan lima buah slider. Pada menu bar terdiri dari file, dan help. File
digunakan untuk membantu pengguna, dengan bantuan fungsi ini pengguna
dapat membuka atau mencari data yang telah disimpan pada file yang
berekstensi *.wav, dapat juga untuk menyimpan data dan menutup atau
mengakhiri program. Menu yang lain yaitu help berfungsi untuk membantu
pengguna dalam menggunakan simulasi digital graphic equalizer ini, help
terdiri dari metode optimal berfungsi agar pengguna mengetahui tentang
metode optimal, cara penggunaan program dapat membantu pengguna untuk
menggunakan program simulasi ini sehingga saat pengguna mengalami
21
kesulitan bantuan ini dapat digunakan, pembuat program sebagai informasi
tentang pembuat simulasi, dan Digital Graphic Equalizer Program.
Pada bagian input ini juga terdapat static text, ada dua static text pada bagian
input yaitu static text untuk menampilkan file suara yang berekstensi *.wav dan
menampilkan panjang data file suara yang diberikan. Terdapat dua push button
yaitu play input dan record. Tombol play input digunakan pengguna untuk
meainkan data file masukan dan record dapat digunakan pengguna untuk
merekam suara. Pada bagian input juga terdapat lima slider yang dapat
digunakan pengguna untuk mengubah-ubah data dan nilai dari band pass filter
dari karakteristik filter. Pada bagian input ini juga terdapat lima buah push
button, slider, dan lima buah static text. Lima buah slider ini digunakan untuk
memberikan masukan dan nilai diberikan pada masukan akan tertampilpada
static text, untuk masing-masing slider. Sedangkan lima buah push button
memiliki fungsinya masing-masing, untuk push button dengan nama Band 1
akan menampilkan karakteristik band pass filter untuk band 1. Hal yang sama
terdapat juga pada empat static text dengan nama Band 2, Band 3, Band 4, dan
Band 5, yang bila ditekan akan menampilkan karakteristik masing-masing band
pass filter.
2. Bagian Proses
Bagian proses berisi satu buah menu bar. Pada bagian menu bar terdiri dari tiga
bagian yaitu proses filtering, filter output dan reset. Pada proses filtering dapat
digunakan oleh pengguna untuk menjalankan program agar data masukan dapat
diproses menjadi lima band. Sedangkan proses filter output dapat dilakukan
setelah proses pertama dijalankan, karena proses ini berfungsi untuk merubah
domain frekuensi menjadi data dalam domain waktu. Bagian proses terakhir
yaitu bagian reset, bagian berfungsi apabila pengguna akan membuat tampilan
menjadi seperti semula dalam yaitu membuat menjadi seperti tampilan awal
program.
Terdapat juga proses spec in dan spec out pada bagian spectrum input dan
spectrum output. Proses ini digunakan untuk megubah sinyal suara menjadi
spectrum frekuensi. Untuk tombol spec in digunakan untuk mengubah sinyal
suara masukan dalam domain waktu menjadi sinyal dalam spektrum frekuensi.
22
Sedangkan, tombol spec out digunakan untuk mengubah sinyal suara keluaran
dalam domain waktu menjadi sinyal dalam spektrum frekuensi.
3. Hasil Output
Bagian keluaran terdiri dari tiga bagian utama yaitu, bagian pertama output
sinyal suara awal, disini merupakan keluaran grafik sinyal suara apabila
mendapat masukkan dari dalam ataupun sinyal suara yang direkam oleh
pengguna. Bagian kedua merupakan output tanggapan frekuensi yang terdiri
dari lima band berupa sehingga pada bagian ini akan menunjukkan perbedaan
dari masing – masing filter berdasarkan pembagian band. Bagian ketiga
merupakan output sinyal suara yang telah mengalami proses filter.
4. Tampilan Bantuan
2 1
1
1
3 3
3
3
3 3
3
4
4
2
2 4
4
Menu Bar Axes Uipanel Figure
Push button Static Text
Gambar 3.1. Layout Program
23
Tampilan bantuan ini berisi enam buah push button yang terdiri dari tombol
grid berfungsi untuk menampilkan grid (memberikan garis) pada axes, move
berfungsi untuk menggeser/menggerakan daerah atau wilayah pada gambar,
cursor untuk menunjuk daerah atau wilayah yang diinginkan, tanda ’+’
berfungsi untuk membesar (zoom) daerah atau wilayah tanggapan frekuensi
pada point yang diinginkan, dan tanda ’-’ berfungsi untuk untuk
mengembalikan daerah atau wilayah ke ukuran asal setelah diperbesar.
Terakhir terdapat tombol legend yang berfungsi untuk menunjukkan bentuk
kurva yang berbeda yang tertampil pada axes. Enam buah push button ini
berfungsi untuk mendukung penampilan pada layout program digital graphic
equalizer. Apabila terjadi kesalahan pada hasil output maka pesan kesalahan
akan muncul yang sering disebut message box. Message box ini akan muncul
saat pengguna kurang dalam memberikan masukkan, dan apabila pengguna
salah memasukan nilai yang seharusnya..
3.2. Algoritma Program Utama
Algoritma perancangan secara umum untuk Simulasi Komputer Digital Graphic
Equalizer dapat dilihat pada Gambar 3.2.
Seperti terlihat pada Gambar 3.2, pengguna terlebih dahulu memberi input berupa
voice record (suara) yang akan diuji dan diambil sample sinyal suara. Pemberian input
tersebut dapat dilakukan dengan dua cara, yaitu cara pertama dilakukan dengan langsung
memanggil pada MATLAB, dan cara kedua dengan memberi input suara dari luar. Setelah
memperoleh sample sinyal suara, dilakukan pembagian band terhadap sinyal suara
menjadi lima filter dengan band yang berbeda. Terdapat lima band dengan pembagian
frekuensi cutoff yang berbeda – beda. Berdasarkan pembagian band yang telah dilakukan
akan dihitung koefisien dari lima filter. Perhitungan koefisien dari masing-masing filter
menggunakan FIR filter dengan metode optimal, dan hasil dari perhitungan koefisien
masing – masing filter menggunakan program software MATLAB. Kemudian akan diolah
menggunakan program yang akan dirancang. Hasil akhir dari perancangan ini akan
menampilkan output sinyal suara yang belum mengalami proses filter, output sinyal suara
24
yang telah mengalami proses filter, dan menampilkan output dari karakteristik filter untuk
lima filter dengan lima band yang berbeda-beda pada Digital Graphic Equalizer.
3.3. Diagram Alir Utama Program Simulasi untuk Digital Graphic
Equalizer
Perancangan program simulasi untuk Digital Graphic Equalizer ini terdiri dari
beberapa proses:
1. Proses pemberian input.
2. Proses pembagian band menjadi lima filter dan menampilkan grafik tanggapan
frekuensi.
3. Menghitung koefisien dari lima filter sesuai band masing – masing filter.
4. Proses verifikasi hasil.
5. Menampilkan output yang telah melalui proses filter, dan menampilkan karakteristik
filter sesuai dengan masing – masing band.
3.4. Proses Pemberian Input
Input dari pengguna berupa sinyal suara yang dapat dipanggil dari MATLAB® dan
dapat dari luar dengan menggunakan bantuan headphone atau direkam, input yang
diberikan masih dalam domain waktu dan harus diubah terlebih dahulu kedalam domain
frekuensi. Hal ini dilakukan agar dapat mengetahui sinyal suara yang diberikan berada
direntang frekuensi berapa, yaitu frekuensi rendah atau frekuensi tinggi serta terletak pada
rentang frekuensi yang diharapkan. Data untuk input adalah file yang berekstensi *.wav.
Proses pemberian input ditunjukkan pada Gambar 3.3.
Input yang berupa sinyal suara, akan diproses pada MATLAB untuk mendapatkan
frekuensi sample (fs) yang besarnya dua kali frekuensi maksimal (fm) sinyal tersebut.
Secara matematis dapat ditunjukkan dalam persamaan 3.1, yaitu
2 (3.1)
25
Input yang berasal dari dalam, merupakan pengambilan file yang telah disimpan,
dalam hal ini karena menggunakan program MATLAB maka file yang tersimpan telah
dalam ekstensi *.wav. Untuk pemberian input apabila dilakukan dari luar yaitu direkam,
maka pengguna melakukan pengambilan suara dengan menggunakan bantuan headphone
atau dapat juga secara langsung. Setelah pengguna merekam suaranya maka, akan
ditampilkan sinyal suara dari pengguna.
Dalam pemberian data input selain pengguna memberikan masukkan berupa sinyal
suara, terdapat juga variabel lain yang harus diberikan oleh pengguna saat menjalankan
program simulasi ini. Variabel lain yang harus diberikan oleh pengguna berupa jumlah
data masukkan dan jumlah data keluaran, dalam hal ini jumlah data yang diberikan berupa
bilangan radix 2 atau integer power of 2. Pemberian data sebesar radix 2 atau integer
power of 2, ini dikarenakan sebelum program melalui proses filtering terlebih dahulu
program melalui proses mengubah sinyal masukkan menjadi spectrum dalam frekuensi
sehingga dalam hal ini data yang diberikan (N-point) adalah integer power of 2. Untuk
mengubah sinyal suara masukkan menggunakan perhitungan FFT (The Fast Fourier
Transform), FFT N memberikan integer power of 2, bahwa N = 2d dengan d adalah sebgai
integer.
3.4.1. Subrutin Proses Pemberian Input dari Dalam dan Pengambilan
Sample Sinyal Suara
Gambar 3.4 menunjukkan proses pemberian input dari dalam, proses ini mengabil
input yang telah tersedia dalam file yang berekstensi *.wav. Sinyal suara ini telah diproses
dan diambil sampling suaranya. Proses pengambilan sampling yang dapat dihitung dengan
menggunakan persamaan 3.1. Setelah mendapatkan sample sinyal suara, maka akan
diperoleh grafik dalam domain frekuensi. Kemudian akan ditampilkan dalam graphic
equalizer yang telah membentuk grafik dengan domain frekuensi. Untuk pemberian input,
selain dari dalam apabila pengguna ingin mencoba melakukan proses filter terhadap suara
pengguna, maka pengguna dapat memberi input dari luar prosesnya dapat dilakukan seperti
yang ditunjukkan pada Gambar 3.5.
26
Menampilkan output sinyal keluaran yang telah mengalami proses filter berupa sinyal
suara dalam domain waktu
Memberi input berupa sinyal suara dan mengambil sample
sinyal suara dari terminal input
Menampilkan karakteristik filter dalam lima band pada Digital Graphic Equalizer
Membagi sinyal menjadi lima band dan melakukan perhitungan koefisien filter untuk lima filter dengan lima band yang berbeda, berdasarkan domain frekuensi
Mengolah sinyal suara masukan kedalam lima filter dengan lima
band yang berbeda
Mengubah sinyal suara masukan menjadi spectrum frekuensi secara FFT
Menampilkan output sinyal suara keluaran dalam spectrum frekuensi secara FFT
Gambar 3.2. Algoritma Diagram Alir Utama Program Simulasi Digital Graphic Equalizer
27
Gambar 3.4. Diagram Alir Proses Pemberian Input dari Dalam.
Mulai
Tampilkan grafik sinyal suara dalam frequency domain
Selesai
Mengubah sinyal suara dalam domain frekuensi
Sampling sinyal dengan fs = 2 x fm
Ambil file berektensi *wav?
ya
tidak
Gambar 3.3. Diagram Alir Proses Pemberian Input dari Dalam dan dari Luar .
Mulai
Selesai
Pilih masukkan?
Input dari dalam
Input dari luar
ya
tidak
28
3.4.2 Subrutin Proses Pemberian Input dari Luar dan Pengambilan
Sample Sinyal Suara
Gambar 3.5 menunjukkan proses pemberian input dari luar, proses ini dilakukan
dengan mengambil suara pengguna dari luar dengan bantuan headphone. Setelah mendapat
masukkan sinyal akan ditampilkan pada output graphic equalizer, tetapi grafik sinyal suara
masih dalam domain waktu sehingga harus diubah menjad grafik berdasarkan domain
frekuensi. Melalui proses ini akan diambil sample sinyal suara, proses dilakukan sama
seperti saat pengambilan sample dengan input dari dalam. Pengambilan sample ini yang
berasal dari input luar ini, dilakukan untuk mengubah sinyal suara dalam domain waktu
menjadi sinyal suara dalam domain frekuensi. Sampling sinyal suara dilakukan dengan
menggunakan persamaan 3.1.
Sinyal suara yang telah mengalami proses sampling kemudian akan ditampilkan
dalam graphic equalizer, sinyal suara ini telah diproses dan dalam bentuk grafik domain
frekuensi. Pengguna dapat menyimpan hasil rekaman suara (audio) dalam file yang
berekstensi *.wav, tetapi pengguna juga dapat menghapus rekaman suara apabila pengguna
tidak ingin menyimpan file. Apabila pengguna tidak memasukkan suara, atau tidak
memberi input dari luar maka pengguna dapat mengambil sample sinyal suara dari dalam.
3.5 Proses Pembagian Filter menjadi Lima Band dan Menghitung
Koefisien Masing – Masing Filter
Gambar 3.6 menunjukan diagram alir untuk menampilkan filter menjadi lima band
secara umum. Sedangkan untuk pembagian filter menjadi lima band dan menampilkannya
dapat dilihat pada Gambar 3.7 proses pembagian menjadi lima band dilakukan dengan
input berupa sample sinyal suara yang telah diperoleh, kemudian akan menampilkan hasil
berupa lima filter sesuai dengan band masing-masing berdasarkan frekuensi cutoff yang
telah ditentukan.
29
Gambar 3.5. Diagram Alir Proses Pemberian Input dari Luar.
Mulai
tidak
ya
Selesai
Masukan suara?
Tampilkan sinyal suara, masih dalam domain waktu
Mengambil sample dari sinyal suara, dengan syarat
fs = 2 x fm
Tampilkan sample suara yang telah dalam domain
frekuensi
Input = sinyal suara
Simpan hasil?
Simpan (save) hasil rekaman suara, dalam file
berekstensi *.wav
Rekam suara lagi
ya
tidak
30
Gambar 3.6. Diagram Alir Menampilkan Filter menjadi Lima Band
Mulai
Sample sinyal suara
Selesai
Membagi sinyal jadi lima band
Mengolah sinyal dengan filter sesuai band masing -
masing
Menampilkan hasil olahan filter
31
Gambar 3.7. Diagram Alir Proses Pembagian Filter menjadi Lima Band
Mulai
Ambil sample band
Selesai
ya
ya
ya
ya
ya
tidak
tidak
tidak
tidak
Band 1,0.5-4.5 kHz?
Band 2, 4.5-8.5 kHz?
Filter 1
Filter 2
Filter 3
Filter 4
Filter 5
Tampilkan filter sesuai dengan band masing-masing
tidak
Band 3, 8.5-12.5 kHz?
Band 4, 12.5-16.5 kHz?
Band 5, 16.5-20.5 kHz?
32
3.5.1. Proses Menghitung Koefisien dari Lima Filter
Diagram alir proses perhitungan koefisien filter dengan menggunakan metode
optimal untuk masing-masing filter ditunjukkan pada Gambar 3.8. Masukan yang
diperlukan dalam fungsi ini adalah passband edge frequency 1 (fp1), passband edge
frequency 2 (fp2), transition width (tw), passband ripple (Pr), stopband attenuation (Sa),
dan frequency sampling (fs) .
Pertama-tama program mengubah nilai Pr dan Sa yang memiliki satuan desibel
(dB) menjadi satuan biasa, yaitu Ap dan As. Kemudian program menghitung band edge
frequencies (F), tanggapan magnitude ideal untuk tiap band (M) dan ripple tiap band (dev).
Selanjutnya panjang filter (N) dihitung, dan terakhir koefisien filter (h) dihitung.
Filter bandpass memiliki tiga band frekuensi, band pertama berada pada frekuensi
0 sampai passband edge frequency 1 dikurang transition width, band kedua berada pada
passband edge frequency 1 sampai passband edge frequency 2, dan band ketiga berada
setelah passband edge frequency 2 ditambah transition width. Band edge frequencies untuk
filter lowpass adalah fp1 − tw, fp1, fp2 dan fp2 + tw. Tanggapan magnitude ideal untuk band
pertama adalah 0, untuk band kedua adalah 1 dan untuk band ketiga adalah 0. Ripple untuk
band pertama adalah As, ripple untuk band kedua adalah Ap dan ripple untuk band ketiga
adalah As.
Untuk masing – masing perhitungan koefisien filter ini memiliki diagram alir yang
sama untuk lima band, yang berbeda hanya terletak pada frekuensi centre (fc) masing –
masing filter. Sehingga, menyebabkan passband edge frequency 1 (fp1), passband edge
frequency 2 (fp2), transition width (tw), passband ripple (Pr), stopband attenuation (Sa),
dan frequency sampling (fs) berbeda juga untuk masing – masing filter.
Gambar 3.8 merupakan diagram alir secara umum untuk masing-masing filter.
Sehingga, berdasarkan hal tersebut fc untuk band pertama sebesar 2.5 kHz terletak pada
filter 1 berada antara frekuensi 500 – 4.5 kHz, untuk band kedua fc sebesar 6.5 kHz terletak
pada filter 2 berada antara frekuensi 4.5 kHz – 8.5 kHz, untuk band ketiga fc sebesar 10.5
kHz terletak pada filter 3 berada antara frekuensi 8.5 kHz – 12.5 kHz, untuk band kempat
fc sebesar 14.5 kHz terletak pada filter 4 antara frekuensi 12.5 kHz – 16.5 kHz, dan untuk
band kelima fc sebesar 18.5 kHz terletak pada filter 5 antara frekuensi 16.5 kHz – 20.5
kHz.
33
Untuk nilai – nilai passband edge frequency 1 (fp1), passband edge frequency 2
(fp2), transition width (tw), passband ripple (Pr), stopband attenuation (Sa), dan frequency
sampling (fs) dapat ditentukan berdasarkan pembagian lima band yang telah dilakukan.
Nilainya harus berada pada rentang frekuensi masing – masing band.
Dengan melihat persamaan 2.3 untuk memperoleh hasil output (y(n)), dapat
dihitung secara konvolusi. Dengan mengasumsikan x(n-k) memiliki panjang data N1 dan
h(k) memiliki panjang data N2, maka masing-masing panjang data akan ditambahkan untuk
KoversidB Pr dan Sa
menjadi Ap dan As
F = [F1 F2 F3 F4]
M = [0 1 0]
dev = [As Ap As]
Hitung N
Hitung h
F1 = fp1 – tw F2 = fp1 F3 = fp2
F4 = fp2 + tw
Selesai
Mulai
Masukkan fp1, fp2, tw, Pr, Sa, fs, dan fc. .
Gambar 3.8. Diagram Alir Proses Perhitungan Koefisien Filter dengan Menggunakan Metode Optimal untuk Band Pass Filter.
34
memperoleh hasil yang benar. Secara matematis ditunjukkan pada persamaan 3.2.
1
Berdasarkan Gambar3.8 proses terakhir yang dilakukan adalah menghitung nilai h,
yaitu menghitung koefisien filter, secara matematis persamaan koefiseien filter sebagai
berikut:
1 /
Persamaan 3.3 menggunakan metode frequency sampling, dengan 1/2 dan
H(k) merupakan sample dari tanggapan frekuensi pada filter. Maka untuk memperoleh
nilai h(n) agar menjadi bilangan real, maka dapat diperoleh melalui perhitungan sebagai
berikut :
1
1 ||"//
1 ||"/
1 || cos &2'
( )*+2' /,
1 ||cos +2' /,
3.6. Proses Verifikasi Hasil
Gambar 3.10 menunjukkan proses verifikasi hasil, proses ini menunjukkan apakah
hasil output yang telah mengalami proses filter benar atau tidak.
(3.2)
(3.3)
(3.4)
35
Proses verifikasi hasil ini diperlukan agar simulasi ini dapat diketahui bekerja
dengan benar atau tidak. Apabila sinyal suara dari hasil proses filter memberikan bentuk
sinyal suara yang sama seperti saat pengguna memberikan masukan awal. Hasil sinyal
output ini akan menyesuaikan dengan hasil dari proses filtering yang terlebih dahulu
dijalankan, kemudian berdasarkan hasil tersebut dengan nilai band dari masing-masing
filter yang diberikan pengguna. Sehingga pengguna dapat mendengarkan suara yang
terdengar sedikit berbeda dengan bunyi sinyal awal (sinyal asli) dari pengguna.
Gambar 3.9. Diagram Alir Proses Verifikasi Hasil Output
Mulai
Input = sinyal suara yang diproses filter
Selesai
Menampilkan sinyal hasil proses filter , sehingga dapat diketahui karakteristik dari
lima filter
Sinyal audio memiliki bentuk sinyal yang
sama dengan bentuk sinyal awal?
Lakukan proses ulang
Sinyal memiliki bentuk yang sama dengan sinyal awal
ya
tidak
36
BAB IV
HASIL DAN PEMBAHASAN
Bab ini akan membahas dan menyajikan hasil pengujian dari program simulasi
digital graphic equalizer yang telah dibuat. Pengujian dilakukan dengan memberikan
sinyal masukan berekstensi *.wav. Selain itu, perancangan filter finite impulse response
dengan metode optimal juga akan dibahas.
4.1. Tampilan Program
Program simulai ini dapat dijalankan dengan menggunakan software Matlab. Saat
pertama kali menjalankan program simulasi, pengguna akan melihat tampilan halaman
pembuka yang berisi judul program simulasi serta pembuat program. Tampilan halaman
pembuka program dapat dilihat pada Gambar 4.1.
Tampilan awal ini terdiri dua tombol yang digunakan oleh pengguna, yaitu tombol
Start dan tombol Exit. Tombol Start digunakan untuk masuk ke dalam program utama,
sedangkan tombol Exit digunakan untuk keluar dari program apabila pengguna tidak ingin
menggunakan program simulasi Digital Graphic Equalizer.
Gambar 4.1. Tampilan Halaman Pembuka Program
37
Tampilan halaman program utama ditunjukkan Gambar 4.2. Pada halaman program
utama ini terdapat File, Equalizing, dan Help. Menu File terdiri dari tiga submenu, yaitu
Open Playlist, Save, dan Exit. File yang akan diproses pada program utama dibuka
menggunakan submenu Open Playlist. File program berekstensi *.wav disimpan
menggunakan submenu Save. Sedangkan untuk keluar dari program simulasi, pengguna
dapat menggunakan submenu Exit.
Menu Equalizing terdiri dari tiga submenu, yaitu Frequency Filtering, Filter
Output, dan Reset. Untuk menjalankan program menggunakan submenu Filtering
pengguna dapat memberikan sinyal input yang berupa sinyal suara agar dapat diproses
menjadi lima band dengan frekuensi yang berbeda-beda. Untuk menghapus hasil dari
semua proses yang telah dilakukan pengguna dan agar kembali menjadi seperti tampilan
awal saat dijalankan pengguna dapat menggunakan submenu Reset.
Pada bagian spectrum input dan spectrum output terdapat tombol spec in dan spec
out, yang dapat digunakan untuk mengubah sinyal suara dalam domain waktu menjadi
sinyal dalam spectrum frekuensi. Hal ini diberikan pada program simulasi agar pengguna
dapat melihat perbedaan yang terjadi pada sinyal input dan output berdasarkan spectrum
frekuensi, saat dilakukan perbedaan terhadap masing-masing band dengan mengubah-ubah
amplitudo pada masing-masing band pass filter.
Gambar 4.2. Tampilan Program Utama
38
Menu Help terdiri dari tiga submenu, yaitu Optimal Methode, Digital Graphic
Equalizer Program, dan Credit. Submenu Optimal Methode berisi tentang keterangan
singkat mengenai metode optimal, sedangkan submenu Digital Graphic Equalizer
Program berisi keterangan tentang cara menjalankan program simulasi, dan untuk
mengetahui pembuat dari program simulasi menggunakan submenu Credit.
Tampilan submenu dari Help ditunjukkan pada Gambar 4.3, Gambar 4.4, dan
Gambar 4.5, yang terdiri dari Optimal Methode, Digital Graphic Equalizer Program, dan
Credit.
Gambar 4.3. merupakan submenu Optimal Methode yang mempunyai tiga masukan
bagi pengguna berupa tombol Exit, untuk keluar dari submenu Help, tombol Before untuk
melihat halaman sebelumnya, dan tombol Next untuk melihat halaman berikutnya.
Submenu Metode Optimal ini juga mempunyai menu File dan menu Help. Menu File yang
dapat digunakan oleh pengguna hanya submenu Print untuk mencetak dan submenu Exit
untuk keluar dari Help. Sedangkan submenu Open dan submenu Save tidak diaktifkan
karena pada Help tidak dapat digunakan untuk membuka dan menyimpan data. Menu Help
Gambar 4.3. Tampilan Submenu Optimal Methode
39
yang dapat digunakan oleh pengguna hanya submenu Program Help dan submenu Optimal
Methode tidak diaktifkan karena submenu Optimal Methode sedang dibuka (digunakan).
Gambar 4.4. merupakan submenu Digital Graphic Equalizer Program, submenu ini
berisi keterangan tentang cara menjalankan program simulasi digital graphic equalizer.
Submenu ini memiliki tiga masukan bagi pengguna berupa tombol Exit, Next, dan Back.
Tombol Exit digunakan untuk keluar dari submenu Help. Tombol Next untuk melihat
halaman berikutnya, dan tombol Back untuk melihat halaman sebelumnya.
Gambar 4.5 menunjukkan tampilan submenu Credit, agar pengguna mengetahui
pembuat dari program simulasi ini. Pada submenu Credit terdapat judul program, pembuat,
dan nama dosen pembimbing yang membantu dalam pembuatan program simulasi.
Program utama terdiri dari tiga bagian yaitu bagian masukan, bagian proses, dan
bagian keluaran. Bagian masukan merupakan bagian untuk memberikan data masukan
yang berekstensi *.wav. Apabila pada bagian masukan ini belum diberikan data masukan,
maka program akan membaca kesalahan dan menampilkan pesan kesalahan seperti yang
ditunjukkan pada Gambar 4.6. Setelah data masukan diberikan, program akan dapat
dijalankan. Hal ini akan terus berulang sampai data masukan diberikan dan program
kemudian akan dapat dijalankan.
Gambar 4.4. Tampilan Submenu Digital Graphic Equalizer Program
40
Pengguna dapat memasukkan data berekstensi *.wav dengan menekan submenu
Open Playlist yang terdapat pada File dan memilih data masukan yang diinginkan.
Tampilan pengambilan data berekstensi *.wav dan tampilan untuk penyimpanan data
masukan yang direkam (record) ditunjukkan pada Gambar 4.7.
Gambar 4.5. Tampilan Submenu Credit.
Gambar 4.6. Pesan Kesalahan Data Masukan Belum Diberikan.
Gambar 4.7. Tampilan File (a) Tampilan Pengambilan Data Berekstensi *.wav.
(b) Tampilan Penyimpanan Data Berekstensi *.wav.
41
Bagian proses berisi tentang proses yang dijalankan yaitu proses Filtering dan
Filter Output. Untuk menjalankan proses Filtering, nilai pada bagian Audio Signal harus
diisi oleh pengguna dengan bilangan radix 2 (2x), pada awalnya apabila pengguna
memasukkan data masukan, secara otomatis jumlah data masukan telah tertampil tetapi
jumlah data pada umumnya belum dalam radix 2, sehingga pengguna harus mengisi
dengan bilangan radix 2 (2x). Selain jumlah data yang dimasukkan harus bernilai radix 2,
jumlah data tersebut juga tidak boleh lebih besar dari jumlah data sesungguhnya. Apabila
hal tersebut terjadi maka pesan kesalahan akan keluar, seperti ditunjukkan pada Gambar
4.8. Proses Filter Output harus dijalankan dengan menjalankan proses Filtering terlebih
dahulu. Setelah data masukan telah diisi dan sesuai dengan ketentuan, maka program dapat
dijalankan.
Bagian keluaran merupakan bagian untuk menampilkan hasil simulasi program
seperti kurva (grafik) tanggapan frekuensi yang akan menghasilkan lima jenis band dan
juga akan menampilkan jumlah koefisien filter. Bagian keluaran juga akan menampilkan
kurva sinyal suara yang telah mengalami filter dan bagian ini juga akan menampilkan nilai
data dari sinyal suara tersebut. Jumlah koefisien dan data yang ini berfungsi untuk
mengetahui kinerja program simulasi.
Gambar 4.9. Message Box Close Aplication
Gambar 4.8. Pesan Kesalahan Nilai Data Masukan Lebih Besar dari Nilai Sesungguhnya.
42
Program utama juga terdapat submenu Exit yang memiliki fungsi untuk keluar dari
program utama. Jika pengguna memilih submenu Exit, maka program simulasi akan
menampilkan message box seperti yang ditunjukkan pada Gambar 4.9. Jika menekan
tombol Yes, maka program simulasi akan tertutup. Jika memilih tombol No, maka program
tidak akan tertutup dan pengguna dapat menggunakan program simulasi lagi.
4.2. Kinerja Digital Graphic Equalizer
Sub bab ini akan menjelaskan kinerja digital graphic equalizer. Data yang
berekstensi *.wav akan melalui proses filtering dan filter output kemudian pengguna dapat
menaikkan atau menurunkan magnitudo/magnitude (dB) dari hasil filtering agar dapat
melalui proses filter output. Untuk masing-masing proses secara lebih lengkap akan
dijelaskan tersendiri.
Program simulasi ini tidak dapat bekerja secara real time dan dibuat agar
melakukan proses secara tahap demi tahap sesuai dengan yang diinginkan saat membuat
program simulasi ini. Tahap demi tahap dalam prosesnya memiliki fungsi dan maksud
yang dibuat agar pengguna dapat mengerti dan memahaminya dalam menggunakan
program simulasi ini.
4.2.1. Proses Pemberian Sinyal Masukan dari Dalam
4.2.1.1. Proses Filtering dan Filter Output Sinyal Audio dengan Band
Sama
Untuk melakukan proses filtering, pengguna terlebih dahulu memberikan masukan
berupa sinyal suara dan masukan berdasarkan syarat yang telah dijelaskan pada menu help.
Filter yang dirancang merupakan filter BPF yang menggunakan metode optimal. Masukan
program simulasi untuk proses filtering yang diinginkan seperti yang ditunjukkan pada
Tabel 4.1, dengan nilai band sama semuanya.
43
Tabel 4.1 Spesifikasi yang Diharapkan pada Simulasi Program 1
No Keterangan data masukan Data masukan yang diberikan
1. file masukan ringin.wav
2. jumlah sampel data masukan 8192
3. band 1 (gain 1) -60 dB
4. band 2 (gain 2) -60 dB
5. band 3 (gain 3) -60 dB
6. band 4 (gain 4) -60 dB
7. band 5 (gain 5) -60 dB
Dengan memberikan data masukan seperti pada Tabel 4.1, kemudian pengguna
dapat menjalankan program dengan memilih submenu filtering untuk menjalankan proses
filter pembagian lima band dan proses terakhir dengan memilih submenu filter output
untuk menjalankan proses dan menampilkan sinyal suara yang telah mengalami proses
filter. Untuk jumlah data masukkan yang diberikkan hanya sebesar 8192 dari 9981 data
kesulurahan sinyal suara masukkan, hal ini dilakukkan karena program hanya memproses
jumlah data yang diberikan adalah sebesar bilangan radix 2.
Untuk mengetahui dan membandingkan kinerja dari filtering dan filter output,
ditunjukkan pada Gambar 4.10. Setelah program mendapat masukan, maka akan diperoleh
tampilan kurva seperti yang ditunjukkan pada Gambar 4.13 yaitu contoh tampilan kurva
sinyal suara masukan. Gambar 4.12 menunjukkan kurva spektrum frekuensi dari sinyal
masukan.
Tabel 4.2 menunjukkan perolehan hasil berupa nilai koefisien filter N1, N2, N3, N4,
dan N5 dari masing-masing band. Jumlah koefisien dari masing-masing band akan sama
karena tidak terjadi perubahan pada nilai magnitudenya. Gambar 4.13 menunjukkan
tampilan dari kurva tanggapan frekuensi yang telah dibagi menjadi lima band dalam hal ini
kurva tampak overlap agar seolah-olah band pass merupakan sebuah all pass filter yang
sebenarnya terdiri dari lima buah band pass filter.
44
Gambar 4.11. Tampilan Sinyal Suara Masukan
Gambar 4.10. Tampilan Digital Graphic Equalizer dengan Band yang Sama 1
45
Tabel 4.2 Hasil Proses Filtering 1
Setelah melakukan proses filtering, program simulasi dapat dijalankan dengan
menekan tombol submenu pada proses filter output. Berdasarkan pada Tabel 4.1, akan
diperoleh hasil yang ditunjukkan pada Tabel 4.3 dan kurva sinyal suara yang telah melalui
proses filter yang ditunjukkan pada Gambar 4.14.
No Panjang Koefisien Filter Nilai
1. N 1 378
2. N 2 378
3. N 3 378
4. N 4 378
5. N 5 378
Gambar 4.12. Tampilan Spektrum Sinyal Suara Masukan
46
Tabel 4.3 Hasil Proses Filter Output 1
No Keterangan data Proses
1. file masukan ringin.wav
2. jumlah sampel data keluaran 8569
3. proses yang dijalankan ke-2 filter output
Gambar 4.13. Tampilan Kurva Tanggapan Frekuensi dengan Band Sama 1
Gambar 4.14. Tampilan Kurva Sinyal Suara Keluaran Setelah Proses Filtering
47
Berdasarkan Tabel 4.1, jumlah sampel data masukan harus diubah dengan bilangan
2x, sehingga seperti yang diperlihatkan pada Tabel 4.1 jumlah sampel data masukan yang
diberikan bernilai bilangan 213 sebesar 8192 dan menghasilkan jumlah koefisien filter (h)
yang sama untuk masing-masing band pass filter, yaitu 378. Dapat dilihat juga pada Tabel
4.1 dan Tabel 4.3 bahwa jumlah sampel data masukan dan keluaran berbeda. Hal ini terjadi
karena adanya perbedaan nilai data masukan yang diproses secara filtering, sehingga
terdapat selisih yang cukup banyak pada hasil keluaran. Juga dapat dilihat perbedaan
bentuk sinyal masukan dan sinyal keluaran serta jumlah data masukan dan jumlah data
keluaran pada Gambar 4.11 dan Gambar 4.14.
Pada Gambar 4.11 jumlah data masukan yang diberikan pengguna terlihat sebesar
8192, sedangkan pada Gambar 4.14 jumlah data keluaran setelah melalui proses filter
menjadi 8569. Terjadi pertambahan data sebanyak 377 data pada sinyal keluaran,
pertambahan data ini sesuai dengan persamaan 3.2, pada perancangan yang telah
dijelaskan pada Bab III dan juga karena terjadi proses konvolusi pada filter. Selain
perbedaan terlihat pada jumlah data masukan dan keluaran yang diperoleh, perbedaan juga
tampak jelas pada Gambar 4.12 dan Gambar 4.15 yang menunjukkan spektrum untuk
masing-masing sinyal masukan dan sinyal keluaran.
Gambar 4.15. Tampilan Spektrum Sinyal Suara Keluaran Setelah Proses Filtering
48
Gambar 4.12 dan Gambar 4.15 merupakan kurva tanggapan frekuensi (spektrum)
masukkan dan keluaran, tampilan spektrum keluaran berbeda dengan yang diharapkan
yaitu tidak sama dengan spektrum data masukkan karena tidak terjadi perubahan dalam
proses filtering tetapi dalam Gambar 4.15 terjadi band reject. Hal ini menunjukkan adanya
kesalahan pemrograman pada proses filtering, sehingga keluarannya tidak sesuai dengan
yang diharapkan.
Gambar 4.13 merupakan kurva tanggapan frekuensi yang menampilkan lima band
pass filter dengan masing-masing nilai frekuensi yang berbeda, tetapi memiliki magnitude
yang sama untuk masing-masing band. Hal ini sesuai dengan hasil perancangan yang
ditunjukkan pada Gambar 3.7 dan yang telah dijelaskan pada Bab III. Saat program
mendapat masukan berupa sinyal suara, kemudian sinyal akan ditampilkan dalam domain
waktu. Setelah itu, sinyal suara diproses menjadi lima band pass filter dengan pembagian
frekuensi pusatnya sesuai dengan perancangan yang telah dilakukan dan terakhir hasil
proses filtering ditampilkan. Hal ini juga sesuai dengan dasar teori mengenai FIR filter
dengan menggunakan metode optimal.
Gambar 4.13 menunjukkan bahwa nilai frekuensi terendah program berada pada
500 Hz, karena dalam program sitopband attenuation bernilai 60 dB. Sehinggga
menyebabkan nilai frekuensi tidak dapat lebih rendah dari 500 Hz, apabila akan
menggunakan nilai frekuensi lebih rendah maka program harus dibuat nilai stopband
attenuation lebih rendah dari 60 dB.
4.2.1.2. Proses Filtering dan Filter Output Sinyal Audio dengan Band 1
Berbeda
Masukan program simulasi untuk proses filtering yang diinginkan seperti yang
ditunjukkan pada Tabel 4.4, tetapi dengan nilai pada band 2, 3, 4, serta 5 sama.
Tabel 4.4. Spesifikasi yang Diharapkan pada Simulasi Program 2.
No Keterangan data masukan Data masukan yang diberikan
1. file masukan ringin.wav
2. jumlah sampel data masukan 8192
3. band 1 (gain 1) - 60 dB
49
Tabel 4.4.(Lanjutan) Spesifikasi yang Diharapkan pada Simulasi Program 2.
No Keterangan data masukan Data masukan yang diberikan
4. band 2 (gain 2) 0 dB
5. band 3 (gain 3) 0 dB
6. band 2 (gain 2) 0 dB
7. band 3 (gain 3) 0 dB
Sinyal suara masukan sama seperti pada Gambar 4.11. Setelah memberikan
masukan seperti pada Tabel 4.4 proses filtering dan filter output dapat dijalankan oleh
pengguna, sehingga contoh tampilan dari hasil proses keseluruhan ditunjukkan pada
Gambar 4.16. Sedangkan, kurva tampilan tanggapan frekuensi dengan nilai magnitude
yang berbeda seperti yang ditunjukkan pada Gambar 4.17. Untuk hasil perhitungan proses
filtering ditunjukkan pada Tabel 4.5 yaitu hasil proses filtering dan Tabel 4.6 menunjukkan
data setelah melalui proses filter output pada program.
Gambar 4.16. Tampilan Digital Graphic Equalizer dengan Berbeda 2
50
Tabel 4.5. Hasil Proses Filtering 2.
Setelah proses filtering dijalankan, maka proses selanjutnya yang pengguna
jalankan yaitu proses filter output yang terdapat pada menubar. Hasil dari proses filter
output ditunjukkan pada Tabel 4.6 dan contoh tampilan kurva sinyal suara yang telah
mengalami filter ditunjukkan pada Gambar 4.18.
No Panjang Koefisien Filter Nilai
1. N1 378
2. N 2 163
3. N 3 163
4. N 4 163
5. N 5 163
Gambar 4.17. Tampilan Kurva Tanggapan Frekuensi dengan Band Berbeda 1
51
Tabel 4.6. Hasil Proses Filter Output 2
No Keterangan data Proses
1. file masukan ringin.wav
2. jumlah sampel data keluaran 8569
3. proses yang dijalankan ke-2 filter output
Gambar 4.18. Tampilan Kurva Sinyal Keluaran Suara dengan Band Berbeda
Gambar 4.19. Tampilan Spektrum Sinyal Keluaran Suara dengan Band Berbeda
52
Tabel 4.4 menunjukkan data masukan yang diberikan dan dengan menggunakan
sinyal masukan yang sama yaitu ringin.wav dan Tabel 4.5 memperlihatkan hasil dari
perhitungan proses filtering. Jumlah koefisien filter yang ditampilkan berbeda antara band
1 memiliki nilai magnitude 0 dB dan band lainya, karena nilai magnitude (pada band 2, 3,
4, dan 5) bernilai sama dengan -60 dB maka hasil yang diperoleh band pass filter berada
pada 0 dB. Jumlah sampel data masukan yang diberikan bernilai 8192 (213), seperti pada
Tabel 4.4 dan jumlah data keluaran yang diperoleh setelah proses filtering sebesar 8569,
seperti pada Tabel 4.6. Jumlah sampel data keluaran memiliki selisih dengan jumlah
sampel masukan, yaitu sebesar 377 data yang artinya data keluaran mendapat tambahan
sebanyak 377 data. Seperti pada penjelasan sebelumnya pertambahan data ini terjadi
karena jumlah data masukan berbeda dan terjadi proses konvolusi pada filtering. Hal ini
yang menyebabkan adanya perbedaan besarnya amplitudo pada sinyal suara keluaran.
Petambahan data ini sesuai dengan persamaan 3.2, pada perancangan yang telah dijelaskan
pada Bab III.
Gambar 4.19 merupakan spektrum suara keluaran, seperti pembahasan sebelumnya
terdapat ketidaksempurnaan dalam pembuatan program ini karena hasil keluaran dari
spektrum sinyal keluaran tidak seperti yang diharapkan. Seharusnya saat nilai frekuensi
diatas 5 kHz terjadi penekanan sampai -60 dB, karena dalam proses filtering diberi
masukkan hingga -60 dB. Hal ini dapat terjadi karena apabila dilihat dari panjang data
sinyal masukkan dan keluaran yang berbeda, maka spektrum yang diperoleh juga akan
berbeda, disebabkan data yang diproses berbeda dengan panjang data awal. Seperti dalam
pembahasan sebelumnya, hal ini menunjukkan adanya kesalahan pemrograman pada
proses filtering, sehingga keluarannya tidak sesuai dengan tujuan simulasi dan tidak sesuai
dengan yang diharapkan.
Gambar 4.17 merupakan kurva tanggapan frekuensi yang menampilkan lima band
pass filter dengan masing-masing nilai frekuensi berbeda tetapi memilki nilai amplitude
yang sama pada band 2, 3, 4, dan band 5, yaitu berada pada magnitude sebesar -60 dB. Hal
ini sesuai dengan perancangan seperti yang dijelaskan pada Bab III dan berdasarkan
dengan dasar teori yang mendukung dalam pembuatan simulasi ini. Untuk hasil ini
tanggapan frekuensi menghasilkkan band pass filter sesuai dengan yang diinginkan.
53
4.2.2. Proses Pemberian Sinyal Masukan dari Luar
Program simulasi yang telah dibuat ini selain dapat memproses file dari dalam yaitu
file yang telah disimpan, dapat juga dari luar yaitu rekam (record). Seperti pada fasilitas
yang telah disediakan pada program simulasi ini.
4.2.2.1. Proses Filtering dan Filter Output Sinyal Suara dengan Band
Sama
Seperti saat program mendapat data masukan dari dalam, yang berbeda hanya saja
pengguna dapat merekam suara sendiri. Akan tetapi data masukan belum dapat diproses
sebelum disimpan dalam file yang berekstensi *.wav. Kemudian pengguna dapat membuka
hasil rekaman dan dapat diproses seperti saat program mendapat sinyal masukan dari
dalam.
Pengguna dapat memberi masukan seperti pada Tabel 4.7, dengan nilai amplitudo
yang akan diproses filtering sama untuk masing-masing band. Gambar 4.21 merupakan
gambar sinyal suara yang telah direkam oleh pengguna. Suara yang direkam ini berbunyi
”tes” dan disimpan dengan nama file rekam.wav. Awalnya pengguna dapat menekan
tombol record yaitu fasilitas yang terdapat pada program simulasi ini,setelah suara direkam
kemudian pengguna terlebih dahulu harus menyimpan (save) dengan memilih pada bagian
menu bar yaitu save. Contohnya rekam.wav, setelah itu pengguna dapat membuka file
yang telah disimpan tersebut untuk memainkannya seperti saat program mendapat
masukkan dari dalam, dengan membuka file yang telah disimpan. Untuk sinyal masukkan
panjang data kesulurahan 22050, tetapi pengguna hanya memasukkan bilangan radix 2
sehingga bilangan yang dapat dimasukkan 16384.
Tabel 4.7. Spesifikasi yang Diharapkan pada Simulasi Program 3.
No Keterangan data masukan Data masukan yang diberikan
1. file masukan rekam.wav
2. jumlah sampel data masukan 16384
3. band 1 (gain 1) - 60 dB
4. band 2 (gain 2) -60 dB
54
Tabel 4.7. (Lanjutan) Spesifikasi yang Diharapkan pada Simulasi Program 3.
No Keterangan data masukan Data masukan yang diberikan
5. band 3 (gain 3) -60 dB
6. band 4 (gain 4) -60 dB
7. band 5 (gain 5) -60 dB
Dengan memberikan data masukan seperti pada Tabel 4.7, kemudian pengguna
dapat menjalankan program dengan memilih submenu filtering agar data masukan dapat
diproses filter dan ditampilkan dalam lima band. Proses terakhir dengan memilih submenu
filter output untuk menampilkan sinyal suara keluaran yang telah mengalami proses
filtering dan menampilkan jumlah data keluran. Untuk mengetahui dan membandingkan
kinerja dari filtering dan filter output, ditunjukkan pada Gambar 4.20.
Gambar 4.20. Tampilan Digital Graphic Equalizer dengan Band Sama 3
55
Tabel 4.8 menunjukkan perolehan hasil keluaran berupa jumlah koefisien N1, N2,
N3, N4, dan N5 dari masing-masing band. Jumlah koefisien dari masing-masing band
adalah sama karena tidak terjadi perubahan pada nilai stopband attenuation pada masing-
masing band. Gambar 4.23 menunjukkan tampilan dari kurva tanggapan frekuensi yang
Gambar 4.21. Tampilan Sinyal Suara Masukan yang Direkam
Gambar 4.22. Tampilan Spektrum Sinyal Suara Masukan yang Direkam
56
telah dibagi menjadi lima band, sama seperti saat program mendapat data masukan dari
dalam maka kurva tanggapan frekuensi tampak overlap agar seolah-olah band pass
merupakan sebuah all pass filter yang sebenarnya terdiri dari lima buah band pass filter.
Tabel 4.8. Hasil Proses Filtering 3.
Setelah proses filtering dilakukan, pengguna dapat menjalankan proses filter output
agar dapat diperoleh hasil sinyal keluaran setelah mengalami proses filter. Berdasarkan
Tabel 4.7 maka akan diperoleh hasil yang ditunjukkan pada Tabel 4.9 dan kurva sinyal
suara yang telah melalui proses filter yang ditunjukkan pada Gambar 4.24.
No Panjang Koefisien Filter Nilai
1. N1 378
2. N 2 378
3. N 3 378
4. N 4 378
5. N 5 378
Gambar 4.23. Tampilan Kurva Tanggapan Frekuensi dengan Band Sama 2
57
Tabel 4.9. Hasil Proses Filter Output 3.
No Keterangan data Proses
1. file masukan rekam.wav
2. jumlah sampel data keluaran 16761
3. proses yang dijalankan ke-2 filter output
Gambar 4.24. Tampilan Kurva Sinyal Keluaran Suara Rekaman 1
Gambar 4.25. Tampilan Spektrum Sinyal Suara Keluaran Rekaman 1
58
Seperti saat program mendapat sinyal masukan dari dalam, maka saat mendapat
sinyal masukan dari luar data masukan yang diberikan pengguna juga harus dalam
bilangan radix 2. Berdasarkan Tabel 4.7 maka jumlah data masukan diubah kedalam
bilangan 214 yang menunjukkan jumlah data masukan yang akan diproses filtering. Pada
Tabel 4.8 juga dapat diketahui bahwa nilai koefisien untuk masing-masing band pass filter
adalah sama, karena memiliki nilai band yang sama sehingga tidak ada perbedaan pada
masing band. Walaupun jumlah koefisien filter sama, untuk data keluarannya memiliki
nilai yang berbeda dengan jumlah data masukan dapat dilihat pada Tabel 4.9. Pada proses
terakhir, filter output menampilkan bentuk sinyal suara keluaran yang telah mengalami
filtering. Terdapat proses untuk mengubah sinyal suara masukkan dan keluaran menjadi
dalam spektrum, fasilitas ini diberikkan agarpengguna mengetahui benarbahwa proses
filtering dapat bekerja dengan baik. Akan tetapi dalam program ini pada spektrum yang
dibuat terlihat bahwa hasil spektrum output tidak menghasilkan seperti yang
diharapkansetelah melalui proses filtering.
Gambar 4.21 menunjukkan sinyal suara yang direkam dan Gambar 4.24
menunjukkan sinyal suara yang telah mengalami proses filtering. Pada Gambar
memprlihatkan juga adanya perbedaan yang terjadi antara jumlah data keluaran dan
masukan. Jumlah data keluaran yang lebih besar dari pada jumlah data masukan
menyebabkan terjadinya pertambahan data sebanyak 377 data. Petambahan data ini sesuai
dengan persamaan 3.2, pada perancangan yang telah dijelaskan pada Bab III. Akan tetapi
pada Gambar 4.22 dan Gambar 4.25 menunjukkan spektrun dari sinyal masukkan dan
keluaran, sehingga dapat diketahui bahwa proses filtering yang terjadi tidak bekerja secara
tepat pada sinyal yang telah diberikan.
Gambar 4.22 dan Gambar 4.25 merupakan spektrum masukkan dan keluaran,
tampilan spektrum keluaran berbeda dengan yang diharapkan yaitu tidak sama dengan
spektrum data masukkan karena tidak terjadi perubahan dalam proses filtering tetapi dalam
Gambar 4.25 menunjukkan terjadi band reject. Hal ini menunjukkan adanya kesalahan
pemrograman pada proses filtering, sehingga keluarannya tidak sesuai dengan tujuan
simulasi dan tidak sesuai dengan yang diharapkan.
Gambar 4.23 merupakan kurva tanggapan frekuensi yang menampilkan lima band
pass filter dengan masing-masing nilai frekuensi berbeda, tetapi memiliki magnitude yang
sama untuk masing-masing band yang berada pada nilai -60 dB. Hal ini sesuai dengan
hasil perancangan yang telah dijelaskan pada Bab III. Saat program mendapat masukan
59
berupa sinyal suara, kemudian sinyal akan ditampilkan dalam domain waktu dan diproses
menjadi lima band pass filter dan ditampilkan. Untuk kurva tanggapan frekuensi telah
menghasilkan band pass filter yang sesuai dengan yang diharapkan, tetapi filter ini tidak
bekerja secara tepat pada sinyal suara yang diberikan.
4.2.2.2. Proses Filtering dan Filter Output Sinyal Audio dengan Band
Berbeda-Beda
Untuk menjalankan program simulasi ini dengan menggunkan sinyal suara dari luar
(dengan direkam suara) dan dengan memberikan nilai pada band yang berbeda-beda,
pengguna dapat memberikan masukan seperti ditunjukkan pada Tabel 4.10.
Tabel 4.10. Spesifikasi yang Diharapkan pada Simulasi Program 4.
No Keterangan data masukan Data masukan yang diberikan
1. file masukan rekam.wav
2. jumlah sampel data masukan 16384
3. band 1 (gain 1) - 60 dB
4. band 2 (gain 2) 0 dB
5. band 3 (gain 3) 0 dB
6. band 2 (gain 2) 0 dB
7. band 3 (gain 3) 0 dB
Dengan memberikan data masukan seperti pada Tabel 4.10, program dapat
dijalankan dengan proses seperti saat pengambilan data sebelumnya yang pertama memilih
submenu filtering agar data masukan dapat diproses filter dan data dibagi menjadi lima
band. Berdasarkan data pada Tabel 4.10 maka akan diperoleh bentuk tanggapan frekuensi
seperti yang dittunjukkan pada Gambar 4.25. Proses terakhir yang dilakukan pengguna
dengan memilih submenu filter output untuk menampilkan sinyal suara keluaran yang
telah melalui proses filtering dan menampilkan jumlah data keluaran yang dihasilkan.
Untuk mengetahui dan membandingkan kinerja dari filtering dan filter output, ditunjukkan
pada Gambar 4.24. Pengambilan data ini menggunakan contoh sinyal suara masukkan
yang sama yaitu rekam.wav, kurva sinyal suara masukan ditunjukkan pada Gambar 4.20.
60
Tabel 4.11 menunjukkan perolehan hasil berupa jumlah koefisien N1, N2, N3, N4,
dan N5 dari masing-masing band. Jumlah koefisien dari masing-masing band adalah sama
untuk band 2, 3, 4, dan band 5 serta berbeda untuk band 1, karena pengguna memberi
masukan pada band yang dapat mempengaruhi adanya perubahan pada nilai stopband
attenuation untuk masing-masing band pass filter. Gambar 4.25 menunjukkan tampilan
dari kurva tanggapan frekuensi yang telah dibagi menjadi lima band, sama seperti saat
program mendapat data masukan dari dalam maka kurva tanggapan frekuensi tampak
overlap agar seolah-olah band pass merupakan sebuah all pass filter yang sebenarnya
terdiri dari lima buah band pass filter.
Tabel 4.11. Hasil Proses Filtering 4.
No Panjang Koefisien Filter Nilai
1. N1 378
2. N 2 163
3. N 3 163
4. N 4 163
5. N 5 163
Gambar 4.26. Tampilan Digital Graphic Equalizer dengan Band Berbeda 4
61
Setelah proses filtering dilakukan, pengguna dapat menjalankan proses filter output
agar dapat diperoleh hasil sinyal keluaran. Berdasarkan Tabel 4.11 maka akan diperoleh
hasil yang ditunjukkan pada Tabel 4.12 dan kurva sinyal suara keluaran yang telah melalui
proses filter yang ditunjukkan pada Gambar 4.28.
Tabel 4.12. Hasil Proses Filter Output 4.
No Keterangan data Proses
1. file masukan rekam.wav
2. jumlah sampel data keluaran 16761
3. proses yang dijalankan ke-2 filter output
Gambar 4.27. Tampilan Kurva Tanggapan Frekuensi dengan Band Berbeda 2
62
Pengambilan data ini sama seperti pengambilan data sebelumnya menggunakan
sinyal suara yang direkam dari luar dan telah disimpan, yaitu rekam.wav. Berdasarkan
Tabel 4.10 maka pengguna harus terlebih dahulu mengisi jumlah data masukan dengan
bilangan 2x, dan setelah melalui proses filtering diperoleh data seperti pada Tabel 4.11.
Gambar 4.28. Tampilan Kurva Sinyal Keluaran Suara Rekaman 2
Gambar 4.29. Tampilan Spektrum Sinyal Suara Keluaran Rekaman 2
63
Berdasarkan Tabel 4.11 diperoleh data jumlah koefisien masing-masing filter sama untuk
jumlah koefisien pada band 2, 3, 4, dan band 5. Namun, berbeda pada band 1 yang
menghasilkan jumlah data keluaran yang berbeda dengan data masukan sebesar 377 data.
Pertambahan data terjadi karena adanya perbedaan jumlah data masukan. Petambahan data
ini sesuai dengan persamaan 3.2, pada perancangan yang telah dijelaskan pada Bab III.
Gambar 4.29 merupakan spektrum frekuensi dari sinyal suara keluaran yang
direkam. Hasil yang diperoleh setelah melalui proses filtering ditunjukan pada spektrum
keluaran, seharusnya untuk frekuensi diatas 5 kHz berada pada -60 dB karena pada proses
filtering terjadi penekanan sampai -60 dB. Hal ini menunjukkan adanya kekeliruan yang
terdapat pada spektrum keluaran, akibat adanya kesalahan pemrograman pada proses
filtering. Sehingga, keluarannya tidak sesuai dengan tujuan simulasi dan tidak sesuai
dengan yang diharapkan.
Gambar 4.27 merupakan kurva tanggapan frekuensi dengan nilai stopband
attenuation yang berbeda sehingga seperti yang terlihat pada gambar yang menunjukkan
perbedaan bentuk pada masing-masing band. Kurva tanggapan frekuensi yang diperoleh
ini sesuai dengan dasar teori FIR filter dengan metode optimal yang telah dijelaskan pada
Bab II. Hasil data yang diperoleh juga telah sesuai dengan perancangan atas pembagian
filter.
4.3. Karakteristik Band Pass Filter
Sub bab ini menjelaskan kepada pengguna bahwa selain dapat mensimulasikan
sinyal masukan pada program, simulasi program digital graphic equalizer juga memiliki
fasilitas untuk mengetahui karakteristik masing-masing band pass filter secara lebih detail
yang disertai dengan keterangan yang diperlukan oleh pengguna. Fasilitas yang diberikan
ini terdapat pada bagian keluaran, agar pengguna dapat mengetahui apa saja yang terdapat
pada masing-masing band pass filter seperti yang ditunjukkan pada Gambar 4.30.
Contoh karakteristik band pass filter ditunjukkan pada Gambar 4.30 yaitu pada
band 1 yang memiliki frekuensi centre pada 2.5 kHz. Sedangkan, frekuensi centre pada
band 2 sebesar 6.5 kHz, band 3 sebesar 10.5 kHz, band 4 sebesar 14.5 kHz, dan pada band
5 memiliki frekuensi centre sebesar 18.5 kHz. Nilai frekuensi centre untuk masing-masing
band pass filter (lima band) yang diperoleh telah sesuai dengan perancangan yang terdapat
pada Bab III.
64
Dari Gambar 4.30 kurva tanggapan frekuensi, terlihat bahwa frekuensi sampling
yang digunakan 12 kHz lebih kecil dari pada yang digunakan pada program secara
keseluruhan yang menggunakan frekuensi sampling sebesar 44 kHz. Hal ini dilakukan
untuk menunjukkan kepada pengguna secara jelas posisi dari frekuensi centre yang telah
ditetapkan pada masing-masing band. Frekuensi centre band 1 terletak pada 2.5 kHz.
Gambar 4.27. Tampilan Kurva untuk Band 1
65
BAB V
PENUTUP
5.1 Kesimpulan
Berdasarkan hasil penelitian dan pembahasan yang telah dilakukan, diperoleh
beberapa kesimpulan sebagai berikut :
1. Program simulasi komputer digital graphic equalizer yang dibuat memiliki
kekeliruan yang terdapat dalam tampilan tanggapan frekuensi keluaran, pada
proses filtering. Akibat adanya kesalahan pemrograman.
2. Program simulasi untuk menentukan tanggapan frekuensi dari filter, dengan
menggunakan FIR filter dengan metode optimal telah berhasil dibuat karena
menghasilkan filter yang sesuai dengan spesifikasi yang diharapkan dan diberikan
yang dibagi menjadi lima band pass filter.
5.2 Saran
Untuk penyampurnaan dan pengembangan program simulasi komputer digital
graphic equalizer selanjutnya, penilis menyarankan untuk :
1. Tugas akhir ini dapat dilanjutkan lagi dengan mencari kesalahan pemrograman
pada proses filtering.
2. Untuk penelitian lebih lanjut dan pengembangan ilmu, dapat juga
dikembangkan dengan menambahkan band pass filter agar lebih detail dalam
proses filtering. Selain itu, dapat juga dibuat dengan menggunakan IIR (Infinite
Impulse Response) filter.
66
Daftar Pustaka
[1] Ifeachor, Emmanuel C., dan Barrie W. Jervis, Digital Signal Processing, A
Practical Approach – 2nd Ed, Prentice Hall, 2001.
[2] http://adtyan.blogspot.com/2009/12/1.html, diakses 3 November2010.
[3] Putra, Agfianto Eko, 2002, Penapis Aktif Elektronika : Teori dan Praktek,
C.V.Gava Media, Yogyakarta.
[4] Petra Christian University Library-/jiunkpe/s1/elkt/2003/jiunkpe-ns-s1-2003-
2, diakses 14 November 2009.
[5] Santoso, Tri B., Octavianto, H., Dutono, Titon, Implementasi Filter IIR
secara Real Time pada TMS 32C5402, Politeknik Negeri Surabaya.
[email protected], diakses 31 Agustus 2009.
[6] Krauss Thomas P., Shure Loren dan Little John N., 1994, Signal Processing
Toolbox for use with MATLAB®, The MathWorks.
[7] http://www.Appsig.com/papers.html, diakses 31 Agustus 2009.
[8] Nathanael, Hugo.Y., 2007, “Program Simulasi untuk Realisasi Struktur Tapis
Finite Impulse Response”. Skipsi, Jurusan Teknik Elektro Fakultas Sains dan
Teknologi Universitas Sanata Dharma.
[9] Ricardo A. Losada, Januari 12,2004 practical FIR filter design in MATLAB:
the Math Works.Inc., 3 Apple Hill Dr.Natick, MA 01760,USA.
LAMPIRAN
L 1
A
LISTING PROGRAM
L 2
function varargout = Equalizer(varargin) % EQUALIZER M-file for Equalizer.fig % EQUALIZER, by itself, creates a new EQUALIZER or raises the existing % singleton*. % H = EQUALIZER returns the handle to a new EQUALIZER or the handle to % the existing singleton*. % EQUALIZER('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in EQUALIZER.M with the given input arguments. % EQUALIZER('Property','Value',...) creates a new EQUALIZER or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Equalizer_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Equalizer_OpeningFcn via varargin. % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help Equalizer % Last Modified by GUIDE v2.5 18-Nov-2010 16:00:00 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Equalizer_OpeningFcn, ... 'gui_OutputFcn', @Equalizer_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1); end if nargout [varargout1:nargout] = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end % End initialization code - DO NOT EDIT % --- Executes just before Equalizer is made visible. function Equalizer_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Equalizer (see VARARGIN) % Choose default command line output for Equalizer handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Equalizer wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = Equalizer_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);
L 3
% hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout1 = handles.output; % --- Executes on selection change in datain. function datain_Callback(hObject, eventdata, handles) % hObject handle to datain (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns datain contents as cell array % contentsget(hObject,'Value') returns selected item from datain % --- Executes during object creation, after setting all properties. function datain_CreateFcn(hObject, eventdata, handles) % hObject handle to datain (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: listbox controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on button press in gridon. function gridon_Callback(hObject, eventdata, handles) % hObject handle to gridon (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) grid minor % --- Executes on button press in move. function move_Callback(hObject, eventdata, handles) % hObject handle to move (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) pan % --- Executes on button press in cursor. function cursor_Callback(hObject, eventdata, handles) % hObject handle to cursor (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) datacursormode; % --- Executes on button press in zoomin. function zoomin_Callback(hObject, eventdata, handles) % hObject handle to zoomin (see GCBO)
L 4
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) zoom on set(handles.move,'enable','on'); % --- Executes on button press in zoomout. function zoomout_Callback(hObject, eventdata, handles) % hObject handle to zoomout (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) zoom out pan off set(handles.move,'enable','off'); % -------------------------------------------------------------------- function Open_playlist_Callback(hObject, eventdata, handles) % hObject handle to Open_playlist (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %Mengambil file playlist [nama_file, nama_path]=uigetfile('*.wav','File WAV (*.wav)',... 'Open File Input'); %baca data masukan if ~isequal(nama_file, 0) handles.data = wavread(fullfile(nama_path,nama_file)); guidata(hObject,handles); else return; end %tampilkan nama file masukan dan jumlah masukan set(handles.datain,'string',nama_file); set(handles.Play_Input,'enable','on'); guidata(hObject,handles); % -------------------------------------------------------------------- function Save_Callback(hObject, eventdata, handles) % hObject handle to Save (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [file,path] = uiputfile('*.wav','Save file'); if ~isequal(file, 0) wavwrite(handles.data,file); guidata(hObject,handles); else return; end % -------------------------------------------------------------------- function Exit_Callback(hObject, eventdata, handles) % hObject handle to Exit (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
L 5
% handles structure with handles and user data (see GUIDATA) keluar=questdlg(['Exit Program?'],['Close Aplication'], 'Yes','No','Yes'); if strcmp(keluar,'No') return; end delete(handles.figure1) % -------------------------------------------------------------------- function File_Callback(hObject, eventdata, handles) % hObject handle to File (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function Filtering_Callback(hObject, eventdata, handles) % hObject handle to Filtering (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.Filtering,'enable','on'); set(handles.uipanel4,'visible','on'); datain=get(handles.datain,'string'); datas = handles.data; z = handles.z; %data yang diambil nilai_band1=round(get(handles.slider14,'value')); nilai_band2=round(get(handles.slider15,'value')); nilai_band3=round(get(handles.slider16,'value')); nilai_band4=round(get(handles.slider17,'value')); nilai_band5=round(get(handles.slider18,'value')); %pemeriksaan masukan [datvar] = cekin(datas); %pengecekan data input if datvar==1; handles.nilai_band1 = nilai_band1; handles.nilai_band2 = nilai_band2; handles.nilai_band3 = nilai_band3; handles.nilai_band4 = nilai_band4; handles.nilai_band5 = nilai_band5; %input tetap tw = 400; pr = 0.01; sa = 60; fs = 44000; kebit = 32; inbit = 32; outbit = 32; %pemrosesan data masukan data = handles.data'; b_atas = handles.data_awal; b_bawah = handles.data_akhir; dataq = des2bin(data,inbit); %data awal masukan
L 6
uk=size(dataq); x1=dataq(b_atas:b_bawah); %data yang diberikan pengguna %nilai input band 1 fc1 = 500; fc2 = 4500; sa1 = sa - handles.nilai_band1; %memanggil fungsi optimal methode hn1 = optimalmethod1(fc1,fc2,tw,pr,sa1,fs); %menampilkan jumlah kofisien filter N1 = length(hn1); %set(handles.text20,'string',N1); %jenis struktur tapisyang digunakan transversal structure hs1=hn1; hnq1=des2bin(hs1,kebit); [yq1, y1] = transIn(hnq1,x1,outbit); yq1 = yq1; handles.yq1 = yq1; hns1=hnq1; %nilai input band 2 fc1_2 = 4500; fc2_2 = 8500; sa2 = sa - handles.nilai_band2; %memanggil fungsi optimal methode hn1_2 = optimalmethod2(fc1_2,fc2_2,tw,pr,sa2,fs); %menampilkan jumlah kofisien filter N2 = length(hn1_2); %set(handles.text21,'string',N2); %jenis struktur tapisyang digunakan transversal structure hs1_2=hn1_2; hnq1_2=des2bin(hs1_2,kebit); [yq1_2, y1_2] = transIn(hnq1_2,x1,outbit); yq1_2 = yq1_2; handles.yq1_2 = yq1_2; hns1_2=hnq1_2; %nilai input band 3 fc1_3 = 8500; fc2_3 = 12500; sa3 = sa - handles.nilai_band3; %memanggil fungsi optimal methode hn1_3 = optimalmethod3(fc1_3,fc2_3,tw,pr,sa3,fs); %menampilkan jumlah kofisien filter N3 = length(hn1_3); %set(handles.text22,'string',N3); %jenis struktur tapisyang digunakan transversal structure hs1_3=hn1_3; hnq1_3=des2bin(hs1_3,kebit); [yq1_3, y1_3] = transIn(hnq1_3,x1,outbit); yq1_3 = yq1_3; handles.yq1_3 = yq1_3; hns1_3=hnq1_3;
L 7
%nilai input band 4 fc1_4 = 12500; fc2_4 = 16500; sa4 = sa - handles.nilai_band4; %memanggil fungsi optimal methode hn1_4 = optimalmethod4(fc1_4,fc2_4,tw,pr,sa4,fs); %menampilkan jumlah kofisien filter N4 = length(hn1_4); %set(handles.text23,'string',N4); %jenis struktur tapisyang digunakan transversal structure hs1_4=hn1_4; hnq1_4=des2bin(hs1_4,kebit); [yq1_4, y1_4] = transIn(hnq1_4,x1,outbit); yq1_4 = yq1_4; handles.yq1_4 = yq1_4; hns1_4=hnq1_4; %nilai input band 5 fc1_5 = 16500; fc2_5 = 20500; sa5 = sa - handles.nilai_band5; %memanggil fungsi optimal methode hn1_5 = optimalmethod5(fc1_5,fc2_5,tw,pr,sa5,fs); %menampilkan jumlah kofisien filter N5 = length(hn1_5); %set(handles.text24,'string',N5); %jenis struktur tapisyang digunakan transversal structure hs1_5=hn1_5; hnq1_5=des2bin(hs1_5,kebit); [yq1_5, y1_5] = transIn(hnq1_5,x1,outbit); yq1_5 = yq1_5; handles.yq1_5 = yq1_5; hns1_5=hnq1_5; [amp1_1,f0_1] = freqz(hns1,1,z,fs); mag1_1 = 20*log10(abs(amp1_1)); mag1_1 = mag1_1 - handles.nilai_band1; [amp1_2,f0_2] = freqz(hns1_2,1,z,fs); mag1_2 = 20*log10(abs(amp1_2)); mag1_2 = mag1_2 - handles.nilai_band2; handles.amp1_2 = amp1_2; [amp1_3,f0_3] = freqz(hns1_3,1,z,fs); mag1_3 = 20*log10(abs(amp1_3)); mag1_3 = mag1_3 - handles.nilai_band3; handles.amp1_3 = amp1_3; [amp1_4,f0_4] = freqz(hns1_4,1,z,fs); mag1_4 = 20*log10(abs(amp1_4)); mag1_4 = mag1_4 - handles.nilai_band4; handles.amp1_4 = amp1_4; [amp1_5,f0_5] = freqz(hns1_5,1,z,fs);
L 8
mag1_5 = 20*log10(abs(amp1_5)); mag1_5 = mag1_5 - handles.nilai_band5; handles.amp1_5 = amp1_5; %%menampilkan grafik tanggapan frekuensi dengan 5 bandpass filter %dan menampilkan jumlah koefisien dari masing-masing band pass axes(handles.grafik3) set(handles.text20,'string',N1); set(handles.text21,'string',N2); set(handles.text22,'string',N3); set(handles.text23,'string',N4); set(handles.text24,'string',N5); plot (f0_1,mag1_1,'blue',f0_2,mag1_2,'green',f0_3,mag1_3,'red',f0_4,mag1_4,'cyan',f0_5,mag1_5,'magenta') xlabel('Frequency(Hz)') ylabel('Magnitude Response (dB)') legend('filter 1','filter 2','filter 3','filter 4','filter 5','location','northeast'); guidata(hObject,handles); %meng-non-enable-kan tombol save set(handles.Save,'enable','off'); else return; end %end % -------------------------------------------------------------------- function Equalizing_Callback(hObject, eventdata, handles) % hObject handle to Equalizing (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function Optimal_Callback(hObject, eventdata, handles) % hObject handle to Optimal (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) OptimalHelp; % -------------------------------------------------------------------- function Program_DGE_Callback(hObject, eventdata, handles) % hObject handle to Program_DGE (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) ProgHelp; % -------------------------------------------------------------------- function Pembuat_Callback(hObject, eventdata, handles) % hObject handle to Pembuat (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) pembuatsari % -------------------------------------------------------------------- function Help_Callback(hObject, eventdata, handles) % hObject handle to Help (see GCBO)
L 9
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- % --- Executes when figure1 is resized. function figure1_ResizeFcn(hObject, eventdata, handles) % hObject handle to figure1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %-------------------------------------------------------------------------- %-------------------------------------------------------------------------- function bineq = des2bin(des,bit) %des2bin merupakan fungsi untuk mengubah suatu nilai %desimal menjadi biner equivalent sesuai jumlah bit %yang diinginkan. m = 1; %mengubah semua nilai desimal menjadi positif d = abs(des); %mengubah nilai integer menjadi nilai fraksional while fix(d) > 0 d = abs(des)/(10^m); m = m + 1; end %menghitung nilai desimal equivalent bineq = 0; for n = 1 : bit-1 bineq = fix(d*2)/(2^n) + bineq; d = (d*2) - fix(d*2); end %mengembalikan tanda(sign)& besar tiap nilai desimal bineq = sign(des) .* bineq * 10^(m-1); function [yq, y] = transIn(hq,xq,outbit) %transIn merupakan fungsi untuk memasukan %suatu data input ke dalam transversal structure N = length(hq); m = length(xq); %hitung panjang keluaran tapis r = N + m - 1; %perhitungan nilai keluaran tapis y=zeros(1,r); yq=zeros(1,r); hbar = waitbar(0,'Please wait...'); for p = 1 : r for k = 1 : N i = p - k + 1; if i <= 0 | i > m a = 0; else a = hq(k)*xq(i); end y(p) = y(p) + a; aq = des2bin(a,outbit); yq(p) = yq(p) + aq; end
L 10
waitbar(p/r,hbar) end close(hbar) %-------------------------------------------------------------------------- %fungsi untuk band 1 dengan frekuensi cut-off1 = 500 Hz dan %frekuensi cut-off2 = 5000 Hz %data yang diambil function hn = optimalmethod1(fc1, fc2, tw, pr, sa1, fs) [ap,as]=konversidB(pr,sa1); f1 = fc1-tw; f2 = fc1; f3 = fc2; f4 = fc2+tw; F = [f1 f2 f3 f4]; M = [0 1 0 ]; dev = [as ap as]; [N,fo,ao,W] = firpmord(F,M,dev,fs); hn = firpm(N,fo,ao,W); %fungsi untuk band 2 dengan frekuensi cut-off1 = 5000 Hz dan %frekuensi cut-off2 = 9000 Hz function hn_2 = optimalmethod2(fc1_2, fc2_2, tw, pr, sa2, fs); [ap,as]=konversidB(pr,sa2); f1_2 = fc1_2-tw; f2_2 = fc1_2; f3_2 = fc2_2; f4_2 = fc2_2+tw; F_2 = [f1_2 f2_2 f3_2 f4_2]; M = [0 1 0 ]; dev = [as ap as]; [N_2,fo_2,ao_2,W_2] = firpmord(F_2,M,dev,fs); hn_2 = firpm(N_2,fo_2,ao_2,W_2); %fungsi untuk band 3 dengan frekuensi cut-off1 = 9000 Hz dan %frekuensi cut-off3 13000 Hz; function hn_3 = optimalmethod3(fc1_3, fc2_3, tw, pr, sa3, fs); [ap,as]=konversidB(pr,sa3); f1_3 = fc1_3-tw; f2_3 = fc1_3; f3_3 = fc2_3; f4_3 = fc2_3+tw; F_3 = [f1_3 f2_3 f3_3 f4_3]; M = [0 1 0 ]; dev = [as ap as]; [N_3,fo_3,ao_3,W_3] = firpmord(F_3,M,dev,fs); hn_3 = firpm(N_3,fo_3,ao_3,W_3); %fungsi untuk band 4 dengan frekuensi cut-off1 = 13000 Hz dan %frekuensi cut-off2 = 17000; function hn_4 = optimalmethod4(fc1_4, fc2_4, tw, pr, sa4, fs);
L 11
[ap,as]=konversidB(pr,sa4); f1_4 = fc1_4-tw; f2_4 = fc1_4; f3_4 = fc2_4; f4_4 = fc2_4+tw; F_4 = [f1_4 f2_4 f3_4 f4_4]; M = [0 1 0 ]; dev = [as ap as]; [N_4,fo_4,ao_4,W_4] = firpmord(F_4,M,dev,fs); hn_4 = firpm(N_4,fo_4,ao_4,W_4); %fungsi untuk band 5 dengan frekuensi cut-off1 = 17000 Hz dan %frekuensi cut-off2 = 21000;; function hn_5 = optimalmethod5(fc1_5, fc2_5, tw, pr, sa5, fs); [ap,as]=konversidB(pr,sa5); f1_5 = fc1_5-tw; f2_5 = fc1_5; f3_5 = fc2_5; f4_5 = fc2_5+tw; F_5 = [f1_5 f2_5 f3_5 f4_5]; M = [0 1 0 ]; dev = [as ap as]; [N_5,fo_5,ao_5,W_5] = firpmord(F_5,M,dev,fs); hn_5 = firpm(N_5,fo_5,ao_5,W_5); function [Ap, As] = konversidB(a,b) Ap =((10^(a/20))-1)/((10^(a/20))+1); As = 10^(b/(-20)); %-------------------------------------------------------------------------- %-------------------------------------------------------------------------- function [datvar] = cekin(datas) %cek masukkan if datas==0 uiwait(errordlg('Insert name of input file','Not Enough Input...','modal')); datvar=0; else datvar=1; end %-------------------------------------------------------------------------- % --- Executes on slider movement. function slider14_Callback(hObject, eventdata, handles) % hObject handle to slider14 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider nilai_band1=round(get(handles.slider14,'value')); if isnan(nilai_band1) | nilai_band1>=44 errordlg('Band 1 tidak dapat lebih dari 43','Warning','modal')
L 12
end handles.nilai_band1 = nilai_band1; guidata(hObject,handles); set(handles.text27,'string',handles.nilai_band1); % --- Executes during object creation, after setting all properties. function slider14_CreateFcn(hObject, eventdata, handles) % hObject handle to slider14 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background, change % 'usewhitebg' to 0 to use default. See ISPC and COMPUTER. usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[.9 .9 .9]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on slider movement. function slider15_Callback(hObject, eventdata, handles) % hObject handle to slider15 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider nilai_band2=round(get(handles.slider15,'value')); %if isnan(nilai_band2) | nilai_band2<=0 % errordlg('Anda harus mengisikan nilai pada Band2','Bad Input','modal') %end handles.nilai_band2 = nilai_band2; guidata(hObject,handles); set(handles.text28,'string',handles.nilai_band2); % --- Executes during object creation, after setting all properties. function slider15_CreateFcn(hObject, eventdata, handles) % hObject handle to slider15 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background, change % 'usewhitebg' to 0 to use default. See ISPC and COMPUTER. usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[.9 .9 .9]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on slider movement. function slider16_Callback(hObject, eventdata, handles)
L 13
% hObject handle to slider16 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider nilai_band3=round(get(handles.slider16,'value')); %if isnan(nilai_band3) | nilai_band3<=0 % errordlg('Anda harus mengisikan nilai pada Band3','Bad Input','modal') %end handles.nilai_band3 = nilai_band3; guidata(hObject,handles); set(handles.text29,'string',handles.nilai_band3); % --- Executes during object creation, after setting all properties. function slider16_CreateFcn(hObject, eventdata, handles) % hObject handle to slider16 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background, change % 'usewhitebg' to 0 to use default. See ISPC and COMPUTER. usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[.9 .9 .9]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on slider movement. function slider17_Callback(hObject, eventdata, handles) % hObject handle to slider17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider nilai_band4=round(get(handles.slider17,'value')); %if isnan(nilai_band4) | nilai_band4<=0 % errordlg('Anda harus mengisikan nilai pada Band4','Bad Input','modal') %end handles.nilai_band4 = nilai_band4; guidata(hObject,handles); set(handles.text30,'string',handles.nilai_band4); % --- Executes during object creation, after setting all properties. function slider17_CreateFcn(hObject, eventdata, handles) % hObject handle to slider17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background, change
L 14
% 'usewhitebg' to 0 to use default. See ISPC and COMPUTER. usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[.9 .9 .9]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % --- Executes on slider movement. function slider18_Callback(hObject, eventdata, handles) % hObject handle to slider18 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider nilai_band5=round(get(handles.slider18,'value')); %if isnan(nilai_band5) | nilai_band5<=0 % errordlg('Anda harus mengisikan nilai pada Band5','Bad Input','modal') %end handles.nilai_band5 = nilai_band5; guidata(hObject,handles); set(handles.text31,'string',handles.nilai_band5); % --- Executes during object creation, after setting all properties. function slider18_CreateFcn(hObject, eventdata, handles) % hObject handle to slider18 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background, change % 'usewhitebg' to 0 to use default. See ISPC and COMPUTER. usewhitebg = 1; if usewhitebg set(hObject,'BackgroundColor',[.9 .9 .9]); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end % -------------------------------------------------------------------- function Filter_Output_Callback(hObject, eventdata, handles) % hObject handle to Filter_Output (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %meng-enable-kan frequency domain set(handles.Filter_Output,'enable','on'); set(handles.uipanel3,'visible','on') yq1 = handles.yq1; yq1_2 = handles.yq1_2; yq1_3 = handles.yq1_3; yq1_4 = handles.yq1_4;
L 15
yq1_5 = handles.yq1_5; %yq1>yq1_2&yq1<yq1_2; yq2_1 = length(yq1)-length(yq1_2); yq1_2 = [yq1_2,zeros(1,yq2_1)]; yq3_1 = length(yq1_2)-length(yq1); yq1 = [yq1,zeros(1,yq3_1)]; %yq1>yq1_3&yq1<yq1_3; yq2_2 = length(yq1)-length(yq1_3); yq1_3 = [yq1_3,zeros(1,yq2_2)]; yq3_2 = length(yq1_3)-length(yq1); yq1 = [yq1,zeros(1,yq3_2)]; %yq1>yq1_4&yq1<yq1_4; yq2_3 = length(yq1)-length(yq1_4); yq1_4 = [yq1_4,zeros(1,yq2_3)]; yq3_3 = length(yq1_4)-length(yq1); yq1 = [yq1,zeros(1,yq3_3)]; %yq1>yq1_5&yq1<yq1_5; yq2_4 = length(yq1)-length(yq1_5); yq1_5 = [yq1_5,zeros(1,yq2_4)]; yq3_4 = length(yq1_5)-length(yq1); yq1 = [yq1,zeros(1,yq3_4)]; %yq1_2>yq1_3&yq1_2<yq1_3; yq2_5 = length(yq1_2)-length(yq1_3); yq1_3 = [yq1_3,zeros(1,yq2_5)]; yq3_5 = length(yq1_3)-length(yq1_2); yq1_2 = [yq1_2,zeros(1,yq3_5)]; %yq1_2>yq1_4&yq1_2<yq1_4; yq2_6 = length(yq1_2)-length(yq1_4); yq1_4 = [yq1_4,zeros(1,yq2_6)]; yq3_6 = length(yq1_4)-length(yq1_2); yq1_2 = [yq1_2,zeros(1,yq3_6)]; %yq1_2>yq1_5&yq1_2<yq1_5; yq2_7 = length(yq1_2)-length(yq1_5); yq1_5 = [yq1_5,zeros(1,yq2_7)]; yq3_7 = length(yq1_5)-length(yq1_2); yq1_2 = [yq1_2,zeros(1,yq3_7)]; %yq1_3>yq1_4&yq1_3<yq1_4; yq2_8 = length(yq1_3)-length(yq1_4); yq1_4 = [yq1_4,zeros(1,yq2_8)]; yq3_8 = length(yq1_4)-length(yq1_3); yq1_3 = [yq1_3,zeros(1,yq3_8)]; %yq1_3>yq1_5&yq1_3<yq1_5; yq2_9 = length(yq1_3)-length(yq1_5); yq1_5 = [yq1_5,zeros(1,yq2_9)]; yq3_9 = length(yq1_5)-length(yq1_3); yq1_3 = [yq1_3,zeros(1,yq3_9)]; %yq1_4>yq1_5&yq1_4<yq1_5; yq2_10 = length(yq1_4)-length(yq1_5); yq1_5 = [yq1_5,zeros(1,yq2_10)]; yq3_10 = length(yq1_5)-length(yq1_4); yq1_4 = [yq1_4,zeros(1,yq3_10)]; yn = yq1+yq1_2+yq1_3+yq1_4+yq1_5; yn = [yn]; handles.yn = yn;
L 16
%-------------------------------------------------------------------------- handles.total_data=length(yn); %fungsi menghitung panjang data input set(handles.text19,'string', handles.total_data); %menampilkan jumlah panjang data dari data input %menampilkan sinyal yang telah difilter dalam domain waktu axes(handles.grafik2) stem(yn) xlabel('Line..(n)') ylabel('Amplitude') guidata(hObject,handles); %meng-enable-kan tombol save set(handles.Save,'enable','on'); % --- Executes on button press in Play_Input. function Play_Input_Callback(hObject, eventdata, handles) % hObject handle to Play_Input (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) datas = handles.data; %pemeriksaan masukan [datvar] = cekin(datas); %pengecekan data input if datvar==1; else return; end %panjang data handles.jumlah_data=length(handles.data); %fungsi menghitung panjang data input set(handles.panjang_data,'string', handles.jumlah_data); %menampilkan jumlah panjang data dari data input handles.data_awal = 1; handles.data_akhir = handles.jumlah_data; %menampilkan grafik dalam domain waktu axes(handles.grafik1) plot(handles.data); xlabel('Line..(n)') ylabel('Amplitude') guidata(hObject,handles); wavplay(handles.data) % --- Executes on button press in Play_Output. function Play_Output_Callback(hObject, eventdata, handles) % hObject handle to Play_Output (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) yn = handles.yn; %panjang data handles.jumlah_data2=length(handles.yn); %fungsi menghitung panjang data input
L 17
set(handles.text19,'string', handles.jumlah_data2); %menampilkan jumlah panjang data dari data input handles.data_awal2 = 1; handles.data_akhir2 = handles.jumlah_data2; %menampilkan grafik domain waktu axes(handles.grafik2) stem(yn); xlabel('Line..(n)') ylabel('Amplitude') wavplay(yn) guidata(hObject,handles); %meng-enable-kan tombol save set(handles.Save,'enable','on'); % --- Executes on button press in Ubah. function Ubah_Callback(hObject, eventdata, handles) % hObject handle to Ubah (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %meminta masukan dari pengguna prompt = 'Data mulai sampel ke: ','sampai sampel ke: '; title = 'Masukkan Jumlah Sampel Data'; num_lines = 1; a = num2str(handles.jumlah_data); b = handles.jumlah_data; default = '1',a; options.Resize='on'; answer = inputdlg(prompt,title,num_lines,default,options); if isempty(answer) return; else %hitung jumlah data yang baru sampel = answer'; handles.data_awal = str2double(sampel(1)); handles.data_akhir = str2double(sampel(2)); if handles.data_awal < 1 | handles.data_awal > b-1 errordlg('0 < sampel awal < jumlah total sampel',... 'Sampel Salah','modal'); elseif handles.data_akhir < handles.data_awal | handles.data_akhir > b errordlg('data awal < data akhir <= jumlah total sampel',... 'Sampel Salah','modal'); else jumlah = (handles.data_akhir - handles.data_awal) + 1; %tampilkan jumlah data yang baru set(handles.panjang_data,'string',jumlah); end end %handles.pjg = get(handles.panjang_data,'string'); z = handles.data_akhir; handles.z = z;
L 18
guidata(hObject,handles); % -------------------------------------------------------------------- function Reset_Callback(hObject, eventdata, handles) % hObject handle to Reset (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) delete(handles.figure1); Equalizer; % --- Executes on button press in pushbutton23. function pushbutton23_Callback(hObject, eventdata, handles) % hObject handle to pushbutton23 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) legend toggle % --- Executes on button press in pushbutton24. function pushbutton24_Callback(hObject, eventdata, handles) % hObject handle to pushbutton24 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) band1 % --- Executes on button press in pushbutton25. function pushbutton25_Callback(hObject, eventdata, handles) % hObject handle to pushbutton25 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) band2 % --- Executes on button press in pushbutton26. function pushbutton26_Callback(hObject, eventdata, handles) % hObject handle to pushbutton26 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) band3 % --- Executes on button press in pushbutton27. function pushbutton27_Callback(hObject, eventdata, handles) % hObject handle to pushbutton27 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) band4 % --- Executes on button press in pushbutton28. function pushbutton28_Callback(hObject, eventdata, handles) % hObject handle to pushbutton28 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) band5
L 19
% --- Executes on button press in pushbutton29. function pushbutton29_Callback(hObject, eventdata, handles) % hObject handle to pushbutton29 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Fs = 11025; %Standard sampling rates for PC-based %audio hardware are 8000, 11025, 2250, %and 44100 samples per second. handles.data = wavrecord(2*Fs,Fs,'single').'; %'single' menunjukkan 16 bits/sample %Be sure to transpose data once it has been received: wavplay(handles.data,Fs); %menampilkan record axes(handles.grafik1) plot(handles.data) xlabel('Line..(n)') ylabel('Amplitude') guidata(hObject,handles); %meng-enable-kan tombol save set(handles.Save,'enable','on'); % --- Executes on button press in pushbutton36. function pushbutton36_Callback(hObject, eventdata, handles) % hObject handle to pushbutton36 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) datas = handles.data; y = fft(datas); m = abs(y); f = (0:length(y)-1)*(44000/2)/length(y); %%menampilkan spektrum sinyal input axes(handles.grafik4) plot(f,20*log10(m)); title('Magnitude'); xlabel('frequency (Hz)') ylabel('Amplitudo') guidata(hObject,handles); % --- Executes on button press in pushbutton37. function pushbutton37_Callback(hObject, eventdata, handles) % hObject handle to pushbutton37 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) datacursormode; % --- Executes on button press in pushbutton38. function pushbutton38_Callback(hObject, eventdata, handles) % hObject handle to pushbutton38 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) yn = handles.yn; tt = (0:1/100:10-1/100); yy = fft(yn);
L 20
mm = abs(yy); ff = (0:length(yy)-1)*(44000/2)/length(yy); %menampilkan spektrum output axes(handles.grafik5) plot(ff,20*log10(mm)); title('Magnitude'); xlabel('frequency (Hz)') ylabel('Amplitudo') guidata(hObject,handles); % --- Executes on button press in pushbutton39. function pushbutton39_Callback(hObject, eventdata, handles) % hObject handle to pushbutton39 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) datacursormode;
L 21
B
HASIL PENGAMATAN
L 22
Hasil Pengamatan
1. Saat band 1, band 3, band 5 diberi penguatan pada -60 dB
Spesifikasi yang diharapkan :
file masukan click.wav
jumlah sampel data masukan 512
band 1 (gain 1) 0 dB
band 2 (gain 2) -30 dB
band 3 (gain 3) 0 dB
band 4 (gain 4) -20 dB
band 5 (gain 5) 0 dB
Gambar aktual :
L 23
Spesifikasi aktual :
2. Saat diberi penguatan yang saling berbeda dengan file sinyal masukan ding.wav
Spesifikasi yang diharapkan :
file masukan ding.wav
jumlah sampel data masukan 4096
band 1 (gain 1) -6 dB
band 2 (gain 2) -16 dB
band 3 (gain 3) -24 dB
band 4 (gain 4) -19 dB
band 5 (gain 5) -2 dB
Gambar aktual :
file masukan click.wav
jumlah sampel data keluaran 889
proses yang dijalankan filtering dan filter output
N1 378
N2 270
N3 378
N4 306
N5 378
L 24
Spesifikasi aktual :
3. Saat diberi penguatan yang semakin kecil dan file masukan bee.wav.
Spesifikasi yang diharapkan :
file masukan bee.wav
jumlah sampel data masukan 1024
band 1 (gain 1) -8 dB
band 2 (gain 2) -18 dB
band 3 (gain 3) -29 dB
band 4 (gain 4) -36 dB
band 5 (gain 5) -45 dB
Gambar aktual :
file masukan ding.wav
jumlah sampel data keluaran 4466
proses yang dijalankan filtering dan filter output
N1 356
N2 321
N3 292
N4 310
N5 371
L 25
Spesifikasi aktual :
file masukan bee.wav
jumlah sampel data keluaran 1372
proses yang dijalankan filtering dan filter output
N1 349
N2 313
N3 274
N4 249
N5 217