Anda di halaman 1dari 12

MODUL 1 PENGENALAN MATLAB

Dendy Reza Anfasha (1710631160043)


Asisten: Sukma Tri Raharja, Fikri Ika Purnianto, Riyant Irawan, Rosita Dewi
Tanggal Percobaan: 12/04/2020
TEL61653-Prak. Pengolahan Sinyal Digital
Laboratorium Komputasi – Fakultas Teknik UNSIKA

Abstrak
melakukan tugas tertentu. Kemampuan
Praktikum kali ini praktikan diminta untuk mengenal pemrograman yang dibutuhkan tidak terlalu sulit bila
MATLAB dan kapabilitasnya sebagai sebuah alat Anda telah memiliki pengalaman dalam
pemrograman untuk analisis dan komputasi numerik. Aspek- pemrograman bahasa lain seperti C, PASCAL, atau
aspek yang diperhatikan adalah membuat sinyal input filter FORTRAN. [1]
berupa superposisi beberapa sinyal sinusoidal dengan frekuensi
berbeda, desain dan simulasi filter FIR1 dan FIR2 untuk 2.1 MATLAB HELP
mencari respon frekuensi, serta membuat m-file untuk
melakukan pem-filteran FIR. Hasil yang didapatkan adalah MATLAB menyediakan sistem help on-line yang
berupa sebuah grafik sinyal yang berbeda untuk setiap jenis dapat diakses dengan perintah help.
filter dan frekuensi yang digunakan.
Contoh:
Kata kunci: MATLAB, FIR1, FIR2, respon frekuensi. >> help instruksi;
1. PENDAHULUAN yang akan memberikan informasi mengenai masukan,
keluaran, penggunaan, dan fungsi dari instruksi
MATLAB adalah salah satu perangkat lunak untuk tersebut. Dengan menuliskan help pada command
analisis dan komputasi numerik. MATLAB window, daftar instruksi yang ada pada MATLAB
merupakan salah satu perangkat lunak yang cukup akan diperlihatkan.
dapat diandalkan dalam pengolahan sinyal,
>> help filter;
terutama sinyal digital. Setelah melakukan
percobaan, diharapkan mahasiswa dapat: Perintah di atas akan menampilkan informasi dalam
bentuk teks pada layar MATLAB Anda. Sebuah
a. Menggunakan prinsip loop pada MATLAB untuk perintah yang sangat berguna untuk mempelajari
membuat sinyal multifrekuensi. pemrograman MATLAB adalah intro, yang
b. Mendesain filter FIR dengan MATLAB. membahas konsep‐konsep dasar tentang bahasa
c. Mendesain filter IIR dengan MATLAB. MATLAB. Selain itu, juga terdapat banyak program
demonstrasi yang mengilustrasikan berbagai
2. STUDI PUSTAKA kapabilitas MATLAB, yang dapat dimulai dengan
perintah demo.
MATLAB (Matrix Laboratory) adalah sebuah
program untuk analisis dan komputasi numerik. 2.2. VARIABLE DAN OPERASI MATRIKS
Pada awalnya, program ini merupakan interface
untuk koleksi rutin-rutin numerik dari proyek Tipe variabel dasar pada MATLAB adalah matriks
LINPACK dan EISPACK, namun sekarang (pada versi 5 dan ke atas, MATLAB juga menyediakan
merupakan produk komersial dari perusahaan berbagai tipe data seperti pada
Mathworks, Inc. MATLAB telah berkembang bahasa pemrograman lainnya). Untuk
menjadi sebuah environment pemrograman yang mendeklarasikan sebuah variabel, Anda hanya perlu
canggih yang berisi fungsi-fungsi built-in untuk memberikan nilai tertentu padanya pada
melakukan tugas pengolahan sinyal, aljabar linier, MATLAB prompt. Sebagai contoh:
dan kalkulasi matematis lainnya. MATLAB juga >>M=[126;521]
berisi toolbox yang berisi fungsi-fungsi tambahan
untuk aplikasi khusus. MATLAB bersifat extensible,
dalam arti bahwa seorang pengguna dapat menulis
fungsi baru untuk ditambahkan pada library ketika M=
fungsifungsi built-in yang tersedia tidak dapat 126

Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 1


521
Tanpa parameter interval, nilai default‐nya adalah 1.
Ketika definisi sebuah matriks melibatkan sebuah
Metode perhitungan ini mirip dengan notasi loop DO
rumus yang panjang atau banyak entri, maka
pada FORTRAN, namun metode pada MATLAB
sebuah perintah MATLAB yang sangat panjang
selangkah lebih maju dengan cara
dapat dipecah menjadi dua (atau lebih) baris
dengan cara menempatkan sebuah tanda (…) pada menggabungkannya dengan pengindeksan matriks.
akhir dari sebuah baris yang ingin dilanjutkan. Untuk sebuah matriks A 9 x 8, A(2,3) adalah elemen
Sebagai contoh: skalar yang berada pada baris kedua dan kolom
P = [ 1, 2, 4, 6, 8 ]+ [ pi, 4, exp(1), 0, -1] + … ketiga dari matriks A. Jadi sebuah submatriks 4 x 3
dapat diekstrak dengan perintah A(2:5,1:3). Tanda
[ cos(0.1*pi), sin(pi/3), tan(3), atan(2), sqrt(pi) ]; colon juga berfungsi sebagai sebuah wild card,
Ketika sebuah ekspresi perintah atau pernyataan misalnya, A(2,:) adalah baris kedua matriks A.
diakhiri dengan tanda semicolon (;), maka hasilnya
tidak akan ditampilkan di layar. Hal ini sangat Pengindeksan mundur akan membalikkan sebuah
membantu ketika Anda bekerja dengan matriks vektor, misalnya X(9:‐1:1) untuk sebuah vektor yang
dengan ukuran yang sangat besar. berisi 9 buah elemen. Kadang‐kadang, Anda juga
memerlukan sebuah daftar yang berisi semua nilai
Ukuran dari sebuah matriks dapat diketahui elemen pada matriks, jadi A(:) memberikan sebuah
dengan operator size: vektor kolom 72 x 1, yang merupakan hasil
>>Msize = size(M) concatenation elemen‐elemen setiap kolom matrik A.
Ini merupakan contoh reshaping matriks. Teknik
Msize = reshaping yang lebih umum dapat dilakukan dengan
23 fungsi reshape(A,M,N). Sebagai contoh, matriks A 9 x
8 dapat di‐reshape menjadi sebuah matriks 12 x 6
Oleh karena itu, kita tidak perlu menggunakan dengan Anew = reshape(A,12,6).
variabel khusus untuk melacak jumlah baris dan
kolom suatu matriks. Ada dua jenis variabel matriks 2.2.2 OPERASI MATRIKS DAN ARRAY
pada MATLAB, yakni skalar (scalars) dan vektor
(vectors). Sebuah skalar adalah sebuah matriks Operasi default pada MATLAB adalah operasi
yang hanya berisi satu elemen, jadi berukuran 1 x 1. matriks. Jadi A*B berarti perkalian matriks, yang akan
Sebuah vektor adalah sebuah matriks yang hanya dibahas pada bagian berikut.
berisi satu baris atau kolom.
Elemen individu dari sebuah variabel matriks dapat 2.2.3 TINJAUAN PERKALIAN MATRIKS
diakses dengan memberikan indeks baris dan
Operasi perkalian matriks AB hanya dapat dilakukan
kolom, sebagai contoh
bila kedua matriks tersebut memiliki dimensi yang
>>M13 = M(1,3) kompatibel, yakni jumlah kolom matriks A harus
M13 = sama dengan jumlah baris matriks B. Sebagai contoh,
sebuah matriks 5 x 8 dapat mengalikan sebuah
6 matriks 8 x 3 untuk menghasilkan sebuah matriks AB
Submatriks juga dapat diakses dengan cara yang 5 x 3. Secara umum, bila A adalah m x n, maka B
mirip dengan menggunakan operator colon (:) haruslah n x p, dan hasil perkalian AB akan memiliki
seperti yang dijelaskan pada sesi berikut: dimensi m x p. Umumnya perkalian matriks tidak
bersifat komutatif, yakni AB ≠ BA. Bila p ≠ m, maka
2.2.1 OPERATOR COLON (:) perkalian AB tidak terdefinisi.

Operator colon (:) sangat berguna untuk membuat Beberapa kasus khusus untuk perkalian matriks
index arrays. Gunakan perintah help colon untuk adalah outer product dan inner product. Pada outer
mengetahui deskripsi detail tentang kapabilitasnya. product, sebuah vektor kolom mengalikan sebuah
Notasi colon didasarkan pada ide bahwa sebuah vektor baris untuk menghasilkan sebuah matriks. Bila
selang indeks dapat dihasilkan dengan memberikan kita membiarkan semua elemen salah satu vektor
sebuah nilai awal, interval, dan sebuah nilai akhir. tersebut berupa ‘1’ , maka kita akan memperoleh hasil
Karena itu, sebuah vektor yang terpartisi secara yang berulang.
teratur dapat diperoleh dengan perintah
Untuk inner product, sebuah vektor baris mengalikan
iii = nilai awal : interval : nilai akhir sebuah vektor kolom, jadi hasilnya berupa skalar. Bila
Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 2
kita membiarkan semua elemen salah satu vektor dilihat pada help MATLAB untuk fungsi‐fungsi
tersebut berupa ‘1’, maka kita akan memperoleh terse2.3 PLOT DAN GRAFIK
penjumlahan semua elemen vektor lainnya.
2.3 PLOT DAN GRAFIK

MATLAB dapat menghasilkan plot dua dimensi x‐y


dan plot tiga dimensi, menayangkan citra, dan bahkan
membuat dan memutar video. Dua fungsi yang yang
sering digunakan pada praktikum ini adalah plot dan
stem. Untuk memanggil fungsi ini, umumnya kita
membutuhkan dua vektor (satu vektor juga bisa,
2.2.4 OPERASI POINTWISE ARRAY namun untuk definisi yang berbeda, gunakan
perintah help untuk melihat informasi yang lebih
Bila kita ingin melakukan perkalian pointwise, ada lengkap), untuk sumbu x dan sumbu y. Pemanggilan
beberapa kebingungan yang bisa muncul. Pada fungsi plot(x,y) akan menghasilkan suatu plot yang
kasus pointwise, kita ingin mengalikan matriks terkoneksi dengan garis lurus untuk setiap dua titik
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 { (x(1),y(1), (x(2),y(2), (x(3),y(3), …….., (x(N),y(N) }
matriks biasa. Untuk melakukan perkalian pointwise seperti yang ditunjukkan pada gambar PA.1.
pada MATLAB, kita menggunakan operator “point‐
star” A .* B. Misalnya bila A dan B keduanya adalah
matriks 3 x 2 maka
Pemanggilan fungsi stem(x,y) akan menghasilkan
presentasi seperti yang ditunjukkan pada gambar
kedua PA.1

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 menghitung D
= B.*A.

Dalam MATLAB, bila sebuah “titik” digunakan


dengan operator aritmetik, maka ia akan mengubah
definisi operator tersebut ke operasi pointwise. Jadi
operator ./ berarti pembagian pointwise, .^ berarti
pemangkatan pointwise. Misalnya, xx = (0.9).^(0:49)
akan menghasilkan suatu vector yang nilainya sama
dengan (0,9)n untuk n = 0,1, 2, …49.

2.2.5 OPERASI CONCATENATION ARRAY


MATLAB memiliki banyak opsi plotting yang dapat
dipelajari dengan help plotxy, help plotxyz, dan help
Operasi ini digunakan untuk menempelkan dua atau
graphics (versi 4) atau help graph2d, help graph3d,
lebih array dengan syarat syarat tertetu sesuai
dan help specgraph (versi 5).
dengan operasi concatenation yangdiinginkan.

Dalam MATLAB terdapat dua buah fungsi yang


dapat digunakan untuk melakukan proses
concatenation (penempelan) arrays. Fungsi tersebut
adalah vertcat dan horzcat. Penjelasan lanjut dapat

Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 3


2.3.1 FIGURE WINDOWS di mana x adalah sebuah vektor yang berisi elemen‐
elemen xn. Contoh ini mengilustrasikan MATLAB
Ketika MATLAB membuat sebuah plot, MATLAB dalam bentuk yang paling efisien, di mana fungsi‐
menulis grafik tersebut ke figure windows. Anda fungsi individu dikombinasikan untuk menghasilkan
bisa membuka beberapa figure windows namun keluaran. Penulisan kode‐ kode MATLAB yang
setiap saat hanya satu window yang aktif. Setiap efisien memerlukan gaya pemrograman yang
perintah plot pada command window akan menghasilkan fungsi‐fungsi kecil yang divektorisasi.
mengalihkan keluarannya ke window yang aktif. Loop‐loop harus dihindari. Cara utama untuk
Perintah figure(n) akan menampilkan sebuah figure menghindari loop adalah memanggil fungsi‐fungsi
window yang baru yang ditandai dengan bilangan n, toolbox sebanyak/sesering mungkin.
atau membuatnya aktif kembali bila telah ada
sebelumnya. Pengendalian terhadap berbagai atribut 2.4.1 FUNGSI BUILTIN MATLAB
window (ukuran, lokasi, warna) juga mungkin
dilakukan dengan perintah figure, yang melakukan Banyak fungsi‐fungsi MATLAB yang dapat
inisialisasi terhadap window plot. beroperasi pada skalar sama mudahnya dengan
operasi pada array. Sebagai contoh, bila x adalah
2.3.2 MEMPLOT BEBERAPA GRAFIK sebuah array, maka cos(x) mengembalikan sebuah
array dengan ukuran yang sama seandainya x berisi
Anda juga dapat membuat beberapa grafik/plot kosinus dari setiap elemen x.
pada satu window dengan menggunakan fungsi
subplot. Fungsi ini tidak melakukan proses 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). Perhatikan bahwa tidak ada loop yang diperlukan,
meskipun cos(x) melakukan operasi kosinus pada
Anda juga dapat membuat beberapa grafik/plot setiap elemen array. Kebanyakan fungsi
pada satu window dengan menggunakan fungsi transcendental mengikuti aturan pointwise ini. Pada
subplot. Fungsi ini tidak melakukan proses plotting, beberapa kasus khusus, adalah sangat penting untuk
namun hanya membagi window menjadi beberapa membedakan eksponensial matriks (expm) dengan
segmen. Sebagai contoh, perintah subplot(3,2,3) akan eksponensial pointwise (exp):
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 KONSTRUK PEMROGRAMAN


2.4.2 ALIRAN PROGRAM (PROGRAM FLOW)
MATLAB mendukung paradigma pemrograman
fungsional, di mana Anda dapat menyusun fungsi‐
Aliran program dapat dikendalikan pada MATLAB
fungsi secara nested. Perhatikan persamaan di
menggunakan pernyataan if, loop while, dan loop for.
bawah.
Pada MATLAB versi 5, terdapat juga pernyataan
switch. Hal ini mirip dengan bahasa‐ bahasa tingkat
tinggi seperti C++ atau PASCAL. Deskripsi dan
contoh dari setiap konstruk program tersebut dapat
dilihat dengan menggunakan perintah help.
yang dapat diimplementaskan dengan hanya
menggunakan satu baris kode MATLAB, yakni
2.5 MATLAB SCRIPTS

Setiap perintah/pernyataan yang dapat dimasukkan


sum( log( abs(x) ) )
pada window prompt dapat disimpan pada sebuah
file teks dan dieksekusi sebagai script. File teks
Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 4
tersebut dapat dibuat dengan menggunakan
sembarang editor ASCII seperti program Notepad
atau pada editor teks MATLAB. Ekstensi file harus
berupa .m dan script tersebut dieksekusi pada
MATLAB dengan hanya mengetikkan nama file Buat 3 (tiga) sinyal sinusoidal berfase
(dengan atau tanpa ekstensi). Program‐program berbeda dengan frekuensi sampling
fs=18000 Hz untuk masing-masing
tersebut umumnya dikenal dengan istilah m‐file. frekuensi sinyal f1 = 400 Hz, f2 = 2400
Hz, dan f3 = 6000 Hz. Ketikkan pula
Berikut merupakan contoh sebuah m‐file: theta1 = -pi+2*pi*rand(1,0); theta2 = -
pi+2*pi*rand(1,0); theta3 = -
pi+2*pi*rand(1,0); dan catat nilai
tt = 0:0.3:4; variablenya . Ketikkan
>>sin1=sin(2*pi*i*f1/fs+theta1);
sin2=sin(2*pi*i*f2/fs+theta2);
xx= sin(0.7*pi*tt); subplot(2,1,1) plot( tt, xx) sin3=sin(2*pi*i*f3/fs+theta3);

title(‘tt = 0:0.3:4; xx = sin(0.7*pi*tt); plot( tt, xx)’)


Jumlahkan ketiga sinyal tersebut menjadi
satu sinyal dengan mengetik
subplot(2,1,2) >>sintot1=(sin1+sin2+sin3)/3;

stem( tt, xx)


Plot sinyal tersebut dengan mengetikkan
title(‘‘tt = 0:0.3:4; xx = sin(0.7*pi*tt); plot( tt, xx)’) perintah >>stem(i,sintot1);.

Bila perintah‐perintah ini disimpan dengan file


bernama plotstem.m maka pengetikan plotstem
Lihat respons frekuensi dari sinyal tersebut
pada command prompt akan menjalankan file dengan perintah freqz.
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 Buat sebuah sinyal sintot2 yang
merupakan rata-rata aritmetik sinyal-
PA.1. sinyal sinusoidal berfase sama dengan
frekuensi f = [200:600:8000]. (Petunjuk:
gunakan prinsip for loop.)
Uraian pada bagian/ bab ini (dan bab lainnya) dapat
ditulis dalam bentuk sub-bab jika diperlukan.
Plot sinyal tersebut dengan mengetikkan
perintah >>stem(i,sintot2);.
3. METODOLOGI
Pada percobaan 1 ini, alat dan bahan yang digunakan
yaitu:
Lihat spektrum frekuensi dari sinyal
1. Komputer beserta seluruh hardware-nya tersebut dengan perintah freqz.

2. Software MATLAB
Memulai percobaan
Gambar 3-2 Membuat Sinyal Masukan
Desain dan Simulasi Filter FIR
Akan didesain tiga buah filter FIR dengan spesifikasi
sebagai berikut:
• FIR LPF orde 30 dengan frekuensi cut-off 1000
Hz
• Filter BPF orde 30 dengan frekuensi passband
1000–4000 Hz
• Filter HPF orde 30 dengan frekuensi cut-off
Gambar 3-1 Contoh Diagram
5000 Hz
Membuat sinyal masukan filter

Pada MATLAB, representasikan sinyal


dalam vektor (matriks 1 x N, N
merupakan panjang vektor). Diinginkan Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 5
panjang sinyal sebesar 100 sampel
sehingga dituliskan perintah >>i=0:99;
Rancang ketiga filter tersebut seperti pada gambar 1. Sedangkan pada sintot2 theta
dan cari koefisien-koefisien ini dianggap 0 dan jumlah frekuensi sebanyak 14.
filternya dengan perintah fir1.
Catat seluruh koefisien filter.

Lihat frekuensi respons masing-


masing filter dengan perintah
freq Gambarkan hasilnya.

Gunakan perintah impz untuk


mendapatkan plot respons Gambar 4-1 Nilai dari Theta untuk Sintot1
impuls dari filter yang telah
didesain. Lalu setelah mendapat nilai theta, masukkan
nilainya dan lihat spectrum frekuensi dengan
mengetikkan perintah freqz, maka hasil yag
didapat sebagai berikut:
i=0:99
Frekuensi cut-off pada filter FIR
fs=18000;
didefinisikan sebagai frekuensi
f1=400;
keti
f2=2400;
f3=6000;

sin1=sin(2*pi*i*f1/fs-0.7255);
magnitudonya sama dengan sin2=sin(2*pi*i*f2/fs-2.1292);
setengah magnitudo maksimal sin3=sin(2*pi*i*f3/fs+1.6218);
respons frekuensi filter. Lakukan
analisis pada frekuensi cut-off. sintot1=(sin1+sin2+sin3)/3;

Gambar 3-3 Desain dan Simulasi Filter FIR stem(i,sintot1);


figure;
4. HASIL DAN ANALISIS freqz(sintot1);

• Percobaan 1 : Membuat Sinyal Masukan Filter.

Pada percobaan pertama ini dilakukan


denganmembuat 3 sinyal masukan sinusoidal yang
frekuensinya berbeda-beda (frekuensi samplingnya
18000 Hz. Untuk mendapatkan plot sinyal stem dan
frekuensinya pada sintot1 diperlukan plot 3 theta

Gambar 4-2. Hasil sinyal masukan dari sintot1

Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 6


Selanjutnya buat sebuah sinyal sintot2 dengan
frekuensi f = [200:600:8000], berikut coding
MATLAB setelah menginput nilai thetanya juga.

i=0:99
fs=18000;
f1=200;
f2=800;
f3=1400;
f4=2000;
f5=2600;
f6=3200;
f7=3800;
f8=4400;
f9=5000;
f10=5600;
f11=6200;
f12=6800;
f13=7400;
f14=8000;

sin1=sin(2*pi*i*f1/fs-3.1203);

sin2=sin(2*pi*i*f2/fs-1.7550);
sin3=sin(2*pi*i*f3/fs-3.1334);
sin4=sin(2*pi*i*f4/fs-1.9529);
sin5=sin(2*pi*i*f5/fs-2.2463);
sin6=sin(2*pi*i*f6/fs-1.4572); Gambar 4-3. Hasil sinyal masukan dari sintot2
sin7=sin(2*pi*i*f7/fs-2.0427);
sin8=sin(2*pi*i*f8/fs-2.2704); Pertanyaan:
sin9=sin(2*pi*i*f9/fs+0.6213);
sin10=sin(2*pi*i*f10/fs+2.5199); • Mengapa digunakan frekuensi sampling fs=
sin11=sin(2*pi*i*f11/fs+2.7607); 18000Hz? Kaitkan dengan fenomena aliasing.
sin12=sin(2*pi*i*f12/fs-1.7518); • Apakah terjadi aliasing.
sin13=sin(2*pi*i*f13/fs-0.1089);
sin14=sin(2*pi*i*f14/fs-0.7790); Analisa:

sintot2=(sin1+sin2+sin3+sin4+sin5+sin6 Karena frekuensi informasi tertinggi pada sintot1


+sin7+sin8+sin9+sin10+sin11+sin12+sin1 yaitu sebesar 6000 Hz, maka frekuensi sampling
3+sin14)/14; minimumnya adalah 12000 Hz. Pada sintot2 frekuensi
informasi tertinggi sebesar 8000 Hz, maka frekuensi
stem(i,sintot2); sampling minimumnya adalah 16000 Hz. Oleh sebab
figure; itu, digunakan frekuensi.
freqz(sintot2);
𝒇𝒔>𝟐𝒇𝒊𝒏𝒎𝒂𝒙
Fenomena aliasing proses sampling akan muncul
pada sinyal hasl 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 = >2fi maka 18000 = >2 X 8000. Jadi pada
sintot2 tidak terjadi efek aliasing.
• Percobaan 2 : Desain dan simulasi filter FIR
Pada percobaan ini, praktikan memebuat 3 buah filter
FIR dan mensimulasikannya. Ketiga filter FIR ini
adalah sebagai berikut filter FIR LPF, filter FIR BPF,
dan filter FIR HPF. Filter-filter ini dibuat dengan orde
Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 7
30 dan Fc 1000Hz untuk LPF Fp 1000Hz-4000Hz 3dB (dB= -20 Log Vout/Vin) dari gain tegangan yang
untuk BPF lalu yang terakhir Fc 5000Hz untuk HPF. diizinkan untuk lulus.
FIR LPF Dari hasil praktikan yang berupa gambar 4-4 sampai
gambar 4-6 dapat kita simpukan bahwa semua hasil
frekuensi dan sistemnya merpakan cerminanan dari
teori yang ada.

Gambar 4-4. Hasil frekuensi dan sistem pada FIR LPF FIR
BPF

Gambar 4-5. Hasil frekuensi dan sistem pada FIR BPF

FIR HPF

Gambar 4-6. Hasil frekuensi dan sistem pada FIR HPF


Pertanyaan:
Berapa nilai magnitude respons frekuensi filter di
cut-off? Apakah sama dengan teori?
Analisa:
LPF adalah filter yang melewatkan frekueni rendah
dan meredam frekuensi tinggi. LPF ini mempunyai
tegangan output yang konstan dari DC (0Hz),
samapai frekuensi cut-off ditentukan, (ƒc) titik. Titik
frekuensi cut-off adalah 0,707 atau -3 dB (dB = -20
Log Vout / Vin) dari gain tegangan diizinkan untuk
lulus. BPF adalah filter yang melewatkan suatu range
frekuensi. Dalam perancangannya diperhitungkan
nilai Q(faktor mutu). Q ini lah yang mementukan
nilai dari frekuensi cut-off pada BPF. Sedangkan HPF
merupakan jenis filter yang melewatkan frekuensi
tinggi serta meredam frekuensi rendah. Nilai
frekuensi cut-off pada filter ini adalah 70,7% atau -

Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 8


5. KESIMPULAN
Berikut adalah kesimpulan dari percobaan 1 ini:
1. Sistem help sangat bermanfaat sekali bagi
siapapun yang memulai menggunakan
MATLAB. Gunakan perintah ini apabila
kita merasa lupa/ingin tahu commands
atau syntax dasar ketika menggunakan
MATLAB.
2. Praktikan juga telah mampu melakukan
desain dan simulasi filter FIR melalui
percobaan 2.
3. Praktikan telah mampu memahami secara
mendalam serta merancang pem-filter-an
FIR dengan MATLAB

DAFTAR PUSTAKA
[1] Proakis, J.G. and D. G. Manolakis, Digital
Signal Processing, Principles, Algorithms, and
Applications 4th ed. Upper Saddle River, NJ:
Prentice Hall, 2006.
[2] Hutabarat, Mervin T., Armein Z. R. Langi,
Yoanes Bandung, dan Erwin Cahyadi,
Praktikum Pengolahan Sinyal Digital, Sekolah
Teknik Elektro dan Informatika Institut
Teknologi Bandung, Bandung, 2013.
Kurniawan Irwan, Bahan Ajar Matakuliah
Pengolahan Sinyal, Politeknik Jambi.
[3] Bangsa. Insani Abdi, Praktikum Pengolahan
Sinyal Digital. Publishing, Karawang 2020.

Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 9


Source Code:
close all clc
clear all

i=0:99; fs=18000 f1=400 f2=2400 f3=6000


theta1= -pi+2*pi*rand(1,1); theta2= -pi+2*pi*rand(1,1); theta3= -
pi+2*pi*rand(1,1);

%% sintot 1
sin1= sin(2*pi*i*f1/fs+theta1); sin2= sin(2*pi*i*f2/fs+theta2); sin3=
sin(2*pi*i*f3/fs+theta3);

sintot1= (sin1+sin2+sin3)/3; stem (i,sintot1);


figure
freqz (sintot1);

%% sintot 2 f1=200 f2=800 f3=1400 f4=2000 f5=2600


f6=3200 f7=3800 f8=4400 f9=5000 f10=5600 f11=6200
f12=6800 f13=7400 f14=8000

% theta dianggap 0

sin1= sin(2*pi*i*f1/fs); sin2= sin(2*pi*i*f2/fs); sin3=


sin(2*pi*i*f3/fs); sin4= sin(2*pi*i*f4/fs); sin5=
sin(2*pi*i*f5/fs); sin6= sin(2*pi*i*f6/fs); sin7=
sin(2*pi*i*f7/fs); sin8= sin(2*pi*i*f8/fs); sin9=
sin(2*pi*i*f9/fs); sin10= sin(2*pi*i*f10/fs); sin11=
sin(2*pi*i*f11/fs); sin12= sin(2*pi*i*f12/fs); sin13=
sin(2*pi*i*f13/fs); sin14= sin(2*pi*i*f14/fs);

sintot2= (sin1+sin2+sin3+sin4+sin5+sin6+sin7+s
in8+sin9+sin10+sin11+sin12+sin13+sin1 4)/14;
stem (i,sintot2); figure
freqz (sintot2);

%% FIR LPF
wc= 1000; %frekuensi cut-off wn= 2*wc/fs;

n=30
b= fir1 (n,wn)

freqz (b);

figure; impz (b);


%% FIR BPF

wp= 1000; % frekuensi sisi passband ws= 4000; % frekuensi sisi stopband

wc= (wp+ws)/2; % frekuensi cut-off wn=2*wc/fs;

n=30
c = fir1(n,wn) freqz (c); figure;
impz (c);

Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 10


%% FIR HPF
wc= 5000; %frekuensi cut-off wn= 2*wc/fs;

n=30
d= fir1 (n,wn) freqz (d); figure;
impz (d);

Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 11


Laporan Praktikum - Laboratorium Komputasi – FT UNSIKA 12

Anda mungkin juga menyukai