PRAKTIKUM PENGOLAHAN SINYAL DIGITAL
LABORATORIUM TELEKOMUNIKASI JURUSAN TEKNIK ELEKTRO
INSTITUT TEKNOLOGI NASIONAL BANDUNG
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
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
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
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
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
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
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).
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
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
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]’
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.
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])
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
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 :
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.
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
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')
[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
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 :
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
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
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.
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
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.
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
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.
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.
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
Top Related