Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

12/22/2016

Mendapatkan Impulse Response menggunakan sinyal TSP

Hello, kali ini sedikit akan membahas tentang akustik lagi yaitu impulse response. Impulse response atau transfer function bisa dikatakan sebuah model dari propagasi suara. Dalam prakteknya, propagasi suara akan berbeda-beda tergantung pada lingkungannya. Misalnya seperti diilustrasikan pada gambar di bawah, suara yang direkam oleh mikrofon tidak hanya berasal langsung dari mulut pembicara, tetapi termasuk juga refleksi dari lantai ataupun dinding. Bagaimana suatu lingkungan mempengaruhi suara dapat dideskripsikan oleh impulse response dan inilah yang akan kita coba ukur.
 
Ilustrasi suara langsung dengan beberapa refleksi
Pada tulisan ini, saya membuat code untuk TSP menggunakan Octave berdasarkan referensi paper berikut ini: "Suzuki, Y., Asano, F., Kim, H. Y., & Sone, T. (1995). An optimum computer‐generated pulse signal suitable for the measurement of very long impulse responses. The Journal of the Acoustical Society of America, 97(2), 1119-1123". Hasil program berupa suara TSP yang kemudian dibunyikan oleh speaker dan direkam oleh mikrofon. Hasil rekaman akan dianalisa kembali oleh program dan hasil akhirnya berupa impulse response dari tempat yang kita ukur. Gambar di bawah ini menunjukkan contoh hasil impulse response yang telah diberi label dan diplot dalam grafik semi-log time domain.

Contoh impulse response yang telah diberi label dan diplot dalam grafik semi-log time domain.

7/03/2016

Jupyter Notebook: aplikasi web untuk Scientific Computing, menunjang sekitar 40 bahasa pemrograman

Jupyter Notebook, aplikasi web yang saya kira cukup menarik dan akan bermanfaat terutama untuk proses belajar mengajar ataupun tutorial. Aplikasi ini mengijinkan kita membuat dokumen yang berisi kode (sekitar 40 bahasa pemrograman tersedia), persamaan-persamaan (bisa dibuat menggunakan LaTeX), visualisasi (matplotlib Python atau GNUplot di Octave) beserta keterangannya. Notebook yang anda buat nantinya akan mudah sekali untuk dishare menggunakan email, Dropbox dll. Lebih lengkapnya tentang Jupyter Notebook dapat diakses di link ini http://jupyter.org/. Sedangkan pada tulisan kali ini, saya akan menjelaskan tentang bagaimana cara menginstall Octave, Julia dan Python pada Jupyter Notebook dan sedikit contoh cara menggunakan ketiga bahasa pemrograman tersebut untuk plotting grafik di Jupyter Notebook. 


2/27/2016

Membaca Data GPS (latitude/longitude) dan Memplotnya pada Openstreetmap Menggunakan Python

Pada bahasan sebelumnya tentang Raspberry Pi dan GPS kita telah berhasil mendapatkan data GPS menggunakan gpsd daemon. Kali ini, kita akan sedikit bermain dengan python untuk membaca data latitude/longitude dari GPS dan memplotnya  pada OpenStreeMap seperti pada contoh di bawah ini.


2/21/2016

Membuat Peta Gempa Bumi menggunakan Python

Tujuan dari tulisan kali adalah membuat Peta Gempa Bumi seperti pada gambar di bawah ini dengan menggunakan Python. Untuk mengetahui bagaimana cara membuatnya, silahkan baca lebih lanjut tulisan ini.


1/15/2016

Membaca Input Analog menggunakan MCP3008 dan Raspberry Pi

Banyak sekali website yang membahas tentang membaca analog input terutama di link ini adafruit yang merupakan sumber utama dari tulisan ini. Setelah membeli Raspberry Pi 2, MCP3008 (yang berfungsi sebagai analog to digital converter), resistor 10k dan FSR (Force Sensitive Resistor) dari amazon, saya mengikuti tutorial pada link tersebut dan mendokumentasinya seperti pada gambar di bawah ini. Untuk lebih lengkap bagaimana cara membaca input analog menggunakan MCP3008 dan Raspberry Pi silahkan baca tulisan ini lebih lanjut.
 
My Raspberry Pi 2

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}
$

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.