Pengenalan MATLAB
Revisi : 01
200 menit
Hal 1 dari 43
1. Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat mengoperasikan Matlab dan dapat
menggunakannya sebagai perangkat simulasi untuk Praktikum Pengolahan Sinyal
Digital
2. Sub Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat mengoperasikan Matlab dan dapat
membangkitkan sinyal sederhana serta membuat sendiri fungsi (function)
3. Dasar Teori
Matlab adalah suatu bahasa pemrograman dengan kinerja tinggi untuk komputasi
teknik. Matlab mengintegrasikan komputasi, visualisasi dan pemrograman dalam suatu
model yang mudah dipakai.
Matlab merupakan singkatan dari Matrix Laboratory. Sebagaimana namanya,
elemen data dalam Matlab adalah matriks. Dengan demikian, untuk memecahkan berbagai
persoalan teknik yang terkait komputasi, khususnya matriks dan vektor, Matlab sangat
mudah untuk dipakai. Hal ini berbeda kalau kita menggunakan bahasa pemrograman lain
seperti Pascal, Basic atau C, dimana kita harus mendeklarasikan berbagai hal tentang
matriks sebelum menggunakannya.
Fitur-fitur Matlab sudah banyak dikembangkan, dan antara lain dengan fasilitas
yang diberi nama toolbox. Toolbox ini merupakan kumpulan fungsi-fungsi (functions)
Matlab yang telah dikembangkan ke suatu lingkungan kerja Matlab untuk menyelesaiakan
suatu masalah dalam bidang tertentu. Sangat penting bagi seorang pengguna Matlab untuk
memilih dan menggunakan toolbox mana yang mendukung untuk menyelesaikan masalah
yang dihadapinya. Bidang-bidang yang sudah bisa dibantu dengan toolbox misalnya
pengolahan sinyal, sistem kendali, fuzzy logic, artificial neural networks, image processing
dan lain-lain.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/01
Pengenalan MATLAB
Revisi : 01
200 menit
Hal 2 dari 43
Memulai Matlab
Menjalankan Matlab dapat dilakukan dengan melakukan double-click pada icon Matlab.
Selanjutnya akan muncul tampilan seperti gambar berikut:
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/01
Pengenalan MATLAB
Revisi : 01
200 menit
Hal 3 dari 43
x = 2;
>
y = 3;
>
z = x + y
z =
5
Berikut ini kita akan mendefinisikan dua buah vektor, yaitu vektor a dan b:
>
a = [1 2 3];
>
b = [4 5 6];
Selanjutnya ketik :
>> b(1)
ans =
4
Dari contoh di atas, terlihat bahwa Matlab menggunakan integer positif sebagai index
array. Elemen pertama adalah b(1), elemen kedua adalah b(2) dan seterusnya. Sekarang
kita jumlahkan kedua array:
>> a + b
ans =
5
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/01
Pengenalan MATLAB
Revisi : 01
200 menit
Hal 4 dari 43
10
18
n = 0:100;
>
T = 0.1;
>
x = sin(2*pi*0.5*n*T);
Penggambaran grafik
Salah satu kelebihan dari Matlab adalah kemudahan dalam mengolah grafik,
sehingga sangat mudah untuk melakukan suatu proses visualisasi. Sebagai contoh, untuk
menampilkan sinyal sinus 0.5 Hz pada pembahasan sebelumnya, tinggal diteruskan dengan
mengetik:
>
>
xlabel(time), ylabel(amplitudo);
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/01
Pengenalan MATLAB
Revisi : 01
200 menit
Hal 5 dari 43
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
Pengenalan MATLAB
No. LST/EKA/313/01
Revisi : 01
200 menit
Hal 6 dari 43
t = 0:10;
>
y_2 = x2(t)
16
25
36
49
64
81
100
atau dapat juga memanggilnya dari program lain, dengan hasil yang sama.
4.
5.
6.
Keselamatan Kerja
a.
b.
c.
Setiap kali selesai menulis program segera simpan file program tersebut
Langkah Kerja
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/01
7.
Bahan Diskusi
8.
Lampiran :
Dibuat oleh :
Aris Nasuha, MT
Pengenalan MATLAB
Revisi : 01
200 menit
Hal 7 dari 43
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
Sinyal-sinyal Elementer
No. LST/EKA/313/02
Revisi : 01
200 menit
Hal 8 dari 43
1. Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat mengoperasikan Matlab dan dapat
menggunakannya sebagai perangkat simulasi untuk Praktikum Pengolahan Sinyal
Digital
2. Sub Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat
a.
membaca dan menulis file teks dengan menggunakan fungsi fprintf dan
fscanf
3. Dasar Teori
Sinyal-sinyal elementer terdiri dari:
1. Impuls satuan (unit impuls), didefinisikan sebagai
(n) = 1 untuk n = 0
0
1
= 0 untuk n < 0
3. Ramp satuan (unit ramp), didefinisikan sebagai
u r (n) = n untuk n 0
= 0 untuk n < 0
4.
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
are
Semester IV
Sinyal-sinyal Elementer
No. LST/EKA/313/02
Revisi : 01
200 menit
Hal 9 dari 43
ejn + e jn
2
Untuk mendapatkan sinyal
sin(n) =
ejn e jn
diskrit dari
2j
sinyal analog tertentu
yang dapat
dikembalikan ke sinyal analog lagi tanpa ada perubahan frekuensi sinyal, maka frekuensi
sampling Fs harus memenuhi Kriteria Nyquist:
Fs > 2Fmax
dengan Fmax adalah frekuensi tertinggi yang ada pada sinyal
analog. Bila kriteria ini tidak terpenuhi, akan terjadi aliasing
4.
5.
Keselamatan Kerja
a.
b.
c.
Setiap kali selesai menulis program segera simpan file program tersebut
6. Langkah Kerja
Ketik program-program berikut dalam Editor MATLAB, beri nama yang sesuai
dengan isinya, kemudian di-run. Perhatikan dan catat hal-hal yang penting, lalu kerjakan
tugas-tugas yang diberikan.
% Program 1.1.
% Menampilkan sinyal Unit Impuls dan Unit Step
n = 0:50;
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
Sinyal-sinyal Elementer
No. LST/EKA/313/02
Revisi : 01
200 menit
Hal 10 dari 43
xlabel('waktu'), ylabel('amplitudo');
title('Sinyal Unit Step Tertunda');
axis([-5 70 -1 2]);
Tugas 2.
a. Modifikasi program di atas untuk mendapatkan nilai tunda yang lain, misal 10 atau
30 atau yang lain.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
Sinyal-sinyal Elementer
No. LST/EKA/313/02
Revisi : 01
200 menit
Hal 11 dari 43
b. Modifikasi program di atas, untuk menampilkan grafik fungsi sinus yang tertunda.
Besarnya frekuensi menyesuaikan, demikian pula besar tundaan. Petunjuk: fungsi
sinus yang tertunda cukup ditampilkan sebagian, karena sebagian yang lain diganti
dengan tundaan. Caranya dengan memanfaatkan indeks array.
% Program 1.3.
% Menampilkan Sinyal sinus dan kosinus
n = 0:63;
f1 = 0.5; f2 = 0.25; % frekuensi sinyal (Hz) T
= 0.1;
y = sin(2*pi*f1*T*n);
x = cos(2*pi*f2*T*n);
plot(n*T,y,'-o',n*T,x,'-*'), grid;
xlabel('waktu'), ylabel('amplitudo');
title('Sinyal Sinus dan Kosinus');
Tugas 3. Modifikasi program di atas agar dapat menampilkan :
a. y + x
b. y x
c. perkalian y dengan x
untuk: y = sin(2*pi*f1*T*n);
x = cos(2*pi*f2*T*n);
% Program 1.4
% Menampilkan sinyal sinus kontinyu dan diskrit
Ts1 = 0.0001;
n1 = 0:5000;
Ts2 = 0.05;
% periode sampling
n2 = 0:10;
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
Sinyal-sinyal Elementer
No. LST/EKA/313/02
Revisi : 01
200 menit
Hal 12 dari 43
plot(n*T,x), grid;
xlabel('waktu'), ylabel('amplitudo');
Tugas 5.
a. Cari kegunaan dari function : fopen, fprintf, dan fclose.
b. Modifikasi program di atas agar dapat dipakai untuk membuat suatu file text berisi
sinyal sinus dengan frekuensi 1 Hz, frekuensi sampling 10 Hz, dan panjang sinyal
200 sampel. Format data berupa tipe float, dengan 8 karakter, dan 6 karakter di
belakang koma. Beri nama file teks tersebut sinus1.txt.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
Sinyal-sinyal Elementer
No. LST/EKA/313/02
Revisi : 01
200 menit
Hal 13 dari 43
% Program 1.6.
% Membaca file text yang berisi sinyal
% dengan format data dalam integer
fid = fopen('signal_2.txt');
x = fscanf(fid,'%d\n');
fclose(fid);
T = 1;
% periode sampling
N = length(x);
n = 0:(N-1);
plot(n*T,x); grid on;
xlabel('waktu (ms)'), ylabel('amplitudo');
title('Tampilan file signal_2.txt');
Catatan :
Untuk menjalankan program di atas, terlebih dahulu praktikan harus meng-copy file
signal_2.txt dari dosen, kemudian menempatkannya pada folder aktif
Tugas 6.
a. Bagaimana cara membaca file text yang terletak pada folder selain folder aktif?
b. Modifikasi program di atas, agar dapat dipakai untuk membaca file random.txt
yang dibuat pada Program 1.6 dan menampilkan hasilnya. Juga untuk membaca file
sinus1.txt yang dibuat dalam Tugas 5.b.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/03
Revisi : 01
200 menit
Hal 14 dari 43
1. Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat menganalisis sinyal berdasarkan
frekuensi sinyal-sinyal penyusunnya, dengan memanfaatkan function yang ada pada
Matlab
2. Sub Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat :
a.
b.
c.
d.
3. Dasar Teori
Jika diberikan suatu sinyal diskrit x(n) yang bernilai tidak nol hanya dalam selang 0
n (N 1) maka Transformasi Fourier Diskrit (Discrete Fourier Transform = DFT) dari
x(n) didefinisikan sebagai:
N1
Xk = xn e j2kn / N ,
dengan k = 0,1,K, N 1
n=0
Transformasi ini berfungsi mengubah sinyal dalam ranah waktu menjadi sinyal dalam
ranah frekuensi. Dengan kata lain, transformasi ini berfungsi menganalisis suatu sinyal
berdasarkan frekuensi sinyal-sinyal penyusunnya, atau disebut juga menganalisis spektrum
suatu sinyal
Sebaliknya, jika dalam ranah frekuensi sinyal X(k) diberikan, maka sinyal x(n)
dapat ditemukan dengan menggunakan Invers Transformasi Fourier Diskrit (Invers
Discrete Fourier Transform = IDFT ), yaitu:
x n =
1
N
N1
Xk e j2kn / N ,
dengan n = 0,1,K, N 1
k=0
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/03
200 menit
Hal 15 dari 43
b.
c.
Setiap kali selesai menulis program segera simpan file program tersebut
6. Langkah Kerja
a.
Ketik program-program berikut dalam Editor MATLAB, beri nama yang sesuai
dengan isinya, kemudian di-run, kecuali Program 2.1 karena program ini adalah
suatu function. Perhatikan dan catat hal-hal yang penting, lalu kerjakan tugas-tugas
yang diberikan.
b.
c.
Untuk Program 2.6, sebelum menjalankannya, terlebih dahulu harus dicari file
"whose.wav" dengan bantuan Windows Explorer, kalau tidak ditemukan, cari saja
file ekstensi wav yang lain. Setelah ditemukan, file tersebut di-copy ke folder aktif.
% Program 2.1
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/03
200 menit
Hal 16 dari 43
a = amplitudo sinyal
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/03
200 menit
Hal 17 dari 43
f2 = 40;
% frekuensi dalam Hz
y = sin(2*pi*f1*n*T) + sin(2*pi*f2*n*T);
N = length(y);
F = dft(y);
mag = abs(F);
fase = angle(F);
subplot(221), plot(n*T,y,'k-*'), grid;
xlabel('Waktu'), ylabel('Amplitudo');
title('Sinyal sinus gabungan');
frek = (0:N/2-1)/(N*T);
subplot(223);
plot(frek,mag(1:N/2),'r-o'), grid;
xlabel('Frekuensi (Hz)'), ylabel('Magnitude');
set(gca,'XTick',[f1 f2]);
Tugas 2.
Amati hasil Program 2.2. Apakah fungsi dft yang anda buat dapat melakukan analisis
spektrum dengan benar? Gantilah f1 dan f2 pada program tersebut berturut-turut dengan
20 dan 35. Amati hasilnya, apa yang berubah ?
% Program 2.3.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/03
200 menit
Hal 18 dari 43
Tugas 3.
Pada Program 2.3, amati pengaruh perbedaan amplitudo untuk kedua frekuensi. Misalkan
beri masukan berturut-turut, jelaskan analisa anda.:
a. 1 dan 1,
b. 1 dan 5,
c. 5 dan 1,
d. 5 dan 5
% Program 2.4.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/03
200 menit
Hal 19 dari 43
Tugas 4.
a. Pada Program 2.4, ubahlah nilai N menjadi 4. Amati pengaruhnya dan jelaskan
analisa anda.
b. Ulangi langkah di atas untuk N = 16.
% Program 2.5.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/03
200 menit
Hal 20 dari 43
% Program 2.6
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/03
200 menit
Hal 21 dari 43
[y,fs,nbits] = wavread('whoosh.wav');
T = 1/fs;
N = length(y);
t = (0:N-1)*T;
subplot(211), plot(t,y), grid;
xlabel('waktu');
ylabel('amplitudo');
title('Tampilan sinyal');
Y = fft(y);
mag = abs(Y);
freq = (0:(N/2)-1)/(N*T);
subplot(212), plot(freq,mag(1:N/2)), grid;
xlabel('frekuensi');
ylabel('magnitude');
title('Spektrum sinyal');
Tugas 6.
Gunakan Program 2.6 untuk membaca file berekstensi .wav yang lain dan amati hasilnya.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
Transformasi Z
No. LST/EKA/313/03
Revisi : 01
200 menit
Hal 22 dari 43
1. Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat mensimulasikan tanggapan sistem
waktu diskrit terhadap input tertentu
2.
Sub Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat :
a.
b.
3. Dasar Teori
Metode ekspansi pecahan parsial sebagai metode untuk mencari Transformasi-Z
Balik, baik untuk pole tunggal, pole jamak, maupun pole kompleks. Secara umum, metode
ini akan mengubah :
B(z) zn
b 0z0 + b1z1 + b2z2 + ...+ bn zm
A(z) a 0z + a1z + a2z + ...+ an z A(z) z
= nm
z b 0zn + b1zn1 + b2zn2 + ... + bn
a 0zn + a1zn1 + a2 zn2 + ... + an
Xz = znm1 b 0 zn + b 1zn1 + b2z n2 + ... + bn
B(z)
X(z) =
z p1 z p2 Kz pn
z
menjadi
X(z) =
z
r1
z p1
+ r2
z p2
+K +
rn
+ k zn + k
z pn
zn1
2
+L + k
n
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/03
Transformasi Z
Revisi : 01
200 menit
Hal 23 dari 43
5. Keselamatan Kerja
d.
e.
f.
Setiap kali selesai menulis program segera simpan file program tersebut
6. Langkah Kerja
Ketik program-program berikut dalam Editor MATLAB, beri nama yang sesuai dengan
isinya, kemudian di-run. Perhatikan dan catat hal-hal yang penting, lalu kerjakan tugastugas yang diberikan.
% Program 4.1
% Menghitung konstanta ekspansi pecahan parsial, pole dan
%
b = [6,-10,2];
a = [1,-3,2,0];
[r,p,k] = residue(b,a)
Tugas 1.
Carilah konstanta ekspansi pecahan parsial dan pole-pole untuk transformasi-z:
Y(z) = 0.6z3 + 0.8z2 0.4z +1
z
z3 0.7z2 0.7z + 0.4
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
Transformasi Z
No. LST/EKA/313/03
Revisi : 01
200 menit
Hal 24 dari 43
% Program 4.2
% Tanggapan waktu dari suatu sistem diskrit
zeta = 0.7; % koefisien redaman
Ts = 0.5;
num = 1;
den = [1, 2*zeta, 1];
sys = tf(num,den);
% system orde 2
t = 0:Ts:19;
x = ones(size(t));
z = lsim(sys,x,t);
subplot(211), plot(t,x,t,z), grid;
[nd,dd] = c2dm(num,den,Ts,'zoh');
n = 0:Ts:19;
xd = ones(size(n));
z1 = filter(nd,dd,xd);
subplot(212), plot(n,xd,n,z1,'o-'), grid;
Tugas 2.
a). ganti nilai zeta berturut-turut dengan 2 dan 0.2, amati perubahan pada tampilan dan
catat nilai variabel nd dan dd.
Zeta
nd
dd
2
0.2
b). kembalikan nilai zeta ke 0.2, gantilah 'zoh' pada fungsi c2dm berturut-turut
dengan 'foh', 'tustin' dan 'matched'. Catat perubahan nilai pada variabel
nd dan dd. Amati juga tampilannya, apabila ada perubahan, catat.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/03
Transformasi Z
Revisi : 01
200 menit
Hal 25 dari 43
% Program 4.3
% Tanggapan waktu dari suatu sistem diskrit
% untuk periode sampling yang berbeda
Ts1 = 0.5; % periode sampling = 0.5
n1 = 0:Ts1:25;
Ts2 = 2; % periode sampling = 2
n2 = 0:Ts2:25;
num = [1 1];
den = [1 0.5 1];
[nd1,dd1] = c2dm(num,den,Ts1,'zoh');
[nd2,dd2] = c2dm(num,den,Ts2,'zoh');
sys1 = tf(nd1,dd1,Ts1);
sys2 = tf(nd2,dd2,Ts2);
sys_1 = feedback(sys1,0.1);
sys_2 = feedback(sys2,0.1);
[numd1,dend1] = tfdata(sys_1,'v');
[numd2,dend2] = tfdata(sys_2,'v');
xd1 = ones(size(n1));
z1
= filter(numd1,dend1,xd1);
= filter(numd2,dend2,xd2);
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
Transformasi Z
No. LST/EKA/313/03
Revisi : 01
200 menit
Hal 26 dari 43
% Program 4.4
% Tanggapan frekuensi dari suatu sistem diskrit
zeta = 0.7; % keofisien redaman
num = 1;
den = [1, 2*zeta, 1];
% system orde 2
Ts = 0.5;
[nd,dd] = c2dm(num,den,Ts,'zoh');
point = 512;
Fs = 2*pi;
[H,q] = freqz(nd,dd,point,Fs);
g = ones(size(q))*0.707;
M = abs(H);
plot(q,M,'o',q,g,'--'), grid
Tugas 4.
a). Ubahlah
Amati dan catat hasilnya. Apa yang dimaksud dengan variabel point dan Fs
pada program di atas?
b) . Ganti nilai zeta berturut-turut dengan 1.5 dan 0.3, amati perubahan pada
tampilan dan catat.
c). Masih pada nilai zeta ke 0.3, gantilah 'zoh' pada fungsi c2dm bertutrut-turut
dengan 'foh', 'tustin' dan 'matched'. Catat perubahan nilai pada
variabel nd dan dd. Amati juga tampilannya, apabila ada perubahan, catat.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/05
Revisi : 01
200 menit
Hal 27 dari 43
1. Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat merancang suatu filter digital
sederhana
2. Sub Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat :
a.
b.
c.
3. Dasar Teori
Filter prototype adalah filter low pass dengan frekuensi cut off 1 rad/detik.
1 rad/s
Orde Filter ditentukan oleh pangkat tertinggi dari polinomial s yang ada pada
penyebut fungsi alih suatu filter.
Contoh: Filter orde 1 : Gs
Filter orde 2 : Gs
1
s1
s2 1.414s 1
1
Filter orde 3 : Gs
s3 2s2 2s 1
Transformasi frekuensi adalah proses transformasi dari fungsi alih filter prototype
ke fungsi alih filter yang dikehendaki :
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/05
Prototype orde n
Lowpass ke lowpass
200 menit
Hal 28 dari 43
Orde
n
Lowpass ke highpass
s= 0
s
Lowpass ke bandpass
s = s2 + 12
s 2
2n
s = s2 1
s2 + 2
2n
Lowpass ke bandstop
b.
c.
Setiap kali selesai menulis program segera simpan file program tersebut
6. Langkah kerja
Ketik program-program berikut dalam Editor MATLAB, beri nama yang sesuai
dengan isinya, kemudian di-run. Perhatikan dan catat hal-hal yang penting, lalu kerjakan
tugas-tugas yang diberikan.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/05
Revisi : 01
200 menit
Hal 29 dari 43
% Program 5.1
% Filter prototype Butterworth
orde = input('Masukkan orde dari filter prototype : ');
[z,p,k] = buttap(orde);
[num,den] = zp2tf(z,p,k);
w = logspace(-1,2);
[mag,phase] = bode(num,den,w);
[m1,ph1] = bode(0.707,1,w);
logmag = 20*log10(mag);
logm1 = 20*log10(m1);
% garis 3 dB
semilogx(w,logm1,w,logmag), grid;
xlabel('frekuensi (rad/detik)');
ylabel('magnitude (dB)');
title('Diagram Bode Filter Prototype');
Tugas 1.
(a). Isi orde filter pada berturut-turut dengan 1, 2, dan 3. Catat nilai variabel num dan den
masing-masing. Kemudian amati dan catat perbedaan tampilannya. Berapa kemiringan
transition band masing-masing? Nyatakan dalam satuan db/oktav.
Orde filter
Nilai num
Nilai den
1
2
3
(b). Coba pula untuk mengganti fungsi buttap dengan cheb1ap, lalu ulangi langkah
(a). Apa perbedaan tampilan yang mencolok antara keduanya?
% Program 5.2
% Transformasi frekuensi
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/05
[z,p,k] = buttap(2);
Revisi : 01
200 menit
Hal 30 dari 43
% filter orde 2
[num,den] = zp2tf(z,p,k);
wc = 10;
[n1,d1] = lp2lp(num,den,wc);
w = logspace(-1,3);
[mag,phase] = bode(n1,d1,w);
[m1,ph1] = bode(0.707,1,w);
logmag = 20*log10(mag);
logm1 = 20*log10(m1);
semilogx(w,logm1,w,logmag), grid;
xlabel('frekuensi (rad/detik)');
ylabel('magnitude (dB)');
title('Diagram Bode Filter');
Tugas 2.
(a). Gantilah nilai variabel wc berturut-turut dengan 5 dan 50. Amati nilai variabel n1, d1
dan amati tampilannya.
wc
1
50
n1
d1
(b). Ubahlah fungsi lp2lp menjadi lp2hp dan ulangi tugas (a).
(c). Ubahlah fungsi lp2lp menjadi lp2bp dan lp2bs, serta ulangi tugas (a).
Perhatikan parameter kedua fungsi tersebut.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/05
Revisi : 01
200 menit
Hal 31 dari 43
% Program 5.3
% Penerapan filter analog
t = 0:0.001:2;
f1 = 2;
f2 = 30;
% dalam Hz
x = sin(2*pi*f1*t) + sin(2*pi*f2*t);
subplot(211), plot(t,x), grid;
xlabel('waktu (detik)'), ylabel('simpangan');
title('Sinyal sebelum difilter');
[z,p,k] = buttap(2);
[n,d] = zp2tf(z,p,k);
fc = 5;
% dalam Hz
wc = 2*pi*fc;
% dalam radian/detik
[n1,d1] = lp2lp(n,d,wc);
% transformasi frekuensi
sys = tf(n1,d1);
y = lsim(sys,x,t);
subplot(212), plot(t,y), grid;
xlabel('waktu (detik)'), ylabel('simpangan');
title('Sinyal setelah difilter');
Tugas 3.
a.
Ubahlah fungsi lp2lp menjadi lp2hp dan carilah nilai variabel wc agar hasil
filter hanya sinyal frekuensi tinggi.
b.
Modifikasi program di atas, agar mencampur 3 sinyal. Sinyal ketiga yaitu sinyal
sinus frekuensi 100 Hz. Desainlah filter bandpass sehingga keluaran program
adalah sinyal frekuensi tengah, atau sinyal sinus 30 Hz.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/05
Revisi : 01
200 menit
Hal 32 dari 43
% Program 5.4
% Desain filter digital IIR
[z,p,k] = buttap(3);
% filter orde 3
[num,den] = zp2tf(z,p,k);
fc = 2;
wc = 2*pi*fc;
[n1,d1] = lp2lp(num,den,wc);
fs = 50;
points = 512;
[nd,dd] = bilinear(n1,d1,fs);
[h,w] = freqz(nd,dd,points,fs);
[h3,w] = freqz(0.707,1,points,fs);
subplot(121), plot(w,h3,w,abs(h)), grid;
xlabel('frekuensi (Hz)');
ylabel('magnitude');
title('Diagram Bode Filter');
% *** tampilan dalam semilog ***
mag = 20*log10(abs(h));
m3 = 20*log10(abs(h3));
subplot(122), semilogx(w,m3,w,mag), grid;
xlabel('frekuensi (Hz)');
ylabel('magnitude (dB)');
title('Diagram Bode Filter');
Tugas 4.
Ubahlah nilai variabel fc berturut-turut dengan 5 dan 10. Amati nilai variabel n1, d1, nd
dan dd, serta amati tampilannya.
fc
Dibuat oleh :
Aris Nasuha, MT
n1
d1
nd
dd
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/05
Revisi : 01
200 menit
Hal 33 dari 43
5
10
% Program 5.5
% Penerapan filter digital
n = 0:250;
T = 0.01;
f1 = 2;
f2 = 30;
% frekuensi sinyal dalam Hz
x = sin(2*pi*f1*n*T) + sin(2*pi*f2*n*T);
subplot(211), plot(n*T,x), grid;
xlabel('waktu (detik)');
ylabel('simpangan');
title('Sinyal sebelum difilter');
[z,p,k] = buttap(2);
% orde filter = 2
[num,den] = zp2tf(z,p,k);
fc = 5;
wc = 2*pi*fc;
% frek cut-off
dalam radian/detik
[n1,d1] = lp2lp(num,den,wc);
[nd,dd] = bilinear(n1,d1,1/T); y
= filter(nd,dd,x); subplot(212),
plot(n*T,y), grid; xlabel('waktu
(detik)'); ylabel('simpangan');
title('Sinyal setelah difilter');
Tugas 5.
Pada program 5.5, gantilah orde filter berturut-turut dengan 1 dan 3, apakah pengaruhnya
pada tampilan hasil filter?
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/06
Revisi : 01
200 menit
Hal 34 dari 43
1. Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat merancang suatu filter digital
sederhana
2. Sub Kompetensi
Setelah mengikuti praktikum ini, mahasiswa dapat merancang filter digital FIR dan
menerapkannya untuk memfilter sinyal
3. Dasar Teori
Filter digital FIR, dibandingkan filter IIR, mempunyai kelebihan berupa sudut fase
yang linier. Sudut fase yang tidak linier, sesuatu yang umum pada filter IIR, dapat
menyebabkan terjadinya gangguan pada sinyal fungsi waktu. Sementara itu, sudut fase
yang linier hanya mengakibatkan terjadinya waktu tunda pada sinyal yang diproses
(difilter). Kekurangan filter FIR, dibanding dengan filter IIR, adalah memerlukan orde
yang jauh lebih tinggi, untuk hasil yang sama.
Suatu filter FIR dapat didesain dengan memotong tanggapan impuls dari suatu filter
IIR. Bila h(n) adalah tanggapan impuls dari karakteristik filter IIR H(), maka
tanggapan impuls dari filter IIR :
0 n N -1
hd
n = h(n),
0,
n lainnya
dengan N adalah panjang filter atau orde filter.
H()
1
0
c
- c
Gambar 6.1. Tanggapan frekuensi filter lowpass ideal
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/06
Revisi : 01
200 menit
Hal 35 dari 43
0.14
0.12
0.1
0.08
h(n)
0.06
0.04
0.02
0
-0.02
-0.04
-50
-40
-30
-20
-10
0
n
10
20
30
40
50
Gambar 6.2. Tanggapan impuls dari filter lowpass ideal (tampilan dipotong)
0.14
0.12
0.1
0.08
h(n)
0.06
0.04
0.02
0
-0.02
-0.04
0 5 10 15 20 25 30
Hd z hd n zn
n=0
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/06
200 menit
Hal 36 dari 43
Hd = hd n e jn
n=0
1, 0 n N -1 w n =
0,
n lainnya
e.
f.
Setiap kali selesai menulis program segera simpan file program tersebut
6. Langkah kerja
Ketik program-program berikut dalam Editor MATLAB, beri nama yang sesuai dengan
isinya, kemudian di-run. Perhatikan dan catat hal-hal yang penting, lalu kerjakan tugastugas yang diberikan.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/06
Revisi : 01
200 menit
Hal 37 dari 43
% program 6.1
% perbandingan respon frekuensi filter IIR dan FIR
N = 11;
[z,p,k] = buttap(N);
% orde filter
% *** filter IIR ***
[num,den] = zp2tf(z,p,k);
wc = 5;
[nd,dd] = bilinear(n1,d1,1/T);
[H,omega] = freqz(nd,dd);
fase = 180/pi * unwrap(angle(H));
subplot(221), plot(omega,0.707,omega,abs(H)), grid;
title('respon frekuensi filter IIR');
xlabel('frekuensi (rad/sampel)'), ylabel('magnitude');
subplot(222), plot(omega,fase), grid;
xlabel('frekuensi '), ylabel('sudut fase (der)');
omegac = 0.5;
m = (N-1)/2;
% penggeseran
n = 0:2*m;
h = omegac/pi * sinc(omegac*(n-m)/pi);
w = [ones(1,N) zeros(1, length(n)-N)];
% window
hd = h .* w;
[Hd, omega1] = freqz(hd, 1);
phase = 180/pi * unwrap(angle(Hd));
subplot(223), plot(omega1,0.707,omega1,abs(Hd)), grid;
title('respon frekuensi filter FIR');
xlabel('frekuensi (rad/sampel)'), ylabel('magnitude');
subplot(224), plot(omega1,phase), grid;
xlabel('frekuensi '), ylabel('sudut fase (der)');
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/06
200 menit
Hal 38 dari 43
Tugas 1.
(a). Amati perbedaan tampilan filter IIR dan filter FIR. Perhatikan hal hal berikut : puncak
magnitude, riak (ripple) pada magnitude, frekuensi cut-off, dan sudut fase
Tipe filter
Puncak
magnitude
Riak pada
magnitude
Frekuensi
cut-off
Sudut fase
IIR
FIR
w = [0 hanning(N-2) zeros(1,length(n)-N+1)];
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/06
Revisi : 01
200 menit
Hal 39 dari 43
% Program 6.2
% Perbandingan Penerapan Filter IIR dan FIR
n = 0:150;
T
f1 = 1/(2*pi);
f2 = 5/(2*pi); % frekuensi sinyal (Hz)
x = cos(2*pi*f1*T*n) + cos(2*pi*f2*T*n); % sinyal input
subplot(211), plot(n*T,x), grid;
title('sinyal sebelum difilter');
xlabel('waktu'), ylabel('simpangan');
[z,p,k] = buttap(3);
[num,den] = zp2tf(z,p,k);
wc = 2;
[n1,d1] = lp2lp(num,den,wc);
[nd,dd] = bilinear(n1,d1,1/T);
% frekuensi digital = wc * T
y1 = filter(nd,dd,x);
subplot(223), plot(n*T,y1), grid;
xlabel('waktu'), ylabel('simpangan');
title('hasil LPF IIR orde 3');
omegac = 0.4;
N = 21;
m = (N-1)/2;
% penggeseran
h = omegac/pi * sinc(omegac*(n-m)/pi);
w = [ones(1,N) zeros(1, length(n)-N)];
% window
hd = h .* w;
y2 = filter(hd,1,x);
% sinyal output
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/06
200 menit
Hal 40 dari 43
Tugas 2.
Gantilah panjang filter N, berturut-turut dengan:
a. N = 41;
b. N = 81;
Amati perubahan tampilan dan catat. Apakah semakin panjang filter hasilnya semakin
baik? Bagaimana dengan waktu tundanya?
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/06
200 menit
Hal 41 dari 43
% program 6.3
% perbandingan filter FIR
N = 31;
omegac = 0.8;
% orde filter
% frekuensi cut-off digital
wn = omegac/pi;
b1 = fir1(N,wn);
[H,omega] = freqz(b1,1);
fase = 180/pi * angle(H);
subplot(221), plot(omega,0.707,omega,abs(H)), grid;
xlabel('frekuensi'), ylabel('magnitude');
subplot(222), plot(omega,unwrap(fase)), grid;
xlabel('frekuensi'), ylabel('sudut fase');
% *** Desain filter FIR secara sederhana ***
m = (N-1)/2;
n = 0:2*m;
% penggeseran
% penetapan titik untuk plot
h = omegac/pi * sinc(omegac*(n-m)/pi);
w = [ones(1,N) zeros(1,length(n)-N)];
% window
hd = h .* w;
[Hd,omega1] = freqz(hd,1);
fase1 = 180/pi * angle(H);
subplot(223), plot(omega1,0.707,omega1,abs(Hd)), grid;
xlabel('frekuensi'), ylabel('magnitude');
subplot(224), plot(omega1,unwrap(fase1)), grid;
xlabel('frekuensi'), ylabel('sudut fase');
Tugas 3.
Gantilah window (variabel w) berturut-turut dengan
a. w = [hamming(N) zeros(1,length(n)-N)];
b. w = [0 hanning(N-2) zeros(1,length(n)-N+1)];
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/06
200 menit
Hal 42 dari 43
Amatilah perubahan tampilan dan catat, yaitu tentang tinggi magnitude, ripple, frekuensi
cut-off dan sudut fase.
% Program 6.4
% Karakteristik respon frekuensi
% filter yang didesain dengan function fir2
N = 30; % orde filter
% *** filter low pass ***
f1 = [0 0.3 0.3 1];
m1 = [1 1 0 0];
b1 = fir2(N,f1,m1);
[h1,w1] = freqz(b1,1,128);
subplot(211), plot(f1,m1,w1/pi,abs(h1)), grid;
title('karakteristik LPF');
xlabel('frekuensi ternormalisasi'), ylabel('magnitude');
% *** filter high pass ***
f2 = [0 0.7 0.7 1];
m2 = [0 0 1 1];
b2 = fir2(N,f2,m2);
[h2,w2] = freqz(b2,1,128);
subplot(212), plot(f2,m2,w2/pi,abs(h2)), grid;
title('karakteristik HPF');
xlabel('frekuensi ternormalisasi'), ylabel('magnitude');
Tugas 4.
Desainlah filter bandpass dan bandstop dengan menggunakan function fir2.
Dibuat oleh :
Aris Nasuha, MT
Diperiksa oleh :
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET PENGOLAHAN SINYAL DIGITAL
Semester IV
No. LST/EKA/313/06
200 menit
Hal 43 dari 43
% Program 6.5
% Penerapan filter yang didesain dari function fir2
n = 0:200;
T = 0.2; % periode sampling x1 =
cos(n*T);
x2 = cos(5*n*T);
x = x1 + x2;
subplot(221), plot(n*T,x1), grid;
title('sinyal x1');
xlabel('waktu'), ylabel('simpangan');
subplot(222), plot(n*T,x2), grid;
title('sinyal x2');
xlabel('waktu'), ylabel('simpangan');
subplot(223), plot(n*T,x), grid;
title('sinyal x1 + x2');
xlabel('waktu'), ylabel('simpangan');
N = 30; % orde filter
% *** Low Pass Filter FIR ****
f1 = [0 0.2 0.2 1];
m1 = [1 1 0 0];
b1 = fir2(N,f1,m1);
y1 = filter(b1,1,x);
% sinyal keluaran
Diperiksa oleh :