Vous êtes sur la page 1sur 10

Práctica No.

2
“Otras funciones de Matlab”

I. OBJETIVO:
Que el alumno se familiarice con la herramienta de análisis matemático MATLAB

II. INTRODUCCIÓN:
MATLAB es una herramienta para el análisis matemático y solución de problemas, es
un programa interactivo para computación numérica y visualización de datos. El
nombre de MATLAB proviene de la contracción de los términos MATrix LABorator.
Este programa interpreta la línea de comandos, línea por línea así como son
introducidos.
MATLAB dispone también de programas de apoyo especializados, denominados
Toolboxes, Estos Toolboxes cubren en la actualidad prácticamente casi todas las áreas
principales en el mundo de la ingeniería y la simulación, destacando entre ellos el
'toolbox' de proceso de imágenes, señal, comunicaciones, estadística, análisis financiero,
redes neurales, identificación de sistemas, simulación de sistemas dinámicos, etc.

III. CÁLCULOS METEMÁTICOS BÁSICOS:


En esta sección se verá como usar MATLAB como una calculadora. Debido a que
MATLAB trabaja con matrices ya que estas pueden describir el comportamiento de un
Sistema extremadamente complejo. Un escalar puede ser tratado como una matriz de
1x1. Las Operaciones Aritméticas Básica son:
 Suma +
 Resta -
 Multiplicación *
 División /o\

Funciones Matemáticas Elementales


Comando Definición
abs(x) Valor absoluto o magnitud de un número complejo
acos(x) Coseno inverso
angle(x) Angulo de un número Complejo
asin(x) Seno inverso
atan(x) Tangente inversa
atan2(x) Tangente inversa de 4 cuadrantes
ceil(x) Redondeo superior
conj(x) Conjugado Complejo
cos(x) Coseno
exp(x) Exponencial
floor(x) Redondeo Inferior
imag(x) Parte Imaginaria Compleja
log(x) Logaritmo Natural
log10(x) Logaritmo Común
real(x) Parte Real Compleja
round(x) Redondeo al Entero más Cercano
sin(x) Seno
sqrt(x) Raíz Cuadrada
tan(x) Tangente
Pregunta 1:
Evalué las siguientes expresiones:
a) y = sin(x), donde x = (0.20.5)/2
>> x=sqrt(2)/2;
>> y=sin(x)
y =
0.6496
b) Convierta “y” en la parte (a) de radianes a grados
>> angledim(y,'radians','degrees')
ans =
37.2215
c) c4 = 6 + j sin(0.5) + c1 donde c1 = sqrt(-2)
>> c1=sqrt(-2);
>> c4=6 + i*sin(0.5)+c1
c4 =
6.0000 + 1.8936i
d) c5 = parte real de c4
>> c5=real(c4)
c5 =
6
Pregunta 2:
Edite el comando que uso en la pregunta 1(d) para crear la variable igual a la
parte imaginaria de c4
>> c6=imag(c4)
c6 =
1.8936

El comando” who” sirve para saber cuales son las variables que usamos.
>> who

Your variables are:

ans c1 c4 c5 c6 x y

>> save Nombre_archivo %este comando sirve para guardar lo

que hicimos en MATLAB y lo hace

con la extensio .mat

>> save Nombre_archivo %carga el Archivo guardado

IV. REPRESENTACIÓN DE SEÑALES Y OPERACIONES


MATLAB trabaja esencialmente con matrices numéricas rectangulares. La manera más
fácil de entrarmatrices pequeñas es enumerando los elementos de ésta de tal manera
que:
• los elementos estén separados por espacio en blanco ó comas.
• los elementos estén cerrados entre corchetes, [ ].
• muestre el final de cada fila con ; (punto y coma).
Los arreglos contienen elementos espaciados linealmente, los cuales pueden ser
definidos con el símbolo de dos puntos,
>> varible = [valor_inicial:incremento:valor final]

El incremento puede ser omitido si es igual a 1. Los arreglos con elementos espaciados
linealmente pueden también ser formados usando la función linspace, sus
argumentos son:
>>linspace(valor_incial,valor_final,numeros_de_valores)

Ejemplo 1: Se muestra 3 formas de crear un arreglo xp el cual tiene 11 muestras


igualmente espciadas de 0 a π:
>> xp=[0:pi/10:]
>> xp=[0:0.1:1]*pi
>> xp=linspace(1,pi,11)

Empleando cualquiera de los codigos anteriores produce el mismo vector el cual fue:

Columns 1 through 6
1.0000 1.2142 1.4283 1.6425 1.8566
2.0708
Columns 7 through 11

2.2850 2.4991 2.7133 2.9274 3.1416

Si no se establece de otra forma, todos los valores en MATLAB so indexados


comenzando de 1, ejemplo x(1) es el primer elemento del vector x. Por lo tanto, en
orden para representar una señal con índices de tiempo negativo adicional debe ser
definido. El siguiente código definirá una señal discreta en tiempo x[n]=2n para
n=-3,…,3:
>> n=[-3:3];
>> x=2*n;
>> plot(n,x)
A. Utilización de los comandos stem y plot
En MATLAB, las funciones stem y plot puede ser utilizadas para graficar una
señal. Stem es utilizado cuando se desea graficar señales cortas en tiempo discreto,
mientras que plot es mejor para aproximaciones muestreadas de señales continuas
en tiempo o para señales discretas en tiempo. La diferencia entre estas dos funciones
puede ser vista escribiendo el siguiente ejemplo 2:
>> n1=[-5:5];n2=[-5:0.1:5];
>> x1=n1>=-2&n1<2;
>> x2=sin(n2);
>> subplot(2,1,1), stem(n1,x1)
>> subplot(2,1,2),plot(n2,x2)

Fig. 1

Pregunta 3:
Intercambie las funciones stem y plot en el ejemplo anterior, y observe los
resultados. Explique las ventajas y desventajas de cada función.
>> subplot(2,1,1), plot(n1,x1)
>> subplot(2,1,2),stem(n2,x2)

Si observamos la Fig. 1 y la Fig. 2, claramente se puede observar la diferencia entre usar


una función y otra la función stem es mas usada para funciones de tiempo discreto, es
decir para discretizar una función continua y la función plot es para graficar funciones
continuas, la ventaja de usar plot es que no se pierden valores de la función a graficar,
mientras que en la de ítem perdemos valores entre cada muestra esto se puede observa
en la Primer grafica de la Fig. 1 y la Fig. 2 perdemos los valores de la recta entre -3 y -2
la cual si es graficada en tiempo continúo, se pueden recuperar algunos valores si
aumentamos la frecuencia de muestreo de la señal.
En la segunda grafica de la Fig. 1 y 2 casi no se pierden valores de la función graficada.
Fig. 2 Grafica de la Pregunta 3

Ejemplo 3: Describe el proceso de crear una señal sinusoidal muestreada con un


periodo de muestreo de 0.1.
>> x=(0:0.1:1);
>> xp=x*pi;
>> y=sin(xp);
>> plot(x,y)
>> xlabel('theta')
>> ylabel('valor de la funcion')
>> title('Funcion seno muestreada del ejemplo V')

Fig. 3
Muchas operaciones aplicadas en PDS pueden ser directamente expresadas como un
vector de operaciones en MATLAB. La siguiente tabla muestra un arreglo básico de
operaciones, donde a = [a(1), a(2),…, a(n)], b = [b(1), b(2),…, b(n)] y c=escalar.

Arreglo Básico de Operadores


Operación Ejemplos
Suma escalar a+c = [a(1)+c a(2)+c,…, a(n)+c]
Multiplicación escalar a*c = [a(1)*c a(2)*c,…, a(n)*c]
Suma de Arreglos a+b = [a(1)+b(1) a(2)+b(2),…, a(n)+b(n)]
Multiplicación de Arreglos a.*b = [a(1)*b(1) a(2)*b(2),…, a(n)*b(n)]
División de Arreglos a./b = [a(1)/b(1) a(2)/b(2),…, a(n)/b(n)]
Potencias de arreglos a. ^b = [a(1) ^b(1) a(2) ^b(2),…, a(n) ^b(n)]

Pregunta 4:
Forme y grafique las siguientes señales usando una razón de muestreo de 10 Hz (10
muestras por segundo).
a) Y1=cos(5t)
b) Y2=2exp(-2t)+cos(t)
c) Sume un ruido escalado a 0.2 en y1

>> t=[0:0.1:5];
>> y1=cos(5*t);
>> y2=2*exp(-2*t)+cos(5*t);
>> a=randn(size(y1));
>> y3=y1+a;
>> subplot(3,1,1),plot(t,y1)
>> gtext('y1')
>> subplot(3,1,2),plot(t,y2)
>> gtext('y2')
>> subplot(3,1,2),plot(t,y3)
>> gtext('y3')

Fig.4 Grafica de la Pregunta 4


V. ARREGLOS DEFINIDOS COMO COLUMNAS:
Los arreglos son definidos como vectores renglón, pero también los podemos recibir
como vectores columnas.
Ejemplo 4:
>> a=[1:5]
a=
1 2 3 4 5

>> c=1+i*a
c=
Columns 1 through 4
1.0000 + 1.0000i 1.0000 + 2.0000i 1.0000 + 3.0000i 1.0000 + 4.0000i
Column 5
1.0000 + 5.0000i

>> b=c'
b=
1.0000 - 1.0000i
1.0000 - 2.0000i
1.0000 - 3.0000i
1.0000 - 4.0000i
1.0000 - 5.0000i

Pregunta 5:
Ejecute el siguiente codigo y explique que es lo que realiza el operador transpuesta
punto
Como se puede ver se obtiene el conjugado del vector columna

>> b=c.'
b =
1.0000 + 1.0000i
1.0000 + 2.0000i
1.0000 + 3.0000i
1.0000 + 4.0000i
1.0000 + 5.0000i

VI. OPERADORES RELACIONALES Y LÓGICOS:

Operadores Relacionales
Operador Descripción
< Menor que
<= Mayor o igual que
> Mayor que
>= Menor o igual que
== Igual a
~= No igual a
Operadores Lógicos
Operador Descripción
& AND
| OR
~ NOT

A. SEÑALES DISCONTINUAS
Ejemplo 5:
>> x=linspace(0,10,100);
>> y=sin(x);
>> z=(y>3).*y;
>> plot(x,z)
>> axis([-1 11 -0.2 1.2])
>> xlabel('x'),ylabel('z=f(x)'),title('una señal
discontinua')

Fig.5

Pregunta 7:
Suponga una razón de muestreo de 10 Hz:
a) Genere una función escalón u(t-2)
b) Genere una función pulso u(t-2)-u(t-6)
c) Genere una función impulso en t=4

>> t=[0:0.1:10];
>> y1=(t>2); % función escalón u(t-2)
>> y2=(t>2)&(t<6); % función pulso u(t-2)u(t-6)
>> y3=(t==4); % función impulso en t=4
>> subplot(3,1,1),plot(t,y1)
>> axis([0 10 0 2])
>> gtext('u(t-2)')
>> subplot(3,1,2),plot(t,y2)
>> axis([0 10 0 2])
>> title('u(t-2) - u(t-6)')
>> subplot(3,1,2),plot(t,y2)
>> axis([0 10 0 2])
>> gtext('u(t-2) - u(t-6)')
>> subplot(3,1,3),plot(t,y3)
>> axis([0 10 0 2])
>> gtext('Impulso unitario en t=4')

Fig. 6 Grafico de la Pregunta 7

VII. ARCHIVOS M
Pregunta 8:
Grafique las siguiente señal con un t = ([-2:0.05:3] y agregue 3 lineas al codigo para
graficar la función coseno (0.5*cos(2*pi¨0.789*tt)) encima de la del seno. Use la
fundón hold para hacerlo.

tt=-2:0.05:3;
xx=sin(2*pi*0.789*tt);
plot(tt,xx)
gtext('sin(2*pi*0.789*tt)')
xlabel('TIEMPO(seg)')
hola
a=0.5*cos(2*pi*0.789*tt);
plot(t,a)
gtext('0.5*cos(2*pi*0.789*tt)')

NOTA: Las letras en negritas son las nuevas líneas del código pedido en la pregunta 8
Fig. 7 Gráfica de la Pregunta 8

Vous aimerez peut-être aussi