Pengenalan MATLAB
Rifki Yafi (13117049)
Asisten : Fakhrur Rozi (13116110)
Tanggal Percobaan : 21/09/2019
EL3104-Praktikum Pengolahan Sinyal Digital
Laboratorium Teknik Elektro
Institut Teknologi Sumatera
Abstrak—Pada praktikum kali ini dilakukan beberapa 2. The MATLAB mathematical function library,
percobaan yaitu pertama dilakukan pembuatan sinyal yaitu koleksi semua fungsi algoritma komputasi.
input filter yang berasal dari hasil superposisi tiga buah
sinyal sinusoidal dengan frekuensi yang berbeda-beda 3. The MATLAB language, merupakan suatu
menggunakan frekuensi sampling 16 kHz. Sinyal hasil Bahasa matriks/array level tinggi dengan contoh
superposisi tersebut selanjutnya diplot kedalam sebuah flow, fungsi, struktur data, input/output, dan
grafik dan diamati pula respon frekuensinya. Percobaan fitur objek programming lainnya.
kedua yaitu pembuatan filter dengan fungsi FIR 1 berorde
32 yang terdiri dati filter low-pass, band-pass, dan high- 4. Graphics, yaitu fasilitas untuk menampilkan
pass filter. Lalu diamati frekuensi response untuk masing- vector dan matriks sebagai grafik.
masing filter yang telah dibuat. Percobaan ketiga yaitu
melakukan desain dan simulasi menggunakan filter FIR 2. 5. The MATLAB Application Program Interface
Pembuatan filter dilakukan dengan metode frekuensi (API), yaitu paket yang memungkinkan user
sampling menggunakan respon frekuensi filter yang menulis Bahasa C dan Fortran yang berinteraksi
berasal dari gambar. Perancangan filter tersebut dilakukan dengan MATLAB.
untuk filter berorde 16 dan 128. Percobaan keempat yaitu
membandingkan hasil konvolusi (input hasil superposisi Adapun tujuan dari modul ini, sebagai berikut:
pada percobaan 1 dengan salah satu filter pada percobaan
2) yang berasal dari source code yang dibuat praktikan 1. Mempelajari penggunaan sistem help untuk
dibandingkan dengan filter yang telah ada pada MATLAB.
mengetahui commands dan syntax dasar
Kata kunci- MATLAB, filter FIR 1, filter FIR 2, frekuensi MATLAB.
respon, Low-pass, High-pass, Band-pass 2. Dapat menggunakan MATLAB untuk desain
filter.
I. PENDAHULUAN 3. Mempelajari bagaimana menulis fungsi dan m-
file pada MATLAB.
Pada praktikum percobaan kali ini akan diperkenalkan 4. Merancang suatu penggunaan pem-filteran FIR
sebuah aplikasi yang bernama MATLAB (Matrix
Laboratory). MATLAB adalah sebuah bahasa dengan dengan MATLAB.
kemampuan tinggi untuk proses komputasi teknis. Ia 5. Memahami suatu penggunaan jenis pem-filteran
menggabungkan komputasi, visualisasi, dan lewat MATLAB secara mendalam.
pemrograman dalam satu kesatuan yang mudah
digunakan dimana masalah dan penyelesaiannya di
ekspresikan dalam notasi matematik yang sudah dikenal. II. LANDASAN TEORITIS
Pemakaian MATLAB meliputi : matematika dan
komputasi, pengembangan algoritma, akuisisi data, MATLAB (Matrix Laboratory) adalah sebuah program
pemodelan, simulasi, prototype, grafik saintifik dan untuk analisis dan komputasi numerik. Pada awalnya,
engineering dan lain-lain. program ini merupakan interface untuk koleksi rutin-
rutin numerik dari proyek LINPACK dan EISPACK,
Selain itu MATLAB adalah system interaktif yang namun sekarang merupakan produk komersial dari
mempunyai basis data array yang ridak membutuhkan perusahaan Mathworks, dan lain-lain. MATLAB telah
dimensi. Ini memungkinan kita dapat menyelesaikan berkembang menjadi sebuah environment pemrograman
banyak masalah komputasi teknis, khususnya yang yang canggih yang berisi fungsi-fungsi built-in untuk
berkaitan dengan formulasi matrik dan vector. melakukan tugas pengolahan sinyal, aljabar linier, dan
kalkulasi matematis lainnya. MATLAB juga berisi
Sistem MATLAB terdiri atas lima bagian utama : toolbox yang berisi fungsi-fungsi tambahan untuk
aplikasi khusus.
1. Development Environment, yaitu kumpulan
semua alat-alat dan fasilitas untuk membantu MATLAB bersifat extensible, dalam arti bahwa seorang
user dalam menggunakan fungsi dan file pengguna dapat menulis fungsi baru untuk ditambahkan
MATLAB. pada library ketika fungsi-fungsi built-in yang tersedia
tidak dapat melakukan tugas tertentu. Kemampuan
pemrograman yang dibutuhkan tidak terlalu sulit bila
Anda telah memiliki pengalaman dalam pemrograman Karena itu, sebuah vektor yang terpartisi secara teratur
bahasa lain seperti C, PASCAL, atau FORTRAN. dapat diperoleh dengan perintah:
Perkalian Matriks
M = [1 2 6 ; 5 2 1]
Operasi perkalian matriks AB hanya dapat dilakukan bila
M=1 2 6
kedua matriks tersebut memiliki dimensi yang
5 2 1
kompatibel, yakni jumlah kolom matriks A harus sama
dengan jumlah baris matriks B. Sebagai contoh, sebuah
matriks 5 x 8 dapat mengalikan sebuah matriks 8 x 3
Ketika definisi sebuah matriks melibatkan sebuah rumus
untuk menghasilkan sebuah matriks AB 5 x 3. Secara
yang panjang atau banyak entri, maka sebuah perintah
umum, bila A adalah m x n, maka B haruslah n x p, dan
MATALB yang sangat panjang dapat dipecah menjadi
hasil perkalian AB akan memiliki dimensi m x p.
dua (atau lebih) baris dengan cara menempatkan sebuah
Umumnya perkalian matriks tidak bersifat komutatif,
tanda (…) paa akhir dari sebuah baris yang ingin
yakni AB ≠ BA. Bila p = m, maka perkalian AB tidak
dilanjutkan. Sebagai contoh :
terdefinisi.
P = [ 1, 2, 4, 6, 8 ]+ [ pi, 4, exp(1), 0, -1] + … Beberapa kasus khusus untuk perkalian matriks adalah
[cos(0.1*pi), sin(pi/3), tan(3), atan(2), sqrt(pi) ]; outer product dan inner product. Pada outer product,
sebuah vektor kolom mengalikan sebuah vektor baris
untuk menghasilkan sebuah matriks. Bila kita
Ketika sebuah ekspresi perintah atau pernyataan diakhiri membiarkan semua elemen salah satu vektor tersebut
dengan tanda semicolon (;), maka hasilnya tidak akan berupa „1‟, maka kita akan memperoleh hasil yang
ditampilkan di layar. berulang. Contoh:
No. Alat dan Bahan Jumlah Kemudian dirancang ketiga filter tersebut, dicari
koefisien filternya dengan perintah yang sesuai
(fir 1). Dicatat masing-masing koefisien filter.
Komputer/PC (2 buah)
Software MATLAB (1 buah)
Pada MATLAB, direpresentasikan sinyal dalam Dilihat freq respon masing-masing filter dengan
vektor (matriks 1xN, N merupakan panjang perintah freqz. Kemudia gambarkan hasilnya.
vektor). Akan direpresentasikan sumbu waktu Dianalisis pada freq cut-off
dimana untuk 0 < t < 2π, diberi panjang vektor
100 sampel dengan perintah >> i = 1:1000
3.2.3. Percobaan desain dan simulasi filter FIR II Berikut ini merupakan salah satu grafik sinya sinusoidal
disetiap masing-masing perioda, diantaranya:
Dibuat desain filter FIR dengan metoda freq
sampling dengan respon freq seperti pada
gambar dibawah (respon freq filter)
3.2.4. Percobaan dengan membuat sebuah m-file untuk Sinyal ketiga memiliki niali frekuensi sebesar 5000Hz,
melakukan pem-filteran FIR seperti pada gambar berikut:
Initialisasi;
I = 1:100 (banyak sampel)
Lalu bandingkan hasilnya dengan percobaan fs = 16000 (besar frek sampling)
dengan mengguunakan perintah filter Matlab f1 = 200 (nilai frek 1)
f2 = 1000 (nilaifrek 2)
f3 = 5000 (nilai frek 3)
Rumus fungsi;
LowPass = firl(32,01); merupakan filter lowpass
dengan mencari nilai koef menggunakan
perintah firl
Gambar 5: Respon frequensi sinyal total
Fungsi;
Rumus fungsi; Freqz; digunakan untuk melihat freq dari
Sintot = (sin1+sin2+sin3)/3 merupakan sinyal lowpass filter
total yang merupakan penjumlahan dari ketiga
sinyal
Display:
Subplot (2,1,2); plot (i,sintot); merupakan suatu
hasil dari grafik sinyal total
Gambar 8: Respon Frekuensi High-pass Gambar 10: Koefisien orde 32 pada High-pass
Rumus fungsi;
HighPass = firl(32,0.75); merupakan suatu
aplikasi filter lowpass dengan mencari nilai koef
menggunakan perintah firl
Fungsi;
Freqz (Highpass); digunakan untuk melihat freq
dari Highpass filter
Kemudian cari nilai dari fir (N,Wn) yang akan Gambar 11: Koefisien orde 32 pada Band-pass
menghasilkan sebuah vektor yang merupakan hasil dari
suatu respons impuls pada suatu lowpass filter dengan
orde nilai N.
Diketahui :
>>lowpass = fir1 (N,Wn)
>>bandpass = fir1(N,[Wn,Wn2]bandpass)
>>Highpass = fir1(N,Wn,high)
Diperoleh: Gambar 12: Output Respon Frequensi saat Peredaman
fcut off 800
1 Wn 0,1( Lowpass) Gambar 12 diatas menunjukkan sebuah hasil ouput
FS 0,5 16000 0,5 frequensi dari low pass filter saat mengalami frekuensi
fcut off 1000 cut-off. Dapat dilihat, respom frekuensi filter yang
2 Wn 0,125( Bandpass) dihasilkan menunjukkan bahwa pada nilai frekuensi cut-
FS 0,5 16000 0,5
off (hal ini menunjukkan dengan adanya nilai Wn-0.1),
fcut off 3000 mulai menunjukkan adanya suatu efek redaman terhadap
3 Wn 0,375( Bandpass)
FS 0,5 16000 0,3 sinyal input sehingga inpputnya mengalami pelemahan
fcut off 6000 nilai. Pada saat Wn = 0.2 sinyal benar-benar megalami
4 Wn 0, 75( Highpass) peredaman dengan adanya suatu ripple pada frekuensi
FS 0,5 16000 0,3 diatas.
Initialisasi nilai;
f = [0.01 – 0.031]
A = [1 1 0 0]
sebanyak N+1. Vektor f dan A menetapkan sebuah
frekuensi dan magnitude untuk filter sehingga dapat
dilakukan perintah plot (f,A) yang akan menghasilkan
gambar dari respons frekuensi yang diinginkan. Nilai
frekuensi pada vektor f haruslah bernilai antara 0.0 < f <
1.0, dimana vektor dari 1.0 menunjukkan setengah dari
frekuensi sampling. Nilai pada vektor f harus bertambah,
dimulai dari 0.0 hingga 1.0.
Perbedaan nilai orde pada fungsi yang digunakan hanya
berpengaruh pada jumlah sampel yang digunakan.
Misalnya untuk orde 16 digunakan sampel sebanyak 16
buah dan untuk orde 128 digunakan sampel sebanyak
128 buah.
Fungsi;
y = my_conv (x,h) merupakan nama fungsi
Inisialisasi;
x2 = h; merupakan assign dengan filter h
lx = length (x) merupakan length sinyal input
lh = length (h) meruapakan length filter h
Dari hasil percobaan diaatas dapat disimpulkan sebagai [1] T.H. Mervin. 2018.Petunjuk Praktikum Pengolahan Sinyal
berikut : Digital EL-2140. ITB, Bandung.
[2] Proakis, Jhon. Manolakis, Dimitris. 1998. Digital Signal
1. Perintah help dapat digunakan untuk mengetahui Processing, principles, algoritm, and application. Prentice
tentang penjelasan commands dan syntax dasar dari Hall.
fungsi-fungi yang ada pada MATLAB. [3] Dadang Gunawan and Filbert Hilman Juwono. 2012.
Digital Signal Processing With Matlab Programming.
2. MATLAB dapat digunakan untuk melakukan desain Graha knowledge:Yogyakarta.
filter dalam suatu sinyal.
3. Pada MATLAB terdapat 2 jenis fungsi filter yang
dapat langsung digunakan, yaitu FIR 1 dan FIR 2.
Keduanya sama-sama dapat digunakan untuk malakukan
filter terhadap sinyal dengan variabel input berupa orde
dan frekuensi cut off sinyal. Perbedaan kedua filter ini
yaitu pada metode pem-filter-an yang digunakan.
Dimana pada FIR1, metode pemfilteran yang digunakan
yaitu dengan window method sedangkan pada FIR2
digunakan metode dengan memanfaatkan frekuensi
sampling.
i = 1:100
fs = 16000
f1 = 200
f2 = 1000
f3 = 5000
sin1 = sin(2*pi*i*(f1/fs))
sin2 = sin(2*pi*i*(f2/fs))
sin3 = sin(2*pi*i*(f3/fs))
sintot = (sin1+sin2+sin3)/3
figure (1);
subplot(2,1,1); plot(i,sin1); title('sin1')
subplot(2,1,2); plot(i,sin2); title('sin2')
figure (2);
subplot(2,1,1); plot(i,sin3); title('sin3')
subplot(2,1,2); plot(i,sintot); title('sintot')
freqz (sintot);
PERCOBAAN 2
LowPass = fir1(32,0.1);
freqz(LowPass);
BandPass = fir1(32,[0.125 0.375],'bandpass');
freqz(BandPass);
HighPass = fir1(32,0.75,'High');
freqz(HighPass);
PERCOBAAN 3
lowpass = fir2(128,f,A);
freqz(lowpass);
PERCOBAAN 4
function y=my_conv(x,h)
x2=h;
lx=length(x);
lh=length(h);
if lx>lh
x2=[x2 zeros(1,lx-lh)];
else
x=[x zeros(1,lh-lx)];
end
y=zeros(1,lx+lh-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:i));
else
j=i-length(x);
y(i)=sum(x(1,1:length(x)-j).*x2(1,j+1:length(x2)));
end
end