Sie sind auf Seite 1von 13

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

(Universidad del Per, DECANA DE AMERICA)

FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA


LABORATORIO DE PROCESAMIENTO DIGITAL DE SEALES

LABORATORIO NO.1: INTRODUCCIN A MATLAB.


1.1 SEALES
En este captulo el estudiante se centrar en la utilizacin de Matlab para construir el cdigo de
los programas que van a ser utilizados en los subsiguientes laboratorios en la construccin de las
secuencias y comprobar los diferentes conceptos vertidos en la parte terica del curso. Se
profundizar en algunos de los temas aqu tratados, especialmente en lo relacionado con el
manejo de archivos y con la programacin utilizando este producto de software.
1.2 OBJETIVO
Desarrollar cdigos de programas utilizando los comandos e instrucciones de Matlab,
ejecutando los ejercicios propuestos orientados al procesamiento digital de seales.
1.3 EQUIPOS Y MATERIALES REQUERIDOS
El equipo de experimentacin necesario para realizar el presente laboratorio es:
1. PC INTEL CORE 2 DUO o superior.
2. Sistema Operativo Windows 2000 o XP.
1.4 SOFTWARE REQUERIDO
El siguiente software es necesario para realizar este laboratorio:
1. Matlab V7.0, http://www.mathworks.com/
2. Libreras y archivos de soporte.
1.5 GENERALIDADES
Para iniciar los trabajos, en este caso con Matlab que es uno de tantos productos de
software para trabajar con modelos matemticos, debe iniciarse la PC con la versin disponible
e instalada de Matlab. Seguidamente buscar en la pantalla el icono correspondiente en el
escritorio de Windows, ubicarse sobre l con el ratn y luego presionar dos veces el botn
izquierdo. Al abrirse la pantalla de Matlab, en la Ventana de Comandos (Command Window)
se muestra el smbolo >> (prompt) que nos indica que el programa est a la espera de
nuestras instrucciones. Para salir de Matlab basta teclear exit o quit y para ejecutar cualquier
instruccin la tecla Enter. Se debe tener en cuenta que una instruccin termina al cambiar de
lnea. Si necesitamos escribir ms de una lnea, debemos escribir el smbolo ... (tres puntos) al
final de la misma y continuar en la siguiente lnea. Si lo que queremos es escribir varias
instrucciones dentro de la misma lnea se debe separar con comas o punto y coma.
El cursor se desplaza y posiciona con las flechas izquierda/derecha , y para borrar
caracteres se puede utilizar las teclas Backspace o Del. Si lo que se desea es borrar toda la lnea
de edicin se puede usar la tecla Esc. Otra opcin til es usar las flechas arriba/abajo , para
recuperar las instrucciones previas. Por lo tanto, se puede recuperar una lnea anterior de
instrucciones, editarla y ejecutarla una vez revisada. Para limpiar completamente la Ventana de
Comandos se utiliza el comando clc, para borrar lo almacenado en el Espacio de Trabajo

(Workspace) clear all, y para eliminar todas las figuras que no estn ocultas, close all. En la
Fig. 1.1 se muestra la pantalla del Matlab V7, donde se observa las diferentes ventanas, como
son: Current Directory, Editor, Command Window, Workspace y Command History, que se
detalla en 1.6.

Fig. 1.1 Ventanas del entorno de trabajo del Matlab V7.

1.5.1 Funciones implementadas en Matlab.


El producto de software Matlab tiene implementada la gran mayora de las funciones
matemticas ms utilizadas, las cuales suelen admitir argumentos escalares y vectoriales.
Adems, maneja nmeros complejos y utiliza indistintamente la i y la j para representar un
nmero imaginario.
Conviene precisar que los parntesis ( ) y los corchetes [ ] tienen significados
diferentes en Matlab. La primera se utiliza para construir y evaluar funciones y la segunda para
definir vectores o matrices.
El comando help permite obtener ayuda de las distintas funciones que Matlab tiene
implementada. Por ejemplo:
>> help atan

permite conocer la operacin de la funcin arco tangente.


Ejercicio 1.1
(a) Determine el logaritmo del arco tangente del seno de /4.
(b) Compruebe que 3-4-5 son las dimensiones de las tres rectas que conforman un tringulo
rectngulo.
(c) Hallar la magnitud de 3-j5.
>>log(atan(sin(pi/4)))
>>sqrt(3^2+4^2)-5
>>abs(3-j*5)

Ejercicio 1.2


Evale la expresin: tan t 2 2sen 1 ,
8

para t = 0.5, 0.95 y 1.

Ejercicio 1.3
Ejecute los comandos clock, date y calendar. Interprete las respuestas proporcionadas por
Matlab y limpie luego la pantalla.
1.5.2 Formatos numricos
Para visualizar los resultados en la pantalla de comandos, se tienen varias posibilidades
aunque, por defecto, los nmeros en pantalla se representa con redondeo de cuatro cifras
decimales. Tambin decide si representa un nmero en notacin convencional (coma fija) o
notacin cientfica (coma flotante). Los nmeros enteros que tengan menos de nueve cifras
siempre se representan con coma fija. El comando para la representacin en pantalla es format
y admite, entre otras, las opciones siguientes:
format
format
format
format

long
: 16 dgitos.
short
: 4 dgitos. Equivale a escribir slo format.
long e : 16 dgitos ms exponente.
short e: 4 dgitos ms exponente.

Es importante comprender que Matlab no cambia la representacin interna de un


nmero cuando se escogen formatos diferentes, slo modifica su visualizacin en pantalla.
Ejercicio 1.4
Escriba en los cuatro formatos anteriores la raz cuadrada del nmero .
>>
>>
>>
>>

sqrt(pi)
format short, sqrt(pi)
format long e, sqrt(pi)
format short e, sqrt(pi)

Ejercicio 1.5
Ejecute los comandos
realmax y realmin para conocer exactamente el rango de representacion de un nmero real
dentro del cual varan los nmeros que maneja Matlab.
1.5.3 Variables
Una variable es un smbolo que se asigna temporalmente a un dato. La forma de definir
una variable cualesquiera es variable = expresin.
Por ejemplo:
>> x=7*pi

Para saber el valor actual de una variable slo hay que escribirla y presionar la tecla
Enter. El resultado o respuesta de ejecutar cualquier expresin matemtica se guarda, por
defecto en una variable denominada ans, que sale inmediatamente en la pantalla de comandos y
que toma como valor el correspondiente resultado. Si deseamos que esta variable no aparezca en
la pantalla, basta escribir al final de la expresin el smbolo ; (punto y coma).
Ejercicio 1.6
Crear dos variables que almacenen los valores:

2 3 11 e
4 tanh 2

log 2 cos 2 2 / 3

y calcule la suma y producto de ambas variables.

Ejercicio 1.7
Consulte la ayuda sobre la variable predeterminada j y/o i y calcule j2. Luego, defina la variable
j como dos y vuelva a calcular j2. Qu regla prctica debe obtenerse?
1.6 EL ENTORNO DE TRABAJO DE MATLAB
1.6.1 El entorno de trabajo
La versin 7.0, al igual que las anteriores, el entorno de Matlab es ms grfica e
intuitiva. Los principales componentes de dicho entorno son el explorador de rutas (Path
Browser), el editor y depurador de errores (Editor/Debugger) y el visualizador del espacio de
trabajo (Workspace).
1.6.2 Path Browser
Con este entorno de trabajo se puede llamar a una gran variedad de funciones, tanto
propias como programadas por los usuarios. A veces, puede haber funciones diferentes que
tengan el mismo nombre. Por lo tanto, es interesante saber cmo Matlab busca cualquier
funcin que se le pida que ejecute. La clave es la ruta de bsqueda (search path) que el
programa utiliza cuando encuentra el nombre de una funcin. El search path es una lista de
directorios que se puede ver y modificar mediante el comando path, o utilizando el Path
Browser (Submen Set Path en el men File).
1.6.3 El directorio actual
El concepto de directorio actual o de trabajo, es el directorio donde el usuario debe
guardar los diferentes archivos que genere en las sesiones, para que Matlab pueda detectarlos.
Puede consultar el directorio en el que se encuentra con el comando pwd. El contenido de dicho
directorio puede obtenerse con el comando dir. Para cambiar el directorio actual se utiliza el
comando cd (Change Directory) seguido del nombre del nuevo directorio. Ejecutando cd.. ,
se sube un nivel en la jerarqua de directorios.
1.6.4 Editor/Debbuger
En Matlab tienen particular importancia los M-archivos, esto es, archivos con la
extensin *.m , son archivos de texto ASCII que contienen un conjunto de comandos de
Matlab. La importancia de estos archivos es que al escribir su nombre en la lnea de comandos
de Matlab y presionar Enter, se ejecutan todos los comandos contenidos en dicho archivo.
Matlab dispone de un editor propio que permite tanto crear y modificar estos archivos
(proceso de edicin-Editor), como ejecutarlos paso a paso para detectar errores (proceso de
depuracin-Debugger).
1.6.5 Workspace
El espacio de trabajo (Workspace) de Matlab es el conjunto de variables que en un
determinado momento estn definidas en la memoria del programa. Para obtener informacin
sobre el workspace se pueden utilizar los comandos who y whos. La segunda proporciona una
informacin ms detallada que la primera. Copias completas de una sesin de trabajo. Matlab
incorpora el comando diary para guardar sesiones completas de trabajo. Este orden puede ser
de gran utilidad en el desarrollo de las clases prcticas, pues permite guardar en un archivo de
texto todos los resultados obtenidos en la sesin, los comentarios realizados en la clase y en
general, todo lo que el programa va presentando en pantalla.
La forma natural de proceder es la siguiente: se escribe diary nombre.txt. De esta
manera, se crea el archivo nombre1.txt en el directorio actual y todo aquello que aparezca en
pantalla, a partir de ese momento, se graba en dicho archivo. Para que dejen de grabarse las

instrucciones que aparecen en pantalla hay que escribir diary off y para volver a abrir el
archivo diary on.
1.7 MATRICES Y VECTORES
1.7.1 Matrices y vectores
En Matlab se trabaja fundamentalmente con matrices y para el caso de los nmeros,
estas son consideradas como matrices cuadradas de orden uno.
Las matrices pueden definirse de las siguientes formas:
Escribir la matriz entre corchetes, colocando las filas una a continuacin de otra,
separadas por el smbolo ; . Entre los elementos de una misma fila podemos
colocar una coma o dejar un espacio en blanco.
Escribir la matriz entre corchetes, colocando cada fila en un rengln.
La matriz vaca se representa por [ ].
Como es natural, si slo introducimos una fila tenemos un vector fila. Matlab incluye
una orden muy til para generar vectores cuyas coordenadas estn en progresin aritmtica. Es
decir, la estructura a:b:c crea un vector entre los nmeros a y c, incrementando cada
coordenada con el nmero b. Si slo se escribe a:c se considera por defecto que b es igual a
uno.
Ejercicio 1.8
Construya tres vectores cuyos elementos estn contenidos en el intervalo [-1,1] en cuatro, ocho
y veinte subintervalos iguales. Luego, con las tres primeras coordenadas de cada uno de ellos,
genere las tres filas de una matriz de 3 3 y calcule el determinante de dicha matriz y su
traspuesta.
>> u=-1:2/4:1, v=-1:2/8:1, w=-1:2/20:1
>> A=[-1.0,-0.50, 0.00
-1.0,-0.75,-0.50
-1.0,-0.90,-0.80]
>> B=A
>> det(A), det(B)

Ejercicio 1.9
Considere la matriz cuadrada de 4 x 4
16 5 9 4
3 10 6 15

2 11 7 14

13 8 12 1

Utilizando el comando sum, explique la razn de por que se le denomina matriz mgica.
1.7.2 Direccionamiento y manipulacin de matrices
Para seleccionar un elemento determinado de una matriz se escribe el nombre de la
matriz seguida del nmero de fila y columna separados por una coma y entre parntesis.
Si se desea extraer una submatriz basta colocar, en vez de nmeros, vectores cuyas
componentes son los nmeros de las correspondientes filas y columnas. El smbolo dos puntos
es muy til para crear submatrices. Cuando no se le asignan valores a la derecha e izquierda, por
defecto, recorre todas las filas o columnas. Si colocamos datos fuera del rango actual de una
matriz se rellenan con ceros las zonas no especificadas.

Ejercicio 1.10
Obtenga de cuatro maneras diferentes la submatriz formada por la segunda y la tercera fila de la
siguiente matriz:
1
1

1
2
2
2

>>
>>
>>
>>
>>

A = [1 1 1 1;1 2 2 2 ;1 2 3 3 ;1 2 3 4 ]
A(2:3,1:4)
A(2:3,:)
A([2 3],[1 2 3 4])
A([1 4],:)=[]

1
2
3
3

1
2
3

Ejercicio 1.11
Defina una matriz A cuadrada de orden 15 tal que todos sus elementos sean nulos, salvo la
primera fila y la primera columna, las cuales toman los valores, respectivamente de la columna
o fila en la que se encuentran.
Ejercicio 1.12
Escriba las matrices A y B definidas por
A(i, j) = 10(i - j) + 1; i, j = 1, ..., 10.
i j 1
1,
B i, j
, i, j 1,....,20
0, en otro caso
1.8 GRAFICAS EN MATLAB
La ventana grfica de Matlab. Para mostrar las correspondientes grficas, abre una
nueva ventana, la denominada ventana de figura. Si ya hubiera una ventana de figura, se borra la
ventana de figura actual y se dibuja en ella la nueva grfica. Para utilizar dos o ms grficas en
diferentes ventanas de figura, se usa el comando figure. El comando figure(n) muestra o
crea, si no la hay, la ventana de la figura n-sima y sta pasa a ser la ventana de figura activa. La
orden close cierra la ventana grfica activa.
1.8.1 Grficas bidimensionales
Para obtener grficas 2-D, Matlab admite cuatro opciones: grficas en coordenadas
cartesianas, grficas en coordenadas polares, grficas de barras y grficas de escaleras. El
comando para representar datos bidimensionales en coordenadas cartesianas es plot, para crear
grficas en coordenadas polares es polar y, finalmente, los grficos de barras y escaleras se
generan usando los comandos bar y stairs, respectivamente.
El comando plot escala los ejes para ajustar los datos, representa los puntos y, a continuacin,
conecta los puntos con una lnea recta. Tambin aade una escala numrica y coloca de forma
automtica marcas en ambos ejes. Conviene aclarar que lo primero que se hace al ejecutar el
comando plot es eliminar toda la informacin (lneas, ejes,...) sobre la grfica anterior, si la
hubiere.
Ejercicio 1.13
Dibuje la grfica de la funcin exponencial en el intervalo [-3,3].
Obtenga una segunda grfica donde a la curva anterior se le aada la recta tangente en x = 0.

>> x=-3:0.01:3; y=exp(x); plot(x,y)


>> z= x+1; plot(x,y,x,z)

Ejercicio 1.14
Resuelva el ejercicio anterior usando el comando hold.
Ejercicio 1.15
Dibuje la grfica de la elipse centrada en el origen y de semiejes 3 y 5.
Ejercicio 1.16
Dibuje un polgono regular de 10 lados que pueda inscribirse en una circunferencia de radio
uno. (Indicacin: Evalue plot sobre un vector cuyas componentes sean nmeros complejos).
1.8.2 Grficas tridimensionales
Para obtener grficas 3-D, Matlab admite tres opciones: grficas de lneas, grficas de
superficies y grficas de contorno. El comando bsico para realizar grficas de lneas es plot3,
los comandos para grficas de superficies son mesh y surf y, finalmente, para grficas de
contorno es contour.
1.8.3 Grficas de lneas
La funcin plot3 es anloga a su homloga bidimensional plot. Su forma ms
sencilla es plot3(x,y,z) la cual dibuja una lnea que une los puntos (x(1), y(1), z(1)), (x(2),
y(2), z(2)), (x(3), y(3), z(3)), etc. , y la proyecta sobre un plano para poderla representar en
pantalla.
Ejercicio 1.17
Dibuje en verde un tramo de una espiral cilndrica.
>> fi=[0:pi/20:6*pi];
>> plot3(cos(fi),sin(fi),fi,r)

Ejercicio 1.18
Una forma alternativa de obtener el vector anterior fi es usar el comando linspace. Mediante
la instruccin help linspace escrita en la pantalla de comandos, recabar mayor informacin
sobre la operacin de esta funcin y obtener de nuevo dicho vector.
Ejercicio 1.19
Dibuje la curva alabeada de ecuaciones paramtricas:
x(t) = cos(t3), y = cos(t) sen(t), z = sen(t), t [4, 4].
1.8.4 Grficas de superficies
La idea es dibujar una funcin de dos variables sobre un dominio rectangular.
Supongamos que x e y son dos vectores que contienen las coordenadas en una y otra direccin
de la retcula sobre la que se va a dibujar la funcin. Se inicia generando dos matrices X (cuyas
filas son copias de x) e Y (cuyas columnas son copias de y) con el comando meshgrid, las
cuales representan las coordenadas de todos los puntos del reticulado. Posteriormente, se calcula
la matriz grfica de datos Z a partir de las matrices de coordenadas X e Y, teniendo en cuenta la
funcin de que se trate. Finalmente, la matriz Z se dibuja con el comando mesh o surf.

Ambas rdenes dibujan la funcin en perspectiva y la diferencia entre ellas est en el llenado
de color de las clulas generadas por el mallado.
Ejercicio 1.20
Dibuje en un cuadrado la funcin sombrero

z sen
>>
>>
>>
>>

x2 y 2 /

x2 y 2

u=-8:0.5:8;v=u;
[U,V]=meshgrid(u,v);
r=sqrt(U.^2+V.^2)+eps; w=sin(r)./r;
mesh(w)

Ejercicio 1.21
Represente la superficie para las siguientes condiciones:
x = 4cos(r)sec(t), y = 2sen(r)sen(t), z = tan(t),
donde t [, ] y r [2, 2].
En las versiones recientes de Matlab, hay un grupo de funciones que permite realizar
grficos de forma ms sencilla. Ejemplos de ellas son ezplot y ezsurf.
1.9 ARCHIVOS EN MATLAB
Comentarios generales. Para trabajar con datos de gran tamao, o para disear nuevas
funciones, es completamente imprescindible trabajar con archivos y por lo tanto, con el editor
de texto. Los archivos adicionales que Matlab utiliza bsicamente son aquellos con extensin
*.m y una parte importante de cada sesin con Matlab es crear y refinar este tipo de archivos.
Atendiendo a su uso, los M-archivos suelen dividirse en dos grandes grupos: archivos de
instrucciones o tipo script y archivos de funciones.
La pantalla del editor de programas facilita el trabajo con los M-archivos. Es decir, el
editor muestra con diferentes colores los diferentes tipos o elementos constituyentes de los
comandos (en verde los comentarios, en rojo las cadenas de caracteres, ...). Adems, el editor
verifica que las comillas o parntesis que se abran tengan el correspondiente elemento de cierre.
Para acceder al editor desde la ventana principal de Matlab, basta presionar el men File
y despus New/ M-file (si se desea crear un archivo nuevo), o bien presionar el men File y
despus Open M-file... (si se desea abrir un archivo ya existente). El manejo de esta nueva
ventana es totalmente intuitivo. Otra opcin para abrir el editor es el comando edit.
Ejercicio 1.22
Abra un archivo utilizando el editor de Matlab, escriba en l una matriz cuadrada de 2 x 2 y
guarde dicho archivo con el nombre ejercicio122.m.
Presionar: File New M-file
Escribir: A=[1 2; 2 1]
Presionar Guardar como
En Nombre de Archivo escribir ejercicio122.m
Con la pestaa Guardar en, situarse en el directorio donde uno quiera almacenarlo y
presionar Guardar.
1.9.1 Archivos de instrucciones
Un M-archivo de este tipo consiste en una sucesin de instrucciones de Matlab. Para
ejecutarlas y ver el correspondiente resultado en pantalla, es suficiente escribir el nombre del
archivo (sin la extensin) y presionar Enter. Las variables en un archivo de instrucciones son

globales y, por lo tanto, pueden afectar a los valores de las variables que se hayan creado
durante la sesin de trabajo.
Los archivos de instrucciones son bsicamente utilizados para introducir datos en
matrices de grandes dimensiones, pues en un archivo de este tipo es fcil corregir errores sin
repetir todo el trabajo.
Ejercicio 1.23
Escriba y guarde en un archivo de nombre datos123.m la matriz cuadrada de 20 x 20 tal que
los elementos de su diagonal sean todas iguales a 3 y las dos subdiagonales principales estn
formadas por unos. Calcular su determinante.
Seguidamente cambie la diagonal por el vector cuyas coordenadas son los primeros diez
nmeros naturales y vuelva a calcular el determinante de la nueva matriz.
Escribir en un archivo:
A=diag(3*ones(10,1));
A=A+diag(ones(9,1),1);
A=A+diag(ones(9,1),-1);

Guardar en datos123.m. Ejecutar el archivo y escribir en Matlab:


>> det(A)

Abrir datos123.m
A=A-diag(3*ones(10,1));
A=A+diag(1:10);

Guardar datos123.m. Ejecutar el archivo y escribir en Matlab:


>> det(A)

1.9.2 Archivos de funciones


Los M-archivos de funciones son los que permiten incrementar la coleccin de
funciones que ejecuta Matlab. Es decir, se pueden crear funciones especficas para algn
problema concreto y a partir de su introduccin, dichas funciones tienen el mismo rango que las
funciones del sistema y se ejecutan de igual forma. Las variables en los archivos de las
funciones son locales, es decir, no afectan a los valores de las variables que se hayan creado
durante la sesin de trabajo.
Se recomienda que el nombre de un archivo de una funcin sea el nombre de la funcin
seguido, obviamente, de la extensin .m. La estructura de un archivo de este tipo es la
siguiente: la primera lnea comienza con la orden de Matlab function seguida del nombre de
la funcin que deseamos definir junto con los argumentos de entrada y salida separados por
comas. Es decir:
function [argumentos de salida]=nombre de la funcin(argumentos
de entrada

A continuacin, puede haber diversas lneas de comentario que han de estar precedidas
necesariamente por el smbolo % . Conviene decir que son precisamente estas lneas las que
aparecern en pantalla al usar el comando help. Finalmente aparece el programa, es decir, las
instrucciones necesarias para poder evaluar la funcin.
Tanto los argumentos de entrada como los de salida no son obligatorios y si no
aparecen, no hace falta escribir los correspondientes corchetes o parntesis.

Ejercicio 1.24
Disear una funcin que muestre la grfica de una funcin cosenoidal atenuada
exponencialmente y(t) = exp(-0.05nt)cos(2t) y cuyo argumento de entrada sea el factor de
atenuacin exponencial n. La grfica debe tener una malla y deben situarse los ejes de
coordenadas.
% GRAFICAR UNA SEAL COSENO ATENUADA EXPONENCIALMENTE
% Dado la constante n de atenuacin
% Graficar una seal cosenoidal atenuada exponencialmente
%
% utilizar: cos_exp(n)
%
function cos_exp(n)
t=-2:0.01:2;
y=exp(-0.05*n*t).*cos(2*pi*t);
plot(t,y);grid;
axis([-2 2 -4 12]);
hold on
plot([-2.2 2.2],[0 0],'r', [0 0], [12 -4],'r');
grid;
hold off;

Ejercicio 1.25
Disee una funcin que devuelva una funcin cosenoidal con frecuencias de 100 Hz., con
diferentes amplitudes y se grafique durante 30 milisegundos.
Ejercicio 1.26.
Dado x1(t)=2cos(220t) y x2(t)= x1(t) + 2.5cos(240t), disee una funcin que calcule y grafique
x2(t), muestre por lo menos 2 repeticiones. Luego, presentar el valor mnimo y mximo de x2(t).
1.10 PROGRAMACIN EN MATLAB
1.10.1 for
La sintaxis para la utilizacin de esta orden de control es
for variable=vector
instrucciones sobre la variable
end

El significado es el siguiente: mientras la variable recorre los valores del vector, se


realizan las instrucciones descritas, con la variable tomando dichos valores. Matlab permite
anidar varias rdenes for.
Ejercicio 1.27
Disee una funcin que devuelva el trmino n-simo de la iteracin:

xn1 xn2 2 xn , x0 4
Obtenga x1 , x15 y x50. Crear un archivo iter.m:
function z=iter(n)
x=4;
for k=1:n
x=x^2-2*x;
end
z=x;

10

En Matlab
>> iter(1)
>> iter(15)
>> iter(50)
Ejercicio 1.28
Dada una matriz cuadrada de n x n, disee una funcin usando la instruccin for, que sume los
elementos de mayor mdulo de cada una de las columnas de dicha matriz.
Ejercicio 1.29
Utilizando dos instrucciones for anidadas, genere la matriz cuadrada A, definida por
A(i, j) = i2j, i, j = 1, ..., 10.
Se podra generar A sin usar ninguna instruccin for?

1.9.2 if
La sintaxis habitual para la utilizacin de esta orden de control es:
if relacin lgica P1
instrucciones Q1
else
instrucciones Q2
end

El significado es el siguiente: si P1 es cierto se ejecutan las instrucciones Q1 y si P1 es


falso se ejecutan las instrucciones Q2. Las lneas tres y cuatro anteriores pueden suprimirse
y, en este caso, cuando P1 sea falso, no se ejecuta ninguna instruccin.
Ejercicio 1.30
Disee una funcin sobre los nmeros enteros que asigna el valor 1 a los nmeros pares y
positivos, el valor -1 a los nmeros impares y positivos y el valor cero a los nmeros restantes.
function paridad=paridad(n)
if n<=0
paridad=0;
elseif rem(n,2)==0
paridad=1;
else
paridad=-1;
end

Ejercicio 1.31
Escribir un cdigo en Matlab para hallar el valor mximo de x.
%
% Mimax: retorna el valor mximo de una matriz.
%
function valor_max=mimax(x)
% Obtener una estimacin inicial para el mximo.
valor_max=x(1);
% Ahora navegaremos por el resto de la matriz,
% 1 elemento a la vez
for k=2:length(x)
% si el valor en el desplazamiento actual es ms grande

11

% que nuestro mximo.


if (x(k)>valor_max)
% ...entonces actualizar nuestro valor mximo,
valor_max=x(k);
end
end
% "valor_max" ser retornado automticamente.

Ejercicio 1.32
Escribir un cdigo en Matlab para hallar el valor mnimo de x.
1.9.3 while
La sintaxis para la utilizacin de esta orden de control es:
while relacin lgica(contador)
instrucciones(contador)
end

El significado de este esquema es que las instrucciones se irn ejecutando mientras la relacin
lgica sea cierta.
Ejercicio 1.33
Determine el valor de la precisin de la mquina usando un bucle while. Compare el valor
obtenido con la variable predefinida eps de Matlab.
function precmaq
precmaq=1;
while (1+precmaq)>1
precmaq=precmaq/2;
end
precmaq = 2*precmaq

Ejercicio 1.34
Disear una funcin que muestre la grfica de una funcin senoidal y(t) = cos(2t + ) para dos
periodos y cuyo argumento de entrada sea el nmero t. La grfica debe tener una malla y deben
situarse los ejes de coordenadas.
% GRAFICAR UNA SEAL SENOIDAL
% Dado: la frecuencia, magnitud y fase
% Graficar un conjunto de seales senoidales (hasta 4)
%
% utilizar: plotsinusoides(frec,mag,fase)
%
function plotsinusoides(frec,mag,fase)
max_plots=4;
% Mximo nmero de sinusoides para graficar en una
sola vez
num_points=200; % Nmero de puntos por repeticin.
% Verificacion de parmetros
if (or((length(mag)~=length(frec)), ...
(length(fase)~=length(frec))))
error('Error - frec, mag, y fase deben ser del mismo tamao')
end
% Queremos esto para 2 repeticiones, y num_points por repeticin
frec_min=min(frec);
step=2/(frec_min*num_points);
t=0:step:2*(1/frec_min);
i=1;

% i es nuestro contador de sinusoides

12

% Determinar cuntas sinusoides graficar


% Si el usuario pasa arreglos mayores a 4, ignoraremos los ltimos
% elementos
mi_limite=min(length(frec),max_plots);
% Para cada sinusoide, graficarlo
while (i<=mi_limite)
% Genera una sinusoide para este valor de i
x=mag(i)*cos(2*pi*frec(i)*t+fase(i));
% Hacer un mensaje agradable para el ttulo
mi_titulo=...
sprintf('Sinusoide con f=%d Hz.,mag=%4.2f, fase=%4.2f
radianes',...
frec(i), mag(i), fase(i));
% Ahora hacer la grfica para esta sinusoide.
subplot(mi_limite,1,i);
plot(t,x);grid;
title(mi_titulo);
ylabel('Amplitud');
% Ir al siguiente valor de i
i=i+1;
end
xlabel('Tiempo (seg)');

Ejercicio 1.35

Un conocido resultado de L. Euler afirma que

6
Obtenga el menor nmero de sumandos de la serie anterior, de modo que la correspondiente
suma finita aproxime 2/6 con un error menor o igual que 10-4 y que 10-6.
n 1

1.10 REFERENCIA BIBLIOGRFICA


1. Tratamiento Digital de Seales: Principios, Algoritmos y Aplicaciones. Proakis y
Manolakis. Editorial Prentice Hall. 2000.

2. Tratamiento Digital de Seales en Tiempo Discreto. Alan V. Oppenheim, Et Al;


Prentice Hall. 2000.
3. Digital Signal Processing Using Matlab and Wavelets. Michael Weeks. Jones and
Bartlett Publishers. 2nd Edicin. 2011.

13

Das könnte Ihnen auch gefallen