• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI 2.1 Audio - Analisis Dan Implementasi Song Recog-Nition Menggunakan Algoritma Fast Fourier Transform

N/A
N/A
Protected

Academic year: 2019

Membagikan "BAB 2 LANDASAN TEORI 2.1 Audio - Analisis Dan Implementasi Song Recog-Nition Menggunakan Algoritma Fast Fourier Transform"

Copied!
20
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1Audio

Audio atau suara merupakan gelombang yang mengandung sejumlah komponen penting (amplitudo, panjang gelombang dan frekuensi) yang dapat menyebabkan

suara yang satu berbeda dari suara lain. Amplitudo adalah kekuatan atau daya

gelombang sinyal. Tinggi gelombang yang bisa dilihat sebagai grafik, Gelombang

yang lebih tinggi diinterpretasikan sebagai volume yang lebih tinggi, Suara beramplitudo lebih besar akan terdengar lebih keras. Frekuensi adalah jumlah dari

siklus yang terjadi dalam satu detik. Satuan dari frekuensi adalah Hertz atau disingkat

Hz. Getaran gelombang suara yang cepat membuat frekuensi semakin tinggi.

Misalnya, bila menyanyi dalam pita suara tinggi memaksa tali suara untuk bergetar

secara cepat. Suara dengan frekuensi lebih besar akan terdengar lebih tinggi[10].

Gelombang suara adalah gelombang yang dihasilkan dari sebuah benda yang

bergetar. Sebagai contoh, senar gitar yang dipetik, gitar akan bergetar dan getaran ini

merambat di udara, atau air, atau material lainnya. Satu-satunya tempat dimana suara

tak dapat merambat adalah ruangan hampa udara. Gelombang suara ini memiliki

lembah dan bukit, satu buah lembah dan bukit akan menghasilkan satu siklus atau

periode. Siklus ini berlangsung berulang-ulang, yang membawa pada konsep

frekuensi.

Telinga manusia dapat mendengar bunyi antara 20 Hz hingga 20 kHz

(20.000 Hz) sesuai batasan sinyal audio. Karena pada dasarnya sinyal suara adalah

sinyal yang dapat diterima oleh telinga manusia. Angka 20 Hz sebagai frekuensi suara

(2)

dapat didengar. Gelombang suara bervariasi sebagaimana variasi tekanan media

perantara seperti udara. Suara diciptakan oleh getaran dari suatu obyek, yang

menyebabkan udara disekitarnya bergetar. Getaran udara ini kemudian menyebabkan

gendang telinga manusia bergetar, yang kemudian oleh otak dianggap sebagai suara.

2.1.1Audio Digital

Audio digital merupakan versi digital dari suara analog. Pengubahan suara analog

menjadi suara digital membutuhkan suatu alat yang disebut Analog to Digital Converter (ADC). ADC akan mengubah amplitudo sebuah gelombang analog ke dalam waktu interval (sampel) sehingga menghasilkan penyajian digital dari suara[1].

Gambar 2.1 Ilustrasi proses suara analog ke digital dan sebaliknya

Sumber: http://en.wikipedia.org/wiki/File:A-D-A_Flow.svg

Berlawanan dengan ADC, Digital to Analog Converter (DAC) akan mengubah suara digital ke alat suara analog (speaker). Audio digital merupakan penyajian dari suara asli. Dengan kata lain, audio digital merupakan sampel suara. Kualitas

perekaman digital bergantung pada seberapa sering sampel diambil (angka sampling

atau frekuensi dihitung dalam kiloHertz atau seribu sampel per detik). Tiga frekuensi

sampling yang paling sering digunakan dalam multimedia adalah kualitas CD

(3)

sampel 8 bit menyediakan 256 unit deskripsi jarak dinamis atau amplitudo (level suara

dalam satu waktu). Ukuran file dari audio digital bergantung pada angka sampling, resolusi dan channel-nya (Stereo atau Mono).

Kualitas perekaman digital bergantung pada seberapa sering sampel diambil

dan berapa banyak angka yang digunakan untuk menyajikan nilai dari tiap sampel

(bitdepth, ukuran sampel, resolusi, jarak dinamis). Semakin sering sampel diambil, semakin banyak data yang disimpan mengenai sampel, semakin bagus resolusi dan

kualitas suara yang ditangkap ketika diputar. Artinya, kualitas suara akan semakin

tinggi. Semakin tinggi kualitas suara, semakin besar pula ukuran file yang dihasilkan.

Resolusi audio (8 bit atau 16 bit) menentukan akurasi proses digital dari suara.

Penggunaan bit yang lebih besar untuk ukuran sampel akan menghasilkan hasil

rekaman yang menyerupai versi aslinya.

2.1.2Format File Audio

2.1.2.1File WAV

WAV adalah format file audio standar Microsoft dan IBM untuk personal computer

(PC), biasanya menggunakan pengkodean PCM (Pulse Code Modulation). WAV adalah data tidak terkompres sehingga seluruh sampel audio disimpan semuanya di

harddisk. Perangkat lunak yang dapat menciptakan WAV dari sinyal analog misalnya

adalah Windows Sound Recorder. WAV jarang sekali digunakan di internet karena

ukurannya yang relatif besar dengan batasan maksimal untuk file WAV adalah 2GB.

Secara umum data audio digital dari WAV memiliki karakteristik yang dapat

dinyatakan dengan parameter-parameter berikut:

a. Laju sampel (sampling rate) dalam sampel/detik, misalnya 22050 atau 44100 sampel/detik.

b. Jumlah bit tiap sampel, misalnya 8 atau 16 bit.

(4)

Parameter-parameter tersebut menyatakan pengaturan yang digunakan oleh

ADC pada saat data audio direkam. Biasanya laju sampel juga dinyatakan dengan

satuan Hz atau kHz. Sebagai gambaran, data audio digital yang tersimpan dalam CD

audio memiliki karakteristik laju sampel 44100 Hz, 16 bit per sampel, dan 2 kanal

(stereo), yang berarti setiap satu detik suara tersusun dari 44100 sampel, dan setiap

sampel tersimpan dalam data sebesar 16-bit atau 2 byte. Laju sampel selalu

dinyatakan untuk setiap satu kanal (channel). Jadi misalkan suatu data audio digital memiliki 2 kanal (channel) dengan laju sampel 8000 sampel/detik, maka di dalam setiap detiknya akan terdapat 16000 sampel.

File WAV menggunakan struktur standar RIFF Microsoft yang

mengelompokkan isi file (sampel format, sampel audio digital, dan lain sebagainya)

menjadi “Chunk” yang terpisah, setiap bagian mempunyai header dan byte data masing- masing. Header Chunk menetapkan jenis dan ukuran dari byte data Chunk. Dengan metoda pengaturan seperti ini maka program yang tidak mengenali jenis

Chunk yang khusus dapat dengan mudah melewati bagian Chunk ini dan melanjutkan langkah memproses Chunk yang dikenalnya.

(5)

Tabel 2.1 Field-field pada struktur format file WAV Field Keterangan

Fomat Menunjukkan type format data dan memiliki nilai WAVE_FORMAT_PCM.

NumChannels Menunjukkan banyaknya kanal yang ada di dalam data waveform audio. Untuk mono

menggunakan satu kanal sedangkan untuk

stereo menggunakan dua kanal.

SampleRate Menunjukkan besarnya sample rate dalam sample per detik.

ByteRate Menunjukkan rata-rata laju transfer data, dalam byte per detik. Misalnya untuk PCM 16-bit stereo pada 44.1 kHz, ByteRate

bernilai 176400 (2 kanal * 2 byte per sample * 44100).

BlockAlign Menunjukkan banyaknya byte yang digunakan untuk satu buah sample. Misalnya untuk PCM 16-bit mono,

BlockAlign akan bernilai 2

2.1.2.2File MP3

MPEG-1 audio layer III atau yang lebih dikenal dengan MP3, adalah pengkodean

dalam digital audio dan juga merupakan format kompresi audio yang memiliki sifat

“menghilangkan”. Istilah menghilangkan yang dimaksud adalah kompresi audio ke

dalam format mp3 menghilangkan aspek-aspek yang tidak signifikan pada

pendengaran manusia untuk mengurangi besarnya file audio.

Sejarah MP3 dimulai dari tahun 1991 saat proposal dari Phillips (Belanda),

CCET (Perancis), dan Institut für Rundfunktechnik (Jerman) memenangkan proyek

untuk DAB (Digital Audio Broadcast). Produk mereka seperti Musicam (lebih dikenal dengan layer 2) terpilih karena kesederhanaan, ketahanan terhadap kesalahan, dan

perhitungan komputasi yang sederhana untuk melakukan pengkodean yang

menghasilkan keluaran yang memiliki kualitas tinggi. Pada akhirnya ide dan teknologi

yang digunakan dikembangkan menjadi MPEG-1 audio layer 3. MP3 adalah

pengembangan dari teknologi sebelumnya sehingga dengan ukuran yang lebih kecil

(6)

Spesifikasi dari layer-layer sebagai berikut:

a. Layer 1: paling baik pada 384 kbit/s.

b. Layer 2: paling baik pada 256...384 kbit/s, sangat baik pada 224...256

kbit/, baik pada 192...224 kbit/s 3.

c. Layer 3: paling baik pada 224...320 kbit/s, sangat baik pada 192...224

kbit/s, baik pada 128...192 kbit/s.

Kompresi yang dilakukan oleh MP3 seperti yang telah disebutkan, tidak

mempertahankan bentuk asli dari sinyal input. Melainkan yang dilakukan adalah

menghilangkan suara-suara yang keberadaannya kurang/tidak signifikan bagi sistem

pendengaran manusia. Proses yang dilakukan adalah menggunakan model dari sistem

pendengaran manusia dan menentukan bagian yang terdengar bagi sistem

pendengaran manusia. Setelah itu sinyal input yang memiliki domain waktu dibagi

menjadi blok-blok dan ditransformasi menjadi domain frekuensi. Kemudian model

dari sistem pendengaran manusia dibandingkan dengan sinyal input dan dilakukan

proses penyaringan yang menghasilkan sinyal dengan range frekuensi yang signifikan

bagi sistem pendengaran manusia. Proses tersebut adalah proses konvolusi dua sinyal

yaitu sinyal input dan sinyal model sistem pendengaran manusia. Langkah terakhir

adalah kuantisasi data, dimana data yang terkumpul setelah penyaringan akan

dikumpulkan menjadi satu keluaran dan dilakukan pengkodean dengan hasil akhir file

dengan format MP3

2.2Song Recognition

Song dalam bahasa Indonesia diartikan sebagai lagu dan Recognition berarti pengenalan sehingga Song Recognition dapat diartikan sebagai pengenalan pada media suara yakni lagu. Pada dasarnya setiap lagu memiliki karakteristik yang

berbeda-beda antara lagu yang satu dengan yang lainnya layaknya sidik jari manusia.

Pengenalan lagu dapat dipandang sebagai ringkasan pendek dari suatu objek lagu.

ringkasan tersebut diolah sedemikian rupa menjadi sekumpulan kode yang disebut

(7)

bisa didapatkan. Secara pendengaran manusia, lagu yang diperdengarkan terlihat sama

namun sebenarnya beda. Hash inilah yang akan membedakannya.

Pengenalan lagu membandingkan hash yang dihasilkan dari rekaman dengan

yang ada pada basis data. Hal ini terlihat seperti kriptografi, namun kriptografi agak

sensitif dalam kesetaraan perhitungan matematika. Satu bit saja berbeda akan

menghasilkan perbedaan. Sedangkan pengenalan lagu membutuhkan kesamaan

persepsi yakni, lagu yang diperdengarkan memiliki gangguan seperti sinyal yang

buruk (gangguan suara disekitar) tetapi masih diakui sebagai lagu asli[4].

Pengenalan lagu didasarkan pada lagu yang memang dari penyanyi aslinya

bukan lagu yang dibawakan ulang oleh penyanyi lain meskipun lirik dan melodi sama.

Lagu yang dibawakan ulang tersebut sudah memiliki karakteristik yang berbeda

dengan lagu asli tetapi dalam beberapa hal masih bisa memiliki kesamaan. Ini

ditunjukkan pada penyanyi asli membawakan lagunya secara langsung dan

membawakan lagunya.

Istilah lain untuk pengenalan lagu diantaranya pencocokan kuat, hashing kuat atau persepsi, tanda tangan digital berbasis konten dan identifikasi lagu berbasis

konten. Bidang yang relevan dengan pengenalan lagu yang meliputi pencarian

informasi, pencocokan pola, pemrosesan sinyal, database, dan kriptografi.

2.2.1Parameter Song Recognition

Dalam Song Recognition, terdapat beberapa parameter yang digunakan sebagai acuan[4]. Parameter-parameter yang paling utama adalah sebagai berikut:

1. Ketahanan

Rekaman lagu masih bisa diidentifikasi bila degradasi sinyalnya buruk. Untuk

(8)

Sebaliknya, pada lagu yang memiliki degradasi buruk masih mengarah ke hasil

yang sangat mirip.

2. Kehandalan

Seberapa sering lagu yang diidentifikasi hasilnya salah. Misalnya, "The

Rolling Stones-Angie" yang diidentifikasi sebagai "Beatles-Yesterday".

Tingkat di mana kejadian ini biasanya mengacu pada tingkat positif yang

salah.

3. Ukuran

Berapa banyak penyimpanan yang dibutuhkan untuk Song Recognition. Untuk mengaktifkan pencarian cepat, proses Song Recognition biasanya disimpan dalam memori RAM. Oleh karena itu ukuran Song Recognition, biasanya dinyatakan dalam bit per detik atau bit per lagu, menentukan batas besar

sumber daya memori yang dibutuhkan untuk server basis data Song Recognition.

4. Granular

Berapa detik durasi lagu yang diperlukan untuk mengidentifikasi lagu.

Granular adalah parameter yang dapat bergantung pada aplikasi.

5. Kecepatan pencarian dan skalabilitas

Berapa lama waktu yang diperlukan untuk menemukan lagu dalam basis data.

Bagaimana jika basis data berisi ribuan lagu. Untuk pengembangan komersil

dari sistem Song Recognition, kecepatan pencarian dan skalabilitas merupakan parameter kunci. Kecepatan pencarian harus dalam urutan milidetik untuk

sebuah database yang berisi lebih dari 100.000 lagu hanya menggunakan

sumber daya komputasi yang terbatas (misalnya PC dengan speksifikasi

rendah).

Kelima parameter dasar memiliki dampak yang besar pada satu sama lain.

(9)

mengekstrak lagu lebih besar untuk mendapatkan keandalan yang sama. Hal ini

dikarenakan tingkat positif berbanding terbalik dengan ukuran Song Recognition. Contoh lain yaitu, kecepatan pencarian umumnya meningkat ketika salah satu desain

Song Recognition lebih kuat. Hal ini dikarenakan bahwa pencarian lagu adalah pencarian kedekatan. Yaitu serupa (atau paling mirip) lagu harus ditemukan. Oleh

karena itu kecepatan pencarian dapat ditingkatkan.

2.2.2Rancangan Song Recognition

Secara umum, proses yang dilakukan dalam Song Recognition dengan menggunakan algoritma Fast Fourier Transform dapat dilihat pada Gambar 2.3.

Gambar 2.3 Cara kerja umum aplikasi Song Recognition[2]

2.3Sinyal Domain Waktu dan Sinyal Domain Frekuensi

Kebanyakan dari sinyal dalam prakteknya adalah sinyal domain waktu. Oleh karena

itu, apapun sinyal yang diukur adalah fungsi waktu, dimana ketika diplot salah satu

sumbu dengan variabel waktu maka variabel lainnya adalah amplitudo. Ketika diplot,

sinyal domain waktu berupa gelombang berjalan yang direpresentasikan pada waktu

terhadap amplitudo dari sinyal. Amplitudo pada sinyal domain waktu menunjukan

keras lemahnya sinyal yang diterima. Sehingga, sinyal yang diterima tidak memiliki

karakteristik yang berbeda tiap waktunya.

(10)

Pada sinyal domain frekuensi, ketika diplot berupa spektrum dengan penyajian

frekuensi terhadap magnitudo. Informasi yang penting tersembunyi di dalam frekuensi

sinyal. Spektrum frekuensi sinyal pada dasarnya adalah komponen frekuensi (spektral

frekuensi) sinyal yang menunjukkan frekuensi apa yang muncul. Frekuensi

menunjukkan tingkat perubahan. Jika suatu variabel sering berubah, maka disebut

berfrekuensi tinggi. Namun, jika tidak sering berubah, maka disebut berfrekuensi

rendah. Jika variabel tersebut tidak berubah sama sekali, maka disebut tidak

mempunyai frekuensi (nol frekuensi). Magnitudo pada sinyal domain frekuensi

menunjukkan tinggi rendahnya sinyal yang diterima. Dengan kata lain, keras

lemahnya sinyal tidak mempengaruhi frekuensi yang didalamnya. Sinyal domain

frekuensi dapat dikembalikan ke sinyal domain waktu.

Gambar 2.4 Gelombang sinus sinyal domain waktu[5]

(11)

2.4Transformasi Fourier

Proses penting dalam pemrosesan sinyal digital adalah menganalisis suatu sinyal input

maupun output untuk mengetahui karakteristik sistem fisis tertentu dari sinyal. Proses

analisis dan sintesis dalam domain waktu memerlukan analisis cukup panjang dengan

melibatkan turunan dari fungsi, yang dapat menimbulkan ketidaktelitian hasil analisis.

Analisis dan sintesis sinyal akan lebih mudah dilakukan pada domain frekuensi,

karena besaran yang paling menentukan suatu sinyal adalah frekuensi. Oleh karena

itu, untuk dapat bekerja pada domain frekuensi dibutuhkan suatu formulasi yang tepat

sehingga proses manipulasi sinyal sesuai dengan kenyataan. Salah satu teknik untuk

menganalisis sinyal adalah mentransformasikan (alih bentuk) sinyal yang semula

analog menjadi diskrit dalam domain waktu, dan kemudian diubah ke dalam domain

frekuensi.

Transformasi Fourier adalah suatu model transformasi yang memindahkan

sinyal domain spasial atau sinyal domain waktu menjadi sinyal domain frekuensi. Di

dalam pengolahan suara, transformasi fourier banyak digunakan untuk mengubah

domain spasial pada suara menjadi domain frekuensi. Analisa-analisa dalam domain

frekuensi banyak digunakan seperti filtering. Dengan menggunakan transformasi fourier, sinyal atau suara dapat dilihat sebagai suatu objek dalam domain frekuensi.

2.4.1Transformasi Fourier Diskrit

Transformasi Fourier Diskrit (Discrete Fourier Transform - DFT) adalah prosedur yang paling umum dan kuat pada bidang pemrosesan sinyal digital. DFT

memungkinkan untuk menganalisis, memanipulasi, dan mensintesis sinyal dengan

cara yang tidak mungkin dilakukan dalam pemrosesan sinyal analog[5]. Meskipun

sekarang digunakan dalam hampir setiap bidang teknik. Aplikasi yang menggunakan

DFT terus berkembang sebagai utilitas yang menjadikan DFT lebih mudah untuk

dimengerti. Karena itu, pemahaman yang kuat tentang DFT adalah wajib bagi siapa

(12)

𝑋(𝑓) = � 𝑥[𝑡].𝑒−𝑗2𝜋𝑓𝑡 𝑑𝑡

DFT merupakan prosedur matematika yang digunakan untuk menentukan

harmonik atau frekuensi yang merupakan isi dari urutan sinyal diskrit. Urutan sinyal

diskrit adalah urutan nilai yang diperoleh dari sampling periodik sinyal kontinu dalam

domain waktu. DFT berasal dari fungsi Transformasi Fourier X(f) yang didefinisikan:

(2.1)

Dimana:

X(f) = urutan ke-f komponen output (X(0), X(1),…,X(N-1))

f = indeks output dalam domain frekuensi (0, 1, …, N-1)

x(t) = urutan ke-t sampel input (x(0), x(1), …, x(N-1))

n = indeks sampel input dalam domain waktu (0, 1, …, N-1)

j = bilangan imajiner (√−1 ) π = derajat (180o

)

e = basis logaritma natural (2.718281828459…)

Dalam bidang pemrosesan sinyal kontinu, Persamaan 2.1 digunakan untuk

mengubah fungsi domain waktu kontinu x(t) menjadi fungsi domain frekuensi kontinu

X(f). Fungsi X(f) memungkinkan untuk menentukan kandungan isi frekuensi dari

beberapa sinyal dan menjadikan beragam analisis sinyal dan pengolahan yang dipakai

di bidang teknik dan fisika. Dengan munculnya komputer digital, ilmuwan di bidang

pengolahan digital berhasil mendefenisikan DFT sebagai urutan sinyal diskrit domain

frekuensi X(m), dimana:

(2.2)

Dimana:

N = jumlah sampel input

X(m) = urutan ke-m komponen output DFT (X(0), X(1),…,X(N-1))

m = indeks output DFT dalam domain frekuensi (0, 1, …, N-1)

x(n) = urutan ke-n sampel input (x(0), x(1), …, x(N-1))

(13)

𝑋(𝑚) = � 𝑥(𝑛). [ 𝑁−1

𝑛=0

𝑐𝑜𝑠 (2𝜋𝑛𝑚/𝑁) – 𝑗𝑠𝑖𝑛 (2𝜋𝑛𝑚/𝑁)]

j = bilangan imajiner (√−1 ) π = derajat (180o

)

e = basis logaritma natural (≈2.718281828459…)

Persamaan 2.2 kemudian dihubungkan dengan rumusan Euler 𝑒−𝑗𝜃 = cos (θ) –

j sin (θ), sehingga setara dengan:

(2.3)

Dimana:

N = jumlah sampel input

X(m) = urutan ke-m komponen output DFT (X(0), X(1),…,X(N-1))

m = indeks output DFT dalam domain frekuensi (0, 1, …, N-1)

x(n) = urutan ke-n sampel input (x(0), x(1), …, x(N-1))

n = indeks sampel input dalam domain waktu (0, 1, …, N-1)

j = konstanta bilangan imajiner (√−1 ) π = derajat (180o

)

Meski lebih rumit daripada Persamaan 2.2, Persamaan 2.3 lebih mudah untuk

dipahami. Konstanta j = √−1 hanya membantu membandingkan hubungan fase di

dalam berbagai komponen sinusoidal dari sinyal. Nilai N merupakan parameter

penting karena menentukan berapa banyak sampel masukan yang diperlukan, hasil

domain frekuensi dan jumlah waktu proses yang diperlukan untuk menghitung N-titik

DFT. Diperlukan N-perkalian kompleks dan N-1 sebagai tambahan. Kemudian, setiap

perkalian membutuhkan N-perkalian riil, sehingga untuk menghitung seluruh nilai N

(X(0), X(1), …, X(N-1)) memerlukan N2 perkalian. Hal ini menyebabkan perhitungan

DFT memakan waktu yang lama jika jumlah sampel yang akan diproses dalam jumlah

(14)

2.4.2Fast Fourier Transform

Meskipun DFT memainkan peranan yang penting sebagai prosedur matematis untuk

menentukan isi frekuensi dari urutan domain waktu, namun sangat tidak efisien.

Jumlah titik dalam DFT meningkat menjadi ratusan atau ribuan, sehingga

jumlah-jumlah yang dihitung menjadi tidak dapat ditentukan. Pada tahun 1965 sebuah

makalah diterbitkan oleh Cooley dan Tukey menjelaskan algoritma yang sangat

efisien untuk menerapkan DFT[3]. Algoritma yang sekarang dikenal sebagai Fast Fourier Transform (FFT). Sebelum munculnya FFT, seribu titik DFT membutuhkan waktu begitu lama untuk melakukan perhitungan yang pada saat itu masih terbatas

pada komputer-komputer berspesifikasi rendah. Gagasan Cooley dan Tukey, dan

perkembangan industri semikonduktor menjadikan jumlah N-titik DFT semisal

1024-titik, dapat dilakukan dalam beberapa detik saja pada komputer berspesifikasi

rendah[5].

Meskipun telah banyak bermacam-macam algoritma FFT yang dikembangkan,

algoritma FFT radix-2 merupakan proses yang sangat efisien untuk melakukan DFT

yang memiliki kendala pada ukuran jumlah titik dipangkatkan dua. FFT radix-2

menghilangkan redundansi dan mengurangi jumlah operasi aritmatika yang

diperlukan. Sebuah DFT 8-titik, harus melakukan N2 atau 64 perkalian kompleks.

Sedangkan FFT melakukan (N/2)log2N yang memberikan penurunan yang signifikan

dari N2 perkalian kompleks. Ketika N = 512 maka DFT memerlukan 200 kali

perkalian kompleks dari yang diperlukan oleh FFT.

Gambar 2.6 Perbandingan jumlah perkalian kompleks DFT dengan FFT[5] 65536

0 200 400 600 800 1000 1200

(15)

FFT beroperasi dimulai dengan menguraikan (dekomposisi) sinyal domain

waktu titik N ke N sinyal domain waktu hingga masing-masing terdiri dari satu titik.

Selanjutnya menghitung N frekuensi spektrum yang berkorespondensi dengan N

sinyal domain waktu. Terakhir, spektrum N disintesis menjadi spektrum frekuensi

tunggal.

Gambar 2.7 Diagram Alir FFT[9]

Dalam proses dekomposisi diperlukan tahapan Log2N. Sebagai contoh, sinyal

16 titik (24) memerlukan 4 tahapan, sinyal 512 titik (29) membutuhkan 9 tahap, sinyal

4096 titik (212) membutuhkan 12 tahapan. Dalam Gambar 2.8, sinyal 16 titik terurai

melalui empat tahap yang terpisah. Tahap pertama memisahkan sinyal 16 titik menjadi

dua sinyal masing-masing terdiri dari 8 titik. Tahap kedua menguraikan data menjadi

empat sinyal terdiri dari 4 titik. Pola ini berlanjut sampai sinyal N terdiri dari satu

titik. Dekomposisi digunakan setiap kali sinyal dipecah menjadi dua, yaitu sinyal

(16)

Gambar 2.8 Contoh dekomposisi sinyal domain waktu yang digunakan di FFT[9]

Setelah dekomposisi, dilakukan Pengurutan Pembalikan Bit (Bit Reversal Sorting), yaitu menata ulang urutan sampel sinyal domain waktu N dengan menghitung dalam biner dengan bit membalik dari kiri ke kanan. Asumsi N adalah

kelipatan dari 2, yaitu N = 2r untuk beberapa bilangan bulat r=1, 2, dst. Algoritma FFT

memecah sampel menjadi dua bagian yaitu bagian genap dan bagian ganjil.

(17)

𝑋(𝑚) = � 𝑥[2𝑛].

Persamaan 2.2 dibagi menjadi bagian ganjil dan bagian genap sebagai berikut:

(2.4)

Dimana:

N = jumlah sampel input

X(m) = urutan ke-m komponen output FFT (X(0), X(1),…,X(N-1))

m = indeks output FFT dalam domain frekuensi (0, 1, …, N-1)

x(2n) = urutan ke-n sampel input genap(x(0), x(2), …,x(N-2))

x(2n+1) = urutan ke-n sampel input ganjil(x(1), x(3), …,x(N-1))

n = indeks sampel input dalam domain waktu (0, 1, …, N/2-1)

j = konstanta bilangan imajiner (√−1 ) π = derajat (180o

)

e = basis logaritma natural (≈2.718281828459…)

Karena rumusan yang didapat panjang, sehingga digunakan notasi standar

untuk menyederhanakannya. Didefenisikan WN = 𝑒−𝑗2𝜋/𝑁 yang merepresentasikan nth

root of unity. Persamaan 2.4 dapat ditulis:

(2.5)

Karena 𝑊𝑁2 = 𝑒−𝑗2𝜋2/𝑁 = 𝑒−𝑗2𝜋/(𝑁/2), kemudian subsitusikan 𝑊𝑁2 = 𝑊𝑁/2.

Sehingga menjadi:

(2.6)

Sintesis domain frekuensi membutuhkan tiga perulangan. Perulangan luar

(18)

Perulangan bagian tengah bergerak melalui masing-masing spektrum frekuensi

individu dalam tahap sedang dikerjakan (masing-masing kotak pada setiap tingkat).

Dalam pemrosesan sinyal digital dikenal istilah butterfly. Butterfly digunakan untuk menggambarkan peruraian (decimation) yang terjadi. Karena tampilannya yang bersayap maka disebut butterfly. Butterfly adalah elemen komputasi dasar FFT, mengubah dua poin kompleks menjadi dua poin kompleks lainnya. Ada dua jenis

peruraian, peruraian dalam waktu (decimation in time-DIT) dan peruraian dalam frekuensi (decimation in frekuensi-DIF). Gambar dari butterfly dasar untuk kedua jenis peruraian tersebut dapat dilihat pada Gambar 2.9 dan Gambar 2.10.

Gambar 2.9 FFT butterfly dasar untuk peruraian dalam waktu[5]

Gambar 2.10 FFT butterfly dasar untuk peruraian dalam frekuensi[5]

Perulangan paling dalam menggunakan butterfly untuk menghitung poin dalam setiap spektrum frekuensi (perulangan melalui sampel dalam setiap kotak). Gambar

2.11 menunjukkan implemetasi FFT dari empat spektrum dua titik dan dua spektrum

empat titik. Gambar 2.11 terbentuk dari pola dasar pada Gambar 2.9 berulang-ulang.

WN𝑘

A = a + b

B = (a – b).WN𝑘 WN𝑘

a

b

A = a + WN𝑘.b

B = a - WN𝑘.b

a

(19)

Gambar 2.11 FFT sintesis butterfly[5]

2.5Hashing

Hashing adalah transformasi aritmatik sebuah string dari karakter menjadi nilai yang merepresentasikan string aslinya. Menurut bahasa, hashing berarti memenggal dan kemudian menggabungkan. Hashing digunakan sebagai metode untuk menyimpan data dalam sebuah array agar penyimpanan data, pencarian data, penambahan data dan penghapusan data dapat dilakukan dengan cepat. Ide dasarnya adalah menghitung

posisi record yang dicari dalam array, bukan membandingkan record dengan isi pada array. Fungsi yang mengembalikan nilai atau kunci disebut fungsi hash (hash function) dan array yang digunakan disebut tabel hash (hash table). Hash table

(20)

sebuah field kunci unik berupa bilangan (hash) yang merupakan representasi dari

record tersebut.

Fungsi hash menyimpan nilai asli atau kunci pada alamat yang sama dengan nilai hash-nya. Pada pencarian suatu nilai pada tabel hash, yang pertama dilakukan adalah menghitung nilai hash dari kunci atau nilai aslinya, kemudian membandingkan kunci atau nilai asli dengan isi pada memori yang beralamat nomor hash-nya. Dengan cara ini, pencarian suatu nilai dapat dilakukan dengan cepat tanpa harus memeriksa

seluruh isi tabel satu per satu.

Selain digunakan pada penyimpanan data, fungsi hash juga digunakan pada algoritma enkripsi sidik jari digital (fingerprint) untuk mengautentifikasi pengirim dan penerima pesan. Sidik jari digital diperoleh dengan fungsi hash, kemudian nilai hash

dan tanda pesan yang asli dikirim kepada penerima pesan. Dengan menggunakan

fungsi hash yang sama dengan pengirim pesan, penerima pesan mentransformasikan pesan yang diterima. Nilai hash yang diperoleh oleh penerima pesan kemudian dibandingkan dengan nilai hash yang dikirim pengirim pesan.

Kedua nilai hash harus sama dan pasti ada masalah jika tidak sama. Hashing

selalu merupakan fungsi satu arah. Fungsi hash yang ideal tidak bisa diperoleh dengan melakukan reverse engineering dengan menganalisa nilai hash. Fungsi hash yang ideal juga seharusnya tidak menghasilkan nilai hash yang sama dari beberapa nilai yang berbeda. Jika hal yang seperti ini terjadi, inilah yang disebut dengan bentrokan

Gambar

Gambar 2.1 Ilustrasi proses suara analog ke digital dan sebaliknya
Gambar 2.2 Format file WAV[12]
Tabel 2.1 Field-field pada struktur format file WAV
Gambar 2.3 Cara kerja umum aplikasi Song Recognition[2]
+7

Referensi

Dokumen terkait

Jadi penjelasan tentang pengaruh komunikasi persuasif kepada masyarakat dalam menolak kebijakan tambang oleh pemerintah Daerah Lembata merupakan paparan tentang

Jika peranti tergabung dengan kendali suhu yang beroperasi selama uji 11, maka arus bocor diukur secepatnya sebelum pengontrol membuka sirkit. CATATAN 2 Uji dengan sakelar

Dengan menjadi lebih menyadari pemikiran holistik dan itu penting, Anda akan mampu menahan diri dari analisis dan mengembangkan keterampilan untuk memungkinkan

Hal ini berarti tidak terdapat hubungan antara tingkat pendidikan dengan tindakan pengelolaan sampah rumah tangga di kelurahan Tosuraya Barat kecamatan Ratahan

Dilarang untuk me-reproduksi dokumen ini tanpa diketahui oleh Program Studi Teknik Informatika SKPL tersebut yang mencakup tujuan pembuatan SKPL, ruang lingkup masalah dalam

Untuk mengatasi per- soalan itu, mau tidak mau gum dituntut lebih kreatiC Misalnjra dengan membiasakan diri berkomunikasi dengan bahasa asing dan banyak membara atau

Dari hasil penelitian tersebut diperoleh bahwa pemberian berbagai jenis mikoriza, dosis pupuk P serta interaksi antara pemberian berbagai jenis mikoriza dan pupuk P

Pendekatan Kontekstual merupakan konsep belajar yang membantu guru mengaitkan antara materi yang diajarkan dengan situasi dunia nyata siswa dan mendorong siswa