Pages

Popular Posts

PENGOLAHAN SINYAL DIGITAL-Dasar Perhitungan dalam Matlab


MODUL I
DASAR PERHITUNGAN DALAM MATLAB
1.1 TUJUAN KHUSUS
Setelah praktikum ini dilakukan mahasiswa diharapkan mampu mengoperasikan matlab dan memanfaatkannya sebagai perangkat simulasi untuk praktikum Pengolahan Sinyal Digital.
1.2 DASAR TEORI
1.2.1 Kelengkapan pada Sistem Matlab
Sebagai sebuah system, Matlab tersusun dari 5 bagian utama, yaitu:
    1.      Development Environment
Merupakan sekumpulan perangkat dan fasilitas yang membanti kita untuk menggunakan fungsi-fungsi dan file-file matlab. Beberapa perangkat ini merupakan sebuah Graphical User Interface (GUI). Termasuk di dalmnya adalah matlab desktop dan command window, command history, sebuah editor dan debugger, dan browsers untuk melihat help, workspace, files, dan search path.
   2.      Matlab Mathematical Function Library
Merupakan sekumpulan algoritma komputasi mulai dari fungsi-fungsi dasar seperti sum, sin, cos, dan complex arithmetic, sampai dengan fungsi-fungsi yang lebih komplek seperti matrix inverse, matrix eigenvalues, Bessel functions, dan fast fourier transforms.
    3.      Matlab Language
Merupakan suatu high-level matrix/array language dengan control flow statements, functions, data structures, input/output, dan fitur-fitur objek-oriented programming. Ini memungkinkan kita untuk melakukan kedua hal baik “pemrograman dalam lingkup sederhana” untuk mendapat hasil yang cepat, dan “pemrograman dalam lingkup yang besar” untuk memperoleh hasil-hasil dan aplikasi yang komplek.
   4.      Graphics
Matlab memiliki fasilitas untuk menampilkan vector dan matrices sebagai suatu grafik. Di dalamnya melibatkan high-level functions (fungsi-fungsi level tinggi) untuk visualisasi data dua dimensi dan data tiga dimensi, image processing, animation, dan presentation graphics. Ini juga melibatkan fungsi level rendah yang memungkinkan bagi kita untuk membiasakan diri untuk memunculkan grafik mulai dari bentuk yang sederhana sampai dengan tingkatan graphical user interface pada aplikasi matlab.
   5.      Matlab Aplication Program Interface (API)
Merupakan suatu library yang memungkinkan program yang telah kita tulis dalam bahasa C dan fortran mampu berinteraksi dengan matlab. Ini melibatkan fasilitas untuk pemanggilan routines dari matlab (dynamic linking), pemanggilan matlab sebagai computational engine, dn untuk membaca dan menuliskan MAT-files.
1.2.2 Jenis Data yang Dikenal dalam Matlab
1. Data numeric tunggal
2. Data matriks
3. Data String
 1.2.2.1 Data Numerik Tunggal
Untuk mendefinisikan data numeric tunggal, kita dapat menulis :
Perintah di atas berarti bahwa variable a mempunyai nilai 5.
Operasi yang pada data numeric tunggal adalah operasi aritmatika biasa, yang terdiri atas :
+ = penjumlahan
-= pengurangan
*= perkalian
/ = pembagian kanan
\ = pembagian kiri
^ = perpangkatan
Agar lebih jelasnya, kita dapat melihat contoh berikut :
 
1.2.2.2 Data Matriks
Untuk Mendefenisikan data matriks, kita dapat menulis :
atau
Perintah di atas berarti bahwa variable b berupa matriks dengan nilai setiap elemennya tertentu. Sebagai pemisah antar baris, kita menggunakan tanhda “;” (titik koma), sedangkan pemisah antar kolom adalah tanda ‘’ (spasi) atau ‘,’ (koma).
Operasi yang digunakan pada data matriks seperti pada operasi matriks biasa, yaitu:
n  +          : penjumlahan matriks
n  -           : pengurangan matriks
n  *          : perkalian matriks
n  .*         : perkalian setiap elemen
n  /           : pembagian kanan matriks
n  ./          : pembagian kanan setiap elemen matriks
n  \           : pembagian kiri matriks
n  .\          : pembagian kiri setiap elemen matriks
n  ^          : perpangkatan matriks atau perkalian matriks sebanyak n kali
n  .^         : perpangkatan setiap elemen matriks dengan bilangan tertentu
n  .           : transpose matriks
n  Inv       : invers matriks
Agar lebih jelas, kita dapat melihat contoh berikut:
               
1.2.2.3 Data String
Untuk mendefenisikan data string, kita dapat menuliskan:
>> h = 'Matlab'
h =
Matlab
Perintah di atas berarti bahwa variable h berisi string Matlab.
Operasi pada string sebagai berikut:
n  Strcat   : menggabungkan dua atau lebih kata
n  Double            : mengubah karakter menjadi bilangan ASCII
Agar lebih jelas, kita dapat melihat contoh berikut:
1.3 DAFTAR ALAT DAN BAHAN
Adapun daftar alat dan bahan yang digunakan adalah:
-          PC yang dilengkapi dengan perangkat multimedia (sound card, microphone, speaker active, atau headset)
-          Sistem operasi windows dan perangkat lunak matlab yang dilengkapi dengan toolbox DSP
1.4 LANGKAH PERCOBAAN
1.4.1 Memulai Matlab
Perhatikan desktop pada layar monitor PC, mulai matlab dengan menlakukan double-click pada shortcut icon matlab.
Gambar 1. Icon matlab pada desktop PC
Setelah itu akan didapatkan tampilan seperti pada gambar 2. Sedangkan untuk mengakhiri sebuah sesi matlab, kita bias melakukan dengan dua cara, pertama pilih File->Exit matlab dalam window utama matlab yang sedang aktif, atau cara kedua lebih mudah yaitu cukup ketikka type quit dalam command window.
Gambar 2. Tampilan awal matlab
1.4.2 Menentukan Direktori Tempat Bekerja
Kita dapat bekerja dengan matlab secara default pada directory work ada di dalam folder matlab, tetapi akan lebih bagus dan rapi jika kita membuat satu directory khusus dengan nama yang sudah kita khususkan, “latihan-1” atau nama yang lain yang mudah untuk diingat. Hal ini akan lebih baik lagi kita untuk membiasakan bekerja secara rapid an tidak mencapur program yang kita buat dengan program orang lain. Untuk itu arahkan pointer mouse pada kotak beranda … yang ada di sebelah kanan tanda panah ke bawah (yang menunjukkan folder yang sedang aktif). Pilih new directory, selanjutnya ketikkan “dargombes”, dan diikuti dengan klik Ok.
Gambar 3. Membuat folder baru tempat program
1.4.3 Memulai Perintah Sederhana
Langkah kita yang pertama adalah dengan menentukan variable scalar dengan cara melakukan pengetikan seperti berikut:
Tidak terlalu sulit bagi kita untuk melakukannya. Kita coba dengan cara berikutnya. Disini kita mulai dengan mendefinisikan dua buah vector, yaitu vector x dan vector y.
Selanutnya ketik:
 
Matlab menggunakan integer positif untuk index array. Elemen pertama adalah y(1), elemen kedua adalah y(2), dan seterusnya. Nomor 1 atau bilangan negative tidak diperbolehkan untuk index array. Sekarang kita jumlahkan keduanya:
Dan sekaran hitung inner product:
Jawabannya adalah 1*4+2*5+3*6. Catat, bahwa y’ adalah transpose pada y dan merupakan suatu vector kolom. Untuk memeriksanya, ketikkan perintah berikut:
Cara lain pada pengkombinasian dua vector adalah dilakukan memalui perkalian elemen demi elemen:
Catat periode sebelum perkalian symbol. Sekarang kita dapat mendefinisikan suatu matrix:
Catat bahwa matrix tidak diulang kalau kita menggunakan semi colon. Sekarang kalikan A dengan transpose dari x:
Sekarang kita harus mentranspose x untuk memenuhi perkalian suatu matrik dan suatu vector kolom. Matrik-matrik ini dapat juga dikalikan satu sama lain diantara mereka:
Sekarang lakukan penjumlahan A dan B:
Baiklah, kita tidak dapat menambah suatu matrik 3 kali 3 dengan matrix 3 kali 4 , dan Matlab akan mendeteksi dimensi yang mismatch dan selanjutnya memeberikan pesan error. Sekarang kita cari cara lain untuk mendefinisikan matrik dan vektor. Sebagai contoh suatu matrik nol dengan dimensi 3 baris dan 6 kolom dapat dinyatakan sebagai:
>> zeros(3,6)
 ans =
     0     0     0     0     0     0
     0     0     0     0     0     0
     0     0     0     0     0     0
tentu saja jika anda tambahkan suatu ";"  setelah zeros(3,6), jawabannya tidak akan ditampilkan di layar monitor anda. Angka pertama, 3 menunjukkan jumah baris, sedangkan angka kedua, 6, adalah jumlah kolom. Kita dapat pula melakukan hal yang sama untuk menampilkan angka satu seperti berikut:
>> ones(3,6)
 ans =
     1     1     1     1     1     1
     1     1     1     1     1     1
     1     1     1     1     1     1
Pendefinisian Vektor-vektor Besar
Suatu vektor 1 kali 100 yang menyusun sample pada sinyal cosinus dapat dibangkitkan dengan 
>> x = cos(0.1*pi*(0:99));
bilangan kedua mengindikasikan step kenaikan dari dari 1 sampai 50. Untuk membangkitkan suatu fungsi "ramp" dari 1 sampai 50 coba berikut ini:
>> x = [1:1:50];
Kita bias juga secara khusus mendefinisikan suatu rentang nilai pada x sebagai:
Ini merupakan metode yang sangat bermanfaat untuk mensepsifikasikan nilai ‘waktu’ untuk penggambaran. Sebagai contoh, ditetapkan interval sampling dalam contoh di atas dalam 1 detik. Selanjutnya kita dapat mendefinisikan sebagai berikut:
>> time = [0:0.001:0.099];
1.4.5 Penggambaran Grafik
Salah satu kelebihan dari matlab adalah kemudahan dalam mengolah grafik. Sehingga kita tidak perlu kesulitan untuk melihat suatu respon system, misalnya pada kasus melihat bentuk sinyal dalam domain waktu kita cukup mengikuti langkah berikut:
Ini akan menghasilkan gambar sebagai berikut
Gambar 4. Contoh tampilan grafik sederhana dengan perintah plot
Sedangkan cara untuk menampilkan sederetan nilai fungsi waktu diskrit adalah dengan menggunakan perintah “stem”. Dari contoh deretan perintah, kita rubah beberapa bagian dengan perintah berikut:
Hasilnya adalah sebagai berikut:
Gambar 5. Contoh tampilan grafik dengan perintah stem
1.4.6 Menyusun Program Sederhana
Kita dapat mengedit suatu file text yang tersusun dari beberapa perintah matlab. Ini dapat dilakukan dengan menekan double-click pada icon “New M-File” icon in the matlab toolbar. Selanjutnya kita akan mendapatkan sebuah tampilan matlab editor yang masih kosong.
Gambar 6. Langkah awal menyusun program sederhana
Selanjutnya buat program seperti pada contoh sebelumnya.
Gambar 7. Contoh pembuatan program pada matlab editor
Lanjutkan dengan menekan toolbar debug, dan jangan lupa pilih Save dan Run. Disitu kita harus menuliskan nama program. Kita tuliskan coba_1, secara otomatis akan menjadi file coba_1.m dan akan kita lihat tampilan hasilnya.
Gambar 8. Tampilan hasil file coba_1
Program kedua
Cobalah untuk membuat program seperti berikut ini pada matlab editor, dan jangan lupa simpan dengan nama Latih_2
x(1:52)=[0 0 1:1:50];
x(53:102)=[50:-1:1];
h=[1 2];
for n=3:101,
    y(n)=0;
    for m=1:2,
        y(n)=y(n)+h(m)*x(n-m);
    end
end
plot(y)

hasilnya:
Gambar 9. Tampilan file Latih_2
Dalam hal ini kita harus memahami arti setiap perintah yang kita tuliskan dalam matlab, tidak ada salahnya kita bertanya kepada instruktur apa arti perintah-perintah tersebut.
Program ketiga
Satu contoh lain program untuk for adalah pembangkitan gambar seperti berikut:
n=201;
delx=10/(n-1);
for k=1:n
    x(k)=(k-1)*delx;
    y(k)=sin(x(k))*exp(-0.4*x(k));
end
%plot(x,y)
plot(x,y,'linewidth',4)
title('Grafik yang pertama')
label('x');ylabel('y');
Gambar 10. Tampilan file coba_3
1.4.7 fungsi dalam Matlab
Matlab juga mampu untuk menuliskan fungsi yang didefinisikan oleh pemakainya. Buat sebuah fungsi dengan menuliskan program berikut ini:
function y=x2(t)
            y=t^2;

1 comments:

Jaka said...

apa tidak ada analisanya?

Post a Comment