28
BAB 3 PERANCANGAN SISTEM
3.1
Rancangan Perangkat Keras System ini hanya menggunakan beberapa perangkat keras yang umum
digunakan, seperti speaker (alat untuk menghasilkan suara), dan seperangkat komputer (CPU). Dalam sistem ini, input berupa data file mengenai suara, dan musik yang ada selanjutnya akan diproses oleh CPU, sedangkan speaker berperan untuk menghasilkan suara hasil pemrosesan.
3.1.1
Diagram Blok Sistem FILE DATA
File input data
CPU Proses
data
Speaker dan
antarmuka user
Output suara yang dihasilkan
Gambar 3.1. Diagram Blok system
Fungsi – fungsi dari ketiga blok tersebut : 1. FILE sebagai data input 2. CPU berfungsi sebagai rancangan antar muka user, juga untuk memproses sinyal suara dan music 3. Speaker berguna untuk mengeluarkan output dari proses pengolahan sinyal.
29 3.1.2
Cara Kerja Sistem DataInput yang dibutuhkan yaitu file lagu dalam format .wav. Apabila data
tersebut bukan dalam format wav, maka terlebih dahulu harus diubah menjadi format .wav. Data inputan tersebut kemudian akan dilakukan proses pengolahan sinyal dengan melalui beberapa tahap, yaitu filterisasi dan pemrosesan pengaturan sinyal. Tahap filterisasi meliputi filterisasi frekuensi rendah (Low Pass Filter) dan filterisasi frekuensi tinggi (High Pass Filter). Low Pass Filter dan High Pass Filter berguna untuk menghilangkan sinyal – sinyal yang frekuensi nya tidak diperlukan, sehingga diperoleh sinyal yang sudah lebih baik, untuk diatur kembail amplitudonya. Kemudian pada proses pengaturan sinyal, akan dilakukan pengurangan amplitudo yang berlebihan, untuk mendapatkan sinyal suara yang lebih jernih. Pada kedua tahap tersebut, nilai frekuensi yang dihilangkan serta pengurangan amplitudo diatur dengan logika fuzzy. Kemdian setelah diatur sedemikian rupa maka perlu dihilangkan noise – noise yang mengganggu. Setelah itu data output hasil dari proses keluar, maka data tersebut diubah kembali menjadi format mp3.
30
Mulai
Menentukan format suara
T
format WAV?
Ubah menjadi Format WAV
Y
Input Data
Analisa data audio
Lakukan Proses Pengolahan Sinyal
Proses utama
Keluarkan data output
Ubah kembali menjadi data mp3
Gambar 3.2 Skema Data Flow Diagram alur kerja sistem
31 3.1.3
Analisis Data Audio Setelah data diubah menjadi data wav ( data berupa gelombang atau sinyal ),
barulah dapat kita analisa terlebih dahulu. Data tersebut dianalisa untuk mendapatkan data – data berupa frekuensi, panjang gelombang, cepat rambat gelombang tersebut (kecepatan gelombang ), periode, bit, dan waktu. Matlab Algorithm file_data = music_test.wav; [y, Fs, nbits, readinfo] = wavread(file_data); Penjelasan: -
Variable File_data merupakan digunakan untuk menampung data lagu.
-
Variable ‘y’ digunakan untuk menyimpan data gelombang atau sinyal yang berupa array ( y[ ∞ 1] ). ‘y’ juga menentukan panjang gelombang atau panjang sinyal dari data audio tersebut. Sebagai contoh:
Matlab Algorithm [y] = wavread(‘data.wav’); => membacadata y; => panggil isi dari y
32 Maka hasil output dari y yaitu: 1 2 3 4 5 6 7 8 : : n
0 -0.0062 -0.0750 -0.0312 0.0062 0.0381 0.0189 -0.0250 : : 0.0062
Gambar 3.3 Hasil dari Output dari y dalam grafik
-
Variabel ‘Fs’ merupakan variable yang digunakan untuk menampung nilai frekuensi dari data tersebut.
-
Sedangkan ‘nbits’ merupakan variable untuk menampung informasi tipe atau jenis data bits yang disampaikan dari data audio tersebut.
33 -
‘readinfo’ merupakan variable yang berisi informasi dari cara pembacaan data tersebut.
3.1.4
Proses Pengolahan Sinyal Proses pengolahan sinyal akan melalui beberapa tahap menurut berdasarkan
data hasil analisa yang didapat dari tahap penganalisa data. Dari proses ini akan dilakukan manipulasi data.Contoh dari proses – proses manipulasi data itu seperti manipulasi pada frekuensi, amplitude, waktu, periode, panjang gelombang. Tapi disini yang akan dilakukan manipulasi adalah pada amplitude, dan panjang gelombang. Adapun beberapa metode dan teknik yang dipakai yaitu metode fuzzy logic dan teknik filtering, kemudian pengurangan noise. Fuzzy logic digunakan untuk menentukan seberapa kuat atau lemah shelombang sinyal tersebut, yang kemudian nantinya akan digolongkan ke dalam kelas-kelas. Filterisasi terdiri dari low pass filtering , high pass filtering dan stop band filtering. Low pass filtering, high pass filtering, dan stop band filtering merupakan tahap proses filterisasi, untuk melakukan meredam frekuensi yang tidak perlu dalam suatu sinyal. Filterisasi yang akan dipakai pada penelitian ini adalah stop band filtering. Setelah tahap filterisasi, maka akan dilakukan tahap pengurangan noise yang berlebihan atau tidak perlu untuk mendapatkan kejelasan suara. Setelah noise dikurangi maka data diatur kembali untuk menjadi lebih jernih pada tahap akhir.
34
Mulai Melakukan proses filterisasi Stop band filtering
Analisa data dengan metode Fuzzy Logic
Ambil nilai karakteristik dari data sinyal input T Sinyal terlalu kuat?
Kuatkan sinyal
Y Lemahkan sinyal Keluarkan hasil analisa
Keluarkan data output
Gambar.3.4 Skema Data Flow Diagram proses pengolahan sinyal
35 3.1.5
Fuzzy Logic Pada tahap ini akan dilakukan analisa untuk mendeteksi bagaimana data
tersebut akan diperbarui. Fungsi fuzzy logic berguna untuk memanipulasi data sinyal, yaitu menguatkan atau melemahkan sinyal, bergantung dari nilai karakteristik data sinyal tersebut. Cara kerja dari fuzzy logic itu sendiri yaitu membagi-bagi area penggolongan sinyal. Contoh: Sinyal dibawah nilai 100 adalah lemah, sinyal diatas 300 adalah kuat, dan sinyal diantara 100-300 adalah normal. Maka aturan yang dipakai adalah seperti berikut; IF nilai < 100 THEN A_sinyal = nilai*4; ELSE IF nilai > 300 THEN A_sinyal = nilai/5; ELSE IF nilai >100 & nilai < 300 THEN A_sinyal = nilai*1.5 END IF
3.1.6
Filtering Tahap ini merupakan tahap untuk memfilterisasi data, guna mendapatkan
data yang lebih jernih dibandingkan yang sebelumnya. Tahap filtering ada 3 (tiga)
36 macam pilihan yaitu low pass filtering, high pass filtering, dan stop band filtering. Data – data akan difilter berdasarkan nilai yang telah ditentukan. Pada tahap filterisasi ini nilai untuk frekuensi itu berkisar antara 0 sampai 1. Pada matlab Filter diuraikan menjadi 2 (dua) batas vector, yaitu seperti [b, a] = [numerator, denominator].
3.1.6.1 Low Pass Filtering Low Pass Filtering akan menghilangkan atau meredam frekuensi yang lebih besar dibandingkan dengan nilai yang telah ditentukan. Misalkan kita ingin menghilangkan atau meredam frekuensi – frekuensi diatas 200hz, maka contohnya seperti : file = wavread(‘handel.wav’); values = 200 / (f/2); [b, a] = butter(10, values,’low’); low_pass = filtfilt(b,a,file);
Gambar 3.5 sinyal sebelum di filter, sinyal pada frekuensi 8000hz
37
Gambar 3.6 Sesudah di filter, sinyal – sinyal hanya dibawah 200hz
3.1.6.2 High Pass Filtering High Pass Filtering akan menghilangkan atau meredam frekuensi yang lebih kecil dibandingkan dengan nilai yang telah ditentukan. Misalkan kita ingin menghilangkan atau meredam frekuensi – frekuensi dibawah 2500hz, maka contohnya seperti : file = wavread(‘handel.wav’); values = 2500 / (f/2); [b, a] = butter(10, values,’high’); high_pass = filtfilt(b,a,file);
38
Gambar 3.7 sinyal sebelum difilter,sinyal dengan frekuensi 8000Hz
Gambar 3.8 Sesudah difilter, hanya sinyal di atas 2500hz
3.1.6.3 Stop Band Filtering Stop Band Filtering akan menghilangkan atau meredam frekuensi antara dua nilai yang telah ditentukan. Misalkan kita ingin mengambil frekuensi – frekuensi antara 200hz - 2500hz saja, maka contohnya seperti :
39 file = wavread(‘handel.wav’); values = [200/(fs/2), 2500/ (fs/2)]; [b,a] = butter(10,values,'stop'); Stop_band = filtfilt(b,a, y);
Gambar 3.9 sinyal sebelum difilter, sinyal dengan frekuensi 8000Hz
Gambar 3.10 Setelah Di filter, hanya sinyal antara 200hz – 2500hz saja
40 3.1.7
Sine Wave Improvement Metode analisis dan proses dengan menggunakan gelombang sinus
merupakan fungsi matematika yang menjelaskan osilasi berulang halus. Pada system ini, metode sine wave improvement berguna untuk memproses sinyal untuk mendapatkan hasil sinyal output yang lebih jernih dan baik dibandingkan semula. Seperti pada bab 2, fungsi sinyal itu adalah sebagai berikut:
y(t) = A.sin 2πφ dimana φ merupakan ‘f * t’ atau bisa juga dengan ‘t / 1/fs’ dimana ‘1/fs = T’. Jika fungsi ini dimasukkan ke dalam matlab, maka akan seperti berikut: file_data = music_test.wav; [y, Fs, nbits, readinfo] = wavread(file_data); t = length(y); amplitude = y/sin(2*pi*fs*(t/(1/fs))); sin_wave = amplitude* sin(2*pi*fs*(t/(1/fs))); dimana pi = 3.14. melalui fungsi ini, maka data sinyal dapat dimanipulasi dengan lebih baik lagi guna mendapatkan data yang jauh lebih jernih.
3.2 Struktur menu Berdasarkan fungsi-fungsi diatas maka bisa dibuat suatu struktur menu. Struktur menu berisi point-point penting dimana nantinya pemakai dapat menggunakan perangkat lunak ini dengan mudah. Point-point itu terdiri dari input
41 data, analisa data, proses, dan output. Alur proses dari struktur menu dapat dilihat melalui gambar state transition diagram (STD) dibawah.
Ambil data Test suara Data dijalankan
Data dibuka dan dianalisa proses
proses
Proses Pemrosesan Audio selesai
test data output
Jalankan data output
Output data analisa
Gambar 3.11 rancangan State Transition Diagram
Berdasarkan state transition diagram diatas, pertama-tama pemakai mengambil data untuk dimasukkan sebagai input, setelah itu data dibuka dan dianalisa langsung melalui sistem. Pemakai dapat melihat data-data dari data input suara juga dapat mendengarkan suara dari data input. Setelah itu jalankan pemrosesan data, kemudian data output dihasilkan. Pemakai dapat melihat hasil
42 perbandingan dari data input dengan data output. Pemakai juga dapat menjalankan hasil dari data output tersebut. Berikut adalah pseudocode untuk perancangan sistem pada bagian pemrosesan data. data = input_lagu; tipe = input_tipe; wave_value = get(value(data)); wave_ length = get(length(data)); frekuensi = get(fs(data)); t = get(time(data)); T= 1/frekuensi point_value = wave_value’ * wave_value; FOR i=0;i++;i<wave_length IF(wave_value[i].frekuensi < 500) { wave_value[i] = 0; } ELSE IF(wave_value[i].frekuensi > 2500) { wave_value[i] = 0; } END IF END FOR
43 A = wave_length / sin(2*3.14*fs* (t/T)); IF(tipe = single_sound) IF (wave_value < 300) THEN new_wave = 5*A * sin((2*pi*2fs*(2*t/(1/fs))); ELSE IF (wave_value > 650) THEN new_wave = A/5 * sin((2*pi*fs*(t/(1/fs))); ELSE IF (wave_value > 300 & wave_value < 650) THEN new_wave = 1.5*A * sin((2*pi*2*fs*(2*t/(1/fs))); END IF END IF IF(tipe = music) IF (wave_value < 500) THEN new_wave = 5*A * sin((2*pi*2fs*(2*t/(1/fs))); ELSE IF (wave_value > 3000) THEN new_wave = A/5 * sin((2*pi*fs*(t/(1/fs))); ELSE IF (wave_value > 500 & wave_value < 3000) THEN new_wave = 1.5*A * sin((2*pi*2*fs*(2*t/(1/fs))); END IF END IF
44 3.3 Tampilan User Interface Dalam sistem ini, pengguna dapat berinteraksi dengan program melalui sebuah tampilan user interface yang telah dirancang sedemikian rupa guna mempermudah pengguna dalam mengoperasikan sistem ini. Berikut merupakan gambar dari tampilan user interface yang digunakan dalam system control kualitas suara speaker ini. Untuk user interface ini digunakan bahasa pemrograman matlab. Rancangannya adalah sebagai berikut
Open file
Clear
Close
Diagram Data
Int1
Int2
Intb1
check
Intb2
Proses analyse Hasil Analisis Data Awal
Hasil Analisis Data Akhir
Gambar 3.12 Rancangan user Interface
check
45 3.2.1
Penjelasan Open File berfungsi untuk mengambil file yang akan di analisis dan proses.
File yang akan diambil adalah file format wav. Berikut adalah cara pemanggilannya dalam Matlab. Pada saat data tersebut sudah dipilih dan disubmit, maka akan langsung diproses untuk mendapatkan data dalam bentuk sinyal gambar (normalnya adalah langsung berupa data gelombang/wave) dan ditampilkan pada kotak diagram data awal. Tombol wave digunakan untuk menampilkan sinyal dalam bentuk wave, sedangkan tombol specgram adalah untuk menampilkan dalam bentuk spectogram. Data sinyal yang dimasukkan bisa berupa data sinyal yang panjang sekali, karena itu dibuat input text (int1 dan int2, intb1 dan intb2), yaitu untuk melakukan pengecekan secara spesifik pada panjang sinyal yang ditentukan berdasarkan input dari user. Inputan harus berdasarkan panjang sinyal itu sendiri, tidak dapat lebih dan tidak dapat negative nilainya. Fungsi daripada tombol analyse yaitu, untuk menganalisa data sinyal inputan dari user. Hasil dari analisa tersebut akan menampilkan data – data informasi dari data sinyal input tersebut. Data yang didapat tersebut berupa frekuensi, panjang gelombang, waktu, periode. Data data tersebut akan ditampilkan dalam kotak ‘Hasil analisis data awal’. Tombol proses merupakan inti dari pada perangkat lunak yang dibuat ini. Melalui tombol proses ini, maka data sinyal akan diproses untuk menjadi data output yang baru yang lebih baik dibandingkan yang sebelumnya. Ketika proses dilakukan, maka data sinyal input akan mulai difilterisasi. Filterisasi untuk membuang atau meredam sinyal – sinyal yang tidak diperlukan, atau dianggap mengganggu. Proses
46 filterisasi ini mengandung metode fuzzy logic, untuk menentukan yang mana yang akan diredam atau dibuang. Setelah data sinyal telah difilterisasi, maka noise – noise yang ada pada sinyal tersebut akan dibuang dan data sinyal tersebut diperjernih dengan metode sine wave improvement. Setelah data selesai diproses, maka output akan keluar. Output keluar dalam 2 (dua) bentuk, yaitu data sinyal (format wav) dan data hasil analisa sinyal output. Data sinyal output akan langsung ditampilkan pada kolom ‘Hasil Analisis Akhir’. Sedangkan data output disimpan pada folder matlab\work. Tombol ‘Close’ digunakan untuk menutup aplikasi atau perangkat lunak.