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.


Langkah pertama yakni membuat sinyal dengan durasi 2 detik, frekuensi sampling (fs) data 2000 Hz dan frekuensi sinyal itu sendiri 700 Hz.
Perlu diingat di FFT bahwa jika fs = 2000 Hz, itu berarti kita hanya akan mendapatkan informasi frekuensi maksimal fs/2 = 1000 Hz.

Langkah kedua, terapkan FFT pada sinyal yang dibuat pada langkah pertama. Secara singkat dapat dilihat dan dicopy pada code Octave di bawah ini. Pastikan lepi anda sudah terinstall octave atau bisa dilihat di link ini.

close all
clear
clc

% frekuensi sampling

fs = 2000;

% durasi sinyal 2 detik
t = 0:1/fs:2;

% membuat sinyal
A = 1;      % amplitudo sinyal
f = 700;    % frekuensi sinyal
% sinyal berfrekuensi 700 Hz dengan durasi 2 detik
x = A*sin(2*pi*f*t);   

% fast fourier transform (FFT)
X = fft(x); % hasil transformasi dalam bilangan kompleks
F = linspace(0,1,length(X))*fs; % range frekuensi
% Tampilkan sinyal dalam domain waktu dan frekuensi
figure
subplot(2,1,1)
plot(t,x)

subplot(2,1,2)
plot(F,abs(X)/length(X),'LineWidth',2)
xlim([0 fs/2])




Selamat mencoba dan semoga bermanfaat.

No comments:

Post a Comment