Tujuan
1. Mahasiswa mampu memahami karakteristik sinyal kontinu dan sinyal diskret.
2. Mahasiswa mampu menggambarkan sinyal kontinu dan sinyal diskret melalui
perangkat lunak MATLAB.
Dasar Teori
Sinyal adalah fungsi yang mewakili kuantitas fisik atau variabel, dan biasanya berisi informasi
tentang perilaku atau sifat fenomena. Dalam rumpun elektro, sinyal biasanya digunakan
sebagai representasi tegangan pada rentaang waktu tertentu. Misalnya sebuah sinyal kontinu
𝑥(𝑡) = 𝑡 + 2 {Volt}
pada rentang
−1 ≤ 𝑡 ≤ 4
dan bernilai nol di luar itu, maka secara sederhana sinyal tersebut dapat digambarkan dimana
𝑡 adalah waktu dalam satuan detik. Maka sinyal tersebut dapat digambarkan pada Gambar 1.
Pada praktikum ini, yang menjadi bahasan adalah sinyal kontinu dan diskret. Sinyal kontinu
adalah sinyal yang nilainya tersebar di sepanjang domain waktu secara kontinu. Sinyal diskret
adalah sinyal yang nilainya hanya tersebar di sepanjang domain waktu secara diskret. Untuk
mempermudah pemahaman, kita dapat masuk ke percobaan.
Kemudian buatlah gambar sinyal sesuai dengan yang diinstruksikan melalui asisten!
Kemudian buatlah gambar sinyal sesuai dengan yang diinstruksikan melalui asisten!
Pada bagian ini, Anda dapat menyimpan file dalam “MAT-files” atau “MATLAB Script”.
Anda dapat memilihnya pada “Save as type”.
3. Anda dapat membuka kembali file yang telah disimpan tersebut dengan double click
ada file tersebut atau dengan mengetik load(‘nama file’) pada script MATLAB.
Untuk menyimpan gambar, ikuti langkah berikut:
1. Bukalah gambar yang ingin disimpan!
3. Pilih direktori tempat file ingin disimpan, kemudian tentukan nama file dan format
yang diinginkan!
Modul 2
Transformasi Fourier
Tujuan
1. Mahasiswa mampu memahami konsep sinyal domain frekuensi.
2. Mahasiswa mampu mentransformasikan representasi sinyal ke domain frekuensi.
3. Mahasiswa mampu menggambarkan sinyal dalam domain frekuensi melalui
perangkat lunak MATLAB.
Dasar Teori
Pada modul sebelumnya, sinyal direpresentasikan dalam domain waktu untuk sinyal kontinu
atau domain sekuens untuk sinyal diskrit. Selain representasi domain waktu tadi, suatu sinyal
juga dapat direpresentasikan dalam domain frekuensi. Dalam hal ini, sebuah sinyal terdiri dari
beberapa sinyal dasar dengan frekuensi yang berbeda-beda. Misalnya sinyal
𝑥(𝑡) = 2 cos(2𝜋(15)𝑡) + 3 cos(2𝜋(20)𝑡) {Volt}
Pada dasarnya terdiri dari dua bagian, yaitu
𝑥1 (𝑡) = 2 cos(2𝜋(15)𝑡) {Volt}
yang memiliki frekuensi 15 Hz dan
𝑥2 (𝑡) = 3 cos(2𝜋(20)𝑡) {Volt}
yang memiliki frekuensi 20 Hz. Sinyal frekuensi 15 Hz memiliki amplituda 2 Volt dan sinyal
frekuensi 20 Hz memiliki amplituda 3 Volt. Sinyal 𝑥(𝑡) ditampilkan pada Gambar 4.
Transformasi Fourier adalah tool untuk mengubah representasi sinyal ke dalam domain
frekuensi. Berdasarkan klasifikasinya, sinyal dapat dibedakan menjadi sinyal kontinu dan
sinyal diskrit, demikian juga dengan Transformasi Fourier. Transformasi Fourier kontinu
digunakan untuk mengubah representasi sinyal kontinu dan dirumuskan sebagai
∞
Jika baris terakhir source code tersebut dihilangkan, maka gambar yang ditampilkan adalah
dari frekuensi -500 Hz hingga 500 Hz. Silakan dicoba jika baris terakhir tersebut dihilangkan.
Tujuan
1. Mahasiswa mampu memahami konsep operasi dasar sinyal: penjumlahan, perkalian,
dan konvolusi.
2. Mahasiswa mampu melakukan operasi dasar sinyal menggunakan perangkat lunak
MATLAB.
3. Mahasiswa mampu memahami karakteristik operasi dasar sinyal.
Dasar Teori
Sebuah sistem memiliki masukan, kemudian diproses, dan menghasilkan luaran. Proses pada
pengolahan sinyal pada dasarnya berupa operasi matematis. Terdapat tiga operasi dasar yang
akan dipelajari dalam modul ini: penjumlahan, perkalian, dan konvolusi. Tiga operasi dasar
ini adalah operasi yang paling umum digunakan dan dapat dirangkai untuk menyusun sistem
pengolahan sinyal yang utuh.
Pada disajikan dua buah sinyal kontinu 𝑥1 (𝑡) dan 𝑥2 (𝑡) dengan
𝑥1 (𝑡) = 2 cos(4𝜋𝑡) {Volt}
dan
𝑥2 (𝑡) = 3 cos(3𝜋𝑡) {Volt}.
Dua buah sinyal tersebut dapat dioperasikan dengan operasi penjumlahan, perkalian, dan
konvolusi. Hasil operasi tersebut adalah
𝑥𝑠 (𝑡) = 𝑥1 (𝑡) + 𝑥2 (𝑡),
𝑥𝑚 (𝑡) = 𝑥1 (𝑡) × 𝑥2 (𝑡),
dan
𝑥𝑐 (𝑡) = 𝑥1 (𝑡) ∗ 𝑥2 (𝑡)
dengan
𝑥𝑠 (𝑡) adalah hasil penjumlahan, 𝑥𝑚 (𝑡) adalah hasil perkalian, dan 𝑥𝑐 (𝑡) adalah hasil
konvolusi antara 𝑥1 (𝑡) dan 𝑥2 (𝑡). Hasil operasi sinyal ini ditampilkan pada Gambar 12.
Operasi sinyal sering digunakan untuk merekayasa sinyal dalam tujuan tertentu. Misalnya
modulasi amplituda (AM) yang menggunakan operasi perkalian, salah satu blok multiplexer
yang menggunakan operasi penjumlahan, dan image filtering yang menggunakan operasi
konvolusi. Pada kondisi tertentu, beberapa operasi sinyal dikombinasikan dan juga ditambah
operasi lain seperti penundaan (delay), diferensiator, integrator, dan lain-lain. Masing-masing
operasi ini diwakili oleh simbol tertentu dalam blok diagram realisasi sistem.
Tabel 1 menampilkan beberapa operator yang sering digunakan dalam pengolahan sinyal
digital maupun analog. Selain simbol dan operator tersebut, ada operator lain yang mungkin
juga digunakan.
tmin=-1;
tmax=11;
gap=1/1000;
t=tmin:gap:tmax-gap;
x1((tmin-tmin)/gap+1:(tmax-tmin)/gap)=0;
x1((2-tmin)/gap+1:(tmax-tmin)/gap)=x1((2-tmin)/gap+1:(tmax-tmin)/gap)+(0.1*(t((2-
tmin)/gap+1:(tmax-tmin)/gap).^2));
x1((8-tmin)/gap+1:(tmax-tmin)/gap)=x1((8-tmin)/gap+1:(tmax-tmin)/gap)-(0.1*(t((8-
tmin)/gap+1:(tmax-tmin)/gap).^2));
x2((tmin-tmin)/gap+1:(tmax-tmin)/gap)=3*sin(4*pi*t);
%menjumlahkan sinyal
x=x1+x2;
%membuat 3 window untuk gambar
f1=figure;
f2=figure;
f3=figure;
%menggambar pada window pertama
figure(f1);
plot(t,x1,'k','LineWidth',1.5);
xlim([-1 11]);
xlabel('t (detik)');
ylabel('x_1(t)');
%menggambar pada window kedua
figure(f2);
plot(t,x2,'k','LineWidth',1.5);
xlim([-1 11]);
xlabel('t (detik)');
ylabel('x_2(t)');
%menggambar pada window ketiga
figure(f3);
plot(t,x,'k','LineWidth',1.5);
xlim([-1 11]);
xlabel('t (detik)');
ylabel('x(t)=x_1(t)+x_2(t)');
Gambar 13 – Hasil Running Gambar Ketiga Modul 3 Percobaan 1a
nmin=-1;
nmax=11;
n=nmin:1:nmax-1;
x1((nmin-nmin)+1:(nmax-nmin))=0;
x1((2-nmin)+1:(nmax-nmin))=x1((2-nmin)+1:(nmax-nmin))+(0.1*(n((2-nmin)+1:(nmax-
nmin)).^2));
x1((8-nmin)+1:(nmax-nmin))=x1((8-nmin)+1:(nmax-nmin))-(0.1*(n((8-nmin)+1:(nmax-
nmin)).^2));
x2((nmin-nmin)+1:(nmax-nmin))=3*sin(pi*n/4);
%menjumlahkan sinyal
x=x1+x2;
%membuat 3 window untuk gambar
f1=figure;
f2=figure;
f3=figure;
%menggambar pada window pertama
figure(f1);
stem(n,x1,'k','LineWidth',1.5);
xlim([-1-0.1 10+0.1]);
xlabel('n');
ylabel('x_1(n)');
%menggambar pada window kedua
figure(f2);
stem(n,x2,'k','LineWidth',1.5);
xlim([-1-0.1 10+0.1]);
xlabel('n');
ylabel('x_2(n)');
%menggambar pada window ketiga
figure(f3);
stem(n,x,'k','LineWidth',1.5);
xlim([-1-0.1 10+0.1]);
xlabel('n');
ylabel('x(n)=x_1(n)+x_2(n)');
tmin=-1;
tmax=11;
gap=1/1000;
t=tmin:gap:tmax-gap;
x1((tmin-tmin)/gap+1:(tmax-tmin)/gap)=0;
x1((2-tmin)/gap+1:(tmax-tmin)/gap)=x1((2-tmin)/gap+1:(tmax-tmin)/gap)+(0.1*(t((2-
tmin)/gap+1:(tmax-tmin)/gap).^2));
x1((8-tmin)/gap+1:(tmax-tmin)/gap)=x1((8-tmin)/gap+1:(tmax-tmin)/gap)-(0.1*(t((8-
tmin)/gap+1:(tmax-tmin)/gap).^2));
x2((tmin-tmin)/gap+1:(tmax-tmin)/gap)=3*sin(4*pi*t);
%mengalikan sinyal
x=x1.*x2;
%membuat 3 window untuk gambar
f1=figure;
f2=figure;
f3=figure;
%menggambar pada window pertama
figure(f1);
plot(t,x1,'k','LineWidth',1.5);
xlim([-1 11]);
xlabel('t (detik)');
ylabel('x_1(t)');
%menggambar pada window kedua
figure(f2);
plot(t,x2,'k','LineWidth',1.5);
xlim([-1 11]);
xlabel('t (detik)');
ylabel('x_2(t)');
%menggambar pada window ketiga
figure(f3);
plot(t,x,'k','LineWidth',1.5);
xlim([-1 11]);
xlabel('t (detik)');
ylabel('x(t)=x_1(t)\timesx_2(t)');
Gambar 15 – Hasil Running Gambar Ketiga Modul 3 Percobaan 2a
n=nmin:1:nmax-1;
x1((nmin-nmin)+1:(nmax-nmin))=0;
x1((2-nmin)+1:(nmax-nmin))=x1((2-nmin)+1:(nmax-nmin))+(0.1*(n((2-nmin)+1:(nmax-
nmin)).^2));
x1((8-nmin)+1:(nmax-nmin))=x1((8-nmin)+1:(nmax-nmin))-(0.1*(n((8-nmin)+1:(nmax-
nmin)).^2));
x2((nmin-nmin)+1:(nmax-nmin))=3*sin(pi*n/4);
%mengalikan sinyal
x=x1.*x2;
%membuat 3 window untuk gambar
f1=figure;
f2=figure;
f3=figure;
%menggambar pada window pertama
figure(f1);
stem(n,x1,'k','LineWidth',1.5);
xlim([-1-0.1 10+0.1]);
xlabel('n');
ylabel('x_1(n)');
%menggambar pada window kedua
figure(f2);
stem(n,x2,'k','LineWidth',1.5);
xlim([-1-0.1 10+0.1]);
xlabel('n');
ylabel('x_2(n)');
%menggambar pada window ketiga
figure(f3);
stem(n,x,'k','LineWidth',1.5);
xlim([-1-0.1 10+0.1]);
xlabel('n');
ylabel('x(n)=x_1(n)\timesx_2(n)');
tmin=-1;
tmax=11;
gap=1/1000;
t=tmin:gap:tmax-gap;
x1((tmin-tmin)/gap+1:(tmax-tmin)/gap)=0;
x1((2-tmin)/gap+1:(tmax-tmin)/gap)=x1((2-tmin)/gap+1:(tmax-tmin)/gap)+(0.1*(t((2-
tmin)/gap+1:(tmax-tmin)/gap).^2));
x1((8-tmin)/gap+1:(tmax-tmin)/gap)=x1((8-tmin)/gap+1:(tmax-tmin)/gap)-(0.1*(t((8-
tmin)/gap+1:(tmax-tmin)/gap).^2));
x2((tmin-tmin)/gap+1:(tmax-tmin)/gap)=3*sin(4*pi*t);
%melakukan konvolusi dan mengeset t hasil konvolusi
x=conv(x1,x2)*gap;
tconv=2*tmin:gap:2*(tmax-gap);
%membuat 3 window untuk gambar
f1=figure;
f2=figure;
f3=figure;
%menggambar pada window pertama
figure(f1);
plot(t,x1,'k','LineWidth',1.5);
xlim([-1 11]);
xlabel('t (detik)');
ylabel('x_1(t)');
%menggambar pada window kedua
figure(f2);
plot(t,x2,'k','LineWidth',1.5);
xlim([-1 11]);
xlabel('t (detik)');
ylabel('x_2(t)');
%menggambar pada window ketiga
figure(f3);
plot(tconv,x,'k','LineWidth',1.5);
xlim([min(tconv) max(tconv)]);
xlabel('t (detik)');
ylabel('x(t)=x_1(t)\astx_2(t)');
Gambar 17 – Hasil Running Gambar Ketiga Modul 3 Percobaan 3a
nmin=-1;
nmax=11;
n=nmin:1:nmax-1;
x1((nmin-nmin)+1:(nmax-nmin))=0;
x1((2-nmin)+1:(nmax-nmin))=x1((2-nmin)+1:(nmax-nmin))+(0.1*(n((2-nmin)+1:(nmax-
nmin)).^2));
x1((8-nmin)+1:(nmax-nmin))=x1((8-nmin)+1:(nmax-nmin))-(0.1*(n((8-nmin)+1:(nmax-
nmin)).^2));
x2((nmin-nmin)+1:(nmax-nmin))=3*sin(pi*n/4);
%melakukan konvolusi dan mengeset n hasil konvolusi
x=conv(x1,x2);
nconv=2*nmin:1:2*(nmax-1);
f1=figure;
f2=figure;
f3=figure;
%membuat 3 window untuk gambar
figure(f1);
stem(n,x1,'k','LineWidth',1.5);
xlim([-1-0.1 10+0.1]);
xlabel('n');
ylabel('x_1(n)');
%menggambar pada window kedua
figure(f2);
stem(n,x2,'k','LineWidth',1.5);
xlim([-1-0.1 10+0.1]);
xlabel('n');
ylabel('x_2(n)');
%menggambar pada window ketiga
figure(f3);
stem(nconv,x,'k','LineWidth',1.5);
xlim([min(nconv)-0.1 max(nconv)+0.1]);
xlabel('n');
ylabel('x(n)=x_1(n)\timesx_2(n)');
Misal:
- NIM 1234567890
- Tanggal lahir 30 Februari 2000
- Tanggal praktikum 31 April 2020
Maka
𝑎 = [3 4 5 6 7 8 9 0],
𝑏 = [2 0 0 0 0 2 3 0],
dan
𝑐 = [2 0 2 0 0 4 3 1].
Modul 4
ADC/DAC
Tujuan
1. Mahasiswa mampu membuka file digital untuk kemudian diolah.
2. Mahasiswa mampu memahami prinsip analog to digital converter dan digital to analog
converter.
3. Mahasiswa mampu memahami karakteristik sinyal analog dan digital.
Dasar Teori
Pada kehidupan sehari-hari, terdapat berbagai sinyal analog dan sinyal digital. Sinyal analog
yang sering ditemui antara lain suara manusia, suara alat musik, cahaya yang dilihat oleh
mata, dan sebagainya. Sinyal digital lebih banyak berupa file yang disimpan pada komputer
atau perangkat sejenis. Contoh dari sinyal digital antara lain file suara digital, video digital,
foto digital, dan sebagainya.
Misalnya pada proses merekam suara, kemudian disimpan dalam media digital, dan
kemudian dibuka kembali untuk didengarkan. Prosesnya dapat digambarkan secara umum
sebagai berikut:
Pada contoh proses tadi, terdapat konversi dari sinyal analog menjadi sinyal digital. Kemudian
saat membuka file digital, terjadi konversi dari sinyal digital menjadi sinyal analog. Konversi
sinyal analog menjadi sinyal digital dilakukan oleh Analog to Digital Converter (ADC) dan
konversi sinyal digital menjadi sinyal analog dilakukan oleh Digital to Analog Converter (DAC).
Informasi perlu diubah dari sinyal analog menjadi sinyal digital agar dapat disimpan, dikirim,
dan diolah dengan lebih mudah. Kemudian sinyal digital perlu diubah kembali menjadi sinyal
analog untuk dapat diterima oleh manusia menggunakan panca indera, dalam hal ini
umumnya adalah pengelihatan atau pendengaran.
akan di-sampling dengan frekuensi sampling 5 Hz, maka periode sampling-nya adalah
0,2 detik. Sehingga hasil sampling-nya jika sampel diambil di setiap awal sampling
adalah:
2. Kuantisasi
Pada tahapan ini, sinyal analog diskrit akan diubah menjadi sinyal digital diskrit dengan
cara mendekatkan nilai hasil sampling-nya ke nilai terdekat sesuai dengan level
kuantisasi. Kemudian hasil kuantisasi tadi diubah menjadi bit untuk disimpan di
komputer atau perangkat sejenis. Sebagai acuan kuantisasi, perlu dibuat tabel
kuantisasinya. Misal sinyal pada proses sebelumnya akan dikuantisasi dengan 8 level
kuantisasi, maka salah satu tabel kuantisasi yang mungkin dibuat adalah
Bit Level Kuantisasi Range
000 1,75 1,5 ≤ 𝑥
001 1,25 1 ≤ 𝑥 < 1,5
011 0,75 0,5 ≤ 𝑥 < 1
010 0,25 0 ≤ 𝑥 < 0,5
110 -0,25 −0,5 ≤ 𝑥 < 0
111 -0,75 −1 ≤ 𝑥 < −0,5
101 -1,25 −1,5 ≤ 𝑥 < −1
100 -1,75 𝑥 < −1,5
sehingga hasil kuantisasinya secara numerik adalah
Kemudian, untuk mengubah kembali sinyal analog ke sinyal digital, dilakukan decoding dari
bit menjadi nilai numerik. Jika diperlukan, dapat dilakukan filtering untuk menghaluskan
sinyal analog luaran.
Percobaan 1 - ADC
Sinyal analog
𝑥(𝑡) = 2 cos(2𝜋𝑓𝑡)
dengan frekuensi 𝑓 = 0,1 Hz. Lakukan ADC dengan frekuensi sampling 𝑓𝑠 = 5 Hz dan 8 level
kuantisasi pada rentang 0 ≤ 𝑡 ≤ 5 detik!
Masukkan source code berikut ke MATLAB:
clear all;
clc;
%generate sinyal kontinu x(t) dengan ketelitian t 10^-3
t=0:1/1000:5-1/1000;
x=2*cos(2*pi/10*t);
%sampling dengan frekuensi sampling 5 Hz dan sampel diambil awal
ts=[];
xs=[];
for count=0*1000+1:1000/5:5*1000
ts=[ts t(count)];
xs=[xs x(count)];
end
%kuantisasi numerik
for count=1:length(xs)
if xs(count)<-1.5
xc(count)=-1.75;
end
if and(-1.5<=xs(count),xs(count)<-1)
xc(count)=-1.25;
end
if and(-1<=xs(count),xs(count)<-0.5)
xc(count)=-0.75;
end
if and(-0.5<=xs(count),xs(count)<0)
xc(count)=-0.25;
end
if and(0<=xs(count),xs(count)<0.5)
xc(count)=0.25;
end
if and(0.5<=xs(count),xs(count)<1)
xc(count)=0.75;
end
if and(1<xs(count),xs(count)<1.5)
xc(count)=1.25;
end
if 1.5<=xs(count)
xc(count)=1.75;
end
end
%mengubah hasil kuantisasi numeri menjadi bit
xb=[];
for count=1:length(xc)
if xc(count)==-1.75
xb=[xb '100'];
end
if xc(count)==-1.25
xb=[xb '101'];
end
if xc(count)==-0.75
xb=[xb '111'];
end
if xc(count)==-0.25
xb=[xb '110'];
end
if xc(count)==0.25
xb=[xb '010'];
end
if xc(count)==0.75
xb=[xb '011'];
end
if xc(count)==1.25
xb=[xb '001'];
end
if xc(count)==1.75
xb=[xb '000'];
end
end
Gambarlah hasil sampling (xs) dan kuantisasinya (xc)! Kemudian tuliskan hasil kuantisasi bit
yang dihasilkan (xb)!
Tujuan
1. Mahasiswa mampu memahami cara kerja filter.
2. Mahasiswa mampu memahami perbedaan filter FIR dan filter IIR.
3. Mahasiswa mampu merancang filter digital.
Dasar Teori
Fillter adalah perangkat atau blok yang berfungsi sebagai penyaring. Filter digunakan untuk
menyaring serta meneruskan atau meloloskan bagian tertentu dari bagian yang utuh, dalam
hal ini menyaring serta meneruskan atau meloloskan informasi tertentu dari sinyal informasi.
Misalnya terdapat sebuah sinyal berupa musik lengkap dengan vokal dan alat musiknya.
Dalam sinyal informasi tersebut terdapat beberapa bagian seperti suara vokal manusia, suara
bass, suara gitar, suara drum, dan lain-lain. Filter dapat digunakan untuk memisahkan satu
bagian informasi (suara) dari informasi yang sebelumnya tercampur. Daalam komunikasi,
terdapat sinyal pengganggu yang mengganggu sinyal informasi yang diinginkan. Maka sinyal
pengganggu ini dapat dihilangkan dengan menggunakan filter. Prinsip ini berlaku pada sinyal
informasi musik yang berisi banyak informasi dan terkadang terdapat bagian yang tidak
diinginkan sehingga perlu disaring.
Pada umumnya dalam pengolahan sinyal, karakteristik sinyal dibagi berdasarkan
frekuensinya. Dalam hal ini komponen sinyal dapat dipisahkan berdasarkan frekuensi sinyal
penyusun. Besaran sinyal untuk masing-masing frekuensi dapat digambarkan secara
matematis menggunakan transformasi fourier dan dapat diuraikan secara matematis
menggunakan deret fourier. Berdasarkan sifat sinyal yang dapat didekomposisi berdasarkan
frekuensinya, maka filter dapat dibuat dengan prinsip melemahkan sinyal pada frekuensi yang
tidak diinginkan dan menguatkan sinyal pada frekuensi yang diinginkan. Karakteristik filter ini
digambarkan dengan respon frekuensi. Berdasarkan respon frekuensinya, filter dapat dibagi
menjadi:
1. Low Pass Filter
Filter ini meloloskan sinyal di bawah frekuensi tertentu dengan melemahkan sinyal
dengan frekuensi di atasnya.
2. High Pass Filter
Filter ini meloloskan sinyal di atas frekuensi tertentu dengan melemahkan sinyal
dengan frekuensi di bawahnya.
Filter digital biasanya direpresentasikan dalam sebuah sistem ℎ(𝑛) atau 𝐻(𝑧) dimana
nantinya luaran dari filter adalah hasil konvolusi dari sinyal masukan dan sistem tersebut.
Filter tersebut pada dasarnya berupa sederetan sinyal sehingga secara umum dapat dibagi
menjadi 2, yaitu filter finite impulse response (FIR) dan filter infinite impluse response (IIR).
Filter FIR memiliki respon impuls yang terbatas atau nilainya memiliki batas dalam
sekuens/hitungan 𝑛 tertentu sehingga
ℎ(𝑛) = [ℎ(0) ℎ(1) … ℎ(𝑙 − 1)]
dengan 𝑙 panjang filter berhingga atau secara persamaan sinyal masukan dan luaran dapat
dinyatakan
𝑦(𝑛) = ℎ(0)𝑥(𝑛) + ℎ(1)𝑥(𝑛 − 1) + ⋯ + ℎ(𝑙 − 1)𝑥(𝑛 − 𝑙 + 1)
dengan 𝑥(𝑛) adalah sinyal masukan dan 𝑦(𝑛) adalah sinyal luaran. Sedangkan filter IIR tidak
memiliki batasan panjang 𝑙 karena melibatkan sistem feedback sehingga persamaan sinyal
luaran dan sinyal masukannya dinyatakan sebagai
𝑦(𝑛) + 𝑎(1)𝑦(𝑛 − 1) + ⋯ + 𝑎(𝑙𝑎 − 1)𝑦(𝑛 − 𝑙𝑎 + 1)
= 𝑏(0)𝑥(𝑛) + 𝑏(1)𝑥(𝑛 − 1) + ⋯ + 𝑏(𝑙𝑏 − 1)𝑥(𝑛 − 𝑙𝑏 + 1)
dengan 𝑎 dan 𝑏 adalah koefisien filter, 𝑥(𝑛) adalah sinyal masukan, dan 𝑦(𝑛) adalah sinyal
luaran.
Note:
fc pada percobaan 1 diisi [fc1 fc2] dengan fc1 adalah frekuensi cut-off bawah dan fc2 adalah
frekuensi cut-off atas.
Percobaan 3 – Perancangan High-pass Filter IIR Chebyshev 2
Rancanglah low pass filter dengan frekuensi cut-off 300 Hz dan frekuensi sampling 1000 Hz!
Orde filter adalah 6 dan tipe filter chebyshev 2 dengan ripple stopband maksimum 60 dB.
1. Generate respon impuls filter
Masukkan source code berikut:
%set frekuensi cut off
fc=300;
%set frekuensi sampling
Fs=1000;
%set orde filter
n=6;
rs=60;
%menghitung wc sebagai frekuensi cut off ternormalisasi
wc=fc/(Fs/2);
%generate a dan b sebagai respon impuls iir tipe chebyshev 2
[b,a]=cheby2(n,rs,wc,'high');
Generate a dan b untuk masing-masing tipe filter IIR berbeda:
Butterworth [b,a] = butter(n,wc, 'jenis filter')
Chebyshev 1 [b,a] = cheby1(n,rp,wc, 'jenis filter')
Chebyshev 2 [b,a] = cheby2(n,rs,wc, 'jenis filter')
Elliptic [b,a] = ellip(n,rp,rs,wc, 'jenis filter')
dengan n adalah orde filter, rp adalah ripple di passband, rs adalah ripple di stopband,
wc adalah frekuensi cut-off, dan 'jenis filter' diisi seperti jenis filter seperti pada
perancangan firter FIR:
low untuk low-pass filter
high untuk high-pass filter
bandpass untuk band-pass filter
stop untuk band-stop filter.
2. Menggambar respon frekuensi filter
Masukkan source code berikut:
%generate h sebagai respon frekuensi dalam domain w (frekuensi ternormalisasi)
[hw,w]=freqz(b,a);
%denormalisasi frekuensi
f=w*(Fs/2)/pi;
%menggambar h dengan satuan decibel dalam domain f
plot(f,10*log(abs(hw)),'k','LineWidth',1.5);
grid on;
xlabel('Frekuensi (Hz)');
ylabel('H (dB)');
title('Respon Frekuensi Filter');
Jika ingin menggambar respon fasa dari filter tersebut
Masukkan source code berikut:
%menggambar respon fasa filter dalam domain f
plot(f,(phase(hw))*180/pi,'k','LineWidth',1.5);
grid on;
xlabel('Frekuensi (Hz)');
ylabel('H (derajat)');
Bagi yang menggunakan octave, phase dapat diganti menjadi angle.
3. Mengolah sinya masukan dengan filter yang telah dibuat
Pastikan Anda sudah memiliki sinyal masukan, misalnya secara random
Masukkan source code berikut:
%membuat x berisi 1000 nilai random antara 0 hingga 1
x=rand(1,1000);
%menggambar sinyal masukan dalam domain frekuensi
[xf,wx]=freqz(x);
fx=wx*(Fs/2)/pi;
f1=figure;
figure(f1);
plot(fx,10*log(abs(xf)),'k','LineWidth',1.5);
grid on;
xlabel('Frekuensi (Hz)');
ylabel('x(f) (Hz)');
title('Sinyal Masukan');
Kemudian sinyal tersebut difilter menggunakan filter yang telah dibuat
Masukkan source code berikut:
%melakukan filtering
y=filter(b,a,x);
%menggambar sinyal luaran dalam domain frekuensi
[yf,wf]=freqz(y);
fy=wf*(Fs/2)/pi;
f2=figure;
figure(f2);
plot(fy,10*log(abs(yf)),'k','LineWidth',1.5);
grid on;
xlabel('Frekuensi (Hz)');
ylabel('x(f) (Hz)');
title('Sinyal Luaran');