Anda di halaman 1dari 17

BAB IV

PENGOLAHAN SINYAL DIGITAL PADA CITRA

1.1. Tujuan
a. Memahami prnsip keunaan filter adaptif
b. Memahami cara kerja filter dalam menghilangkan noise
c. Mengetahui cara membersihkan sinyal yang bercampur derau
d. Mengetahui cara mencampurkan sinyal

1.2. Landasan Teori

Filter merupakan suatu sistem yang mempunyai fungsi transfer tertentu untuk
meloloskan sinyal masukan pada frekuensi - frekuensi tertentu dan menyaring /
memblokir / melemahkan sinyal masuka n pada frekuensi-frekuensi yang lain.
Filter diklasifikasikan :
a. Filter analog dan Filter digital
Filter analog : sinyal masukan berupa sinyal analog, pada filter analog dapat
dibagi menjadi dua yaitu:
- Filter pasif : filter yang hanya disusun komponen tahanan, induktor dan
kapasitor
- Filter aktif : filter yang disusun komponen op amp atau transistor
ditambah tahanan, induktor, dan kapasitor

b. Filter digital : sinyal masukan berupa sinyal diskrit, dibedakan menjadi dua
yaitu:
- Fixed Filter
- Adaptive Filter
Dua jenis Aloritma adaptif: Least mean Square(LMS) dan Recursive
least Square (RLS). LMS aloritma didasarkan pada pencarian gradien
tipe untuk melacak karakterstik sinyal waktu bervariasi. Algoritma RLS
menyediakan konvergensi yang lebih cepat dan pelacakan yang lebih
baik dari statistik sinyal varian waktu dari LMS aloritma, tetapi
komputsi yang lebih kompleks.
Berdasarkan respon impuls, filter digital terbagi menjadi:
- FIR (Finite Impulse Response)
- IIR (Infinite Impulse Response )

Algoritma Adaptif Filter


Merubah nilai – nilai koefisien berdasarkan input. Dua jenis algoritma
adaptif: Least mean Square (LMS) dan Recursive least Square (RLS). LMS
algoritma didasarkan pada pencarian gradien tipe untuk melacak
karakteristik sinyal waktu bervariasi. Algoritma RLS menyediakan
konvergensi yang lebih cepat dan pelacakan yang lebih baik dari statistic
sinyal varian waktu-dari LMS algoritma, tetapi komputasi yang lebih
kompleks.

1.3. Alat dan Bahan


1. Software Matlab R2014a
2. Software Wave Surfer
3. 2 Buah Sample Suara
- Suara tanpa noise
- Suara noise

1.4. Prosedur Percobaan


a. Membuat Rekaman Suara Asli
1. Lakukan standarisasi microphone dengan menggunakan Realtek HD
Audio Manager (CD quality)
2. Rekam suara menggunakan software wavesurfer
3. Lakukan PCM dengan software tersebut sesuai variasi jurnal
4. Hitung daya sinyal dengan menggunakan kode program berikut
[x,fs,nbits] = wavread(‘nama file suara’); daya = mean(x^2,1);
5. Lampirkan bentuk sinyal pada jurnal (print screen)
6. Lampirkan perhitungan kapasitas secara manual dengan rumus: Bitrate
= sample rate*sample encoding kapasitas = bitrate*durasi

b. Menggabungkan sinyal asli dengan noise


1. Siapkan file Sinyal asli dan file sinyal noise
2. Bukan aplikasi matlab
3. Ketikkan scrift bawah ini:
snrdb=10;
snr=10^(snrdb/10);

[suara,fs,nbits]=wavread('flicker.wav');
maxsuara=max([abs(max(suara)) abs(min(suara))] );
suaranorm=(1/maxsuara).*suara;
maxsuaranorm=max([abs(max(suaranorm)) abs(min(suaranorm))]);
px=0.5*mean(suaranorm.^2,1);

[noise,fs,nbits]=wavread('bismillah.wav')
maxNoise = max([abs(max(noise)) abs(min(noise))] );;
noisenorm = (1/maxNoise).*noise;
maxNoisenorm = max([abs(max(noisenorm)) abs(min(noisenorm))]);
pn1=0.5*mean(noisenorm.^2,1);

x=sqrt(px/(pn1*snr));
noiseData = x.*noisenorm;
suarapnoise=suaranorm + noiseData;
maxsuarapnoise = max([abs(max(suarapnoise))
abs(min(suarapnoise))] );
pn2=0.5*mean(noiseData.^2,1);
snr2=(px/pn2);
snrdb2=10*log10(px/pn2);

%suarapnoise=awgn(suara,snr,'measured');
suarapnoisen=awgn(suarapnoise,0.99);
maxsuarapnoisen = max([abs(max(suarapnoisen))
abs(min(suarapnoisen))]);
wavwrite(suarapnoisen,fs,nbits,'suara_23_mobil_10dB.wav')

daya_suara_bersih = px;
daya_suara_noisy = 0.5*mean(suarapnoise.^2,1);
daya_noise= 0.5*mean(noiseData.^2,1);
daya_suara_noisy_norm = 0.5*mean(suarapnoisen.^2,1);
subplot(3,1,1); plot(suara);
subplot(3,1,2); plot(filen);
subplot(3,1,3); plot(suarapnoisen);
sound(suarapnoisen,fs)
%menghasilkan suara bersih dan noise

4. Variasikan nilai SNR sesuai dengan jurnal

c. Proses Filter
1. Normalized LMS
a. Buka aplikasi matlab
b. Ketikkan scrift dibawah ini:
% filter normalized LMS
[x,fs,nbits] = wavread('suara_23_mobil_10dB');
[z,fs,nbits] = wavread('flicker.wav');

d = z(1:size(x))
nord1 = 20
beta = 0.8
a0 = 0

X=convmtx(x,nord1)
[M,N] = size(X)
% a0 = a0(:).';
y(1) = a0*X(1).';
E(1) = d(1) - y(1);
DEN=X(1,:)*X(1,:)' + 0.0001
A(1,:) = a0 + beta/DEN*E(1)*conj(X(1,:))
if M>1
for k=2:M-nord1+1;
y(k) = A(k-1,:)*X(k,:).'
E(k) = d(k) - y(k)
DEN=X(k,:)*X(k,:)' + 0.0001
A(k,:) = A(k-1,:) + beta/DEN*E(k)*conj(X(k,:))
end
end
daya_noisyfilter = 0.5*mean(x.^2,1)
daya_hslfilter = 0.5*mean(y.^2,2)

subplot (3,1,1), plot(d)


subplot (3,1,2), plot(x)
subplot (3,1,3), plot(y)

wavwrite(y,'Hasil_filter_NormalizedLMS_10dB.wav')
c. Variasi nilai orde dan β sesuai jurnal
1.5. Hasil dan Analisa
a. Membuat rekaman suara asli.
1. Variasi Sample Rate (Frekuensi Sampling)
Hasil
Kapasitas
Sample Sample Perhitungan
Durasi Daya Penyimpanan
Rate Encoding kapasitas
(kb)
8000 Line 32 6s 0.017 396 1536000
16000 3s 0.0078 484 1536000
44100 2s 0.6416 990 2822400

 Variasi sinyal sampel sate 8000 Line 32

 Script program sinyal sampel rate 8000 Line 32


 Variasi sinyal sampel sate 16000 Line 32

 Script program sinyal sampel sate 16000 Line 32


 Variasi sinyal sampel sate 44100 Line 32

 Script program sinyal sampel sate 44100 Line 32


d. Tabel Observasi variasi bit
Kapasitas Hasil
Sample Sample Durasi
Daya Penyimpanan Perhitungan
Rate Encoding (s)
(kb) Kapasitas
44100 Line 8 1 0.6416 148 352800
Line 16 3 0.182 516 2116800
Line 32 2 0.101 807 2822400

 Variasi sinyal sampel sate 44100 Line 8

 Variasi sinyal sampel sate 44100 Line 8


 Variasi sinyal sampel sate 44100 Line 16

 Variasi sinyal sampel sate 44100 Line 16


 Variasi sinyal sampel sate 44100 Line 32

 Variasi sinyal sampel sate 44100 Line 32


b. Menggabungkan sinyal asli dengan noise
1. Tabel Observasi penggabungan sinyal
No SNR Daya Kapasitas
1 0 0.434 1.09
2 5 0.434 1.09
3 10 0.434 1.09

 Script program SNR = 0

 Sinyal SNR = 0
 Script program SNR = 5

 Sinyal SNR = 0
 Script program SNR = 10

 Script program SNR = 10


c. Proses Filter
 Script Program Algoritma LMS

% filter LMS
% filter LMS

[x,nbits] = wavread('suara_23_mobil_10dB');
[d,nbits] = wavread ('bismillah.wav');

nord1 =10;
mu = 0.1;
a0 = 0;
% d = wavread(sourceSLCFile);
X=convmtx(x,nord1);
[M,N] = size(X);

% a0 = a0(:).';
y(1) = a0*X(1).';
E(1) = d(1) - y(1);
A(1,:) = a0 + mu*E(1)*conj(X(1,:));
if M>1
for k=2:M-nord1+1;
y(k) = A(k-1,:)*X(k,:).';
E(k) = d(k) - y(k);
A(k,:) = A(k-1,:) + mu*E(k)*conj(X(k,:));
end;
end;
S_bn = d(1:size(x))-x;
nr= size (S_bn);
sum_S =0.0;
for i=1:nr
sum_S= abs (S_bn(i))+ sum_S;
end
S_bf = d(1:size(y))-y.';
nf= size (S_bf);
sum_F = 0.0;
for i=1:nf
sum_F= abs (S_bf(i))+ sum_F;
end
Pd = mean (d.^2); %d = daya sinyal bersih
Px = mean (x.^2); % rusak
Py = mean (y.^2); % hasil filter

subplot (3,1,1), plot(d)


subplot (3,1,2), plot(x)
subplot (3,1,3), plot(y)
 Script program normalized LMS

% filter normalized LMS


[x,fs,nbits] = wavread('suara_23_mobil_10dB');
[z,fs,nbits] = wavread('bismillah.wav');

d = z(1:size(x))
nord1 = 20
beta = 0.8
a0 = 0

X=convmtx(x,nord1)
[M,N] = size(X)
% a0 = a0(:).';
y(1) = a0*X(1).';
E(1) = d(1) - y(1);
DEN=X(1,:)*X(1,:)' + 0.0001
A(1,:) = a0 + beta/DEN*E(1)*conj(X(1,:))
if M>1
for k=2:M-nord1+1;
y(k) = A(k-1,:)*X(k,:).'
E(k) = d(k) - y(k)
DEN=X(k,:)*X(k,:)' + 0.0001
A(k,:) = A(k-1,:) + beta/DEN*E(k)*conj(X(k,:))
end
end
daya_noisyfilter = 0.5*mean(x.^2,1)
daya_hslfilter = 0.5*mean(y.^2,2)

subplot (3,1,1), plot(d)


subplot (3,1,2), plot(x)
subplot (3,1,3), plot(y)

wavwrite(y,'Hasil_filter_NormalizedLMS_10dB.wav')

Anda mungkin juga menyukai