Senin, 25 Maret 2013

Praktikum 3. Pemrosesan Sinyal Digital (Yulianto)



PERCOBAAN 3
OPERASI DASAR PADA SINYAL
  
Tujuan Praktikum

  • Mahasiswa dapat memperlihatkan proses-proses aritmatika sinyal dan menerapkan sebagai proses dasar dari pengolah sinyal audio.
  • Mahasiswa dapat menjumlahkan dua sinyal sudio dalam format ”wav” dan menampilkan grafik dan menguji dalam bunyi.

3.1. Dasar Teori
Bisa jadi sebuah sinyal belum sesuai dengan yang dibutuhkan, mungkin amplitudonya tidak sesuai, atau mungkin perlu adanya penjumlahan dua sinyal, atau operasi yang lainnya. Berikut ini akan dipelajari memanipulasi sinyal.

3.1.1  Operasi Aritmatika Sinyal
Pada analisa sistem pemrosesan sinyal diskrit, deretnya dapat dimanipulasi dalam beberapa cara. Perkalian (product) dan penambahan (sum) dari dua deret x dan y dinyatakan sebagai sample perkalian dan pembagian dimana

x.y = {x(n) y(n)}          (product)
x+y= {x(n) + y(n)}       (sum)

Perkalian dari deret x dengan sebuah nilai α dinyatakan sebagai

α.x = x(n - n0)

dimana n0 adalah bilangan integer.
Dalam realita kehidupan sehari-hari, khususnya dalam dunia electronic communication engineering, kita mengenal proses aritmatika pada sinyal yang meliputi:
- penguatan sinyal
- pelemahan sinyal
- penjumlahan dua buah sinyal
- perkalian dua buah sinyal

Penguatan Sinyal
Peristiwa penguatan sinyal seringkali kita jumpai pada perangkat audio seperti radio, tape, dsb. Fenomena ini dapat juga direpresentasikan secara sederhana sebagai sebuah operasi matematika sebagai berikut:

y(t) = amp x(t)

keterangan:
y(t)   = sinyal output
amp = konstanta penguatan sinyal
x(t)   = sinyal input

Bentuk diagram blok dari sebuah operasi pernguatan sinyal dapat diberikan pada gambar berikut ini.

Gambar 3.1. Diagram Blok Penguatan Suatu Sinyal

Besarnya nilai konstanta sinyal amp >1, dan penguatan sinyal seringkali dinyataklan dalam besaran deci Bell, yang didefinisikan sebagai:
amp_dB = 10 log(output/input)
Dalam domain waktu, bentuk sinyal asli dan setelah mengalami penguatan adalah seperti gambar 3.2.

Gambar 3.2. Penguatan Sinyal

Pelemahan Sinyal
Apabila sebuah sinyal dilewatkan suatu medium seringkali mengalami berbagai perlakuan dari medium (kanal) yang dilaluinya. Ada satu mekanisme dimana sinyal yang melewati suatu medium mengalami pelemahan energi yang selanjutnya dikenal sebagai atenuasi (pelemahan atau redaman) sinyal.

Bentuk diagram blok dari sebuah operasi pernguatan sinyal dapat diberikan pada gambar 3.3 berikut ini.


Gambar 3.3 Operasi Pelemahan Suatu Sinyal

Dalam bentuk operasi matematik sebagai pendekatannya, peristiwa ini dapat diberikan sebagai berikut:

y(t) = att x(t)

Dalam hal ini nilai att < 1, yang merupakan konstanta pelemahan yang terjadi. Kejadian ini sering muncul pada sistem transmisi, dan munculnya konstanta pelemahan ini dihasilkan oleh berbagai proses yang cukup komplek dalam suatu media transmisi.

 Gambar 3.4. Pelemahan Sinyal

Dari gambar tersebut dapat dilihat bahwa proses penguatan dan pelemahan sinyal merupakan dua hal yang hampir sama. Dalam pengatan sinyal amplitudo sinyal output lebih tinggi disbanding sinyal input, sementara pada pelemahan sinyal amplitudo sinyal output lebih rendah disbanding sinyal input. Tetapi pada kedua proses operasi ini bentuk dasar sinyal tidak mengalami perubahan.

Penguatan Terkontrol pada Sinyal
Jika terpat beberapa sinyal yang akan dibandingkan untuk keperluan identifkasi, haruslah mempunyai amplitudo yang sama. Salah satu cara untuk menyamakan amplitudo adalah dengan menggunakan penguatan terkontrol (AGC: automatic gain control), dengan ide dasar sebagai berikut:
Sehingga sinyal yang baru adalah:

Dengan demikian semua sinyal akan mempunyai amplitudo yang sama, sesuai dengan nilai ”amp”

Penjumlahan Dua Buah Sinyal
Proses penjumlahan sinyal seringkali terjadi pada peristiwa transmisi sinyal melalui suatu medium. Sinyal yang dikirimkan oleh pemancar setelah melewati medium tertentu misalnya udara akan mendapat pengaruh kanal, dapat menaikkan level tegangan atau menurunkan level tegangannya tergantung komponen yang dijumlahkan. Sehingga pada bagian penerima akan mendapatkan sinyal sebagai hasil jumlahan sinyal asli dari pemancar dengan sinyal yang terdapat pada kanal tersebut.


Gambar 3.5. Diagram Blok Operasi Penjumlahan Dua Sinyal.

Secara matematis dapat diberikan sebagai berikut:

y(t) = x1(t) + x2(t)

Dalam hal ini, setiap komponen sinyal pertama dijumlahkan dengan komponen sinyal kedua.
Gambar 3.6. Contoh Penjumlahan pada Sinyal Sinus
(a) Sinyal Masuk 1
(b) Sinyal Masuk 2
(c) Sinyal Hasil Penjumlahan

Perkalian Dua Buah Sinyal
Perkalian merupakan bentuk operasi yang sering anda jumpai dalam kondisi real. Pada rangkaian mixer, rangkaian product modulator dan frequency multiplier, operasi perkalian merupakan bentuk standar yang seringkali dijumpai. Bentuk diagram blok operasi perkalian dua buah sinyal dapat diberikan seperti pada Gambar 7 berikut.


Gambar 3.7. Diagram blok operasi perkalian dua sinyal.

3.2. Peralatan
Satu buah PC multimedia OS Windows yang telah diinstall dengan perangkat lunak Matlab.

3.3. Langkah Percobaan
Dalam percobaan ini, mahasiswa harus melakukan langkah-langkah sesuai petnjuk di bawah. Langkah-langkah tersebut harus dibuktikan dalam laporan dengan cara melampirkan PrtScr yang telah di crop untuk penyajian yang lebih bagus dalam laporan. Jawab setiap pertanyaan dalam langkah-langkah percobaan !.

3.3. 1. Penguatan Sinyal

1. Bangkitkan gelombang pertama dengan langkah berikut:

%------------------------------------------------------------
% Nama File : Penguatan_Sinyal.m
% Oleh          :
%------------------------------------------------------------
 T=100;
t=0:1/T:2;
f1=1;
y1=sin(2*pi*t);
subplot(2,1,1)
plot(t,y1)

2. Lanjutkan dengan langkah berikut ini

a=input('nilai pengali yang anda gunakan (> 0): ');
y1_kuat=a*sin(2*pi*t);
subplot(2,1,2)
plot(t,y1_kuat)

Jangan lupa anda masukkan sebuah nilai untuk ‘a’, misalnya 1.5 atau yang lain. Apa yang anda dapatkan? Apa perbedaan dari kedua gambar sinyal tersebut? Nilai penguatan sinyal juga seringkali dituliskan dalam dBell (dB), untuk penguatan 1.5 kali berapa nilainya dalam dB?
3. Ulangi langkah 1 dan 2, tetapi dengan nilai a berbeda misalnya 1.7, 2.5, 3.0 atau yang lain. Dan jangan lupa anda simpan gambarnya dan buatlah analisa dari apa yang anda amati dari gambar tersebut? Jangan lupa dalam setiap penggambaran anda cantumkan nilai dB setiap percobaan.

3.3.2 Pelemahan Sinyal
Seperti yang kita ketahui bahwa pelemahan merupakan penguatan negatif, atau dalam hal ini konstanta penguatan bernilai <1. Berdasar pemahaman ini coba anda susun sebuah program pelemahan sinyal dengan memanfaatkan contoh program yang sudha anda buat pada langkah 4.1.

3.3.3 Mengubah Amplitudo Maksimum Menjadi Satu Satuan
Mintalah kepada isntruktur sebuah soft copy sinyal dalam format wav, dan beri nama JantungNormal.wav. Kopikan pada work dari Matlab komputer yang digunakan. Kemudian tulis program demikian:
%------------------------------------------------------------
% Nama File : Amplitudo_Sinyal_Satuan.m
% Oleh          :
%------------------------------------------------------------
 B=wavread('JantungNormal.wav');
AGC=max(B);
                A=B/AGC;
subplot(2,1,1);
plot(B);set(gca,'color',[1 .2 .2]);%grid on;
subplot(2,1,2);
plot(A);set(gca,'color',[.2 1 .2]);%grid on;

3.3.4 Penjumlahan Dua Sinyal
Dua buah sinyal dapat dijumlahkan jika mempunyai dimensi matrik yang sama. Untuk mengetahui dimensi matrik, gunakan perintah:
 length (nama_sinyal)   % tekan Enter
dalam command window, maka akan ditampilkan panjang matrik. Dengan mengacu pada penjelasan yang ada di dasar teori bab 2, operasi penjumlahan dua buah sinyal dapat dilakukan dengan mengikuti langkah-langkah berikut ini.

1. Buat sebuah program baru dengan perintah:

%------------------------------------------------------------
% Nama File : Penjumlahan_Dua_Sinyal.m
% Oleh          :
%------------------------------------------------------------
T=100;
t=0:1/T:2;
f1=1;
y1=sin(2*pi*t);
subplot(3,1,1)
plot(t,y1)

2. Bangkitkan gelombang kedua dengan langkah tambahan berikut ini:

f2=2;
pha2=pi/2;
y2=sin(2*pi*t+pi);
subplot(3,1,2)
plot(t,y2)

3. Lakukan proses penjumlahan pada kedua sinyal y1 dan y2 di atas. Selengkapnya bentuk programnya adalah seperti berikut:

T=100;
t=0:1/T:2;
                f1=1;
f2=2;
pha2=pi/2;
y1=sin(f1*pi*t);
subplot(3,1,1)
plot(t,y1)
y2=sin(f2*pi*t+ pha2);
subplot(3,1,2)
plot(t,y2)
y3=y1+y2;
subplot(3,1,3)
plot(t,y3)

5.  Coba anda rubah nilai f2menjadi 3, 4, 5,……10. Perhatikan apa yang terjadi dan catat hasilnya.

6. Lakukan perubahan pada pha2 sehingga nilainya menjadi 0.1*pi, 0.25*pi, 0.5*pi, dan 1.5*pi. Apa yang anda dapatkan dari langkah ini?

3.3.5 Perkalian Dua Sinyal
Seperti pada penjumlahan dua sinyal, perkalian dua sinyal juga harus mempunyai panjang matrik yang sama. Pada program di bawah yang menentukan panjang glombang adalah T dan t. Dimulai dengan membangkitkan dua buah sinyal sinus, kemudian langkah yang harus dilakukan adalah seperti berikut:

  1. Kita mulai membangkitkan seebuah gelombang sinus. Pertama dibangkitkan gelombang dengan langkah berikut:
 %------------------------------------------------------------
% Nama File : Perkalian_Dua_Sinyal.m
% Oleh          :
%------------------------------------------------------------
T=100;
t=0:1/T:2;
f1=1;
y1=sin(2*pi*t);
subplot(3,1,1)
plot(t,y1)

2. Bangkitkan gelombang kedua dengan langkah tambahan berikut ini:

f2=2;
pha2=pi/2;
y2=sin(2*pi*t+pi);
subplot(3,1,2)
plot(t,y2)

3. Lakukan proses perkalian pada kedua sinyal y1 dan y2 diatas. Selengkapnya bentuk programbya adalah seperti berikut:

T=100;
t=0:1/T:2;
f1=1;
f2=2;
pha2=pi/2;
y1=sin(f1*pi*t);
subplot(3,1,1)
plot(t,y1)
y2=sin(f2*pi*t+ pha2);
subplot(3,1,2)
plot(t,y2)
y3=y1.*y2;
subplot(3,1,3)
plot(t,y3)

4. Coba anda rubah nilai f2menjadi 3, 4, 5,……10. Apa yang terjadi dan catat hasilnya.

5. Lakukan perubahan pada pha2 sehingga nilainya menjadi 0.1*pi, 0.25*pi, dan 1.5*pi. Apa yang anda dapatkan dari langkah ini?

3.3.6 Penambahan Noise Gaussian pada Sinyal Audio
Mungkin anda sudah bosan melakukan aktifitas dengan sesuatu yang serba ideal teoritis dan serba serius. Sekaranglah saatnya anda belajar sambil bermain. Tentu saja, dalam hal  ini PC tempat anda bekerja harus dilengkapi dengan perangkat multimedia, minimal sound card lengkap dengan speaker active.


Gambar 3.8. Operasi penjumlahan sinyal audio *.wav dengan noise

Baiklah, kita mulai dengan memanggil sebuah file audio3.wav. Kalau dalam folder dimana anda sekarang bekerja tidak ada file ini, cobalah tanyakan ke dosen yang bersangkutan, atau kalau anda ingin dikatakan sebagai orang yang kreatif, coba anda carai file *.wav apa saja yang ada di PC anda, copykan ke folder dimana Matlab anda bekerja.

  1. Untuk contoh kasus ini ikuti langkah pertama dengan membuat file Noise_Gausian.m, seperti berikut.
%------------------------------------------------------------
% Nama File : Noise_Gausian.m
% Oleh          :
%------------------------------------------------------------
 y1=wavread('audio3.wav');
Fs=8192;
Fs1 = Fs;
wavplay(y1,Fs1,'sync')     % Sinyal asli dimainkan

  1. Tambahkan perintah berikut ini setelah langkah satu di atas.
N=length(y1);                    %menghitung dimensi file wav
var = 0.1;
noise_1=var*randn(N,1);  %membangkitkan noise Gaussian
y_1n=y1 + noise_1;          %menambahkan noise ke file
wavplay(y_1n,Fs1,'sync') % Sinyal bernoise dimainkan

3. Apakah anda melihat ada sesuatu yang baru dengan langkah anda?
Coba anda lakukan sekali lagi pangkah 2 dengan nilai var 0.2, 0.3, 0.5, dst. Coba amati apa yang terjadi?

4. Cobalah untuk menampilkan file audio yang telah anda panggil dalam bentuk grafik sebagai fungsi waktu, baik untuk sinyal asli atau setelah penambahan noise.

3.3.7 Proses Penguatan pada Sinyal Audio
Sekarang kita lanjutkan permainan kita dengan file *.wav. Dalam hal ini kita lakukan penguatan atau pelemahan sinyal audio yang telah kita panggil. Langkah yang kita lakukan adalah seperti berikut.

1. Buatlah program untuk membangkitkan sebuah sinyal audio dan simpan dalam format ”wav” pada WORK dari MATLAB. Lanjutkan dengan membuat sebuah program dengan nama: Penguatan.m seperti berikut

%------------------------------------------------------------
% Nama File : Penguatan.m
% Oleh          :
%------------------------------------------------------------
y1=wavread('audio3.wav');    % Membaca sinyal audio
Fs=8192;
wavplay(y1,Fs,'async')          % Memainkan audio sinyal asli

2. Lakukan penambahan perintah seperti dibawah ini

amp =1.5;
y2=amp*y1;
wavplay(y1,Fs,'async')   % Memainkan audio

3. Apakah anda mengamati sesuatu yang baru pada sinyal audio anda? Kalau belum juga memahami coba rubah nilai amp = 0.1, 0.2, 0.5, dst sampai nilainya 2.0.
4. Cobalah untuk menampilkan file audio yang telah anda panggil dalam bentuk grafik sebagai fungsi waktu, baik untuk sinyal asli atau setelah penguatan dan pelemahan.

3.3.8 Memanggil Sinyal Audio
Pertama harus disiapkan sinyal audio yang akan dipanggil dalam format “wav”. Misalnya beri nama sinyal tersebut dengan  nama “AsthmaWheeze.wav” dan “JantungNormal.wav”, kemudian simpan dalam work dari Matlab. Kemudian buat program sebagai berikut:
 
%------------------------------------------------------------
% Nama File : Memanggil_Sinyal_Audio.m
% Oleh          :
%------------------------------------------------------------
A=wavread('AsthmaWheeze.wav');
B=wavread('JantungNormal.wav');
t=length(A);
A=A(1:1:29400);
B=B(1:1:29400);
Fs=16000;
nfft = 256;
C=A+B';
subplot(3,1,1);
plot(R,'y','Linewidth',2);set(gca,'color',[1 .2 .2]);
%grid on;
subplot(3,1,2);
plot(S,'y','Linewidth',2);set(gca,'color',[.2 1 .2]);
subplot(3,1,3);
plot(T,'y','Linewidth',2);set(gca,'color',[.2 .7 .1]);

Hailnya seperti ditunjukkan pada gambar 3.9

 
Gambar 3.9 Suara dan JantungNormal, AsthmaWheeze dan Penjumlahannya

3.4. Data dan Analisis
Anda telah melakukan berbagai langkah untuk percobaan operasi dasar sinyal. Yang harus anda lakukan adalah menjawab setiap pertanyaan yang ada pada langkah percobaan. Kemudia lanjutkan dengan mengerjakan tugas berikut ini.

3.5. Tugas
1. Buat program dari penjumlahan tiga buah sinyal sinusoida dengan frekuensi masing-masing: f1= 100 Hz, f2= 1 kHz, dan f3= 5 kHz. Tampilkan masing-masing gelombang dan hasil penjumlahan dalam bentuk grafis dalam satu halaman.
2. Buat program yang digunakan untuk memanggil sebuah gambar dan hasilnya tampilkan dalam sebuah frame secara tepat.