SPECGRAM & SPECGRAMDEMO Pertemuan 2 Praktikum Pengantar Pemrosesan Bahasa Alami Download materi: http://bit.ly/nlp_8 Syeiva Nurul Desylvia (syeiva.nd@gmail.com) Spectra dan Domain Frekuensi Fourier Analysis: Setiap gelombang kompleks dapat direpresentasikan sebagai penjumlahan banyak gelombang sinus dengan frekuensi berbeda. Spectra (spectrum untuk jamak) sinyal: Representasi setiap komponen frekuensi sinyal dengan amplitudonya. Spectrum: Representasi alternatif dari sinyal asli. 1
Spectra dan Domain Frekuensi(Lanj.) Spectra dan Domain Frekuensi(Lanj.) 2
Spectra dan Domain Frekuensi(Lanj.) Spectra dan Domain Frekuensi(Lanj.) 3
Spectra dan Domain Frekuensi(Lanj.) Spectra dan Domain Frekuensi(Lanj.) X-axis: Menunjukkan frekuensi. Y-axis: Menunjukkan ukuran besarnya setiap komponen frekuensi (db, ukuran logaritmik amplitudo). 4
Kegunaan Spectrum Puncak-puncak spectral yang mudah terlihat di spectrum, unik untuk setiap bunyi ujaran (phones). Phone memiliki ciri spectral signature. Tanda unik (characteristic signature) dari phone yang berbeda dapat dideteksi dengan cara melihat spectrum sinyalnya. Spectrogram Spectrum menunjukkan frekuensi sinyal satu titik pada waktu tertentu. Vowel berubah seiring waktu. Spectrogram: Suatu cara untuk membayangkan bagaimana frekuensi yang berbeda, yang membentuk gelombang, berubah seiring waktu. X-axis: Menunjukkan waktu. Y-axis: menunjukkan frekuensi. Tingkat gelap suatu titik pada spectrogram sesuai dengan amplitudo dari komponen frekuensi. Titik yang sangat gelap: amplitudo tinggi, titik yg terang: amplitudo rendah. 5
Spectrogram(Lanj.) Setiap batang gelap / spectral peak disebut formant. Spectrogram(Lanj.) 6
Spectrogram(Lanj.) Suara pria: dinner, dimmer, dinger Spectrogram(Lanj.) 7
Spectrogram pada Matlab Syntax b = specgram(a) b = specgram(a,nfft) [b,f] = specgram(a,nfft,fs) [b,f,t] = specgram(a,nfft,fs) b = specgram(a,nfft,fs,window) b = specgram(a,nfft,fs,window,noverlap) specgram(a) b = specgram(a,f,fs,window,noverlap) Catatan: Pada versi Matlab yang lebih baru, fungsi specgram diganti spectrogram. Spectrogram pada Matlab nfft: panjang FFT (Fast Fourier Transform) yang digunakan. Fs: sampling frequency / sampling rate (skalar). window: Fungsi windowing yang digunakan dan jumlah sampel yang digunakan specgram untuk memotong sinyal a. f: frequency output. t: time vector. Nilai default nfft = min(256,length(a)) Fs = 2 window = hanning(nfft) noverlap = length(window)/2 8
Spectrogram pada Matlab(Lanj.) Spectrogram pada Matlab(Lanj.) Ditambahkan zero-padding karena length(window) < nfft. 9
Spectrogram pada Matlab(Lanj.) Spectrogram pada Matlab(Lanj.) b = specgram(a) Hasilnya: b adalah matriks n x m. n didapat dari (nfft/2+1) jika nfft genap atau (nfft+1)/2 jika nfft ganjil. m didapat dari fix((nx-noverlap)/(length(window)- noverlap)). b = specgram(a,[],10000) Nfft bernilai default. Fs sebesar 10000. 10
Spectrogram pada Matlab(Lanj.) Contoh b = specgram(a); a: Vektor ukuran 11501 x 1. b: Matriks ukuran 129 x 88. Perhitungan Nfft: default -> 256 -> genap Baris = (256/2) + 1 = 129. Nx = 11501, noverlap: default = 128, length(window) = 256. Kolom = (11501-128)/(256-128) = 88.8516 ~ 88. Specgramdemo Intinya versi user friendly dari specgram. specgramdemo(y,fs) menunjukkan spectrogram sinyal y dengan sampling rate Fs. Nilai default Fs = 1 Hz. Right-click setiap item GUI untuk melihat opsi visualisasi yang ada. 11
Specgramdemo specgramdemo(a,11000) Latihan 1. Bandingkan 2 suara pria dengan 2 suara wanita (1 individu pria dan 1 individu wanita) menggunakan spectrogram (specgram atau specgramdemo). Sampling rate: 11 KHz. 2. Analisis hasil spectrogram pada nomor 1. 3. Ambil salah satu sampel spectrogram kemudian buktikan jumlah baris dan kolomnya menggunakan perhitungan. 12
Latihan(Lanj.) Dikumpulkan ke snd.tugas@gmail.com Subjek & Nama file: NLP_NIM_Prak2. Due date: Kamis,.WIB. 13