PSD Pengenalan Matlab
PSD Pengenalan Matlab
Abstrak—Pada praktkum Modul I ini dilakukan beberapa Developer environment, yaitu kumpulan semua alat-
percobaan yaitu pertama dilakukan pembuatan sinyal alat dan fasilitas untuk membantu user dalam
input filter yang berasal dari hasil superposisi tiga buah menggunakan fungsi dan file MATLAB.
sinyal sinusoidal dengan frejuensi yang berbeda-beda The MATLAB mathematical function library, yaitu
menggunakan frekuensi sampling 16 Khz. Sinyal hasil koleksi semua algoritma komputasi.
superposisi tersebut selanjutnya diplot kedalam sebuah The MATLAB language, yaitu Bahasa matriks/array
grafik dan diamati pula respon frekuensinya. Percobaan level tinggi dengan contoh flow, fungsi, struktur data,
kedua yaitu pembuatan filter dengan fungsi FIR1 ber orde input/output, dan fitur objek programing lainnya.
32 yang terdiri dari filter low-pass, band-pass, dan high- Graphics, yaitu fasilitas untuk menmpilkan vector dan
pass filter. Lalu diamati frekuensi respon untuk masing- matriks sebagai grafik
masing filter yang telah dibuat. Percobaan ketiga yaitu The MATLAB application program interface (API),
melakukan desain dan simulasi menggunakan FIR2. yaitu paket yang memungkinkan user menulis Bahasa
Pembuatan filter dilakukan dengan metode frekuensi c dan fortran yang berinteraksi dengan MATLAB.
sampling menggunakan respon frekuensi filter yang
berasal dari gambar. Perancangan filter tersebut dilakukan Tujuan yang ingin dicapai pada modul ini yaitu :
untuk filter ber orde 16 dan 128. Percobaan terakhir yaitu Mempelajari penggunaan sistem help untuk
membandingkan hasil konvolusi (input hasil superposisi mengetahui commands dan syntax dasar
pada percobaan 1 dengan salah satu filter pada percobaan MATLAB
2) yang berasal dari source code yang dibuat praktikan Dapat menggunakan MATLAB untuk desain filter
dibandingkan dengan filter yang telah ada pada MATLAB.
Mempelajari bagaimana menulis fungsi dan m-file
pada MATLAB
Kata Kunci— MATLAB, filter FIR1, filter FIR2, frekuensi
Merancang pem-filter-an FIR dengan MATLAB
respon
Memahami pem-filter-an lewat MATLAB secara
mendalam
I. PENDAHULUAN
MATLAB adalah sebuah Bahasa dengan kemampuan tinggi II. LANDASAN TEORI
untuk komputasi taknis. Aplikasi ini menggabingkan
komputasi, visualisasi, dan pemrograman dalam satu kesatuan MATLAB
yang mudah digunakan dimana masalah dan penyelesaiannya
di ekspresikan dalam notasi matematik yang sudah dikenal. MATLAB (Matrix Laboratory) adalah sebuah program untuk
Pemakian MATLAB meliputi : matematika dan kumputas, analisis dan komputasi numerik. Pada awalnya, program ini
pengembangan algoritma, akuisisi data, permodelan, simulasi, merupakan interface untuk koleksi rutin-rutin numerik dari
prototype, grafik saintifik dan engineering dan lain-lain. proyek LINPACK dan EISPACK, namun sekarang merupakan
produk komersial dari perusahaan Mathworks, Inc. MATLAB
MATLAB adalah system interaktif yang memepunyai system telah berkembang menjadi sebuah environment pemrograman
basis data array yang tidak membutuhkan dimensi. Ini yang canggih yang berisi fungsi-fungsi built-in untuk
memungkinkan kita dapat menyelesaikan banyak masalah melakukan tugas pengolahan sinyal, aljabar linier, dan kalkulasi
komputasi teknis, khususnya yang berkaitan dengan formulasi matematis lainnya. MATLAB juga berisi
matrik dan vector. toolbox yang berisi fungsi-fungsi tambahan untuk aplikasi
khusus . MATLAB bersifat extensible, dalam arti bahwa
System MATLAB mempunyai 5 bagian utama, yaitu : seorang pengguna dapat menulis fungsi baru untuk
ditambahkan pada library ketika fungsi-fungsi built-in yang
tersedia tidak dapat melakukan tugas tertentu. Kemampuan berfungsi sebagai sebuah wild card, misalnya, A(2,:) adalah
pemrograman yang dibutuhkan tidak terlalu sulit bila Anda baris kedua matriks A.
telah memiliki pengalaman dalam pemrograman bahasa lain Pengindeksan mundur akan membalikkan sebuah vektor,
seperti C, PASCAL, atau FORTRAN. misalnya X(9:-1:1) untuk sebuah vektor yang berisi 9 buah
elemen. Kadang-kadang, Anda juga memerlukan sebuah daftar
MATLAB HELP yang berisi semua nilai elemen pada matriks, jadi A(:)
memberikan sebuah vektor kolom 72 x 1, yang merupakan hasil
MATLAB menyediakan sistem help on-line yang dapat diakses concatenation elemen-elemen setiap kolom matrik A. Ini
dengan perintah help. Misalnya, untuk memperoleh informasi merupakan contoh reshaping matriks. Teknik reshaping yang
mengenai fungsi filter, Anda hanya perlu mengetikkan perintah lebih umum dapat dilakukan dengan fungsi reshape(A,M,N).
Sebagai contoh, matriks A 9 x 8 dapat di-reshape menjadi
VARIABEL DAN OPERASI MATRIKS sebuah matriks 12 x 6 dengan Anew = reshape(A,12,6).
Tipe variabel dasar pada MATLAB adalah matriks (pada versi DEBUGGING MATLAB m-file
5 dan ke atas, MATLAB juga menyediakan berbagai tipe data
seperti pada bahasa pemrograman lainnya). Untuk Karena MATLAB adalah sebuah environment yang interaktif,
mendeklarasikan sebuah variabel, Anda hanya perlu debugging dapat dilakukan dengan cara menguji variabel-
memberikan nilai tertentu padanya pada MATLAB prompt. variabel pada workspace. MATLAB versi 4 dan 5 menyediakan
debugger simbolik yang mendukung breakpoints. Karena
Ketika definisi sebuah matriks melibatkan sebuah rumus yang fungsi yang berbeda dapat menggunakan nama variabel yang
panjang atau banyak entri, maka sebuah perintah MATLAB sama, adalah sangat penting untuk melacak konteks local ketika
yang sangat panjang dapat dipecah menjadi dua (atau lebih) menguji variabel. Beberapa perintah debugging yang berguna
baris dengan cara menempatkan sebuah tanda (...) pada akhir didaftarkan di sini, dan
dari sebuah baris yang ingin dilanjutkan. Sebagai contoh : yang lainnya dapat Anda temukan di help debug.
P = [ 1, 2, 4, 6, 8 ]+ [ pi, 4, exp(1), 0, -1] + ... dbstop digunakan untuk mengeset sebuah breakpoint pada
[ cos(0.1*pi), sin(pi/3), tan(3), atan(2), sqrt(pi) ]; sebuah m-file. Ia juga dapat digunakan untuk memberikan
sebuah peringatan ketika sebuah kesalahan terjadi dengan
Ketika sebuah ekspresi perintah atau pernyataan diakhiri mengetikkan dbstop if error sebelum mengeksekusi m-file
dengan tanda semicolon (;), maka hasilnya tidak akan tersebut. Hal ini memungkinkan Anda menguji variabel di
ditampilkan di layar. Hal ini sangat membantu ketika Anda dalam fungsi dan workspace (dengan mengetikkan dbup)
bekerja dengan matriks dengan ukuran yang sangat besar.
dbstep akan mengembalikan sebuah peringatan (prompt) ketika
Oleh karena itu, kita tidak perlu menggunakan variabel khusus setiap baris perintah dieksekusi.
untuk melacak jumlah baris dan kolom suatu matriks. Ada dua
jenis variabel matriks pada MATLAB, yakni skalar (scalars) dbcont menyebabkan sebuah eksekusi program yang normal
dan vektor (vectors). Sebuah skalar adalah sebuah matriks yang berhenti, atau bila ada kesalahan, mengembalikan status Anda
hanya berisi satu elemen, jadi berukuran 1 x 1. Sebuah vektor ke MATLAB command prompt.
adalah sebuah matriks yang hanya berisi satu baris atau
kolom. dbquit menyebabkan Anda keluar dari modedebug dan kembali
ke MATLAB command prompt.
OPERATOR COLON
keyboard dapat disisipkan ke m-file untuk menghentikan
Operator colon (:) sangat berguna untuk membuat index arrays. sementara eksekusi program, yang memberikan sebuah
Gunakan perintah help colon untuk mengetahui deskripsi detail MATLAB prompt dalam bentuk K> untuk mengindikasikan
tentang kapabilitasnya. Notasi colon didasarkan pada ide bahwa bahwa itu bukan command-line prompt.
sebuah selang indeks dapat dihasilkan dengan memberikan
sebuah nilai awal, interval, dan sebuah nilai akhir. Karena itu,
sebuah vector yang terpartisi secara teratur dapat diperoleh
dengan perintah iii = nilai awal : interval : nilai akhir Tanpa
parameter interval, nilai default-nya adalah 1. Metode III. METODOLOGI
perhitungan ini mirip dengan notasi loop DO pada FORTRAN,
namun metode pada MATLAB selangkah lebih maju dengan Alat dan Bahan
cara menggabungkannya dengan pengindeksan matriks. Untuk
sebuah matriks A 9 x 8, 1. 1 unit komputer
A(2,3) adalah elemen skalar yang berada pada baris kedua dan 2. Software Matlab
kolom ketiga dari matriks A.
Jadi sebuah submatriks 4 x 3 dapat diekstrak dengan perintah
A(2:5,1:3). Tanda colon juga
Langkah Kerja 2. Percobaan desain dan simulasi filter FIR 1
Memulai percobaan
Kita akan coba beberapa filter FIR dengan spesifikasi
berikut (frekuensi boleh diubah-ubah)
Pastikan computer yang akan Filter FIR low-pass orde 32 dengan frekuensi cut-off
digunakan berfungsi dengan normal 800 Hz
dan tidak ada masalah apapun Filter FIR band-pass orde 32 dengan frekuensi pass
1000 – 3000 Hz
Filter FIR high-pass orde 32 dengan frekuensi cut-
off 6000Hz
1. Percobaan membuat sinyal inout filter berupa Rancang ketiga filter di atas, cari koefisien
superposisi beberapa sinyal sinusoid dengan frekuensi filter-nya dengan perintah yang sesuai
berbeda (fir1). Catat masing-masing koefisien filter.
Buat 3 sinyal sinusoidal pada frekuensi pencuplikan fs=16000 Hz 3. Percobaan desain dan simulasi FIR 2
untuk masing-masing
frekuensi sinyal f1=200 Hz, f2=1000 Hz, f3=5000 Hz. Ketikan :
>>sin1=sin(2*pi*i*f1/fs);sin2=sin(2*pi*i*f2/fs);sin3=sin(2*pi*i*f3/f
s);
Kita akan coba mendesain filter FIR dengan
metoda frekuensi sampling dengan respon
frekuensi seperti pada Gambar 1. 2 Respon
Frekuensi Filter
Pada bagian ini anda diminta untuk membuat m-file untuk melakukan
pemfilteran FIR saja,
Kini Anda telah memiliki sinyal input untuk filter yang akan kita untuk m-file anda tidak diperbolehkan memanggil fungsi internal MATLAB.
rancang. Bandingkan
hasilnya dengan percobaan dengan menggunakan perintah filter dari MATLAB.
(Untuk
kelancaran praktikum source code bisa dipersiapkan sebelum praktikum).
Mengakhiri percobaan Kemudian mengetikkan perintah kode :
>>sintot=(sin1+sin2+sin3)/3;
Sebelum keluar dari ruang praktikum, rapikan meja praktikum dan matikan Menghasilkan bentuk sinyal dari ketiga sinyal, yaitu sinyal
komputer dari
jala-jala listrik. sin1, sin2, sin3.
Periksa lagi lembar penggunaan meja. Praktikan yang tidak menandatangani
lembar
penggunaan meja atau membereskan meja ketika praktikum berakhir akan
mendapatkan
potongan nilai.
Pastikan asisten telah menandatangani catatan percobaan kali ini pada Lembar
Catatan
Laboratorium anda. Catatan percobaan yang tidak ditandatangani oleh asisten
tidak akan
dinilai.
>>i=1:100;
>>f1=200 Hz;
>>f2=1000 Hz;
>>f3=5000 Hz;
>>sin1=sin(2*pi*i*f1/fs);sin2=sin(2*pi*i*f2/fs);sin3=sin(2*pi
*i*f3/fs);
𝑓 . 𝑐𝑢𝑡 𝑜𝑓𝑓
Wn :
𝑓𝑠 .16000
800
Wn :
16000 .0,5
Wn : 0,1
𝑓 . 𝑐𝑢𝑡 𝑜𝑓𝑓
Wn :
𝑓𝑠 .16000
3000
Wn :
16000 .0,5 Grafik highpass filter :
Wn : 0,375
𝑓 . 𝑐𝑢𝑡 𝑜𝑓𝑓
Wn :
𝑓𝑠 .16000
6000
Wn :
16000 .0,5
Wn : 0,75
𝑓 . 𝑐𝑢𝑡 𝑜𝑓𝑓
Wn1 :
𝑓𝑠 .16000
800
Wn1 :
16000 .0,5
Wn1 : 0,1
𝑓 . 𝑐𝑢𝑡 𝑜𝑓𝑓
Wn2 :
𝑓𝑠 .16000
1200
Wn2 :
16000 .0,5
Wn2 : 0,15
𝑓 . 𝑐𝑢𝑡 𝑜𝑓𝑓
Wn3 :
𝑓𝑠 .16000
8000
Wn3 :
16000 .0,5
Wn3 : 1
Function y=my_conv(x, h)
X2=h;
Lx=length(x);
Lh=length(h);
If lx>lh
X2=[x2 zeros(l, lx-lh)];
Else
X=[x zeros (l,lh-lx)];
End
Y=zeros(l,lx+lh-1);
X=fliplr(x);
For i=1:length(y);
If i<=length(x);
Y(i)=sum(x(l,length(x)-i+1:length(x)).*x2(1,1:i));
Else
J=i-length(x);
Y(i)=sum(x(1,1:length(x);
End
End
Penulisan barisan ekspresi dalam MATLAB command window
biasanya dilakukan baris perbaris dan biasanya untuk
menyimpan barisan perintah dan hasil outputnya dengan
menggunakan command diary. Hal ini sangatlah tidak efisien
dikarenakan barisan yang telah tersimpan di diary tidak dapat
diloadkan kembali ketika telah keluar dari MATLAB. Apalagi
jika dilakukan banyak sekali perulangan barisan perintah yang
sama, missalkan dilakukan pengolahan data dan perhitungan
yang sama yang melibatkan data atau fungsi yang berbeda.
Untu itu MATLAB menyediakan suatustruktur untuk membuat
fungsi anda sendiri atau suatu teknik pemrograman dalam
bentuk M-file.
V. SIMPULAN
VI. REFERENSI
Data pengukuran :