Modul Pertemuan 5-Pengolahan Sinyal Digital
Modul Pertemuan 5-Pengolahan Sinyal Digital
Pengolahan Sinyal
Digital
Fast Fourier Transform Sinyal
Diskrit
05
Oki Teguh Karya, S.Pd, M.T
Teknik Teknik Elektro
Pendahuluan
Pembahasan tentang Fast Fourier Transform atau yang berkutnya kita sebut dengan FFT, akan
sangat berkaitan dengan pembahasan sebelumnya yaitu DFT (Discrete Fourier Transform).
Mengapa hal ini muncul? Hal ini dikemukakan karena akan sangat terbatas jika kita melakukan
perhitungan DFT dengan banyak titik N dan k. Sehingga FFT muncul sebagai salah satu metode
menghitung DFT dengan titik N dan k dalam jumlah yang banyak.
Algoritma ini diajukan oleh Cooley dan Tukey, agar kita bisa menghitung DFT dengan lebih
efisien dan cepat, yang kemudian algoritma ini disebut dengan Fast Fourier Transform. Metode
FFT ini dapat dilakukan dalam domain waktu dan frekuensi, yang disebut desimasi-dalam-waktu
(decimation-in-time) dan desimasi-dalam-frekuensi (decimation-in-frequency).
Vandermonde Matrix
Namun sebelum masuk pada pokok pembahasan FFT, ada yang masih tersisa dari pembahasan
DFT pada modul sebelumnya, yang hal ini akan berkaitan dengan algoritma FFT, yaitu tentang
Vandermonde Matrix.
Seperti yang kita pelajari pada modul sebelumnya tentang DFT, kita bisa menghitung DFT
dengan formula berikut ini:
Dan untuk mendapatkan Kembali sinyal x(n) maka kita menggunakan formula invers atau
kebalikannya yaitu ; iDFT (invers DFT)
1
𝑥(𝑛) = 𝑋[𝑘]. 𝑒 (5.2)
N
Dengan nilai k =0,1,…,N-1
(5.3)
𝑊 =𝑒
Maka persamaan 5.1 dan 5.2 dapat kita tuliskan sebagai berikut:
1
𝑥(𝑛) = 𝑋[𝑘]. 𝑊 , 𝑘 = 0,1, … , 𝑁 − 1 (5.5)
N
Dengan penyederhanaan ini maka kita bisa menggunakan Vendermonde Matrix ketika akan
menyelesaikan DFT, dimana:
𝑿 = 𝑫 .𝒙 (5.6)
Dimana X adalah vector DFT yang terdiri dari N sampel, yaitu:
𝟏 𝟏 ⋯ 𝟏
⎡𝟏 𝑾𝑵 𝟏 ⎤
⎢𝟏 𝑾𝑵 𝟏 𝑾𝟐𝑵 ⋯ 𝑵 ⎥
𝟐(𝑵 𝟏)
𝑫 = ⎢𝟏 𝑾𝟐𝑵 𝑾𝟒𝑵 ⋯ 𝑾𝑵 ⎥ (5.9)
⎢⋮ ⋮ ⋮ ⋱ ⋮ ⎥
⎢ 𝟐(𝑵 𝟏) ⎥
⎣𝟏
𝑵 𝟏
𝑾𝑵 𝑾𝑵 ⋯ 𝑾(𝑵 𝟏) (𝐍 𝟏) ⎦
𝑵
𝑥(0) 𝑿[𝟎]
𝑥(1) 𝑿[𝟏]
=𝑫 𝟏
(5.10)
⋮ ⋮
𝑥(𝑁 − 1) 𝑿[N − 1]
Dimana, 𝑫 𝟏
adalah Matriks sebagai berikut:
𝟏 𝟏 ⋯ 𝟏
⎡𝟏 𝟏 (𝑵 𝟏) ⎤
⎢𝟏 𝑾𝑵 𝑾𝑵𝟐 ⋯ 𝑾𝑵 ⎥
𝑫 𝟏
= ⎢𝟏 𝑾𝑵𝟐 𝑾𝑵𝟒 ⋯ 𝑾𝑵
𝟐(𝑵 𝟏) ⎥
(5.11)
⎢⋮ ⋮ ⋮ ⋱ ⎥
⎢ ⋮
(𝑵 𝟏) 𝟐(𝑵 𝟏) ⋯ 𝑾 (𝑵 𝟏) (𝐍 𝟏) ⎥
⎣𝟏 𝑾𝑵 𝑾𝑵
𝑵 ⎦
𝟏
Dari persamaan 5.11 diatas dapat dilihat bahwa 𝑫 𝟏
= . 𝑫∗
𝑵
Contoh 1: Diberikan 𝑥(𝑛) = {0 1 2 3} dan kita akan menghitung DFT dengan menggunakan
vandermonde matrix seperti pada persamaan 5.6, dimana matrix 𝑫 nya sebagai berikut:
𝑊 𝑊 𝑊 𝑊
⎡ ⎤
⎢𝑊 𝑊 𝑊 𝑊 ⎥
𝑫 =⎢ ⎥
⎢𝑊 𝑊 𝑊 𝑊 ⎥
⎣𝑊 𝑊 𝑊 𝑊 ⎦
Seperti yang kita ketahui pada persamaan 5.3 dan 5.4 maka
𝑊 =𝑒
𝑊 =𝑒 =1
1 1 1
⎡1 𝑊 𝑊 𝑊 ⎤
1
𝑫 =⎢ ⎥
⎢1 𝑊 𝑊 𝑊 ⎥
⎣1 𝑊 𝑊 𝑊 ⎦
.
𝑊 =𝑒 = −𝑗
.
𝑊 =𝑒 = −1
.
𝑊 =𝑒 =𝑗
1 1 1
⎡1 −𝑗 𝑗 ⎤
1 −1
𝑫 =⎢ 𝑊
⎥
⎢1 𝑊 𝑊 ⎥
⎣1 𝑊 𝑊 𝑊 ⎦
1 1 1 1
1 −𝑗 −1 𝑗
𝑫 =
1 −1 1 −1
1 𝑗 −1 −𝑗
𝑿 = 𝑫 .𝒙
1 1 1 1 0 6
1 −𝑗 −1 𝑗 1 −2 + 2𝑗
𝑫 = . =
1 −1 1 −1 2 −2
1 𝑗 −1 −𝑗 3 −2 − 2𝑗
Gambar 1 merupakan cara yang pertama dalam melakukan desimasi dalam waktu, cara
yang kedua adalah dengan menggunakan representasi biner. Jika N=16 maka
representasi binernya adalah 4 bit. Langkah awal adalah dengan menyusun 0 – 15 dalam
bentuk biner 4 bit secara berurutan. Langkah kedua adalah dengan membalikan susunan
bit nya dari kiri kekanan, sebagai contoh, representasi biner 4-bit untuk decimal 1 adalah
0001. Maka ketika pada proses pembalikan kita tuliskan secara terbalik menjadi 1000 yang
ini menunjukan decimal 8. Contoh lain representasi biner 4-bit untuk decimal 3 adalah
0011. Maka ketika pada proses pembalikan kita tuliskan secara terbalik menjadi 1100 yang
menunjukan decimal 12. Maka kita bisa lihat pada gambar 2 dibawah ini
Mari kita masuk pada pembahasan konsep FFT yang juga disebut dengan metoda kupu –
kupu (Butterfly Method). Jika diberikan sebuah sinyal seperti berikut dibawah ini, maka kita
akan membagi dua menjadi urutan genap dan urutan ganjil.
Seperti yang kita ketahui formula DFT seperti pada persamaan 5.1 atau 5.4 maka dengan
menggunakan FFT kita dapat menulisakan formula yang sama namun terbagi dua bagian
yaitu n genap dan n ganjil.
𝑋[𝑘] = 𝑥(𝑛). W
Jika n (genap) kita tuliskan dengan 𝑛 = 2𝑟, maka untuk n (ganjil) kita dapat tuliskan
dengan 𝑛 = 2𝑟 + 1, maka persamaan 5.12 diatas dapat dituliskan ulang menjadi seperti
berikut:
. ( ). (5.13)
𝑋[𝑘] = 𝑥(2𝑟) W + 𝑥(2𝑟 + 1) W
. 𝑟𝑘
W .
= (𝑊 )2𝑟𝑘 = 𝑒 = 𝑒 = 𝑒 / = 𝑊 / (5.14)
( ) 𝑟𝑘
W = (𝑊 )( )𝑘
= (𝑊 ) = (𝑊 ) . (𝑊 ) = 𝑊 / . (𝑊 ) (5.15)
𝑟𝑘 𝑟𝑘 (5.16)
𝑋[𝑘] = 𝑥(2𝑟) . 𝑊 / + 𝑥(2𝑟 + 1) 𝑊 / . (𝑊 )
𝑟𝑘 𝑟𝑘 (5.17)
𝑋[𝑘] = 𝑥(2𝑟) . 𝑊 / + (𝑊 ) . 𝑥(2𝑟 + 1) 𝑊 /
DFT (N/2)-titik dari indeks genap DFT (N/2)-titik dari indeks ganjil
Dari persamaan 5.17 diatas, maka dapat disimpulkan bahwa untuk mendapatkan X[k]
adalah dengan menjumlahkan perhitungan DFT dengan periode N/2 pada indeks genap
dengan DFT periode yang sama juga yaitu N/2 pada indeks ganjil. Sehingga dapat kita
sederhanakan persamaan diatas menjadi
Persamaan 5.18 jika direpresentasikan dalam bentuk gambar maka akan menjadi seperti
gambar berikut ini:
𝑊
𝑋 [𝑘]
Gambar 3. Ilustrasi dari proses perhitungan X[k] untuk periode k=0 sampai k=(N/2)-1
Karena persamaan pada 5.18 adalah dengan periode N/2 atau dari 𝑘 = 0 sampai dengan
𝑘 = ( − 1) yang artinya baru setengah dari N, maka kita harus menhitung periode sisa
nya dari 𝑘′ = sampai dengan 𝑘′ = 𝑁 − 1, atau kita bisa tuliskan
𝑋[𝑘 ′ ] = 𝑋 [𝑘 ′ ] + 𝑊 . 𝑋 [𝑘 ′ ] (5.19)
Dimana 𝑘 = 𝑘 + 𝑁/2 yang artinya periode sisa nya. Contoh jika k=1 pada N=8
maka k’=5, jika k=2 maka k’=6 dan seterusnya
𝑊 = (𝑊 ) = 𝑒
.
.
= 𝑒 . 𝑒
.
= 𝑒 . 𝑒
.
= 𝑒 . (−1)
=− 𝑒 = −𝑊 (5.21)
𝑋[𝑘 ′ ] = 𝑋 [𝑘 ] − 𝑊 . 𝑋 [𝑘 ] (5.22)
Jika direpresentasikan dalam gambar maka persamaan 5.22 ini dapat kita gambarkan
sebagai berikut
𝑋 [𝑘]
𝑵
Gambar 4. Ilustrasi dari proses perhitungan X[k’] untuk periode 𝒌 = sampai 𝒌 = 𝑵 − 𝟏
𝟐
Dengan demikian kita bisa gambarkan algoritma yang dibangun secara lengkap dengan
menggabungkan gambar 3 dengan gambar 4, seperti dibawah ini:
Mari kita cobakan dalam sebuah contoh kasus dengan N = 8, dengan FFT N/2
sehingga susunan input terbagi dua genap dan ganjil nya dimana input genap {0 2 4 6}
sedangkan input ganjil {1 3 5 7}
Jika kita teruskan dekomposisi dengan N/4 maka akan menghasilkan komposisi seperti
berikut:
Perhatikan susunan input x(n) pada gambar 6 dan gambar 7 terlihat berbeda
susunannya. Jika pada dekomposisi N/2, susunan input genap {0 2 4 6} dan susunan
input ganjil {1 3 5 7}. Hal ini berbeda pada dekomposisi N/4 dimana susunan input
Sebelum kita mulai melakukan operasi ada baiknya kita menghitung Twiddle Factor 𝑊
sebagai berikut dimana N= 8 dengan k= 0 sampai dengan N-1
𝑊 =1 𝑊 = −𝑊 = −1
√2 𝑗√2 √2 𝑗√2
𝑊 = − 𝑊 = −𝑊 = − +
2 2 2 2
𝑊 = −𝑗 𝑊 = −𝑊 = 𝑗
√2 𝑗√2 √2 𝑗√2
𝑊 =− − 𝑊 = −𝑊 = +
2 2 2 2
Sebenarnya jika kita gambarkan dalam bentuk lingkaran maka akan terlihat seperti
lingkaran utuh dibagi 8
Daftar Pustaka
Kuc, R. (2008). Introduction to Digital Signal Processing (Re-Print 1st Edition,). BS Publications.
Proakis, J. G., & Manolakis, D. K. (2014). Digital Signal Processing (Fourth Edition). Pearson
Education Ltd.
Gunawan,D., Juwonon, F.H., (2011) Pengolahan Sinyal Digital dengan Pemrograman Matlab,
Graha Ilmu