Anda di halaman 1dari 44

Modul Praktikum

Pengolahan Sinyal Digital

Muhsin, S.T., M.T.

Laboratorium Pengolahan Sinyal Digital


Fakultas Teknik Elektro
Institut Teknologi Telkom Surabaya
Daftar Isi

Daftar Isi .................................................................................................................................... 2


Modul 1 Sinyal Kontinu dan Diskret ......................................................................................... 1
Tujuan .................................................................................................................................... 1
Dasar Teori ............................................................................................................................. 1
Percobaan 1 – Sinyal Kontinu................................................................................................ 2
Percobaan 2 – Sinyal Diskrit .................................................................................................. 3
Menyimpan dan Membuka Data .......................................................................................... 4
Modul 2 Transformasi Fourier .................................................................................................. 8
Tujuan .................................................................................................................................... 8
Dasar Teori ............................................................................................................................. 8
Percobaan 1a – Sinyal Kontinu Periodik Domain Frekuensi ................................................ 9
Percobaan 1b – Sinyal Kontinu Kotak Domain Frekuensi .................................................. 10
Percobaan 2 – Sinyal Diskrit Domain Frekuensi ................................................................. 12
Modul 3 Operasi Sinyal ........................................................................................................... 15
Tujuan .................................................................................................................................. 15
Dasar Teori ........................................................................................................................... 15
Percobaan 1a – Penjumlahan Sinyal Kontinu ..................................................................... 17
Percobaan 1b – Penjumlahan Sinyal Diskrit ....................................................................... 19
Percobaan 2a – Perkalian Sinyal Kontinu ........................................................................... 20
Percobaan 2b – Perkalian Sinyal Digital ............................................................................. 22
Percobaan 3a – Konvolusi Sinyal Kontinu .......................................................................... 23
Percobaan 3b – Konvolusi Sinyal Diskrit............................................................................. 25
Percobaan 4 – Sistem Kombinasi ........................................................................................ 26
Modul 4 ADC/DAC ................................................................................................................... 28
Tujuan .................................................................................................................................. 28
Dasar Teori ........................................................................................................................... 28
Percobaan 1 - ADC ............................................................................................................... 30
Percobaan 2 – Modifikasi ADC ............................................................................................ 32
Percobaan 3 – Membuka, Memainkan, dan Menyimpan File Audio ................................ 32
Modul 5 Filter Digital............................................................................................................... 35
Tujuan .................................................................................................................................. 35
Dasar Teori ........................................................................................................................... 35
Percobaan 1 – Perancangan Low-pass Filter FIR ................................................................ 38
Percobaan 2 – Perancangan Band-pass Filter FIR .............................................................. 39
Percobaan 3 – Perancangan High-pass Filter IIR Chebyshev 2 .......................................... 40
Percobaan 4 – Perancangan Band-pass Filter IIR ............................................................... 41
Modul 1
Sinyal Kontinu dan Diskret

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.

Gambar 1 - Contoh Sinyal

Secara umum, sinyal dapat diklasifikasikan sebagai berikut:


1. berdasarkan sebaran di domain waktu: kontinu dan diskret,
2. berdasarkan sebaran nilai sinyal: analog dan digital,
3. berdasarkan domain nilai sinyal: real dan kompleks,
4. berdasarkan sifatnya di titik waktu nol: ganjil dan genap,
5. berdasarkan keberulangan: periodik dan non periodik, dan
6. berdasarkan kepastian nilai: deterministik dan stokastik.

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.

Percobaan 1 – Sinyal Kontinu


Diketahui sebuah sinyal dengan persaamaan sinyal
𝑥(𝑡) = 𝑡 𝑢(𝑡) + (4 − 2𝑡) 𝑢(𝑡 − 2) + (𝑡 − 4) 𝑢(𝑡 − 4)
digambarkan pada 0 ≤ 𝑡 ≤ 5.
Sinyal tersebut berarti
Pada 𝑡 < 0, maka
𝑥(𝑡) = 0.
Pada 0 ≤ 𝑡 < 2,
𝑥(𝑡) = 𝑡(1) + (4 − 2𝑡)(0) + (𝑡 − 4)(0)
𝑥(𝑡) = 𝑡.
Pada 2 ≤ 𝑡 < 4,
𝑥(𝑡) = 𝑡(1) + (4 − 2𝑡)(1) + (𝑡 − 4)(0)
𝑥(𝑡) = 𝑡 + (4 − 2𝑡)
𝑥(𝑡) = 4 − 𝑡.
Pada 4 ≤ 𝑡,
𝑥(𝑡) = 𝑡(1) + (4 − 2𝑡)(1) + (𝑡 − 4)(1)
𝑥(𝑡) = 𝑡 + (4 − 2𝑡) + (𝑡 − 4)
𝑥(𝑡) = 0.
Masukkan source code berikut ke MATLAB:
%membuat t berupa deretan linier dari 0 hingga 5 dengan kenaikan 1/1000
t=0:1/1000:5;
%mengisi nilai awal x berupa nol untuk semua waktu
x(0*1000+1:5*1000+1)=0;
%mengisi suku pertama
x(0*1000+1:5*1000+1)=x(0*1000+1:5*1000+1)+t(0*1000+1:5*1000+1);
%mengisi suku kedua
x(2*1000+1:5*1000+1)=x(2*1000+1:5*1000+1)+4-2*t(2*1000+1:5*1000+1);
%mengisi suku ketiga
x(4*1000+1:5*1000+1)=x(4*1000+1:5*1000+1)+t(4*1000+1:5*1000+1)-4;
%menggambar grafik x terhadap t dengan garis warna hitam dan tebal 5 pt
plot(t,x,'k','Linewidth',5);
%memberi label pada sumbu x
xlabel('Waktu (detik)');
%memberi label pada sumbu y
ylabel('x (Volt)');
%mengaktifkan grid pada grafik
grid on;
Luaran source code tersebut seperti Gambar 2.
Gambar 2 - Hasil Running Contoh Source Code Sinyal Kontinu

Berdasarkan contoh yang diberikan, buatlah hal yang sama untuk


𝑥1 = 𝑢(𝑡 − 1) − 𝑢(𝑡 − 5)
𝑥2 (𝑡) = 2 − 2𝑡 𝑢(𝑡 − 2) + 3(𝑡 − 3) 𝑢(𝑡 − 3) + (12 − 3𝑡) 𝑢(𝑡 − 4)
digambarkan pada −10 ≤ 𝑡 ≤ 10!

Kemudian buatlah gambar sinyal sesuai dengan yang diinstruksikan melalui asisten!

Percobaan 2 – Sinyal Diskrit


Diketahui sebuah sinyal dengan persamaan sinyal
𝑥(𝑛) = 3𝑢(𝑛 + 3) − 5𝛿(𝑛 + 1) − 3𝑢(𝑛 − 3)
digambarkan pada −5 ≤ 𝑛 ≤ 5.
Secara sekuens, sinyal tersebut berarti
𝑥(𝑛) = [0 0 3 3 1 3 3 3 3 0 0]

%membuat t berupa deretan diskret dari -5 hingga 5


n=linspace(-5,5,11);
%mengeset seluruh nilai awal x sebagai nol
x(-5*1+6:5*1+6)=0;
%mengisi suku pertama
x(-3*1+6:5*1+6)=3;
%mengisi suku kedua
x(-1*1+6)=x(-1*1+6)-5;
%mengisi suku ketiga
x(3*1+6:5*1+6)= x(3*1+6:5*1+6)-3;
%menggambar sinyal diskret x terhadap n dengan tebal 5pt
stem(n,x,'k','Linewidth',5);
%memberi label pada sumbu x
xlabel('sekuens n');
%memberi label pada sumbu y
ylabel('x(n)');
%mengaktifkan grid pada grafik
grid on;
Luaran source code tersebut seperti Gambar 3.

Gambar 3 - Hasil Running Contoh Source Code Sinyal Diskret

Berdasarkan contoh yang diberikan, buatlah hal yang sama untuk

𝑥1 (𝑛) = 𝑛 𝑢(𝑛 + 5) − 𝑛 𝑢(𝑛 − 7)


𝜋
𝑥2 (𝑛) = cos ( 𝑛)
4
digambarkan pada −10 ≤ 𝑛 ≤ 10!
clue: Anda dapat menggunakan pi untuk mengisi variabel 

Kemudian buatlah gambar sinyal sesuai dengan yang diinstruksikan melalui asisten!

Menyimpan dan Membuka Data


Dalam MATLAB, kita dapat menyimpan data dari hasil simulasi. Pada bagian ini, akan dipelajar
cara menyimpan data matriks dan gambar hasil simulasi.
Untuk menyimpan data matriks, ikuti langkah berikut:
1. Temukan matriks yang akan disimpan di bagian “Workspace”!
2. Klik kanan pada matriks yang ingin disimpan, kemudian klik “Save As” dan pilih dimana
serta dengan nama file apa matriks akan disimpan!

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!

2. Kemudian klik “File” → “Save As”!

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.

Gambar 4 – Sinyal x(t) yang Merupakan Gabungan 2 Sinyal Sinusoid

Sinyal tersebut dapat digambarkan dalam domain frekuensi pada Gambar 5.


Gambar 5 – Contoh Representasi Sinyal Domain Frekuensi

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

𝑋(𝑓) = ∫ 𝑥(𝑡)𝑒 −𝑗2𝜋𝑓𝑡 𝑑𝑡


−∞
dengan 𝑥(𝑡) adalah sinyal domain waktu, 𝑒 adalah bilangan natural, dan 𝑗 2 = −1. Sedangkan
Transformasi Fourier diskrit dirumuskan sebagai
𝑁−1
2𝜋𝑛𝑘
𝑋(𝑘) = ∑ 𝑥(𝑛)𝑒 −𝑗 𝑁
𝑛=0
dengan 𝑁 adalah panjang deret fourier, 𝑥(𝑛) adalah sinyal domain sekuens, 𝑒 adalah bilangan
natural, dan 𝑗 2 = −1.
Jika melihat

Percobaan 1a – Sinyal Kontinu Periodik Domain Frekuensi


Diketahui sebuah sinyal
𝑥(𝑡) = 3 cos(2𝜋(60)𝑡) + 5 cos(2𝜋(120)𝑡) {Volt}.
Sinyal tersebut diambilkan sampel pada rentang 0 ≤ 𝑡 ≤ 20 detik.
Masukkan source code berikut ke MATLAB:
%membuat t berupa deretan linier dari 0 hingga 1000-1/1000 dengan kenaikan 1/1000
t=0:1/1000:5-1/1000;
%memasukkan persamaan sinyal x(t)
x=3*cos(2*pi*60*t)+2*cos(2*pi*120*t);
%melakukan transformasi fourier pada x(t)
y=fft(x);
%mengeset f sebagai matriks frekuensi
f = (0:length(y)-1)*1000/length(y);
%menghitung jumlah sample
n=length(x);
%menggeser frekuensi ke dua sideband
fs=(-n/2:n/2-1)*(1000/n);
%menyesuaikan ys sebagai hasil transformasi fourier
ys=fftshift(y);
%menggambarkan hasil transformasi fourier
plot(fs,abs(ys)/n,'k','LineWidth',5);
%memberi label pada sumbu x
xlabel('Frekuensi (Hz)');
%memberi label pada sumbu y
ylabel('Magnitude (Volt) ');
%mengaktifkan grid pada grafik
grid on;
Luaran source code tersebut seperti Gambar 6.

Gambar 6 – Hasil Running Contoh Transformasi Fourier Sinyal Kontinu Sinusoid

Percobaan 1b – Sinyal Kontinu Kotak Domain Frekuensi


Diketahui sebuah sinyal
𝑥(𝑡) = 2𝑢(𝑡 − 1) − 2𝑢(𝑡 − 3) {Volt}.
Sinyal tersebut diambilkan sampel pada rentang 0 ≤ 𝑡 < 5 detik dan dapat digambarkan
pada Gambar 7.
Gambar 7 – Sinyal Domain Waktu untuk Percobaan 1b Modul 2

Masukkan source code berikut ke MATLAB:


%membuat t berupa deretan linier dari 0 hingga 1000-1/1000 dengan kenaikan 1/1000
t=0:1/1000:5-1/1000;
%mengisi nilai awal x berupa nol untuk semua waktu
x(0*1000+1:5*1000)=0;
%mengisi suku pertama
x(1*1000+1:5*1000)= x(1*1000+1:5*1000)+2;
%mengisi suku kedua
x(3*1000+1:5*1000)= x(3*1000+1:5*1000)-2;
%melakukan transformasi fourier pada x(t)
y=fft(x);
%mengeset f sebagai matriks frekuensi
f = (0:length(y)-1)*1000/length(y);
%menghitung jumlah sample
n=length(x);
%menggeser frekuensi ke dua sideband
fs=(-n/2:n/2-1)*(1000/n);
%menyesuaikan ys sebagai hasil transformasi fourier
ys=fftshift(y);
%menggambarkan hasil transformasi fourier
plot(fs,abs(ys)/n,'k','LineWidth',1.5);
%memberi label pada sumbu x
xlabel('Frekuensi (Hz)');
%memberi label pada sumbu y
ylabel('Magnitude (Volt) ');
%mengaktifkan grid pada grafik
grid on;
%membatasi tampilan sumbu x dari -20 hingga 20 saja
xlim([-20 20]);
Luaran source code tersebut seperti Gambar 8.

Gambar 8 – Hasil Running Contoh Transformasi Fourier Sinyal Kontinu Kotak

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.

Percobaan 2 – Sinyal Diskrit Domain Frekuensi


Diketahui sebuah sinyal
𝑥(𝑛) = [5 0 1 −7 2 6 8 0].
Sinyal tersebut digambarkan pada Gambar 9.
Gambar 9 – Sinyal Domain Waktu/Sekuens untuk Percobaan 2 Modul 2

Masukkan source code berikut ke MATLAB:


%membuat n sebagai sekuens
n=0:1:7;
%mengisi nilai x
x=[5 0 1 -7 2 6 8 0];
%melakukan transformasi fourier diskrit
y=fft(x);
%mengisi nilai k sebagai frekuensi
k=0:1:7;
%menggambarkan X(k)
stem(k,abs(y), 'k', 'LineWidth',1.5);
%memberi label pada sumbu x
xlabel('k');
%memberi label pada sumbu y
ylabel('X(k)');
%mengaktifkan grid
grid on;

Luaran source code tersebut seperti Gambar 10.


Gambar 10 – Hasil Running Contoh Transformasi Fourier Sinyal Diskrit

Kemudian lakukan Transformasi Fourier sesuai instruksi asisten!


Modul 3
Operasi Sinyal

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.

Gambar 11 – Contoh Sinyal Sinusiod

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.

Gambar 12 – Contoh Sinyal Hasil Operasi

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 Tabel Operator yang Sering Digunakan


Jenis Operator Simbol Operator Keterangan
𝑐 =𝑎+𝑏

Jika sinyal kontinu


Penjumlahan
𝑐(𝑡) = 𝑎(𝑡) + 𝑏(𝑡)
dan jika sinyal diskrit
𝑐(𝑛) = 𝑎(𝑛) + 𝑏(𝑛).
𝒄=𝒂−𝒃

Jika sinyal kontinu


𝑐(𝑡) = 𝑎(𝑡) − 𝑏(𝑡)
dan jika sinyal diskrit
𝑐(𝑛) = 𝑎(𝑛) − 𝑏(𝑛).
𝒄=𝒂×𝒃

Jika sinyal kontinu


𝑐(𝑡) = 𝑎(𝑡) × 𝑏(𝑡)
dan jika sinyal diskrit
𝑐(𝑛) = 𝑎(𝑛) × 𝑏(𝑛).
𝒂
𝒄 = 𝒂 × 𝒃−𝟏 =
Perkalian 𝒃

Jika sinyal kontinu


−1 𝑎(𝑡)
𝑐(𝑡) = 𝑎(𝑡) × (𝑏(𝑡)) =
𝑏(𝑡)
dan jika sinyal diskrit
−1 𝑎(𝑛)
𝑐(𝑛) = 𝑎(𝑛) × (𝑏(𝑛)) = .
𝑏(𝑛)
𝒄=𝒂∗𝒃

Jika sinyal kontinu


Konvolusi
𝑐(𝑡) = 𝑎(𝑡) ∗ 𝑏(𝑡)
dan jika sinyal diskrit
𝑐(𝑛) = 𝑎(𝑛) ∗ 𝑏(𝑛)
Delay untuk sinyal kontinu
𝑐(𝑡) = 𝑎(𝑡 − 𝑏).
Delay
Delay untuk sinyal diskrit
𝑐(𝑡) = 𝑎(𝑛 − 𝑏).

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.

Percobaan 1a – Penjumlahan Sinyal Kontinu


Terdapat sinyal
1 2 1 2
𝑥1 (𝑡) = 𝑡 𝑢(𝑡 − 2) − 𝑡 𝑢(𝑡 − 8)
10 10
dan
𝑥2 (𝑡) = 3 cos(4𝜋𝑡).
Dua sinyal tersebut hendak dijumlahkan kemudian digambarkan pada rentang −1 ≤ 𝑡 ≤ 11.
Masukkan source code berikut ke MATLAB:
clear all;
close all;
clc;

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

Percobaan 1b – Penjumlahan Sinyal Diskrit


Terdapat sinyal
1 2 1
𝑥1 (𝑛) = 𝑛 𝑢(𝑛 − 2) − 𝑛2 𝑢(𝑛 − 8)
10 10
dan
𝜋𝑛
𝑥2 (𝑛) = 3 cos ( ).
4
Dua sinyal tersebut hendak dijumlahkan kemudian digambarkan pada rentang −1 ≤ 𝑛 ≤ 11.
Masukkan source code berikut ke MATLAB:
clear all;
close all;
clc;

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

Gambar 14 – Hasil Running Gambar Ketiga Modul 3 Percobaan 1b

Percobaan 2a – Perkalian Sinyal Kontinu


Terdapat sinyal
1 2 1 2
𝑥1 (𝑡) = 𝑡 𝑢(𝑡 − 2) − 𝑡 𝑢(𝑡 − 8)
10 10
dan
𝑥2 (𝑡) = 3 cos(4𝜋𝑡).
Dua sinyal tersebut hendak dikalikan kemudian digambarkan pada rentang −1 ≤ 𝑡 ≤ 11.
Masukkan source code berikut ke MATLAB:
clear all;
close all;
clc;

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

Percobaan 2b – Perkalian Sinyal Digital


Terdapat sinyal
1 2 1
𝑥1 (𝑛) = 𝑛 𝑢(𝑛 − 2) − 𝑛2 𝑢(𝑛 − 8)
10 10
dan
𝜋𝑛
𝑥2 (𝑛) = 3 cos ( ).
4
Dua sinyal tersebut hendak dikalikan kemudian digambarkan pada rentang −1 ≤ 𝑛 ≤ 11.
Masukkan source code berikut ke MATLAB:
clear all;
clc;
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);
%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)');

Gambar 16 – Hasil Running Gambar Ketiga Modul 3 Percobaan 2b

Percobaan 3a – Konvolusi Sinyal Kontinu


Terdapat sinyal
1 2 1 2
𝑥1 (𝑡) = 𝑡 𝑢(𝑡 − 2) − 𝑡 𝑢(𝑡 − 8)
10 10
dan
𝑥2 (𝑡) = 3 cos(4𝜋𝑡)
masing-masing ditinjau pada −1 ≤ 𝑡 ≤ 11 akan dilakukan operasi konvolusi.
Masukkan source code berikut ke MATLAB:
clear all;
close all;
clc;

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

Percobaan 3b – Konvolusi Sinyal Diskrit


Terdapat sinyal
1 2 1
𝑥1 (𝑛) = 𝑛 𝑢(𝑛 − 2) − 𝑛2 𝑢(𝑛 − 8)
10 10
dan
𝜋𝑛
𝑥2 (𝑛) = 3 cos ( ).
4
masing-masing ditinjau pada −1 ≤ 𝑡 ≤ 11 akan dilakukan operasi konvolusi.
Masukkan source code berikut ke MATLAB:
clear all;
close all;
clc;

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

Gambar 18 – Hasil Running Gambar Ketiga Modul 3 Percobaan 3b

Percobaan 4 – Sistem Kombinasi


Perhatikan diagram sistem berikut:
dengan 𝑎 adalah 8 digit terakhir NIM Anda, 𝑏 adalah tanggal lahir Anda dengan format
yyyymmdd, dan 𝑐 adalah tanggal praktikum Anda dengan format yyyymmdd. yyyy adalah 4
digit tahun, mm adalah 2 digit bulan, dan dd adalah 2 digit tanggal. Tuliskan persamaan sistem
tersebut dan simulasikan di MATLAB!

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.

Pada umumnya, ADC terdiri dari:


1. Sampling
Proses sampling ini mengambil titik-titik sampel dari sinyal analog kontinu menjadi
sinyal analog diskrit. Periode untuk masing-masing sampel mengikuti frekuensi
sampling yang telah ditetapkan. Periode sampling berarti satu sampel akan diambil
untuk tiap-tiap selang periode tersebut. Misalnya frekuensi sampling 10 Hz, maka
periode sampling yang berlaku adalah
1
𝑇𝑠 = = 0,1 detik.
𝑓𝑠
Sehingga satu sampel akan diambil tiap 0,1 detik. Terdapat beberapa cara
pengambilan sampel, secara umum:
a. diambil di awal tiap periode sampling,
b. diambil di pertengahan tiap periode sampling,
c. diambil di akhir tiap periode sampling, dan
d. diambil rata-rata untuk masing-masing periode sampling.
Sebagai contoh, sinyal analog berikut:

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

dan secara bit adalah


000 000 000 000 000 000 001 001 001 011 011 010 010 110 110 111 111 101 101 101
100 100 100 100 100.

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

Percobaan 2 – Modifikasi ADC


Modifikasilah ADC pada Percobaan 1 sehingga frekuensi sampling 𝑓𝑠 = 10 Hz dan
menggunakan 16 level kuantisasi! Kemudian gambarkan sinyal awal (xt), hasil sampling (xs),
dan hasil kuantisasinya (xc)! Juga tuliskan hasil bit yang dihasilkan!

Percobaan 3 – Membuka, Memainkan, dan Menyimpan File Audio


Percobaan ini tidak dapat menggunakan Octave Online. Mahasiswa dipersilakan mengunduh
Octave di https://www.gnu.org/software/octave/. Mahasiswa diberi dua buah file audio
untuk dibuka pada percobaan kali ini, yaitu lalala1.mp3 dan lalala2.mp3, bagi pengguna
octave sudah disediakan versi wav dari file tersebut yaitu lalala1.wav dan lalala2.wav.
Simpanlah file ini dalam direktori yang dikehendaki!
1. Membersihkan variabel dan instruksi di perangkat lunak
Masukkan source code berikut:
clear all;
clc;
2. Kemudian kedua file yang diberikan dapat dibuka
Masukkan source code berikut:
a1=audioread('D:\lalala1.mp3');
a2=audioread('D:\lalala2.mp3');
Bagian kode yang diblok dapat diganti dengan direktori lain yang sesuai atau langsung
nama file jika file disimpan di direktori yang sama dengan code. Maka kedua file
tersebut sudah tersimpan di matrix atau variabel a1 dan a2. Bagi yang menggunakan
octave dapat menggunakan file wav yang telah disediakan.
Masukkan source code berikut:
a1=audioread('D:\lalala1.wav');
a2=audioread('D:\lalala2.wav');
Kode yang diblok dapat diganti dengan direktori lain yang sesuai atau langsung nama
file jika file disimpan di direktori yang sama dengan code.
3. Membuka informasi file (hanya bagi pengguna MATLAB)
Masukkan source code berikut:
fileinfo1=audioinfo('D:\lalala1.mp3');
fileinfo2=audioinfo('D:\lalala2.mp3');
Maka akan muncul informasi dari file tersebut di matriks atau variabel fileinfo1 dan
fileinfo2, seperti bitrate dan sampling rate. Perlu diketahui bahwa file yang diberikan
adalah file stereo yang masing-masing dari sisi kanan dan kiri dapat diatur dan
memiliki nilai yang berbeda. Untuk melihat sifat stereo ini, dapat dilihat juga pada
matrix yang ada di a1 dan a2 dimana terdapat dua stream, sehingga file tersebut
diidentifikasi sebagai file stereo.
4. Memainkan file audio
Dari proses nomor 3, diperoleh bahwa file audio tersebut memiliki sampling rate atau
frekuensi sampling 44,1 KHz atau 44100 Hz. Pertama, file tersebut akan dimainkan
dengan sampling rate yang seharusnya, yaitu 44100 Hz.
Masukkan source code berikut:
sound(a1,44100);
untuk memainkan file pertama.
Masukkan source code berikut:
sound(a2,44100);
untuk memainkan file kedua.
Berikutnya, silakan mengubah angka 44100 dengan angka lain, misalnya 22050 atau
88200. Kemudian perhatikan bagaimana suara yang dihasilkan!
5. Menggabungkan file audio
Pada proses ini, dua file audio yang sudah dibuka dapat dilakukan operasi, misalnya
penjumlahan.
Masukkan source code berikut:
a3=2*a1(1:750000)+a2(1:750000);
untuk menjumlahkan 2 kali file pertama dengan 1 kali file kedua hanya pada sampel
ke 1 hingga sampel ke 750000 dan menyimpannya ke variabel a3. Langkah berikutnya
adalah mengecek hasil penjumlahan dengan cara memainkan hasil penjumlahan
tersebut. Cobalah juga untuk mengganti angka pengali di depan a1 dan a2! Ubahlah
juga operasi penjumlahan menjadi operasi pengurangan atau operasi lain!
Masukkan source code berikut:
sound(a3,44100);
6. Visualisasi variabel atau file dalam bentuk grafik
Variabel yang berisi file audio dapat digamparkan dalam grafik.
Masukkan source code berikut:
plot((1:length(a3))/44100,a3,'k');
xlabel('t (detik)');
ylabel('a_3(t)');
untuk menggambarkan a3 sebagai sinyal kontinu dengan referensi sampling rate
44100 Hz. Selain itu, dapat juga digambarkan sebagai sinyal diskrit seperti apa yang
sebenarnya tersimpan.
Masukkan source code berikut:
stem((1:length(a3),a1,'k');
xlabel('t (detik)');
ylabel('x(t)');
Cobalah juga menggambarkan file yang tersimpan di variabel a1 dan a2.
7. Menyimpan file audio
File yang telah dibuka dan dimasukkan ke dalam variabel dapat ditulis atau disimpan
sebagai file audio.
Masukkan source code berikut:
audiowrite('D:\lalala3.m4a',a3,44100);
untuk menyimpan a3 ke dalam file D:\lalala3.m4a dengan sampling rate acuan 44100
Hz. Octave belum support file mp4 audio (m4a) sehingga file disimpan dalam format
wav. Maka D:\lalala3.m4a dapat diganti dengan D:\lalala3.wav. Cobalah menyimpan
ulang a1 dan a2 ke nama file lain dengan sampling rate yang diubah, misalnya 22050
atau 88200! a3 juga dapat disimpan sampling rate-nya! Kemudian mainkan
menggunakan audio player yang tersedia pada perangkat masing-masing!
Modul 5
Filter Digital

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.

3. Band Pass Filter


Filter ini meloloskan sinyal pada rentang frekuensi tertentu dengan melemahkan
sinyal dengan frekuensi selain di antaranya.

4. Band Stop Filter


Filter ini melemahkan atau memblok sinyal pada rentang frekuensi tertentu dan tetap
meloloskan sinyal di luar rentang frekuensi tersebut.

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.

Instruksi khusus sebelum percobaan


Bagi pengguna Octave, perlu mengunduh package untuk pengolahan sinyal.
1. Masukkan instruksi
pkg install -forge signal;
untuk mengunduh dan menginstall package signal secara online.
2. Kemudian masukkan instruksi
pkg load signal;
untuk menjalankan package signal yang telah diunduh dan di-install.
Percobaan 1 – Perancangan Low-pass Filter FIR
Rancanglah low pass filter dengan frekuensi cut-off 200 Hz dan frekuensi sampling 1000 Hz!
Orde filter adalah 6 dan windowing dengan window Hanning.
1. Generate respon impuls filter
Masukkan source code berikut:
%set frekuensi cut off
fc=200;
%set frekuensi sampling
Fs=1000;
%set orde filter
n=6;
%menghitung wc sebagai frekuensi cut off ternormalisasi
wc=fc/(Fs/2);
%generate b sebagai respon impuls fir dengan window hanning
b=fir1(n,wc,'low',hann(n+1));
Apabila ingin mengganti tipe filter, silakan ganti low dengan
high untuk high-pass filter
bandpass untuk band-pass filter
stop untuk band-stop filter.
Apabila ingin mengganti window, silakan ganti hann dengan
rectwin untuk window rectangular
bartlett untuk window bartlett
hamming untuk window hamming
blackman untuk window blackman.
2. Menggambar respon frekuensi filter
Masukkan source code berikut:
%generate h sebagai respon frekuensi dalam domain w (frekuensi ternormalisasi)
[hw,w]=freqz(b);
%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 sinyal 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:
%melalukan filtering
y=filter(b,1,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');

Percobaan 2 – Perancangan Band-pass Filter FIR


Ambil file audio dengan frekuensi sampling tertentu. Kemudian buatlah band-pass filter FIR
untuk mengambil komponen bass-nya menggunakan orde 1xx dengan xx adalah dua digit
terakhir NIM Anda. Sesuaikan prosesnya dengan Percobaan 1.
Window yang digunakan adalah berdasarkan xx mod 5:
xx mod 5 Window
0 Rectangular
1 Bartlett
2 Hanning
3 Hamming
4 Blackman

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

Percobaan 4 – Perancangan Band-pass Filter IIR


Ambil file audio dengan frekuensi sampling tertentu. Kemudian buatlah band-pass filter IIR
untuk mengambil komponen bass-nya menggunakan orde 1xx dengan xx adalah dua digit
terakhir NIM Anda. Sesuaikan prosesnya dengan Percobaan 3. Tipe filter yang digunakan
adalah berdasarkan xx mod 5:
xx mod 5 Tipe IIR Ripple Passband Ripple Stopband
0 Chebyshev 1 0,5 dB -
1 Chebyshev 2 - 40 dB
2 Butterworth - -
3 Chebyshev 2 - 30 dB
4 Chebyshev 1 1 dB -
Note:
fc pada percobaan 1 diisi [fc1 fc2] dengan fc1 adalah frekuensi cut-off bawah dan fc2 adalah
frekuensi cut-off atas.

Anda mungkin juga menyukai