You are on page 1of 32

Izvještaj LV4 - Konvolucija i filtriranje

diskretnih signala

Luka Fajdetić, PE-LV3


Preddiplomski studij elektrotehnike, smjer EE
09. svibnja 2022.

U ovoj smo se vježbi upoznali s konvolucijom te filtriranjem diskretnih signala.


Vidjeli smo kako je konvolucjia izuzetno važna operacija u području obrade i
analize signala. Proučavali smo konvoluciju 1D i 2D signala.

Priprema:
U Command Windowu kreirani su zadani signali. Pored svakog podzadatka
(a),b),c),…) nalaze se pripadne naredbe potrebne za određivanje zadane
konvolucije (za konvoluciju korištena je naredba conv).

Slika 1: Naredbe u Command Windowu


a)
Slika 2: Rješenje podzadatka a)
Slika 3: Konvolucija signala, podzadatak a)
b)
Slika 4: Rješenje podzadatka b)
Slika 5: Konvolucija signala, podzadatak b)
c)
Slika 6: Rješenje podzadatka c)
Slika 7: Konvolucija signala, podzadatak c)
d)
Slika 8: Rješenje podzadatka d)
Slika 9: Konvolucija signala, podzadatak d)
e)
Slika 10: Rješenje podzadatka e)
Slika 11: Konvolucija signala, podzadatak e)
f)
Slika 11: Rješenje podzadatka f)
Slika 13: Konvolucija signala, podzadatak f)
g)
Slika 14: Rješenje podzadatka g)
Slika 14: Konvolucija signala, podzadatak g)
KOD SKRIPTE:
k1=(1/9)*[1 1 1; 1 1 1; 1 1 1];
k2=[-1 -1 -1; -1 8 -1; -1 -1 -1];
k3=(1/256)*[1 4 6 4 1; 4 16 24 16 4; 6 24 36 24 6; 4
16 24 16 4; 1 4 6 4 1];
k4=[0 -0.5 0; -0.5 3 -0.5; 0 -0.5 0];
f=im2double(imread('lenna.bmp'));
f_gray=rgb2gray(f);

figure
subplot(2,3,1)
imshow(f_gray)
title('Orginal,Luka Fajdetić')
img=conv2(f_gray,k1);
subplot(2,3,2)
imshow(img)
title('Konv. kernelom k1')
imwrite(img, 'Slika1.jpg')
img=conv2(f_gray,k2);
subplot(2,3,3)
imshow(img)
title('Konv. kernelom k2')
imwrite(img, 'Slika2.jpg')
img=conv2(f_gray,k3);
subplot(2,3,5)
imshow(img)
title('Konv. kernelom k3')
imwrite(img, 'Slika3.jpg')
img=conv2(f_gray,k4);
subplot(2,3,6)
imshow(img)
title('Konv. kernelom k4')
imwrite(img, 'Slika4.jpg')

Naredbom imread učitali smo dobivenu sliku lenna.bmp, naredbom conv2


obavili smo konvoluciju učitane slike i kreiranih kernela. Slike smo prikazali
naredbom imshow, dodali smo naslove naredbom title, te smo ih spremili na
računalo naredbom imwrite (kojoj smo kao parametre predali sliku koju
spremamo te ime slike zajedno s formatom u kojemu spremamo). Slika je
spremljena u folder koji nam je bio otvoren u MATLAB-u.
Slika 15: Utjecaj pojedinog kernela na originalnu sliku

Na slici 15 možemo vidjeti kako pojedini kernel utječe na našu originalnu sliku.
Kernelom k2 napravljen je tzv. Edge detection, tj. na slici vidimo obrise, dok je
kernel k4 našu originalnu sliku izoštrio (eng. sharpening). Korištenjem kernela
k1 (mean filter) i k3 dobili smo efekt zamagljivanja (eng. blurring).
1. Vremenska domena
Slika 17: Apliciranje filtera sa impulsnim odzivom [0.5 0.5 0.5] na signal

U odnosu na original, zvuk nakon apliciranja zadanog filtera postao je „čišći“,


kao da ima manje šumova, tj. smetnji.
2.
Slika 18: Apliciranje filtera sa impulsnim odzivom [1 -1] na signal

Čujemo šum u pozadini, no izgovorene riječi i dalje su jasne i razumljive.


3.
Slika 19: Apliciranje filtera sa impulsnim odzivom [1 -2 2.5 -2 1] na signal

Zvuk je dosta tiši, no govor je i dalje razumljiv.


1. Frekvencijska domena
Slika 20: Apliciranje nisko-propusnog filtera na signal
Zvuk je prigušen, izgovorene riječi su jasne i razumljive.
2.
Slika 21: Apliciranje visoko-propusnog filtera na signal
Zvuk je glasniji, govor je jasan i razumljiv.

Izvještaj

Zadatak 1
Ovaj zadatak bazira se na zadatku 2 iz vježbe. Potrebno je na sve tri slike
koje se nalaze u materijalima za vježbu primijeniti konvoluciju sa
kernelima sa
https://en.wikipedia.org/wiki/Kernel_(image_processing)#Details
1) Slika 'lenna.bmp'
Kod:
k1=[0 0 0; 0 1 0; 0 0 0];
k2=[1 0 -1; 0 0 0; -1 0 1];
k3=[0 -1 0; -1 4 -1; 0 -1 0];
k4=[-1 -1 -1; -1 8 -1; -1 -1 -1];
k5=[0 -1 0; -1 5 -1; 0 -1 0];
k6=(1/9)*[1 1 1; 1 1 1; 1 1 1];
k7=(1/16)*[1 2 1; 2 4 2; 1 2 1];
k8=(1/256)*[1 4 6 4 1; 4 16 24 16 4; 6 24 36 24 6; 4
16 24 16 4; 1 4 6 4 1];
k9=(-1/256)*[1 4 6 4 1; 4 16 24 16 4; 6 24 -476 24 6;
4 16 24 16 4; 1 4 6 4 1];

f=im2double(imread('lenna.bmp'));
img=rgb2gray(f);

figure
subplot(3,4,1)
imshow(img)
title('Orginal, Luka F.')

img1=conv2(img, k1);
subplot(3,4,2)
imshow(img1)
title('Konv. kern. k1')

img2=conv2(img, k2);
subplot(3,4,3)
imshow(img2)
title('Konv. kern. k2')

img3=conv2(img, k3);
subplot(3,4,4)
imshow(img3)
title('Konv. kern. k3')

img4=conv2(img, k4);
subplot(3,4,6)
imshow(img4)
title('Konv. kern. k4')

img5=conv2(img, k5);
subplot(3,4,7)
imshow(img5)
title('Konv. kern. k5')

img6=conv2(img, k6);
subplot(3,4,8)
imshow(img6)
title('Konv. kern. k6')

img7=conv2(img, k7);
subplot(3,4,10)
imshow(img7)
title('Konv. kern. k7')

img8=conv2(img, k8);
subplot(3,4,11)
imshow(img8)
title('Konv. kern. k8')

img9=conv2(img, k9);
subplot(3,4,12)
imshow(img9)
title('Konv. kern. k9')
Slika 22: Konvolucije slike lenna.bmp s pojedinim kernelima
2) Slika 'boats.bmp'
k1=[0 0 0; 0 1 0; 0 0 0];
k2=[1 0 -1; 0 0 0; -1 0 1];
k3=[0 -1 0; -1 4 -1; 0 -1 0];
k4=[-1 -1 -1; -1 8 -1; -1 -1 -1];
k5=[0 -1 0; -1 5 -1; 0 -1 0];
k6=(1/9)*[1 1 1; 1 1 1; 1 1 1];
k7=(1/16)*[1 2 1; 2 4 2; 1 2 1];
k8=(1/256)*[1 4 6 4 1; 4 16 24 16 4; 6 24 36 24 6; 4
16 24 16 4; 1 4 6 4 1];
k9=(-1/256)*[1 4 6 4 1; 4 16 24 16 4; 6 24 -476 24 6;
4 16 24 16 4; 1 4 6 4 1];

f=im2double(imread('boats.bmp'));

figure
subplot(3,4,1)
imshow(f)
title('Orginal, Luka F.')

img1=conv2(f, k1);
subplot(3,4,2)
imshow(img1)
title('Konv. kern. k1')
img2=conv2(f, k2);
subplot(3,4,3)
imshow(img2)
title('Konv. kern. k2')

img3=conv2(f, k3);
subplot(3,4,4)
imshow(img3)
title('Konv. kern. k3')

img4=conv2(f, k4);
subplot(3,4,6)
imshow(img4)
title('Konv. kern. k4')

img5=conv2(f, k5);
subplot(3,4,7)
imshow(img5)
title('Konv. kern. k5')

img6=conv2(f, k6);
subplot(3,4,8)
imshow(img6)
title('Konv. kern. k6')

img7=conv2(f, k7);
subplot(3,4,10)
imshow(img7)
title('Konv. kern. k7')

img8=conv2(f, k8);
subplot(3,4,11)
imshow(img8)
title('Konv. kern. k8')

img9=conv2(f, k9);
subplot(3,4,12)
imshow(img9)
title('Konv. kern. k9')
Slika 23: Konvolucije slike boats.bmp s pojedinim kernelima

3) Slika 'barbara.jpg'
k1=[0 0 0; 0 1 0; 0 0 0];
k2=[1 0 -1; 0 0 0; -1 0 1];
k3=[0 -1 0; -1 4 -1; 0 -1 0];
k4=[-1 -1 -1; -1 8 -1; -1 -1 -1];
k5=[0 -1 0; -1 5 -1; 0 -1 0];
k6=(1/9)*[1 1 1; 1 1 1; 1 1 1];
k7=(1/16)*[1 2 1; 2 4 2; 1 2 1];
k8=(1/256)*[1 4 6 4 1; 4 16 24 16 4; 6 24 36 24 6; 4 16 24 16 4; 1 4 6 4
1];
k9=(-1/256)*[1 4 6 4 1; 4 16 24 16 4; 6 24 -476 24 6; 4 16 24 16 4; 1 4
6 4 1];

f=im2double(imread('barbara.jpg'));

figure
subplot(3,4,1)
imshow(f)
title('Orginal, Luka F.')

img1=conv2(f, k1);
subplot(3,4,2)
imshow(img1)
title('Konv. kern. k1')

img2=conv2(f, k2);
subplot(3,4,3)
imshow(img2)
title('Konv. kern. k2')
img3=conv2(f, k3);
subplot(3,4,4)
imshow(img3)
title('Konv. kern. k3')

img4=conv2(f, k4);
subplot(3,4,6)
imshow(img4)
title('Konv. kern. k4')

img5=conv2(f, k5);
subplot(3,4,7)
imshow(img5)
title('Konv. kern. k5')

img6=conv2(f, k6);
subplot(3,4,8)
imshow(img6)
title('Konv. kern. k6')

img7=conv2(f, k7);
subplot(3,4,10)
imshow(img7)
title('Konv. kern. k7')

img8=conv2(f, k8);
subplot(3,4,11)
imshow(img8)
title('Konv. kern. k8')

img9=conv2(f, k9);
subplot(3,4,12)
imshow(img9)
title('Konv. kern. k9')
Slika 24: Konvolucije slike barbara.jpg s pojedinim kernelima

You might also like