Anda di halaman 1dari 6

[Jans Hendry / EE UGM, Indonesia]

MENGAPA KITA MEMBUTUHKAN FFT???

Pada umumnya, isyarat alami diukur dalam kawasan waktu. Apakah tidak bisa diwakili dalam kawasan frekuensi? tentu bisa, namun itu membutuhkan perlakuan atau pengolahan. Kerap kali pengolahan tersebut diidentikkan dengan metode alih ragam. Mengapa isyarat alami atau yang terekam dikaitkan dengan waktu? Karena isyarat yang terukur mengalami diferensiasi baik amplitude maupun phase dalam perjalanan waktu. Instrument pengukuran dan komponen elektronis yang digunakan juga terbentuk dalam kawasan waktu, misalnya sebuah kapasitor yang mengalami charging dan discharging juga tergantung pada waktu. Penjelasan tersebut merupakan buah pemikiran saja, sehingga bisa dikontradiksi. Sebelum membahas tentang FFT atau Fast Fourier Transform, saya akan memulainya dengan membahas tentang Periode dan Frekuensi. Hal ini penting untuk menjelaskan secara rinci tentang fungsi dari FFT dalam pengolahan isyarat. 1. Periode Secara umum periode didefinisikan sebagai waktu yang dibutuhkan untuk sebuah isyarat atau gelombang mencapai satu gelombang penuh. Tentu definisi ini sangat mudah untuk dimengerti. Bahkan dengan melihat bentuk isyaratnya saja, secara gamblang kita dapat menentukan nilai periodesitasnya. Yang perlu dicermati adalah bahwa pengertian ini berlaku untuk isyarat monokromatis (saya ndak tau apakah istilah ini baku atau tidak). Isyarat monokromatis yang dimaksud adalah gelombangnya bersifat tunggal, dimana dia pasti memiliki sebuah periode. Dengan demikian isyarat itu dikenal dengan istilah periodis. Secara gamblang kita bisa mengenali nilai-nilai yang terkandung di dalam isyarat termasuk nilai periode nya. Perhatikan gambar di bawah untuk memperjelas pengertian di atas.

Gambar 1. Isyarat Sinus

[Jans Hendry / EE UGM, Indonesia]

2. Frekuensi Ada periode, maka ada frekuensi. Secara umum frekuensi diartikan sebagai jumlah gelombang yang terjadi dalam 1 detik. Frekuensi didefinisikan secara sederhana sebagai kebalikan dari waktu. Sehingga waktu yang satuannya adalah detik (second) akan menjadi Hertz (1/second) untuk frekuensi. Kira-kira apa yang bisa ditangkap dari definisi itu saja? Ya, tentu frekuensi hanya akan memiliki tepat satu nilai spektrum. Yang dikenal dengan spektrum frekuensi. Pengertian frekuensi ini juga berlaku untuk gelombang monokromatis. Lalu timbul permasalahan, bila isyarat yang ada ternyata memiliki keberagaman periodesitas dan frekuensi. Untuk lebih mudah, misalkan anda memiliki 3 buah isyarat dengan frekuensi yang berbeda lalu dijumlahkan sehingga membentuk isyarat baru. Perhatikan gambar di bawah ini.

Gambar 2. Isyarat Gabungan dari 3 isyarat dengan frekuensi yang berbeda

Apakah bisa ditentukan frekuensi komponen penyusun dari isyarat di atas secara gamblang? Itu merupakan sebuah hal yang sulit. Belum lagi jika isyarat nya merupakan isyarat yang benar-benar acak. Misalkan isyarat dari hasil pengukuran debit volume air sungai berikut ini.

Gambar 3. Isyarat Acak Sumber : hasil penelitian bersama rekan untuk meramalkan aktifitas debit dari sebuah sungai.

Untuk itu, dibutuhkan sebuah algoritma yang bisa membantu untuk memisahkan isyarat tersebut menjadi beberapa komponen frekuensi. Tujuannya agar data mentah tersebut bisa dikelompokkan

[Jans Hendry / EE UGM, Indonesia]

berdasarkan periodesitasnya. Algoritma tersebut adalah FFT. FFT pada dasarnya merupakan alih ragam Fourier tapi untuk komponen diskrit bukan kontinyu. FFT merupakan DFT (discrete fourier transform) yang memiliki jumlah komputasi lebih sedikit dibanding komputasi DFT biasa. DFT akan menghasilkan jumlah komputasi sebesar N2 sedangkan FFT akan menghasilkan jumlah komputasi sebesar (N)log2(N). Perhitungan FFT menggunakan butterfly Radix-2 menghasilkan jumlah komputasi lebih sedikit yakni (N/2)log2(N). Jumlah titik dalam ketika menggunakan FFT juga memenuhi syarat 2N. Untuk alasan tersebut FFT menjadi pilihan ketika dihadapkan dengan alih ragam fourier. Namun ada yang harus dipenuhi sebelum memutuskan untuk menggunakan FFT sebagai solusi. Isyarat yang akan diolah harus bersifat stasioner, aperiodis (tidak periodis). Isyarat periodis kontinu dapat dianalisa menggunakan deret Fourier. Telah dijelaskan bahwa FFT digunakan untuk memisahkan isyarat menjadi komponen penyusun frekuensinya yang tidak bisa dipisahkan secara gamblang hanya dengan melihat isyarat tersebut dalam kawasan waktu. Perhatikan gambar berikut ini untuk menjelaskan seperti apa hasil dari FFT terhadap sebuah isyarat yang memiliki beragam komponen frekuensi.

Hasil fft:

Tampak dengan menggunakan FFT isyarat yang merupakan hasil penjumlahan dari 3 buah isyarat dengan frekuensi yang masing-masing berbeda, dapat dipisahkan dengan baik. Sehingga ketiga komponen frekuensi bisa dideteksi. Sedangkan data lain yang tidak menjadi bagian dari ketiga

[Jans Hendry / EE UGM, Indonesia]

komponen frekuensi tadi, akan ditampilkan sebagai spektrum frekuensi yang nilai magnitude nya sangat kecil atau mendekati nol. Bila masing-masing data penyusun komponen frekuensi tersebut dikenakan IFFT (inverse fast fourier transform) maka akan dihasilkan isyarat berbentuk sinus murni. FFT juga bisa digunakan untuk kompresi data. Misalnya saja data suara alat music jawa gamelan berikut ini:

Bila isyarat tersebut dikenai FFT akan dihasilkan komponen frekuensi:

Bagaimana caranya FFT bisa digunakan untuk kompresi? Perhatikan spektrum frekuensi dari isyarat tersebut (hasil FFT). Tampak bahwa terdapat frekuensi fundamental (sekitar 301 Hz) yang memiliki amplitude terbesar. Lalu dengan memberikan nilai ambang (threshold) pada amplitude hasil FFT, maka

[Jans Hendry / EE UGM, Indonesia]

pilihlah frekuensi mana saja yang layak untuk dijadikan komponen penyusun isyarat baru. Tentu saja dominasi frekuensi tersebut bisa diwakilkan oleh nilai amplitude nya. Ini menunjukkan bahwa semakin banyak data yang menjadi komponen penyusun dari frekuensi tersebut. Dengan melakukan thresholding tentu akan dihasilkan isyarat dengan komponen frekuensi yang lebih sedikit dan data nya juga menjadi sedikit. Dengan demikian jika komponen-komponen tersebut disatukan untuk membentuk isyarat baru, maka akan dihasilkan sebuah file audio yang baru dengan ukuran yang lebih kecil. Tentu saja diharapkan data baru tersebut bisa mewakili informasi data asli. Untuk itu pemilihan nilai amplitude harus dilakukan secara cermat. Penilitian ini dilakukan bersama rekan untuk rekonstruksi bunyi asli dari gamelan sebagai standarisasi atau malah tidak bisa karena setiap alat akan memberikan bunyi yang khas. Sehingga isyarat dan informasi di dalamnya menjadi unik. Artinya tidak bisa diberikan standarisasi one for all. Implementasi dari FFT lainnya antara lain dalam bidang medis, statistik, pengolahan citra, suara, telekomunikasi dan lain-lain. Sebuah algoritma yang bernama MFCC juga menggunakan FFT atau transformasi fourier sebagai syarat awal untuk memproses isyarat suara atau speech. Hal ini dilakukan ketika membantu teman dalam melengkapi algoritma processing isyarat suara untuk mengenali pembicara berdasarkan suara sebagai masukan. Sebagai alih ragam yang bisa berfungsi dalam statistik juga digambarkan dalam penelitian tentang meramal perilaku sebuah sungai di daerah jawa tengah dimana saya juga turut membantu. Debit dari aliran sungai yang terukur dalam 11 tahun dijadikan sebagai data yang akan diolah. Dengan menggunakan FFT, disertai asumsi awal bahwa di dalam populasi data akan terdapat periodesitas maka frekuensi kemunculan suatu data dapat diamati. Spektrum dengan amplitude yang tinggi layak untuk dicurigai sebagai kumpulan data yang memiliki periodesitas yang tinggi pula. Dengan memilih beberapa komponen frekuensi, berhasil ditunjukkan bahwa ada perulangan aliran sungai pada periode tertentu mulai dari jangka waktu terpendek, menengah dan terpanjang. Perlu diketahui bahwa informasi yang biasanya diambil dari FFT adalah sifat periodesitasnya melalui komponen frekuensi yang dihasilkan. Untuk itu dibutuhkan algoritma lain untuk meramalkan debit yang muncul pada waktu-waktu tersebut. Dalam bidang telekomunikasi, FFT bisa merupakan bagian dari prosesnya. Misalnya saja ketika membantu rekan dalam analisa kanal 2 antena untuk wimax. Ada juga dalam simulasi kanal Vahlenzuela (maaf jika ada kesalahan dalam penyebutan). FFT bisa juga digunakan untuk menentukan frekuensi mana saja yang akan di filter atau tapis menggunakan lowpass, highpass,bandpass dan bandstop filter. Dengan memanfaatkan prinsip bahwa hasil FFT bila ingin ditapis maka harus dikalikan dengan FFT dari filter itu sendiri. Filter ini tentu saja filter digital. Saya pernah membantu rekan dalam membuat filter digital yang diperuntukkan untuk FPGA dengan simulasi awal menggunakan MATLAB berdasarkan konsep FFT ini. Bila tidak menggunakan FFT atau alihragam fourier, tentu isyarat input harus dikonvolusi dengan filter. Dalam hal ini FFT digunakan hanya untuk melihat komponen penyusun frekuensinya saja. Teknik-teknik windowing atau penjendelaan juga bisa dilibatkan dalam pembuatan filter digital ini. Dalam bidang pengolahan citra digital, peran FFT juga penting. Untuk mengetahui frekuensi kemunculan intensitas piksel dalam sebuah citra diperlukan FFT. Misalnya dalam mengenali objek menggunakan template matching sebagai klasifikasinya sedangkan FFT digunakan untuk ekstraksi cirinya. Dengan demikian proses nya akan lebih cepat karena membutuhkan komputasi yang sedikit. Hal ini lebih baik daripada murni menggunakan bagian dari template matching seperti jarak Euclidean untuk mencari kedekatan antara template dengan masukan. Hal ini pernah dilakukan juga untuk objek dengan beragam

[Jans Hendry / EE UGM, Indonesia]

bentuk. Sehingga FFT tampak begitu berguna dan menyenangkan ketika kita sudah mengerti makna dan manfaatnya. Penggunaan FFT bisa saja digunakan untuk kompresi citra, tapi teknik ini sangat sederhana sehingga mungkin informasi yang terbuang akan banyak. Namun, kejelian dari seorang researcher akan menentukan hasil akhir dari penggunaan teknik ini. Bisa saja hasilnya memang memuaskan hanya dengan menggunakan teknik yang sangat sederhana. Untuk MATLAB sendiri sebagai alat bantu, anda bisa menggunakan fungsi toolbox di bawah ini:
N = 1024; %jumlah titik Y = fft(y,N); % FFT operation Yy = abs(Y(1:length(Y)/2+1)); % hanya mengambil setengahnya saja f = fs/2*linspace(0,1,length(Y)/2+1); % menentukan nilai frekuensi figure,plot(f,Yy); % menampilkan hasil FFT

atau dengan bentuk lain:


fb=length(y); Y = fft(y,fb); ff = [f_isyarat*(-floor(fb/2):floor(fb/2)-1)/fb]; fft2=[Y(round(fb/2)+1:fb);Y(1:round(fb/2))]; plot(ff,fft2);

Pada dasarnya kedua bagian program tersebut akan menghasilkan nilai yang sama, hanya saja saat ditampilkan akan memiliki bentuk yang berbeda. Anda bisa mencoba keduanya. Sejauh ini, saya sudah menggunakan kedua nya untuk penelitian yang berbeda.

~~ TERIMA KASIH ~~