Anda di halaman 1dari 13

MODUL 1 PENGENALAN MATLAB

Eko Rizkyanto (1710631160048)


Asisten: FikriIkaPurnianto, RiyantIrawan, Rosita Dewi&Sukma Tri Raharja
Tanggal Percobaan: 14/04/2020
TEL61653-Praktikum PengolahanSinyal Digital
Laboratorium Komputasi–Fakultas Teknik UNSIKA

Abstrak MATLAB muerpakan software yang bersifat


extensible, dalam arti bahwa seorang pengguna
Praktikum kali ini praktikan diminta untuk
dapat menulis fungsi baru untuk ditambahkan
mengenal MATLAB dan kapabilitas nya sebagai pada library ketika fungsi-fungsi built-in yang
sebuah alat pemrograman untuk analisis dan tersedis tidak dapat melakukan tugas tertentu.
komputasi numerik. Aspek-aspek yang Kemampuan pemrograman yang dibutuhkan
diperhatikan adalah membuat sinyal input filter tidak terlalu sulit bila Anda telah memiliki
berupa super posisi beberapa sinyal sinusoidal pengalaman dalam pemrograman bahasa lain
dengan frekuensi berbeda, desain dan simulasi seperti C, PASCAL, atau FORTRAN.
filter FIR1 dan FIR2 untuk mencari respon
frekuensi, serta membuat m-file untuk melakukan 2.1 MEMULAI
pem-filteran FIR. Hasil yang didapatkan adalah Uraian pada bagian/ bab ini (dan bab lainnya)
berupa sebuah grafik sinyal yang berbeda untuk dapat ditulis dalam bentuk sub-bab jika
setiap jenis filter dan frekuensi yang digunakan diperlukan.
Kata kunci : FIR1, FIR2, MATLAB, respon Interaksidengan MATLAB dilakukan
frekuensi melaluicommand window pada graphical user
interface (GUI) yang tersedia. Pada comman
1. PENDAHULUAN window tersebut, pengguna dapat mengetikkan
instruksi MATLAB yang kemudian akan
MATLAB adalah salah satuperangkat lunak untuk
dieksekusi secarai nstan dan hasilnya langsung
analisis dan komputa sinumerik. MATLAB
terlihat pada window yang tersedia. Pada
merupakan salah satu perangkat lunak yang
command window MATLAB, karakter “>>”
cukup dapat diandalkan dalam pengolahan sinyal,
mengindikasikan prompt tempat pengguna dapat
terutama sinyal digital. Setelah melakukan
mengetikkan perintah yang akan dieksekusikan.
percobaan, diharapkan mahasiswa dapat:
Contohnya:
a) Menggunakan prinsip loop pada
a) Command
MATLAB untuk membuat sinyal
multifrekuensi. Yang berarti instruksi terkait command telah
diperintahkan pada prompt MATLAB. Jika tanda
b) Mendesain filter FIR dengan MATLAB.
titik koma (;) ditempatkan pada akhir perintah,
c) Mendesain filter IIR dengan MATLAB. seluruh keluaran perintah tersebut tidak akan
terlihat pada window. Beberapa perintah dapat
2. STUDI PUSTAKA dituliskan pada satubaris yang sama, dipisahkan
oleh titik koma (;). Komen ditandai dengan tanda
MATLAB (Matrix Laboratory) adalah sebuah
persen (%).
program untuk analisis dan komputasi numerik.
Pada awalnya, program ini merupakan interface MATLAB memberikan kemudahan dalam
untuk koleksi rutin-rutin numeric dari proyek mengakses fitur help, yaitu dengan cara
LINPACK dan EISPACK, namun sekarang menuliskan perintah.
merupakan produk komersial dari perusahaan
b) Help Instruksi
Mathworks, Inc. MATLAB telah berkembang
menjadi sebuah environment pemrograman yang Yang akan memberikan informasi mengenai
canggih yang berisifungsi-fungsi built-in untuk masukan, keluaran, penggunaan, dan fungsi dari
melakukan tugas pengolahan sinyal, aljabar linier, instruksi tersebut. Dengan menuliskan help pada
dan kalkulasi matematis lainnya. MATLAB juga command window, daftar instruksi yang ada pada
berisi toolbox yang berisifungsi-fungsi tambahan MATLAB akandiperlihatkan.
untuk aplikasi khusus.

LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 1


c) Help Filter Elemen individu dari sebuah variabel matriks
Perintah di atas akan menampilkan informasi dapat diakses dengan memberikan indeks baris
dalam bentuk teks pada layar MATLAB Anda. dan kolom, sebagai contoh:
Sebuah perintah yang sangat berguna untuk >>M13 = M(1,3)
mempelajari pemrograman MATLAB adalah intro,
M13 = 6
yang membahas konsep‐konsep dasar tentang
bahasa MATLAB. Selain itu, juga terdapat banyak Submatriks juga dapat diakses dengan cara yang
program demonstrasi yang mengilustrasikan mirip dengan menggunakan operator colon (:)
berbagai kapabilitas MATLAB, yang dapat seperti yang dijelaskan pada sesi berikut:
dimulai dengan perintah demo.
a) Operator Colon (;)
2.2 VARIABEL DAN OPERASI MATRIKS Operator colon (:) sangat berguna untuk membuat
index arrays. Gunakan perintah help colon untuk
Tipe variabel dasar pada MATLAB adalah matriks
mengetahui deskripsi detail tentang
(pada versi 5 dan ke atas, MATLAB juga
kapabilitasnya.
menyediakan berbagai tipe data seperti pada
bahasa pemrograman lainnya). Untuk Notasi colon didasarkan pada ide bahwa sebuah
mendeklarasikan sebuah variabel, Anda hanya selang indeks dapat dihasilkan dengan
perlu memberikan nilai tertentu padanya pada memberikan sebuah nilai awal, interval, dan
MATLAB prompt. sebuah nilai akhir. Karena itu, sebuah vektor yang
terpartisi secara teratur dapat diperoleh dengan
Sebagai contoh:
perintah
> M = [ 1 2 6; 5 2 1]
iii = nilai awal : interval : nilai akhir
M=
Tanpa parameter interval, nilai default ‐ nya
526 adalah 1. Metode perhitungan ini mirip dengan
521 notasi loop DO pada FORTRAN, namun metode
pada MATLAB selangkah lebih maju dengan cara
Ketika definisi sebuah matriks melibatkan sebuah menggabungkannya dengan pengindeksan
rumus yang panjang atau banyak entri, maka matriks. Untuk sebuah matriks A 9 x 8, A(2,3)
sebuah perintah MATLAB yang sangat panjang adalah elemen skalar yang berada pada baris
dapat dipecah menjadi dua (atau lebih) baris kedua dan kolom ketiga dari matriks A. Jadi
dengan cara menempatkan sebuah tanda (…) sebuah submatriks 4 x 3 dapat diekstrak dengan
pada akhir dari sebuah baris yang ingin perintah A(2:5,1:3). Tanda colon juga berfungsi
dilanjutkan. Sebagai contoh: sebagai sebuah wild card, misalnya, A(2,:) adalah
P = [ 1, 2, 4, 6, 8 ] + [ pi, 4, exp(1), 0, -1] + ... baris kedua matriks A.

[ 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

LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 3


window yang aktif. Perintah figure(n) akan
menampilkan sebuah figure window yang baru
yang ditandai dengan bilangan n, atau
membuatnya aktif kembali bila telah ada
sebelumnya. Pengendalian terhadap berbagai
atribut window (ukuran, lokasi, warna) juga
mungkin dilakukan dengan perintah figure, Perhatikan bahwa tidak ada loop yang
yang melakukan inisialisasi terhadap window diperlukan, meskipun cos(x) melakukan operasi
plot. kosinus pada setiap elemen array. Kebanyakan
fungsi transcendental mengikuti aturan
2.3.2 MEMPLOT BEBERAPA MATRIKS pointwise ini. Pada beberapa kasus khusus,
Anda juga dapat membuat beberapa grafik/plot adalah sangat penting untuk membedakan
pada satu window dengan menggunakan fungsi eksponensial matriks (expm) dengan
subplot. Fungsi ini tidak melakukan proses eksponensial pointwise (exp):
plotting, namun hanya membagi window
menjadi beberapa segmen. Sebagai contoh,
perintah subplot(3,2,3) akan membagi figure
window menjadi tiga baris dan dua kolom (jadi
terdapat enam segmen) dan mengarahkan plot
berikutnya ke segmen kiri baris kedua. Grafik
pada PA.1 diperoleh dengan perintah
subplot(2,1,1) dan subplot(2,1,2). 2.4.2 ALIRAN PROGRAM (LOAD FLOW)
Aliran program dapat dikendalikan pada
2.4 KONSTRUKSI PEMROGRAMAN MATLAB menggunakan pernyataan if, loop
MATLAB mendukung paradigma pemrograman while, dan loop for. Pada MATLAB versi 5,
fungsional, di mana Anda dapat menyusun fungsi terdapat juga pernyataan switch. Hal ini mirip
‐ fungsi secara nested. Perhatikan persamaan di dengan bahasabahasa tingkat tinggi seperti C++
bawah: atau PASCAL. Deskripsi dan contoh dari setiap
konstruk program tersebut dapat dilihat dengan
menggunakan perintah help.

2.5 MATLAB SCRIPT


yang dapat diimplementaskan dengan hanya Setiap perintah/pernyataan yang dapat
menggunakan satu baris kode MATLAB, yakni: dimasukkan pada window prompt dapat
disimpan pada sebuah file teks dan dieksekusi
sum( log( abs(x) ) )
sebagai script. File teks tersebut dapat dibuat
di mana x adalah sebuah vektor yang berisi dengan menggunakan sembarang editor ASCII
elemen‐elemen xn. Contoh ini mengilustrasikan seperti program Notepad atau pada editor teks
MATLAB dalam bentuk yang paling efisien, di MATLAB. Ekstensi file harus berupa .m dan script
mana fungsi ‐ fungsi individu dikombinasikan tersebut dieksekusi pada MATLAB dengan hanya
untuk menghasilkan keluaran. Penulisan kode‐ mengetikkan nama file (dengan atau tanpa
kode MATLAB yang efisien memerlukan gaya ekstensi). Program‐program tersebut umumnya
pemrograman yang menghasilkan fungsi‐fungsi dikenal dengan istilah m‐file. Berikut merupakan
kecil yang divektorisasi. Loop ‐ loop harus contoh sebuah m‐file:
dihindari. Cara utama untuk menghindari loop tt = 0:0.3:4;
adalah memanggil fungsi ‐ fungsi toolbox
sebanyak/sesering mungkin. xx =
sin(0.7*pi*tt;
2.4.1 FUNGSI-FUNGSI BUILTIN MATLAB
subplot(2,1,1)
Banyak fungsi ‐ fungsi MATLAB yang dapat plot( tt, xx)
beroperasi pada skalar sama mudahnya dengan
operasi pada array. Sebagai contoh, bila x adalah title(‘tt = 0:0.3:4; xx =
sebuah array, maka cos(x) mengembalikan sin(0.7*pi*tt); plot( tt, xx)’)
sebuah array dengan ukuran yang sama subplot(2,1,2)
seandainya x berisi kosinus dari setiap elemen x.
stem( tt, xx)

LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 4


title(‘‘tt = 0:0.3:4; xx = 3.1 MEMULAI PERCOBAAN
sin(0.7*pi*tt); plot( tt, xx)’)
Bila perintah‐perintah ini disimpan dengan file Pastikan komputer/Laptop yang
bernama plotstem.m maka pengetikan plotstem akan digunakan berfungsi dengan
pada command prompt akan menjalankan file normal dan tidak memiliki kendala
apapun.
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
Software MATLAB yang
Gambar PA.1. sudah terinstal dalam
komputer/ Laptop.
3. METODOLOGI
Pada percobaan 1 ini, alat dan bahan yang
digunakanyaitu: 3.2 MEMBUAT SINYAL MASUKAN FILTER
a) Komputerbesertaseluruh hardware-nya Pada Matlab, direpresentasikan sinyal dalam
vector (matriks 1xN, N = panjang vektor). Akan
b) Software MATLAB direpresentasikan sumbu waktu dimana untuk
0 < t < 2𝜋, diberi panjang vector 100 sampel
dengan perintah >> i = 0:99

Membuat nilai theta sebanyak jumlah frekuensi


dengan perintah: thetaN = -pi+2*pi*rand(1,1);

Dibuat sinyal sinusoidal pada frekuensi


pencuplikan fs = 18 kHz sebanyak frekuensi
dengan nilai frekuensi masing-masing.
Diketikan :>> sinN = sin ( 2 * pi * I * fN/ fs +
thetaN );

Dijumlahkan banyak sinyal tersebut menjadi


satu sinyal sinusoidal dengan perintah >> sintot
= (sin1+sinN)/N;

Dicoba plot gambarnya dengan perintah >>


steam (sintot)

Dilihat juga respon frekuensinya dengan peritah


freqz

LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 5


3.3 DESAIN DAN SIMULASI FILTER FIR 4. HASIL DAN ANALISIS

Dibuat beberapa filter dengan 4.1 MEMBUAT SINYAL MASUKAN FILTER


spesifikasi sebagai berikut:
Pada percobaan pertama ini dilakukan
- Filter FIR low-pass orde 30 dengan
frekuensi cutoff 1000 Hz representasi 3 buah sinyal sinusoidal dengan nilai
- Filter FIR band-pass orde 30 dengan frekuensi yang berbeda-beda. Representasi sinyal
frekuensi pass 1-4 kHz tersebut dilakukan sebanyak 100 sampel (i dari 1
- Filter FIR high-pass orde 30 dengan sampai 100). Untuk masing-masing frekuensi
frekuensi cutoff 5 kHz sinyalnya yaitu f1 = 400 Hz, f2 = 2400 Hz, dan f3 =
6000 Hz. Dengan frekuensi sampling sebesar
18000 Hz. Lalu kita diperintahkan menjumlahkan
ketiga sinyal tersebut dalam sintot1.
Langkah pertama yang dilakukan adalah
membuat variable yang dibutuhkan seperti
panjang sinyal, frekuensi sampling, frekuensi 1,2,
dan 3 seperti berikut:
Dirancang ketiga filter tersebut, dicari
>> i=0:99;
koefisien filternya dengan perintah yang
sesuai (fir1). Dicatat masing-masing >> fs=18000;
koefisien filter.
>> f1=400;
>> f2=2400;
>> f3=6000;
Kemudian membuat perintah untuk menentukan
nilai theta untuk tiga frekuensi sebagai berikut:
>> theta1 = -pi+2*pi*rand(1,1);
theta2 = -pi+2*pi*rand(1,1);
Dilihat frekuensi respon masing-masing theta3 = -pi+2*pi*rand(1,1);
filter dengan perintah freqz. Setelah itu didapat nilai theta nya sebagai berikut:
Digambarkan hasilnya. Dianalisis pada
frekuensi cut-off

Gambar 4.1 Nilai theta untuk sintot1


3.4 MELAKUKAN PENAPISAN
Kemudian nilai theta tersebut dimasukan kedalam
Lakukan penapisan pada sinyal sintot1 perintah untuk membuat tiga sinyal sinusoidal
dan sintot2 dengan menggunakan filter dengan tiga frekuensi sebagai berikut:
LPF, BPF, dan HPF FIR yang telah
>> sin1=sin(2*pi*i*f1/fs+0.6903);
dirancang. Gunakan fungsi conv.
sin2=sin(2*pi*i*f2/fs+0.7393);
sin3=sin(2*pi*i*f3/fs+2.2584);

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

LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 7


sin9=sin(2*pi*i*f9/fs-1.8987);
sin10=sin(2*pi*i*f10/fs-
2.9497);
sin11=sin(2*pi*i*f11/fs+1.5336)
;
sin12=sin(2*pi*i*f12/fs+1.4097e
-04);
sin13=sin(2*pi*i*f13/fs-
0.1262);
sin14=sin(2*pi*i*f14/fs+2.5429)
;
>>sintot2=(sin1+sin2+sin3+sin4+sin5+s
in6+sin7+sin8+sin9+sin10+sin11+sin12+
Gambar 4.6 Responfrekuensisinyal sintot2
sin13+sin14)/14;
>> stem(i,sintot2); Pertanyaan:

>>freqz(sintot2); 1. Mengapa digunakan frekuensi sampling


fs=18000 Hz? Kaitkan dengan fenomena
aliasing?
2. Apakah terjadi aliasing pada sintot2?
Karena frekuensi informasi tertinggi pada sintot1
yaitu sebesar 6000 Hz, maka frekuensi sampling
minimum nya adalah 2fmax = 2x6000 = 12000 Hz.
Pada sintot2 frekuensi informasi tertinggi sebesar
8000 Hz, maka frekuensi sampling minimum nya
adalah 2fmax = 2x8000 = 16000 Hz. Oleh sebabitu,
digunakan frekuensi sampling sebesar 18000 Hz
agar tetap memenuhi kriteria Nyquist. Karena jika
tidak memenuhi criteria tersebut akan
menimbulkan efek yang disebut aliasing.
Rumuskriteria Nyquist:
Fs = >2fmax
Gambar 4.4 Nilai theta untuksinyal sintot2
Fenomena aliasing proses sampling akanmuncul
pada sinyal hasil sampling apabila proses
frekuensi sinyal sampling tidak memenuhi kriteria
di atas.
Lalu pada sintot2 sendiri tidak terjadi efek aliasing
karena frekuensi informasi tertinggi pada sintot2
sebesar 8000 Hz jika dilihat dari rumus kriteria
Nyquist Fs = >2fmax maka 18000 = >2x8000. Jadi
pada sintot2 tidak terjadi efek aliasing.

4.2 DESAIN DAN SIMULASI FILTER FIR


Pada percobaan 2, dilakukan pembuatan 3 buah
filter FIR yaitu LPF, BPF, dan HPF untuk input
sinyal sintot1 dan sintot 2 dengan memanfaatkan
Gambar 4.5 Grafik stem sinyal sintot2 fungsi fir1 yang telah ada pada MATLAB.

4.2.1 FILTER FIR LOW-PASS


Filter pertama yang dibuat yaitu filter FIR low-
pass atau LPF orde 30 dengan fc=1000 Hz.
Berikut program desain filter nya.
>> fs=18000;

LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 8


>> fc=1000; >> fs=18000;
>> n=30; >> fc1=1000;
>>wn=fc/(fs/2); >> fc2=4000;
>> LPF=fir1(n,wn); >> wn1=fc1/(fs/2);
>> LPF >> wn2=fc2/(fs/2);
>>freqz(LPF); >> BPF=fir1(n, [wn1 wn2],
'bandpass');
>>impz(LPF);
>> BPF
>>freqz(BPF);
>>impz(BPF);

Gambar 4.7 Koefisien filter LPF


Kemudiandilakukan filter untukmasukansinyal
sintot1 denganperintah
Gambar 4.10 Koefisien filter BPF

Gambar 4.8 Responsfrekuensi filter LPF


Gambar 4.11 Responsfrekuensi filter BPF

Gambar 4.9 Responsimpuls filter LPF Gambar 4.12 Responsimpuls filter BPF

4.2.2 FILTER FIR PASS-BAND 4.2.3 FILTER FIR HIGH-PASS


Filter kedua yang dibuat yaitu filter FIR band-pass Filter ketiga yang dibuat yaitu filter FIR high-pass
orde 30 dengan frekuensi passband 1000-4000 Hz. orde 30 dengan frekuensi cut-off 5000 Hz. Berikut
Berikut program desain filternya. program desain filternya.
LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 9
>> fs=18000; sebuah filter dengan metode window. Frekuensi
>> fc=5000; cut-off dilakukan normalisasi dengan frekuensi
samplingnya. Normalisasi frekuensi dilakukan
>>wn=fc/(fs/2); agar sinyal tersebut mempunyai range
>> HPF=fir1(30, wn, 'high'); pengukuran yang sama/mengadaptasi ke range
pengukuran yang ada. Untuk mencari normalisasi
>> HPF
frekuensi sebenarnya terdapat implikasi, jadi jika
>>freqz(HPF); nilainya adalah 0,5, nilai sebenarnya adalah 0,5pi
>>impz(HPF); atau pi/2 rad/sampel. Ingat bahwa pi/2
rad/sampel sama dengan 1/4 siklus/sampel, lalu
jika dikalikan dengan 40 sampel/detik, maka
didapatkan 10 siklus/detikatau 10 Hz. Oleh
Karena itu, frekuensi normal 0,5pi sama dengan 10
siklus/detik dengan frekuensi pengambilan
sampel 40 Hz.
Pada metode window, terdapatbeberapatipefungsi
Gambar 4.13 Koefisien filter HPF
window yang dikategorikan berdasarkan
karakteristik nya. Terdapat beberapa jenis fungsi
yang sering digunakan seperti yang ditunjukkan
pada table dibawah.

Tabel 4.1 Common Window Function dan


Properties
Selanjutnya, pengamatan pada filter LPF, hasil
respon frekuensi menunjukkan nilai magnitude
Gambar 4.14 Responsfrekuensi filter HPF pada frekuensi cut-off/atenuasi minimum pada
nilai magnitude 50dB. Jika dibandingkan dengan
table tersebut, maka filter tersebut merupakan tipe
Hamming, karena mempunyai nilai atenuasi
minimum mendekati 53dB. Lalu pada filter band-
pass dan high-pass memiliki nilai atenuasi
minimum yang sama, yaitu 50dB.
Jika melihat table, makauntukketiga filter FIR
tersebut merupakan tipe window hamming,
karena semua nilai magnitude-nya mendekati tipe
tersebut. Juga saat dilihat dari grrafik respon
frekuensinya, filter menunjukkan peredaman
pada sinyal sesuai spesifikasi desain filter. Dilihat
juga pada frekuensi cut-off, respon tidak langsung
turun/ada transisi antara stop-band dan pass-
band. Hal ini menunjukkan ada nya karakteristik
Gambar 4.15 Responsimpuls filter HPF dari filter real, yang mana transisi tersebut tidak
Pertanyaan: dapat langsung turun.

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.

4.3.1 FIR LPF

Langkah pertama dilakukan penapisan untuk


sinyal sintot1 dengan filter LPF, berikut
programnya.
>> x=conv(sintot1, LPF);
>> stem(x);
>>freqz(x);

Gambar 4.18 Respons stemp sinyal sintot2

Gambar 4.16 Respons stemp sinyal sintot1

Gambar 4.19 Respons frekuensi sinyal sintot2

4.3.2 FIR BPF

Langkah kedua dilakukan penapisan untuk sinyal


sintot1 dengan filter BPF, berikut programnya.

Gambar 4.17 Respons frekuensi sinyal sintot1


Selanjutnya dilakukan penapisan untuk sinyal
sintot2 dengan filter LPF, berikut programnya.
>> x=conv(sintot2, LPF);
>> stem(x);
>>freqz(x);

Gambar 4.20 Respons stemp sinyal sintot1

LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 11


>> x=conv(sintot1, HPF);
>> stem(x);
>>freqz(x);

Gambar 4.21 Respons frekuensi sinyal sintot1


Selanjutnya dilakukan penapisan untuk sinyal
sintot2 dengan filter BPF, berikut programnya.
>> x=conv(sintot2, BPF); Gambar 4.24 Respons stem sinyal sintot1

>> stem(x);
>>freqz(x);

Gambar 4.25 Responsfrekuensisinyal sintot1


Selanjutnya dilakukan penapisan untuks inyal
sintot2 dengan filter HPF, berikut programnya.
Gambar 4.22 Respons stemp sinyal sintot2
>> x=conv(sintot2, HPF);
>> stem(x);
>>freqz(x);

Gambar 4.23 Respons frekuensi sinyal sintot2

4.3.3 FIR HPF

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,

LaporanPraktikum - LaboratoriumKomputasi – FT UNSIKA 13

Anda mungkin juga menyukai