Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UNP
UNIVERSIDAD NACIONAL DE
PIURA
FACULTAD DE CIENCIAS
DEPARTAMENTO ACADMICO DE CIENCIAS
SEALES II
PIURA PER
2014-I
UNP
NOTA FINAL
__________
CURSO
... . . . . . . . . . . .
..
ALUMNO (A)
... . . . . . . . . . . .
..
... . . . . . . . . . . .
..
CDIGO
: .............................................
FACULTAD
: .............................................
SEMESTRE
ACADMICO
SEMANA: ..........
: .............................................
DIA: ..............................
HORA:
PROF. TEORA
: .............................................
PROF. PRCTICA
: .............................................
UNP
CONTENIDO
PRESENTACIN
10
17
20
UNP
PRESENTACION
El procesamiento digital de seales es un rea de la ingeniera que se dedica al
anlisis y procesamiento de seales (audio, voz) que son discretas. Aunque
comnmente las seales en la naturaleza nos llegan en forma analgica, tambin
existen casos en que estas son por su naturaleza discretas.
Uno de los beneficios principales del Procesamiento Digital de Seales es que las
transformaciones de seales son ms sencillas de realizar. Una de las ms
importantes transformadas es la Transformada de Fourier Discreta (TFD). Esta
transformada convierte la seal del dominio del tiempo al dominio de la frecuencia.
Una herramienta a utilizar es MATLAB (laboratorio de matrices) es un software
matemtico que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de
programacin propio.
Entre sus prestaciones bsicas se hallan: la manipulacin de matrices, la
representacin de datos y funciones, la implementacin de algoritmos, la creacin de
interfaces de usuario (GUI) y la comunicacin con programas en otros lenguajes y con
otros dispositivos hardware.
El laboratorio de ingeniera electrnica y telecomunicaciones agradece a los
involucrados en el desarrollo del presente mdulo y est llano a recibir crticas sobre el
presente trabajo para su posterior revisin y mejora.
UNP
FUNDAMENTO TERICO
Un filtro digital es un sistema discreto utilizado para extraer caractersticas desde el
dominio de la frecuencia sobre seales muestreadas. La operacin de filtrado se
realiza por medio de clculos directos con las seales muestreadas. Las ventajas que
presentan los filtros digitales frente a los analgicos son las siguientes:
-
Respuesta dinmica: El ancho de banda del filtro digital est limitado por la
frecuencia de muestreo, mientras que en los filtros analgicos con componentes
activos suelen estar restringidos por los amplificadores operacionales.
Intervalo dinmico: En filtros analgicos aparecen derivas que limitan por abajo el
rango y se saturan con la alimentacin. En cambio en los filtros digitales es fijado
por el nmero de bits que representa la secuencia, y el lmite inferior por el ruido de
cuantificacin y los errores de redondeo.
siendo m el orden del filtro y tendr una funcin de transferencia en z del tipo:
UNP
Obsrvese que en estos tipos de filtros cada valor de la secuencia de salida slo
depende de un nmero finito de valores de la secuencia de entrada. Adems tambin
se desprende la carencia de polos en la funcin de transferencia. En cambio, las
expresiones de los filtros recursivos corresponden a:
Y su funcion de transferencia en z a:
Yn bk x(n k )
k 0
El orden del filtro est dado por N, es decir, el nmero de coeficientes. Tambin la
salida puede ser expresada como la convolucin de una seal de entrada x[n] con un
filtro h[n]:
Y
n
h x
N 1
k 0
n k
UNP
Pasa Alto
Pasa Banda
Rechaza Banda
k 0
El orden del filtro est dado por el mximo entre M y N. La transformada Z del
mismo es:
M
H(z)
bk z
k 0
N
1 ak z
k 1
Ejercicio 1.
Tenemos una Seal cuyo vector es {-1,2,5,-3,4,6,7,-2,9,7,5}, realizarle un filtrado
pasa bajas de dicha seal (graficarlas).
%Codigo en matlab
entrada=[-1 2 5 -3 4 6 7 -2 9 7
5]; Lz = length(entrada);
u = [zeros(1,3)
entrada]; N = 3;
for k = 1:1:Lz; w
= u(k:k+N)
z(k) =
sum(w)/length(w) end;
n = 0: Lz1; figure()
plot(n, entrada, 'r');hold on
plot(n, z, 'b--');grid; hold
of; xlabel('Muestras (n)');
ylabel('Amplitud');
legend('entrada','salida');
UNP
10
entrada
salida
Amplitud
6
4
2
0
-2
-40
5
6
Muestras (n)
10
Ejercicio 2.
Filtrar una seal senoidal de frecuencia F=5hz, fs=50 aplicando filtro FIR butterworth
de primer orden
Seal de Entrada
%Codigo en matlab
t=(0:.01:1);
F=5;fs=50;wn=F/fs
s=sin(2*pi*F*t);
subplot(2,1,1)
plot(t,s)
title('Seal de Entrada')
[B,A]=butter(1,wn);
salida=filter(B,A,s);
subplot(2,1,2)
plot(t,salida)
1
0.5
0
-0.5
-10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.5
0
-0.5
-10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
UNP
Cuestionario
1. Implemente un filtro que minimize los efectos del ruido en la salida. Utilize graficas
para mostrar el efecto de filtrado utilizado. Dado el siguiente codigo:
t = 0:0.001:0.6;
x = sin(2*pi*50*t)+sin(2*pi*120*t); y
= x + 2*randn(size(t));
plot(1000*t(1:50),y(1:50))
title('Seal con ruido') xlabel('time
(milisegundos)')
2. Disee un filtro pasa-altos de tipo Butterworth con frecuencia de corte 500 Hz. Para
obtener el filtro digital correspondiente, suponga que se procesarn seales con
frecuencia de muestreo 2000 Hz. (Grafique las respuestas)
3. Investigue la generacin de filtros FIR con fase lineal y realice pruebas con ondas
generadas a partir de la suma de senoidales de diferente frecuencia y fase cero.
Utilice algn filtro IIR y compare los resultados obtenidos.
UNP
OBJETIVOS
FUNDAMENTO TERICO
El Procesamiento de imgenes tiene como objetivo mejorar el aspecto de las
imgenes y hacer ms evidentes en ellas ciertos detalles que se desean hacer notar.
La imagen puede haber sido generada de muchas maneras, por ejemplo,
fotogrficamente, o electrnicamente, por medio de monitores de televisin.
El procesamiento de las imgenes se puede en general hacer por medio de mtodos
pticos, o bien por medio de mtodos digitales, en una computadora.
Operaciones Bsicas en Imgenes
Operaciones Puntuales: Llamadas as debido a que se aplica una funcin f a cada
punto (pixel) de la imagen, es decir el valor inicial del pixel es cambiado y el nuevo valor
se obtiene de q(x,y)=f(p(x,y))
Operador Identidad: La funcin q=p, por lo que obtendramos la misma imagen.
Operador Inverso o Negativo: la funcion q=255-p, la imagen de salida es el inverso de
la imagen de entrada.
Operador Umbral: Ahora tenemos un umbral u, donde:
q=0 para p <= u; y
q=255 para p > u;
Operador Intervalo de Umbral Binario: Ahora contamos con dos umbrales u1 y u2, y
la funcin que estara dada por:
q= 255 para p <= u1 || p >= u2;
y q= 0 para u1 < p < u2;
10
UNP
Operador Umbral de Escala de Grises: Sean dos umbrales u1 y u2, obtenemos una
imagen de salida con los valores de nivel de gris que estn en ese intervalo, y 0 para el
resto, entonces la funcin q sera:
q= 255 para p <= u1 || p >= u2;
y q= p para u1 < p < u2;
Operador de Extensin: Tenemos los umbrales u1 y u2, la imagen de salida contiene a
los valores de grises que se encuentran en este intervalo, y adems elimina los valores de
grises que se encuentran fuera de se intervalo, la funcin q se denota por:
q= 255 para p <= u1 || p >= u2; y q=
(p-u1)*255/(u2-u1) ,para u1< p
Operaciones de Vecindad:
En la imagen de salida de este operador, el nuevo pixel se determina por la
combinacin los valores de los pixeles vecinos, y para esto se utiliza una mscara,
que viene a ser una matriz que contiene valores de acuerdo al tipo de vecindad que se
use. Entonces el nuevo pixel se determina por la suma ponderada de los 8 vecinos
con la mscara definida.
Desarrolle las siguientes instrucciones para procesar imgenes usando el matlab
1. Entrada y salida de imgenes a.
Lectura
A = imread('imagen.tif');
b. Grabacin
imwrite(A,nombre_de_archivo)
c. Presentacin.
imshow(A)
2. Propiedades
a. Tamao
[Rows, Cols, RGB] = size()
b. Tipo de dato
C = class(A)
B = A(:,:,3)
3. Conversin de tipos
a. Convierte a double
D = double(A)
Procesamiento Digital de Seales II
11
UNP
A = imread('imagen.jpg'); J
= imresize(A, 0.5); figure,
imshow(A)
figure, imshow(J)
b. Rotacin
R = imrotate(A, 45);
5. Histograma.
0
0
50
100
150
200
250
50
100
150
200
250
subplot(2,2,2), imhist(G);
subplot(2,2,3), imshow(J);
subplot(2,2,4), imhist(J);
12
UNP
b. Ecualizacin
de
una
imagen. H= histeq(H);
6. Ajuste de imgenes
a. Ajuste de imgenes <ms brillo> J
= imadjust(G, [0 1], [0.2 1],1 );
1500
1000
500
0
0
50
100
150
200
250
50
100
150
200
250
2000
1500
1000
500
0
0
1000
500
0
0
50
100
150
200
250
50
100
150
200
250
10000
8000
6000
4000
2000
0
0
7. Binarizacin de la imagen.
a. Binarizacin.
im2bw(A,150/256)
13
UNP
Herramienta imtool
Cargar una imagen con imtool de esta manera:
Imtool(trees.tif)
Para mostrar las regiones de los pixeles de la imagen elegimos inspect pxel values
o vamos a tool / pxel region, donde podemos ver cada valor los pixeles (RGB) en
cierta region seleccionada.
14
Podemos ver el mapa de colores que esta predefinidos por matlab para las
imgenes eligiendo tools / choose colormap
Ejercicio 1.
Tomando la imagen colores.bmp mostrar los colores RGB por separado
clear
[X,map]=imread('colores.bmp');
subplot(2,2,1)
imshow(X)
subplot(2,2,2)
imshow(X(:,:,1))
subplot(2,2,3)
imshow(X(:,:,2))
subplot(2,2,4)
imshow(X(:,:,3))
Ejercicio 2.
Implementar un algoritmo para extraer el negativo de una imagen
im=imread('trees.tif');
for i=1 : 258
for j=1 : 350
im3(i,j)=255-im(i,j);
end
UNP
end
imshow(im3)
Procesamiento Digital de Seales II
15
UNP
Ejercicio 3.
Detectar los bordes de la imagen mediante sobel, canny.
Imagen original
im=imread('colores.bmp');
im2=rgb2gray(im); ib=edge(im2,'sobel');
figure
Bordes de la imagen
title('Bordes de la imagen')
Cuestionario
1. Elegir una imagen *.bmp y procesarla diseando los algoritmos para las
siguientes operaciones (respectivas graficas):
-
Operador Umbral
Operador Extension
16
UNP
OBJETIVOS
FUNDAMENTO TERICO
Para poder ver nuestra Webcam por el software MATLAB tenemos que saber que
controlador tenemos instalado para eso ejecutamos:
Imaqhwinfo
InstalledAdaptors: {'coreco' 'winvideo'}
MATLABVersion: '7.8 (R2009a)'
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '3.3 (R2009a)'
De los adaptadores instalados utilizaremos el winvideo. Luego tenemos que saber
cual es el identificador de nuestra Webcam para ello utilizaremos el comando:
Info=imaqhwinfo('winvideo')
AdaptorDllName: [1x88 char]
AdaptorDllVersion: '3.3 (R2009a)'
AdaptorName: 'winvideo'
DeviceIDs: {[1]}
DeviceInfo: [1x2 struct]
Para visualizar los tipos de formatos que soporta la webcam
info.DeviceInfo.SupportedFormats
Columns 1 through 4
'I420_320x240' 'I420_160x120' 'I420_176x144' 'I420_352x288'
Columns 5 through 8
17
UNP
50
100
150
200
50
100
150
200
250
300
Ejercicio 1.
Detectar los bordes de una imagen en tiempo real aplicando el filtro sobel.
vid=videoinput('winvideo',1);
preview(vid);
for i=1:200,
frame = getsnapshot(vid);
im2=rgb2gray(frame);
[BW threshold] =
edge(im2,'sobel'); Factor = .7;
BWs = edge(im2,'sobel', threshold *
Factor); imshow(BWs)
end
18
UNP
50
100
150
200
50
100
150
200
250
300
Cuestionario
1. Elaborar un programa que permita la captura de una secuencia de 50 imgenes y
que detecte un color determinado creando una regin donde encierre el rea del
color.
2. Disear un algoritmo para visualizar en otra ventana los diferentes procesamientos
que se le apliquen en tiempo real. La aplicacin de estos operadores tiene variar
en un tiempo infinito.
-
Operador Negativo
Operador Umbral
Operador Extensin
19
UNP
OBJETIVOS
FUNDAMENTO TERICO
Reconocimiento de patrones se le llama al hecho de identificar distintos estmulos
como perteneciendo a la misma clase, como siendo del mismo tipo.
Los sistemas lineales tienen un mnimo nico en el espacio del error, por lo tanto el
problema de entrenamiento no es tan grave. En la mayora de los casos los valores de
convergencia se pueden calcular directamente de las entradas y salidas deseadas.
Hay casos en los que se dan problemas numricos que dificultan esta tarea.
Afortunadamente, existen herramientas (el algoritmo Widrow-Hof) con las que
siempre se puede encontrar un error mnimo para el problema
20
UNP
Redes Neuronales.- Este enfoque supone que tiene una estructura de neuronas
interconectadas que se estimulan unas a otras, las cuales pueden ser entrenadas para
dar una cierta respuesta cuando se le presentan determinados valores.
Arquitectura
Se llama de capa nica la red en la que slo hay un nivel de nodos procesadores
entre entradas y salidas. Otra caracterstica de esta red es que est conectada al
mximo, que quiere decir que todos los nodos procesadores estn conectados a todas
las entradas. Redes con una sola capa de procesamiento son relativamente fciles de
entrenar.
Se llama red multicapa, cuando hay nodos procesadores que no estn conectados
directamente a las salidas. A estos nodos procesadores se les denomina 'escondidos'
y si estn en un mismo nivel de procesamiento, ste se convierte en una 'capa
escondida'. Estos nodos escondidos presentan u problema para el entrenamiento de
21
Funcion de Activacion
Las cinco funciones tipicas que determinan los distintos tipos de neuronas son:
1. Funcin lineal
2. Funcin escaln
3. Funcin Sigmoidea
4. Funcin Tangente Sigmoidea
5. Funcin Gaussiana
UNP
22
UNP
23
UNP
Ejercicio1:
Disear un algoritmo de una red perceptron en matlab para que nuestra red aprenda
la compuerta OR
Vectors to be Classified
1.5
P(2)
0.5
-0.5
-0.5
0.5
P(1)
1.5
24
UNP
Ejercicio 2:
Hacer un algoritmo utilizando RNA Perceptron para solucionar el problema de la AND
(Especificar los Pesos y Bias)
1.5
P(2)
0.5
Vectors to be Classified
-0.5
-0.5
1.5
P(2)
0.5
0.5
P(1)
Vectors to be Classified
1.5
-0.5
-0.5
0.5
P(1)
1.5
25
UNP
Cuestionario
1. Disee y entrene un algoritmo en MATLAB del Perceptron para identificar los
nmeros del 0 al 9 donde cada nmero se puede definir en una matriz de 7x5, por
ejemplo el nmero 2 sera :
Estructura
utilizada. Epochs.
Tiempo aproximado de entrenamiento de la
red. Tiempo de clculo de la salida, etc.
26