Anda di halaman 1dari 14

Percobaan I

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:

2.1 MATLAB HELP


iii = nilai awal : interval : nilai akhir
MATLAB menyediakan sistem help on-line yang dapat
diakses dengan suatu perintah help. Misalnya, untuk
Tanpa parameter interval, nilai default-nya adalah 1.
memperoleh informasi mengenai fungsi filter, Anda
Metode perhitungan ini mirip dengan notasi loop DO
hanya perlu mengetikkan perintah
pada FORTRAN, namun metode pada MATLAB
selangkah lebih maju dengan cara menggabungkannya
>> help filter dengan pengindeksan matriks. Untuk sebuah matriks A 9
x 8, A(2,3) adalah elemen skalar yang berada pada baris
kedua dan kolom ketiga dari matriks A. Jadi sebuah
submatriks 4 x 3 dapat diekstrak dengan perintah
Perintah di atas akan menampilkan informasi dalam
A(2:5,1:3). Tanda colon juga berfungsi sebagai sebuah
bentuk teks pada layar MATLAB Anda. Sebuah perintah
wild card, misalnya, A(2,:) adalah baris kedua matriks A.
yang sangat berguna untuk mempelajari pemrograman
MATLAB adalah intro, yang membahas konsep-konsep
Pengindeksan mundur akan membalikkan sebuah vektor,
dasar tentang bahasa MATLAB. Selain itu, juga terdapat
misalnya X(9:-1:1) untuk sebuah vektor yang berisi 9
banyak program demonstrasi yang mengilustrasikan
buah elemen. Kadang-kadang, Anda juga memerlukan
berbagai kapabilitas MATLAB, yang dapat dimulai
sebuah daftar yang berisi semua nilai elemen pada
dengan perintah demo.
matriks, jadi A(:) memberikan sebuah vektor kolom 72 x
1, yang merupakan hasil concatenation elemen-elemen
2.2 VARIABEL DAN OPERASI MATRIKS
setiap kolom matrik A. Ini merupakan contoh reshaping
Tipe variabel dasar pada MATLAB adalah matriks (pada matriks. Teknik reshaping yang lebih umum dapat
versi 5 dan ke atas, MATLAB juga menyediakan dilakukan dengan fungsi reshape(A,M,N). Sebagai
berbagai tipe data seperti pada bahasa pemrograman contoh, matriks A 9 x 8 dapat di-reshape menjadi sebuah
lainnya). Untuk mendeklarasikan sebuah variabel, Anda matriks 12 x 6 dengan Anew = reshape(A,12,6).
hanya perlu memberikan nilai tertentu padanya pada
MATLAB prompt. Sebagai contoh: 2.2.2. OPERASI MATRIKS DAN ARRAY

 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:

Ada dua jenis variabel matriks pada MATLAB, yakni


skalar (scalars) dan vektor (vectors). Sebuah skalar
adalah sebuah matriks yang hanya berisi satu elemen,
jadi berukuran 1 x 1. Sebuah vektor adalah sebuah
matriks yang hanya berisi satu baris atau kolom.

2.2.1. OPERATOR COLON


Untuk inner product, sebuah vektor baris mengalikan
Operator colon (:) sangat berguna untuk membuat index
sebuah vektor kolom, jadi hasilnya berupa skalar. Bila
arrays. Gunakan perintah help colon untuk mengetahui
kita membiarkan semua elemen salah satu vektor tersebut
deskripsi detail tentang kapabilitasnya. Notasi colon
berupa „1‟, maka kita akan memperoleh penjumlahan
didasarkan pada ide bahwa sebuah selang indeks dapat
semua elemen vektor lainnya.
dihasilkan dengan memberikan sebuah nilai awal,
interval, dan sebuah nilai akhir.
2.4 KONSTRUK PEMROGRAMAN

MATLAB merupakan suatu aplikasi yang mendukung


paradigma pemrograman fungsional, di mana Anda dapat
menyusun fungsi-fungsi secara nested. Perhatikan
persamaan di bawah:

 Operasi pointwise array


Bila kita ingin melakukan perkalian pointwise, ada
beberapa kebingungan yang bisa muncul. Pada kasus
pointwise, kita ingin mengalikan matriks secara elemen
per elemen, jadi mereka harus memiliki dimensi yang Yang dapat digunakan untuk diimplementaskan dengan
sama. Sebagai contoh, dua matriks 5 x 8 dapat dikalikan menggunakan satu baris kode MATLAB, yakni
secara pointwise, walaupun keduanya tidak bisa
melakukan perkalian matriks biasa. Untuk melakukan sum( log( abs(x) ) )
perkalian pointwise pada MATLAB, kita menggunakan
operator “point-star” A*B. Misalnya bila A dan B
keduanya adalah matriks 3 x 2 maka: di mana x adalah sebuah vektor yang berisi elemen-
elemen xn. Contoh ini mengilustrasikan MATLAB
dalam bentuk yang paling efisien, di mana fungsi-fungsi
individu dikombinasikan untuk menghasilkan keluaran.
Penulisan dalam sebuah kode-kode MATLAB secara
efisien sangat memerlukan adanya gaya pemrograman
yang dapat menghasilkan fungsi-fungsi kecil yang dapat
Untuk selanjutnya, perkalian semacam ini kita sebut divektorisasi. Loop-loop harus dihindari. Cara utama
dengan istilah perkalian array. Perhatikan bahwa untuk menghindari loop adalah memanggil fungsi-fungsi
perkalian array bersifat komutatif karena kita akan toolbox sebanyak atau sesering mungkin.
memperoleh hasil yang sama bila kita menghitung D =
B.*A. 2.5 MATLAB SCRIPTS
 Operasi Concanetion Array Setiap perintah/pernyataan yang dapat dimasukkan pada
Operasi ini digunakan untuk menempelkan dua atau window prompt dapat disimpan pada sebuah file teks dan
lebih array dengan syarat syarat tertetu sesuai dengan dieksekusi sebagai script. File teks tersebut dapat dibuat
operasi concatenation yangdiinginkan. Dalam MATLAB dengan menggunakan sembarang editor ASCII seperti
terdapat dua buah fungsi yang dapat digunakan untuk program Notepad atau pada editor teks MATLAB.
melakukan proses concatenation (penempelan) arrays. Ekstensi file harus berupa .m dan script tersebut
Fungsi tersebut adalah vertcat dan horzcat. Penjelasan dieksekusi pada MATLAB dengan hanya mengetikkan
lanjut dapat dilihat pada help MATLAB untuk fungsi- nama file (dengan atau tanpa ekstensi). Program-program
fungsi tersebut. tersebut umumnya dikenal dengan istilah m-file.Berikut
merupakan contoh sebuah m-file:
2.3 PLOT GRAFIK
tt = 0:0.3:4;
MATLAB dapat menghasilkan plot dua dimensi x-y dan
xx = sin(0.7*pi*tt);
plot tiga dimensi, menayangkan citra, dan bahkan
subplot(2,1,1)
membuat dan memutar video. Dua fungsi yang yang
plot( tt, xx)
sering digunakan pada praktikum ini adalah plot dan
stem. Untuk memanggil fungsi ini, umumnya kita title(‘tt = 0:0.3:4; xx = sin(0.7*pi*tt); plot( tt, xx)’)
membutuhkan dua vektor (satu vektor juga bisa, namun subplot(2,1,2)
untuk definisi yang berbeda, gunakan perintah help stem( tt, xx)
untuk melihat informasi yang lebih lengkap), untuk title(‘‘tt = 0:0.3:4; xx = sin(0.7*pi*tt); plot( tt, xx)’)
sumbu x dan sumbu y. Pemanggilan fungsi plot(x,y)
akan menghasilkan suatu plot yang terkoneksi dengan
garis lurus untuk setiap dua titik { (x(1),y(1), (x(2),y(2), Bila perintah-perintah ini disimpan dengan file bernama
(x(3),y(3), …….., (x(N),y(N) }. plotstem.m maka pengetikan plotstem pada command
prompt akan menjalankan file tersebut, dan kedelapan
baris perintah akan dieksekusi sama halnya bila mereka
diketikkan baris per baris pada command prompt.
Hasilnya adalah dua buah plot seperti yang tampak pada
gambar 1.

Setiap perintah/pernyataan yang dapat dimasukkan pada


window prompt dapat disimpan pada sebuah file teks dan
dieksekusi sebagai script. File teks tersebut dapat dibuat
dengan menggunakan sembarang editor ASCII seperti
Gambar 1: Plot Grafik X,Y program Notepad atau pada editor teks MATLAB.
2.6 MENULIS FUNGSI MATLAB

Kita dapat menulis fungsi sendiri dan kemudian


ditambahkan pada environment MATLAB. Fungsi-
Dibuat 3 sinyal sinusoidal pada frekuensi
fungsi ini merupakan jenis lain dari m-file, dan dibuat
pencuplikan fs = 16kHz untuk masing-masing
sebagai sebuah file ASCII menggunakan editor teks.
frekuensi sinyal f1 = 200Hz, f2 = 1kHz, f3 =
Kata pertama pada m-file tersebut haruslah
5kHz. Diketikan suatu masukkan nilai variable:
keywordfunction untuk memberitahukan MATLAB
>> sin 1 = sin(2*pi*i*f1/fs); sin 2 = sin
bahwa file tersebut diperlakukan sebagai sebuah fungsi
dengan argumen. Pada baris yang sama juga berisi (2*pi*i*f2/fs) ; sin 3 = sin (2*pi*i*f3/fs);
calling template yang menyatakan argumen input dan
output dari fungsi. Nama file untuk m-file tersebut
haruslah berekstensi .m dan nama fungsi tersebut akan
menjadi nama dari perintah baru pada MATLAB.
Sebagai contoh, coba perhatikan file berikut ini, yang Dijumlahkan ketiga sinyal tersebut menjadi satu
mengekstrak L buah elemen terakhir dari sebuah vector. sinyal sinusoidal rusak dengan perintah >>
sintot = (sin1+sin1+sin3)/3;
function y = foo( x, L )
%FOO mengambil L buah titik terakhir dari x
% penggunaan:
% y = foo( x, L )
% di mana: Dicoba lot gambarnya dengan perintah >>plot
% x = vektor input (sintot)
% L = jumlah titik yang ingin diambil
% y = vektor output
N = length(x);
If (L > N)
error(„ve ktor input terlalu pendek‟) Dilihat juga respon frekuensinya dengan
end perintah freqz
y = x(( N-L+1):N );

3.2.2. Percobaan desain dan simulasi filter FIR I


III. METODOLOGI
Dibuat beberapa filter dengan spesifikasi
3.1. Alat dan Bahan sebagai berikut:
a. Filter FIR low-pass orde 32 dengan frekuensi
Pada percobaan pengenalan MATLAB, ada 4 percobaan cut-off 800Hz
yang akan dilakukan yaitu percobaan membuat sinyal b. Filter FIR ban-pass orde 32 dengan frekuensi
output-input filter berupa superposisi beberapa sinyal pass 1000-3000Hz
sinusoidal dengan frekuensi berbeda, percobaan desain c. Filter FIR high-pass orde 32 dengan frekuensi
dan simulasi filter FIR 1, percobaan desain dan simulasi cut-off 6000Hz
FIR, dan percobaan membuat m-file untuk melakukan
pem-filteran FIR. Berikut ini alat dan bahan yang
digunakan :

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)

3.2. Langkah Kerja Kemudia mencari nilai Wn pada saat low-pass,


high-pass, dan band-pass pada saat Freq cut-off
3.2.1. Percobaan membuat sinyal output-input filter
berupa superposisi beberapa sinyal sinusoidal dengan
frekuensi berbeda

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)

Dirancang filter diatas, dicari nilai koefisien


filternya dengan perintah yang sesuai (FIR II). Gambar 1: Sinyal Sinusoidal 200Hz
Kemudian catat nilai koefisien filter. Gunakan
freq filter dengan orde 16 Sinyal kedua memiliki niali frekuensi sebesar 1000Hz,
seperti pada gambar berikut:

Dilihat freq respon filter dengan perintah freqz.


Digambarkan hasilnya. Kemudian lakukan
dengan menggunakan nilai orde yang lebih
besar misalnya 128. Kemudia bandingkan
dengan hasil orde sebelumnya
Gambar 2: Sinyal Sinusoidal 1000Hz

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:

Pada bagian ini dibuat sebuah program m-file


untuk melakukan pemfilteran FIR saja, untuk
m-file tersebut tidak diperbolehkan memanggil
fungsi internal MATLAB.

Gambar 3: Sinyal Sinusoidal 5000Hz


Kemudian masukkan source code untuk
melakukan pemfilteran FIR Kode matlab untuk pengeplotan ketiga sinyal tersebut
yaitu :

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)

IV. HASIL DAN ANALISIS


Rumus fungsi;
4.1 Percobaan membuat sinyal input filter berupa sin1 = sin(2*pi*i*(f1/fs)) (fungsi1)
superposisi beberapa sinyal sinusoidal dengan sin2 = sin(2*pi*i*(f2/fs)) (fungsi2)
frekuensi berbeda sin3 = sin(2*pi*i*(f3/fs)) (fungsi3)

Pada percobaan pertama ini dilakukan representasi 3


buah sinyal sinusoidal dengan nilai frekuensi yang
berbeda-beda (dengan nilai frekuensi sampling sebesar Display;
16kHz). Representasi sinyal tersebut dilakukan sebanyak figure (1);
100 sampel. Sinyal sinusoidal pertama meiliki nilai subplot(2,1,1); plot(i,sin1);
frequensi sebesar 200Hz, untuk sinusoidal kedua title('sin1') {plot sinyal 1}
memiliki nilai frequensi sebesar 1000Hz, dan terakhir subplot(2,1,2); plot(i,sin2);
untuk sinusoidal ketiga memiliki nilai frequensi sebesar title('sin2') {plot sinyal 2}
5000Hz. Kemudia dipercobaan pertama menggunakan figure (2);
persaaman berikut : >>sin 1 = sin(2*pi*i*f1/fs); sin 2 = subplot(2,1,1); plot(i,sin3);
sin (2*pi*i*f2/fs) ; sin 3 = sin (2*pi*i*f3/fs); title('sin3') {plot sinyal 3}
Selanjutnya dilakukan pengeplotan sinyal total yang 4.2 Percobaan desain dan simulasi filter FIR I
merupakan hasil penjumlahan dari ketiga sinyal. Berikut
gambarnya : Pada percobaan 2, dilakukan pembuatan 3 filter dengan
memanfaatkan fungsi FIR yang telah ada di MATLAB.
Filter pertama yang dibuat yaitu sebuah:

 FIR low-pass orde 32 frekuensi cut-off 800Hz


 FIR high-pass orde 32 frekuensi cut-off 6000Hz
 FIR band-pass orde 32 frekuensi pass 1000-
3000Hz

Berikut ini, merupakan hasil output respon frequensinya:

Gambar 4: Sintot ((sin1+sin2+sin3)/3)

Dari sinyal total diatas, dapat dibuat pula hasil respons


frequensinya sebagai berikut:

Gambar 6: Respon frequensi low-pass

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

Kemudian yang analisis kedua, berikut ini hasil output


frequensinya;
Display:
Subplot (2,1,2); plot (i,sintot); title („sintot)
merupakan suatu hasil dari grafik sinyal total
dan pemberitaan judul grafik

Display:
Subplot (2,1,2); plot (i,sintot); merupakan suatu
hasil dari grafik sinyal total

Fungsi: Gambar 7: Respon frequensi Band-pass


Freqz (sintot); merupakan suatu perintah untuk
mengamati respons
Rumus fungsi;
Bamd-Pass = firl(32,[0.125,0.375],‟band-pass‟);
Dari data yang diperoleh dari sebuah sinyal input filter merupakan filter bandpass dengan mencari nilai
yaitu berupa sinyal total hasil dari penjumlahan 3 buah koef menggunakan perintah firl
sinyal sinusoidal dengan frequensi 200Hz, 1000Hz, dan
5000Hz. Dapat dilihat perbandingan dengan perintah
nilai i = 1:100 tergantung dengan banyaknya sampel. I = Fungsi:
100 merupakan suatu hasil superposisi dengan panjang Freqz (Band-pass); merupakan suatu perintah
vektor gabungan dari suatu sinyal 1, sinyal 2, dan sinyal untuk mengamati respons
3.
Kemudian yang analisis ketiga berikut ini merupakan
hasil output frequensinya;

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.

Berikut ini merupakan hasil ouput nilai koefisien dalam


FIR low-pass, High-pass, dan High-pass dengan orde 32:

Gambar 13: Output Respon Frequensi saat Peredaman


Gambar 13 diatas menunjukkan sebuah hasil ouput
frequensi dari band-pass filter saat mengalami frekuensi
cut-off. Dapat dilihat, respom frekuensi filter yang
dihasilkan menunjukkan bahwa pada nilai frekuensi cut-
off (hal ini menunjukkan dengan adanya nilai Wn-0.125,
0.375), mulai menunjukkan adanya suatu efek redaman
terhadap sinyal input sehingga inpputnya mengalami
pelemahan nilai.
Gambar 9: Koefisien orde 32 pada Low-pass
Pada saat Wn = 0.125, 0.375 sinyal benar-benar
megalami peredaman dengan adanya suatu ripple pada Eksekusi Program;
frekuensi diatas. 1. Untuk Orde 16
Low-pass = fir2 (16, f, A); perintah tersebut
digunakan dalam pembuatan filter low-pass
dengan mencari suatu nilai koefiesienya
menggunakan perintah fir2

2. Untuk Orde 128


Gambar 14: Output Respon Frequensi saat Peredaman Low-pass = fir2 (128, f, A); perintah tersebut
digunakan dalam pembuatan filter low-pass
Gambar 14 diatas menunjukkan sebuah hasil ouput
dengan mencari suatu nilai koefiesienya
frequensi dari high-pass filter saat mengalami frekuensi
menggunakan perintah fir2
cut-off. Dapat dilihat, respom frekuensi filter yang
dihasilkan menunjukkan bahwa pada nilai frekuensi cut-
off (hal ini menunjukkan dengan adanya nilai Wn-0.75),
Fungsi;
mulai menunjukkan adanya suatu efek redaman terhadap
Freqz (low-pass); perintah tersebut untuk
sinyal input sehingga inpputnya mengalami pelemahan
melihat sebuah output frekuensi respon dari
nilai.
low-pass filter dengan orde 16 dan 128
4.3 Percobaan desain dan simulasi filter FIR II
Percobaan ketiga yaitu melakukan suatu perancangan
filter low-pass dengan metode frekuensi sampling Berikut ini merupakan hasil ouput nilai koefisien dalam
dengan menggunakan grafik response frekuensi yang FIR low-pass dengan orde 16 dan 128.
telah ditentukam. Berikut ini merupakan hasil dari
frekuensi response yang dihasilkan untuk dua orde yang
berbeda yakni pada orde 16 dan 128.

Gambar 17: Koefisien orde 16 pada Low-pass

Gambar 15: Filter dengan orde 16

Gambar 16: Filter dengan orde 128

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.

4.4 Percobaan membuat m-file untuk melakukan


pemfilter-an FIR

Pada percobaan 4, praktikan diminta untuk membuat m-


file untuk melakukan pemfilteran saja, namun dengan
ketentuan tidak diperbolekan untuk memanggil fungsi
internal MATLAB. Kemudian hasil dari penggunaan m-
file tersebut dibandingkan dengan hasil yang diperoleh
dengan menggunakan fungsi filter yang telah ada pada
MATLAB. Berikut merupakan hasil konvolusi sinyal
input (sintot percobaan 1) dengan filter low-pass
menggunakn fungsi filter yang telah ada pada MATLAB:

Gambar 19: Konvolusi sinyal total dengan filter low-pass


filter menggunakan perintah filter dari MATLAB

Gambar 20: Frekuensi response sinyal hasil konvolusi


menggunakan perintah filter dari MATLAB
Kemudian hasil diatas akan dibandingkan dengan hasil
konvolusi sinyal input dan filter yang sama namun
Gambar 18: Koefisien orde 128 pada Low-pass dilakukan dengan m-file yang telah dibuat praktikan,
yaitu sebagai berikut:
Pada MATLAB telah disediakan fitur filer FIR2 yang
digunakan untuk mendesain filter digital FIR orde N
dengan respons frekuensi yang ditentukan oleh vektor f
dan A, serta menghasilkan koefisien filter pada vector b
Fungsi M-file hampir sama dengan script file dimana
keduanya merupakan suatu file teks dengan ekstensi .m.
Fungsi M-file ini tidak dimasukkan dalam command
window, melainkan suatu file tersendiri yang dibuat
dalam editor teks (MATLAB editor/debugger). Suatu
fungsi M-File harus mengikuti beberapa aturan,
diantaranya : nama fungsi, baris komentar, serta
argument input dan output.
Penulisan barisan ekspresi dalam MATLAB command
window biasanya dilakukan baris perbaris dan biasanya
untuk menyimpan barisan perintah dan hasil outputnya
dengan menggunkan command diary. Hal ini sangatlah
Gambar 21: Konvolusi sinyal total dengan filter low-pass tidak efisien dikarenakan barisan yang telah tersimpan di
filter menggunakan source code diary tidak dapat diloadkan kembali seandaianya telah
keluar dari MATLAB. Apalagi jika dilakukan banyak
sekali perulangan barisan perintah yang sama, misalkan
dilakukan pengolahan data dan perhitungan yang
samayang melibatkan data atau fungsi yang berbeda.
Untuk itu MATLAB menyediakan suatu struktur untuk
membuat fungsi anda sendiri atau suatu teknik
pemrograman dalam bentuk M-File.
Berdasarkan fungsi m-file tersebut, maka telah dibuat m-
file untuk fungsi konvolusi yang telah dtuliskan diatas.
Dari m-file tersebut kemudian fungsi dijalankan di
MATLAB. Setelah output dicocokan dengan fungsi filter
yang telah ada pada MATLAB, ternyata diperoleh hasil
Gambar 22: Frekuensi response sinyal hasil konvolusi respons frekuensi yang sama sehingga dapat dipastikan
menggunakan source code fungsi m-file yang telah dibuat praktikan adalah benar.

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

Membalikan sinyal input;


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);

Membalikan sinyal input yang telah dibalik


dengan filter low-pass;
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
V. SIMPULAN REFERENSI

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.

4. Jenis-jenis pemfilteran dibagi menjadi 3 macam yaitu


low-pass filter, high-pass filter, dan band-pass filter.
5. Fungsi-fungsi dalam matematika sederhana juga dapat
dilakukan pada MATLAB untuk menjumlahkan dua atau
lebih sinyal.
6. Algoritma fungsi-fungsi tertentu dapat dibuat dalam
bentuk m-file pada MATLAB.
LAMPIRAN
PERCOBAAN 1

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

f = [0 0.1 0.3 1];


m = [1 1 0 0];
lowpass = fir2(16,f,A);
freqz(lowpass);

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

Anda mungkin juga menyukai