Sistem Pengenalan Wajah Menggunakan Artificial Neural Network

download Sistem Pengenalan Wajah Menggunakan Artificial Neural Network

of 88

description

asdd

Transcript of Sistem Pengenalan Wajah Menggunakan Artificial Neural Network

SISTEM PENGENALAN WAJAH MENGGUNAKAN ARTIFICIAL NEURAL NETWORK (SELF-ORGANIZING MAP (SOM) UNTUK APLIKASI REALTIME dan menggunakan metode filter gabor dan jaringan syaraf tiruan LVQ(Learning Vector Quantization))Ini postingan saya yang ketiga (a.k.a tugas yang ketiga xixixi).pasti teman-teman udah banyak yang punya facebook kan??? Pasti donk udah punya.nah postingan saya yang ketiga ini akan menjelaskan bagaimana facebook bisa nge-tag foto pas di wajah (aduh bahasa kerennya apah ya??) pokoknya intinya itu lah hehehehekalau berminat coba deh baca postingan saya kali ini ..Beberapa literatur tentang deteksi pengenalan wajah. Abdul Fadlil dkk. sistem pengenalan wajah manusia dirancang untuk mengenali 10 wajah orang yang berupa citra digital baik secara offline maupun secara online/realtime. Sistem pengenalan wajah meliputi 5 tahap pemrosesan yaitu pra-pemrosesan, segmentasi wajah, ekstraksi ciri, klasifikasi dan keputusan. Proses segmentasi dilakukan dengan mengunakan analisis proyeksi citra abu-abu, ekstraksi ciri menggunakan metode Simple Principle Component Analysis (SPCA) dan klasifikasi menggunakan jaringan syaraf tiruan (JST) dengan algoritma backpropagation. Keputusan berdasarkan pada nilai maksimum vektor keluaran JST. Hasil penelitian menunjukkan bahwa akurasi pengenalan wajah secara offline mencapai 93,69 %. Sedangkan pengenalan online/realtime yang diujikan kepada 5 orang dari 10 orang diperoleh akurasi 74,70 %. (Fadlil, 2008)Jawad Nagi dkk. menyajikan suatu teknik untuk pengenalan wajah menggunakan pendekatan berbasis gambar terhadap kecerdasan buatan dengan menghapus data yang berlebihan dari gambar wajah melalui kompresi gambar dengan menggunakan discrete cosine transform dua dimensi (2D-DCT). DCT Ekstrak fitur dari citra wajah berdasarkan warna kulit. Fitur-vektor yang dibangun dengan menghitung koefisien DCT. Self-Organizing Map (SOM) menggunakan teknik unsupervised learning untuk mengklasifikasikan vektor DCT fitur berbasis dalam kelompok untuk mengidentifikasi jika subjek pada gambar masukan adalah "ada" atau "tidak ada" dalam database gambar. Pengenalan wajah dengan SOM dilakukan dengan mengelompokkan nilai-nilai intensitas piksel grayscale ke dalam kelompok yang berbeda. Evaluasi dilakukan dalam MATLAB menggunakan database gambar 25 foto wajah, yang berisi lima mata pelajaran dan setiap mata pelajaran yang memiliki 5 gambar dengan ekspresi wajah yang berbeda. Setelah pelatihan untuk sekitar 850 iterasi sistem yang dicapai tingkat pengenalan 81,36% atas 10 uji berturut-turut. Keuntungan utama dari teknik ini adalah kecepatan tinggi dalam kemampuan pemrosesan dan kebutuhan komputasi rendah, baik dari segi kecepatan dan penggunaan memori. (Nagi, 2008)Mayank Agarwal, dkk. menyajikan suatu metodologi untuk pengenalan wajah didasarkan pada pendekatan teori informasi coding dan decoding gambar wajah. Usulan metodologi adalah sambungan dari dua tahap - Fitur ekstraksi menggunakan PCA dan pengenalan menggunakan umpan balik maju propagasi Neural Network. Algoritma ini telah diuji pada 400 gambar (40 kelas). Skor banyak pengakuan untuk uji dihitung dengan mempertimbangkan hampir semua varian ekstraksi fitur. Metode yang diusulkan diuji pada Olivetti dan Oracle Research Laboratory (ORL) database wajah. Hasil pengujian memberikan tingkat pengakuan 97,018%. (Agarwal, 2010)Santaji Ghorpade dkk. mengembangkan dan mengilustrasikan sistem pengenalan wajah-wajah manusia menggunakan novel Kohonen Self-Organizing Map (SOM) atau Self-6 Organizing Feature Map (SOFM) berbasis sistem pencarian. SOM memiliki fitur yang baik ekstraksi citra karena topologi pengurutan. Analisis wajah dengan hasil untuk 400 gambar dari database AT&T mencerminkan bahwa tingkat pengenalan wajah menggunakan salah satu Neural Network algoritma SOM adalah 85,5% untuk 40 orang. (Ghorpade, 2010)M. Abul Kashem dkk. sistem pengenalan wajah terdiri atas tiga langkah dasar yang secara otomatis mendeteksi citra wajah manusia menggunakan BPNN, berbagai fitur wajah ekstraksi dan pengenalan wajah dilakukan berdasarkan PCA dengan BPNN. Berfokus pada database wajah dengan variasi sumber yang berbeda, terutama pose, expression, aksesoris, pencahayaan dan latar belakang gambar. Analisis wajah hasil untuk 200 gambar dari database mencerminkan bahwa tingkat pengenalan wajah 94,2% untuk 40 orang. (Kashem, 2011)kalau saya baca-baca di literatur, untuk sistem pengenalan wajah menggunakan jaringan syaraf tiruan itu terdiri dari banyak metode, ada yang pakek JST SOM, Backpro, LVQ dan masih banyak lagi tentunya. nah postingan saya kali ini mencoba untuk mengupas tentang sistem pengenalan wajah menggunakan metode JST yang bernama SOM dan LVQ. cekidot nyuk yang pertama ini saya ambil dari tesis seseorang yang menggunakan metode SOM. letz cekidot 1st :Penelitian terkait sistem pengenalan wajah telah berkembang luas dengan berbagai metode pemecahan. Self-Organizing Map (SOM) merupakan jenis jaringan syaraf tiruan yang dilatih dengan menggunakan pembelajaran tak terawasi (unsupervised learning). Masalah pengenalan menjadi sulit karena variabilitas besar pada bentuk kepala dan kemiringan, intensitas pencahayaan dan sudut, ekspresi wajah, penuaan, dll (Woody Bledsoe, 1966). Ekstraksi ciri (feature extraction) adalah tahapan untuk memunculkan ciri dan mereduksi dimensi citra dari dimensi tinggi ke dimensi lebih rendah (Purnomo, 2010). Bagi sebagian besar aplikasi pattern recognition, teknik ekstraksi ciri yang handal merupakan kunci utama dalam penyelesaian masalah pattern recognition. Pengenalan wajah secara realtime menjadi penting dalam beberapa bidang seperti sistem sekuriti, sistem kontrol, sistem login dan lain sebagainya. Sistem pengenalan wajah menggunakan webcam untuk menangkap wajah seseorang kemudian mengidentifikasi wajah tersebut dengan membandingkan pada database yang telah ada sebelumnya. Agar komputer dapat mengenali dan mengidentifikasi suatu wajah testing diinputkan berdasarkan wajah training yang telah diinput sebelumnya. Pada tahap awal wajah training dan testing akan dimasukkan ke tahap pre-processing. Setelah itu akan dicari feature pada wajah training dan testing dengan menggunakan metode Principal Component Analysis (PCA), sedangkan untuk pengidentifikasian digunakan Self-Organizing Map (SOM).Secara garis besar algoritma SOM Kohonen sebagai berikut:a) Inisialisasi, bobot (Wij) dengan nilai random, tingkat pembelajaran (learning rate) , dan fungsi tetangga.b) Masukan input Xic) Hitung similaritasnya dengan menggunakan jarak Euclidian, dan pilih neuron pemenangnya.d) Update bobot neuron pemenang dan tetangganyae) Update tingkat pembelajaran dan kurangi fungsi tetangga.f) Lakukan langkah 2 sampai 5 sampai nilai epoch tercapai

Pengenalan Wajah (Face Recognition)Dalam bidang penelitian pemrosesan wajah (face processing), pendeteksian wajah manusia (face detection) adalah salah satu tahap awal yang sangat penting di dalam proses pengenalan wajah (face recognition). Sistem pengenalan wajah digunakan untuk membandingkan satu citra wajah masukan dengan suatu database wajah dan menghasilkan wajah yang paling cocok dengan citra tersebut jika ada. Sedangkan autentikasi wajah (face authentication) digunakan untuk menguji keaslian/kesamaan suatu wajah dengan data wajah yang telah diinput sebelumnya. Bidang penelitian yang juga berkaitan dengan pemrosesan wajah adalah lokalisir wajah (face localization) yaitu pendeteksian wajah dengan asumsi hanya ada satu wajah di dalam citra (Luthfie, Syafiie Nur 2009) Sistem pengenalan citra wajah dibagi menjadi dua jenis, yaitu sistem feature-based dan sistem image-based. Pada sistem feature-based digunakan ciri yang diekstraksi dari komponen citra wajah seperti mata, hidung, mulut, dan lain-lain yang kemudian dimodelkan secara geometris hubungan antara ciri-ciri tersebut. Sedangkan pada sistem image-based menggunakan informasi mentah dari piksel citra yang kemudian direpresentasikan dalam metode tertentu, misalnya seperti Principal Component Analysis (PCA) atau transformasi wavelet yang digunakan untuk klasifikasi indentitas citra (Al Fatta, Hanif, 2009). Metode atau teknik pengenalan wajah yang umum telah dilakukan sebelumnya, antara lain dengan menggunakan algoritma Eigenface (Turk dan Pentland, 1991), dengan distribusi Gaussian dan Clustering (Sung dan Poggio, 1994), dengan Support Vector Machine (Osuna dkk, 1997), dan dengan metode Statistic dan Wavelet (Schneiderman, 2000). Beberapa masalah yang mungkin terjadi yakni perubahan skala, perubahan posisi, perubahan cahaya, perubahan detil dan ekspresi wajah.

Pada gambar tersebut citra wajah hasil bidikan dari webcam diambil kemudian masuk dalam database wajah yang kemudian dilakukan training pengenalan wajah tertentu. Setelah itu dilakukan uji coba dengan menggunakan webcam, wajah akan diidentifikasi menggunakan ANN SOM. Keputusan akan diterima pada system realtime bila diidentifikasi, wajah sama dengan yang ada di database sebelumnya.nah...untuk yang menggunakan metode LVQ seperti yang dibawah ini..... cekidot plizz

kemudian setelah di buat diagram alir, selanjutnya dibuat framework pengenalan wajah

penjelasannya :Pra pemrosesanBertujuan untuk memperbaiki kualitas citra dengan cara memanipulasi parameter-parameter citra. Tahap ini meliputi pengambilan citra, konvensi citra dari format RGB ke bentuk format keabuan (grayscale)Ekstraksi cirri dengan filter gaborBertujuan untuk mendapatkan informasi penting dari tekstur suatu citra. Filter gabor merupakan sebauh pilihan tradisional untuk memperoleh informasi frekuensi yang terlokalisasi. Filter-filter gabor menawarkan lokalisasi simultan terbaik dari informasi spasial dan frekuensiBinerisasiCitra grayscale yang diperoleh dari proses ekualisasi histogram, selanjutnya akan mengalami proses binerisasi, sehingga dihasilakn citra biner yang siap untuk proses pelabelan. Binerisasi diilustrasikan pada gambar berikut :Klasifikasi dengan jaringan syaraf tiruanSetelah melalui proses ekstraksi ciri, selanjutnya nilai yang dihasilkan dilakukan pembelajaran LVQSelanjutnya dilakukan proses pengklasifikasian nilai masukan terhadap target yang telah ditentukanPengklasifikasian sinyal oleh JST menggunakan skema pembagian pasangan biner

Pembelajaran jaringan syaraf tiruan (jawaban UTS)27 May 2012 - dalam Umum Oleh nurul-i--fst08Pembelajaran Jaringan Syaraf Tiruan Sesungguhnya JST adalah disusun untuk mampu mengenali dan meniru pola pemetaan dari pasangan sinyal masukan ke sinyal keluaran yang diinginkan. Karenanya parameter JST dapat ditentukan dengan melatih atau mengajari JST tersebut dengan pola masukan keluaran yang telah benar dengan bebeapa aturan pembelajaran. Aturan pembelajaran dalam JST dapat dibedakan ke dalam aturan terbimbing (supervised learning) dan yang tidak terbimbing (unsupervised learning). a. Pembelajaran terawasi (supervised learning) Metode pembelajaran pada jaringan syaraf disebut terawasi jika output yang diharapkan telah diketahui sebelumnya. Contoh : pada operasi AND

Pada proses pembelajaran, satu pola input akan diberikan ke satu neuron pada lapisan input. Pola ini dirambatkan di sepanjang jaringan syaraf hingga sampai ke neuron pada lapisan output. Lapisan output ini akan membangkitkan pola output yang nantinya akan dicocokan dengan pola output target-nya. Apabila terjadi perbedaan antara pola output hasil pembelajaran dengan pola target, maka disini muncul error. Apabila nilai error masih cukup besar, mengindikasikan bahwa masih perlu dilakukan lebih banyak pembelajaran lagi.1. a. Pembelajaran tak terawasi (unsupervised learning)pada metode pembelajaran yang tidak terawasi ini tidak memerlukan target output. Pada metode ini, tidak hanya ditentukan hasil seperti apakah yang diharapkan selama proses pembelajaran. Selama proses pembelajaran, nilai bobot disusun dalam suatu range tertentu tergantung pada nilai input yang diberikan. Tujuan pembelajaran ini adalah mengelompokan unit-unit yang hampir sama dalam suatu area tertentu. Pembelajaran ini biasanya sangat cocok untuk pengelompokan (klasifikasi) pola.Backpropagation Backporpagation merupakan algoritma pembelajaran yang terawasi dan biasanya digunakan oleh perceptron dengan banyak lapisan untuk mengubah bobot-bobot terhubung dengan neuron-neuron yang ada pada lapisan tersembunyinya. Algoritma backpropagation menggunakan error output untuk mengubah nilai bobot-bobotnya dalam arah mundur (backward). Utnuk mendapatkan error ini, tahap perambatan maju (forward propagation) harus dikerjakan terlebih dahulu. Apda saat perambatan maju, neuron-neuron diaktifkan dengan menggunakan fungsi aktivasi sigmoid. Arsitektur jaringan backpropagation seperti terlihat pada gambar berikut .

Algoritma backpropagation :1. Inisialisasi bobot (ambil bobot awal dengan nilai random yang cukup kecil)2. Kerjakan langkah-langkah berikut ini selama kondisi bernilai false1. Untuk tiap-tiap pasangan elemen yang akan dilakukan pembelajaran, kerjakan :Feedforward :a.. Tiap-tiap input (Xi i=1,2,3,.,n) menerima sinyal xi, dan meneruskan sinyal tersebut ke semua unit pada lapisan yang ada diatasnya (lapisan tersembunyi)b.. Tiap-tiap unit tersembunyi (Zj j=1,2,3,,p) menjumlahkan sinyal-sinyal input berbobot : Gunakan fungsi aktivasi untuk menghitung sinyal output-nyadan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output)c. Tiap-tiap unit output (Yk k-1,2,3,..,m) menjumlahkan sinyal-sinyal input berbobot

gunakan fungsi aktifasi untuk menghitung sinyal output-nya :dan kirimkan sinyal tersebut ke semua unit di lapisan atasnya (unit-unit output).d. Tiap-tiap unit output (Yk k=1,2,3,..,m) menerima target pola yang berhubungan dengan pola input pembelajaranya, hitung informasi error-nya :Kemudian hitung koreksi bobot (yang nantinya akan digunakan untuk memperbaiki nilai Wjk):

Hitung juga koreksi bias (yang nantinya akan digunakan untuk memperbaiki nilai W0k):

Kirimkan k ini ke unit-unit yang ada di lapisan bawahnya.e. Tiap-tiap unit tersembunyi (Zj j=1,2,3,..,p) menjumlahkan delta input-nya (dari unit-unit yang berada pada lapisan di atasnya):

Kalikan nilai ini dengan turunan dari fungsi aktivasinya untuk menghitung informasi error:Kemudian hitung koreksi bobot (yang nantinya akan digunakan untk memperbaiki nilai Vij):

Hitung juga koreksi bias (yang nantinya akan diguanakan untuk memperbaiki nilai V0j):f.Tiap-tiap unit output (Yk k=1,2,3,..,p) memperbaiki bias dan bobotnya (j=0,1,2,.,p):Tiap-tiap unit tersembunyi (Zj, j=1,2,3,.,p) memperbaiki bias dan bobotnya (i=0,1,2,.,n): 2. Tes kondisi berhentiTes kondisi berupa epoh sudah mencapai jumlah epoh maksimal atau MSE sudah mencapai target error.Mean Square Error (MSE) adalah fungsi kinerja yang sering digunakan untuk backpropagation yang dimana fungsi ini akan mengambil rata-rata kuadrat error yang terjadi antara output jaringan dan target.Mean Square Error (MSE). MSE dihitung sebagai barikut :1. Hitung keluaran jaringan syaraf untuk masukan petama aktivasi prediksi2. Hitung selisih antara nilai target dengan nilai keluaran prediksi3. Kuadratkan setiap selisih tersebut4. Jumlahkan semua kuadrat selisih dari tiap-tiap data pembelajaran dalam satu epoh5. Bagi hasil penjumlahan tersebut dengan jumlah data pembelajaranRumus Mean Square Error (MSE) :Keteranganei2 : selisih antara nilai target dengan nilai keluaran prediksin : jumlah data pembelajaranXi : unit masukan ixi : sinyal input dan output pada unit masukanZj : unit tersembunyi jz_inj : sinyal input terboboti/masukan untuk unit tersembunyi Zjzj : sinyal keluaran/aktivasi dari unit tersembunyi Zjv0j : bias pada unit tersembunyi jYk : unit keluaran ky_ink : sinyal input terboboti/masukan untuk unit keluaran Ykyk : sinyal keluaran/aktivasi dari unit kelauran Ykw0k : bias pada unit keluaran kk : informasi error/galat pada unit keluaran Yk yang dipropagasi balik ke unit tersembunyi_inj : jumlah delta input pada lapisan tersembunyi dari unit pada lapisan diatasnya/lapisan kelauran Ykj : informasi error/galat pada unit tersembunyi Zjwjk : koreksi bobot antara lapisan keluaran Yk dengan lapisan tersembunyi ZjW0k : koreksi bias antara lapisan kelauran Yk dengan lapsian tersembunyi Zjvij : koreksi bobot antara lapisan tersembunyi Zj dengan lapisan masukan Xiwjk : bobot antara lapisan keluaran Yk dengan lapisan masukan Zj yang sudah disesuaikanvij : bobot antara lapisan tersembunyi Zj dengan lapisan masukan Xi yang sudah disesuaikan : laju pembelajaran (learning rate)tk : target output

Model warna RGB dan histogramcitraModel warna RGB terdiri dari tiga komponen warna yaitu komponen Red, Green, dan Blue. Perintah untuk memanggil citra RGB adalah:12I = imread('football.jpg');figure, imshow(I);

Histogram citra adalah diagram nilai intensitas piksel (sumbu-x) terhadap frekuensi kemunculan intensitas piksel (sumbu-y). Nilai intensitas setiap piksel pada citra truecolor 24-bit berkisar antara 0 s.d 255. Masing-masing komponen warna pada citra RGB dapat diekstrak dan ditampilkan histogramnya.Komponen Red:12345IR = I(:,:,1);IG = I(:,:,2);IB = I(:,:,3);figure,imshow(cat(3,IR,IG.*0,IB.*0));figure,imhist(IR);

Komponen Green12figure,imshow(cat(3,IR.*0,IG,IB.*0));figure,imhist(IG);

Komponen Blue12figure,imshow(cat(3,IR.*0,IG.*0,IB));figure,imhist(IB);

PERCOBAAN 1MEMBUAT FRAME UNTUK MENUTujuan Praktikum- Mempu mendesain dan membuat program dalam membuat tampilan dalam bentuk frame yang baik dan dapat mengaitkan dengan banyak program dalam frame tersebut.

1.1 Teori DasarPada bab ini, akan dipelajari cara pembuatan window atau frame menggunakan MATLAB. Pembuatan window atau frame ini sangat membantu dalam mengatasi pengaturan dalam pembuatan program yang banyak dan komplek karena dapat dimanfaatkan untuk menggabungkan program-program yang telah dibuat dengan menggunakan callback. Pada Gambar 12.1 ditunjukkan contoh bentuk frame yang dibuat menggunakan MATLAB. Perhatikan menu-menu yang disjikan dalam frame tersebut. Program ini dirancang untuk dapat digunakan dalam keperluan identifikasi sinyal, menggunakan neural network. Sebagai contoh: Dengan cara menyebutkan judul sebuah lagu dari beberapa judul yang tersedia, komputer akan dapat mencari dan mengaktifkan lagu yang bersesuaian dengan yang disebutkan judulnya. Contoh lain adalah penerapan pengolahan citra, sehingga dengan mengambil gambar wajah seseorang, computer akan dapat menunjukkan identitasnya. Untuk keperlua itu, dibuat beberapa program yang diatur dalam menu sebagai berikut:MEREKAM:Dengan sub-menu: Mulai merekam, Bentuk Gelombang, dan Uji Suara.

GOLDSTANDARD:Merupakan database yang berisi sejumlah data standar yang diapat dipanggil dan diolah

TANGGAPAN FILTER:Dengan sub-menu: Elliptik, Chebyshev, Butterwoth, Bessel, yang masing-masing terdiri dari LPF, BPF, HPH Bandstop dengan batas frekuensi yang dapat diatur sesuai masukan. Juga dapat ditampilkan sinyal sebelum dan sesudah melalui filter tersebut

FREKUENSI DOMAIN:Dengan sub-menu: FFT dan Pwelch. Artinya sinyal dapat diproses dalam bentuk FFT dan Pwelch.

SIMPAN DATA:Dengan sub-menu: Data Uji atau Data Banding. Artinya data disimpan sebagai data yang akan diuji atau sebagai data yang akan dibandingkan

NEURAL NETWORK:Data teruji dan data pembanding dapat diproses menggunakan neural network untuk identifikasi sinyal

NEURAL NETWORK TANPA FILTER:Data teruji dan data pembanding dapat diproses menggunakan neural network untuk identifikasi sinyal tapi tanpa melalui filter

MUSIK:Menu tambahan yang berisi beberapa lagu

Gambar 14.1 Contoh Frame dalam Pengolahan Sinyal

Dalam perancangan frame, terlebih dahulu harus dibuat diagram blok diagram alir dari system yang akan dibuat, ini untuk memudahkan dalam perancangan menu yang dibutuhkan.

1.2 Peralatan - PC multimedia yang sudah dilengkapi dengan OS Windows - Perangkat Lunak Matlab yang dilengkapi dengan Tool Box DSP

1.3 Langkah PercobaanSalin program dibawah ini dalam work dari Matlab dengan benar. Jalankan !. Maka akan ditampilkan sebuah window, dan amati: ukuran, warna, juduld, dan lainnya, serta bandingkan dengan program yang telah ditulis. %---------------------------------------------% Nama File : a_Frame.m% Oleh : Yulianto%---------------------------------------------

% Belajar membuat frame, untuk tampilan yang baik:win_1=figure(... % tanda titik tiga menunjukkan % bersambung baris berikutnya 'unit','point',... 'position',[100 100 300 400],... %(posisi window: kiri, bawah,lebar % horisontal, lebar vertkal) 'color',[.5 .3 .4],... %warna isi window 'menubar','none',... 'resize','on',... %jika "off" hanya ditampilkan kecil 'numbertitle','off',... %nomor gambar, contoh: Figure 1 'name','PEMROSESAN SINYAL',... %judul dalam window 'WindowStyle','normal');

Yang harus dikerjakan:1. Ubahlah angka-angka dalam 'position',[100 100 300 400], jalankan program, apa yang terjadi?2. Ubahlah angka-angka dalam 'color',[.5 .3 .4] jalankan program, apa yang terjadi?3. Ubahlah angka-angka dalam 'color',[.5 .3 .4] jalankan program, apa yang terjadi?4. Ubahlah 'resize','on' menajdi 'resize','off' jalankan program, apa yang terjadi?5. Ubahlah 'numbertitle','off', menajdi 'numbertitle','on', jalankan program, apa yang terjadi?

Langkah berikutnya, tambahkan program terdahulu menjadi seperti berikut:

%---------------------------------------------% Nama File : b_Frame.m% Oleh : Yulianto%---------------------------------------------% Seperti terdahuluwin_1=figure('unit','point',... 'position',[100 100 300 400],... %ukuran diubah satu layar penuh 'color',[.5 .3 .4],... %warna diubah kesukaanku 'menubar','none', 'resize','on', 'numbertitle','off',... 'name','PEMROSESAN SINYAL', 'WindowStyle','normal');

% Tambahkan berikut ini untuk membuat posisi gambargrafikGamJudul=axes('parent',win_1,... %induknya adalah win_1 'units','point',... 'position',[50 100 200 100],... %posisi gambar 'xgrid','on',... %skala untuk grafik horisontal 'ygrid','off',... %skala untuk grafik vertikal 'xcolor',[.7 .8 .4],'ycolor',[.2 .6 .2],... 'fontsize',4,... %ukuran angka untuk sumbu y dan x 'color',[.4 .8 .4]),... %warna huruf 'backgroundColor',[.4 .8 .4]; %warna background putih: 1, 1, 1, 1

Perntah: grafikGamJudul=axes('parent',win_1, adalah untuk menunjukkan bahwa kotak dengan nama grafikGamJudul diletakkan di dalam win_1

Yang harus dikerjakan:1. Ubahlah angka dalam 'fontsize',4, jalankan program, apa yang terjadi?2. Ubahlah angka-angka dalam 'backgroundColor',[.4 .8 .4] jalankan program, apa yang terjadi?Berikut ini contoh program membuat window dengan tampilan yang baik. Sebelum program dapat dijalankan, harus terlebih dahulu disediakan gambar dengan nama: Fotoku.jpg, Sampul_1.jpg, Sampul_2.jpg, Sampul_3.jpg, Sampul_4.jpg, dan simpanlah dalam work dari Matlab yang sedang sigunakan.

%---------------------------------------------------------------------------------------% Nama File : c_Frame.m% Oleh : Yulianto%---------------------------------------------------------------------------------------win_1=figure('unit','point',... 'position',[8 5 950 570],... %ukuran diubah satu layar penuh 'color',[.5 .3 .4],... %warna diubah kesukaanku 'menubar','none', 'resize','on','numbertitle','off',... 'name','PEMROSESAN SINYAL POLINEMA Oleh: YULIANTO','WindowStyle','normal');

%Membuat posisi gambarMasukGambarDisini=axes('parent',win_1,... %induknya adalah win_1 'units','point',... 'position',[0 0 950 570],... %posisi gambar 'xgrid','on',... %skala untuk grafik horisontal 'ygrid','off',... %skala untuk grafik vertikal 'xcolor',[.7 .8 .4],'ycolor',[.2 .6 .2],... 'fontsize',4,... %ukuran angka untuk sumbu y dan x 'color',[.4 .8 .4]),... %warna huruf 'backgroundColor',[.4 .8 .4]; %warna background putih: 1, 1, 1, 1%Tambahkan instruksi sebagai berikut:[a,MAP]=IMREAD('Fotoku.jpg');image(a); % masukkan gambar pada % frame di atasgrid off;% tambahkan file dengan nama "Pembukaan.jpg" pada work andapause(5);[a,MAP]=IMREAD('Sampul1.jpg');image(a); %masukkan gambar pada frame pause(5);[a,MAP]=IMREAD('Sampul2.jpg');image(a); %masukkan gambar pada frame pause(5);[a,MAP]=IMREAD('Sampul3.jpg');image(a); %masukkan gambar pada frame pause(5);[a,MAP]=IMREAD('Sampul4.jpg');image(a); %masukkan gambar pada frame pause(5);close;

Jalankan program dan amati apa yang ditampilkan. Ulangi perintah di atas, tapi untuk program berikt ini. Amati perubahan yang terjadi dan jelaskan.

%-----------------------------------------------------------------------------------------------% Nama File : d_Frame.m% Oleh : Yulianto%-----------------------------------------------------------------------------------------------win_1=figure('unit','point',... 'position',[5 5 950 555],... %ukuran diubah satu layar penuh 'color',[.5 .3 .4],... %warna diubah kesukaanku 'menubar','none', 'resize','on','numbertitle','off',... 'name','PEMROSESAN SINYAL POLITEKNIK NEGERI MALANG Oleh: YULIANTO',... 'WindowStyle','normal');

%MEMBUAT POSISI GAMBARMasukGambarDisini=axes('parent',win_1,... %induknya adalah win_1 'units','point',... 'position',[0 0 950 555],... % posisi gambar 'xgrid','on',... % skala untuk grafik horisontal 'ygrid','off',... % skala untuk grafik vertikal 'xcolor',[.7 .8 .4],'ycolor',[.2 .6 .2],... 'fontsize',4,... % ukuran angka untuk sumbu y dan x 'color',[.4 .8 .4]),... % warna huruf 'backgroundColor',[.4 .8 .4]; % warna background putih: 1, 1, 1, 1

[a,MAP]=IMREAD('Sampul4.jpg');image(a); % memanggil gambar dan % menampilkanSuara=wavread('Suara1');sound(Suara); % memanggil suara dan % membunyikan

% Menambah menu untuk merekam Merekam = uimenu('parent',win_1,... 'Label','MEREKAM',... % judul menu merekam 'Callback','KeteranganMerekam') % memberiketerangan menu % MEREKAM

Suara=wavread('Suara1');sound(Suara); % memanggil suara dan % membunyikanMulaiMerekam=uimenu('parent',Merekam,... 'Label','Mulai Merekam',... % judul sub menu merekam, yaitu: % Mulai Merekam 'Callback','MerekamSuara'); % loncat ke program: Merekam.matSuara=wavread('Suara1');sound(Suara); % memanggil suara dan % membunyikan

GelombangHasilRekam=uimenu('parent',Merekam,... 'Label','Gelombang Hasil Rekaman',... % judul sub menu merekam, yaitu: % Gelombang Hasil Rekaman 'Callback','GelHasRek'); % loncat ke program: % GelHasilRek.matSuara=wavread('Suara1');sound(Suara); % memanggil suara dan % membunyikanSuaraHasilRekam=uimenu('parent',Merekam,... 'Label','Suara Hasil Rekaman',... % sub menu merekam, yaitu: Suara % Hasil Rekaman 'Callback','UjiSuara'); % loncat ke program: UjiSuara.mat

Jalankan program. Klik pada sub-menu merekam, maka program tidak dapat berjalan karena program bagian callback belum dibuat. Callback adalah sub-program yang harus dibuat dan akan dieksekusi setelah bagian labelnya di-klik. Dalam sub-menu tersebut tedapat 4 macam callback, maka harus dibuat empat macam program yang harus disimpan dalam work yang sama. Berikut ini contoh program untuk merekam yang diberi nama MerekamSuara.m dan program untuk memberi petunjuk yang diberi nama KeteranganMerekam.m. Silakan dikopi dalam work tanpa mengubah nama.%-----------------------------------------------------------------------------------------% Nama File : MerekamSuara.m% Oleh : Yulianto%-----------------------------------------------------------------------------------------Suara=wavread('Suara1');sound(Suara); % memanggil suara dan % membunyikangrafik1=axes('parent',win_1,... 'units','point','position',[80 150 170 160],.. 'xgrid','off','ygrid','off','xcolor',[ 1 1 1],... 'ycolor',[1 1 1],'fontsize',1,'color',[1 1 1]),'backgroundColor',[1 1 1];[a,MAP]=IMREAD('Merekam2.jpg'); image(a); grid off;axis off;win2=figure(... 'unit','point','position',[310 180 300 230],'color', [.8 .8 .9],'menubar','none','resize','on',... 'numbertitle','off','name','Data Hasil Rekam','WindowStyle','normal');grafik2=axes('parent',win2,... 'units','point','position',[15 15 280 210],'xgrid','off',... 'ygrid','off','xcolor',[.8 .8 .9 ],'ycolor',[.8 .8 .9 ],... 'fontsize',8,'color',[.8 .8 .9]),'backgroundColor',[.8 .8 .9];ai = analoginput ('winsound');addchannel(ai, 1); Fs = 16000; % frekuensi samplingset(ai,'SampleRate', Fs);duration = 2.7; set(ai, 'SampleRate', duration*Fs);start(ai);DataRekam_0 = getdata(ai); plot(DataRekam_0,'m','LineWidth',1);grid;legend('DataRekam_0');save DataRekam_0; set(gca,'color',[.2 .4 .2]);edit21 =uicontrol('parent',win2,... % membuat tombol UJI SUARA 'unit','point','position',[15 15 70 15],'backgroundColor',[1 .7 1],... 'string','UJI SUARA','fontname','fixedsys','fontsize',8,'callback','UjiData');edit22 =uicontrol('parent',win2,... % membuat tombol TUTUP 'unit','point','position',[235 15 60 15],'backgroundColor', [1 .7 1],'string','TUTUP',... 'fontname','fixedsys','fontsize',8,'callback','Close'); pause(5);close('Data Hasil Rekam');

Berikut ini program untuk memberikan informasi apa yang akan terjadi jika anda menjalankan program pilihan pada menu yang bersesuaian.

%---------------------------------------------% Nama File : KeteranganMerekam.m% Oleh : Yulianto%---------------------------------------------t=(1/8:2/8:15/8)'*pi;x=sin(t);y=cos(t); fill(x,y,'y');set(gca,'color',[0 0 1]);hold on;plot(x,y,'b','linewidth',1);hold on; axis square;axis off;text(0,.4,'MEREKAM...!!','Fontsize',14,HorizontalAlignment','center');text(0,.2,'Aktifkam mikrofon','Fontsize',10, 'HorizontalAlignment','center');text(0,.05,'Jika anda menekan tombol:','Fontsize',... 10,'HorizontalAlignment','center');text(0,-.1,'"Mulai Merekam"','Fontsize',10,... 'HorizontalAlignment','center');text(0,-.25,'Suara dalam durasi 2,7 detik','Fontsize',... 10,'HorizontalAlignment','center');text(0,-.4,'akan terekam dan data',...'Fontsize',10,'HorizontalAlignment','center');text(0,-.55,'tersimpan dalam format','Fontsize',10, 'HorizontalAlignment','center');text(0,-.7,'"mat"','Fontsize',10,'HorizontalAlignment','center');

Dalam program ini juga masih ada dua buah callback, yaitu untuk tombol UJI SUARA dan tombol TUTUP. Buatlah program tersebut dan beri nama UjiSuara.m dan Close.m dan simpan dalam work. Jalankan program keseluruhan dan rekamlah sebuah suara kemudian tekan tombol UJI SUARA, kemudian lanjutkan dengan tombol TUTUPProgram berikut ini kopikan dalam work dari MATLAB, kemudian simpan dengan nama HEADER.m dan jalankan. Amati hasilnya, beri penjelasan atau komentar tentang tampilan tersebut.

%---------------------------------------------------------------------------------------------% Nama File : HEADER.m% Oleh : Yulianto%---------------------------------------------------------------------------------------------win_1=figure( 'unit','point',... 'position',[5 5 950 555],... %ukuran diubah satu layar penuh 'color',[.5 .3 .4],... %warna diubah kesukaanku 'menubar','none','resize','on','numbertitle','off',... 'name','PEMROSESAN SINYAL POLITEKNIK NEGERI MALANG Oleh: YULIANTO','WindowStyle','normal');

%MEMBUAT POSISI GAMBARMasukGambarDisini=axes('parent',win_1,... %induknya adalah win_1 'units','point',... 'position',[0 0 950 555],... %posisi gambar 'xgrid','on',... %skala untuk grafik horisontal 'ygrid','off',... %skala untuk grafik vertikal 'xcolor',[.7 .8 .4],'ycolor',[.2 .6 .2], 'fontsize',4,... %ukuran angka untuk sumbu y dan x 'color',[.4 .8 .4]),... %warna huruf 'backgroundColor',[.4 .8 .4]; %warna background putih: 1, 1, 1, 1[a,MAP]=IMREAD('Sampul4.jpg'); % memanggil gambarimage(a); % menampilkanSuara=wavread('Suara1'); % memanggil suarasound(Suara); % dan membunyikan%-------------------------------------------------------------------------------------------% Menambah menu untuk merekam %-------------------------------------------------------------------------------------------GrafikMerekam=axes('parent',win_1,... 'units','point','position',[80 200 170 160],'xgrid','off',... 'ygrid','off','xcolor',[1 1 1],'ycolor',[1 1 1],... 'fontsize',1,'color',[1 1 1]),'backgroundColor',[1 1 1]; [a,MAP]=IMREAD('Merekam1.jpg'); image(a); grid off;axis off;Merekam = uimenu('parent',win_1,... 'Label','MEREKAM',... % judul menu merekam 'Callback','KeteranganMulaiMerekam'); % keterangan menu MEREKAMMulaiMerekam=uimenu('parent',Merekam,... 'Label','Mulai Merekam',... % sub menu: Mulai Merekam 'Callback','KeteranganMerekam'); % loncat ke program: % KeteranganMerekam.matGel_HasilRekam=uimenu('parent',Merekam,... 'Label','Gelombang Hasil Rekaman',... 'Callback','KeteranganTampilkan'); SuaraHasilRekam=uimenu('parent',Merekam,... 'Label','Uji Suara',... 'Callback','KeteranganBunyikan'); StartMerekam=uimenu('parent',MulaiMerekam,... 'Label','Merekam',... % judul sub menu, yaitu: Mulai Merekam 'Callback','MerekamSuara'); % loncat ke program: Merekam.matStartTampil=uimenu('parent',Gel_HasilRekam,... 'Label','Tampilkan',... 'Callback','TampilkanHasilRekaman'); StartBunyi=uimenu('parent',SuaraHasilRekam,... 'Label','Bunyikan',... 'Callback','BunyiHasilRekaman');

%-----------------------------------------------------------------------------------------------% Menambah menu untuk filter %-----------------------------------------------------------------------------------------------Filter_Demo = uimenu('parent',win_1,... 'Label','TANGGAPAN FILTER',... % judul menu merekam 'Callback','KeteranganFilterDemo') % keterangan menu MEREKAMFilt_Elliptik_Demo=uimenu('parent',Filter_Demo,... 'Label','Elliptik',... % judul sub menu merekam, yaitu: Mulai Merekam 'Callback','Keterangan_Demo_Elliptic'); % ke program: Merekam.matFilt_Chebyshev_Demo=uimenu('parent',Filter_Demo,... 'Label','Chebyshev',... % sub menu, yaitu: Gelombang Hasil Rekaman 'Callback','Keterangan_Demo_Chebyshev'); % loncat ke: GelHasilRek.matFilt_Butterworth_Demo=uimenu('parent',Filter_Demo,... 'Label','Butterworth',... % judul sub menu, yaitu: Suara Hasil Rekaman 'Callback','Keterangan_Demo_Butterworth'); % ke program: UjiSuara.matFilt_Bessel_Demo=uimenu('parent',Filter_Demo,... 'Label','Bessel',... % judul sub menu, yaitu: Suara Hasil Rekaman 'Callback','Keterangan_Demo_Bessel'); % ke program: UjiSuara.matLPF_Elliptik_Demo=uimenu('parent',Filt_Elliptik_Demo,... 'Label','Demo','Callback','Demo_Elliptic'); LPF_Chebyshev_Demo=uimenu('parent',Filt_Chebyshev_Demo,... 'Label','Demo','Callback','Demo_Chebyshev'); LBP_Butterworth_Demo=uimenu('parent',Filt_Butterworth_Demo,... 'Label','Demo','Callback','Demo_Butterworth'); LBP_Bessel_Demo=uimenu('parent',Filt_Bessel_Demo,... 'Label','Demo','Callback','Demo_Bessel');

%------------------------------------------------------------------------------------------------% Menambah menu untuk frekuensi domain %------------------------------------------------------------------------------------------------Frekuensi_Domain = uimenu('parent',win_1,... 'Label','FREKUENSI DOMAIN',... % judul menu FREKUENSI DOMAIN 'Callback','KeteranganFilterDemo'); % memberi keterangan menu

FFT_Pwelch_Output_Demo=uimenu('parent',Frekuensi_Domain,... 'Label','FFT dan PWELCH',... %judul sub menu merekam, yaitu: FFT 'Callback','Output_FFT_dan_Pwelch');%loncat ke program: Output_FFT

%------------------------------------------------------------------------------------------% Menambah menu : Memasukkan Data %------------------------------------------------------------------------------------------Simpan_Data = uimenu('parent',win_1,... 'Label','SIMPAN DATA',... % judul menu FREKUENSI DOMAIN 'Callback','KeteranganFilterDemo');% memberiketerangan menu

Data_1=uimenu('parent',Simpan_Data,... 'Label','Data Teruji',... % judul sub menu merekam, yaitu: FFT 'Callback','Disimpan_Sebagai_Data_Teruji'); % ke program: Output_FFTData_2=uimenu('parent',Simpan_Data,... 'Label','Data Pembanding:',... % judul sub menu merekam, yaitu: FFT 'Callback','Data_Disimpan_Sebagai'); % loncat ke program: Output_FFT

%------------------------------------------------------------------------------------------------% Menambah menu : Identifikasi dengan Neural Network %------------------------------------------------------------------------------------------------Neural_Network = uimenu('parent',win_1,... 'Label','NEURAL NETWORK',... % judul menu FREKUENSI DOMAIN 'Callback','KeteranganFilterDemo'); % memberiketerangan menu

Olah_Neural_Tanpa_GS=uimenu('parent',Neural_Network,... 'Label','Korelasi Tanpa Gold Standar',... % judul sub menu, yaitu: FFT 'Callback','Parameter_Neural_Tanpa_GS'); % ke program: Output_FFTOlah_Neural_Dengan_GS=uimenu('parent',Neural_Network,... 'Label','Korelasi Dengan Gold Standar',... % judul sub menu, yaitu: FFT 'Callback','Parameter_Neural_Dengan_GS'); % ke program: Output_FFT%-----------------------------------------------------------------------------------------------% Menambah menu : Identifikasi dengan Neural Network % Data Target=Data Latih%-----------------------------------------------------------------------------------------------Neural_Network_TF = uimenu('parent',win_1,... 'Label','NEURAL NETWORK TANPA FILTER',... % judul menu % FREKUENSI DOMAIN 'Callback','KeteranganFilterDemo'); % memberi keterangan menu % Keterangan_FFT_DemoOlah_Neural_Tanpa_GS=uimenu('parent',Neural_Network_TF,... 'Label','FFT_Dengan_GS_Tanpa_Filter',... % judul sub menu, yaitu: FFT 'Callback','Korelasi_FFT_Dengan_GS_Tanpa_Fi'); % ke: Output_FFTOlah_Neural_Dengan_GS=uimenu('parent',Neural_Network_TF,... 'Label','Pwelch_Dengan_GS_Tanpa_Filter',... % judul sub menu, yaitu: FFT 'Callback','Korelasi_Pwelch_Dng_GS_Tanpa_Fi'); % ke: Output_FFT%--------------------------------------------------------------------------------------------% Menambah menu : Demo Gold Standard %--------------------------------------------------------------------------------------------edit1a =uicontrol('parent',win_1,... 'unit','point','position',[100 100 120 20],... 'backgroundColor',[.8 .4 .1],'string','DEMO GOLDSTANDARD',... 'fontname','fixedsys','fontsize',12,'callback','DemoGoldStandard');

1.4 Analisa Data Buatlah penjelasan setiap statement yang telah dibuat dalam program di atas, termasuk tujuan dan penjelasan hasil yang diperoleh.

1.5 TugasDalam akhir semester anda harus membuat program untuk mengaplikasikan bab-bab terdahulu yang telah kita pelajari. Program dengan MATLAB yang telah dibuat silahkan dikopikan dalam CD atau DVD dengan nama folder adalah nama anda sendiri digandeng dengan kelas. Program MATLAB utama (win_1) diberi nama file: HEADER.m dan kumpulkan pada minggu ke 18. Berikut ini ditunjukkan contoh aplikasi sebagai opsi atau silakan buat suatu pilihan sendiri.1. Kita akan merencanakan sebuah program window yang lengkap dan memenuhi kebutuhan untuk suatu analisis data. Salah satu ide yang akan direncanakan seperti pada diagram alir berikut (tidak menutup kemungkinan jika ada modifikasi yang lebih baik):

Gambar 14.2 Contoh Diagam Blok Sistem untk Tugas

HEADER: Buatlah judul dan beri penjelasan nama pembuatnya

MEREKAM: Digunakan untuk merekam melalui audiocard. Suara hasil rekaman harus dapat dibunyikan ulang, dapat ditampilkan kembali dalam bentuk grafis. Data ini akan tertindih dan digantikan dengan data yang baru jika anda melakukan perekaman ulang.

DATABASE: Wadah untuk membuat sekumpulan data suara yang disimpan permanen. Yang dapat dipanggil sesuai pilihan, dapat dibunyikan ulang, dapat ditampilkan dalam bentuk grasif. Data yang dipanggil harus diberi nama lain agar dapat diproses lebih lanjut. Data ini akan tertindih dan digantikan dengan data yang baru jika anda melakukan pemanggilan data yang baru.

FILTER: Wadah untuk membuat program sebuah filter BPF dan dapat ditampilkan tanggapan filternya. Dapat ditampilkan sinyal masukan dan keluarannya.

FFT: Wadah untuk membuat program FastFourier Transformer yang berfungsi untuk mengubah fungsi waktu menjadi fungsi frekuensi. Harus dapat menampilkan sinyal fungsi waktu dan sinyal fungsi frekuensi.

NEURAL NETWORK: Wadah untuk membuat program analisis dengan neural network.

FUZZY: Wadah untuk membuat program analisis dengan Fuzzy dan ANFIS

2. Buatlah program untuk membuat suatu window yang baik sesuai kreasi anda, minimal memenuhi diagram alir di atas. Ingat program yang dibuat akan digunakan seterusnya.3. Atur sedemikian rupa sehingga program-program koleksi yang telah dibuat sebelumnya dapat dimasukkan dalam frame ini.4. Jalankan masing-masing program, dan perbaiki jika tidak dapat bekerja dengan baik.PERCOBAAN 9TRANSFORMASI LAPLACE, TRANSFORMASI FOURIERDAN TRANSFORMASI Z

Tujuan Praktikum

Mahasiswa dapat mentransformasikan dari fungsi waktu menjadi fungsi Laplace, Fourier, dan Z. Mahasiswa dapat membuat program dalam bahasa MATLAB untuk mentransformasikan dari fungsi waktu menjadi fungsi Laplace, Fourier, dan Z ___________________________________________________

9.1 Dasar Teori

9.1.1 Transformasi Laplace

Transformasi Laplace merupakan suatu model matematis yang dapat dipergunakan untuk mempemudah dalam penghitungan matematis. Definisi Tranformasi Laplace

Tabel 1. Sifat Transformasi Laplace

TeoremaDomain WaktuDomain Frekuensi Komplek

1Linieritasc1f1(t)+c2f2(t)++cnfn(t)c1F1(s) + c2F2(s) +............ + cnFn(s)

2Pergeseran Waktuf(t-a)uo(t-a)e-asF(s)

3Pergeseran Frekuensie-asf(t)F(s+a)

4Penskalaan Waktuf(at)

5Diferensiasi WaktusF(s)-f(0-)

6Diferensiasi Frekuensi

7Integrasi Waktu

8Integrasi Frekuensi

9Periodasitas WaktuF(t+nT)

10Teorema Nilai Inisial

11Teorema Nilai Akhir

12Konvolusi Wktuf1(t)*f2(t)F1(s)F2(s)

13Konvolusi Frekuensif1(t)f2(t)

Tabel 2. Transformasi Laplace untuk beberapa fungsi yang umum digunakan:f(t)F(s)

1u0(t)1/s

2tu0(t)1/s2

3tnu0(t)n!/sn+1

41

5e-as

6e-atu(t)

7tne-atu0(t)

8

9

10e-at

11e-at

Penggunaan LaplaceMisal, dalam suatu analisis sistem dengan transformasi Laplace, didapat sinyal keluaran memiliki memiliki bentuk dalam domain kompleks sebagai berikut.

Untuk mendapatkan nilai di domain waktu, digunakan fraksionalisasi atau teorema residu kemudian transformasi balik. Biasanya, setelah dipecah menjadi sejumlah suku pecahan, transformasi balik menjadi mudah karena bentuknya adalah bentuk umum.

Catatan: Pole adalah nilai yang membuat nilai fungsi menjadi tak berhinggaZero adalah nilai yang membuat nilai fungsi menjadi nol

9.1.2 Transformasi Fourier

Definisi

Tabel 3. Sifat transformasi Fourier:f(t)F()

Linieritasa1f1(t)+a2f2(t)+....a1F1()+ a2F2()+....

Simetrif(t)2f(-)

Penskalaan Waktufa(t)

Pergeseran Waktufa(t-t0)F()e-j to

Pergeseran Frekuensie-j tof(t)F(- 0)

Diferensiasi Waktu

Diferensiasi Frekuensi(-jt)nf(t)

Integrasi Waktu

Fungsi Konjugatef*(t)F*(-)

Konvolusi Waktuf1(t)+f2(t)F1 ().F2()

Konvolusi Frekuensif1(t).f2(t)

Area under

Area under F(w)F(0)=

Teorema Parseval

Tebl 4. Fungsi dalam bentuk transformasi Fourier yang sering digunakan

f(t)F()

(t)1

(t-t0)e-jto

12()

e-jto2(- o)

sgn(t)2/(j()

uo(t)

cos otf[(- o)+( + o)]

sin otf[(- o)-( + o)]

e-atuo(t)a>0a>0

te-atuo(t)a>0a>0

e-atcos otuo(t)a>0; a>0

e-atsin otuo(t)a>0

A[uo(t+T)-uo(t-T)]2AT

7.1.3 Transformasi Z

Definisi:

Tabel 5. Sifat transformasi zTeoremaDomain WaktuTransformasi Z

Linieritasaf1[n]+bf2[n]+....aF1(z)+bF2(z)+....

Pergeseran dari x[n]uo[n]f[n-m]u0[n-m]z-mF(z)

Geser Kananf[n-m]z-mF(z)+

Geser kirif[n+m}zmF(z)+

Perkalian dengan ananf[n]

Perkalian dengan e-naTe-naTf[n]F(eaTz)

Perkalian dengan nnf[n]

Perkalian dengan n2n2f[n]

Penjumlahan dalam waktu

Konvolusi waktuf1[n]*f2[n]F1(z)*F2(z)

Teorema Nilai Inisial

Teorema Nilai Akhir

Tabel 6. Transformasi Z dari fungsi yang sering digunakanf(t)F()

(n)1

( n-m)z-m

anu0[n]

u0[n]

(e-naT)u0[n]

(cos naT)uo[n]

(sin aT)uo[n]

(ancos naT)uo[n]

(ansin naT)uo[n]

uo[n]=uo[n-m]

nuo[n]z/(z-1)2

n2uo[n]Z(z+1)/(z-1)3

[n+1]uo[n]Z2/(z-1)2

annuo[n](az)/(z-a)2

ann2uo[n]Az(z+a)/(z-a)3

ann[n-1]uo[n]2az2/(z-a)3

9.2. Peralatan- PC multimedia yang sudah dilengkapi dengan OS Windows- Perangkat Lunak Matlab yang dilengkapi dengan Tool Box DSP

9.3. Langkah Percobaan9.3.1 Langkah Percobaan Transformasi Laplace

Sebagai contoh, kita akan menentukan fungsi Laplace berikut ini dalam domain waktu:

Dari Tabel, didapat bahwa

Maka:

Dengan Matlab, fungsi yang bisa digunakan adalah factor(polynom), residue(num,den),ilapace(Fs).Factor>> syms s>> factor(s^3 + 12*s^2 + 44*s + 48)ans =(s+4)*(s+2)*(s+6)

Fungsi factor memiliki kekurangan ketika harus memfaktorkan suatu polinom bila ada akar yang berupa bilangan kompleks. Sebagai gantinya, gunakan fungsi roots(polynom).Residue>> Ns=[3 2];>> Ds=[1 3 2];>> [r p k]residue(Ns,Ds)r = 4 -1p = -2 -1k = []

Ilaplace>> syms s>> Fs=(3*s+2)/(s^2+3*s+2);>> ft=ilaplce(Fs)ft = 4*exp(-2*t)-exp(-t)

7.3.3 Langkah Percobaan FourierTransformasi Fourier dengan Matlab

>> syms t v w x;>> ft=exp(0.5*(-t^2));>> Fw=fourier(ft)Fw =2^(1/2)*pi^(1/2)*exp(-1/2*w^2)>> pretty(Fw)1/2 1/2 22 pi exp(- 1/2 w )>> ft=ifourier(Fw)ft =exp(-1/2*x^2)

7.3.3 Langkah Percobaan Transformasi Z

Berikut ini ditunjukkan contoh transformasi Z, termasuk penurunannya. Silakan diamati / dimengerti langkah-langkah penurunannya, lanjutkan dengan ujicoba pembuatan program MATLAB-nya.Gunakan metoda fraksionalisasi untuk inverse z transform dari fungsi berikut:

Penyelesaian

Dari tabel bentuk umum, didapat

Sehingga

f[n]=2(0,5)n-9(0,75)n+8

Berikut ini adalah pemeriksaan dengan Matlab

>> syms n z;>> fn=2*(0.5)^n-9*(0.75)^n+8;>> Fz=ztrans(fn)Fz =4*z/(2*z-1)-12*z/(4/3*z-1)+8*z/(z-1)>> simple(Fz)ans =8*z^3/(2*z-1)/(4*z-3)/(z-1)>> iztrans(Fz)ans =2*(1/2)^n-9*(3/4)^n+8

9.4 Analisis DataSeperti biasa diakhir pertemuan anda harus menyelesaikan laporan, dengan memberikan bukti-bukti bahwa anda telah melakkan pecobaan dan jangan lupa menjawab pertanyan atau perintah yang telah disediakan pada percobaan di atas.

9.5 Tugas1. Tentukan transformasi Fourier untuk fungsi impul satuan [(t-to)] 2. Tentukan transformasi Fourier dari sebuah fungsi singularitas yang dikenal sebagai fung si signum, sgn (t), yang disefinisikan oleh : sgn (t) = u(t) u(-t)3. Tentukan transformasi Fourier untuk fungsi tangga satuan [u(t)]. 4. Tentukan transformasi Fourier untuk fungsi eksponensial e-at u(t). 5. Misalkan vi(t) = 10 e-2t u(t) V dalam jaringan linier dengan h(t) = 2,5 e-8t u(t). carilah : H(j), Vi(j); Vo(j), dan kemudian : (a) vo(0,5) ; (b) vo(1,5); (c) vo,maks6. Pada sebuah sistem linier diketahui mempunyai fungsi sistem [H(j)] =.Tentukanlah respons dari sistem linier tersebut, bila masukannya adalah : (a) (t); (b) u(t) ; (c) sgn(t)

EKSTRAKSI CIRI PADA SINYAL SPEECH

Tujuan Praktikum

- Mahasiswa mampu melakukan estimasi frekuensi fundamental sinyal speech dengan pengamatan frekens spektrum dan bentuk gelombangnya- Mahasiswa mampu menggambarkan bentuk kuefrensi dan cepstrum sinyal speech.

8.1 Dasar Teori8.1.1 Autokorelasi Sinyal SpeechTujuan melakukan estimasi dalam domain waktu adalah untuk mendapatkan nilai autokorelasi sinyal speech. Nilai autokorelasi suatu sinyal wicara akan menunjukkan bentuk gelombang itu yang membentuk suatu korelasi pada dirisnya sendiri sebagai fungsi perubahan waktu. Bentuk-bentuk yang sama atau mirip pada perioda tertentu menunjukkan perulangan bentuk yang menjadi pola dari sinyal wicara. Dengan demikian akan dapat kita lakukan estimasi nilai frekuensi fundamentalnya.

Gambar 8.1. Sinyal Wicara dalam Bentuk Gelombang, dan Fungsi Auto Korelasi

8.1.2 Analisa Spectral Sinyal SpechProses ekstraksi ciri sinyal speech didasarkan pada sebuah diagram blok yang cukup popular seperti berikut.

Gambar 8.2 Diagram Blok Ekstraksi Ciri Sinyal Wicara

Dengan mengikuti diagram blok di atas, kita akan mendapatkan langkah-demi langkah ekstraksi ciri. Pada Sub Bab ini pembicaraan berkisar pada proses melihat short time fourier analisys dari sinyal speech, atau yang juga kita kenal sebagai power spectral density (PSD) sebuah sinyal speech pada durasi atau frame tertentu. Dengan mengetahui bentuk PSD sinyal wicara kita akan mampu melakukan ekstraksi ciri sinyal wicara tersebut. Target akhir sub bab ini dalah mencari bentuk power spectral density (PSD). Sebelum proses pada Gambar di atas dilakukan ada baiknya kita melihat gambaran sebuah sinyal speech yang telah kita simpan dalam bentuk file a.wav. Setelah kita dapatkan bentuknya dalam domain waktu seperti pada Gambar 8.3 bagian atas, selanjutnya kita coba melihatnya sebagai fungsi dari sampling. Dalam hal ini kita lihat bentuk sinyal wicara sesuai dengan urutan sampel yang ada. Seperti kita lihat bahwa untuk nilai sampel ke-700 sampai dengan sampel ke-8200, menunjukkan nilai magnitudo sinyal yang relatif stabil.

Kita lanjutkan dengan melakukan pembentukan frame sebuah sinyal wicara seperti pada Gambar 8.4 bagian atas. Dengan melakukan windowing kita akan mendapatkan bentuk frame sinyal wicara terwindow seperti pada Gambar 8.4 bagian bawah. Sudah tentu kita paham untuk apa proses windowing dilakukan disini. Dengan demikian tidak salah apabila kita mengambil satu frame sinyal dari sampel ke-2000 sampai dengan sampel ke 2480. Karena dalam satu frame kita bentuk dari:

Sampel/frame = (sample/detik)*(detik/frame) = 16000 * 0,06= 480 sampel/frame

Hal ini dilakukan dengan menetapkan bahwa satu frame sinyal wicara sepanjang 50 ms.

Gambar 8.3. Sinyal Wicara dalam Domain Waktu dan Sebagai Fungsi Sampel ke-n

Gambar 8.4. Satu Frame Sinyal Wicara dalam Domain Waktu

Proses dilanjutkan dengan melakukan transformasi sinyal ke dalam domain frkeuensi. Dengan menggunakan fft dan proses logaritmik akan kita dapatkan nilai power spectral density(PSD) sinyal wicara seperti pada Gambar 8.5.

Gambar 8.5. Power Spectral Density Sinyal Speech

8.1.3 Cepstrum Sinyal Speech Cepstrum c() didefiniskan sebagai inverse transformasi Fourier pada short-time nilai logarithmik spektrum amplitudo sebuah sinyal, |X()|. Jika log amplitudo spectrum tersusun dari banyak spasi harmonik yang teratur, maka analisis Fourier pada spektrum ini akan menunjukkan sebuah puncak yang berhubungan dengan jarak antar harmonisa tersebut, yang juga dikenal sebagai frekuensi fundamental.

Dengan melakukan proses mengikuti diagram blok pada Gambar 8.2, maka proses berikutnya adalah melakukan ifft nilai PSD yang sudah diperoleh. Proses ini menghasilkan sebuah nilai kuefrensi dari sinyal speech. Gambaran dari nilai kuefrensi seperti pada Gambar 8.6, berikut ini. Langkah ini dilanjutkan dengan lifter window, yaitu proses pengambilan sebagian saja dari nilai kuefrensi sinyal speech yang terdapat pada Gambar 8.6. Dalam hal ini kita bisa mengambil 16 sampai 20 nilai pertama yang muncul. Nilai ini sudah cukup representatif untuk mendapatkan ciri dari sinyal wicara. Yang terakhir dari langkah kita adalah melakukan transformasi fourier pada hasil lifter window yang selanjutnya akan menghasilkan sebuah cepstrum dari sinyal speech yang kita olah.

Gambar 8.6. Gambaran Kuefrensi Sinyal Speech a.wav

Gambar 8.7. Perbandingan Nilai Psd dan Cepstrum Sinyal Speech a.wav

Dari Gambar 8.7 di atas kita dapatkan gambaran bentuk cepstrum sinyal speech menunjukkan pola yang mirip dengan pola PSD. Di sini tampak bahwa bentuk cepstrum merupakan penghalusan dari bentuk PSD sebuah sinyal speech.

8.2. Peralatan- 1 (satu) buah PC Multimedia lengkap sound card dan microphone- Satu perangkat lunak Matlab under windows

8.3. Langkah Percobaan8.3.1 Penataan PerangkatSebelum melakukan percobaan harus dilakukan penataan seperti pada Gambar 8.8, berikut ini.

Gambar 8.8 Penataan Perangkat Percobaan Pengukuran Energi Sinyal Wicara

PC harus dilengkapi dengan peralatan multimedia seperti sound card, speaker active dan microphone. Untuk microphone dan speaker active. Sebelum anda memulai praktikum, sebaiknya anda tes dulu, apakah seluruh perangkat multimedia anda sudah terintegrasi dengan PC.

Untuk membantu anda dalam menjalankan praktikum ini, di sini diberikan beberapa contoh perintah dasar yang akan anda perlukan pada proses ekstraksi ciri sinyal speech. Untuk menentukan korelasinya digunakan perintah sebagai berikut:Korelasi: C = XCORR(A,B),

Contoh pemakaiannya seperi berikut:clear all;x=[1 3 2 1 3 6 1];subplot(211)plot(x,b,linewidth,3)axis([0 8 0 7])xx=xcorr(x);subplot(212)plot(xx,b,linewidth,3)Hasilnya adalah seperti berikut ini.

Gambar 8.9. Contoh Proses KorelasiNilai sample ke-nMembaca sebuah nilai pada sample tertentuFs=12000;[x,Fs]=wavread('file_a');x_240=x(2000:2240);Dengan program ini akan didapatkan nilai x_240 sebagai nilai dari variabel x pada sampel 2000 sampai dengan sampel ke 2240.

Transformasi dari domain waktu ke frekuensi[H,W] = FREQZ(B,A,N) returns the N-point complex frequency response vector H and the N-point frequency vector W in radians/sample of the filter:Contoh pemakaiannyaX=freqz(x_wind);Langkah ini akan mentransormasikan nilai x_wind menjadi bentuk domain frekuensiyang hasilnya disimpan pada variabel X. Kita harus tahu bahwa nilai yang disimpandalam X merupakan bentuk komplek.

Transformasi dari domain frekuensi ke domain waktuIFFT(X) is the inverse discrete Fourier transform of X.Contoh pemakaiannyax_k = abs(ifft(X_dB));Langkah ini akan mentransformasikan dari domain frekuensi ke dalam domain waktu,operasinya kita kenal sebagai invers fast fourier transform.

8.3.2 Estimasi Frekuensi Fundamental dengan Domain WaktuPada percobaan ini kita coba untuk melakukan estimasi nilai frekuensi fundamental dengan menggunakan domain waktu. Dalam hal ini kita memanfaatkan fungsi auto korelasi suatu sinyal wicara. Langkah-langkahnya adalah sebagai berikut:

1. Buat program untuk memanggil file a.wav .2. Tampilkan hasilnya dalam domain waktuk sebagai figure(1)3. Ambil beberapa sampel saja dari nilai a.wav yang sudah anda panggil. Dalam hal ini anda bisa menentukan sebanyak 200, 300, atau terserah anda.4. Tambahkan program untuk mencari bentuk auto korelasinya5. Hitung jarak antar puncak satu dengan puncak berikutnya yang paling dekat. Coba amati juga jarak puncak ke 0, puncak ke 1, puncak ke 2. Arahkan pandangan anda geser ke kiri, perhatikan puncak ke-1, puncak ke-2, dst. Coba anda hitung jarak antar puncak tersebut. Tentu saja nilainya dalam satuan waktu, bisa mili detik atau yang lain.

8.3.4 Karakterisrik Power Spectral Density1. Panggil sinyal wicara a.wav.2. Tampilkan dalam domain waktu dan dalam bentuk sinyal sebagai fungsi sample ke-n.3. Buat sebuah frame sinyal sepanjang 240 sampel, dalam hal ini anda bisa memilih bagian sinyal yang representatif, yang memiliki nilai cukup stabil selama durasi frame yang anda tetapkan panjangnya.4. Transformasikan ke dalam domain frekuensi, anda bisa menggunakan perintah fft atau yang lain.5. Rubah nilainya dalam parameter dB, 20 log10(abs(X))

8.3.5 Mencari Bentuk Cepstal Sinyal Wicara

1. Lakukan hal yang sama seperti pada langkah percobaan 8.3.4, usahakan tampilan yang sudah anda peroleh anda hold supaya gambarnya tidak hilang.2. Tambahkan program untuk melakukan invers fft anda.3. Tampilkan bentuk kuefrensi yang telah anda peroleh, jika terjadi bentuk pencerminan pada sisi kiri dan sisi kanan, ambil sisi kiri saja dan tampilkan kembali dengan mengatur nilai sample tertentu saja yang anda olah.4. Lakukan proses lifter window dengan cara ambil 16 titik nilai kuefrensi pertama saja. Jika anda ragu anda bisa mengambil 20 titik nilai kuefrenensi pertama.5. Transformasikan kembali ke domain fekuensi, dan usahakan gambarnya menjadi satu dengan hasil tampilan PSD yang telah anda peroleh.

8.4 Analisis DataAnda harus menjelaskan tentang proses urutan sesuai dengan diagram blok pada Gambar 8.2. Termasuk menjelaskan masing-masing fungsi blok tersebut. Kemudian dari hasil uji coba yang telah anda lakukan. Apa yang anda peroleh. Berikan penjelasannya.

8.5 Tugas1. Buat program seperti pada langkah-langkah di atas, gunakan sinyal speech dengan merekam sendiri.

TRANSFORMASI FOURIER DISKRIT

Tujuan Praktikum- Mahasiswa mampu memahami konsep dasar transformasi sinyal waktu diskrit - Mahasiswa dapat menyusun program simulasinya.

7.1 Teori DasarSebelum kita berbicara tentang transformasi Foureir Diskrit atau dalam bahasa aslinya disebut sebagai discrete Fourier transform (DFT), marilah kita kembali sejenak tentang sesuatu yang sudah popular di telinga kita yaitu Fourier transform (FT). Transformasi Fourier untuk sebuah sinyal waktu kontinyu x(t) secara matematis dituliskan sebagai

Sementara DFT dibentuk dengan menggantikan integral berhingga dengan sederetan jumlahan pada suatu nilai berhingga:

Simbol memiliki arti equal by definition atau dalam bahasa yang mudah bagi kita adalah bahwa sisi kiri secara definisi akan senilai dengan sisi kanan. Sementara x(tn) selanjutnya akan kita kenal juga sebagai x(n), yang merupakan notasi sample ke-n pada sinyal input. X(k) juga dapat dijumpai sebagai X(k) yang merupakan spektral sample ke-k.Parameter lain yaitu:

j 1 = merupakan dasar dari bilangan komplek. = 2,718281828 ..... k = k = merupakan sample frekuensi ke-k. Sedangkan merupakan interval sampling dalam radian dan memiliki nilai =2/NT. N = merupakan sample frekuensi yang digunakan. T = 1/fs = 1/(sampling rate).

Dengan melihat persamaan di atas jelas bagi kita bahwa DFT memiliki basis sinyal sinusoda dan merupakan bentuk komplek. Sehingga representasi domain frekuensi yang dihasilkan juga akan memiliki bentuk komplek. Dengan demikian anda akan melihat adanya bagian real dan imajiner, dan bisa juga hasil transformasi direpresentasikan dalam bentuk nilai absolute yang juga dikenal sebagai magnitudo respon frekuensinya dan magnitudo respon fase. Selanjutnya untuk proses pengolahan sinyal digital, DFT mutlak diperlukan karena kita akan berhubungan dengan sinyal waktu diskrit, yang merupakan bentuk tersampel dari sinyal waktu kontinyu. Dan dalam praktikum ini kita akan memanfaatkan bentuk dasar library fft yang merupakan pengembangan dari algorithma dasar DFT. Mengapa kita menggunakan fft? Hal ini bisa dijawab dengan anda masuk ke Matlab command like dan ketikkan help fft. Akan muncul keterangan:

FFT Discrete Fourier transform.FFT(X) is the discrete Fourier transform (DFT) of vector X. Formatrices, the FFT operation is applied to each column. For N-Darrays, the FFT operation operates on the first non-singletondimension.FFT(X,N) is the N-point FFT, padded with zeros if X has lessthan N points and truncated if it has more.

Cukup jelas bagi kita mengapa kita bisa memanfaatkan library fft dalam praktikum kali ini.

7.2 Peralatan - PC multimedia yang sudah dilengkapi dengan OS Windows - Perangkat Lunak Matlab yang dilengkapi dengan Tool Box DSP

7.3 Langkah PercobaanSebelum memasuki bentuk DFT yang benar-benar representatif dalam pengolahan ke domain frekuensi yang sebenarnya, kita akan memulai dengan langkah yang paling dasar dengan tujuan anda akan merasa lebih mudah memahaminya bagaimana sebenarnya konsep DFT bekeja.

7.3.1 Dasar Pembentukan DFTDi sini kita mulai dengan mencoba melihat bentuk transformasi Fourier dari sinyal cosinus yang memiliki periode eksak didalam window yang terdapat pada sampel. Langkahnya adalah sebagai berikut:1. Bangkitkan sinyal sinus x(t) = 3cos(2t), pada t = nT. Untuk suatu n = 0~ 99, dan T=0,01.

%File Name: dft_1.m n=0:199; T=0.01; x_t=3*cos(2*pi*n*T); plot(n,x_t) grid;

2. Untuk sementara anda jangan memperhatikan apakah sinyal yang muncul sesuai dengan nilai sebenarnya. Biarkan axis dan ordinatnya masih dalam angka seadanya. Anda ganti bagian perintah plot(n,x_t) dengan stem(n,x_t). Coba perhatikan apa yang anda dapatkan.

3. Untuk memulai langkah program DFT, kita mulai dengan membuat program baru, yang mengacu pada bentuk persamaan berikut ini.

Atau dalam bentuk riel dan imaginer adalah:

%File Name: dft_2.mclear all;N=200;nn=N-1;for k=1:200;x_n=0.0;for n=1:nnx_n = (3*cos(0.02*pi*n)).*(exp(-j*k*2*pi*n/200)) + x_n;endyR(k)=real(x_n);yI(k)=imag(x_n);magni_k(k)=sqrt(real(x_n).*real(x_n) +imag(x_n).*imag(x_n));endfigure(1)stem(yR)axis([0 200 0 800])xlabel('indek fekuensi')title('Bagian Real')grid;figure(2)stem(yI)axis([0 200 0 800])xlabel('indek frekuensi')title('Bagian Imajiner')grid;

Anda perhatikan ada dua nilai non-zero dalam domain frekuensi indek, tepatnya pada n=2 dan n=N-2 atau 198, masing-masing bernilai 300. Nilai ini merepresentasikan AN/2, dimana A=3 yang merupakan amplitudo sinyal cosinus dan N = 200 merupakan jumlah sample yang digunakan. Sementara bagian imajiner bernilai nol semua, mengapa?

Gambar 10.1. Bagian Real pada Domain Frekuensi

Anda perhatikan ada dua nilai non-zero dalam domain frekuensi indek, tepatnya pada n=2 dan n=N-2 atau 198, masing-masing bernilai 300. Nilai ini merepresentasikan AN/2, dimana A=3 yang merupakan amplitudo sinyal cosinus dan N = 200 merupakan jumlah sample yang digunakan. Sementara bagian imajiner bernilai nol semua, mengapa?

Gambar 10.2. Bagian Imajiner pada Domain Frekuensi

4. Coba ulangi langkah 1-3 dengan merubah dari sinyal cosinus menjadi sinyal sinus. Untuk langkah k-1 anda rubah

x_t=3*cos(2*pi*n*T); menjadi x_t=3*sin(2*pi*n*T);

Demikian juga pada untuk langkah ke-3 bentuk

x_n = (3*cos(0.02*pi*n)).*(exp(-j*k*2*pi*n/200)) + x_n;

menjadi

x_n = (3*sin(0.02*pi*n)).*(exp(-j*k*2*pi*n/200)) + x_n;

Apa yang anda dapatkan?

5. Ulangi langkah 1-3 dengan merubah nilai sample N=200, menjadi N=1000. Apa yang anda dapatkan?

7.3.2 Zero Padding

Kita mulai dengan sebuah sinyal waktu diskrit berupa sekuen unit step.

Gambar 10.3. Sekuen Unit Step

Apabila kita menggunakan transformasi Fourier pada sinyal ini, akan diperoleh bentuk seperti berikut:

Gambar 10.4. Transformasi Fourier Sekuen Unit

Untuk memahami konsep zero padding pada DFT, anda ikuti langkah-langkah percobaan berikut ini.1. Buat program baru untuk pembangkitan sekuen unit step dan gunakan juga fft untuk memperoleh nilai DFT.2. Modifikasi program anda dengan menambahkan nilai nol sebanyak 4 angka di belakang sekuen bernilai satu tersebut.3. Modifikasi program anda sehingga nilai nol dibelakang sekuen unit step menjadi 12, catat apa yang terjadi.4. Lanjutkan penambahan nilai nol menjadi 16, dan catat apa yang terjadi.

Gambar 10.5. Sekuen Unit Step dan Hasil DFT

7.3.3 Representasi Dalam Domain FrekuensiCara yang paling mudah dalam menguji program transformasi ke domain frekuensi adalah dengan menggunakan sinyal bernada tunggal, yaitu sinyal dengan fungsi dasar sinusoida. Untuk itu coba anda perhatikan dengan yang telah anda lakukan pada percobaan ke-1, yaitu pada pemahaman dasar DFT. Disitu sinyal cosinus yang ditransformasikan menghasilkan bentuk dalam tampilan indek frekuensi. Dengan mengkobinasikan percobaan ke-1 dan percobaan ke-2 kita akan mampu menyusun sebuah program DFT yang mampu digunakan untuk pengamatan sinyal waktu diskrit dan melihat tampilannya dalam domain frekuensi. Untuk itu ikuti langkah berikut.

1. Susun sebuah program baru dengan algorithma yang merupakan kombinasi dari percobaan ke-1 dan percobaan ke-2.

%prak_SS_7_2.m% zero-padded data:clear allT = 128; % sampling ratezpf = 2; % zero-padding factorn = 0:1/T:(T-1)/T; % discrete time axisfi = 5; % frequencyxw = [sin(2*pi*n*fi),zeros(1,(zpf-1)*T)];nn=length(xw);k=0:nn-1;% Plot time data:subplot(2,1,1);plot(zpf*k/nn,xw);%normalisasi absis domain waktuaxis([0 zpf -1.1 1.1])xlabel('domain waktu (detik)')% Smoothed, interpolated spectrum:X = fft(xw);spec = abs(X);f_X=length(X)f=0:f_X-1;% Plot spectral magnitude:subplot(2,1,2);plot(f/T,spec);axis([0 T/T 0 100])xlabel('domain frekuensi (x pi), ternormalisasi terhadap frekuensi sampling')

Gambar 10.6. Sinyal Sinus dalam Domain Waktu dan Hasil DFT

2. Lakukan beberapa modifikasi, sehingga tampilannya nilai frekuensi dalam Hz.

% Plot spectral magnitude: subplot(2,1,2); plot(f/2,spec); axis([0 T/2 0 100]) xlabel('domain frekuensi')

Amati dan catat hasilnya.

3. Lakukan modifikasi kembali untuk mendapatkan nilai magnitudo dalam besaran dB

% Plot spectral magnitude: subplot(2,1,2); plot(f/2,spec); axis([0 T/2 0 40]) xlabel('domain frekuensi dalam dB') grid Amati dan catat hasilnya

4. Sekarang coba bangkitkan sebuah sinyal sinus dan dapatkan nilai frekuensinya dengan memanfaat- kan DFT. Dimana sinyal sinus ini memiliki bentuk dasar sebagai berikut. x(n) = (1/64)*(sin(2**n/64)+ (1/3)*sin(2*15*n/64))

7.4 Analisis DataDari apa yang telah anda lakukan anda catat hasilnya, analisis. Kemudian tunjukkan, pengetahuan apa yang telah anda dapatkan setelah melakukan percobaan DFT di atas. Beri contoh memanfaatkan DFT.

7.5 Tugas1. Apa yang dimaksud dengan zero padding?2. Apa pengaruh perbedaan nilai zero padding pada tampilan sinyal dalam domain frekuensi?3. Berapa sample yang dipersyaratkan dalam operasi DFT?4. Apa perbedaan tampilan nilai frekuensi dalam radiant dan tampilan frekuensi dalam Hz?5. Apa yang dimaksud tampilan nilai magnitudo dalam dB?6. Sebuah system LSI ditunjukkan dengan system LCCDE. Y(n) = 0,5(n-1) + bx(n)Tentukan nilai dari b sehingga |H(ej)| adalah sama dengan satu pada = 0, dan tentukan titik setengah daya ( yaitu frekuensi pada |H(ej)|2 adalah sama dengan satu setengah dari nilai puncaknya, yang mana terjadi pada = 0.

7. Jika suatu system didefinisikan dengan persamaan diferensial:y(n) = ay(n-1) + bx(n) + x(n-1)Dimana a dan b adalah tiel, dan |a| b

Operasi Min/Irisana U b = min(a,b) = a if a b dan b if a < bProses operasi penalaran max-min dapat dijelaskan dengan grafik berikut ini:

Gambar 13.5 Operasi Max-Min Secara Grafis

Deffuzifikasi. Merupakan proses pemetaan fuzzy kehimpunan tegas (crips). Proses ini merupakan kebalikan dari proses fuzzyfikasi. Proses defuzzifikasi dinyatakan sebagai berikut:Z* = defuzzier ZDimana:Z = Hasil penalaran fuzzyZ* = Keluaran kontrol FL

Metode dalam melakukan defuzzifikasi antara lain:1. Metoda Max (Maximum)Metoda ini juga dikenal dengan metoda puncak dimana nilai keluaran dibatasi oleh fungsi: c(z*) > c 1 (z)2. Metoda Titik Tengah (Center of Area)Metoda ini juga disebut puat area. Ini lazim dipakai dalam proses defuzzikasi. Metoda ini diekspresikan dengan persamaan berikut:

3. Metoda Rata-rata (Average)Metoda ini digunakan untuk fungsi keanggotaan keluaran yang simetris. Peersamaan dari metoda ini adalah:

4. Metoda Penjumlahan Titik Tengah (Summing of Center Area)

Metoda ini dinyatakan dengan persamaan:

5. Metoda Titik Tengah Area TerbesarDalam Metoda ini dipilih beradasarkan titik pusat area terbesar yang ada. Metoda ini dinyatakan dalam bentuk:

Selanjutnya keluaran dari defuzzifikasi tersebut akan digunakan sebagai KLF

13.1.2 Sistem Adaptif Neuro FuzzyAdaptive Neuro-Fuzzy Inference System (ANFIS) adalah penggabungan mekanisme sistem inferensi fuzzy yang digambarkan dalam arsitektur jaringan syaraf. Sistem adaptif neuro fuzzy berbasis inferensi fuzzy mempunyai dua parameter; yaitu parameter premis dan konsekuensi. Dalam pelatihan ini dilakukan dua arah yaitu langkah maju dan langkah balik. Berikut ini ditunjukkan contoh mekanisme inferensi fuzzy Tagaki-Sugeno-Kang (TSK) orde satu dengan dua masukan x dan y (Gambar 13.6). Basis aturan dengan dua aturan fuzzy if-then sebagai berikut:Rule 1 : if x is A1 and y is B1 then f1 = p1x + q1y + r1 premis consequentRule 2 : if x is A2 and y is B2 then f2 = p2x + q2y + r2 premis consequentInput : x dan y. Consequent-nya adalah f

Gambar 13.6 Sistem Inferensi Fuzzy TSK Dua Masukan dengan Dua Aturan

Pada suatu masukan crisp (tidak fuzzy) x dan y. x adalah harga variabel yang dikontrol yaitu pada saat ke t, dan y pengukuran pada saat ke t+1 sedangkan f adalah nilai tegangan yang diberikan sebagai sinyal kontrol. Harga x dan y tersebut jelas bukan fuzzy. Lalu nilai x dan y tersebut dipetakan pada funggsi keanggotaannya.Tiap input dibagi jadi 2 fungsi keanggotaan, x dibagi dalam A1 dan A2. A1 menyatakan small dan A2 menyatakan big. Begitu juga y dibagi dalam fungsi keanggotaan B1 yang menyatakan small dan B2 yang menyatakan big.Dari pemetaan tersebut x dan y sudah jadi variabel fuzzy yang masing-masing punya nilai small dan big tertentu. Variabel x mempunyai nilai mA1 dan mA2 sedangkan y punya nilai mB1 dan mB2. Nilai masing-masing pasangan masukan tersebut diagregasi dengan operasi T-norm, misalnya operasi AND. Jadi w1 = (mA1 AND mA2) sedangkan w2 = (mB1 AND mB2). Dari basis aturan yang sudah dibuat, diketahui:if w = w1 then f1 = p1x + q1y + r1if w = w2 then f2 = p2x + q2y + r2Jadi hasil akhirnya adalah f1 dan f2, yang merupakan nilai keluaran sinyal control.Paramter p1, q1, r1, p2, q2, dan r2 namanya parameter konsekuen yang ditentukan dengan nilai awal tertentu dan akan berubah dengan pembelajaran (algoritma belajar). Selanjutnya dari nilai f1 dan f2 ini kita perlu mendapatkan satu nilai tegangan sebagai sinyal kontrol. Nah nilai akhir tersebut dihitung dengan persamaan:

Ini yang disebut sebagai defuzzyfikasi. Rumus tersebut diperoleh dari metode rata-rata tengah (centroid).

Arsitektur ANFISStruktur ANFIS yang menggambarkan sistem fuzzy TSK ditunjukan pada Gambar 13.7, yang dikenal sebagai arsitektur jaringan syaraf feedforward seperti ini. Diagram blok terdiri dari lima lapis, dan pada setiap lapis terdapat node. Terdapat dua macam node yaitu node adaptif dan node tetap.

Gambar 13.7. Arsitektur ANFIS

Fungsi dari setiap lapis adalah sebagai berikut (Widodo, Thomas Sri; 2005):Lapis 1 : Setiap node i pada lapis 1 ini adalah node adaptif dengan fungsi node sebagai berikut:O1i = Ai(x) untuk i = 1, 2 dan O1i = Bi-2(y) untuk i = 3, 4 Dengan x dan y adalah masukan pada simpul i, Ai (atau Bi-2) adalah fungsi keanggotaan masing-masing simpul yang merupakan label linguistik yang terkait dengan node tersebut. Simpul O1,i berfungsi untuk menyatakan derajat keanggotaan tiap masukan terhadap himpunan fuzzy A1, A2, atau B1, B2. Fungsi keanggotaan yang dipakai adalah jenis generalized bell (gbell). Parameter a, b, c, pada fungsi keanggotaan gbell dinamakan parameter premis yang adaptif. Fungsi keanggotaan fuzzy input (premis) yang digunakan adalah fungsi Generalized-Bell:

Fungsi Generalized-Bell akan dipakai sebagai fungsi keanggotaan dari masukan, dan ditentukan sekehendak sebagai parameter awal a, b, c dan jumlah himpunan fuzzy input. Nantinya parameter premis a,b,c akan diubah dengan cara pembelajaran.Lapis 2Semua simpul pada lapisan ini adalah nonadaptif (parameter tetap). Fungsi simpul ini adalah mengalikan setiap sinyal masukan yang datang. Fungsi simpul:O2i = wi = Ai(x). Bi(y), i = 1,2 Setiap node dari lapis ini menyatakan kuat penyulutan dari aturan.Lapis 3Tiap keluaran simpul menyatakan derajat pengaktifan tiap aturan fuzzy. Fungsi ini dapat diperluas apabila bagian premis memiliki lebih dari dua himpunan fuzzy. Banyaknya simpul pada lapisan ini menunjukkan banyaknya aturan yang dibentuk. Fungsi perkalian yang digunakan adalah kata hubung and dengan menggunakan operator t-norm.Setiap simpul pada lapisan ini adalah nonadaptif yang menampilkan fungsi derajat pengaktifan ternomalisasi (normalized firing strength) yaitu rasio keluaran simpul ke-i pada lapisan sebelumnya terhadap seluruh keluaran lapisan sebelumnya, dengan bentuk fungsi simpul:

Apabila dibentuk lebih dari dua aturan, fungsi dapat diperluas dengan membagi wi dengan jumlah total w untuk semua aturan. Keluaran lapis ini disebut kuat penyulutan ternormalisasiLapis 4Setiap node pada lapis ini adalah node adaptif dengan fungsi node:O4,i = wi fi = wi(pix + qiy + ri ) Dengan Wi : kuat penyulutan ternormalisasi dari lapis 3(pi, qi, ri ) : himpunan parameter dari node. Parameter pada lapis ini dise-but sebagai parameter konsekuensi yang adaptif.

Lapis 5Node tunggal pada lapis ini adalah node tetap berlabel yang menghitung keluaran keseluruhan sebagai penjumlahan semua sinyal yang datang. Fungsi simpul:

Jaringan adaptif dengan lima lapisan tersebut ekivalen dengan sistem inferensi fuzzy TSK.

Algoritma Pelatihan HibridPada struktur ANFIS Gambar 13.8, simpul adaptif terdapat pada lapisan pertama dan keempat. Simpul pada lapisan pertama mengandung parameter premis yang nonlinier sedangkan pada lapisan keempat mengandung parameter konsekuen yang linier. Untuk memperbaharui parameter itu, maka perlu metoda atau algoritma untuk itu. Metoda pembelajaran jaringan syaraf tiruan banyak macamnya, dan masing2 punya kelebihan dan kekurangan. 13.2 Peralatan- PC multimedia yang sudah dilengkapi dengan OS Windows- Perangkat Lunak Matlab yang dilengkapi dengan Tool Box DSP

13.3 Langkah Percobaan 13.3.1 Langkah Percobaan Fuzzy

1. Berikut ini akan dibuat pernyataan untuk pendefinisian. Fungsi keanggotaan dan aturan dasar (rule) yang mendefinisikan fungsi keluaran. Buatlah program berikut:

subplot(2,1,1), plotmf(fismat,'input',1)subplot(2,1,2),gensurf(fismat)showrule(fismat)jalankan dan amati apa yang terjadi. Juga lihat pada command window, apa yang ditampilkan?.2. Berikutnya, lakukan pembuatan program seperti berikut dan kemudian jalankan.

a=newfis('tipper');a=addvar(a,'input','service',[0 10]);a=addmf(a,'input',1,'poor','gaussmf',[1.5 0]);a=addmf(a,'input',1,'good','gaussmf',[1.5 5]);a=addmf(a,'input',1,'excellent','gaussmf',[1.5 10]);plotmf(a,'input',1)apa yang ditampilkan?.

13.3.2 Langkah Percobaan ANFIS1. Berikutnya, lakukan pembuatan program seperti berikut dan kemudian jalankan.x = (0:0.1:10); y = sin(2*x)./exp(x/5);trnData = [x y];numMFs = 5;mfType = 'gbellmf';epoch_n = 20;in_fismat = genfis1(trnData,numMFs,mfType);out_fismat = anfis(trnData,in_fismat,20);plot(x,y,x,evalfis(x,out_fismat));legend('Training Data','ANFIS Output');jelaskan hasil tampilannya?.Ulangi untuk program berikut:x = (0:0.1:10)';z = 0.1*sin(200*x) % noisey = sin(2*x)./exp(x/5)+z; % sinyal + noisetrnData = [x y];numMFs = 5;mfType = 'gbellmf';epoch_n = 20;in_fismat = genfis1(trnData,numMFs,mfType);out_fismat = anfis(trnData,in_fismat,20);plot(x,y,x,evalfis(x,out_fismat)); legend('Training Data','ANFIS Output');jelaskan hasil tampilannya?.Ulangi untuk program berikut:x = (0:0.1:10);z = 0.1*sin(200*x) % noisey = sin(2*x)./exp(x/5)+z; % sinyal + noisetrnData = [x y];numMFs = 5;mfType = 'gbellmf';epoch_n = 20000;in_fismat = genfis1(trnData,numMFs,mfType);out_fismat = anfis(trnData,in_fismat,20);plot(x,y,x,evalfis(x,out_fismat)); legend('Training Data','ANFIS Output');jelaskan hasil tampilannya?.2. Berikutnya, lakukan pembuatan program seperti berikut dan kemudian jalankan.x=0:0.1:5;mfp1 = [1 2 3];mfp2 = mf2mf(mfp1,'gbellmf','trimf');plot(x,gbellmf(x,mfp1),x,trimf(x,mfp2))jelaskan hasil tampilannya?.2. Berikutnya, lakukan pembuatan program seperti berikut dan kemudian jalankan.for t=118:1117,Data(t-117,:)=[x(t-18) x(t-12) x(t-6) x(t) x(t+6)];endtrnData=Data(1:500, :);chkData=Data(501:end, :);fismat = genfis1(trnData);subplot(2,2,1)plotmf(fismat,' input', 1)subplot(2,2,2)plotmf(fismat,' input', 2)subplot(2,2,3)plotmf(fismat,' input', 3)subplot(2,2,4)plotmf(fismat,' input', 4)jelaskan hasil tampilannya?.3. Berikutnya sebuah program yang harus anda coba, tapi sebelumnya anda harus menyiapkan hal-hal sebagai berikut:1) buat sebuah file gambar dan beri nama: 'GambarParameter.jpg' dan Gambar_Tunggu.jpg, simpan pada work dari MATLAB.2) Buat file data dengan nama DataPelatihan1 DataPelatihan2, DataPelatihan3, DataPelatihan4, DataTarget.3) buat program dengan nama Proses_Anfis.m, seperti ditunjukkan pada program di bawah. simpan pada work dari MATLAB.4) Lalu buat program seperti berikut ini dengan nama: Anfis_Parameter.m, dan jalankan.%--------------------------------------------------------% Nama File : Anfis_Parameter.m% Oleh : Yulianto%--------------------------------------------------------winAnfisProses=figure(... 'unit','point','position',[230 130 410 310],... 'color',[.8 .8 .9],'menubar','none','resize','on',... 'numbertitle','off','name','Paramter Anfis',... 'WindowStyle','normal');grafikAnfis21=axes('parent',winAnfisProses,... 'units','point','position',[0 0 410 310],... 'xgrid','on','ygrid','on','xcolor',[.8 .8 .9 ],... 'ycolor',[.8 .8 .9 ],'fontsize',10,... 'color',[.8 .8 .9]),'backgroundColor',[.8 .8 .9];editInputWav1=uicontrol('parent',winAnfisProses,... 'unit','point','position',[330 5 70 15],... 'backgroundColor',[.5 .8 1],'string','JALANKAN',... 'fontname','fixedsys','fontsize',9,'callback','Proses_Anfis');editAnfis23=uicontrol('parent',winAnfisProses,... 'unit','point','position',[143 198 60 18],'Style','Text',... 'backgroundColor',[1 1 1],'string','numMFs',... 'fontname','arial black','fontsize',10)editAnfis24=uicontrol('parent',winAnfisProses,... 'unit','point','position',[205 198 60 17],... 'Style','Edit','backgroundColor',[.2 .9 .2],... 'string','2','fontname','arial black','fontsize',10);editAnfis25=uicontrol('parent',winAnfisProses,... 'unit','point','position',[143 180 60 18],'Style','Text',... 'backgroundColor',[1 1 1],'string','mfType',... 'fontname','arial black','fontsize',10)editAnfis26=uicontrol('parent',winAnfisProses,... 'unit','point','position',[205 180 60 17],... 'Style','Edit','backgroundColor',[.2 .9 .2],... 'string','gbellmf','fontname','arial black','fontsize',10);editAnfis27=uicontrol('parent',winAnfisProses,... 'unit','point','position',[118 163 85 17],'Style','Text',... 'backgroundColor',[1 1 1],'string','num_epochs',... 'fontname','arial black','fontsize',10)editAnfis28=uicontrol('parent',winAnfisProses,... 'unit','point','position',[205 163 60 17],... 'Style','Edit','backgroundColor',[.2 .9 .2],... 'string','500','fontname','arial black','fontsize',10);editAnfis29=uicontrol('parent',winAnfisProses,... 'unit','point','position',[139 146 65 18],'Style','Text',... 'backgroundColor',[1 1 1],'string','err_goal',... 'fontname','arial black','fontsize',10)editAnfis20=uicontrol('parent',winAnfisProses,... 'unit','point','position',[205 146 60 17],... 'Style','Edit','backgroundColor',[.2 .9 .2],... 'string','0.001','fontname','arial black','fontsize',10);[a,MAP]=IMREAD('GambarParameter.jpg'); image(a); grid off;

Program ke 2 yang harus anda simpan terlebih dahulu dalam work dari MATLAB.

%-----------------------------------------------------------------------------------------% Nama File : Proses_Anfis.m% Oleh : Yulianto%-----------------------------------------------------------------------------------------Anfis1=str2num(get(editAnfis24Baru,'String')); num_mf = Anfis1;Anfis2=get(editAnfis26Baru,'String'); mf_type= Anfis2;Anfis3=str2num(get(editAnfis28Baru,'String')); num_epochs= Anfis3;Anfis4=str2num(get(editAnfis20Baru,'String')); err_goal= Anfis4;pilihanAnfisBaru=(get(editAnfis22Baru,'Value'));load DataPelatihan1;DataLatih1=DataPelatihan1;load DataPelatihan2;DataLatih2=DataPelatihan2;load DataPelatihan3;DataLatih3=DataPelatihan3;load DataPelatihan4;DataLatih4=DataPelatihan4;load DataTarget;DataTarget=DataTarget;t=length(DataTarget);ii=1:1:t;i=find(ii