Академический Документы
Профессиональный Документы
Культура Документы
FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA ELCTRICA
Tarea #1
Alumnos:
Diego Alonso Jara Crdenas
Jorge Alejandro vila Morales
INDICE
Anexo..Pg. 22
4
Ejercicio 1: Histograma.
y { k }=[11 12 2 22 3 3 33 3 4 4 4 5 5 55 5 6 7 7 8 8 8 8 9 10 12]
Por ende:
N
Hist ( k )= k ,Y (i) , k =0,1, , M 1 (1.2)
i=1
Hist(0) = 0
Hist(1) = 3
Hist(2) = 4
Hist(3) = 5
Hist(4) = 3
5
Hist(5) = 5
Hist(6) = 1
Hist(7) = 2
Hist(8) = 4
Hist(9) = 1
Hist(10) = 1
Hist(11) = 0
Hist(12) = 1
HistA(0) = 0
HistA(1) = 3
HistA(2) = 7
HistA(3) = 12
HistA(4) = 15
HistA(5) = 20
HistA(6) = 21
HistA(7) = 23
HistA(8) = 27
HistA(9) = 28
HistA(10) = 29
6
HistA(11) = 29
HistA(12) = 30
Luego la grfica correspondiente al Histograma Acumulativo es:
h (5 ) 1
P ( 5 )= p (5)= .
30 6
Para determinar la probabilidad de encontrar un valor que sea mayor a 3 y menor o igual a 6, se debe
analizar el grafico de la figura A.1.3. en el cual se sabe que:
HistA ( 6 )HistA ( 3 ) 9
P (3< x 6 )= P ( 3< x 6 )= .
30 30
7
Ejercicio 2: Convolucin.
a) Calcule y dibuje la convolucin h{k} = y{k}*f{k} entre la secuencia y{k} y la secuencia: f{k}
= { 1, 1, 1 }, que comienza en k=0. Utilice el comando conv de MATLAB. Grafique tambin las
seales de entrada (y{k} y f{k}). Cul es el efecto de este filtro?
Utilizando el comando conv de MATLAB, logramos obtener la convolucin entre y{k} y f{k}, con
el resultado:
h { k } ={5, 11,13, 15, 18,26, 31,25, 20, 9, 8,6, 13,16, 16, 9, 9,14, 18,16, 12,14, 19,19, 15,14,
6, 2,14, 7,6, 12 }
El filtro dado por la convolucin anterior, consiste simplemente en una suma de la seal y{k},
y{k-1} e y{k-2}. Es decir, amplifica la seal original, sumndole a cada elemento los dos siguientes.
h { k } = y { k }( { k } + { k1 }+ { k 2 } )
h { k } = y { k } { k } + y { k } { k 1 } + y { k } { k 2 }
h { k } = y { k } + y { k1 } + y {k 2 } (2.1)
8
Luego, usando la expresin (2.1), obtenida a partir de las propiedades, es posible calcular h{k}
utilizando MATLAB, obtenindose el grfico de la figura B.2.1:
j { k } ={ 0, 0, 10, 22 , 26, 30, 36,52, 62,50, 40,18, 16,12, 26, 32, 32, 18, 18, 28, 36, 32,24,
28,38, 38, 28, 14, 12, 24, 30, 28, 12, 4}
Graficando las seales, se obtiene la figura C.2.1:
9
Figura C.2.1. Grficos seales y{k} azul, g{k} roja y j{k}=y{k}*g{k} verde.
Al igual que en el tem A) podemos notar que el efecto de este filtro, es aumentar la seal sumando
los valores siguientes al elemento, los cuales estn definidos por el retraso de los impulsos de la
seal g.
d) Calcule y dibuje la Convolucin de y{k} y g{k}, pero ahora utilizando el resultado de a) b),
y las propiedades de la Convolucin.
j { k } = y { k }2 ( { k2 } + { k3 }+ { k 4 } )
j { k } =2[ y { k2 }+ y { k3 } + y { k 4 } ]
j { k } =2 h { k 2 } (2.2)
e) Utilice un clculo y un grfico para demostrar que los resultados en c) y d) son iguales.
e { k }= j { k } j 2 { k }
Se debe tener en cuenta que las frmulas de Media Mvil vista en clases corresponden a:
k
1
x avg ( k )= x (i)
L i=kL+1
(3.1)
x ( k )x (k L)
x avg ( k )=x avg ( k1 )+ (3.2)
L
Luego, por enunciado, se considerar un valor igual a cero para todos los valores posibles en que el
tiempo discreto k sea negativo, por ende:
k
1
x avg ( k )= x (i)
L i=kL+1
11
Figura A.3.1. Grfico Media Mvil calculado por medio de la Ec. (3.1).
30 30
1 1 1 1 14
x avg ( 30 )=
3 i=303 +1
x (i)= x (i)= ( x ( 28 )+ x ( 29 ) + x ( 30 )) = ( 8+ 4+2 ) =
3 i=28 3 3 3
.
Luego, se puede ver claramente que los valores coinciden con los de la grfica de la figura A.3.1.
x ( k )x (k L)
x avg ( k )=x avg ( k1 )+
L
12
Figura A.3.2. Grfico Media Mvil calculado por medio de la Ec. (3.2).
Obs: La ecuacin necesita valores en tiempo pasado para construir sus nuevas componentes, es
por eso que se mostrar el desarrollo completo del algoritmo, paso a paso.
x ( 1 ) x( 13) x (1 ) x(2) 50 5
x avg ( 1 ) =x avg ( 0 )+ =x avg ( 0 )+ =0+ = .
3 3 3 3
x ( 2 )x (23) x ( 2 )x (1) 5 60 11
x avg ( 2 ) =x avg ( 1 ) + =x avg ( 1 ) + = + = .
3 3 3 3 3
x ( 3 )x (33) x ( 3 )x (0) 11 20 13
x avg ( 3 )=x avg (2 )+ =x avg ( 2 )+ = + = .
3 3 3 3 3
x ( 4 ) x(43) x ( 4 )x (1) 13 75
x avg ( 4 ) =x avg ( 3 )+ =x avg ( 3 )+ = + =5 .
3 3 3 3
x ( 5 )x (53) x (5 )x (2) 96
x avg ( 5 )=x avg ( 4 ) + =x avg ( 4 )+ =5+ =6 .
3 3 3
x ( 6 )x (63) x ( 6 )x (3) 102 26
x avg ( 6 )=x avg ( 5 ) + =x avg ( 5 )+ =6+ = .
3 3 3 3
x ( 7 )x (73) x ( 7 )x ( 4) 26 1 27 31
x avg ( 7 )=x avg ( 6 ) + =x avg ( 6 ) + = + = .
3 3 3 3 3
x ( 8 )x ( 83) x ( 8 )x (5) 31 39 25
x avg ( 8 )=x avg ( 7 ) + =x avg ( 7 )+ = + = .
3 3 3 3 3
x ( 9 ) x( 93) x ( 9 )x (6) 25 510 20
x avg ( 9 )=x avg ( 8 ) + =x avg ( 8 ) + = + = .
3 3 3 3 3
x ( 10 )x (103) x ( 10 ) x(7) 20 112
x avg ( 10 )=x avg ( 9 )+ =x avg ( 9 ) + = + =3 .
3 3 3 3
13
Figura A.3.3. Grfico Comparacin Media Mvil calculado por medio de las Ec.(3.1) y (3.2).
Por lo que se puede concluir que ambas graficas son idnticas, y al mismo tiempo se demuestra que
cualquiera de las dos ecuaciones es vlida para el clculo de la Media Mvil.
b) Calcule la media mvil mediante una Convolucin. Debe dar el mismo resultado que para
a) (valores iguales para los mismos k).
Para calcular en este caso la Media Mvil, se debe convolucionar f{k}=(1,1,1) con el vector de la
secuencia y{k}, pero con la precaucin de que f{k} est normalizado, lo que se traduce a:
1
f {k}= [1,1,1]
3
En donde se puede notar la aparicin de dos nuevas componentes, las cuales corresponden a los
valores aproximados promedios del mtodo de la Convolucin, ya que al momento de ir
desplazando el vector f {k} hacia la derecha (efecto de Convolucin), f {k} termina su
desplazamiento con dos multiplicaciones extras, ya que se compone de tres impulsos unitarios.
Se puede notar el efecto de la media mvil como contraste con la secuencia y{k}, ya que la media
mvil es una curva que suele aproximarse como promedio en funcin del tiempo a los datos
discretos del enunciado (entrada),caso contrario al de la media, que solo se traza una recta (tpica
Ec. de la recta).
Por otro lado, se puede apreciar que la media mvil calculada por Convolucin es exactamente la
misma que las calculadas anteriormente por otros mtodos, a excepcin de los ltimos dos valores
mencionados con anterioridad.
1. Downsample: Toma el vector de la seal de entrada (discreta) y genera un nuevo vector con
los mismos valores del vector original pero con una muestra sobre N valores, por ejemplo:
Figura C.3.1. Grfico de Secuencias con y sin filtro calculado por medio de algoritmos.
Se puede observar que la seal de Media Mvil original coincide con la seal misma pero filtrada
con Downsample por cada dos muestras, mientras que la seal de la secuencia y{k} filtrada con el
comando Decimate logra una similitud con la seal filtrada con Downsample pero con un
desfase de una unidad de tiempo.
a) Lea la imagen con ruido lizard.png y aplquele un filtrado de manera de obtener una
imagen en RGB con una reduccin del ruido. Para ello, realice el filtrado con un filtro media y
uno gaussiano (utilice comando conv2 de MATLAB).
Filtre cada una de las bandas de la imagen original (R, G y B) por separado. El resultado final
ser una imagen compuesta por las tres bandas filtradas por separado.
Grafique la imagen original y las resultantes, tanto para cada componente (R, G y B), como
para la imagen compuesta, en cada caso.
Filtrando con filtro media para cada una de las bandas (R,G y B) por separado, obtenemos las
imgenes dadas por las figuras A.4.1, A.4.2 y A.4.3, para distintos tamaos de mscaras:
18
Para las imgenes compuestas del filtro media de cada tamao de mscara estn graficados en la
figura A.4.4:
19
Figura A.4.4. Imagen original y filtradas por filtro media de distintos tamaos.
Para el caso del filtro media, se puede observar mayor distorsin para valores de mascara no tan
grandes, con respecto a la cantidad de pixeles que posee la imagen original. Este filtro, a pesar de
20
Filtrando con filtro gaussiano para cada una de las bandas (R,G y B) por separado, obtenemos las
imgenes dadas por las figuras A.4.5, A.4.6 y A.4.7, para distintos tamaos de mscaras y desviacin
estndar de 3:
Figura A.4.8. Imagen original y filtradas por filtro gaussiano de distintos tamaos y desv.est.: 3.
22
Para el caso del filtro gaussiano, se observa mejor respuesta al filtrado, con poca alteracin a la
calidad de la imagen original, y disminuyendo considerablemente el ruido.
Esto se puede deber al tipo de ruido de la imagen. Si la imagen posee ruido de distribucin
gaussiana, lo ms probable es que este filtro sea el ms efectivo para eliminarlo con la menor
prdida de calidad en la imagen.
b) Transforme a escala de grises la imagen leda en a). A este resultado aplique los mismos
filtros utilizados en a). Grafique y observe qu ocurre con el histograma de la imagen en escala
de grises con ruido, y con las que resultan del filtrado (puede utilizar el comando de MATLAB
para el clculo del histograma).
Convirtiendo la imagen original a escala de grises, podemos utilizar los filtros, sin necesidad de
separar las bandas RGB, ya que este tipo de imgenes no posee dichas bandas, lo que constituye a
un tiempo de clculo menor para el software de programacin y un anlisis del histograma ms
simplificado.
Podemos observar las imgenes en escala de grises para los filtros utilizados en el tem anterior en la
figura B.4.1:
Figura B.4.1. Imagen original en escala de grises e imgenes filtradas por filtro media y gaussiano.
En esta comparacin, podemos observar un resultado parecido al obtenido en el tem A), ya que el
ruido de la imagen original, es disminuido al utilizar los filtros media y gaussiano. Para esta
actividad, se utilizaron los filtros media 25x25 y gaussiano 25x25 desv. Estndar: 3, ya que tuvieron
mejor disminucin de ruido, sin alterar demasiado la calidad de la imagen.
Figura B.4.2. Histograma imgenes en escala de grises, original, filtro media 25x25 y gaussiano 25x25
A partir de esta figura, es fcil observar como la variacin de colores disminuye, esto se ve reflejado
en la disminucin de los picos luego de aplicar los filtros.
Para el caso del filtro media, an quedan algunos picos que demuestran la presencia de ruido en este
caso, en cambio, para el filtro gaussiano, los picos son mucho ms suaves, conservando el valor
medio dado por el histograma de la imagen en general.
Ejercicio 1:
clear all
clc
close all
x=[5,6,2,7,9,10,12,3,5,1,2,3,8,5,3,1,5,8,5,3,4,7,8,4,2,1,3,8,4,2];
X=sort(x); %Secuencia ordenada de menor a mayor
for i=1:30
k(i)=i-1;
end
for i=1:12
hist(i)=0;
end
%Grafico de la secuencia:
stem(k,x,'filled','b','linewidth',2)
grid on
title('Grafico Secuencia','fontsize',15);
xlabel('Tiempo discreto kT','fontsize',12);
ylabel('Magnitud seal Impulsos','fontsize',12);
xlim([-1 31]);
ylim([0 13]);
%%
%Para graficar el histograma debemos saber cuantas veces se repite cada
%numero perteneciente a la secuencia, para ello se trabajara con la
%secuencia ordenada de menor a mayor "X=sort(x)".
for count=1:12
aux=0;
for i=1:30
if count==X(i)
aux=aux+1;
end
end
hist(count)=aux; %Vector para el Histograma
end
for i=1:12
k1(i)=i;
end
stem(0,0,'filled','r','linewidth',3);
hold on
stem(k1,hist,'filled','r','linewidth',3);
25
grid on
title('Histograma','fontsize',15)
xlabel('Datos','fontsize',12)
ylabel('Repeticiones','fontsize',12)
xlim([-1 13])
ylim([0 6])
%% Histograma Acumulativo
aux1=0;
for count1=1:12
for i=1:30
if count1==X(i)
aux1=aux1+1;
end
end
hist1(count1)=aux1; %Vector para el Histograma
end
stem(0,0,'filled','g','linewidth',3);
hold on
stem(k1,hist1,'filled','g','linewidth',3);
grid on
title('Histograma Acumulado','fontsize',15)
xlabel('Datos','fontsize',12)
ylabel('Magnitud','fontsize',12)
xlim([-1 13])
ylim([0 31])
Ejercicio 2:
%%EJERCICIO 2: CONVOLUCION
%% PARTE A)
clear all
close all
clc
y= [5,6,2,7,9,10,12,3,5,1,2,3,8,5,3,1,5,8,5,3,4,7,8,4,2,1,3,8,4,2];
f= [1,1,1];
figure(1)
k=0:length(y)-1;
subplot(3,1,1); stem(k,y,'r'); title('Seal y(k)','fontsize',13);
xlabel('k'); grid on;
k=0:length(f)-1;
subplot(3,1,2); stem(k,f,'b'); title('Seal f(k)','fontsize',13);
xlabel('k'); grid on;
k=0:length(h)-1;
subplot(3,1,3); stem(k,h,'g'); title('Convolucion de y(k) y
f(k)','fontsize',13);
xlabel('k'); grid on;
26
%% PARTE B)
%Como la seal f son tres impulsos consecutivos, por linealidad la
%propiedad de convolucion con impulso h(k)= y(k)+y(k-1)+y(k-2):
h2(1)= y(1);
h2(2)= y(2)+y(1);
for k=3:length(y)-1
h2(k+1)= y(k+1) + y(k) + y(k-1);
end
k=0:length(h2)-1;
figure(2)
stem(k,h2); title('Convolucion de y(k) y f(k)','fontsize',13);
xlabel('k'); grid on;
%% PARTE C)
g=[0,0,2,2,2];
%Calculando convolucion:
j= conv(g,y);
figure(3)
k=0:length(y)-1;
subplot(3,1,1); stem(k,y,'b'); title('Seal y(k)','fontsize',13);
xlabel('k'); grid on;
k=0:length(g)-1;
subplot(3,1,2); stem(k,g,'r'); title('Seal g(k)','fontsize',13);
xlabel('k'); grid on;
k=0:length(j)-1;
subplot(3,1,3); stem(k,j,'g'); title('Convolucion entre g(k) e
y(k)','fontsize',13);
xlabel('k'); grid on;
%% PARTE D)
%Utiliziando las propiedades de convolucion, para calcular la convolucion
%solo se necesita calcular j2=h*2delt(t-2):
delt=[0,0,2];
j2=conv(h,delt);
figure(4)
k=0:length(j2)-1;
stem(k,j2); title('Convolucion de y(k) y g(k)','fontsize',13);
xlabel('k'); grid on;
%% PARTE E)
%Para demostrar que son iguales, se calcular el error y se graficar, para
%los resultados obtenidos en c) y d):
27
e=j-j2;
figure(5)
k=0:length(e)-1;
stem(k,e); title('Error entre y(k)*g(k)','fontsize',13);
xlabel('k'); grid on;
Ejercicio 3:
%% A) Primera parte
clear all, clc, close all
%Segn la primera Formula: X_ang(k)=(1/L)*sum(x(i)) de i=k-L+1 hasta k.
x=[5,6,2,7,9,10,12,3,5,1,2,3,8,5,3,1,5,8,5,3,4,7,8,4,2,1,3,8,4,2];
for i=3:30
x_avg(i)=(1/3)*(x(i-2)+x(i-1)+x(i));
end
for i=1:30
k(i)=i-1; %Eje X
end
stem(k,x_avg,'filled','b','linewidth',2)
grid on
title('Grafico Media Movil','fontsize',15);
xlabel('Tiempo discreto k','fontsize',12);
ylabel('Magnitud Seales Impulsos','fontsize',12);
%% Segunda Parte
%Segn la segunda Formula: X_avg(k)=X_avg(k-1)+((x(k)-x(k-L))/L
x1_avg(1)=5/3;
x1_avg(2)=11/3;
x1_avg(3)=13/3;
for i=4:30
x1_avg(i)=x1_avg(i-1)+((x(i)-x(i-3)))/3;
end
stem(k,x1_avg,'filled','r','linewidth',2)
grid on
title('Grafico Media Movil','fontsize',15);
xlabel('Tiempo discreto kT','fontsize',12);
28
subplot(2,1,1);stem(k,x_avg,'filled','b','linewidth',2)
grid on
title('Grafico Media Movil','fontsize',15);
xlabel('Tiempo discreto kT','fontsize',12);
ylabel('Magnitud Seal Impulsos','fontsize',12);
legend('Ec. (3.1)')
subplot(2,1,2);stem(k,x1_avg,'filled','r','linewidth',2)
grid on
title('Grafico Media Movil','fontsize',15);
xlabel('Tiempo discreto kT','fontsize',12);
ylabel('Magnitud Seal Impulsos','fontsize',12);
legend('Ec. (3.2)')
%% B)
clear all, clc, close all
aux=(1/3)*[1 1 1] %normalizado
x=[5,6,2,7,9,10,12,3,5,1,2,3,8,5,3,1,5,8,5,3,4,7,8,4,2,1,3,8,4,2];
c=conv(aux,x);
for i=1:32
k(i)=i-1; %Eje X
end
for i=1:30
x1(i)=i-1; %Eje X
end
hold on
stem(x1,x,'filled','b','linewidth',2)
grid on
title('Grafico Media Movil','fontsize',15);
xlabel('Tiempo discreto kT','fontsize',12);
ylabel('Magnitud Seales Impulsos','fontsize',12);
xlim([-1 31])
ylim([0 13])
plot(k,c,'m','linewidth',2)
legend('Secuencia y(k)','Media Movil Conv')
hold off
%% C):
x=[5,6,2,7,9,10,12,3,5,1,2,3,8,5,3,1,5,8,5,3,4,7,8,4,2,1,3,8,4,2];
29
hold on
plot(x1,x,'b','linewidth',2)
plot(x2,Subm1,'r','linewidth',2)
plot(x2,Subm2,'g','linewidth',2)
stem(x1,x,'b','filled','linewidth',1)
stem(x2,Subm1,'r','filled','linewidth',1)
stem(x2,Subm2,'g','filled','linewidth',1)
grid on
title('Comparacin Graficos','fontsize',15)
xlabel('Tiempo Discreto KT','fontsize',12)
ylabel('Meagnitudes','fontsize',12)
legend('Secuencia y(k)','Downsample','Decimate')
hold off
%% D)
x=[5,6,2,7,9,10,12,3,5,1,2,3,8,5,3,1,5,8,5,3,4,7,8,4,2,1,3,8,4,2];
for i=3:30
x_avg(i)=(1/3)*(x(i-2)+x(i-1)+x(i)); % Vector Media Movil Parte A)
end
k=1:2:30; % Eje X
k1=1:1:30;
hold on
stem(k,y,'b','filled','linewidth',2)
grid on
stem(k,y1,'m','filled','linewidth',2)
stem(k1,x_avg,'g','linewidth',1)
legend('Seal Downsample M. Mvil A)','Seal y(k) Decimate C)','Seal Original
M. Mvil A)')
title('Grfico Comparador','fontsize',15)
xlabel('Tiempo Discreto KT','fontsize',12)
ylabel('Magnitud de Seales','fontsize',12)
xlim([0 31])
30
ylim([0 13])
hold off
Ejercicio 4:
%% PARTE A)
clear all
close all
clc
%Leyendo imagen:
im=imread('lizard.png');
im_double=double(im);
gauss_25x25= gauss_2D(25,3);
gauss_50x50= gauss_2D(50,3);
gauss_100x100= gauss_2D(100,3);
figure(2)
subplot(2,2,1),imshow(uint8(im_double));title('Imagen original');
subplot(2,2,2),imshow(uint8(im_fm1));title('Imagen filtro media
25x25','fontsize',13);
subplot(2,2,3),imshow(uint8(im_fm2));title('Imagen filtro media
50x50','fontsize',13);
subplot(2,2,4),imshow(uint8(im_fm3));title('Imagen filtro media
100x100','fontsize',13);
figure(4)
subplot(2,2,1),imshow(uint8(im_double));title('Imagen original');
subplot(2,2,2),imshow(uint8(im_fg1));title('Imagen filtro gauss
25x25','fontsize',13);
subplot(2,2,3),imshow(uint8(im_fg2));title('Imagen filtro gauss
50x50','fontsize',13);
subplot(2,2,4),imshow(uint8(im_fg3));title('Imagen filtro gauss
100x100','fontsize',13);
%% PARTE B)
%Convirtiendo imagen a escala de grises:
im=imread('lizard.png');
im_gris= rgb2gray(im);
%Aplicando filtros media 25x25 y gaussiano 25x25 desv=3 que son los con
%mejores resultados:
av_25x25= ones(25)/(25^2);
gauss_25x25= gauss_2D(25,3);
img_fm= conv2(im_gris_double,av_25x25);
img_fg= conv2(im_gris_double,gauss_25x25);
figure (5)
subplot(1,3,1),imshow(im_gris); title('Imagen original');
subplot(1,3,2),imshow(uint8(img_fm)); title('Filtro media 25x25');
subplot(1,3,3),imshow(uint8(img_fm)); title('Filtro gaussiano 25x25 desviacin
est.= 3');
figure(6)
subplot(1,3,1),imhist(uint8(im_gris)); title('Histograma imagen gris original');
subplot(1,3,2),imhist(uint8(img_fm)); title('Histograma filtro media 25x25');
subplot(1,3,3),imhist(uint8(img_fg)); title('Histograma filtro gaussiano 25x25
desviacin est.= 3');