Anda di halaman 1dari 14

Percobaan I

Pengenalan MATLAB
Amir Shodiq (13117015)
Asisten : Rahman Ecky Renaldi (13116006)
Tanggal Percobaan : 16/09/2019
EL3104 Praktikum Pengolahan Sinyal Digital
Laboratorium Teknik Elektro
Institut Teknologi Sumatera

proyek LINPACK dan EISPACK, namun sekarang merupakan


Abstrak—Pada percobaan kali ini, praktikan dikenalkan produk komersial dari perusahaan Mathworks, Inc. MATLAB
dengan aplikasi program anialisis dan komputasi numeric yaitu telah berkembang menjadi sebuah environment pemrograman
MATLAB. Praktikan diperkenalkan dengan berbagai fungsi yang yang canggih yang berisi fungsi-fungsi built-in untuk
ada pada aplikasi MATLAB, seperti built-in, help, dan lain smelakukan tugas pengolahan sinyal, aljabar linier, dan
sebagainya. Dalam percobaan yang dilakukan praktikan
kalkulasi matematis lainnya. MATLAB juga berisi toolbox
menggunakan fungsi fir1, fir2, plot, dan freqz, selain itu praktikan
juga diperintahkan membuat m-file yang dapat dipergunakan yang berisi fungsi-fungsi tambahan untuk aplikasi khusus.
dalam aplikasi MATLAB. Praktikan diharuskan mengetahui MATLAB bersifat extensible, dalam arti bahwa seorang
bentuk sinyal yangtelah dibuat dengan ketentuan-ketentuan yang pengguna dapat menulis fungsi baru untuk ditambahkan pada
telah diberikan, seperti frekuensi dan orde. Frekuensi yang library ketika fungsi-fungsi built-in yang tersedia tidak dapat
berubah menyebabkan bentuk sinyal yang dihasilkan berbeda melakukan tugas tertentu. Kemampuan pemrograman yang
juga. dibutuhkan tidak terlalu sulit bila Anda telah memiliki
pengalaman dalam pemrograman bahasa lain seperti C,
Kata Kunci—MATLAB, fir1, fir2, plot, freqz, m-file. PASCAL, atauFORTRAN.

I. PENDAHULUAN B. MATLAB Help


Pada prkatikum kali ini praktikan diharapkan dapat MATLAB menyediakan sistem help on-line yang dapat diakses
menggunakan dan memahami bentuk-bentuk perintah yang ada dengan perintah help. Misalnya, untuk memperoleh informasi
pada aplikasi MATLAB. Dalam MATLAB ada sebuah perintah mengenai fungsi filter, Anda hanya perlu mengetikkan perintah
yang memudahkan kita, dan berfungsi untuk mendapatkan
informasi dari funsi yang ada pada aplikasi MATLAB, yaitu >>help filter
dengan memberi perintaah help. Penggunaan MATLAB dalam
pengolahan sinyal digital adalah untuk membuat beberapa jenis Perintah di atas akan menampilkan informasi dalam bentuk teks
filter, diantaranya adalah low-pass filter, band-pass filter,dan pada layar MATLAB Anda. Sebuah perintah yang sangat
high-pass filter. Dalam praktikum kali ini memiliki beberapa berguna untuk mempelajari pemrograman MATLAB adalah
tujuan, yatitu: intro, yang membahas konsep-konsep dasar tentang bahasa
1. Mempelajari penggunaan sistem help untuk MATLAB. Selain itu, juga terdapat banyak program
mengetahui commands dan syntax dasar MATLAB. demonstrasi yang mengilustrasikan berbagai kapabilitas
MATLAB, yang dapat dimulai dengan perintah demo.
2. Dapat menggunakan MATLAB untuk desain filter.
3. Mempelajari bagaimana menulis fungsi dan m-file
pada MATLAB. C. Variabel dan Operasi Matriks
4. Merancang pem-filter-an FIR dengan MATLAB. Tipe variabel dasar pada MATLAB adalah matriks (pada versi
5. Memahami pem-filter-an lewat MATLAB secara 5 dan ke atas, MATLAB juga menyediakan berbagai tipe data
mendalam. seperti pada bahasa pemrograman lainnya). Untuk
mendeklarasikan sebuah variabel, Anda hanya perlu
memberikan nilai tertentu padanya pada MATLAB prompt.
II. LANDASAN TEORETIS
Ketika definisi sebuah matriks melibatkan sebuah rumus yang
A. Pengenalan MATLAB panjang atau banyak entri, maka sebuah perintah MATLAB
MATLAB (Matrix Laboratory) adalah sebuah program untuk yang sangat panjang dapat dipecah menjadi dua (atau lebih)
analisis dan komputasi numerik. Pada awalnya, program ini baris dengan cara menempatkan sebuah tanda (…) pada akhir
merupakan interface untuk koleksi rutin-rutin numerik dari dari sebuah baris yang ingin dilanjutkan. Ketika sebuah
ekspresi perintah atau pernyataan diakhiri dengan tanda argumen. Pada baris yang sama juga berisi calling template
semicolon (;), maka hasilnya tidak akan ditampilkan di layar. yang menyatakan argumen input dan output dari fungsi. Nama
Hal ini sangat membantu ketika Anda bekerja dengan matriks file untuk m-file tersebut haruslah berekstensi dan nama fungsi
dengan ukuran yang sangat besar. Ukuran dari sebuah matriks tersebut akan menjadi nama dari perintah baru pada MATLAB.
dapat diketahui dengan operator size.
Kebanyakan fungsi dapat ditulis menurut format standar.
Perhatikan sebuah fumgsi mfileclip yang mengambil dua buah
D. Plot dan Grafik
argumen (sebuah vektor sinyal dan nilai skalar
MATLAB dapat menghasilkan plot dua dimensi x-y dan plot pembatas/threshold) dan mengembalikan sebuah vektor sinyal
tiga dimensi, menayangkan citra, dan bahkan membuat dan keluaran. Anda dapat menggunakan sebuah editor untuk
memutar video. Dua fungsi yang yang sering digunakan pada menghasilkan file ASCII dari clip.m yang berisi pernyataan-
praktikum ini adalah plot dan stem. Untuk memanggil fungsi pernyataan
ini, umumnya kita membutuhkan dua vektor (satu vektor juga
bisa, namun untuk definisi yang berbeda, gunakan perintah help
untuk melihat informasi yang lebih lengkap), untuk sumbu x H. Tips Pemrograman
dan sumbu y. Pemanggilan fungsi plot(x,y) akan menghasilkan Bagian ini akan memperkenalkan beberapa tips pemrograman
suatu plot yang terkoneksi dengan garis lurus untuk setiap dua yang akan meningkatkan kecepatan program MATLAB Anda.
titik. MATLAB memiliki banyak opsi plotting yang dapat Untuk mengetahui lebih banyak tentang tips dan ide, perhatian
dipelajari dengan help plotxy, help plotxyz, dan help graphics gaya-gaya penulisan pada m-file (built-in function) yang
(versi 4) atau help graph2d, help graph3d, dan help specgraph tersedia pada toolbox MATLAB.Sebagai contoh, ketikkan
(versi 5). perintah

type angle
E. Konstruk Pemrograman
type conv
MATLAB mendukung paradigma pemrograman fungsional, di type trapz
mana Anda dapat menyusun fungsi-fungsi secara nested.
Perhatikan persamaan di bawah. Mempelajari gaya pemrograman orang lain merupakan cara
yang efisien untuk memahami suatu bahasa pemrograman
Sum (log (abs(x))) komputer. Pada petunjuk-petunjuk berikut, kita akan
membahas hal-hal yang terpenting dalam penulisan kode
dimana x adalah sebuah vektor yang berisi elemen-elemen xn. MATLAB yang baik. Petunjukpetunjuk ini akan menjadi
Contoh ini mengilustrasikan MATLAB dalam bentuk yang sangat berguna ketika Anda semakin mengenal MATLAB.
paling efisien, di mana fungsi-fungsi individu dikombinasikan
untuk menghasilkan keluaran. Penulisan kode-kode MATLAB Karena MATLAB merupakan sebuah bahasa interpretasi
yang efisien memerlukan gaya pemrograman yang (interpreted language), maka terdapat beberapa gaya
menghasilkan fungsi-fungsi kecil yang divektorisasi. Loop- pemrograman yang sangat tidak efisien. Salah satunya adalah
loop harus dihindari. Cara utama untuk menghindari loop penggunaan loop for untuk melakukan operasi sederhana
adalah memanggil fungsi-fungsi toolbox sebanyak/sesering terhadap sebuah matriks atau vektor. Bila dimungkinkan, Anda
mungkin. seharusnya mencoba mencari sebuah fungsi vektor (atau
komposisi nested dari beberapa fungsi vektor) yang akan
F. MATLAB Script memberikan hasil yang sama, daripada menulis sebuah loop.
Misalnya, bila operasi tersebut adalah penjumlahan semua
Setiap perintah/pernyataan yang dapat dimasukkan pada
elemen pada sebuah matriks, perbedaan antara memanggil
window prompt dapat disimpan pada sebuah file teks dan
fungsi sum dan menulis sebuah loop seperti pada bahasa
dieksekusi sebagai script. File teks tersebut dapat dibuat dengan FORTRAN dapat sangat mengejutkan; loop tersebut akan
menggunakan sembarang editor ASCII seperti program sangat lambat dalam menjalankan eksekusi akibat sifat
Notepad atau pada editor teks MATLAB. Ekstensi file harus
interpreted dari MATLAB.
berupa .m dan script tersebut dieksekusi pada MATLAB
dengan hanya mengetikkan nama file (dengan atau tanpa
Metode pertama adalah ekivalen MATLAB untuk
ekstensi). Program-program tersebut umumnya dikenal dengan
pemrograman konvensional. Dua metode terakhir
istilah m-file. mengandalkan fungsi built-in sum, yang memiliki perbedaan
karakteristik, tergantung dari apakah argumennya berupa
G. Menulis Fungsi MATLAB sebuah matriks atau vektor (disebut operator overloading).
Anda dapat menulis fungsi sendiri dan kemudian ditambahkan Ketika beraksi pada sebuah matriks, sum mengembalikan
pada environment MATLAB. Fungsi-fungsi ini merupakan sebuah vektor baris yang berisi penjumlahah kolom, dan ketika
jenis lain dari m-file, dan dibuat sebagai sebuah file ASCII beraksi pada sebuah vektor baris (atau kolom), penjumlahan
menggunakan editor teks. Kata pertama pada m-file tersebut tersebut adaah skalar. Pada metode ketiga, yang merupkan
haruslah keywordfunction untuk memberitahukan MATLAB metode terefisien, matriks x dikonversikan ke vektor kolom
bahwa file tersebut diperlakukan sebagai sebuah fungsi dengan dengan operator colon (:). Dan selanjutnya Anda hanya perlu
memanggil fungsi sum sekali saja.
III. METODOLOGI Percobaan 2: Percobaan desain dan simulasi filter FIR 1
A. Alat dan Bahan
1. 1 unit komputer/PC Buat Filter fir dengan orde 32 dan
2. Software MATLAB beberapa frekuensi berikut

B. Langkah Kerja
Sebelum praktikum dilaksanakan, lakukan beberapa hal berikut Low-pass dengan cut-off 800hz
ini:
a. Pastikan komputer yang akan digunakan berfungsi
dengan normal dan tidak ada masalah apapun.
b. Software Matlab sudah terinstal dalam komputer.
Band-pass dengan cut-off 100-3000hz
Percobaan 1: Percobaan membuat sinyal input filter berupa
superposisi beberapa sinyal sinusoidal dengan frekuensi
berbeda.
High-pass dengan cut-off 6000hz
Buka MATLAB dikomputer atau PC

Rancang ketiga filter diatas, cari


Buat Perintah: koefisien fiter-nya dengan
>>i=1:100; perintahyang sesuai (fir1)

Buat perintah dibawahnya Lihat Respon Frekuensi masing-masing


>> >>sin1 = sin(2*pi*i*f1/fs); filter dengan perintah freqz, gambarkan
>> >>sin2 = sin(2*pi*i*f2/fs); hasilnya dan berikan analisa pada
>> >>sin3 = sin(2*pi*i*f2/fs); frekuensi cut-off masing-masing

Percobaan 3: Percobaan desain dan simulasi filter FIR 2


Jumlahkan ketiganya dengan perintah:
>>sintot=(sin1+sin2+sin3)/3;

Plot Gambarnya dengan perintah:


>>plot(sintot);

Lihat Respon Frekuensi dengan


perintah: Rancang filter diatas, cari koefisien
>>freqz(sintot); filter-nya dengan perintah yang sesuai
(fir2). Catatkoefisien filter, gunakan
orde 16

Lihat frekuensi respon filter dengan


perintah freqz
Percobaan 4: Percobaan membuat m-file untuk melakukan
pem-filter-an FIR

Pada bagian ini anda diminta untuk membuat m-file untuk


melakukan pemfilteran FIR saja, untuk m-file anda tidak
diperbolehkan memanggil fungsi internal MATLAB.
Bandingkan hasilnya dengan percobaan dengan menggunakan
perintah filter dari MATLAB. (Untuk kelancaran praktikum
source code bisa dipersiapkan sebelum praktikum).
Catatan:
Pada laporan m-file disertakan, dan berikan penjelasan
algoritma yang anda gunakan untuk melakukan pem-filter-an
FIR.
HINT: Koefisien filter FIR adalah merupakan respon impuls
dari filter.

Gambar 2. Hasil respon frekuensi penjumlahan 3 sinyal sinus


IV. HASIL DAN ANALISIS
A. Percobaan membuat sinyal input filter berupa superposisi Pada gambar diatas adatas respon frekuensi dari penggabungan
beberapa sinyal sinusoidal dengan frekuensi berbeda. 3 buah sinyal sinusoidal, dari grafik dapat dilihat magnitude
Pada percobaan ini prkatikan membuat sebuah filter dengan dari ketiga sinyal adalah ±25dB, dan nilai phasanya semakin
beberapa frekuensi yang berbeda, sinyal yang dibuat dalam turun stiap kenaikan frekuensinya. Dapat disimpulkan bahwa
bentuk sinyal sinus. Dari beberapa frekuensi yang telah filter yang kita buat untuk mengambil sebuah sinyal yang
dimasukkan ke dalam rumus, didapatkan gambar plot sebagai memiliki magnitudo ±25dB saja. Dapat disimpulkan pula
berikut: semakin tinggi nilai frekuensi maka nilai phasa yang dihasilkan
akan semakin keciljuga.

B. Percobaan desain dan simulasi filter FIR 1


Pada percobaan kedua praktikan membuat beberapa filter yaitu
low-pass, band-pass, dan high-pass, dengan beberapa frekuensi
yang berbeda pula, dengan orde32. Dari hasil percobaan dengan
MATLAB didapatkan hasil respon frekuensi sebagai berikut:

Low-pass filter

Gambar 1. Hasil plot penjumlahan 3 buah sinyal sinus

Pada gambar diatas adalah hasil plot dari 3 buah fungi sinus
yang memiliki frekuensi berbeda-beda, f1 = 200Hz, f2 =
1000Hz, dan f3 = 5000Hz, berbanding dengan fs = 16000Hz.
Plot sinyal tersebut adalah rata-rata dari 3 buah sinyal. Dari
gambar diatas dapat dilihat bahwa amplitudo tertinggi adalah 1
dan terendah adalah -1, setiap sinyal memiliki amplitudo yang
berbeda-beda dan digabungkan menjadi gambarseperti diatas.
Sinyal tersebut akan berulang terus, karena bentuk sinyalnya Gambar 3. Respon frekuensi low-pass filter dengan frekuensi
adalah sinyal sinusoidal. Hasil diatas adalah sebuah gambaran 800Hz.
filter dari sinyal inputan berupa sinyal sinus, dapat dilihat
bahwa filter yang kita buat sudah memiliki fungsi sebagai mana Dari gambar diatas dapat dilihat bahwa nilai magnitudo terbesar
mestinya, yaitu membuang noise yang ada. Jadi dari beberapa adalah 0dB dan magnitudo terkecil adalah -80dB. Dari gambar
frekuensi yang berbeda dapat difilter menjadi satu sinyal tersebut filter yang kita buat akan meloloskan sinyal yang hanya
sinusoidal saja. memiliki magnitudo kisaran -50 hingga -80 saja. Untuk
phasanya akan menyesuaikan juga, jika inputan lebih tinggi
maka akan dipotong atau yang diloloskan hanya pahasa yang yang memiliki frekuensi diantara rentang itu (dalam percobaan
memiliki nilai kisaran -4000 sampai -6500 saja. Jadi filter yang kita 1000-3000Hz).
kita buat ini hanya akan meloloskan sinyal yang memiliki
C. Percobaan desain dan simulasi filter FIR 2
frekuensi rendah saja. Filter akan bekerja pada normalized
frekuensi < 0.22 x π rad/sampel (dalam percobaan kita Pada percobaan ketiga kita diberikan sebuah grafik, orde yang
frekuensi yang bisa lolos yaitu <800Hz). digunakan adalah 16. Dari hasil percobaan dengan MATLAB
kami dapatkan respon frekuensi pada saat low-pass sebagai
High-pass filter berikut:

Gambar 4. Respon frekuensi band-pass filter dengan frekuensi Gambar 6 Respon frekuensi low-pass filter dengan orde dan
6000Hz. frekuensi yang berbeda-beda

Dari gambar diatas nilai magnitudo maksimumnya adalah 0dB Dari gambar diatas dapat dilihatbahwa nilai magnitudo
dan minimum disekitar -120dB. Jika dilihat normalized maksimumnya dalah odB, dan nilai magnitudo minimumnya
frequency akan bekerja mulai dari titik >064 x π rad/sampel, itu adalah -100dB. Normalized frequency akan bekerja <0.34 x π
berarti sinyal tersebutakan meloloskan sinyal yang lebih rad/sampel. Filter yang dibuat pada percobaan ini adalah low-
besardari titik tersebut (dalam pecobaan kita mungkin hanya pass filter dang menggunakan orde 16, dapat dibandingkan
kan meloloskan sinyal yang memiliki frekuensi >6000Hz). dengan grafik0-grafik sebelumnya bahwa grafik kali ini terlihat
lebih renggang, dapatdisimpulkan bahwa semakin besar nilai
Band-pass filter orde maka akan membuat gelombang semakin rapat.

D. Percobaan membuat m-file untuk melakukan pem-filter-an


FIR
Pada percobaan terakhir kami diberikan perintah untuk
membuat m-file, m-file sendiri adalah sebuah program yang
kita buat sendiri yang nantinya dapat diigunakan dalam aplikasi
MATLAB. M-file yang dibuat diaharapkan dapat digunakan
dalam percobaan keempat ini, tetapi kelompok kami belum bisa
mendapatkan m-file yang cocok untuk percobaan ini. M-file
yang dibuat harus membuat sebuah rumus konvolusi sebuah
sinyal. Karena kami tidak mendapatkan atau tidak bisa
membuat m-file makak kami tidak mendapatkan data untuk
percobaan ini.

Oleh Karen itu kami mencoba dirumah dengan mencari lagi


script di internet, scriptyang kami dapat sudah bisa digunakan
Gambar 5. Respon frekuensi band-pass filter dengan frekuensi tetapi tidak mendapatkan jawaban untuk percobaan yang
1000-3000Hz. diinginkan. Dari script yang kami dapatkan, hasilnya sebagai
berikut:
Dari gambar diatas nilai magnitudo maksimal adalah 0dB dan
magnitudo minimalnya adalah -110dB. Untuk normalized
frequency akan bekerja pada titik antara 0.02-0.48 x π
rad/sampel yang berarti filter ini hanya akan melewatkan sinyal
Gambar7. Tampilan m-file yang kami buat

V. SIMPULAN
1. System help pada MATLAB dapatmemudahakan
pengguna dalam menggunakan berbagai fungsi yang
ada pada MATLAB.
2. Software MATLAB dapat digubakan untuk
merancang pembuatan filter.
3. Dengan fungsi fir1 dan fir2 pengguna dapat dengan
mudah membuat filter sendiri.
4. Sebuah filter dapat dirancang dengan acuan frekuensi
maksimal yang akan diloloskan melalu filter yang
dibuat.
5. Pem-filter-an dalam MATLAB dapat dirancang
dengan menggunakan m-file ataupun built-in.

VI. REFERENSI

[1] Modul Pengolahan Sinyal Digital, Lampung Selatan:


Laboratorium Dasar Teknik Elektro, 2019.
[2] C. Strife, "Pengenalan Low Pass Filter, High Pass Filter,
dan Band Pass Filter Pada Matlab," 21 Oktober 2014.
[Online]. Available:
http://jagocoding.com/tutorial/497/Pengenalan_Low_Pas
s_Filter_High_Pass_Filter_dan_Band_Pass_Filter_Pada_
Matlab. [Accessed 19 September 2019].
[3] S. E. Indah Sulistiawati, "KONVOLUSI
MENGGUNAKAN MATLAB," 2009. [Online].
Available:
academia.edu/17036828/KONVOLUSI_MENGGUNAK
AN_MATLAB. [Accessed 19 September 2019].
Lampiran

1. Foto BCP
2. Script percobaan 4
function y=conve(x,h)
x2=h;
1x=length(x);
1h=length(h);
if 1x>1h
x2=[x2 zeros(1,1x-1h)];
else
x=[x zeros(1,1h-1x)];
end
y=zeros(1,1x+1h-1);
x=fliplr(x);

for i=1:length(y)
if i<=length(x)
y(i)=sum(x(1,length(x)-i+1:length(x)).*x2(1,1:));
else
j=i-length(x);
y)i_=sum(x(1,1:length(x)-j).*x2(1,j+1:length(x2)));
end
end

Anda mungkin juga menyukai