Modul Praktikum Pengolahan Sinyal Digital

29
PRAKTIKUM PENGOLAHAN SINYAL DIGITAL LABORATORIUM TELEKOMUNIKASI JURUSAN TEKNIK ELEKTRO INSTITUT TEKNOLOGI NASIONAL BANDUNG

description

odul Praktikum

Transcript of Modul Praktikum Pengolahan Sinyal Digital

Page 1: Modul Praktikum Pengolahan Sinyal Digital

PRAKTIKUM PENGOLAHAN SINYAL DIGITAL

LABORATORIUM TELEKOMUNIKASI JURUSAN TEKNIK ELEKTRO

INSTITUT TEKNOLOGI NASIONAL BANDUNG

Page 2: Modul Praktikum Pengolahan Sinyal Digital

MODUL 1

PENGENALAN MATLAB DASAR

Matlab merupakan suatu perangkat lunak yang dapat membantu dalam analisis

persoalan. Matlab dapat mengerjakan perhitungan sederhana sampai dengan perhitungan

kompleks. Untuk mengenal lebih jauh progam matlab ini, lihat gambar dibawah ini.

Simulink Direktory aktif Command Window

Isi Directory aktif Kumpulan Variabel Kumpulan Perintah

Gambar 1.1 Tampilan MATLAB

Page 3: Modul Praktikum Pengolahan Sinyal Digital

Tabel 1.1

Fungsi Command Window

Tempat menuliskan perintah yang akan dieksekusi oleh matlab

Workspace Kumpulan variabel – variabel yang telah didefinisikan, beserta ukuran dan tipenya.

History Kumpulan perintah-perintah yang telah dieksekusi

1.1 Variabel

Perhitungan matlab sebenarnya tidak memerlukan variabel karena setiap

mengeksekusi perintah maka hasil eksekusi tersebut disimpan di variabel ans. Akan tetapi

matlab dapat menyimpan hasil perintah dalam bentuk variabel. Seperti bahasa pemograman

lainnya matlab juga mempunyai aturan dalam penamaan variabelnya.

Aturan dalam penamaan variabel dan nama file .m

1. Nama variabel tidak boleh mengunakan karakter spasi jika melebihi satu suku kata

maka gunakan karakter garis bawah ( _ )

2. Nama variabel diawali huruf tidak boleh dimulai oleh garis bawah, angka atau

karakter lainnya.

3. Membedakan huruf besar dengan huruf kecil (case sensitive), untuk nama file tidak

membedakan huruf besar dan huruf kecil (tergantung pada sistem operasinya).

4. Panjang nama varibel maksimum 31 karakter, jika melebihi 31 karakter maka akan

diabaikan (untuk matlab 6.5 panjang maksimum nama variabel 63 karakter).

Latihan :

Kerjakan di command window dan jelaskan kesalahannya (◄┘ = Enter ) ?

1. 2 * 3 ◄┘

Tidak ada kelashan tetapi tetapi tidak menggunakan variabel, sehingga hasil dari

perintah disimpan di variabel ans

2. Laboratorium Telekomunikasi = ‘PSD’ ◄┘

Ada spasi di pendefinisian variabel, asisten diharapakan dapat menjelaskan jika isi

variabel adalah suatu huruf

Page 4: Modul Praktikum Pengolahan Sinyal Digital

3. 2x = 10 ◄┘

Variabel dimulai angka, asisten dapat menjelaskan jika yang didefinisikan adlah

sebuah persamaan

4. C2P = 100 ◄┘

100 * c2p ◄┘

Perintah pertama tidak ada error, akan tetapi perintah kedua tidak dapat dieksekusi

karena variabel c2p belum didefinisikan. Variabel yang telah didefinisikan adalah

C2P bukan c2p (case sensitive).

5. LaboratoriumTelekomunikasiJurusanTeknikElektroInstitutTeknologiNasional = 100 ◄┘

Nama variabel terlalu panjang sehingga akan dipotong menjadi

“LaboratoriumTelekomunikasiJurusanTeknikElektroInstitutTeknologi” akan tetapi

ketika dipanggil kembali variabel tersebut secara utuh

“aboratoriumTelekomunikasiJurusanTeknikElektroInstitutTeknologiNasional”

maka matlab akan mengeluarkan variabel

“LaboratoriumTelekomunikasiJurusanTeknikElektroInstitutTeknologi” karena lebih

dari 63 karakter akan diabaikan.

1.2 Operasi matematika dalam matlab

1.2.1 Penjumlahan (+), Pengurangan (-), Perkalian(*), Pembagian(/ atau \)

Contoh : 3 + 2 >> 3 + 2

ans = 5

Contoh : 15 – 20 >> 15 – 20

ans = - 5

Contoh : 15 * 12 >> 15*12

ans = 180

Page 5: Modul Praktikum Pengolahan Sinyal Digital

Contoh : 15 / 3 >> 15/3

ans = 5

Contoh : 15 \ 3 >> 15\3

ans = 0.2000

1.2.2. Eksponensial ( Exp(Nilai) ), Logaritma (Log(Nilai) Ln dan

Log10(Nilai) Log10 )

Contoh : e -10

>> exp(-10)

ans = 4.5400e-005

Contoh : Ln(4.5400e-005) >> log(4.5400e-005)

ans = -10.0000

Contoh : Log(100) >> log10(100)

ans = 2

1.3 Fungsi Trigonometri

Untuk fungsi trigonometri dalam matlab, fungsi yang telah tersedia adalah Sinus(sin),

cosinus(cos), tangen(tan), cotangen(cot), secan(sec).

Sin

sin(dD) Mencari nilai sinus dD, dimana dD dalam radian

asin(dD) Mencari nilai arcus sinus dD

sinh(dD) Mencari nilai sinushiperbolik dD

asinh(dD) Mencari nilai arcus sinus hiperbolik dD

Page 6: Modul Praktikum Pengolahan Sinyal Digital

1.4 Fungsi Matematika

Sebagian fungsi – fungsi matematika yang telah tersedia

Fungsi Kegunaan

abs(dD) Mencari nilai absolut dari sebuah nilai, akan tetapi nilai dD

mempunyai real dan imajiner maka akan menghasilkan besarnya

(vektor)

angle(dD) Mencari sudut phasa dari sebuah vektor (antara real dan imajiner),

hasil dalam dalam satuan radian

ceil(dD) Pembulatan menuju +~

floor(dD) Pembulatan menuju -~

Fix(dD) Pembulatan menuju 0

round(dD) Pembulatan menuju nilai integer (bulat) yang terdekat

real(dD) Mencari nilai real dari suatu vektor

imag(dD) Mencari nilai imajiner dari suatu vektor

(dD = suatu nilai dari +~ s.d. -~)

1.5 Matriks

Matriks adalah suatu type variabel yang mempunyai nilai 2 atau lebih. Sebenarnya

semua variabel di matlab dalam bentuk matriks akan tetapi jika nilainya hanya satu maka

ukuran matriks tersebut 1 x 1.

Contoh

Kita akan membuat suatu persamaan y = sin(x),

dimana x dari 0 menuju 3, dengan kenaikan 0.5.

>> x = [0 0.5 1.0 1.5 2.0 2.5 3.0];

>> y = sin(x)

>> y =

0 0.4794 0.8415 0.9975 0.9093 0.5985 0.1411

Indeks 1 2 3 4 5 6 7

Nilai x 0 0.5 1.0 1.5 2.0 2.5 3.0

Nilai Y,

Y =sin (x) 0 0.47943 0.84147 0.9975 0.9093 0.5985 0.1411

Page 7: Modul Praktikum Pengolahan Sinyal Digital

Operasi Matematika pada Matriks

Penjumlahan, pengurangan sama seperti penjumlahan pada operasi biasa tetapi ukuran

dari kedua array tersebut harus sama, jika operasi dilakukan dengan skalar maka seluruh sel-

sel matrik melakukan operasi yang diminta.

Contoh :

>> a = [1 2 3 ; 2+5i 3+1i 8i], b = [2 -7 -9i ; 5 1+2i -2-7i]

a =

1.0000 2.0000 3.0000

2.0000 + 5.0000i 3.0000 + 1.0000i 0 + 8.0000i

b =

2.0000 -7.0000 0 - 9.0000i

5.0000 1.0000 + 2.0000i -2.0000 - 7.0000i

>> a+b

ans =

3.0000 -5.0000 3.0000 - 9.0000i

7.0000 + 5.0000i 4.0000 + 3.0000i -2.0000 + 1.0000i

>> a-b

ans =

-1.0000 9.0000 3.0000 + 9.0000i

-3.0000 + 5.0000i 2.0000 - 1.0000i 2.0000 +15.0000i

>> a-(2+6i)

ans =

-1.0000 - 6.0000i 0 - 6.0000i 1.0000 - 6.0000i00i

0 - 1.0000i i 1.0000 - 5.0000i -2.0000 + 2.0000i00

Page 8: Modul Praktikum Pengolahan Sinyal Digital

Perkalian, pembagian dan pangkat terdapat dua tipe yaitu

• Secara sel per sel

Operasi ini melakukan operasi setiap sel yang alamat (kolom dan barisnya) sama. Untuk

penggunaannya, sebelum operasi didahului dengan titik.

Contoh.

Isi variabel a dan b sama dengan perintah sebelumnya.

>> a.*b

ans =

2.0000 -14.0000 0 -27.0000i

10.0000 +25.0000i 1.0000 + 7.0000i 56.0000 -16.0000i

>> a./b

ans =

0.5000 -0.2857 0 + 0.3333i

0.4000 + 1.0000i 1.0000 - 1.0000i -1.0566 - 0.3019i

>> a.\b

ans =

2.0000 -3.5000 0 - 3.0000i

0.3448 - 0.8621i 0.5000 + 0.5000i -0.8750 + 0.2500i

>> a.^b

ans =

1.0e+003 * % << menunjukan orde kilo

0.0010 0.0000 -0.0009 + 0.0004i

4.2820 - 1.4750i -0.0014 + 0.0008i 0.3789 + 0.8509i

• Secara matrik

Untuk operasi perkalian maka ordo array sesuai dengan peraturan matrik secara teori,

dimana a 2 x 3 x b 3 x 2

Khusus untuk operasi pangkat, kolom harus sama dengan baris (Matrik kotak).

Page 9: Modul Praktikum Pengolahan Sinyal Digital

Contoh :

Isi variabel a dan b sama dengan perintah sebelumnya.

>> a(1:2,1:2)*b(1:2,1:2)

ans =

12.0000 -5.0000 + 4.0000i

19.0000 +15.0000i -13.0000 -28.0000i

Fungsi yang telah ada pada program matlab :

Fungsi Keterangan

eye(dD,rm) Menghasilkan matrik identitas

zeros(dD,rm) Menghasilkan matrik kosong

ones(dD,rm) Menghasilkan matrik satu

dimana dD = baris. rm, = kolom

Page 10: Modul Praktikum Pengolahan Sinyal Digital

PEMBUATAN SINYAL DAN PENGGAMBARAN SINYAL

DI MATLAB

Untuk membuat fungsi yang berbentuk sinyal maka variabel yang diperlukan adalah

variabel yang berfungsi sebagai time domain (daerah waktu) dan variabel yang menyimpan

magnitude (amplitudo) suatu persamaan. Persamaan tersebut akan disimpan dalam variabel

yang bertipe matriks, ukuran dan jumlah data dapat dibentuk sesuai dengan kebutuhan.

Pada penggambaran sinyal yang dilakukan oleh matlab merupakan sinyal diskrit

dimana sinyal kontinyu disampling dengan rentang waktu yang sama, akan tetapi pada

penggambarannya kita bisa menghubungkan satu titik dengan titik lainnya dengan fungsi

yang tersedia di matlab.

Variabel yang dibutuhkan dalam penggambaran sinyal minimal satu variabel jika

rentang samplingnya sebesar satu. Akan tetapi untuk rentang samplingnya tidak sama dengan

satu maka kita harus membuat variabel yang mendefinisikan waktu sesuai dengan variabel

fungsi yang telah dibuat. Ukuran dari variabel fungsi serta variabel domain waktu harus sama

besar.

Untuk membuat sinyal diperlukan deret bilangan yang berfungsi sebagai domain

waktunya. Untuk membuat deret bilangan yang kenaikkannya sama besar mempergunakan

operator colon, linspace dan logspace. Untuk lebih jelasnya analisa contoh dibawah ini :

Operator Colon

>> 0:5:20

Ans =

0 5 10 15 20

Operator Linspace

>> linspace(0,50,6)

ans =

0 10 20 30 40 50

Page 11: Modul Praktikum Pengolahan Sinyal Digital

Operator Logspace

>> logspace(0,2,5)

ans =

1.0000 3.1623 10.0000 31.6228 100.0000

Kesimpulan

Operator

colon

Operator colon berfungsi membuat deretan angka dimana yang

diketahui adalah kenaikan atau penurunannya

Linspace linspace berfungsi membuat deretan angka dimana yang

diketahui adalah jumlah kolom yang disediakan

Logspace linspace berfungsi membuat deretan angka dimana yang

diketahui adalah jumlah kolom yang disediakan, dimana hasil dari

linspace menjadi bilangan pangkat dari 10

Pembuatan Sinyal di Matlab

Pada pertemuan sebelumnya telah dijelaskan tentang operator matematika pada

matlab, maka kita menggunakan operator tersebut untuk membuat persamaan sinyal. Pada

intinya persamaan yang akan dibuat dikalikan dengan domain waktu yang telah kita buat.

Algoritma dalam pembuatan sinyal :

1. Buat time domainnya

2. Buat persamaan sinyal, masukan variabel time domain sebagai waktu.

Penggambaran Sinyal di Matlab

Perintah penggambaran pada matlab pada dasarnya mempunyai pola

dDdDdD(FungsiX, FungsiY, Type Grafik);

Keterangan :

FungsiX = Domain waktu

FungsiY = Persamaan sinyal

Type grafik = ‘[Warna] [Bentuk tanda data] [Jenis garis]’

Page 12: Modul Praktikum Pengolahan Sinyal Digital

Warna Bentuk tanda untuk data jenis garis

b biru . titik - Garis solid

g hijau o lingkaran : Titik-titik

r merah x tanda-(x) -. Garis dan titik

c biru-muda + tanda-(+) -- Garis putus putus

m ungu * tanda-(*)

y kuning s samadengan

k hitam d bentuk intan

v segitiga (▼)

^ segitiga (▲)

< segitiga (◄)

> segitiga (►)

p bintang segilima

h bintang segienam

Perintah penggambaran yang menggunakan pola diatas yaitu :

Plot

Plot adalah fungsi penggambaran di matlab dimana titik data satu dengan titik data

selanjutnya akan dihubungkan secara linear (garis lurus).

Stem

Stem adalah fungsi penggambaran di matlab dimana titik data satu dengan titik data

selanjutnya tidak dihubungkan atau lebih dikenal penggambaran secara diskrit.

Stairs

Stairs adalah fungsi penggambaran di matlab dimana titik data satu dengan titik data

selanjutnya akan dihubungkan secara anak tangga, dimana nilai data yang tidak didefinisikan

akan mengikuti data sebelumnya jika menemui data maka akan secara tiba-tiba akan menuju

ke data selanjutnya. Fungsi ini lebih cocok untuk sinyal digital.

Page 13: Modul Praktikum Pengolahan Sinyal Digital

Penggunaannya :

>> plot(x,y,'bo-');

>> stem(x,y,'mv-.');

Latihan

Buat sinyal dengan rentang waktu –10 sampai dengan +10 dengan sampling 0,2 detik. Untuk

menampilkan hasilnya gunakan semua perintah penggambaran.

Sinyal sinus atau cosinus dengan persamaan y = 10 sin 2t

Sinyal exponensial dengan persamaan y = e0.2t

Sinyal impuls dengan besar impulsnya 100

Sinyal step

Sinyal kotak dengan frekuensi 10 Hz

Untuk menggambar hasil yang lebih dari satu dalam satu jendela (window) maka gunakan

subplot, sintaknya adalah

subplot(baris , kolom , posisi); [Perintah penggambaran];

Untuk penggambaran dalam satu grafik, dengan banyak data

plot (x1,y1,[tipe grafik1], ... ,xn,yn,[tipe grafikn])

Page 14: Modul Praktikum Pengolahan Sinyal Digital

MODUL 2

FILTER ANALOG

Dalam materi pengolahan sinyal digital salah satu sub babnya adalah mengenai filter,

fungsi filter adalah menahan atau melewatkan sebuah daerah frekuensi. Jenis filter ada dua

macam yaitu, filter analog dan filter digital.

Fungsi-fungsi filter telah tersedia dalam matlab (lihat fungsi Help), untuk praktikum

ini kita akan mengenalkan filter analog dan digital yang sering digunakan dalam aplikasi

sehari-hari. Untuk filter analog akan dibahas filter butterworth, chebyshev1,chebyshev2,

ellips dan bessel.

Filter Analog

Jenis-jenis filter analog yang sering digunakan adalah

1. Butterworth

Fungsi untuk menghasilkan orde serta frekuensi cut-offnya adalah buttord

Sintaknya :

[n,Wn] = buttord(Wp,Ws,Rp,Rs)

[n,Wn] = buttord(Wp,Ws,Rp,Rs,’s’)

Penjelasan

n = orde minimum filter

Wn = frekuensi cut off (frekuensi natural butterworth = 3 dB)

Wp = frekuensi sudut passband

Untuk membentuk filter digital maka frekuensi sudut passband harus diantara

0 – 1.

Ws = frekuensi stopband

Untuk membentuk filter digital maka frekuensi sudut stopband harus diantara

0 – 1.

Rp = Passband ripple dalam decibel, nilai maksimum yang diijinkan melewati

passband.

Rs = Penguatan stopband dalam decibel, nilai maksimum yang diijinkan melewati

stopband.

’s’ = Filter beroperasi pada analog

Page 15: Modul Praktikum Pengolahan Sinyal Digital

Fungsi yang menghasilkan transfer fungsi dari filter butterworth

abTF =

Domain analog :

Sintaks

[b,a] = butter(n,Wn)

[b,a] = butter(n,Wn,’ftype’)

[b,a] = butter(n,Wn,’s’)

[b,a] = butter(n,Wn,’ftype’,’s’)

[z,p,k] = butter(...)

[A,B,C,D] = butter(...)

b = matrik pembilang dari sebuah transfer function

a = matrik penyebut dari sebuah transfer function

n = orde filter butterworth yang akan dibuat

Wn = frekuensi cut off

ftype = tipe filter, dimana pilihannya adalah

-. ‘high’ filter Highpass dengan frekuensi cut off yang dinormalisasi Wn

-. ‘stop’ filter Bandstop orde 2*n jika Wn merupakan vector 2 elemen,

Wn = [w1 w2].

Sinyal yang dihentikan adalah w1 < ω <w2

z,p,k = zero, pole dan gain

Untuk menghasilkan bentuk state space-nya dapat digunakan untuk sintak terakhir,

untuk lebih jelasnya lihat gambar dibawah untuk lebih jelas posisi empat variable yang

digunakan.

Domain analog :

Page 16: Modul Praktikum Pengolahan Sinyal Digital

Latihan :

1. Buat filter butterworth analog, yang melewatkan frekuensi 0 - 100 rad/s, dengan

passband ripple -1 dB pada saat 100 rad/s,

• stopband attenuation -20 db pada saat 300 rad/s.

• stopband attenuation -20 db pada saat 200 rad/s.

• stopband attenuation -40 db pada saat 150 rad/s.

2. Buat filter butterworth analog, yang menghambat frekuensi 0 – 500 rad/s, dengan

passband ripple -5 dB pada saat 500 rad/s

• stopband attenuation -10 pada saat 300 rad/s

• stopband attenuation -20 pada saat 300 rad/s

• stopband attenuation -30 pada saat 400 rad/s

3. Buat filter butterworth analog, dengan tipe bandpass filter. Dengan frekuensi yang

diloloskan 400 – 600 rad/s dengan passband ripple -6 dB serta stopband attenuation

-20 dB pada saat 100 dan 600 rad/s.

4. Buat filter butterworth analog, dengan tipe stopband filter. Dengan frekuensi yang

diredam 250 – 750 rad/s dengan stopband attenuation -25 dB serta pada saat

100 dan 800 rad/s, passband ripple-nya -9 dB.

2. Chebyshev

Untuk filter chebyshev ada dua macam, yaitu

• Tipe 1 : terdapat ripple di-passband

• Tipe 2 : terdapat ripple di-stopband

Fungsi untuk menghasilkan orde serta frekuensi cut-offnya adalah

Cheb1ord untuk tipe 1

Cheb2ord untuk tipe 2

Sintaksnya :

Tipe 1 :

[n,Wn] = Cheb1ord (Wp,Ws,Rp,Rs)

[n,Wn] = Cheb1ord (Wp,Ws,Rp,Rs,’s’)

Tipe 2 :

[n,Wn] = Cheb2ord (Wp,Ws,Rp,Rs)

[n,Wn] = Cheb2ord (Wp,Ws,Rp,Rs,’s’)

Untuk penjelasan dapat dilihat penjelasan pada buttord.

Page 17: Modul Praktikum Pengolahan Sinyal Digital

Fungsi yang menghasilkan transfer fungsi dari filter chebyshev

abTF =

Sintaks

Tipe 1:

[b,a] = cheby1(n,Rp,Wn)

[b,a] = cheby1(n,Rp,Wn,'ftype')

[b,a] = cheby1(n,Rp,Wn,'s')

[b,a] = cheby1(n,Rp,Wn,'ftype','s')

[z,p,k] = cheby1(...)

[A,B,C,D] = cheby1(...)

Tipe 2 :

[b,a] = cheby2(n,Rs,Wn)

[b,a] = cheby2(n,Rs,Wn,'ftype')

[b,a] = cheby2(n,Rs,Wn,'s')

[b,a] = cheby2(n,Rs,Wn,'ftype','s')

[z,p,k] = cheby2(...)

[A,B,C,D] = cheby2(...)

Untuk penjelasan b, a, n, Wn, ’ftype’, z, p, k, A, B, C, D sama seperti pada

perintah butter. Yang membedakan dalam chebyshev adalah ada variable tambahan

yaitu ripple, untuk tipe 1 ripplenya pada passband (Rp) untuk tipe 2 ripplenya pada

stopband (Rs).

Latihan :

5. Kerjakan latihan butterworth analog menggunaka chebyshev dengan

Ripple di passband = 5 dB

Ripple di stopband = 30 dB

Page 18: Modul Praktikum Pengolahan Sinyal Digital

3. Elliptic

Untuk filter elliptic :

Sintaksnya :

[n,Wn] = ellipord (Wp,Ws,Rp,Rs)

[n,Wn] = ellipord (Wp,Ws,Rp,Rs,’s’)

Untuk penjelasan dapat dilihat penjelasan pada buttord.

Rp adalah ripple di passband, sedangkan Rs adalah ripple di stopband.

Fungsi yang menghasilkan transfer fungsi dari filter elliptic

abTF =

Sintak

[b,a] = ellip (n, Rp, Rs, Wn)

[b,a] = ellip (n, Rp, Rs, Wn, 'ftype')

[b,a] = ellip (n, Rp, Rs, Wn, 's')

[b,a] = ellip (n, Rp, Rs, Wn, 'ftype','s')

[z,p,k] = ellip (...)

[A,B,C,D] = ellip (...)

Untuk penjelasan b, a, n, Wn, ’ftype’, z, p, k, A, B, C, D sama seperti pada

perintah butter. Yang membedakan dalam chebyshev adalah ada variable tambahan

yaitu ripple, untuk tipe 1 ripplenya pada passband (Rp) untuk tipe 2 ripplenya pada

stopband (Rs). Rp merupakan ripple pada saat passband, sedangkan Rs merupakan

ripple saat stopband.

Latihan :

6. Kerjakan semua latihan filter chebyshev menggunakan ellip.

4. Bessel

Untuk filter Bessel tidak perlu mencari Wp, Ws, Rp, dan Rs. Yang perlu diketahui

adalah orde dari filter dan frekuensi cutoffnya.

Sintaks

[b,a] = besself(n,Wn)

[b,a] = besself(n,Wn,'ftype')

Page 19: Modul Praktikum Pengolahan Sinyal Digital

[z,p,k] = besself(...)

[A,B,C,D] = besself(...)

Untuk penjelasan b, a, n, Wn, ’ftype’, z, p, k, A, B, C, D sama seperti pada

perintah butter.

Latihan :

7. Kerjakan semua latihan filter elliptic menggunakan Bessel

Page 20: Modul Praktikum Pengolahan Sinyal Digital

MODUL 3

FILTER DIGITAL

Pada pertemuan sebelumnya telah dibahas tentang filter analog, untuk bab ini akan

dibahas filter digital. Untuk modul ini, semua latihan sama dengan filter analog.

Filter Digital IIR

Jenis-jenis filter digital tranformasi dari analog yang sering digunakan adalah

1. Butterworth

Fungsi untuk menghasilkan orde serta frekuensi cut-offnya adalah buttord

Sintaksnya :

[n,Wn] = buttord(Wp,Ws,Rp,Rs)

Penjelasan

n = orde minimum filter

Wn = frekuensi cut off

Wp = frekuensi sudut passband

Untuk membentuk filter digital maka frekuensi sudut passband harus

diantara 0 – 1.

Ws = frekuensi stopband

Untuk membentuk filter digital maka frekuensi sudut stopband harus

diantara 0 – 1.

Rp = Passband ripple dalam decibel, nilai maksimum yang diijinkan melewati

passband.

Rs = Penguatan stopband dalam decibel, nilai maksimum yang diijinkan melewati

stopband.

Fungsi yang menghasilkan transfer fungsi dari filter butterworth

abTF =

Domain digital :

Page 21: Modul Praktikum Pengolahan Sinyal Digital

Sintaks

[b,a] = butter(n,Wn)

[b,a] = butter(n,Wn,’ftype’)

[z,p,k] = butter(...)

[A,B,C,D] = butter(...)

b = matrik pembilang dari sebuah transfer function

a = matrik penyebut dari sebuah transfer function

n = orde filter butterworth yang akan dibuat

Wn = frekuensi cut off

ftype = tipe filter, dimana pilihannya adalah

-. ‘high’ filter Highpass dengan frekuensi cut off yang dinornalisasi Wn

-. ‘stop’ filter Bandstop orde 2*n jika Wn merupakan vector 2 elemen,

Wn = [w1 w2].

Sinyal yang dihentikan adalah w1 < ω <w2

z,p,k = zero, pole dan gain

Untuk menghasilkan bentuk state spacenya dapat digunakan untuk sintak

terakhir, untuk lebih jelasnya lihat gambar dibawah untuk lebih jelas posisi empat

variable yang digunakan.

Domain analog :

Domain digital :

u adalah input, x adalah vector keadaan dan y adalah output.

2. Chebyshev

Fungsi untuk menghasilkan orde serta frekuensi cut-offnya adalah

Cheb1ord untuk tipe 1

Cheb2ord untuk tipe 2

Page 22: Modul Praktikum Pengolahan Sinyal Digital

Sintaknya :

Tipe 1 :

[n,Wn] = Cheb1ord (Wp,Ws,Rp,Rs)

Tipe 2 :

[n,Wn] = Cheb2ord (Wp,Ws,Rp,Rs)

Untuk penjelasan dapat dilihat penjelasan pada buttord.

Fungsi yang menghasilkan transfer fungsi dari filter chebyshev

abTF =

Sintaks

Tipe 1:

[b,a] = cheby1(n,Rp,Wn)

[b,a] = cheby1(n,Rp,Wn,'ftype')

[z,p,k] = cheby1(...)

[A,B,C,D] = cheby1(...)

Tipe 2 :

[b,a] = cheby2(n,Rs,Wn)

[b,a] = cheby2(n,Rs,Wn,'ftype')

[z,p,k] = cheby2(...)

[A,B,C,D] = cheby2(...)

Untuk penjelasan b, a, n, Wn, ’ftype’, z, p, k, A, B, C, D sama seperti pada perintah

butter. Yang membedakan dalam chebyshev adalah ada variable tambahan yaitu

ripple, untuk tipe 1 ripplenya pada passband (RIP) untuk tipe 2 ripplenya pada stopband

(RIS).

3. Elliptic

Fungsi untuk menghasilkan orde serta frekuensi cut-offnya adalah

Page 23: Modul Praktikum Pengolahan Sinyal Digital

Sintaknya :

[n,Wn] = ellipord(Wp,Ws,Rp,Rs)

Untuk penjelasan dapat dilihat penjelasan pada buttord.

Fungsi yang menghasilkan transfer fungsi dari filter elliptic

abTF =

Sintaks

[b,a] = ellip(n,Rp,Rs,Wn)

[b,a] = ellip(n,Rp,Rs,Wn,'ftype')

[z,p,k] = ellip(...)

[A,B,C,D] = ellip(...)

Untuk penjelasan b, a, n, Wn, ’ftype’, z, p, k, A, B, C, D sama seperti pada

perintah butter. Yang membedakan dalam ellip adalah ada variable tambahan yaitu

ripple, dimana ripple ini terdapat pada setiap band baik pada stopband (Ris) maupun

passband (Rip).

4. Bessel

Filter bessel ini gunakan tranformasi bilinear

Sintaks

[b,a] = besself(n,Wn)

[b,a] = besself(n,Wn,'ftype')

[z,p,k] = besself(...)

[A,B,C,D] = besself(...)

Untuk penjelasan b, a, n, Wn, ’ftype’, z, p, k, A, B, C, D sama seperti pada perintah

butter.

Page 24: Modul Praktikum Pengolahan Sinyal Digital

Filter Digital FIR

Filter digital yang akan kita pelajari adalah finite impulse response (FIR). FIR adalah

sebuah filter dimana respon dari impuls akan terbatas, sehingga respon dapat diatur. Dimatlab

fungsi ini terbagi dua yaitu FIR1 dan FIR2.

1. FIR1

Desain filter finite impulse response berbasis window.

Sintaks

b = fir1(n,Wn)

b = fir1(n,Wn,'ftype')

b = fir1(n,Wn,window)

b = fir1(n,Wn,'ftype',window)

Penjelasan

n = Orde filter yang akan dibuat

Wn = Frekuensi cut off, diantara 0 sampai dengan 1.

ftype = Tipe filter yang akan dibuat

-. Lowpass

-. Highpass

-. Bandpass

-. Bandstop

Window = Jenis window yang akan digunakan untuk filter yang anda buat, nilai

umumnya adalah hamming.

Untuk jenis-jenis window

Page 25: Modul Praktikum Pengolahan Sinyal Digital

1. kaiser w = kaiser(n,beta)

2. nuttallwin w = nuttallwin(n)

3. parzenwin w = parzenwin(n)

4. rectwin w = rectwin(n)

5. triang w = triang(n)

6. tukeywin w = tukeywin(n,α)

7. barthannwin w = barthannwin(n)

8. bartlett w = bartlett(n)

9. blackmanharris w = blackmanharris(n)

10. bohmanwin w = bohmanwin(n)

11. chebwin w = chebwin(n,r)

12. blackman w = blackman(n)

w = blackman(n,'sflag')

13. flattopwin w = flattopwin(n)

w = flattopwin(n,sflag)

14. gausswin w = gausswin(n)

w = gausswin(n,α)

15. hamming w = hamming(n)

w = hamming(n,'sflag')

16. hann w = hann(n)

w = hann(n,'sflag')

2. FIR2

Desain filter FIR berbasis frekuensi response. Untuk filter yang responnya tidak teratur maka

gunakan FIR2 untuk penyelesaian kasus, akan tetapi untuk menggunakan ini hati-hati

mendefinisikan matrik respons frekuensi beserta magnitudenya.

Sintak

b = fir2(n,f,m)

b = fir2(n,f,m,window)

Penjelasan :

b,n sama dengan FIR1, f merupakan matrik dimana menentukan respon dari filter sedangkan m

menyatakan penguatannya.

Page 26: Modul Praktikum Pengolahan Sinyal Digital

Latihan :

Kerjakan menggunakan filter digital Butterworth, Chebyshev tipe 1 dan 2, Elliptic, Bessel

(gunakan transformasi bilinier) dan FIR1. Gunakan M-file dalam bentuk Fungsi.

8. Buat filter digital, yang melewatkan frekuensi 0 - 100 rad/s, dengan passband ripple -1 dB

pada saat 100 rad/s,

• stopband attenuation -20 db pada saat 300 rad/s.

• stopband attenuation -40 db pada saat 150 rad/s.

Ripple in passband = 5 dB

Ripple in stopband = 30 dB

Frekuensi Sampling = 1000Hz

9. Buat filter digital, yang menghambat frekuensi 0 – 500 rad/s, dengan passband ripple -5 dB

pada saat 500 rad/s

• stopband attenuation -10 pada saat 300 rad/s

• stopband attenuation -30 pada saat 400 rad/s

Ripple in passband = 5 dB

Ripple in stopband = 15 dB

Frekuensi Sampling = 1000Hz

10. Buat filter digital, dengan tipe bandpass filter. Dengan frekuensi yang diloloskan 400 – 600

rad/s dengan passband ripple - 6 dB serta stopband attenuation - 20 dB pada saat 100 dan

800 rad/s.

Ripple in passband = 10 dB

Ripple in stopband = 30 dB

Frekuensi Sampling = 2000Hz

11. Buat filter digital, dengan tipe stopband filter. Dengan frekuensi yang diredam 250 – 750

rad/s dengan stopband attenuation -25 dB serta pada saat 100 dan 800 rad/s, passband

ripple-nya -9 dB.

Ripple in passband = 15 dB

Ripple in stopband = 30 dB

Frekuensi Sampling = 2000Hz

12. Gunakan soal yang sama dari nomor 1 – 4 untuk jenis FIR1 dengan ketentuan sbb:

Orde hasil dari filter elliptic

Untuk blackmann dan flattopwin, sflagnya = periodic.

Untuk hamming dan Hanning, sflagnya = simetric

Chebwin, r = 8 dB, Kaiser, beta = 2, dan Tukeywin, r = 1

Page 27: Modul Praktikum Pengolahan Sinyal Digital

MODUL 4

APLIKASI PENGOLAHAN SINYAL DIGITAL MENGGUNAKAN MATLAB

Pada praktikum sebelumnya, telah dibahas tentang pembuatan sinyal dan karakteristik

filter. Pada praktikum membahas tentang aplikasi dari pengolahan sinyal digital sebagai aplikasi

yang telah dipelajari dari modul-modul sebelumnya.

Percobaan yang akan dilakukan adalah :

1. Mengetahui Respon frekuensi menggunakan Fast Fourier Transform (FFT)

Penggunaan Fast Fourier Transfrom (FFT) pada matlab pada modul ini hanya untuk sinyal

diskrit. Sehingga informasi minimal yang diperlukan adalah besar (magnitude) sinyal dan

frekuensi sampling (Hz).

Hasil = fft(sinyal, jumlah_point)

Contoh :

fs = 1000

t = 0:1/fs:5

Sinyal_Satu = 10 * sin(2*pi*10*t)

Hasil = fft(Sinyal_Satu, 512)

% sintaks untuk penggambaran

Frekuensi = fs*(0:1/512:.5)

[b k] = size(Frekuensi)

figure(1);

plot(Frekuensi, abs(Hasil(1:k)))

grid on

*Note :

Size adalah suatu fungsi untuk mengembalikan size dari fungsi yaitu frekuensi ke dalam

fungsi variable b (baris) dan k(kolom).

Latihan :

Buat sebuah sinyal yang mempunyai sinyal 40, 70 dan 100 Hz dengan masing-masing

amplitudo 5, 2, 5. Filter sinyal tersebut sehingga sinyal frekuensi 70 Hz dapat muncul

dibandingkan sinyal dengan frekuensi lainnya.

Page 28: Modul Praktikum Pengolahan Sinyal Digital

1. Gunakan Filter IIR

2. Gunakan Filter FIR

2. Memfilter sinyal suara menggunakan matlab

Sinyal suara dapat dimanipulasi dan atau dianalisa menggunakan matlab. Untuk percobaan

ini, sinyal suara yang akan dianalisa adalah sinyal suara masing-masing anggota kelompok

sesuai dengan tugas pendahuluan. Untuk memasukan sinyal suara yang telah direkam ke dalam

program matlab gunakan perintah wavread.

[data fs nbit] = wavread(namafile_beserta_direktorinya)

Contoh :

Namafile = input(‘masukan alamat file suara yang akan dianalisa : ’)

[data fs nbit] = wavread(Namafile)

Latihan :

1. Masukan suara masing-masing ke dalam matlab bandingkan masing-masing suara

menggunakan FFT seperti yang telah dilakukan pada percobaan sebelumnya.

2. Pilih salah satu suara dari anggota kelompok tambahkan noise ke dalam sinyal suara

tersebut. Tampilkan frekuensi yang dimiliki oleh sinyal yang telah ditambahkan noise.

Bandingkan dengan sinyal suara sebelum ditambah dengan noise.

3. Amati dan buat filter digital untuk mengembalikan sinyal suara tersebut dengan

menggunakan filter

1. Infinite Impulse Response

2. Finite Impulse Response

Mainkan suara sebelum ditambahkan noise, dengan noise dan setelah difilter.

3. Pembuatan efek Echo

Echo adalah efek suara yang umum ditemui di kehidupan sehari-hari. Algoritma efek echo

adalah menambahkan sebuah sinyal pada sinyal dasar, dimana sinyal yang ditambahkan adalah

sinyal dasar yang ditunda beberapa satuan waktu. Untuk memperjelas efek echo maka sinyal

yang ditambahkan harus semakin banyak akan tetapi waktu tundanya berbeda.

Page 29: Modul Praktikum Pengolahan Sinyal Digital

Latihan :

1. Pilih suara anggota kelompok yang akan diberi efek echo.

2. Buat sinyal baru sebanyak 3 buah dengan kondisi sebagai berikut

a. sinyal dasar dengan waktu tunda .2 detik

b. sinyal dasar dengan waktu tunda .6 detik

c. sinyal dasar dengan waktu tunda .1 detik

Mainkan suara sebelum ditambahkan echo dan suara yang telah ditambah efek echo.

4. Pembuatan Equalizer

Equalizer merupakan aplikasi pengolahan sinyal paling sering digunakan akan tetapi equalizer

yang paling banyak beredar adalah equalizer analog. Akan tetapi equalizer digital dapat dibuat

menggunakan filter yang telah dipelajari pada modul-modul sebelumnya. Pada dasarnya

equalizer adalah filter yang meredam frekuensi tertentu sehingga frekuensi yang diharapkan

lebih muncul dibandingkan yang lainnya.

Latihan :

1. Pilih file musik yang akan diberi efek equalizer

2. Buat filter digital

a. LPF dengan frekuensi cutoffnya ⅛ dari frekuensi samplingnya

b. BPF dengan frekuensi cutoffnya ¼ dan ½ dari frekuensi samplingnya

c. HPF dengan frekuensi cutoffnya ½ dari frekuensi samplingnya

Kuatkan daerah frekuensi yang diinginkan, mainkan suara yang telah melalui efek equalizer

bandingkan dengan tanpa equalizer