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 CPU Speaker
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.
File input data Proses data dan antarmuka user
Output suara yang dihasilkan
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.
T
Y
Proses utama
Gambar 3.2 Skema Data Flow Diagram alur kerja sistem format WAV? Ubah menjadi Format WAV Lakukan Proses Pengolahan Sinyal Keluarkan data output Analisa data audio Ubah kembali menjadi data mp3 Input Data Mulai Menentukan format suara
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
Maka hasil output dari y yaitu: 1 0 2 -0.0062 3 -0.0750 4 -0.0312 5 0.0062 6 0.0381 7 0.0189 8 -0.0250 : : : : n 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.
- ‘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.
T
Y
Gambar.3.4 Skema Data Flow Diagram proses pengolahan sinyal Melakukan
proses filterisasi
Kuatkan sinyal Stop band
filtering
Keluarkan hasil analisa
Keluarkan data output Ambil nilai karakteristik dari data sinyal input
Mulai
Analisa data dengan metode Fuzzy Logic
Lemahkan sinyal Sinyal terlalu
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)
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.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);
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 :
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
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
data, analisa data, proses, dan output. Alur proses dari struktur menu dapat dilihat melalui gambar state transition diagram (STD) dibawah.
Ambil data
Test suara
proses proses
selesai test data output
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
Data dibuka dan dianalisa
Data dijalankan
Pemrosesan Audio
Output data analisa Proses
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
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
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
Gambar 3.12 Rancangan user Interface
Diagram Data
Int1
Open file Clear
Proses
Int2 check Intb1 Intb2 check
Hasil Analisis Data Awal Hasil Analisis Data Akhir
analyse
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
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.