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
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
Low-pass filter
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.
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. 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