Você está na página 1de 3

UNIVERSIDAD NACIONAL TECNOLGICA DEL CONO SUR DE LIMA Carrera Profesional de Ingeniera Electrnica y Telecomunicaciones

Curso Docente Laboratorio Tema I.

: PROCESAMIENTO DIGITAL DE SEALES : Ing. Gustavo Paz Purizaca : n 4 : MUESTREO Y CUANTIFICACION

FUNCIONES DE USUARIO a) Escribir la funcin : function [pf] = f1(p) %Definicin de la funcin % f1 Precio venta publico % f1 (p) devuelve el precio con IGV, % de un producto, dado su precio (p) sin IGV. igv = 0.18; %Cuerpo de la funcin pf = p * (1+ igv); end Comprobar su funcionamiento:

fx>> costo=1000 fx>> venta=f1(costo) b) Escribir la funcin : function [y] = f2(n) % x Calcula la funcin y=x2 % La funcin se representa entre los valores -n y n x=-n:0.1:n; y=x.^2; plot(x,y); grid; end Comprobar su funcionamiento:

fx>> n=10 fx>> f2(n) Modificar la funcin para que podamos calcular la funcin y=xp, Donde p sea cualquier valor positivo. c) Escribir una funcin que lea una imagen mediante una ventana de dialogo, la convierta en matriz y permita visualizarla:

II.

MUESTREO Y CUANTIFICACION CON FUNCIONES DE USUARIO 1) Leer la imagen untecs256 y convertirla en una matriz. 2) Visualizar dicha imagen con MATLAB. 3) Reducirla a la mitad de su tamao, eliminando pixels alternos (uno si y otro no) en ambas coordenadas, creando una nueva imagen con el nombre untecs128, y luego visualizarla con MATLAB. - Visualizar conjuntamente las dos imgenes (untecs256 y untecs128). - Volver a ampliar untecs128 duplicando pixels para obtener as una nueva imagen del mismo tamao que la original, creando untecs256a. - Visualizar tanto conjunta como alternativamente ambas imgenes untecs256 y untecs256a para observar los resultados, extrayendo conclusiones. 3) Repetir el paso 3 pero reduciendo por 3 el tamao original. 4) Repetir el paso 3 pero reduciendo por 6 el tamao original. 5) Reducir la imagen por 3 en sentido horizontal y por 6 en sentido vertical.

6) A partir de las funciones anteriores, y reunindolas todas en una, hacer una nueva funcin genrica rplica(x, r) que tome a la imagen "x" y la reduzca primero por "r", y despus la ample por "r" (repitiendo pixels), con objeto de poder compararlas. Hacer que en la propia funcin se visualicen las tres imgenes, la original, la reducida y la que se vuelve a ampliar. 7) Crear una funcin bilineal(x, r) que tome una imagen, reduzca su tamao por "r", y despus la vuelva a ampliarla al mismo tamao inicial, pero ahora efectuando interpolacin bilineal. Comparar los resultados con la interpolacin por repeticin vista en el apartado anterior.

8) Crear una funcin muestreo(x, h, v, orden) que para una imagen de entrada "x", le aplique una reduccin por "h" en horizontal, por "v" en vertical, y si "orden"=0 recupere luego el tamao original mediante interpolacin de orden cero, y se "orden"=1 efecta interpolacin de primer orden. 10) Crear una funcin cuantificacin(x, e, modo) que tenga como entradas la imagen "x", el escaln de cuantificacin "e" y la variable "modo", y que opere de la siguiente forma: Si modo=1: Cuantificar por truncamiento, presentando luego las imgenes original y cuantificada. Si modo=2: Cuantificar por redondeo, presentando luego las imgenes original y cuantificada. Si modo=3: Cuantificar por truncamiento y por redondeo, presentando las tres imgenes, arriba la original y abajo las dos cuantificadas para poder compararlas.

CABECERA PARA TODAS LAS FUNCIONES DE MATLAB CON IMGENES


function [M,N,X]=pedir_imagen % Llamar a interface windows que permite adquirir el nombre de un fichero y el directorio en el que %est, se carga en la variable fichero el nombre del fichero, y en la variable p1 su path (directorio %donde se ubica). (inicialmente solo se listarn las imgenes con extensiones bmp, jpg y tif.) [fichero,p1]=uigetfile(('*.bmp;*.jpg;*.tif'),'Imagen a procesar'); % concatenar el directorio y el nombre del fichero s1=strcat(p1,fichero); % cargar en x y map, la imagen y su mapa de color respectivamente [x,map]=imread(s1); % cargar en M, N y T, el tamao y nmero de planos de la imagen [M,N,T]=size(x); % convertir la imagen a formato doble precisin X=im2double(x); . . .

TAREA
1. Programar con funciones: a. Escribir una funcin que calcule el permetro de un crculo dado su radio. b. Escribir una funcin que calcule el rea de un crculo dado su radio. c. Modifica la funcin anterior para que dado el crculo, calcule tanto el rea como la longitud de la circunferencia. 2. Escribir una funcin que calcule las dos races de una ecuacin de segundo grado: ax2+bx+c=0. a, b, y c son parmetros de entrada. 3. Programar con funciones: a. Escribir una funcin que convierta un nmero binario en hexadecimal. b. Escribir una funcin (base2base) que convierta una cadena que representa un nmero en cualquier base a cualquier otra base que se indique. 4. Disear una funcin en MATLAB que calcule la superficie y volumen de un cilindro dados su radio (r) y altura (h) (V=pr2h, S=2pr2+2prh). 5. Escribir una funcin tal que dadas 3 resistencias, calcule su resistencia equivalente conectadas en paralelo y en serie. 6. Sabiendo que cada carcter se representa con 8 bits, escribir una funcin tal que dada una cadena de unos y ceros que representa una palabra en binario (la longitud de la cadena debe ser mltiplo de 8), devuelva la palabra (con caracteres) que representa. Utilizar la funcin length para conocer la longitud de la cadena y la funcin reshape para separar la cadena de unos y ceros en grupos de 8 bits.

Nota: Presentar un informe impreso del laboratorio con todos los pasos y adjuntando los resultados, con marco terico y conclusiones.