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

By | March 22, 2020
Print Friendly, PDF & Email

Sinopsis

Melanjutkan tulisan sebelumnya Buku Dasar-Dasar Pengolahan Sinyal Digital dengan Matlab 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

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 yang terpisah.

 

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

Leave a Reply

Your email address will not be published. Required fields are marked *