You are on page 1of 25

LABORATORIO No.

1 DE SEÑALES Y SISTEMAS

JUAN CAMILO RODRÍGUEZ LUNA


SARAY DANIELA ROA BLANCO

PROFESOR
CARLOS JULIO ARIZMENDI PEREIRA

FACULTAD DE INGENIERÍA
INGENIERÍA MECATRÓNICA
2017
INTRODUCCIÓN

Matlab es una herramienta que, entre sus múltiples beneficios, permite representar
gráficamente funciones. Un sistema discreto transforma entradas de tiempo discreto en
salidas de tiempo discreto. Con el presente laboratorio se busca analizar y representar
funciones discretas mediante el uso de Matlab.

OBJETIVOS

Objetivo General
Analizar funciones discretas y graficarlas haciendo uso de la herramienta Matlab.
Objetivos Específicos
 Analizar con Matlab si una señal es periódica o no.
 Graficar diferentes tipos de señales que se encuentren en cualquier intervalo de
tiempo.
 Investigar y aplicar el uso de distintos comandos como lo son: “real, imag, abs y
angle”
 Entender e interpretar diferentes señales, para luego graficarlas manualmente.

MARCO TEÓRICO

Comando Descripción
abs Valor absoluto y magnitud compleja
Devuelve los ángulos de fase, en radianes, para cada elemento del conjunto
angle
complejo Z.
imag Devuelve la parte imaginaria de un número complejo
Dibuja un gráfico. Crea un diagrama de línea 2-D de los datos en Y frente a los
plot
valores correspondientes en X
real Devuelve la parte real de un número complejo
step Dibuja la respuesta al escalón
subplot Divide la ventana Gráfico en secciones
xlabel(txt) Etiqueta el eje x de los ejes o gráficos actuales devueltos por el
comando. Reemitir el xlabel comando sustituye a la etiqueta antigua por la nueva.

xlabel(target,txt) Agrega la etiqueta a los ejes o el gráfico especificado por target.

X, Y label: xlabel( ,Name,Value) Modifica el aspecto de la etiqueta utilizando uno o más


argumentos de par de nombre-valor.

t = xlabel( ) Devuelve el objeto de texto utilizado como etiqueta x- axis. Se utiliza t


para realizar modificaciones futuras en la etiqueta después de que se cree.
Punto 1.
Generar en Matlab y dibujar cada una de las secuencias sobre el intervalo indicado.

Punto 1-a: X(n)=2delta(n+2) – delta(n-4), -5≤n≤5


Código:
clear all, clc

n1=-5,
n2=5
p=2*impseq(-2, n1, n2)-impseq(4,n1,n2) %Se declara la ecuacion impulso
usando la función impseq.
n=[n1:n2]; %se declara la variable tiempo discreto en el rango
especificado; Los";"
stem(n,p) %Se grafican la señal con la función stem colocando primero la
variable n para que quede el eje horizontal.
xlabel('n') %Se usa la función xlabel y ylabel para darle los nombre a
los ejes "x" y "y" respectivamente.
ylabel('X[n]')
title ('Punto 1-A') %Se usa la función title para darle el nombre a la
grafica.
Punto 1-b:
X(n)=n[u(n) – u(n-10)] + 10 e^(-0.3(n-10)) [u(n-10)- u(n-20)], -0≤n≤20
Código:
clear all
close all
clc

n1= 0,
n2=20
n=[0:20];
P=n.*((stepseq(0,n1,n2)-stepseq(10,n1,n2)))+(10.*exp((-3/10)*(n-
10)).*(stepseq(10,n1,n2)-stepseq(20,n1,n2))) %%Se declara la ecuacion
escalón unitario usando la función stepseq.
%en la linea 8 se utiliza ".*" para poder multiplicar al matriz.

stem(n,P,'r')
xlabel('n')
ylabel('X[n]')
title ('Punto 1-B')
Punto 1-c:
X(n)= cos(0.04*pi*n) +0.2 w(n) -0≤n≤50, donde w(n) es una secuencia gaussiana
aleatoria con media zero y varianza igual a uno.

Código:
clear all
close all
clc

n1=0
n2=50
n=[0:50];
P=length(n)%Se usa la funcion length para crear un vector del mismo
tamaño de la variable n.
X=cos(0.04*pi*n)+0.2*randn(1,P)%Se declara la ecuación usando la funcion
randn para crear la secuencia gaussiana aleatoria de tamaño igual a "n"
con media cero y varianza uno.
stem(n,X,'b')
title('Punto 1C')
xlabel('n')
ylabel('X[n]')
Punto 1-d:
𝑥̌(𝑛) = {… . . ,5,4,3,2,1,5,4,3,2,1,5,4,3,2,1, … …}; −10 ≤ 𝑛 ≤ 9
Código:
clear all
close all
clc

n1=-10
n2=9
n=[-10:9] %se declara la variable tiempo discreto en el rango
especificado.
X=[5,4,3,2,1]
Xinv=X'*ones(1,4)%Se invierte para realiazar la operacion y luego se
vuelve a invertir
Xtilde=(Xinv(:))'
stem(n,Xtilde,'b')
title('Punto 1D')
xlabel('n')
ylabel('x[n]')
Gráfica de las cuatro secuencias:
Código:

clear all, clc


% A)
n1=-5,
n2=5
p=2*impseq(-2, n1, n2)-impseq(4,n1,n2) %Se declara la ecuacion impulso
usando la función impseq.
n=[n1:n2]; %se declara la variable tiempo discreto en el rango
especificado; Los";"
subplot(2,2,1)
stem(n,p) %Se grafican la señal con la función stem colocando primero la
variable n para que quede el eje horizontal.
xlabel('n') %Se usa la función xlabel y ylabel para darle los nombre a
los ejes "x" y "y" respectivamente.
ylabel('X[n]')
title ('Punto 1-A') %Se usa la función title para darle el nombre a la
grafica.
% %
% B)
n1= 0,
n2=20
n=[0:20];
P=n.*((stepseq(0,n1,n2)-stepseq(10,n1,n2)))+(10.*exp((-3/10)*(n-
10)).*(stepseq(10,n1,n2)-stepseq(20,n1,n2))) %%Se declara la ecuacion
escalón unitario usando la función stepseq.
%en la linea 8 se utiliza ".*" para poder multiplicar al matriz.
subplot(2,2,2)
stem(n,P,'r')
xlabel('n')
ylabel('X[n]')
title ('Punto 1-B')

% %C)
n1=0
n2=50
n=[0:50];
P=length(n)%Se usa la funcion length para crear un vector del mismo
tamaño de la variable n.
X=cos(0.04*pi*n)+0.2*randn(1,P)%Se declara la ecuación usando la funcion
randn para crear la secuencia gaussiana aleatoria de tamaño igual a "n"
con media cero y varianza uno.
subplot(2,2,3)
stem(n,X,'b')
title('Punto 1C')
xlabel('n')
ylabel('X[n]')

% % D)
n1=-10
n2=9
n=[-10:9] %se declara la variable tiempo discreto en el rango
especificado.
X=[5,4,3,2,1]
Xinv=X'*ones(1,4)%Se invierte para realiazar la operacion y luego se
vuelve a invertir
Xtilde=(Xinv(:))'
subplot(2,2,4)
stem(n,Xtilde,'b')
title('Punto 1D')
xlabel('n')
ylabel('x[n]')
Punto 2.

Sea x(n)={1,2,3,4,5,6,7,6,5,4,3,2,1}, -2≤n≤-10

Punto 2-a:
X1(n)=2x(n-5)-3x(n+4)
Código:
clear all
close all
clc

n=[-2:1:10];
x=[1:1:7,6:-1:1];
[a,b]=sigshift(x,n,5);
[c,d]=sigshift(x,n,-4);
[y,z]=sigadd(2*a,b,-3*c,d);
stem(z,y);
title('Punto 2A (x1[n]=2x[n-5]-3x[n+4])');
xlabel('n');
ylabel('X[n]');
Punto 2-b:
X2(n)=x(3-n) +x(n)x(n-2).

Código:
clear all
close all
clc

n=[-2:1:10];
x=[1:1:7,6:-1:1];
[a,b]=sigfold(x,n);
[a,b]=sigshift(a,b,3);
[c,d]=sigshift(x,n,2);
[c,d]=sigmult(x,n,c,d);
[y,z]=sigadd(a,b,c,d);
stem(z,y,'r');
xlabel('n')
ylabel('X[n]')
title('Punto 2B (x2[n]=x[3-n]+x[n]x[n-2])');
Punto 2-c:
𝑛
𝑥3(𝑛) = ∑ 0.5𝑘
𝑘=0
Código:
clear all
close all
clc

n=[-2:1:10];
x3=2.*(1-0.5.^(n+1));
disp(x3);
stem(n,x3,'k')
title('Punto 2C (x3[n]=Sumatoria desde k=0 hasta k=n de 0.5^k)');
xlabel('n');
ylabel('X[n]');
Gráfica de las cuatro secuencias:
Código:
clear all
close all
clc

subplot(2,2,1);
n=[-2:1:10];
x=[1:1:7,6:-1:1];
[a,b]=sigshift(x,n,5);
[c,d]=sigshift(x,n,-4);
[y,z]=sigadd(2*a,b,-3*c,d);
stem(z,y,'r');
title('Punto 2A (x1[n]=2x[n-5]-3x[n+4])');
xlabel('n');
ylabel('X[n]');

subplot(2,2,2);
n=[-2:1:10];
x=[1:1:7,6:-1:1];
[a,b]=sigfold(x,n);
[a,b]=sigshift(a,b,3);
[c,d]=sigshift(x,n,2);
[c,d]=sigmult(x,n,c,d);
[y,z]=sigadd(a,b,c,d);
stem(z,y,'b');
title('Punto 2B (x2[n]=x[3-n]+x[n]x[n-2])');
xlabel('n');
ylabel('X[n]');

subplot(2,2,3);
n=[-2:1:10];
x3=2.*(1-0.5.^(n+1));
disp(x3);
stem(n,x3,'k')
title('Punto 3C (x3[n]=Sumatoria desde k=0 hasta k=n de 0.5^k)');
xlabel('n');
ylabel('X[n]');
Punto 2-1.

Encontrar si son periódicas o no las señales y en caso de ser periódicas dibujar las gráficas ,
donde se puedan apreciar al menos 4 periodos de la señal. En caso de no ser periódicas
dibujarlas utilizando 51 muestras centradas en zero.

Punto 2-1-a: X4(n)= cos(pi*n/6).


Código:

clear all
close all
clc

%%
n=0:50;
P=cos((1/6)*pi*n)%Las funciones trigonoometricas son comandos de matlab y
se usan para graficar todas las funciones en este punto.
stem(n,P,'g')
title('Punto 2-1A')
xlabel('n')
ylabel('x[n]')
Punto 2-1-b: X5(n)= cos(n/106).
Código:
clear all
close all
clc

n=-25:26;
P=cos((1/106)*n)
stem(n,P,'b')
title('Punto 2-1B')
xlabel('n')
ylabel('X[n]')
Punto 2-1-c: X6(n)= cos(56*pi*n/217).
Código:
clear all
close all
clc

%%
n=0:200;
P=cos((56/217)*pi*n)
stem(n,P,'o')
title('Punto 2-1C')
xlabel('n')
ylabel('x[n]')
Punto 2-1-d: X7(n)= cos(2*pi*n).

Código:
clear all
close all
clc

n=[0:1:4];
x7 = cos((2*pi.*n));
figure(4);
stem(n,x7);
xlabel('n');
ylabel('X[n]');
title('Punto 2-1D');
Punto 2-1-e: X8(n)= cos(0*n).
Código:
clear all
close all
clc

n=[-10:10]
P = cos((0.*n))
stem(n,P,'r')
xlabel('n')
ylabel('X[n]')
title('Punto 2-1E')
Punto 2-1-f: X9(n)= cos(7*pi*n/4).
Código:
clear all
close all
clc

%%
n=0:50;
P=cos((7/4)*pi*n)
stem(n,P,'b')
title('Punto 2-1F')
xlabel('n')
ylabel('x[n]')
Punto 3.

Generar la secuencia compleja, investigar a que corresponde la parte real, la parte


imaginaria, la Magnitud y la fase de esta señal.
X(n)=exp^((-0.1+j0.3)n). -10≤n≤-10
Dibujar su magnitud, su fase, la parte real y la imaginaria en una sola grafica, buscar el uso
de los comandos (real, imag, abs, y angle), en matlab la fase se puede encontrar utilizando
(180/pi*angle()). Poner titulo a cada una de las subgráficas.
Código:
clear all
close all
clc

n=-10:10;
P=exp((-0.1+0.3j)*n)

%%
subplot(2,2,1)
stem(n, real(P),'r') %Se grafica la parte real de la funcion "x" usando
el comando real.
title('Parte Real')
ylabel('X[n]')
xlabel('n')

%%
subplot(2,2,2)
stem(n, imag(P),'b') %Se grafica la parte real de la funcion "x" usando
el comando imag.
title('Parte Imaginaria')
ylabel('x[n]')
xlabel('n')

%%
subplot(2,2,3)
stem(n, abs(P),'b') %Se grafica la parte real de la funcion "x" usando el
comando abs.
title('Magnitud')
ylabel('X[n]')
xlabel('n')

%%
subplot(2,2,4)
stem(n, 180/pi*angle(P), 'k') %Se grafica la parte real de la funcion "x"
usando el comando angle.
title('Fase')
ylabel('X[n]')
xlabel('n')
Punto 4.

Punto 4.1 y 4.2


Encontrar algebraicamente y graficar, la parte par e impar de x(n). Si tenemos que
x1(n)={1,- 2,4,6,-5,8,10}:
Utilizar el comando evenodd para generar la parte par e impar de las tres secuencias
descritas anteriormente, dibujarlas.

Punto 4.1-a: x(n) =u(n)-u(n-10)


Código:
clear all
close all
clc

n=[0:1:10];
x=stepseq(0,0,10)-stepseq(10,0,10);
[xe,xo,m]=evenodd(x,n);
subplot(2,2,1);
stem(m,xe);
title('Parte Par de x[n]=u[n]-u[n-10]')
xlabel('n');
ylabel('xe[n]');
subplot(2,2,2);
stem(m,xo);
title('Parte Impar de x[n]=u[n]-u[n-10]')
xlabel('n');
ylabel('xo[n]');
Punto 4.1-b: x(n)= 5 x1(5+n)+4 x1(n+4)+3 x1(n).
Código:
clear all
close all
clc

n=[0:1:6];
x1=[1 -2 4 6 -5 8 10];
[a,b]=sigshift(x1,n,-5);
[c,d]=sigshift(x1,n,-4);
[e,f]=sigadd(5*a,b,4*c,d);
[y,z]=sigadd(e,f,3*x1,n);
[xe,xo,m]=evenodd(y,z);
subplot(2,2,1);
stem(m,xe);
title('Parte Par')
xlabel('n');
ylabel('xe[n]');
subplot(2,2,3);
stem(m,xo);
title('Parte Impar')
xlabel('n');
ylabel('xo[n]');
Punto 4.1-c: x(n)= 3 x1(2+n)+ x1(n+4)+3 x1(n).

Código:
clear all
close all
clc

n=[0:1:6];
x1=[1 -2 4 6 -5 8 10];
[a,b]=sigshift(x1,n,-2);
[c,d]=sigshift(x1,n,-4);
[e,f]=sigadd(3*a,b,c,d);
[y,z]=sigadd(e,f,3*x1,n);
[xe,xo,m]=evenodd(y,z);
subplot(2,2,1);
stem(m,xe);
title('Parte Par')
xlabel('n');
ylabel('xe[n]');
subplot(2,2,3);
stem(m,xo);
title('Parte Impar')
xlabel('n');
ylabel('xo[n]');
CONCLUSIONES

 Por medio del Software Matlab podemos encontrar solución a secuencias y señales
diseñadas para su respectivo análisis. Además, permite la discretización de dichas
señales, representándolas gráficamente en forma de pulso, con su debida magnitud.
 Teniendo en cuenta las diferentes funciones en Matlab, se pueden generar graficas las
cuales presentan una lectura de las mismas mucho más sencilla.
 Al trabajar señales análogas, pulsos, las gráficas obtenidas me muestran el
comportamiento de una secuencia en determinada variación del tiempo.

BIBLIOGRAFÍA

 MATLAB. (2016). 1st ed. Natick, MA: MathWorks.


 Oppenheim, A. and Willsky, A. (1998). Señales y sistemas. Mé xico, D.F. [etc.]:
Prentice-Hall Hispanoamericana.

You might also like