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 ~~

Anda mungkin juga menyukai