Вы находитесь на странице: 1из 7

1

PRACTICA DE LABORATORIO 3 ANALISIS DE SEALES


HERRAMIENTAS DEL PROCESO DE SEALES, CONVOLUCION Y FUNDAMENTOS DE SIMULINK
Francisco Rodrguez de Arce Joan Manuel Manrique

Abstract Se realizo la convolucin de algunas seales con el fin de observar esta operacin en el simulador, de igual forma se procesaron imgenes y sonidos para ver el efecto que tiene sobre estas la operacin. Otro de los procesos hechos en el laboratorio fueron observar las herramientas del imagen y crear funciones que hicieran lo mismo en Matlab. Palabras clave Convolucion, Matlab, Seal, ImageJ, Formato de Imagen.

I. INTRODUCCION Matlab tiene implementado el soporte para la convolucin de tiempodiscreto usando la funcin conv. Realmente la funcin conv puede ser usada para otras cosas adems de la convolucin en tiempo-discreto. El propsito de este laboratorio es el de introducir a las herramientas bsicas de procesamiento de seales, voz e imgenes usando el Matlab, Simulink y el software ImageJ para el procesamiento de imgenes.

2.2 Convolucion de un impulso y una onda cuadrada: d = [0 1 0 0 0 0]; xs = [1 1 1 1 1 1]; y = conv(d,xs); t = 0:length(y)-1; stem(t,y) La grafica obtenida es :

II. OBJETIVOS A. Objetivo general Mediante el uso del Matlab observar la aplicaciones sobre imgenes comparando con los procesos en ImageJ.

III. OBJETIVOS ESPECIFICOS Realizar la convolucin a cierto tipo de seales o funciones Procesar seales de voz mediante filtros. Procesar seales visuales o imgenes y compararlas con el proceso en ImageJ

IV. PROCEDIMIENTO 2. Convolucion: 2.1 Convolucion de dos funciones impulso: x1 = [1 0 0]; x2 = [0 1 0]; y = conv(x1,x2); t = 0:length(y)-1; stem(t,y) Al realizar estos comandos se genera la siguiente seal: Si corro el impulso de la siguiente forma obtenemos esto: d = [0 0 1 0 0 0]; xs = [1 1 1 1 1 1]; y = conv(d,xs); t = 0:length(y)-1; stem(t,y)

2
for n=min(t):max(t),%ciclo de incremento de la n para evaluar pause(3); ht = fliplr(h);% reflexin de h if n<0, ht = [ht(-n+1:length(h)) zeros(1,-n)];% desplazamiento a la izquierda else ht = [zeros(1,n) ht(1:length(h)-n)];% desplazamiento a la derecha end y(yc) = sum(x.*ht);%sumatoria del producto de vectores yc = yc + 1;%incremento posicion contador subplot(2,1,1);%2 graficas en 1 ventana stem(t,x);%grafico hold on;%retiene la grafica stem(t,ht,'filled','r');%grafica de los vectores hold off;%sigue la grafica xlabel('t');%leyenda de grafica legend('x[n]','h[n-k]',0);%leyenda de las graficas title(['n= ' num2str(n)]);% titulo subplot(2,1,2);%segunda grafica stem(t,y);%grafica y xlabel('t'); ylabel('y[n]');%leyendas end

Si corro la onda obtengo esto: d = [0 1 0 0 0 0]; xs = [0 1 1 1 1 1 1]; y = conv(d,xs); t = 0:length(y)-1; stem(t,y)

Convolucion de dos ondas cuadradas: xs =h [1 1 1 1 1 1]; y = conv(xs,xs); t = 0:length(y)-1; stem(t,y)

2.3 Convolucion animada en tiempo discreto: clear all; close all; t = [-4 -3 -2 -1 0 1 2 3 4]; x = [ 0 0 0 0 1 2 3 0 0]; h = [ 0 0 0 0 2 1 0 0 0]; y = [ 0 0 0 0 0 0 0 0 0];%declaracion de vectores yc = 1;%contador

3.

Procesamiento de seales

La seal que se observa en el Scope es la siguiente:

Podemos observar la amplitud de la seal en el tiempo y si espectro en la frecuencia, de la onda seno.

Cambiando la frecuencia de la onda seno a 5Rad/seg obtenemos:

4
Dandole valores de amplitud a cada onda seno tenemos:

2.2 Sintetizando una onda cuadrada Tomando el sintetizador dado:

Y en el Scope 2:

Cambiando el valor de la constante a 1:

La respuesta obtenida es:

Y ahora a -1:

Y en el Scope 2:

3. Procesamiento de Voz

load 'noisyspeech' sound(nspeech) set(figure(1), 'pos', [800 700 400 250])

5
plot(nspeech (1:50)) La primera imagen es la original, luego tenemos el original en blanco y negro, despus se invierten los colores, y luego solo se enfoca la cara. Usando la funcin imhist, primero tomamos la imagen y la pasamos a escala de grises, para luego usar el imhist: y=imread('len_full.jpg'); I = rgb2gray(y) imhist(I); imagen en escala de grises

Histograma set(figure(2), 'pos', [800 350 400 250]) plot(frequency, nspeechspec)

Smoothing Filtramos la seal: FilterSpeech sound(speech) Y miramos el espectro: Imagen Original set(figure(3), 'pos', [800 10 400 250]) plot(frequency, speechspec) Ingresando el siguiente script, nos da las siguientes graficas: kernal1 = [0.06 0.13 0.06 0.13 0.25 0.13 0.06 0.13 0.06] FilterImg('teton_clouds.pgm',kernal1);

6. Comenzando con el Matlab en el procesamiento de imgenes Ingresando los cdigos dados, observamos los siguientes cambios en la imagen:

Imagen Filtrada

Creando la imagen de los 4 cubos, 2 negros y 2 blancos, y aplicando los filtros tenemos: Se nota en la calidad de la imagen que la filtrada tiene rasgos ms suaves. Figura Original

Cambiando los valores de kernal1 de la siguiente forma nos muestra como resultado: kernal1 = [-0.11 -0.11 -0.11 -0.11 1.89 -0.11 -0.11 -0.11 -0.11] FilterImg('teton_clouds.pgm',kernal1);

[0.06 0.13 0.06 0.13 0.25 0.13 0.06 0.13 0.06]


Figura con el Kernel=

Deteccin de bordes Variando el script de nuevo logramos los bordes de una imagen kernal1 = 10*[-0.11 -0.11 -0.11 -0.11 0.89 -0.11 -0.11 -0.11 -0.11] FilterImg('edge_in.tif',kernal1); Imagen Original

Aplicando el segundo kernel tenemos:

Y el ultimo kernel:
Imagen Filtrada

V. CONCLUSIONES Con MATLAB, se puede hacer la convolucion de varios tipos de seales, como funcin impulso, funciones continuas, etc. Se les pueden aplicar filtros a seales de audio e imagen, para mejorar la calidad de sonido en cuando al audio o la calidad de la imagen. La funcin imhist de MATLAB solo sirve para imgenes en blanco y negro.

Вам также может понравиться