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)
Fourier Transform (DFT) dan Decimation In Time Fast Fourier Transform (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.
Discrete Fourier Transform (DFT) and Decimation In Time Fast Fourier 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
JUDUL... i
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
Halaman
Gambar 2.1 (a) x(nT) berbanding dengan t, (b) |X(k)| berbanding dengan kΩ,
dan (c) Ф(k) berbanding dengan kΩ... 12
Gambar 2.2Butterfly 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 multiplierDFT dan DITFFT... 39
Gambar 3.12Layout 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 adderDFT dan DITFFT... 57
Gambar 4.18 Grafik perbandingan jumlah multiplierDFT dan DITFFT... 57
Halaman
Tabel 2.1 Struktur dari 8 poin FFT... 18
Tabel 3.1 Bit Reversed untuk N = 8 ... 38
Tabel 4.1 Hasil waktuproses DFT dan DITFFT ... 55
Tabel 4.2 Jumlah Adder dan Multiplier untuk DFT dan DITFFT... 56
ix
Halaman
Tabel 2.1 Struktur dari 8 poin FFT... 18
Tabel 3.1 Bit Reversed untuk N = 8 ... 38
Tabel 4.1 Hasil waktuproses DFT dan DITFFT ... 55
Tabel 4.2 Jumlah Adder dan Multiplier untuk DFT dan DITFFT... 56
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
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
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)
∫−
= /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 dn mempunyai satuan volt.
Magnitudo dnadalah
dn =(an2 +bn2)1/2 (2.7) Dan sudut fasa Φnadalah
n tan 1(bn /an) (2.8)
−
− = Φ
2.2 Transformasi Fourier
Transformasi Fourier adalah metode penjelasan model matematika dari
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
FD 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
j F T 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
Untuk k = 0, persamaan (2.17) menjadi
∑
∑
= = − = = 3 0 3 0 0 ) ( ) ( ) 0 ( n n j nT x 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 e nT x e nT xX π π
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 / 4 ) ( n N n j e nT x π 4 / 3 4 1 0 01+ + + e−j π
= 0 1 1 0 0
1+ + + 3 = − =
= −j π
e
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− j
Jadi 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
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
dan
∑
− = − − = + 1 0 / 2 / 2 ) ( ) ( N n N n jN N n jk e e nT x N kX π π
∑
− = − − = 1 0 2 / 2 ) ( N n n j N n jk e e nTx π π
∑
− = − = = 1 0 / 2 ) ( ) ( N n N n jk k X 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 Parseval
Energi ternormalisasi dalam sinyal dinyatakan dengan
∑
∑
− = − = = 1 0 1 0 2 2 ) ( 1 ) ( N n N k k X N nx (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 xx 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 21 ( ) ( ), 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
rx1x2(j)=FD−1[X1*(k)X2(k)] (2.28)
2.3.2 Kompleksitas Perhitungan DFT
Untuk 8-poin DFT, penjabaran untuk X(k) menjadi (dari persamaan 2.17)
∑
= Ω − = = 7 0 8 / 7 ,...., 0 , ) ( ) ( n n jk k e n x k Xjika 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,...,7
Dari 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.
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 =
∑
= −− = − N k 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 01( ) , 0,...., 1
N
n
kn N
nW k N
x k
X
Beberapa hubungan meliputi WN. Pertama,
(2.32) 2 / ) 2 / /( 2 2 / 2 2 )
( j N j N N
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) = −
=−WNk (2.33)
Didapatkan ringkasan hasil mengenai WN sebagai berikut
WN = e-j2π/N (2.33a)
(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 10 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
X
urutan 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
x
Menggunakan persamaan (2.33b) faktor jadi persamaan (2.34)
menjadi
nk N nk
N W
, k = 0,…,N-1 (2.35)
∑
−∑
= − = = + + = /2 10 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
X
Persamaan (2.35) dapat ditulis
, k = 0,…, N-1 (2.36)
) ( )
( )
( 11 12
1 k X k W X k
X = + Nk
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 = + Nk
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 = + Nk X11(k)=X21(k)+WNk/2X22(k) 0,.,N/2-1
(0,…,3)
0, …, 3
5 x0 x4 x2 x6 x1 x5 x3 x7 0, 1
6 X21(k)=x0+W
k
N/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
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)+WNk/2X22(k) (2.38) jadi,
(0) (0) 22(0) 21(0) 22(0) (2.39)
0 2 / 21
11 X W X X X
) 1 ( ) 1 ( ) 1 ( ) 1 ( ) 0
( /2 22
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 N j
× − + = + = π (2.41) ) 2 ( ) 2 ( ) 2 ( ) 2
( 22 21 22
21 e X X X
X + j = −
= − π Sekarang ) 0 ( ) 2
( 4 0 4 21
2 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 = + n = + −j π
) 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
( 21 (2 /4)3 22 21 3 /2 22
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
(2) (0) (0) (0) 0 22(0) (2.45b)
8 21
22 21
11 X X X W X
X = − = −
X11(1)= X21(1)− jX22(1)= X21(1)+W82X22(1) (2.45c) X11(3)= X21(1)+ jX22(1)= X21(1)−W82X22(1) (2.45d) 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)
W80
XB21B(1)
XB22B(1)
XB11B(1) = XB21B(1) + WB8PB
0
P
XB22B(1)
XB11B(3) = XB21B(1) - WB8PB
0
P
XB22B(1)
WB8PB
2
Gambar 2.2Butterfly 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
(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 WNR ij
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)W40
W4 1
x
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
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
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
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
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
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
3.4 Proses Penampilan Sinyal dan Waktu Proses DFT dan DITFFT
Gambar 3.8 menunjukkan diagram alir penampilan sinyal DFT dan DITFFTdan 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 matlab
Tampilkan sinyal DFT
Tampilkan sinyal DITFFT
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
dt(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
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.1Bit 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 Nradix 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
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
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
16.Tombol cursor untuk mengembalikan cursor ke bentuk awal, misal
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
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
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 sehing