Anda di halaman 1dari 9

Diskusi Kelompok 9

Fast Fourier Transform


Pengertian:
FFT adalah suatu algoritma yang mengimplementasikan Transformasi Fourier, khususnya
Transformasi Fourier Cepat (Fast Fourier Transform), untuk mentransformasikan sinyal dari
domain waktu menjadi domain frekuensi
Rumus:
yang lebih tinggi. Rumus umum dari FFT sering kali direpresentasikan dalam bentuk
rekursif atau iteratif. Salah satu bentuk algoritma FFT yang paling terkenal adalah Cooley-
Tukey FFT, yang bekerja berdasarkan pembagian dan penakaran sinyal menjadi bagian-
bagian yang lebih kecil.
Algoritma FFT Cooley-Tukey memiliki rumus iteratif yang bisa dinyatakan secara umum
sebagai:
𝑁−1 −𝑖2𝜋𝑘𝑛
∑ 𝑥(𝑛) . 𝑒 𝑁
𝑛=0

di mana 𝑋(𝑘) adalah hasil transformasi pada frekuensi 𝑘, 𝑥(𝑛) adalah sinyal waktu pada
waktu 𝑛, 𝑁adalah jumlah total sampel, dan 𝑒 adalah basis bilangan Euler.
Rumus ini digunakan untuk menghitung komponen frekuensi dari sinyal dengan
menggunakan pendekatan pembagian dan penakaran yang terstruktur, sehingga
menghasilkan komputasi yang lebih efisien daripada metode Transformasi Fourier
konvensional.
Contoh Soal:
Diberikan sinyal waktu 𝑥(𝑡) = sin(2𝜋 . 5𝑡) + sin(2𝜋 . 10𝑡). Kita ingin menghitung
transformasi Fourier Cepat (FFT) dari sinyal ini pada frekuensi 𝑓 = 5 ℎ𝑧 dan 𝑓 = 10 ℎ𝑧.
Jawaban:
Langkah pertama adalah mengaplikasikan rumus FFT secara langsung untuk menghitung
komponen frekuensi dari sinyal.
Rumus FFT pada frekuensi tertentu f adalah:

𝑥(𝑓) = ∫−∞ 𝑥(𝑡) . 𝑒 −𝑖2𝜋𝑓𝑡 𝑑𝑡

Untuk sinyal𝑥(𝑡) = sin(2𝜋 . 5𝑡) + sin(2𝜋 . 10𝑡), kita menghitung X(5) dan X(10)
1. X(5):
Untuk frekuensi 𝑓 = 5 ℎ𝑧:

X(5) = ∫−∞(sin(2𝜋 . 5𝑡) + sin(2𝜋 . 10𝑡)) . 𝑒 −𝑖2𝜋. 5𝑡
𝑑𝑡
2. X(5):
Untuk frekuensi 𝑓 = 10 ℎ𝑧:

X(5) = ∫−∞(sin(2𝜋 . 5𝑡) + sin(2𝜋 . 10𝑡)) . 𝑒 −𝑖2𝜋. 10𝑡
𝑑𝑡

Namun, untuk kasus sederhana seperti ini, kita dapat menggunakan pendekatan numerik
atau algoritma FFT untuk menghitung transformasi secara langsung menggunakan
komputer. Mari kita hitung dengan menggunakan metode numerik untuk mengaproksimasi
hasilnya.
Dalam implementasi komputasi, FFT umumnya menggunakan serangkaian sampel sinyal
x(t) pada interval waktu tertentu. Mari kita asumsikan kita memiliki sampel sinyal dari t=0
hingga t=1 dengan Langkah Δt=0.001 detik.
t = [0, 0.001, 0.002, ..., 0.999, 1.000
𝑥(𝑡) = 𝑠𝑖𝑛(2 ∗ 𝑝𝑖 ∗ 5 ∗ 𝑡) + 𝑠𝑖𝑛(2 ∗ 𝑝𝑖 ∗ 10 ∗ 𝑡)
Setelah memperoleh sampel sinyal, kita dapat menggunakan algoritma FFT untuk
menghitung transformasi frekuensi dari sinyal ini pada frekuensi f=5 Hz dan f=10 Hz.
Hasil numerik dari perhitungan FFT pada frekuensi f=5 Hz dan f=10 Hz akan memberikan
kita amplitudo dan fase dari komponen frekuensi tersebut dalam sinyal.

Prompt matlab:
% Definisikan waktu sampling
t = 0:0.001:1;

% Hitung sinyal x(t)


x = sin(2*pi*5*t) + sin(2*pi*10*t);

% Hitung FFT menggunakan fungsi fft


N = length(x); % Panjang sinyal
X = fft(x, N); % Hitung FFT dengan panjang sinyal N

% Hitung frekuensi
fs = 1/(t(2)-t(1)); % Frekuensi sampling
f = (0:N-1)*(fs/N); % Array frekuensi

% Plot sinyal dalam domain waktu


subplot(2, 1, 1);
plot(t, x);
xlabel('Waktu');
ylabel('Amplitudo');
title('Sinyal dalam Domain Waktu');

% Plot spektrum frekuensi


subplot(2, 1, 2);
plot(f, abs(X));
xlabel('Frekuensi (Hz)');
ylabel('Amplitudo');
title('Spektrum Frekuensi');
xlim([0, fs/2]); % Tampilkan hanya separuh spektrum positif (Nyquist)

% Cari indeks frekuensi 5 Hz dan 10 Hz


f_5Hz_index = round(5 * N / fs) + 1; % Indeks frekuensi 5 Hz
f_10Hz_index = round(10 * N / fs) + 1; % Indeks frekuensi 10 Hz

% Amplitudo pada frekuensi 5 Hz dan 10 Hz


amplitudo_5Hz = abs(X(f_5Hz_index));
amplitudo_10Hz = abs(X(f_10Hz_index));

% Tampilkan hasil amplitudo pada command window


fprintf('Amplitudo pada frekuensi 5 Hz: %.2f\n', amplitudo_5Hz);
fprintf('Amplitudo pada frekuensi 10 Hz: %.2f\n', amplitudo_10Hz);
Hasil prompt matlab:

1. DFT

Untuk melakukan analisis frekuensi dari sinyal waktu diskret x(n) maka perlu mendapatkan
representasi domain frekuensi dari sinyal yang biasanya dinyatakan dalam domain waktu. DFT
digunakan untuk melakukan analisa freuensi dari sinyal waktu diskret.

DFT dihitung menggunakan persamaan:

Sehingga

Inverse DFT (IDFT) menghitung kembali representasi sinyal waktu diskret x(n) dari sinyal yang
dinyatakan dalam domain frekuensi X().
Di mana

DFT dan IDFT dapat juga dipandang sebagai transformasi linear antara x(n) dan X(k), jadi

Di mana xN dan XN masing-masing adalah vektor dengan n buah elemen

Jika dinyatakan matriks WN

Maka, N point DFT dapat dinyatakan dalam bentuk

Sedangkan IDFT dapat dihitung jika terdapat inverse dari WN.

Contoh:

Hitung 4 point DFT dari sinyal x(n) = (0 1 2 3) Penyelesaian:


2. Sifat DFT

Sifat Linear:

Jika

X1(n)  N-DFT → X1(k)

Dan

X2(n)  N-DFT → X2(k)

Maka untuk sembarang konstanta a1 dan a2 real atau kompleks a1.x1(n) + a2.x2(n)  N-DFT →
a1.X1(k) + a2.X2(k)

sifat periodik:

jika x(n)  N-DFT →X(k) maka

x(n + N) = x(n) untuk semua n X(k+N) = X(k) untuk semua k

3. Filter Menggunakan DFT

x(n) →X()

h(n) →H()

y(n) →Y()

X() → H() →Y() = H()X() Asumsikan FIR dan Finite duration

Jika: x(n) = 0, n<0 dan n≥L →Durasi L

h(n) = 0, n<0 dan n≥M →durasi M

Y() = H() X() durasi: L+M-1

Bila Y() dicuplik maka pencuplikan harus N≥L+M-1

Agar
Maka

Contoh:

FIR: h(n) = {1,2,3} dan X(n) = {1,2,2,1}

Carilah keluaran menggunakan DFT dan IDFT Penyelesaian:

L = 4, M= 3→ N = L+M-1 = 6

Pilih N= L+M+1=8 (agar sesuai dngan FFT)


➔ IDFT

➔ aliasing akan terjadi bila N<M+L-1

Fast Fourier Transform (FFT)

Alternatif lain untuk menghitung DFT (selain menggunakan rumusan di atas) adalah
menggunakan algoritma cepat yang dikenal dengan Fast Fourier Transform (FFT). Dengan
FFT maka waktu yang dibutuhkan untuk menghitung DFT menjadi lebih cepat. Metode
FFT bekerja secara rekursif dengan membagi vektor asli menjadi dua bagian, menghitung
FFT masing-masing bagian, dan kemudian menggabungkannya. Hal ini mengindikasikan
bahwa FFT akan menjadi sangat efisien jika panjang vektor merupakan bilangan pangkat 2.
Tabel berikut memuat perbandingan jumlah operasi perkalian dalam perhitungan DFT
menggunakan rumus DFT secara langsung dan menggunakan algoritma FFT.
Kerja FFT

Operasi FFT mendekomposisi N point sinyal domain waktu ke dalam N sinyal domain waktu menjadi
point tunggal. Langkah ke dua menghitung spektrum frekuensi yang terkait dalam N sinyal domain
waktu hingga N spektrum disintesis ke dalam spektrum frekuensi tunggal. Berikut adalah contoh
dekomposisi domain waktu dalam FFT. Pada contoh ini, digunakan 16 point yang dikomposisi melalui
empat kondisi terpisah.

Kondisi pertama 16 point menjadi dua sinyal yang terdiri dari 8 poin, seterusnya hingga menjadi satu
poin. Secara matematis dapat dirumuskan ada Log2N kondisi. Contoh 16 poin (24)=4 kondisi, 512 poin
(27) = 7 kondisi, 4096 poin (212) = 12 kondisi, dst

Kebutuhan kalkulasi DFT

x(n) = xr(n) + j xI(n) maka X(k) = XR(k) + jXI(k)

𝑊𝑘+𝑁/2 = −𝑊𝑘 (𝑠𝑖𝑚𝑒𝑡𝑟𝑖)𝑊𝑘+𝑁/2 = 𝑊𝑘


𝑁 𝑁 𝑁 𝑁

Anda mungkin juga menyukai