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!

11/10/2015

Chaotic Map: Skew Tent Map

Pada tulisan kali ini, saya akan membanding dua bahasa pemrograman yaitu Python dan Octave dalam hal seberapa cepat mereka menghasilkan angka secara acak. Angka acak sendiri dapat dihasilkan dengan menggunakan fungsi interasi dimana kondisi awal diberikan pada suatu fungsi untuk mendapatkan output yang akan digunakan kembali sebagai input pada fungsi yang sama. Dalam simulasi ini, skew tent map yang didefinisikan seperti pada persamaan di bawah ini digunakan sebagai fungsi yang menunjukkan perilaku acak.

$f(x) =
  \begin{cases}
    \displaystyle \frac{x}{c}       & \quad \text{for } 0 \leq x < c\\
    \displaystyle \frac{1-x}{1-c}       & \quad \text{for } c \leq x \leq 1\\
  \end{cases}
$

7/24/2015

Mapping image onto a sphere menggunakan Octave

Ini adalah contoh gambar yang diambil dengan camera360.


Pada bahasan kali ini, saya akan menunjukkan bagaimana cara mem-plot gambar ini pada objek bola untuk melihat dengan jelas efek 360-nya.

4/02/2015

Metode Numerik : Incremental Search Method

"The only way to learn a new programming language is by writing programs in it." Yup ini adalah kalimat yang saya baca ketika pertama kali belajar bahasa pemrograman dan kali ini saya akan mencoba menerapkannya. Metode Numerik adalah materi yang saya pilih di samping Signal Processing untuk menuliskannya dalam bahasa pemrograman (karena Metode Numerik adalah mata kuliah favorit saya hehehe). Ada banyak bahasan dalam Metode Numerik, namun kali ini saya hanya akan membahas tentang bagaimana cara mencari akar-akar persamaan (roots of equations) menggunakan metode numerik dan menuliskan metode tersebut dalam beberapa bahasa pemrograman yaitu Octave (.m), Julia (.jl), Python (.py) dan C (.c).

3/29/2015

Julia Alternatif untuk Komputasi Numerik

Tahukan Anda tentang Julia? bagi yang suka Scientific Computing, Julia adalah bahasa pemrograman yang patut untuk dicoba. Syntax-nya pun cukup familiar dan sangat mudah untuk dipelajari. Dikatakan di official website-nya bahwa kecepatan komputasinya cukup cepat dan mendekati bahasa C.

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.

1/24/2015

Segmentasi Citra berdasarkan Warna menggunakan Octave

Seperti yang sudah kita ketahui, image atau citra adalah suatu imitasi dari sebuah objek yang tersusun dari kombinasi titik, garis, bidang dan warna seperti foto, lukisan dan sebagainya. Contoh paling mudah adalah saat kita mengambil foto dengan handphone kita. Pernahkah kalian mengecek bahwa foto tersebut sesungguhnya terdiri atas 3 buah warna: merah (Red), hijau (Green), dan biru (Blue)? tersusun dari dari deretan angka antara 0 sampai 255? dan sangat mudah untuk dimanipulasi?

Yup, kita akan membuat sebuah program sederhana menggunakan octave yakni segmentasi.

1/23/2015

Octave Alternatif untuk Komputasi Numerik

Octave adalah salah satu open source software yang cukup populer untuk komputasi numerik seperti pada signal processing, numerical methods, image processing dan lain sebagainya. 
Bahasa pemrograman Octave hampir identik dengan Matlab sehingga bagi yang sudah terbiasa dengan Matlab mencoba Octave akan terasa lebih mudah (saya sebelumnya adalah pengguna Matlab).