Showing posts with label Signal Processing. Show all posts
Showing posts with label Signal Processing. Show all posts

11/22/2015

11/21/2015

Independent Component Analysis (ICA) menggunakan Python

Tulisan kali ini membahas hal yang sama persis dengan tulisan sebelumnya yakni tentang ICA. Letak perbedaannya adalah pada tulisan sebelumnya (bisa dilihat di link ini) saya menggunakan Octave. Sedangkan pada kesempatan kali ini saya mencoba menggunakan Python. Jadi, isi tulisan kali ini hanya berisi pengaplikasian Python code pada ICA saja tanpa disertai dengan penjelasan terkait ICA itu sendiri. Tidak ada alasan khusus kenapa saya menuliskan ICA menggunakan Python meski sangat banyak sekali code tentang ICA di internet yang lebih cepat dan efisien. Ini hanyalah sekedar tulisan seorang "beginner" yang sedang belajar tentang Python untuk Scientific Computing. Oke let's start!

3/24/2015

Pemisahan Suara menggunakan Binary Masking (BM)


Ketika berbicara di suatu tempat yang ramai, kita tetap bisa fokus pada apa yang disampaikan oleh lawan bicara meskipun suara yang terdengar tercampur dengan noise di sekitarnya. Mendengar dan fokus pada suara yang ingin kita dengar adalah hal yang mudah bagi kita, manusia. Namun, itu adalah hal yang rumit di signal processing. Banyak sekali penelitian terkait pemisahan suara yang bisa kita temukan melalui google (ketik saja "source separation") dan pada kesempatan ini, saya akan mengulas tentang pemisahan suara melalui simulasi dengan metode yang sangat sederhana yaitu Binary Masking. Pastikan anda telah membaca dan mencoba postingan sebelumnya terkait Short-Time Fourier Transform (STFT) sebelum melanjutkan bacaan ini karena metode yang akan kita buat ini menggunakan STFT.


2/06/2015

Perfect Reconstruction: Short-Time Fourier Transform (STFT) dan Invers-nya menggunakan half-cycle sine window

Short-time Fourier Transform (STFT) artinya transformasi fourier dari masing-masing blok sinyal yang diperoleh dari proses windowing suatu sinyal. Seperti yang sudah kita ketahui sebelumnya, jika kita menerapkan fft pada suatu sinyal, kita hanya akan mendapatkan informasi frekuensi dengan cukup akurat namun tanpa informasi waktu dari suatu sinyal dan begitu pula sebaliknya. Nah STFT menjembatani dua hal tersebut, pada saat yang bersamaan STFT akan memberikan informasi waktu dan frekuensi secara temporal. Untuk lebih jelasnya mari kita coba membuat STFT menggunakan Octave. 

1/28/2015

Independent Component Analysis (ICA) menggunakan Octave

Di signal processing, ICA adalah salah satu metode komputasi numerik untuk memisahkan sumber-sumber independen atau sinyal-sinyal independen yang tercampur secara linier dan sinyal tersebut direkam oleh beberapa sensor. Ada banyak algoritma yang digunakan untuk ICA dan salah satu algoritma yang efisien and cukup populer adalah FastICA yang ditemukan oleh Aapo Hyvärinen. Algoritma ini dibangun  berdasarkan fixed-point iteration scheme dengan memaksimalkan non-Gaussianity sebagai parameter untuk mengukur independensi suatu sinyal dan dapat juga diturunkan dari pendekatan iterasi newton.

Cukup komplek jika kita harus menurunkan persamaan ICA, namun cukup mudah untuk menuliskannya dalam Octave. Bahasan Kali ini, kita akan mencoba menuliskan algoritma ICA menggunakan Octave dan mengujinya dengan memisahkan sinyal-sinyal yang tercampur secara linier.

1/27/2015

Fast Fourier Transform (FFT) di Octave

Fast Fourier Transform (FFT) adalah salah satu algoritma untuk menghitung Discrete Fourier Transform (DFT) atau secara sederhana bisa dikatakan mengkonversi data dari domain waktu ke domain frekuensi. Untuk apa dikonversi? tentu untuk mengekstrak informasi tertentu yang tidak bisa kita dapatkan di domain waktu yaitu informasi frekuensi.
Kali ini kita akan mencoba untuk mengetahui informasi frekuensi dari suatu sinyal menggunakan Octave.