[ cos(0.1*pi), sin(pi/3), tan(3), atan(2), sqrt(pi) ]; Pengindeksan mundur akan membalikkan sebuah
vektor, misalnya X(9:‐1:1) untuk sebuah vektor
Ketika sebuah ekspresi perintah atau pernyataan yang berisi 9 buah elemen. Kadang ‐ kadang,
diakhiri dengan tanda semicolon (;), maka Anda juga memerlukan sebuah daftar yang berisi
hasilnya tidak akan ditampilkan di layar. Hal ini semua nilai elemen pada matriks, jadi A(:)
sangat membantu ketika Anda bekerja dengan memberikan sebuah vektor kolom 72 x 1, yang
matriks dengan ukuran yang sangat besar.
merupakan hasil concatenation elemen ‐elemen
Ukuran dari sebuah matriks dapat diketahui setiap kolom matrik A. Ini merupakan contoh
dengan operator size: reshaping matriks. Teknik reshaping yang lebih
umum dapat dilakukan dengan fungsi
>>Msize = size(M)
reshape(A,M,N). Sebagai contoh, matriks A 9 x 8
Msize = dapat di‐reshape menjadi sebuah matriks 12 x 6
23 dengan Anew = reshape(A,12,6).
Oleh karena itu, kita tidak perlu menggunakan b) Operasi Matriks dan Array
variabel khusus untuk melacak jumlah baris dan Operasi default pada MATLAB adalah operasi
kolom suatu matriks. Ada dua jenis variabel matriks. Jadi A*B berarti perkalian matriks, yang
matriks pada MATLAB, yakni skalar (scalars) dan akan dibahas pada bagian berikut.
vektor (vectors). Sebuah skalar adalah sebuah
matriks yang hanya berisi satu elemen, jadi c) Tinjauan Perkalian Matriks
berukuran 1 x 1. Sebuah vektor adalah sebuah
matriks yang hanya berisi satu baris atau kolom.
LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 2
Operasi perkalian matriks AB hanya dapat sesuai dengan operasi concatenation
dilakukan bila kedua matriks tersebut memiliki yangdiinginkan. Dalam MATLAB terdapat dua
dimensi yang kompatibel, yakni jumlah kolom buah fungsi yang dapat digunakan untuk
matriks A harus sama dengan jumlah baris melakukan proses concatenation (penempelan)
matriks B. Sebagai contoh, sebuah matriks 5 x 8 arrays. Fungsi tersebut adalah vertcat dan horzcat.
dapat mengalikan sebuah matriks 8 x 3 untuk Penjelasan lanjut dapat dilihat pada help
menghasilkan sebuah matriks AB 5 x 3. Secara MATLAB untuk fungsi‐fungsi tersebut.
umum, bila A adalah m x n, maka B haruslah n x p,
dan hasil perkalian AB akan memiliki dimensi m x 2.3 PLOT DAN GRAFIK
p. Umumnya perkalian matriks tidak bersifat
MATLAB dapat menghasilkan plot dua dimensi x
komutatif, yakni AB ≠ BA. Bila p ≠ m, maka
‐y dan plot tiga dimensi, menayangkan citra, dan
perkalian AB tidak terdefinisi.
bahkan membuat dan memutar video. Dua fungsi
Beberapa kasus khusus untuk perkalian matriks yang yang sering digunakan pada praktikum ini
adalah outer product dan inner product. Pada adalah plot dan stem. Untuk memanggil fungsi ini,
outer product, sebuah vector kolom mengalikan umumnya kita membutuhkan dua vektor (satu
sebuah vektor baris untuk menghasilkan sebuah vektor juga bisa, namun untuk definisi yang
matriks. Bila kita membiarkan semua elemen salah berbeda, gunakan perintah help untuk melihat
satu vektor tersebut berupa ‘1’ , maka kita akan informasi yang lebih lengkap), untuk sumbu x dan
memperoleh hasil yang berulang. sumbu y. Pemanggilan fungsi plot(x,y) akan
menghasilkan suatu plot yang terkoneksi dengan
Untuk inner product, sebuah vektor baris
garis lurus untuk setiap dua titik
mengalikan sebuah vektor kolom, jadi hasilnya
berupa skalar. Bila kita membiarkan semua { (x(1),y(1), (x(2),y(2), (x(3),y(3), …….., (x(N),y(N) }
elemen salah satu vektor tersebut berupa ‘1’, maka
seperti yang ditunjukkan pada Gambar PA.1.
kita akan memperoleh penjumlahan semua
elemen vektor lainnya. Pemanggilan fungsi stem(x,y) akan menghasilkan
presentasi seperti yang ditunjukkan pada gambar
d) Operasi Pointwise Array
kedua PA.1.
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 sama. Sebagai
contoh, dua matriks 5 x 8 dapat dikalikan secara
pointwise, walaupun keduanya tidak bisa
melakukan perkalian matriks biasa. Untuk
melakukan perkalian pointwise pada MATLAB,
kita menggunakan operator “point‐star” A .* B.
Misalnya bila A dan B keduanya adalah matriks 3
x 2 maka:
Untuk selanjutnya, perkalian semacam ini kita
sebut dengan istilah perkalian array. Perhatikan
bahwa perkalian array bersifat komutatif karena
kita akan memperoleh hasil yang sama bila kita Gambar 2.1 Gambar PA.1
menghitung D = B.*A.
MATLAB memiliki banyak opsi plotting yang
Dalam MATLAB, bila sebuah “titik” digunakan dapat dipelajari dengan help plotxy, help plotxyz,
dengan operator aritmetik, maka ia akan dan help graphics (versi 4) atau help graph2d,
mengubah definisi operator tersebut ke operasi help graph3d, dan help specgraph (versi 5).
pointwise. Jadi operator ./ berarti pembagian
pointwise, .^ berarti pemangkatan pointwise. 2.3.1 VARIABEL DAN OPERASI MATRIKS
Misalnya, xx = (0.9).^(0:49) akan menghasilkan
suatu vektor yang nilainya sama dengan (0,9)n Ketika MATLAB membuat sebuah plot,
untuk n = 0,1, 2, …49. MATLAB menulis grafik tersebut ke figure
windows. Anda bisa membuka beberapa figure
e) Operasi Concatenation Array windows namun setiap saat hanya satu window
Operasi ini digunakan untuk menempelkan dua yang aktif. Setiap perintah plot pada command
atau lebih array dengan syarat syarat tertetu window akan mengalihkan keluarannya ke
Plot sinyal keluaran menggunakan Kemudia tiga sinyal tersebut dijumlahkan dengan
perintah stem perintah sebagai berikut:
>> sin1=sin(2*pi*i*f1/fs+0.6903);
sin2=sin(2*pi*i*f2/fs+0.7393);
sin3=sin(2*pi*i*f3/fs+2.2584);
Plot spektrum frekuensi menggunakan
Kemudian tiga sinyal tadi dijumlahkan dengan
perintah freqz
perintah sebagai berikut:
>> sintot1=(sin1+sin2+sin3)/3;
Dan plot sinyal sintot1 dengan perintah stem dan
freqz.
LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 6
Gambar 4.4 Nilai frekuensiuntuksinyal sintot2
Setelah nilai frekuensi didapat maka langkah
selanjutnya sama seperti percobaan untuk
membuat sinyal sintot1.
>>i=0:99;
>> fs=18000;
>> f1=200;
>> f2=800;
>> f3=1400;
>> f4=2000;
>> f5=2600;
Gambar 4.2 Grafik stem sintot1 >> f6=3200;
>> f7=3800;
>> f8=4400;
>> f9=5000;
>> f10=5600;
>> f11=6200;
>> f12=6800;
>> f13=7400;
>> f14=8000;
>> theta1 = -pi+2*pi*rand(1,1);
theta2 = -pi+2*pi*rand(1,1);
theta3 = -pi+2*pi*rand(1,1);
theta4 = -pi+2*pi*rand(1,1);
Gambar 4.3 Responfrekuensisinyal sintot1
theta5 = -pi+2*pi*rand(1,1);
Selanjutnya buat sebuah sinyal sintot2 dengan
frekuensi f = [200:600:8000]. Sebelumnya kita cari theta6 = -pi+2*pi*rand(1,1);
dulu nilai dari setiap frekuensinya dengan theta7 = -pi+2*pi*rand(1,1);
perintah for loop sebagai berikut:
theta8 = -pi+2*pi*rand(1,1);
theta9 = -pi+2*pi*rand(1,1);
theta10 = -pi+2*pi*rand(1,1);
theta11 = -pi+2*pi*rand(1,1);
theta12 = -pi+2*pi*rand(1,1);
theta13 = -pi+2*pi*rand(1,1);
theta14 = -pi+2*pi*rand(1,1);
>> sin1=sin(2*pi*i*f1/fs+0.9661);
sin2=sin(2*pi*i*f2/fs-0.0366);
sin3=sin(2*pi*i*f3/fs+1.7533);
sin4=sin(2*pi*i*f4/fs+1.3511);
sin5=sin(2*pi*i*f5/fs+2.5367);
sin6=sin(2*pi*i*f6/fs+2.4562);
sin7=sin(2*pi*i*f7/fs-1.0420);
sin8=sin(2*pi*i*f8/fs+1.2488);
Gambar 4.9 Responsimpuls filter LPF Gambar 4.12 Responsimpuls filter BPF
1. Berapa nilai magnitude responsfrekuensi Sehingga, dari hasil analisis ini desain dan respon
filter di frekuensi cut-off? Apakah sama ketiga FIR tersebut sesuai dengan teori yang ada,
dengan teori? yaitu menggunakanmetode window.
Pada percobaan ini, dilakukan desain filter digital 4.3 MELAKUKAN PENAPISAN
untuk low-pass, band-pass, dan high-pass. Pada
matlab, digunakan fungsi fir1 untuk mendesain Kemudian pada percobaan ini dilakukan
penapisan untuk masukan sinyal sintot1 dan
LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 10
sinyal sintot2 dengan menggunakan ketiga filter
FIR yang telah dibuat dengan menggunakan
perintah conv.
>> stem(x);
>>freqz(x);
Kedua dilakukan penapisan untuk sinyal sintot1 Gambar 4.26 Respons stemp sinyal sintot2
dengan filter HPF, berikut programnya.
LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 12
spectrum frekuensi yang dihasilkan untuk LPF
adalah frekuensi bawah (<1000 Hz), BPF pada
frekuensi antara (1000-4000 Hz), dan HPF pada
frekuensi atas (> 4000 Hz).
5. KESIMPULAN
a. Pada percobaan 1, dilakukan pembuatan
sinyal masukan filter dengan komponen-
komponen filter dan variasi frekuensi sinyal.
Lalu dilakukan deklarasi komponen-
komponen sinyal dan persamaan sinyal yang
dibuat dengan fungsi-fungsi pada matlab.
Dihasilkan sinyal sinusoidal yang
mempunyai frekuensi sampling yang sesuai
Gambar 4.27 Respons frekuensi sinyal sintot2 dengan teori, agar tidak terjadi aliasing.
Pertanyaan: b. Pada percobaan 2, ,mendesain sebuah filter
Jelaskan perbedaan sinyal keluaran ketiga macam FIR pada matlab dan simulasi filter yang
filter tersebut (LPF, BPF, HPF). Hubungkan dibuat, menggunakan fungsi fir1. Didapat
dengan spectrum frekuensi sinyal keluaran. hasil bahwa filter tersebut menggunakan
metode window dan setiap filter mempunyai
Pada keluaran yang ditunjukkan, terlihat bahwa karakteristik dan kegunaan masing-masing.
setiap filter mempunyai efek yang berbeda pada Repson impulse dan frekuensi yang
tiap-tiap sinyal yang diberikan. Sebelumnya, dihasilkan terhadap teori yang ada
bentuk keluaran sinyal sintot1 dan sintot2 pada mempunyai kesesuaian.
percobaan sebelumnya digunakan sebagai sinyal
perbandingan terhadap sinyal yang telah di filter. c. Pada percobaan 3, dilakukan filter sinyal
input terhadap filter yang telah dibuat.
Pertama diamati plot darifungsi stem, yang mana Hasilnya menunjukan bahwa keluaran setiap
fungsi ini berguna untuk plot sebuah data diskrit, filter mempunyai bentuk yang berbeda-beda
dalam hal ini sinyal diskrit. Sumbu x merupakan walaupun sinyal inputnya sama. Hal ini
panjang sinyal hasil konvolusi dan sumbu y terjadi dikarenakan setiap filter mempunyai
adalah amplitude data. Untuk keluaran sinyal karakteristik yang berbeda-beda, dengan
sintot 1, terdapat perbedaan plot antara tiga filter kemampuan meredam sinyal pada frekuensi
tersebut. Untuk LPF, keluaran berada pada tertentu.
amplitude dibawah 0,1. Lalu, untuk BPF, keluaran
berada pada rentang 0,1-0,4. Terakhir, HPF, DAFTAR PUSTAKA
keluaranberada pada amplitude tinggi. Hal ini
menunjukkan, bahwa perbedaan spectrum [1] Insani Abdi B., Modul Praktikum Pengolahan
tersebut terjadi karena hasil penapisan. Sehingga, Sinyal Digital, UNSIKA, Karawang, 2020
keluaran yang dihasilkan pun sesuai dengan [2] Insani Abdi B., Kuliah PSD: Desain Filter FIR,
karakteristik setiap filter. Dilihat dari plot respon UNSIKA, Karawang, 2019.
frekuensinya, bahwa keluaran sinyal mendekati
[3] https://www.mathworks.com/matlabcentral/ans
respon frekuensi filter pada percobaansebelumnya.
wers/54875-cutoff-freq-of-butterworth-filter, 16
Jika disbandingkan sinyal referensi, semua
April 2020, 14.27.
keluaran filter menyerupai sinyal inputnya.
[4] https://www.mathworks.com/matlabcentral/ans
Selanjutnya, diamati setiap keluaran sinyal sintot2
wers/258846-what-is-actually-normalized-
terhadapmasing-masing filter. Hal yang serupa frequency, 16 April 2020, 15.55.
dengan keluaran sintot1 juga terjadi pada setiap
keluarannya. Jika setiap keluaran dibandingkan [5] https://www.allaboutcircuits.com/technical-
dengan sinyal referensi, untuk hasil LPF, sinyal articles/design-examples-of-fir-filters-using-
keluarannya hanya yang mempunyai amplitude window-method/, 16 April 2020, 17.11.
dibawah 0,1. Hal tersebut terjadi juga pada
keluaran BPF dan HPF, hasilnya hanya yang
sesuai dengan karakteristik masing-masing filter.
Jika diamati juga pada responfrekuensinya,
setiapkeluaran filter menyerupai respon frekuensi
filter pada percobaan sebelumnya. Sehingga,