TUGAS AKHIR
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh:
Nama : Venantius Andika NIM : 035114033
PROGRAM STUDI TEKNIK ELEKTRO
JURUSAN TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2008
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree
In Electrical Engineering Study Program
By:
Name : Venantius Andika Student Number : 035114033
ELECTRICAL ENGINEERING STUDY PROGRAM
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SAINS AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2009
v
“Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini tidak memuat karya atau bagian karya orang lain,
kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.”
Yogyakarta, Januari 2009
vi
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Venantius Andika
Nomor Mahasiswa : 035114033
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
PROGRAM PEMBANDING KINERJA DISCRETE FOURIER TRANSFORM DAN
DECIMATION IN TIME FAST FOURIER TRANSFORM
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya. Dibuat di Yogyakarta
Pada tanggal : 24 Januari 2009 Yang menyatakan
Kupersembahkan karya tulis ini kepada :
Tuhan Yesus Kristus Pelindungku,
Ayahnda dan Ibunda Tercinta,
Kedua saudaraku Lintaka dan Yangkara yang kucintai,
Kekasihku Linda tersayang, dan
Almamaterku Teknik Elektro USD
Sukses adalah aku Aku adalah sukses
(Jennie S.Bev)
Lebih baik bertempur dan kalah dari pada tidak pernah bertempur sama sekali.
Terlanjur pasang langkah ke depan Pantang rasanya surut ke belakang
(Steven & Coconuttreez)
Langkah terbaik untuk memprediksi masa depan Adalah dengan
Menciptakan masa depan itu sendiri (Peter Drucker)
(DITFFT). Program membandingkan kinerja DFT dan DITFFT dalam hal kecepatan proses perhitungan dan jumlah adder dan multiplier.
Program ini menggunakan dua masukan, masukan manual dan masukan sinyal yang berekstensi *.wav. Dalam program ini, masukan manual merupakan aplikasi tambahan. Program utama adalah masukan sinyal. Program akan membatasi sinyal masukan, sesuai dengan jumlah N-poin yang dimasukkan pengguna. Sinyal ini kemudian akan dihitung dengan menggunakan perhitungan DFT dan DITFFT.
Program pembanding kinerja DFT dan DITFFT telah diamati dan diuji. Kinerja DFT dan DITFFT diamati dari kecepatan proses perhitungan. Hasil yang diperoleh adalah bahwa proses DITFFT lebih cepat dibandingkan dengan DFT. Hal ini disebabkan karena jumlah adder dan multiplier DITFFT lebih sedikit. Kata kunci : discrete fourier transform, decimation in time fast fourier transform,
adder, multiplier.
Transform (DITFFT). The program compares the performance of DFT and DITFFT in terms of computation process speed and the amount of adder and multiplier.
This program used two inputs, manual input and signal input with *.wav extension. In this program, the manual input in an additional application. The main program is the signal input. The program will limit the input signal, according to the amount of N-point which has been inputed by the user. This signal will then be calculated by using a computation of DFT and DITFFT.
The performance comparator program of DFT and DITFFT had been observed. The result is that the DITFFT process is faster than the DFT. It is caused by the fewer amount of adder and multiplier of the DITFFT.
Keyword : discrete fourier transform, decimation in time fast fourier transform,
adder, multiplier.
Anugerah-Nya penulis akhirnya dapat menyelesaikan tugas akhir ini dengan baik dan lancar.
Dalam proses penulisan tugas akhir ini penulis menyadari bahwa ada begitu banyak pihak yang telah memberikan perhatian dan bantuan dengan caranya masing-masing sehingga tugas akhir ini dapat terselesaikan. Oleh karena itu penulis ingin mengucapkan terima kasih antara lain kepada :
1. Tuhan Yesus atas penyertaan dan perlindungan - Nya.
2. Bapak Ir. Greg. Heliarko, SJ., B.ST., MA., M.Sc, selaku dekan fakultas teknik. 3. Bapak Damar Wijaya, S.T., M.T., selaku pembimbing atas bimbingan, dukungan,
saran dan kesabaran bagi penulis dari awal sampai tugas akhir ini bisa selesai. 4. Bapak Martanto, S.T., M.T., dan Ibu Wuri Harini, S.T., M.T., selaku penguji
yang telah bersedia memberikan kritik dan saran.
5. Seluruh dosen teknik elektro atas ilmu yang telah diberikan selama penulis menimba ilmu di Universitas Sanata Dharma.
6. Ayahnda dan Ibunda tercinta atas kasih sayang, semangat, doa, dan dukungan secara moril maupun materiil, serta dorongan untuk segera menyelesaikan Tugas Akhir ini.
7. Kedua saudaraku, Lintaka dan Yangkara atas dukungan, cinta, dan bantuan yang sangat berguna.
8. Natalia Desti Nurlinda yang selalu menyayangi, membantu, dan menemani disaat kebosanan melanda.
10. Teman-teman elektro yang sudah meninggalkanku: Didit, Dian, Alex, Sukur serta teman-teman angkatan 2003 dan 2004 yang selalu berbagi ilmu dan pengalaman kuliah.
11. Dan seluruh pihak yang telah ambil bagian dalam proses penulisan tugas akhir ini yang terlalu banyak jika disebutkan satu-persatu.
Dengan rendah hati penulis menyadari bahwa tugas akhir ini masih jauh dari sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir ini sangat diharapkan. Akhir kata, semoga tugas akhir ini dapat bermanfaat bagi semua pihak. Terima kasih.
Yogyakarta, Januari 2009
Penulis
HALAMAN PERSETUJUAN ... iii
HALAMAN PENGESAHAN... iv
HALAMAN PERNYATAAN KEASLIAN... v
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI ...vi
HALAMAN PERSEMBAHAN...vii
HALAMAN MOTTO...viii
INTISARI………...ix
ABSTRACT………...x
KATA PENGANTAR………..xi
DAFTAR ISI... xiii
DAFTAR GAMBAR... xv
DAFTAR TABEL………xvii
DAFTAR CONTOH………..xviii
BAB I PENDAHULUAN 1.1 Judul ... 1
1.2 Latar Belakang Masalah... 1
1.3 Tujuan dan Manfaat Penelitian ... 2
1.4 Batasan Masalah ... 2
1.5 Metodologi Penelitian ... 3
1.6 Sistematika Penulisan ... 3
BAB II DASAR TEORI 2.1 Deret Fourier ... 5
2.2 Transformasi Fourier... 6
2.3 Discrete Fourier Transform (DFT) ... 8
2.3.1 Sifat-sifat dari DFT ... 13
BAB III PERANCANGAN PROGRAM PEMBANDING KINERJA DFT DAN DITFFT
3.1 Algoritma Perancangan program ... 25
3.2 Perancangan Tampilan Awal ... 26
3.3 Pemberian Masukan... 27
3.3.1 Masukan Manual... 27
3.3.2 Masukan Sinyal... 29
3.3.2.1 Masukan N-poin... 30
3.3.3 Proses Radix 2... 31
3.4 Proses Penampilan Sinyal dan Waktu Proses DFT dan DITFFT ... 33
3.4.1 Perhitungan DFT... 34
3.4.2 Perhitungan DITFFT... 36
3.5 Proses Penghitungan Jumlah Adder dan Multiplier untuk DFT dan DITFFT ... 38
3.6 Layout Program ... 39
BAB IV HASIL DAN PEMBAHASAN 4.1 Tampilan Program ... 44
4.1.1 Masukan Manual... 48
4.1.2 Masukan Sinyal dengan Data chimes.wav ... 50
4.2 Perbandingan Kinerja Proses DFT dan DITFFT ... 54
BAB V PENUTUP Kesimpulan ... 59 DAFTAR PUSTAKA LAMPIRAN xiv
Gambar 2.1 (a) x(nT) berbanding dengan t, (b) |X(k)| berbanding dengan kΩ,
dan (c) Ф(k) berbanding dengan kΩ ... 12
Gambar 2.2 Butterfly FFT ... 22
Gambar 2.3 Butterfly untuk 8-poin DFT ... 22
Gambar 3.1 Algoritma perancangan program ... 25
Gambar 3.2 Layout program tampilan awal ... 26
Gambar 3.3 Diagram alir layout tampilan awal ... 27
Gambar 3.4 Diagram alir proses masukan manual... 28
Gambar 3.5 Diagram alir proses pemberiasn masukan sinyal ... 29
Gambar 3.6 Diagram alir proses pemberian masukan N-poin ... 30
Gambar 3.7 Diagram alir proses Radix 2 ... 32
Gambar 3.8 Diagram alir penampilan sinyal dan waktu proses DFT dan DITFFT ... 33
Gambar 3.9 Diagram alir perhitungan DFT ... 35
Gambar 3.10 Diagram alir perhitungan Butterfly... 36
Gambar 3.11 Diagram alir perhitungan jumlah adder dan multiplier DFT dan DITFFT... 39
Gambar 3.12 Layout Program ... 40
Gambar 4.1 Tampilan halaman pembuka program ... 44
Gambar 4.2 Tampilan program utama... 45
Gambar 4.3 Tampilan penyimpanan data... 46
Gambar 4.4 Tampilan Submenu Bantuan ... 46
Gambar 4.5 Message Box keluar program ... 47
Gambar 4.6 Tampilan Waitbar... 47
Gambar 4.11 Gambar panel masukan sinyal... 50
Gambar 4.12 Tampilan pengambilan data berekstensi *.wav... 51
Gambar 4.13 Tampilan masukan... 52
Gambar 4.14 Pesan kesalahan ... 53
Gambar 4.15 Keluaran ... 54
Gambar 4.16 Grafik perbandingan waktu proses DFT dan DITFFT ... 56
Gambar 4.17 Grafik perbandingan jumlah adder DFT dan DITFFT... 57
Gambar 4.18 Grafik perbandingan jumlah multiplier DFT dan DITFFT ... 57
Tabel 2.1 Struktur dari 8 poin FFT ... 18
Tabel 3.1 Bit Reversed untuk N = 8 ... 38
Tabel 4.1 Hasil waktu proses DFT dan DITFFT ... 55
Tabel 4.2 Jumlah Adder dan Multiplier untuk DFT dan DITFFT ... 56
ix
Tabel 2.1 Struktur dari 8 poin FFT ... 18
Tabel 3.1 Bit Reversed untuk N = 8 ... 38
Tabel 4.1 Hasil waktu proses DFT dan DITFFT ... 55
Tabel 4.2 Jumlah Adder dan Multiplier untuk DFT dan DITFFT ... 56
xvii
Contoh 1 Perhitungan DFT………9 Contoh 2 Perhitungan DITFFT……….………...23
PENDAHULUAN
1.1 Judul
Program Pembanding Kinerja Discrete Fourier Transform dan Decimation In
Time Fast Fourier Transform
1.2 Latar Belakang Masalah
Metode pembelajaran dalam DSP (digital signal proccessing) telah mengalami berbagai macam perubahan dari tahun ke tahun, diawali dari metode kuliah saja hingga perkuliahan dengan proses pembelajaran yang terintegrasi dengan kegiatan laboratorium (teori dan praktek) dan dengan isu-isu yang diajarkan menggunakan perangkat keras DSP. Agar pembelajaran DSP menjadi efektif, maka komponen pembelajaran harus mampu memanfaatkan secara intensif penjelasan, pemberian contoh dan latihan yang berbasis komputer dan teknologi informasi[1].
Discrete Fourier Transform (DFT) merupakan salah satu pokok bahasan dalam
mata kuliah DSP yang harus dijelaskan secara efektif dan efisien karena deretan data yang akan ditransformasikan bisa sangat banyak. DFT adalah suatu algoritma komputasi yang mempunyai fungsi mengubah sinyal dari domain waktu menjadi domain frekuensi. Algoritma komputasi lain yang mempunyai fungsi sama tetapi
mempunyai kinerja yang berbeda dengan DFT yaitu Decimation In Time Fast
Fourier Transform (DITFFT).
Dewasa ini kebutuhan akan kecepatan dalam mengolah data sangat diperlukan. Oleh karena itu, diperlukan pemilihan algoritma yang efektif dan efisien. Pada penelitian ini, penulis membandingkan kinerja kedua algoritma di atas.
1.3
Tujuan dan Manfaat Penelitian
Skripsi ini bertujuan untuk untuk membuat program pembanding kinerja DFT dan DITFFT.
Manfaat yang diharapkan dari penulisan skripsi ini adalah:
1. Mempermudah mahasiswa untuk mengetahui kinerja DFT dan DITFFT.
2. Sebagai acuan yang dapat mendukung penelitian selanjutnya yang berhubungan dengan kinerja DFT dan DITFFT.
1. 4 Batasan Masalah
Pada penelitian ini dilakukan pembatasan masalah terhadap program yang akan dibuat. Batasan masalah penelitian ini adalah sebagai berikut :
1. Masukan dari 4 point – 1024 point.
2. Menampilkan perbandingan jumlah adder dan multiplier dari proses DFT dan DITFFT.
3. Menampilkan perbandingan waktu yang diperlukan oleh DFT dan DITFFT dalam melakukan proses perhitungan.
4. Program dibuat dengan menggunakan MATLAB.
1.5 Metodologi Penelitian
Langkah-langkah yang digunakan untuk menyusun tugas akhir ini adalah sebagai berikut :
1. Studi pustaka yang berhubungan dengan perhitungan DFT dan DITFFT. 2. Membuat perangkat lunak, yaitu program untuk membandingkan kinerja DFT
dan DITFFT .
3. Menguji program yang telah dibuat.
4. Membahas dan menganalisis hasil rancangan yang diperoleh dari program pembanding kinerja DFT dan DITFFT.
5. Membuat kesimpulan dari hasil pembahasan dan analisis.
1.6 Sistematika Penulisan
Sistematika penulisan pada penulisan tugas akhir ini adalah sebagai berikut : BAB I : Berisi latar belakang, perumusan masalah, batasan masalah, tujuan
dan manfaat penelitian, metodologi penelitian dan sistematika penulisan tugas akhir.
BAB III :Berisi penjelasan dan langkah-langkah perancangan program pembanding kerja DFT dan DITFFT.
BAB IV : Berisi hasil perhitungan dan pembahasan dari program untuk pembanding kinerja DFT dan DITFFT.
BAB V : Berisi kesimpulan dari hasil penelitian dan saran yang mungkin berguna untuk pengembangan program lebih lanjut.
BAB II
DASAR TEORI
Transformasi diskrit adalah transformasi dari kawasan waktu menjadi kawasan frekuensi. Transformasi ini dilakukan karena waktu (time) saja masih kurang untuk mengolah sinyal diskrit. Beberapa aplikasi dari sinyal diskrit adalah sebagai berikut [2]
1. Kompresi data (suara, gambar, video). 2. Pengolahan gambar (image processing). 3. Peningkatan kecepatan perhitungan.
2.1 Deret Fourier
Sinyal periodis, f(t), dapat dinyatakan dengan suku sinus dan cosinus tak terhingga. Penjelasan ini menjadi deret Fourier dan dinyatakan sebagai berikut
∑
∞∑
(2.1) = ∞ = + + = 1 1 0 cos( ) sin( ) ) ( n n n n n t b n t a a t f ω ωdengan t adalah variabel yang menyatakan waktu. f(t) biasanya berbentuk sinyal perubahan tegangan terhadap waktu, tetapi bisa sinyal dalam bentuk lain.
p
T
/ 2π
ω = yang biasa disebut fundamental dan berhubungan dengan frekuensi
fundamental, f, sehingga ω =2πf . Tp adalah periode berulang dari sinyal,
∫
− = /2 2 / ( ) 1 p p T T p o f t dt T a (2.2)adalah konstanta dari f(t) yang diambil dari periode yang ditampilkan,
∫
− = /2 2 / ( )cos( ) 2 p p T T p n f t n t dt T a ω (2.3) dan∫
− = /2 2 / ( )sin( ) 2 p p T T p n f t n t dt T b ω (2.4)Frekuensi n adalah harmonik ke n dari ω ω.
Deret ini dapat ditulis menggunakan notasi eksponensial sehingga menjadi lebih sederhana, seperti berikut ini
∑
∞ (2.5) −∞ = = n t jn ne d t f( ) ω dengan∫
− − = /2 2 / ( ) p p T T t jn p n f t e T t d ω (2.6)adalah komplek dan d mempunyai satuan volt. n
Magnitudo dnadalah ( 2 2)1/2 n n n a b d = + (2.7)
Dan sudut fasa Φnadalah
tan 1( / ) (2.8) n n n =− − b a Φ
2.2 Transformasi Fourier
Transformasi Fourier adalah metode penjelasan model matematika dari sinyal dan sistem dalam kawasan frekuensi. Para teknisi menggunakan
transformasi Fourier untuk menyederhanakan analisis matematika dari sinyal dan sistem.
Transformasi Fourier digunakan untuk sinyal non periodis, jadi perlu modifikasi pada deret Fourier. 1/Tp =ω/2π , menurun menjadi dω/2π , juga dapat menurun menjadi nol. Persamaan ini mengubah dari variabel frekuensi diskret
ω
n menjadi variabel kontinyu ω, spektrum amplitudo dan fasa menjadi kontinyu. Jadi dn →d(ω) dan Tp →∞. Dengan modifikasi ini, persamaan (2.6) menjadi
∫
∞ ∞ − − = d f t e dt d jωt π ω ω ( ) 2 ) ( (2.9)Persamaan ini dibagi dengan dω/2π untuk memperoleh
∫
∞ ∞ − − = =F j f t e dt d d ω jωt π ω ω ) ( ) ( 2 / ) ( (2.10) ) (jωF adalah komplek dan disebut sebagai integral Fourier, atau lebih dikenal sebagai transformasi Fourier. Jika
F(jω)=Re(jω)+ jIm(jω)=|F(jω)|ejΦ(ω) (2.11) maka
F(jω =
[
Re2(jω)+Im2(jω)]
1/2 (2.12)dan mempunyai satuan volts per hertz. F(jω) adalah amplitude spectral density. Sudut fasa Φ(ω) adalah
2.3 Discrete Fourier Transform (DFT)
Discrete Fourier Transform (DFT) adalah operasi dasar yang digunakan
dalam beberapa aplikasi signal processing. DFT digunakan untuk mengubah urutan data dari kawasan waktu menjadi kawasan frekuensi .
Untuk menghasilkan urutan pencuplikan {x(nT)}=x(0), x(T), ...,x[(N-1)T] dari nilai pencuplikan N, gelombang harus dicuplik pada interval waktu yang teratur. Dengan n adalah angka hasil pencuplikan dari n=0 sampai n=N-1. DFT dari x(nT) kemudian didefinisikan sebagai urutan nilai-nilai komplek {X(kΩ)} = X(0), X(Ω),
..., X[N-1)Ω] dalam domain frekuensi, dengan Ω adalah frekuensi harmonik
pertama, yaitu Ω = 2π/NT. Jadi X(kΩ) mempunyai komponen real dan imajiner, dengan nilai ke k harmonik
X(k) = R(k) + jI(k) (2.14)
sehingga magnitudo X(k) adalah
|X(k)|=[R2(k) + I2(k)]1/2 (2.15)
dan sudut fasa X(k) adalah
Ф(k)=tan-1[ I(k)/R(k)] (2.16)
Nilai DFT, X(k), diberikan oleh
(2. 17)
∑
− = Ω − = − = = 1 0 1 ,..., 1 , 0 , ) ( )] ( [ ) ( N n nT jk D x nT x nT e k N F k XFD menunjukkan transformasi Fourier. Dalam persamaan ini, k menggambarkan angka yang harmonik dari komponen transformasi, sesuai persamaan (2.10) saat
f(t) = 0 untuk t<0 dan t>(N-1) T dengan memakai x(nT)=f(t), kΩ=ω, dan nT=t.
Jadi kedua transformasi dapat diharapkan untuk mempunyai sifat yang sama. Pergantian ini dimasukkan ke dalam persamaan (2.10), dengan mengubah dt=T dan integral menjadi jumlah, sehingga menjadi
(2.18)
∑
− = Ω − = 1 0 ) ( ) ( N n nT jk T F j e nT x ωuntuk 0 ≤ t ≤ (N-1)T. Kemudian perbandingan persamaan (2.17) dengan (2.18) menghasilkan
F(jω) = TX(k) (2.19)
yang menunjukkan bahwa komponen-komponen transformasi Fourier berkaitan dengan komponen DFT dengan interval sampling, dan didapatkan dengan mengalikan komponen DFT dengan interval sampling.
k = 0, k = 1, k =2 dan k = 3 (sampai N – 1 = 3).
x(0) = 1, x(T) = 0, x(2T) = 0, x(3T) = 1, dalam interval waktu T. Jumlah
data N = 4. Ini diperlukan untuk mencari nilai-nilai komplek X(k) untuk
Jawab
Hitung DFT dari deretan data {1,0,0,1}!
Untuk k = 0, persamaan (2.17) menjadi
∑
∑
= = − = = 3 0 3 0 0 ( ) ) ( ) 0 ( n n j x nT e nT x X ) 3 ( ) 2 ( ) ( ) 0 ( x T x T x T x + + + = 1 0 0 1+ + + = 2 =jadi X(0) = 2 dan ini adalah real, dengan magnitude 2 dan sudut fasa . 0 ) 0 ( = Φ
Untuk k = 1, persamaan (2.17) menjadi
= ( X
∑
= Ω − 3 0 ) ( ) 1 n nT j e nT xT tidak diberikan, tetapi dapat dieliminasi menggunakan Ω = 2π/NT.
∑
∑
= − = Ω Ω − = = 3 0 / 2 3 0 / 2 ( ) ) ( ) 1 ( n N n j n N n j x nT e e nT x X π π 2 / 3 4 / 3 2 1 1 0 0 1+ + + e−j π = +e−j π = j j ⎟= + ⎠ ⎞ ⎜ ⎝ ⎛ − ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ + = 1 2 3 sin 2 3 cos 1 π πJadi X(1)= 1+ j dan ini adalah komplek dengan magnitude 2 dan
sudut fasa Φ(Ω)=tan−11=45°.
Untuk k = 2, persamaan (2.17) menjadi
∑
∑
= = − Ω − = = 3 0 3 0 / 2 2 2 ( ) ) ( ) 2 ( n n N n j nT j x nT e e nT x X π∑
= − = 3 0 / 4 ) ( n N n j e nT x π 4 / 3 4 1 0 0 1+ + + e−j π = 0 1 1 0 0 1+ + + 3 = − = = e−j πJadi X(2)=0, dengan magnitudo 0 dan sudut fasa Φ(2)=0. Untuk k = 3, persamaan (2.17) menjadi
∑
= − = 3 0 / 2 3 ) ( ) 3 ( n N n j e nT x X π 1+0+0+e−j9π/2 =1− jJadi X(3)=1 - j, besarnya magnitudo 2 dan sudut fasa Φ(3)=−45°. Seperti yang sudah terlihat, deret waktu {1,0,0,1} mempunyai
DFT dengan dengan urutan komplek {2, 1+j ,0, 1-j}.
Untuk menampilkan DFT bisa dengan menggambarkan |X(k)| berbanding dengan kΩ dan Ф(k) berbanding dengan kΩ. Ini dapat dibuat jika Ω diketahui. Untuk menemukan Ω perlu mengetahui nilai T, interval sampling. Diasumsikan data di atas sudah disampling pada 8 kHz maka T = 1/(8x103) = 125 µs.
Kemudian Ω = 2π/NT = 2π/(4 x 125 x 10-6) = 12.57 kHz. Oleh karena itu 2Ω = 25.14 kHz dan 3Ω = 37.71 kHz. Gambar 2.1 (a) adalah gambar dari x(nT) berbanding dengan t, Gambar 2.1 (b) adalah gambar dari |X(k)| berbanding dengan kΩ, dan Gambar 2.1 (c) adalah Ф(k) berbanding dengan kΩ.
x(nT) 1 0 125 250 375 t(µs) (a) 2 2 0 12.57 25.14 37.71 kΩ(kHz) |X(k)| 50.28 (b) (c) Ф(k)(º) 0 12.57 25.14 37.71 kΩ(kHz) +45 50.28 -45
Gambar 2.1 (a) x(nT) berbanding dengan t, (b) |X(k)| berbanding dengan kΩ, dan (c) Ф(k) berbanding dengan kΩ.
Dapat ditarik kesimpulan jika komponen ke-k dari DFT, X(k),
dibandingkan dengan komponen ke (k + N), X(k + N), melalui pembuktian sebagai berikut:
∑
− = Ω − = 1 0 ) ( ) ( N n nT jk e nT x k X∑
− = − = 1 0 / 2 ) ( N n N n jk e nT x πdan
∑
− = − − = + 1 0 / 2 / 2 ) ( ) ( N n N n jN N n jk e e nT x N k X π π∑
− = − − = 1 0 2 / 2 ) ( N n n j N n jk e e nT x π π∑
− = − = = 1 0 / 2 ( ) ) ( N n N n jk X k e nT x πselama n adalah integral, jadi e-j2πn = 1.
Fakta bahwa X(k + N) = X(k) dan menunjukkan bahwa DFT berkala dengan
periode N. Ini merupakan sifat melingkar dari DFT. Simetris di N/2 jika harmonik kΩ=0 dan kΩ N= +1
2.3.1 Sifat-sifat dari DFT
DFT mempunyai sejumlah sifat-sifat matematik yang dapat digunakan untuk menyederhanakan masalah-masalah atau yang membawa ke aplikasi yang berguna. Beberapa dari itu tercantum di bawah. Urutan data x(nT) ditulis x(n).
(1) Simetri
Re[X(N-k)] = ReX(k) (2.20)
(dengan Re merupakan bagian real) menyatakan simetri dari spektrum
Im[X(N-k)] =-Im[X(k)] (2.21)
(dengan Im merupakan bagian imajiner) menyatakan simetri dari spektrum
fasa.
(2) Fungsi genap (even function)
Jika x(n) adalah fungsi genap xe(n), sehingga xe(n)=xe(-n), maka
∑
− (2.22) = Ω = = 1 0 ) cos( ) ( ) ( )] ( [ N n e e e D x n X k x n k nT F(3) Fungsi Ganjil (odd function)
Jika x(n) adalah sebuah fungsi ganjil x0(n), sehingga x0(n)=-x0(-n), maka
∑
− (2.23) = Ω − = = 1 0 0 0 0( )] ( ) ( )sin( ) [ N n D x n X k j x n k nT F (4) Teorema ParsevalEnergi ternormalisasi dalam sinyal dinyatakan dengan
∑
−∑
= − = = 1 0 1 0 2 2( ) 1 ( ) N n N k k X N n x (2.24) (5) Fungsi Delta FD[δ(nT)]=1 (2.25) (6) Cross-correlation linear dari urutan dua data bisa dihitung menggunakan DFT. Cross-correlation linear dari dua finite length x1(n) dan x2(n), dengan panjang N, didefinisikan menjadi
∑
∞ −∞ = ∞ ≤ ≤ −∞ + = n x x x n x n j j N j r1 2( ) 1 1( ) 2( ), (2.26)Ini juga perlu untuk mendefinisikan korelasi sirkular dari urutan finite length
∑
− = = = + = 1 0 2 1 2 1 ( ) ( ), 0,...., 1 1 ) ( N n x x x n x n j j N N j r (2.27)karena korelasi sirkular dapat diuji menggunakan DFT. Jadi
( ) [ ( ) 2( )] (2.28) * 1 1 2 1 j F X k X k rxx D − =
2.3.2 Kompleksitas Perhitungan DFT
Untuk 8-poin DFT, penjabaran untuk X(k) menjadi (dari persamaan 2.17)
∑
= Ω − = = 7 0 8 / , 0,....,7 ) ( ) ( n n jk k e n x k X jika k2π/8 = K, maka X(k)=x(0)e−jK0+x(1)e−jK1+x(2)e−jK2+x(3)e−jK3+x(4)e−jK4 +x(5)e−jK5 +x(6)e−jK6 +x(7)e−jK7,k =0,...,7Dari persamaan di atas terdapat 8 perkalian kompleks dan 7 penjumlahan kompleks untuk satu nilai k. Jadi untuk perhitungan 8-poin DFT memerlukan 82 = 64 perkalian kompleks dan 8 x 7 = 56 penjumlahan kompleks. Sehingga untuk N-poin DFT terdapat N2 perkalian dan N(N-1) penjumlahan kompleks.
2.4 Algoritma Decimation-in-time fast Fourier Transform
(DITFFT)
Dalam bagian ini akan ditunjukkan bagaimana kelebihan penghitungan dalam DFT digunakan untuk mengurangi angka keperluan penghitungan, sehingga mempercepat penghitungan. Algoritma yang dapat mencapai ini diberi nama fast Fourier Transform atau disingkat FFT. Ketika diaplikasikan dalam domain waktu, algoritmanya mengacu sebagai decimation-in-time (DIT) FFT.
Pertama notasinya akan disederhanakan dan beberapa hubungan matematis akan dibangun. Jadi persamaan (2.17) akan ditulis kembali sebagai
(2.29) 1 ,...., 0 , ) ( 1 0 / 2 1 =
∑
= − − = − k N e x k X N n N nk j n πJuga, faktor e-j2π/N akan ditulis sebagai WN, menjadi
WN = e-j2π/N (2.30) Sehingga persamaan (2.29) menjadi
(2.31)
∑
− = − = = 1 0 1( ) , 0,...., 1 N n kn N nW k N x k XBeberapa hubungan meliputi WN. Pertama,
(2.32) 2 / ) 2 / /( 2 2 / 2 2 ( ) N N j N j N e e W W = − π = − π = Kedua, π π k j N N N j k N N N k N N k N W W W e W e W( + /2) = /2 = − (2 / )( /2) = − k (2.33) N W − =
Didapatkan ringkasan hasil mengenai WN sebagai berikut
WN = e-j2π/N (2.33a) (2.33b) 2 / 2 N N W W =
(2.33c) k N Nn k N W W( + /2) =−
Dalam penghitungan yang ditunjukkan oleh persamaan (2.33), urutan data dibagi menjadi dua urutan yang sama, satu data genap dan satu data ganjil. Agar urutan mempunyai panjang yang sama, maka jumlah data harus genap. Jika jumlah data ganjil, maka nol harus ditambahkan untuk memberikan angka data genap. Proses selanjutnya, DFT, X1(k), ditulis dalam dua DFT, X11(k) dan X12(k). Dengan X11(k) dan X12(k) adalah DFT dari data nilai genap dan dari data nilai ganjil. Jadi DFT N-point diubah menjadi dua DFT masing-masing N/2 poin. Proses ini kemudian diulang sampai X1(k) menjadi N/2 DFT, masing-masing dua poin, kedua-duanya data inisial.
Akhiran n pada persamaan (2.31) adalah n=0 sampai n=N-1, sesuai
dengan nilai data x0, x1, x2, x3, …, xN-1. Urutan genap adalah x0, x2, x4,…,xN-2, dan urutan ganjil adalah x1, x3,…,xN-1. Kedua urutan itu mengandung N/2 poin. Hubungan-hubungan dengan urutan genap ditunjukkan x2n dengan n=0 sampai n=N/2-1 sementara pada urutan ganjil menjadi x2n+1. Lalu persamaan (2.31) dapat ditulis kembali sebagai berikut
∑
−∑
= − = + + + = /2 1 0 1 2 / 0 ) 1 2 ( 1 2 2 2 1( ) N n N n k n N n nk N nW x W x k Xurutan genap urutan ganjil
∑
−∑
, k = 0,…,N-1 (2.34) = − = + + = /2 1 0 1 2 / 0 2 1 2 2 2 N n N n nk N n k N nk N nW W x W xMenggunakan persamaan (2.33b) faktor jadi persamaan (2.34)
menjadi nk N nk N W W2 /2 2 / =
, k = 0,…,N-1 (2.35)
∑
−∑
= − = = + + = /2 1 0 1 2 / 0 2 / 1 2 2 / 2 ) ( N n N n n nk N n k N nk N nW W x W x k XPersamaan (2.35) dapat ditulis
, k = 0,…, N-1 (2.36) ) ( ) ( ) ( 11 12 1 k X k W X k X k N + =
Dalam perbandingan dari persamaan (2.36) dengan persamaan (2.31), terlihat bahwa X11(k) sungguh-sungguh DFT dari urutan genap, sementara X12(k) adalah urutan ganjil. Oleh karena itu, seperti yang dinyatakan sebelumnya, DFTnya,
X1(k), dapat digambarkan dalam hubungan-hubungan dari dua DFT : X11(k) dan X12(k). Faktor WNk/2tampak dalam X11(k) dan X12(k) dan hanya butuh perhitungan
sekali saja.
Tabel 2.1 Struktur dari 8 poin FFT [2].
Baris Isi baris k ranges N ranges
1 x0 x1 x2 x3 x4 x5 x6 x7 0, ., 7 2 ( ) ( ) ( ) 12 11 1 k X k W X k X k N + = 0,..,N – 1 (0,.., 7) 0, …, 7 3 x0 x2 x4 x6 x1 x3 x5 x7 0, …, 3 4 ( ) ( ) ( ) 22 2 / 21 11k X k W X k X k N + = X11(k) X21(k) Wk/2X22(k) N + = 0,.,N/2-1 (0,…,3) 0, …, 3 5 x0 x4 x2 x6 x1 x5 x3 x7 0, 1 6 X21(k)=x0+WkN/4x6 X21(k)=x0+WkN/4x6 X21(k)=x0+WkN/4x6 X21(k)=x0+WkN/4x6 0,.,N/4-1 (0,1) 0,1
Tabel 2.1 menunjukkan struktur perhitungan untuk 8-poin DFT. Baris pertama memberikan data. Baris kedua menunjukkan persamaan untuk 8-poin DFT dalam bentuk DFT urutan genap dan ganjil, X11(k) dan X12(k). Baris ketiga menunjukkan penyusunan data dari X11(k) dan X12(k). Baris ke empat memberikan persamaan 4-poin DFT dari urutan data baris ke tiga, dalam bentuk
DFT urutan genap dan ganjil, X21(k), X22(k), X23(k) dan X24(k). Urutan ini ditunjukkan dalam baris ke lima, dalam urutan dua poin. Dan baris ke enam menunjukkan DFT 2-poin, X21(k), X22(k), X23(k) dan X24(k). Jadi 8-poin DFT diuraikan menjadi empat 2-poin DFT, yang setiap 2-poin mempunyai dua nilai. Sebagai contoh, X21(k) mempunyai dua nilai yaitu X21(0) dan X21(0). Berdasar baris ke enam dapat dilihat bahwa
X21(k) x0 W /4x4 , k = 0 , 1 (2.37) k N + = Jadi 4 0 21(0) x x X = + sementara 4 4 / 0 21(1) x W x X = + N 4 0 4 0 4 2 0 4 2 0 W x x e x x e x x x x + = + j = + j = − = − π − π Demikian pula, , ) 0 ( 2 6 22 x x X = + X22(1)=x2 −x6 , ) 0 ( 1 5 23 x x X = + X23(1)=x1−x5 , ) 0 ( 3 7 24 x x X = + X24(1)= x3 −x7,
Dapat dilihat bahwa nilai dengan k = 1 hanya berbeda tanda dengan nilai k = 0.
Bagian ini hanya menjelaskan X11(k) dengan k = 0, 1, 2, 3.
X11(k) X21(k) W /2X22(k) (2.38) k N + = jadi, (0) (0) 0 22(0) 21(0) 22(0) (2.39) 2 / 21 11 X W X X X X = + N = +
) 1 ( ) 1 ( ) 1 ( ) 1 ( ) 0 ( 22 2 / 21 22 1 2 / 21 11 X W X X e X X j N π − + = + = = X21(1)− jX22(1) (2.40) ) 2 ( ) 2 ( ) 2 ( ) 2 ( ) 2 ( 22 2 2 ) 8 / 2 ( 21 22 2 2 / 21 11 X W X X e X X j N = + − × + = π (2.41) ) 2 ( ) 2 ( ) 2 ( ) 2 ( 22 21 22 21 e X X X X + j = − = − π Sekarang ) 0 ( ) 2 ( 2 4 0 4 21 2 0 4 2 4 / 0 21 x W x x W x x x X X = + N = + = + = dan ) 0 ( ) 2 ( 6 2 6 22 2 4 / 2 22 x W x x x X X = + N = + =
Jadi persamaan (2.41) sama dengan
X11(2)= X21(0)−X22(0) (2.42) (2.43) ) 3 ( ) 3 ( ) 3 ( 22 3 2 / 21 11 X W X X = + N Sekarang 4 3 ) 2 / 2 ( 0 4 3 4 / 0 21(3) x W x x e x X j n π − + = + = ) 1 ( 21 4 0 4 3 0 e x x x X x + j = − = = − π dan ) 1 ( ) 3 ( 2 6 22 22 x x X X = − =
Jadi persamaan (2.43) sama dengan
) 1 ( ) 1 ( ) 1 ( ) 1 ( ) 3 ( 3 /2 22 21 22 3 ) 4 / 2 ( 21 11 X e X X e X X = + −j π = + −jπ = X21(1)+ jX22(1) (2.44) Dari persamaan-persamaan di atas menghasilkan
(2.45a) ) 0 ( ) 0 ( ) 0 ( ) 0 ( ) 0 ( 22 0 8 21 22 21 11 X X X W X X = + = +
(2) (0) (0) (0) 22(0) (2.45b) 0 8 21 22 21 11 X X X W X X = − = − (1) (1) (1) (1) 2 22(1) (2.45c) 8 21 22 21 11 X jX X W X X = − = + (3) (1) (1) (1) 22(1) (2.45d) 2 8 21 22 21 11 X jX X W X X = + = −
Persamaan-persamaan seperti ini disebut penyusunan persamaan karena dimulai dari pasangan-pasangan data dan membentuk X21(k), X22(k), X23(k) dan X24(k) kemudian diperoleh X11(k) dan X12(k), dan akhirnya diperoleh X1(k).
2.4.1 Butterfly
Dari persamaan (2.45a) dan (2.45b), keluaran X11(0) dan X11(2) diperoleh dari masukan X21(0) dan X22(0), yang digambarkan dalam Gambar 2.2(a). Masukan berada pada sisi kanan, dan keluaran pada sisi kanan. Gambar 2.2(b) menunjukkan masukan X21(1) dan X22(1) dengan keluaran X11(1) dan X11(3). Kemudian Gambar 2.2(a) dengan 2.2(b) disusun dengan nilai urutan k dari kecil menjadi besar, seperti ditunjukkan pada gambar 2.2(c). FFT 8 poin ditunjukkan dengan cara seperti pada Gambar 2.3.
X21(0) X22(0) X11(0) = X21(0) + W80X22(0) X11(2) = X21(0) - W80X22(0) W8 0 XB21B(1) XB22B(1) XB11B(1) = XB21B(1) + WB8PB 0 P XB22B(1) XB11B(3) = XB21B(1) - WB8PB 0 P XB22B(1) WB8PB 2 (a)
Gambar 2.2 Butterfly FFT
Stage 1 Stage 2 Stage 3
Gambar 2.3 Butterfly untuk 8-poin DFT
2.4.2 Keuntungan Perhitungan DITFFT
Keuntungan perhitungan DITFFT dapat dilihat berdasarkan algoritma DITFFT pada Gambar 2.3. Gambar tersebut menunjukkan bahwa setiap bagian
(stage) terdiri dari N/2 butterfly dan log2N bagian, sehingga totalnya terdiri dari
(N/2)log2N butterfly. Gambar 2.2(a) menunjukkan bahwa setiap butterfly terdiri dari satu perkalian komplek dari bentuk . Sehingga jumlah perkalian
kompleknya sebesar (N/2)log
) (k
X WR ij
N
2N. Dibandingkan dengan perhitungan menggunakan DFT, perhitungan DITFFT ini menghemat perkalian sejumlah N2 - (N/2)log2N. Setiap butterfly terdiri dari dua penjumlahan komplek. Sehingga perhitungan ini
membutuhkan Nlog2N penjumlahan. Menghemat N(N-1) - Nlog2N penjumlahan
dibandingkan dengan perhitungan menggunakan DFT.
x
0x
2x
1x
3x
21(0)x
21(1)x
22(0)x
22(1) W4 0 W4 1x
11(0)x
11(1)x
11(2)x
11(3)Urutan ganjil = x1 dan x3 Urutan genap = x0 dan x2 x0 = 1, x1 = 0, x2 = 0, x3 = 1
Contoh 2
Hitung FFT dari deretan data {1, 0, 0, 1}!
Jawab X21(0) = x0 + x2 = 1 X21(1) = x0 – x2 = 1 X22(0) = x1 + x3 = 1 X22(1) = x1 – x3 = -1 X11(0) = X21(0) + W40X22(0) = 1 + 1 = 2
BAB III
PERANCANGAN PROGRAM PEMBANDING
KINERJA DFT DAN DITFFT
3.1 Algoritma Perancangan Program
Algoritma program pembanding kinerja DFT dan DITFFT ditunjukkan pada Gambar 3.1.
Masukan dari pengguna
Menghitung DFT dan DITFFT
Menampilkan sinyal masukan dan sinyal keluaran untuk
DFT dan DITFFT
Menampilkan jumlah adder, multiplier, dan
kecepatan
Gambar 3.1 Algoritma perancangan program
Pengguna memberikan masukan data sesuai dengan spesifikasi yang tersedia. Proses selanjutnya adalah menghitung DFT dan DITFFT. Tahap selanjutnya menampilkan sinyal masukan dan sinyal keluaran untuk DFT dan DITFFT. Tahap
terakhir menghitung jumlah adder, multiplier, dan kecepatan yang dibutuhkan dari perhitungan menggunakan DFT dan dengan menggunakan DITFFT.
3.2 Perancangan Tampilan Awal
Tampilan awal adalah bagian dari layout yang menjadi langkah awal untuk menjalankan program. Gambar layout tampilan awal ini ditunjukkan pada Gambar 3.2.
Gambar 3.2 Layout program tampilan awal.
Tampilan ini dapat muncul apabila pengguna memanggil fungsi pada command
window dari perangkat lunak MATLAB®. Diagram alir proses ini ditunjukkan pada Gambar 3.3.
Tidak Ya masukan Start Ya Selesai Exit Tidak Mulai
Gambar 3.3 Diagram alir layout tampilan awal
Pada layout ini pengguna dapat melakukan pemilihan langkah mana yang akan dijalankan. Ada 2 proses yang dapat dipilih, yaitu start dan exit. Apabila pengguna memilih start, maka proses selanjutnya adalah memanggil fungsi pemberian masukan dari pengguna. Apabila pengguna memilih exit, maka pemilihan tersebut akan mengakhiri program.
3.3 Pemberian Masukan
3.3.1 Masukan Manual
Pengguna memberikan masukan yang diinginkan secara satu persatu, dengan spesifikasi N poin 4 – 1024, kemudian ditampilkan dalam bentuk spektrum dengan menggunakan fungsi stem pada matlab. Proses pemberian secara manual ditunjukkan pada Gambar 3.4.
Mulai Masukkan N-poin DFT Ya Apakah N = 4 – 1024 ? Tidak Simpan d Hitung DFT dan DITFFT, kecepatan, adder dan multiplier
Ya Tidak Radix 2 DFT ? DFT dan Adder dan Selesai
Gambar 3.4 Diagram alir proses masukan manual
Data untuk perhitungan DITFFT harus merupakan radix 2, yaitu jumlah datanya merupakan hasil pangkat dari 2, misal 4, 8, 16 dan seterusnya. Data harus
radix 2 karena nantinya proses akan berulang-ulang menjadi
2
N
DFT,
masing-masing 2 poin. Sedangkan pada proses masukan manual ini, proses perhitungan DFT jumlah data tidak harus radix 2. Hal ini sesuai dengan dasar teori yang telah
dijelaskan pada Bab II. Proses selanjutnya adalah perhitungan DFT dan DITFFT,
adder dan multiplier. Kemudian menampilkan hasil-hasil tersebut.
3.3.2 Masukan sinyal
Pengguna memberikan masukan berupa sinyal asli yang diperoleh dari file berekstensi *.wav, yang kemudian sinyal tersebut diubah menjadi bentuk spektrum dengan menggunakan fungsi stem pada matlab. Pengubahan bentuk ini dilakukan agar nilai-nilainya tampak lebih jelas. Proses pemberian masukan sinyal ditunjukkan pada Gambar 3.5. Mulai Masukkan input ekstensi *.wav File berekstensi *.wav? Tampilkan sinyal asli Ya Tidak Selesai
3.3.2.1 Masukan N-poin
Pengguna memasukkan N-poin yang diinginkan, yaitu antara 4 poin sampai 1024 poin. Apabila masukan tidak sesuai dengan spesifikasi, maka pengguna diminta memberikan masukan yang baru. Diagram alir proses pemberian masukan N poin ditunjukkan pada Gambar 3.6.
Selesai
Tampilkan sinyal tersebut
DFT dan Adder dan Multiplier
Tidak
Potong sinyal dari x0sampai
Hitung DFT dan
DITFFT, kecepatan,
adder dan multiplier Radix 2 Ya Tidak Masukkan N-poin DFT Apakah N = 4 – 1024 ? Ya Mulai Radix 2
Jumlah data untuk kedua perhitungan DFT dan DITFFT harus merupakan
radix 2. Hal ini berbeda dengan proses masukan manual, karena pada masukan sinyal
dirancang untuk membandingkan kedua proses perhitungan ini, sehingga jumlah data kedua proses ini harus sama. Sedangkan pada proses masukan manual dirancang hanya untuk menghitung kedua proses ini, sehingga data tidak perlu disamakan dengan menggunakan radix 2. Selanjutnya, sinyal asli yang sudah dalam bentuk stem dipotong sesuai dengan N yang dimasukkan, yaitu dari x0 sampai xN-1 dan ditampilkan. Proses selanjutnya adalah perhitungan DFT dan DITFFT, adder dan
multiplier.
3.3.3 Proses Radix 2
Radix 2 yaitu jumlah data yang merupakan hasil pangkat dari 2, misal 4, 8, 16
dan seterusnya. Setelah data dimasukkan, kemudian program akan mengecek jumlah data. Apabila jumlah data sudah merupakan radix 2, jumlah data tersebut yang akan dipakai untuk proses selanjutnya. Apabila jumlah data belum radix 2, maka data tersebut akan ditambah data baru yang bernilai nol, sampai data tersebut berjumlah
radix 2 di atas data masukan tersebut.
Misal apabila data masukan {1, 2, 1, 2, 1}, agar data tersebut menjadi radix 2 maka data masukan akan dibuat menjadi {1, 2, 1, 2, 1, 0, 0, 0}. Diagram alir untuk proses radix 2 ditunjukkan pada Gambar 3.7.
Mulai
Data masukan
Gambar 3.7 Diagram alir proses Radix 2
Selesai 256 < N ≤ 512 ? Data awal ditambah data xN sampai x1024 4 < N ≤ 8 ? 8 < N ≤ 16 ? Ya Data awal ditambah data xN sampai x8 xN, xN+1, .., x8 = 0 N = 8 16 < N ≤ 32 ? 32 < N ≤ 64 ? xN, xN+1, .., x16 = 0 xN, xN+1, .., x32 = 0 xN, xN+1 , .., x64 = 0 Data awal ditambah data xN sampai x16 Data awal ditambah data xN sampai x32 N = 4 N = 4 ? Tidak Tidak Tidak Ya Ya N = 16 Data awal ditambah data xN sampai x64 64 < N ≤ 128 xN, xN+1 , .., x128 = 0 Data awal ditambah data xN sampai x128 Data awal ditambah data xN sampai x256 Data awal ditambah data xN sampai x512 xN, xN+1 , .., x256 = 0 xN, xN+1 , .., x512 = 0 128 < N ≤ 256 N = 32 N = 64 512 < N ≤ 1024 ? xN, xN+1 , ..,x1024= 0 N = 128 N = 256 N = 512 N = 1024 Ya Ya Ya Ya Ya Tidak Tidak Tidak Tidak
3.4 Proses Penampilan Sinyal dan Waktu Proses DFT dan DITFFT
Gambar 3.8 menunjukkan diagram alir penampilan sinyal DFT dan DITFFT dan akan menampilkan pembandingan kecepatan perhitungan kedua algoritma tersebut.Mulai
Memulai penghitungan waktu dengan menggunakan fungsi
toc DFT
Memulai penghitungan waktu dengan menggunakan fungsi
toc DFT ? ya tidak Baca data,simpan dalam variabel x0 sampai xN-1 DITFFT
Menghentikan tic, mencatat dan menampilkan waktu berjalannya tic menggunakan
fungsi toc
Gambar 3.8 Diagram alir penampilan sinyal dan waktu proses DFT dan DITFFT
Data diambil dari sinyal yang telah dipotong sesuai dengan nilai N yang dimasukkan, kemudian disimpan dalam variabel x0 sampai xN-1.
Untuk menghitung
kecepatan proses perhitungan DFT dan DITFFT menggunakan fungsi pada matlabTampilkan
sinyal DFT sinyal DITFFTTampilkan Menghentikan tic, mencatat
dan menampilkan waktu berjalannya tic menggunakan
fungsi toc
yaitu fungsi tic dan toc. Tic dan toc adalah penghitung waktu atau disebut stopwatch. Fungsi tic dan toc berkerja bersama, tic untuk memulai penghitungan waktu dan toc mulai digunakan setelah tic berhenti bekerja. Toc yang mencatat waktu proses berjalannya tic dan akan menampilkannya. Selanjutnya sinyal hasil perhitungan DFT dan DITFFT akan ditampilkan.
3.4.1 Perhitungan DFT
Gambar 3.9 merupakan diagram alir proses perhitungan DFT. Diagram alir ini
merupakan penjabaran dari rumus awal DFT yaitu . Data
diambil dari nilai N radix-2 yang akan memotong sinyal masukan sehingga membentuk sinyal sk1. Proses selanjutnya adalah proses inisialisasi dan masuk proses
looping I. Looping ini akan terus berjalan sampai nilai k = n. Di dalam looping I ini
terdapat looping lagi. Proses looping II ini melakukan perhitungan-perhitungan dengan dasar nilai k = 0 dan berhenti looping sampai nilai a = N, dan akan masuk
looping I dengan nilai k telah masuk rumus k = k + 1. Looping-looping ini akan terus
berjalan sampai nilai k = n. Di dalam looping II terdapat ssk. ssk adalah nilai setiap baris dari sk1. abs adalah fungsi matlab yang digunakan untuk mengubah menjadi bilangan komplek.
∑
− = Ω − = 1 0 ) ( ) ( N n nT jk e nT x k Xdt(1,m) = def k = n ? a = a + 1 ssk = sk1( a , : ) x = ssk*(cos(2π*p*k/N) - j*sin(2π*p*k/N)) p = p + 1 de = de + x def = abs(de) a = N ? k = k + 1 tampilkan dt selesai Ya Tidak Tidak Ya a = 0 p = 0 de = 0 m = m + 1 mulai Baca data N & sk1 n = N-1 m = 0
3.4.2 Perhitungan DITFFT
Untuk menghitung DITFFT menggunakan perhitungan Butterfly. Pada Gambar 3.10 menunjukkan diagram alir perhitungan Butterfly.
Untuk melakukan perhitungan, langkah pertama yang diperlukan yaitu membaca data. Data yang dibutuhkan adalah panjang data (N) dan nilai x0, x1, ..., xN-1. Langkah selanjutnya adalah melakukan inisialisasi loop = 1, π = 3,141592654, k = 0 dan I = 0.
Loop digunakan untuk membatasi jumlah perhitungan. Apabila loop sudah lebih dari
nilai E maka perhitungan selesai. E adalah jumlah stage yang diperlukan. Langkah selanjutnya adalah mencari nilai P. Nilai P digunakan untuk mencari nilai W. Nilai P didapat dari BR (int (k / 2S )). S didapat dari E – 1. BR adalah Bit Reversed. Langkah pertama dari proses Bit Reversed adalah mengubah nilai dalam bentuk biner, kemudian least significant bit (LSB) ditukar dengan most significant bit (MSB) dan diubah dalam bentuk desimal. Misal untuk nilai N = 8, 3 bit digunakan.Nilai bit
reversed untuk N = 8 ditunjukkan pada Tabel 3.1.
Langkah selanjutnya adalah mencari nilai W, dengan menggunakan rumus cos
(2π P/N) – j sin (2π P/N). Selanjutnya mencari nilai TMP. TMP adalah nilai x(k+N2)
yang akan dikalikan dengan W. Kemudian nilai x(k+N2) dikurangkan dengan nilai
TMP dan akan disimpan dalam nilai x(k+N2). Dan nilai x(k) ditambahkan dengan
nilai TMP. Proses selanjutnya diberikan k = k + 1, agar nilai x(k) dan x(k+N2) berubah seiring dengan proses looping yang terjadi. Looping ini akan berhenti sampai nilai I = N2. Maka stage 1 sudah didapatkan, dan masuk proses selanjutnya untuk mendapatkan stage berikutnya.
Proses selanjutnya diberikan k = k + N2, agar nilai-nilai yang akan dihitung bisa diurutkan sesuai dengan urutan yang diinginkan. Apabila k < N – 1, maka proses
akan kembali ke atas dimulai dari k = 0. Jika k tidak kurang dari N – 1, maka proses akan kembali ke atas dimulai dari I = 0. Proses ini akan terus berjalan sesuai dengan perintah-perintah yang telah dibuat dan akan berhenti sampai didapatkan nilai Loop >
E dan akan ditemukan nilai akhir x0, x1,…, xN-1.
Tabel 3.1 Bit Reversed untuk N = 8
k Biner Bit Reversed Desimal BR
0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 000 100 010 110 001 101 011 111 0 4 2 6 1 5 3 7
3.5 Proses Penghitungan Jumlah Adder dan Multiplier untuk DFT
dan DITFFT
Gambar 3.11 adalah diagram alir untuk menghitung jumlah adder dan jumlah
multiplier untuk DFT dan DITFFT. Proses pertama dalam perhitungan ini adalah
membaca nilai N. Proses selanjutnya adalah yang berproses secara bersamaan yaitu menghitung multiplier DFT dengan rumus N2, adder DFT dengan rumus N(N-1), multiplier DITFFT dengan rumus (N/2)log2 dan menghitung adder DITFFT dengan rumus Nlog2N. Tahap terakhir menampilkan jumlah adder dan multiplier untuk DFT
Mulai Baca nilai N radix 2 Hitung multiplier DFT = N2 Hitung Adder DFT = N(N-1) Hitung multiplier DITFFT = (N/2)log2N Hitung Adder DITFFT = Nlog2N Tampilkan adder dan multiplier untuk DFT Tampilkan adder dan multiplier untuk DITFFT Selesai
Gambar 3.11 Diagram alir perhitungan jumlah adder dan multiplier DFT dan DITFFT
3.6 Layout Program
Layout program merupakan rancangan secara visual untuk implementasi
program pembanding kinerja DFT dan DITFFT. Layout program ditunjukkan pada Gambar 3.12. Layout pada Gambar 3.12 menggunakan beberapa komponen visual yang disediakan oleh program aplikasi MATLAB® untuk menampilkan proses simulasi. Komponen-komponen visual tersebut adalah
a. Figure
Figure adalah objek yang digunakan sebagai tempat untuk merancang program
List box Push button Edit text
Axes
Pop-up menu Static text Figure
Gambar 3.12 Layout Program
b. Edit text
Edit text adalah area yang dapat digunakan sebagai tempat untuk
menuliskan satu baris text masukan. Pada program simulasi ini, edit text digunakan sebagai tempat memasukkan file *.wav, N poin, perhitungan yang diinginkan, jumlah adder dan multiplier untuk DFT dan DITFFT.
c. List box
List box digunakan untuk menampilkan daftar informasi. Pada program
simulasi ini list box digunakan untuk menampilkan data masukan dan keluaran.
d. Static text
Static text adalah area yang digunakan sebagai tempat untuk
menampilkan text informasi. Text informasi pada static text tidak dapat diubah oleh pengguna.
e. Pop-up menu
Pop-up menu digunakan untuk menampilkan daftar pilihan yang dapat
dipilih oleh pengguna. Pada program ini pop-up menu digunakan untuk memilih perhitungan yang diinginkan. Jadi bisa menghitung DFT atau
DITFFT saja dan bisa dihitung secara bersamaan.
f. Axes
Axes digunakan untuk menampilkan grafik atau kurva. Pada program
simulasi ini axes digunakan sebagai tempat untuk menampilkan sinyal asli, sinyal DFT dan sinyal DITFFT.
g. Push button
Push button merupakan tombol yang digunakan untuk mengeksekusi
sebuah perintah. Pada Gambar 3.10 terdapat beberapa tombol, yaitu
1. Tombol masukan manual digunakan untuk memilih perhitungan dengan masukan secara manual oleh pengguna.
2. Tombol masukan sinyal digunakan untuk memilih perhitungan dengan masukan dari sinyal.
3. Tombol masukkan data digunakan untuk memasukkan nilai satu persatu oleh pengguna.
4. Tombol batal digunakan untuk membatalkan atau menghapus nilai yang telah dimasukkan pengguna.
5. Tombol hitung digunakan untuk menghitung DFT dan DITFFT. 6. Tombol browse digunakan untuk mencari file berbentuk *.wav. 7. Tombol tampilkan 1 digunakan untuk menampilkan sinyal asli.
8. Tombol tampilkan 2 digunakan untuk menampilkan sinyal setelah diberi masukan N.
9. Tombol bandingkan digunakan untuk menjalankan proses pembandingan DFT dan DITFFT.
10. Tombol keluar digunakan untuk keluar dari program.
11. Tombol reset digunakan untuk menghapus semua nilai dan mengembalikan tampilan seperti semula.
12. Tombol legend digunakan untuk menampilkan informasi mengenai sinyal asli (masukan), sinyal DFT dan sinyal DITFFT.
13. Tombol grid digunakan untuk menampilkan grid pada axes.
14. Tombol + digunakan untuk memperbesar (zoom) gambar sinyal pada
point yang diinginkan.
15. Tombol − digunakan untuk mengembalikan sinyal ke ukuran asal setelah di zoom.
16. Tombol cursor untuk mengembalikan cursor ke bentuk awal, misal setelah menggunakan tombol grid atau -.
Bab ini akan menyajikan hasil pengujian dari program pembanding kinerja
Discrete Fourier Transform dan Decimation In Time Fast Fourier Transform yang
telah dibuat. Pengujian dilakukan dengan memberikan masukan dari pengguna dan sinyal masukan berekstensi *.wav. Bab ini juga akan membahas perbandingan kecepatan, jumlah adder dan multiplier yang diperlukan dalam perhitungan DFT dan
DITFFT.
4.1 Tampilan Program
Saat pertama kali menjalankan program simulasi, pengguna akan melihat tampilan antar muka halaman pembuka program. Judul program simulasi serta pembuat program ditampilkan pada halaman pembuka. Tampilan halaman pembuka program dapat dilihat pada Gambar 4.1.
Gambar 4.1 Tampilan halaman pembuka program
Di halaman pembuka terdapat dua tombol yang dapat digunakan oleh pengguna, yaitu tombol Start dan tombol Exit. Tombol Start digunakan untuk masuk ke program utama, sedangkan tombol Exit digunakan untuk keluar dari program. Tampilan halaman utama program ditunjukkan pada Gambar 4.2.
Gambar 4.2 Tampilan program utama.
Pada halaman utama terdapat menu File dan Bantuan. Menu File terdiri dari tiga submenu, yaitu Reset, Simpan dan Keluar. Untuk mengosongkan program menggunakan submenu Reset. Untuk menyimpan file program berekstensi *.wav menggunakan submenu Simpan. Tampilan penyimpanan data dapat dilihat pada Gambar 4.3. Submenu Keluar berfungsi untuk keluar dari program. Menu Bantuan
berisi keterangan singkat tentang DFT & DITFFT dan cara penggunaan program. Tampilan submenu Bantuan ditunjukkan pada Gambar 4.4.
Gambar 4.3 Tampilan penyimpanan data.
a) (b)
(a) (b)
Gambar 4.4 Tampilan Submenu Bantuan. (a) Pengertian DFT dan DITFFT .
(b) Cara Penggunaan Program.
Tampilan program utama mempunyai beberapa kondisi push button dalam keadaan on, yaitu masukan manual, masukan sinyal dan keluar. Kondisi push button selain yang telah disebutkan di atas berada dalam keadaan off. Kondisi ini akan
berubah ketika masukan manual dipilih. Yaitu masukan sinyal akan menjadi off dan
push button pada panel masukan manual dan reset akan menjadi on, sedangkan
kondisi lainnya masih seperti semula. Ketika tombol masukan sinyal yang dipilih, tombol masukan manual akan menjadi off dan tombol pada panel masukan sinyal dan tombol reset akan menjadi on. Untuk keluar dari program menggunakan tombol
KELUAR, yang memiliki fungsi yang sama dengan submenu Keluar.
Jika pengguna menekan tombol KELUAR, maka program simulasi akan menampilkan message box seperti ditunjukkan pada Gambar 4.5. Apabila pengguna menekan push button Ya, maka program simulasi akan keluar dari layout program. Apabila pengguna menekan push button Tidak, maka program dapat dilanjutkan kembali. Saat proses perhitungan terjadi, program akan menampilkan waitbar seperti ditunjukkan pada Gambar 4.6.
Gambar 4.5 Message box keluar program.
(a) (b)
4.1.1 Masukan Manual
Masukan manual merupakan aplikasi tambahan dalam program ini. Judul
program ini adalah program pembanding kinerja DFT dan DITFFT, sedangkan masukan manual tidak membandingkan tetapi hanya untuk menghitung DFT danDITFFT. Jadi masukan manual ini hanya aplikasi tambahan dan program utamanya
terdapat pada masukan sinyal.
Gambar 4.7 menunjukkan panel masukan manual. Pengguna dapat memasukkan data dengan mengisi edit.text satu persatu dan menekan tombol
masukkan data. Apabila pengguna belum memasukkan nilai atau nilai tidak sesuai
dengan persyaratan maka akan muncul pesan error seperti ditunjukkan pada Gambar 4.8. Apabila ingin mengganti masukan, pengguna dapat menekan tombol batal, dan nilai-nilai yang telah dimasukkan akan dihapus. Kemudian pengguna dapat memasukkan nilai-nilai baru.
Gambar 4.7 Gambar panel masukan manual
Data masukan {1, 0, 1, 0, 1} akan ditampilkan dalam bentuk stem dan angka seperti ditunjukkan dalam Gambar 4.9. Dengan menggunakan data di atas dan menggunakan pilihan DFT & DITFFT, program akan menghasilkan keluaran seperti pada Gambar 4.10.
Gambar 4.9 Tampilan masukan
(a)
(b)
Keluaran DFT mempunyai jumlah N yang sama dengan jumlah N pada masukan yaitu 5. Sedangkan pada keluaran DITFFT jumlah N menjadi 8. Hal ini karena pada proses DITFFT data masukan harus merupakan radix 2 atau eksponen dari 2, sehingga jumlah data harus ditambah dengan data baru yang bernilai nol, sampai jumlah data menjadi radix 2. Hasil keluaran kedua proses ini akan berbeda karena jumlah masukannya yang berbeda. Hasil-hasil keluaran di atas sesuai dengan
perhitungan secara teori, yang perhitungannya dijabarkan pada Lampiran B.
4.1.2 Masukan Sinyal dengan Data chimes.wav
Gambar 4.11 menunjukkan panel masukan sinyal. Pengguna dapat memasukkan data berekstensi *.wav dengan menekan tombol browse dan memilih masukan. Tampilan pengambilan data berekstensi *.wav ditunjukkan pada Gambar 4.12. Apabila pengguna belum memasukkan data berekstensi *.wav dan menekan
Hitung maka akan muncul pesan error seperti Gambar 4.14(a).
Gambar 4.12 Tampilan pengambilan data berekstensi *.wav
Jika pengguna menekan tombol tampilkan, maka akan muncul panjang data dan sinyal masukan seperti ditunjukkan pada Gambar 4.13(a). Apabila pengguna belum menekan tombol tampilkan, maka akan muncul pesan error seperti pada Gambar 4.14 (b).
Dengan memasukkan nilai pada masukan N-poin, misal dengan nilai 81, maka akan keluar sinyal masukan seperti pada Gambar 4.13(b). Sinyal masukan
chimes.wav dipotong sehingga mempunyai jumlah data 81, tetapi pada gambar
jumlah datanya menjadi 128. Hal ini seperti yang sudah dibahas sebelumnya, yaitu dikarenakan jumlah data harus merupakan radix2 atau eksponen dari 2, sehingga data masukan ditambah 47 data lagi dengan nilai 0.
Apabila pengguna belum memasukkan nilai atau memasukkan nilai yang tidak sesuai dengan persyaratan dan menekan tombol tampilkan, maka akan muncul pesan error seperti pada Gambar 4.14(c). Apabila pengguna sudah memasukkan nilai
yang sesuai tetapi belum menekan tombol tampilkan dan menekan tombol hitung, maka akan muncul pesan error seperti pada Gambar 4.14(d).
(a)
(b)
(c)
Gambar 4.13 Tampilan masukan. (a) Sinyal masukan chimes.wav.
(a) (b)
Gambar 4.14 Pesan kesalahan. (a) Tidak ada masukan file*.wav.
(c) (d)
(b) Masukan file*.wav belum ditampilkan.
(c) Masukan N-poin belum diisi atau nilai tidak sesuai persyaratan. (d) Masukan N-poin belum ditampilkan.
Setelah menjalankan langkah-langkah di atas dan telah memenuhi persyaratan, misal dengan sinyal masukan chimes.wav dan masukan N-poin 81 dengan pilihan DFT & DITFFT, maka program akan menghasilkan keluaran seperti pada Gambar 4.15. Berbeda dengan masukan manual, pada masukan sinyal jumlah data masukan harus dibuat sama karena akan dibandingkan. Sehingga hasil keluarannya akan sama, tetapi dengan waktu proses perhitungan yang berbeda.
Gambar 4.15 menunjukkan proses DFT membutuhkan waktu yang lebih lama yaitu 1.03199 detik dan proses DITFFT membutuhkan waktu 0.243369 detik untuk masukan N-poin 81. Jadi untuk masukan N-poin 81, proses DITFFT lebih cepat 0.788621 detik dibandingkan proses DFT. Hal ini disebabkan proses DFT membutuhkan 16256 adder dan 16384 multiplier, sedangkan proses DITFFT hanya membutuhkan 896 adder dan 448 multiplier.