laporan praktikum ii

Upload: tri-winarto

Post on 09-Jul-2015

95 views

Category:

Documents


8 download

TRANSCRIPT

LAPORAN PRAKTIKUM IIPemrosesan Sinyal

Disusun Oleh:

IKA SHANTI B

2408 100 020

Jurusan Teknik Fisika Fakultas Teknologi Industri Institut Teknologi Sepuluh Nopember Surabaya 2010

PRAKTIKUM 2.1Tujuan : Memahami penerapan dari konvolusi dan memahami konsep sederhana noise removal ( signal enhacement). Peralatan : Prosedur : Laptop atau PC Software Matlab

1. Melakukan double click Matlab 2. Membuka text editor matlab ( icon persegi putih, sisi kiri) atau menggunakan sembarang text editor seperti notepad, wordpad dll. 3. Mengetik command line di bawah ini : %Konvolusi sinyal sinus bernoise dengan raised cosine; n=-7.9:.5:8.1; y=sin(4*pi*n/8)./(4*pi*n/8); figure(1); plot(y,'linewidth',2) t=0.1:.1:8; x=sin(2*pi*t/4); figure(2); plot(x,'linewidth',2) %Tambahkan noise pada sinyal sinus. t=0.1:.1:8; x_n=sin(2*pi*t/4)+0.5*randn*sin(2*pi*10*t/4) + 0.2*randn*sin(2*pi*12*t/4); figure(3); plot(x_n,'linewidth',2) %Konvolusikan keduanya xy=conv(x_n,y); figure(4); plot(xy,'linewidth',2) 4. Menyimpan command line tersebut dengan nama konvolusi1.m dan meletakkannya pada direktori di mana matlab dieksekusi.

Hasil Praktikum

:

Dengan command line di atas, didapatkan 4 buah grafik sebagai berikut : Figure 1 : y=sin(4*pi*n/8)./(4*pi*n/8);

Bentuk sinyal berupa sinusoidal dengan setengah gelombang yang mempunyai amplitudo 1 dan beberapa gelombang kecil yang amplitudonya semakin kecil pula di sebelum dan sesudah gelombang besar. Figure 2 : x=sin(2*pi*t/4);

Merupakan bentuk gelombang sinusoidal dengan amplitudo 1. Figure 3 : x_n=sin(2*pi*t/4)+0.5*randn*sin(2*pi*10*t/4) + 0.2*randn*sin(2*pi*12*t/4);

Gelombang x pada figure 2 yang telah diberi noise sehingga bentuknya tidak lagi sesmooth gelombang x. Noise yang diberikan menggunakan fungsi random / acak. Figure 4 : xy=conv(x_n,y);

Hasil konvolusi dari sinyal x yang telah diberi noise (figure 3) dengan sinyal y (figure 1). Pada sinyal terbentuk 2 gelombang yang mempunyai amplitudo 4 dan diikuti gelombang gelombang kecil mendekati nol di sebelum dan sesudah gelombang besar. Perlakuan pada sinyal : 1. Konvolusi sinyal y dengan sinyal x yang telah diberi noise. Sinyal y menjadi 2 gelombang dengan besar amplitudonya 4 kali amplitudo sinyal y yang gelombang utama. Akibat dikonvolusi dengan sinyal yang diberi noise maka hasilnya ada riak riak gelombang walaupun bentuknya tetap sinusoidal. 2. Perubahan panjang n sinyal y Memperpendek rentangnya Dengan n awal n=-7.9:.5:8.1;diganti n=-7.9:.5:2.1;

Sinyal y yang terbentuk juga semakin pendek.

Sinyal hasil konvolusinyapun juga memendek.

-

Memperpanjang nilai n Dengan n awal n=-7.9:.5:8.1;diganti n=-7.9:.5:50.0;

Sinyal y yang terbentuk semakin panjang pula dengan lama kelamaan mendekati sumbu x.

Sinyal hasil konvolusinya juga semakin panjang dan semakin halus mendekati sumbu x.

PRAKTIKUM 2.2Tujuan : Memahami penerapan dari konvolusi dan memahami konsep sederhana noise removal ( signal enhacement). Peralatan : Prosedur : Laptop atau PC Software Matlab

1. Melakukan double click Matlab 2. Membuka text editor matlab ( icon persegi putih, sisi kiri) atau menggunakan sembarang text editor seperti notepad, wordpad dll. 3. Mengetik command line di bawah ini : clear all; T=1000; LPF_01=fir1(16,0.2,'low') t=1/T:1/T:1; y=sin(2*pi*t); tt=length(y); nois=0.1*randn(1,tt); y_n = y + nois; subplot(2,1,1); plot(t,y_n,'linewidth',2) axis([0 1.05 -1.5 1.5]) xlabel('Waktu (dt)') grid on %konvolusi FIR filter dengan sinyal dan noise y_filter=conv(y_n,LPF_01); subplot(2,1,2); t_yfil=length(y_filter); t=1/T:1/T:t_yfil/T; plot(t,y_filter,'linewidth',2) axis([0 1.05 -1.5 1.5]) xlabel('Waktu (dt)') grid on 4. Menyimpan command line tersebut dengan nama konvolusi2.m dan

meletakkannya pada direktori di mana matlab dieksekusi.

Hasil Praktikum : Dengan command line di atas didapatkan 2 grafik berikut :

Grafik

yang

pertama

adalah

grafik

sinyal noise

y

yang

mempunyai mempunyai

fungsi fungsi

y=sin(2*pi*t)ditambah

dengan

yang

nois=0.1*randn(1,tt). Bentuk dasarnya sama yaitu sinusoidal tetapi ada gangguan yang menyebabkan bentuknya sinusoidal yang kasar. Kemudian sinyal tersebut difilter dengan low pass filter dimana hasilnya lebih smooth dibanding dengan sinyal y_n dimana noisenya direduksi walaupun tidak hilang 100%.

Bila amplitudo noise dari semula 0.1 diganti menjadi 0.95

Amplitudo noisenya diperbesar, menyebabkan sinyal yang dihasilkan juga semakin kasar. Hal ini mempengaruhi pula pada hasil filternya, yang lolos filter juga lebih kasar dibanding dengan amplitudo noise sebelumnya yang lebih kecil. Perlakuan selanjutnya : Mengganti filter dengan cheby Dengan syntax : T=1000; [z,p,k] = cheby1(5,0.5,100/500); [sos,g] = zp2sos(z,p,k); Hd = dfilt.df2tsos(sos,g); h = fvtool(Hd); set(h,'Analysis','freq'); freqz(b,a,512,1000) t=1/T:1/T:1; y=sin(2*pi*t); tt=length(y); noise=0.1*randn(1,tt); y_n = y + noise; subplot(2,1,1); plot(t,y_n,'linewidth',2) axis([0 1.05 -1.5 1.5])

xlabel('Waktu (dt)') grid on %konvolusi FIR filter dengan sinyal dan noise y_filter=conv(y_n,LPF_01); subplot(2,1,2); t_yfil=length(y_filter); t=1/T:1/T:t_yfil/T; plot(t,y_filter,'linewidth',2) axis([0 1.05 -1.5 1.5]) xlabel('Waktu (dt)') grid on Bentuk grafiknya :

Bila amplitudo noise diganti menjadi diperbesar menjadi 0.95: noise=0.95*randn(1,tt);

Bila amplitudo noise diganti menjadi diperkecil menjadi 0.01 : noise=0.01*randn(1,tt);

-

Mengganti filter dengan ellip Dengan syntax : clear all; fs=1136; [a,b]=ellip(26,0.3,12,0.1,'low'); freqz(b,a,512,1136) t=1/fs:1/fs:1; y=sin(2*pi*t); tt=length(y); noise=0.26*randn(1,tt); y_n=y+noise; figure(1); subplot(2,1,1); plot(t,y_n,'linewidth',2); axis([0 1.05 -1.5 1.5]); xlabel('waktu(dt)'); grid on y_filter=conv(y_n,freqz(b,a,512,1000)); subplot(2,1,2); t_yfil=length(y_filter); t_fil=1/fs:1/fs:t_yfil/fs; plot(t_fil,y_filter,'linewidth',2); axis([0 1.05 -1.5 1.5]);

xlabel('waktu(dt)'); grid on Bentuk grafiknya :

Grafik yang kedua sebagai hasil konvolusinya hanya muncul sedikit saja. Perhitungan SNR (signal to noise ratio) yaitu perhitungan dengan membandingkan magnitudo signal terhadap magnitudo noise. Rumus : ( )

Dengan menggunakan filter dengan amplitudo noise 10 : ( )

Dengan menggunakan filter dengan amplitudo noise 0.95 : ( )

Dengan dibandingkan hasil SNR tersebut semakin besar amplitudo noisenya dengan syarat amplitudo sinyal tetap maka nilai SNRnya semakin kecil.

PRAKTIKUM 2.3Tujuan : Memahami penerapan dari konvolusi dan memahami konsep sederhana noise removal ( signal enhacement). Peralatan : Prosedur : Laptop atau PC Software Matlab

1. Melakukan double click Matlab 2. Membuka text editor matlab ( icon persegi putih, sisi kiri) atau menggunakan sembarang text editor seperti notepad, wordpad dll. 3. Mengetik command line di bawah ini : %Penerapan speech signal enhancement [Y, Fs] = wavread(ika.wav); Fs = 16000; %Bila ingin mengetahui suara, hilangkan tanda %commentout percent %sound (Y, Fs) %untuk tahap berikutnya jangan lupa comment-out line %diatas. derau = randn(length(Y), 1); Y_noise = Y + 0.08*derau; %Bila ingin mengetahui suara, hilangkan tanda %commentout percent %sound(Y_noise, Fs) satu = ones(4,1); Y_conv = conv(satu, Y_noise); sound(Y_conv, Fs) 4. Menyimpan command line tersebut dengan nama 2-3.m dan meletakkannya pada direktori di mana matlab dieksekusi.

Hasil Praktikum : Pada sinyal y dengan syntax : %Penerapan speech signal enhancement [Y, Fs] = wavread(ika.wav); Fs = 16000; %Bila ingin mengetahui suara, hilangkan tanda %commentout percent sound (Y, Fs)

Hasil : suara yang dihasilkan datar dibanding dengan suara asli pada ika.wav. Pada ika.wav suara bergelombang gelombang tetapi dengan diberi frekuensi sampling 16000 maka suara yang didengar tanpa ada suara yang bergelombang. Pada sinyal y_noise dengan syntax : [Y, Fs] = wavread(ika.wav); Fs = 16000; %Bila ingin mengetahui suara, hilangkan tanda %commentout percent %sound (Y, Fs) %untuk tahap berikutnya jangan lupa comment-out line %diatas. derau = randn(length(Y), 1); Y_noise = Y + 0.08*derau; sound (Y_noise, Fs) Suara yang dihasilkan lebih berat, seperti ada derau walaupun tidak begitu jelas kalau pendengarannya kurang peka. Pada sinyal y_conv dengan syntax : %Penerapan speech signal enhancement [Y, Fs] = wavread(ika.wav); Fs = 16000; %Bila ingin mengetahui suara, hilangkan tanda %commentout percent %sound (Y, Fs) %untuk tahap berikutnya jangan lupa comment-out line %diatas. derau = randn(length(Y), 1); Y_noise = Y + 0.08*derau; %Bila ingin mengetahui suara, hilangkan tanda %commentout percent %sound(Y_noise, Fs) satu = ones(4,1); Y_conv = conv(satu, Y_noise); sound(Y_conv, Fs) Setelah dikonvolusikan dengan sinyal satu maka sinyal y_noise menghasilkan suara yang dihasilkan lebih nyaring. Dengan memakai filter pada praktikum 2.2 a. Dengan LPF Syntax : %Penerapan speech signal enhancement [Y, Fs] = wavread('ika.wav'); figure (1); plot (Y, Fs,'linewidth',2)

Fs = 16000; %Bila ingin mengetahui suara, hilangkan tanda %commentout percent %sound (Y, Fs) %untuk tahap berikutnya jangan lupa comment-out line %diatas. derau = randn(length(Y), 1); Y_noise = Y + 0.08*derau; figure (2); plot (Y_noise,'linewidth',2) LPF_01=fir1(16,0.2,'low') %Bila ingin mengetahui suara, hilangkan tanda %commentout percent %sound(Y_noise, Fs) satu = ones(4,1); Y_conv = conv(Y_noise,LPF_01); sound(Y_conv, Fs) figure (3); plot (Y_conv,'linewidth',2) Figure 1 : Merupakan grafik dari suara ika.wav yang dibuat. Tidak adagrafik yang tergambar.

Figure 2 Merupakan grafik Y_noise

Figure 3 : Panjang gelombang yang dihasilkan lebih pendek dibandingkan dengan gambar yang kedua.

Suara yang dihasilkan setelah difilter lebih berat, kalau yang sebelum difilter lebih nyaring.

b. Dengan cheby Syntax : %Penerapan speech signal enhancement [Y, Fs] = wavread('ika.wav'); figure (1); plot (Y, Fs,'linewidth',2) Fs = 16000; %Bila ingin mengetahui suara, hilangkan tanda %commentout percent %sound (Y, Fs) %untuk tahap berikutnya jangan lupa comment-out line %diatas. derau = randn(length(Y), 1); Y_noise = Y + 0.08*derau; figure (2); plot (Y_noise,'linewidth',2) T=1000; [z,p,k] = cheby1(5,0.5,100/500); [sos,g] = zp2sos(z,p,k); Hd = dfilt.df2tsos(sos,g); h = fvtool(Hd); set(h,'Analysis','freq'); freqz(b,a,512,1000)%Bila ingin mengetahui suara, hilangkan tanda %comment-out percent %sound(Y_noise, Fs) satu = ones(4,1); Y_conv = conv(Y_noise,LPF_01); sound(Y_conv, Fs) figure (3); plot (Y_conv,'linewidth',2)

Berikut penilaian dari 10 orang yang telah kami tanya: Orang ke Nilai suara 2.3 Nilai suara 2.2 dengan filter 1 3 4 2 3 4 3 3 4 4 4 4 5 4 4 6 4 5 7 2 3 8 5 4 9 4 5 10 4 4

Sebagian besar responden mengatakan kalau suara yang telah difilter lebih enak didengar dibanding yang tanpa filter.