Friday, December 6, 2019

Buku Dasar-Dasar Pengolahan Sinyal Digital dengan Matlab-Teknik Pemisahan Suara yang Berurutan-Sequence



Melanjutkan tulisan sebelumnya (http://www.softscients.web.id/2019/11/belajar-dasar-dasar-sinyal.html) dengan judul Belajar Dasar-Dasar Sinyal mulai dari Frekuensi, Sample Rate/Cuplikan, Domain Waktu, Domain Frekuensi, serta contoh penerapannya secara nyata pada sinyal audio nada piano. Nah sekarang penulis lanjutkan sedikit mengenai Pemisahan Suara yang Berurutan/Sequence. Dalam penggabungan sinyal ada 2 macam seperti tulisan Belajar Dasar-
Dasar Sinyal yaitu
\([A+B]\): yang berarti 2 sinyal atau lebih dibunyikan secara bersama-sama
\([A,B]\): yang berarti 2 sinyal dibunyikan secara berurutan

Nah yang kita bahas pada tulisan kali ini adalah kasus yang sederhana yaitu \([A,B]\) sesuai dengan plot Domain Waktu dibawah ini yaitu terdiri dari 6 suara yang dibunyikan secara berurutan.



Algoritma yang digunakan seperti berikut
  1.     Operasi Blocking
  2.     Operasi Windowing
  3.     Operasi Powering
  4.     Penentuan Batas/Thresholding
  5.     Pencarian Peak


Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id

Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link

Operasi Blocking

Digunakan untuk memisahkan sinyal perblock secara overlapping
 
Ref: https://dsp.stackexchange.com/questions/36509/why-is-each-window-frame-overlapping

dimana M panjang tiap frame dan N overlapping tiap frame-nya.

 
Kemudian kita akan melakukan operasi frame blocking
Berikut jika menggunakan M = 4 dengan N = 3 (selisih antar block)

 

Kembali ke bitrate yang digunakan file audio yaitu 44100 Hz/detik, sehingga kita putuskan menggunakan waktu 0.02 detik atau 0.02 x 44100 = 882 sebagai nilai M dan 400 sebagai N nya. Kamu bisa lihat sejumlah block (ada 7 block saja yang ditampilkan).

 

Operasi Windowing

Setiap block akan diterapkan operasi  windowing  yang berguna untuk memperhalus ujung kiri dan kanan, perhatikan 2 sinyal berikut yang saling overlapping, akan terlihat bahwa sinyal smooth (yang sudah diterapkan windowing)
 

rumus umum seperti berikut



Ref: https://docs.scipy.org/doc/scipy-0.19.1/reference/generated/scipy.signal.hamming.html
Kamu bisa mencoba beragam windowing seperti
  1.     Triangular window
  2.     Parzen window
  3.     Welch window
  4.     Sine window
  5.     Cosine-sum windows
  6.     Blackman window
Lebih jelasnya ref: https://en.wikipedia.org/wiki/Window_function

Sekarang kamu bisa melihat penerapan hamming window dibawah ini , dengan tiap ujung lebih halus
 

Operasi Powering

Tiap – tiap block akan diberikan powering agar terlihat peak-peak sinyal, dengan rumus berikut
Makin jelas perbedaannya, hal ini bisa dikatakan bahwa area sinyal terdiri dari 6 sinyal.

Penentuan Nilai Ambang Batas dan Peak Powering

Hal penting selanjutnya yaitu penentuan ambang batas, dalam kasus ini dibuat 0.5 serta dicari peak powering (titik bulatan) seperti berikut
 
Sehingga sinyal suara akan terlihat jelas lagi yaitu bagian yang diberi warna biru
 
Setelah ditemukan titik-titik peaknya, maka hasil akhir sebagai berikut yaitu reverse dari area block yang diindikasikan sebagai area sinyal akan diberi warna-warna selain biru.
 
Akhirnya kita bisa memisahkan 6 sinyal secara berurutan yaitu terdapat 6 suara (voice) yang terpisah dengan non suara (unvoiced) berdasarkan amplitudo nya yang rendah, biar lebih jelasnya ditampilkan dalam versi 3 Dimensi secara berurutan.
 
Selesai sudah pembahasan kita mengenai pemisahan suara yang berurutan, penulis sengaja membuat semuanya dalam bentuk plotting grafik di Matlab agar kalian mudah memahami secara visual step by stepnya, secara code menjadi rumit untuk menampilkan visualisasi diatas.

untuk pembahasan selanjutnya cukup rumit yaitu pemisahan sinyal yang berbunyi secara bersama-sama, tentu teknik yang digunakan akan berbeda yaitu menggunakan analisis frekuensi, seperti gambar berikut jika 6 nada dibunyikan secara bersama-sama, maka secara visual menjadi seperti berikut:

Semuanya hampir mirip satu sama lainnya secara domain waktu.

Dukung blog ini agar menjadi lebih baik dengan cara subscribe email mu panel dibagian kanan

No comments:

Post a Comment