Zapata Informe 01
Zapata Informe 01
Zapata Informe 01
Práctica de Laboratorio N° 1
IV.- PROCEDIMIENTO
IV.1 Representación de una señal: En general, una señal quedará representada por un vector fila
o por un vector columna (es decir, por matrices con una única fila o columna). En MATLAB, todos
los vectores se indexan comenzando por el 1, es decir, y[1] es el primer elemento del vector.
Cuando este criterio no coincida con el del problema a resolver (p. ej., porque el primer valor del
vector y corresponda al índice -5), se puede crear un vector adicional de índices.
%Solución IV.1
%Generamos el vector de tiempo discreto
n=-2:3;
%Generamos el vector de la señal discreta
xn=[-0.2,2.2,1.1,0.2,-3.7,2.9];
%Generamos la gráfica discreta con cuadricula
stem(n,xn,"filled",'m-')
grid on
%Añadimos titulos a la grafica
title("Solución IV.1 - Ejemplo de Señal Discreta")
xlabel ("tiempo Discreto n")
ylabel("Señal x[n]")
IV.2 Estudie la instrucción stem usando la ayuda de MATLAB y úsela en los puntos siguientes:
%Solución IV.2.1
%Generamos el vector de tiempo discreto
n=1:4;
%Generamos el vector de señal discreta
xn=[1 3 2 1];
%Generamos la gráfica de la señal discreta con cuadrícula de dimensiones
%pequeñas
stem(n,xn,"filled",'r')
grid on
grid minor
%Añadimos titulos a los ejes de la gráfica
title('Solución IV.2.1')
xlabel('n')
ylabel('x[n]')
%Solución IV.2.2
%Generamos el vector de tiempo discreto
n=-7:7;
%Generamos el vector de la señal discreta
xn=[0 0 0 0 0 0 0 0 1 3 2 1 0 0 0];
%Generamos la gráfica de la señal con una cuadrícula pequeña
stem(n,xn,"filled",'gr')
grid on
grid minor
%Hacemos uso del comando "axis" para redimensionar el tamaño de la gráfica
axis([min(n) max(n) -1 4])
%Añadimos titulos a los ejes de la gráfica
title('Solución IV.2.2')
xlabel('n')
ylabel('x[n]')
IV.2.3. Utilice la forma más eficiente para representar la misma señal en el intervalo [−20,20].
%Solución IV.2.3
%Generamos el vector de tiempo discreto
n=-20:20;
%Generamos el vector de la funcion discreta haciendo uso del comando zeros
%con la finalidad de ser compatible con la dimension del tiempo discreto
xn=[1 3 2 1];
xn=[zeros(1,21) xn zeros(1,16)];
%Generamos la gráfica de la señal discreta con una cuadrícula pequeña
stem(n,xn,"filled",'p')
grid on
grid minor
%Hacemos uso del comando "axis" para redimensionar el tamaño de la gráfica
axis([min(n) max(n) (min(xn)-1) (max(xn)+1)])
%Añadimos los titulos a la gráfica
title('Solución IV.2.3')
xlabel('n')
ylabel('x[n]')
%Solución IV.2.4
%Solucion IV.2.1
%Generamos el vector de tiempo discreto
n=1:4;
%Generamos el vector de señal discreta
xn=[1 3 2 1];
%Hacemos uso del comando "subplot" para poder generar un espacio con las
%tres gráficas
subplot(3,1,1)
%Generamos la gráfica de la señal discreta con una cuadrícula pequeña
stem(n,xn,"filled",'o')
grid on
grid minor
%Hacemos uso del comando "axis" para redimensionar el tamaño de la gráfica
axis([min(n) max(n) (min(xn)-1) (max(xn)+1)])
%Añadimos los titulos de la gráfica
title('Solución IV.2.1')
xlabel('n')
ylabel('x[n]')
%Solución IV.2.2
%Generamos el vector de tiempo discreto
n=-7:7;
%Generamos el vector de señal discreta
xn=[0 0 0 0 0 0 0 0 1 3 2 1 0 0 0];
%Hacemos uso del comando "subplot" para poder generar un espacio con las
%tres gráficas
subplot(3,1,2)
%Generamos la gráfica de la señal discreta con una cuadrícula pequeña
stem(n,xn,"filled",'m')
grid on
grid minor
%Hacemos uso del comando "axis" para redimensionar el tamaño de la gráfica
axis([min(n) max(n) (min(xn)-1) (max(xn)+1)])
%Añadimos los titulos de la gráfica
title('Solución IV.2.2')
xlabel('n')
ylabel('x[n]')
%Solución IV.2.3
%Generamos el vector de tiempo discreto
n=-20:20;
%Generamos el vector de señal discreta
xn1=[1 3 2 1];
xn1=[zeros(1,21) xn1 zeros(1,16)];
%Hacemos uso del comando "subplot" para poder generar un espacio con las
%tres gráficas
subplot(3,1,3)
%Generamos la gráfica de la señal discreta con una cuadrícula pequeña
stem(n,xn1,"filled",'r')
grid on
grid minor
%Hacemos uso del comando "axis" para redimensionar el tamaño de la gráfica
axis([min(n) max(n) (min(xn1)-1) (max(xn1)+1)])
%Añadimos los titulos de la gráfica
title('Solución IV.2.3')
xlabel('n')
ylabel('x[n]')
IV.3. Represente y grafique las siguientes señales: impulso unitario, escalón unitario, rampa y
exponencial.
IV.3.2. Segundo, escriba un programa que grafique las señales indicadas previo ingreso de los
valores inicial y final del intervalo a graficar.
%Solucion IV.4.1
%Definiendo ambas funciones en la interfaz
n=0:30;
x_1=[sin(pi*(n/3))];
x_2=[cos(pi*(n/4))];
IV.4.2.1. 𝑦1 = 𝑥1 + 𝑥2
IV.4.2.2. 𝑦2 = 𝑥1 − 𝑥2
IV.4.2.3. 𝑦3 = 𝑥1.∗ 𝑥2
IV.4.2.4. 𝑦4 = 𝑥1./𝑥2
IV.4.2.5. 𝑦5 = 2 ∗ 𝑥1
IV.4.2.6. 𝑦6 = 𝑥1 .𝑥2
%Solucion IV.4.2
%Generamos las operaciones en el orden establecido
%Solucion IV.4.2.1
y_1=x_1+x_2;
%Solucion IV.4.2.2
y_2=x_1-x_2;
%Solucion IV.4.2.3
y_3=x_1.*x_2;
%Solucion IV.4.2.4
y_4=x_1./x_2;
%Solucion IV.4.2.5
y_5= 2*x_1;
%Solucion IV.4.2.6
y_6=x_1.^(x_2);
%Solucion IV.4.3
%Gráfica IV.4.2.1
%En esta primera operacion podemos observar que es una suma de vectores lo
%que provoca una interaccion sencilla entre ellas, sumando cada elemento de
%ambas matrices y generando una nueva.
stem(n,y_1,"filled",'m')
grid on
grid minor
%Redimensionamos la gráfica para poder obtener una mejor visualización
%mediante el comando "axis"
axis([min(n) max(n) (min(y_1)-1) (max(y_1)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.4.2.1')
xlabel('n')
ylabel('y_1')
%Gráfica IV.4.2.2
%Al igual que la gráfica anterior, la operacion de sustraccion resta cada
%elemento de ambas matrices para poder generar una única
stem(n,y_2,"filled",'r')
grid on
grid minor
%Redimensionamos la gráfica para poder obtener una mejor visualización
%mediante el comando "axis"
axis([min(n) max(n) (min(y_2)-1) (max(y_2)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.4.2.2')
xlabel('n')
ylabel('y_2')
%Gráfica IV.4.2.3
%Caso contrario a las gráficas anteriores al momento de realizar una
%multiplicacion es necesario especificar como se realiza este proceso
%siendo el comando "." crucial para poder realizar la operacion a cada
%elemento de la matriz y generar una ultima con una dimension adecuada
stem(n,y_3,"filled",'g')
grid on
grid minor
%Redimensionamos la gráfica para poder obtener una mejor visualización
%mediante el comando "axis"
axis([min(n) max(n) (min(y_3)-1) (max(y_3)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.4.2.3')
xlabel('n')
ylabel('y_3')
%Gráfica IV.4.2.4
%De forma análoga al gráfico anterior, para realizar le division entre
%matrices es necesario usar el comando "." para evitar incongruencias al
%momento de operar las matrices ya que caso contrario nos dara un valor
%erroneo o incomprensible
stem(n,y_4,"filled",'m')
grid on
grid minor
%Redimensionamos la gráfica para poder obtener una mejor visualización
%mediante el comando "axis"
axis([min(n) max(n) (min(y_4)-1) (max(y_4)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.4.2.4')
xlabel('n')
ylabel('y_4')
%Gráfica IV.4.2.5
%Contrario a lo presentado anteriormente cuando se realiza una
%multiplicación de un vector con un escalar, este ultimo realiza la
%operación con cada componente del vector de forma inmediata permitiendo
%generar un resultado acorde a lo necesario sin necesidad de usar el
%comando "."
stem(n,y_5,"filled",'gr')
grid on
grid minor
%Redimensionamos la gráfica para poder obtener una mejor visualización
%mediante el comando "axis"
axis([min(n) max(n) (min(y_5)-1) (max(y_5)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.4.2.5')
xlabel('n')
ylabel('y_5')
%Gráfica IV.4.2.6
%Finalmente al realizar una potencia es necesario tomar en cuenta que el
%comando "." es necesario ser ubicado en la base para que de esta manera el
%exponente sea único para cada valor dentro del vector logrando obtener lo
%necesario para nuestra gráfica
stem(n,y_6,"filled",'b')
grid on
grid minor
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.4.2.6')
xlabel('n')
ylabel('y_6')
IV.5. Escriba un programa que dadas dos señales previamente definidas permita seleccionar
mediante un menú la operación que se desea realizar entre ellas y el intervalo a graficar.
%Solucion IV.5
%Usando las variables previamente establecidas en el inciso 4.1 y 4.2
%Generamos el menú de selección de operación
fprintf('Seleccione una operación:\n');
fprintf('1. Suma\n');
fprintf('2. Resta\n');
fprintf('3. Multiplicación\n');
fprintf('4. División\n');
fprintf('5. Duplicar\n');
fprintf('6. Exponencial\n');
%Generamos la interfaz de entrada de datos
op= input('Ingrese el número de la operación deseada: ', 's');
nmin=input("Ingrese el n minimo, nmin=");
nmax=input("Ingrese el n maximo, nmax=");
%Generando el intervalo de tiempo de la señal
n_g=nmin:nmax;
%Generando las señales para el intervalo de tiempo deseado
x_1=[sin(pi*(n_g/3))];
x_2=[cos(pi*(n_g/4))];
%Generamos el bucle para las operaciones
switch op
case'1'
resp=x_1+x_2;
o_p='suma';
case'2'
resp=x_1-x_2;
o_p='resta';
case'3'
resp=x_1.*x_2;
o_p='multiplicacion';
case'4'
resp=x_1./x_2;
o_p='division';
case'5'
resp=2*x_1;
o_p='duplicacion';
case'6'
resp=x_1.^x_2;
o_p='exponencial';
otherwise
disp('Selección no válida');
return;
end
%Generamos las gráficas de las operaciones
stem(n_g,resp,"filled",'g')
grid on
grid minor
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.5',sprintf('Operacion: %s',o_p))
xlabel('n')
ylabel('y')
IV.4.2.1. 𝑦1 = 𝑥1 + 𝑥2
%Solución 4.2.1
%Realizando la operación de señales(y1=x1+x2)
y_1=x1+x2;
%Agrupamos todas las gráficas en un solo cuadro para determinar su
%periodicidad de las tres señales
subplot(3,1,1)
stem(n,x1,'filled');
grid on
grid minor
title('Solucion de periodicidad 4.2.1')
ylabel('Señal x1');
subplot(3,1,2)
stem(n,x2,'filled');
grid on
grid minor
ylabel('Señal x2');
subplot(3,1,3)
stem(n,y_1,'filled','g');
grid on
grid minor
ylabel('Señal x1+x2');
xlabel('Tiempo discreto n');
Para este primer caso al ser una suma de matrices podemos observar que la señal mostrada
en verde si posee periodicidad siendo que su periodo es de 𝑇 = 24
IV.4.2.2. 𝑦2 = 𝑥1 − 𝑥2
figure()
%Solución 4.2.2
%Realizando la operación de señales(y1=x1+x2)
y_2=x1-x2;
%Agrupamos todas las gráficas en un solo cuadro para determinar su
%periodicidad de las tres señales
subplot(3,1,1)
stem(n,x1,'filled');
grid on
grid minor
title('Solucion de periodicidad 4.2.2')
ylabel('Señal x1');
subplot(3,1,2)
stem(n,x2,'filled');
grid on
grid minor
ylabel('Señal x2');
subplot(3,1,3)
stem(n,y_2,'filled','b');
grid on
grid minor
ylabel('Señal x1-x2');
xlabel('Tiempo discreto n');
Para este segundo caso al ser una sustracción de matrices también encontramos que la señal
posee periodicidad, siendo este en 𝑇 = 24
IV.4.2.3. 𝑦3 = 𝑥1.∗ 𝑥2
figure()
%Solución 4.2.3
%Realizando la operación de señales(y1=x1+x2)
y_3=x1.*x2;
%Agrupamos todas las gráficas en un solo cuadro para determinar su
%periodicidad de las tres señales
subplot(3,1,1)
stem(n,x1,'filled');
grid on
grid minor
title('Solucion de periodicidad 4.2.3')
ylabel('Señal x1');
subplot(3,1,2)
stem(n,x2,'filled');
grid on
grid minor
ylabel('Señal x2');
subplot(3,1,3)
stem(n,y_3,'filled','m');
grid on
grid minor
ylabel('Señal x1*x2');
xlabel('Tiempo discreto n');
Para este tercer caso al ser una multiplicación entre matrices hallamos que la señal si posee
periodicidad, siendo este en 𝑇 = 24
IV.4.2.4. 𝑦4 = 𝑥1./𝑥2
figure()
%Solución 4.2.4
%Realizando la operación de señales(y1=x1+x2)
y_4=x1./x2;
%Agrupamos todas las gráficas en un solo cuadro para determinar su
%periodicidad de las tres señales
subplot(3,1,1)
stem(n,x1,'filled');
grid on
grid minor
title('Solucion de periodicidad 4.2.4')
ylabel('Señal x1');
subplot(3,1,2)
stem(n,x2,'filled');
grid on
grid minor
ylabel('Señal x2');
subplot(3,1,3)
stem(n,y_4,'filled','g');
grid on
grid minor
ylabel('Señal x1/x2');
xlabel('Tiempo discreto n');
Para este cuarto caso, al ser una división entre matrices encontramos cierta discrepancia
debido a que se presentan valores muy cercanos a cero mas existen algunos que no toman
esta aproximación concretando que en este caso no existe periodicidad.
IV.4.2.5. 𝑦5 = 2 ∗ 𝑥1
figure()
%Solución 4.2.5
%Realizando la operación de señales(y1=x1+x2)
y_5=2*x1;
%Agrupamos todas las gráficas en un solo cuadro para determinar su
%periodicidad de las tres señales
subplot(3,1,1)
stem(n,x1,'filled');
grid on
grid minor
title('Solucion de periodicidad 4.2.5')
ylabel('Señal x1');
subplot(3,1,2)
stem(n,x2,'filled');
grid on
grid minor
ylabel('Señal x2');
subplot(3,1,3)
stem(n,y_5,'filled','r');
grid on
grid minor
ylabel('Señal 2*x1');
xlabel('Tiempo discreto n');
Para este quinto caso al ser una multiplicación por un escalar se muestra de forma muy clara
que esta señal posee una periodicidad de 𝑇 = 6
IV.4.2.6. 𝑦6 = 𝑥1 .^𝑥2
figure()
%Solución 4.2.6
%Realizando la operación de señales(y1=x1+x2)
y_6=x1.^x2;
%Agrupamos todas las gráficas en un solo cuadro para determinar su
%periodicidad de las tres señales
subplot(3,1,1)
stem(n,x1,'filled');
grid on
grid minor
title('Solucion de periodicidad 4.2.6')
ylabel('Señal x1');
subplot(3,1,2)
stem(n,x2,'filled');
grid on
grid minor
ylabel('Señal x2');
subplot(3,1,3)
stem(n,y_6,'filled','m');
grid on
grid minor
ylabel('Señal x1^x');
xlabel('Tiempo discreto n');
Para este último caso al ser una exponencial entre matrices encontramos que la mayoría de los
valores son cercanos a cero más esto no es constante por lo que podemos afirmar que esta
señal no posee periodicidad
TRANSFORMACIONES
IV.6.1. Defina la siguiente función discreta, 𝑥[𝑛] = {2,3,4,5,6,7}, en el intervalo −5 < 𝑛 < 5
%Solucion IV.6.2
%Solucion IV.6.2.1
%Al desplazar los valores de x[n] y los plasmamos en y[n] obtenemos que n
%empieza de n=-5 entonces para el primer valor tenemos y[-5]=x[-5-3]=x[-8]=0,
y[2]=x[2-3]=x[-1]=3 y el
%ultimo valor es y[7]=x[7-3]=x[4]=0
y_h=[zeros(1,6) 2 3 4 5 6 7 0];
n_1=-5:1:7;
x_g=[0 0 0 2 3 4 5 6 7 0 0 0 0];
%Generando la comparacion entre las señales
subplot(2,1,1)
stem(n_1,y_h,'filled','g')
title('SOLUCION IV.6.2.1')
ylabel('señal modificada_1')
grid on
grid minor
subplot(2,1,2)
stem(n_1,x_g,'filled','g')
ylabel('señal original')
xlabel('tiempo discreto')
grid on
grid minor
figure()
%Solucion IV.6.2.2
%Al desplazar los valores de x[n] y los plasmamos en f[n] obtenemos que n
%empieza de n=-5 entonces para el primer valor tenemos f[-5]=x[-5+2]=x[-3]=0,
f[1]=x[1+2]=x[3]=7 y el
%ultimo valor es f[5]=x[5+2]=x[7]=0
f_h=[0 2 3 4 5 6 7 0 0 0 0];
%Generando la comparacion entre las señales
subplot(2,1,1)
stem(n,f_h,'filled','g')
title('SOLUCION IV.6.2.2')
ylabel('señal modificada_2')
grid on
grid minor
subplot(2,1,2)
stem(n,x_h,'filled','g')
ylabel('señal original')
xlabel('tiempo discreto')
grid on
grid minor
figure()
%Solucion IV.6.2.3
%Al desplazar los valores de x[n] y los plasmamos en g[n] obtenemos que n
%empieza de n=-5 entonces para el primer valor tenemos g[-5]=x[-(-5)]=x[5]=0,
g[0]=x[-(0)]=x[0]=4 y el
%ultimo valor es g[5]=x[-(5)]=x[-5]=0
g_h=[0 0 7 6 5 4 3 2 0 0 0];
%Generando la comparacion entre las señales
subplot(2,1,1)
stem(n,g_h,'filled','m')
title('SOLUCION IV.6.2.3')
ylabel('señal modificada_3')
grid on
grid minor
subplot(2,1,2)
stem(n,x_h,'filled','m')
ylabel('señal original')
xlabel('tiempo discreto')
grid on
grid minor
figure()
%Solucion IV.6.2.4
%Al desplazar los valores de x[n] y los plasmamos en h[n] obtenemos que n
%empieza de n=-5 entonces para el primer valor tenemos h[-5]=x[-(-
5)+1]=x[6]=0, h[-2]=x[-(-2)+1]=x[3]=7 y el
%ultimo valor es h[5]=x[-(5)+1]=x[-4]=0
h_h=[0 0 0 7 6 5 4 3 2 0 0];
%Generando la comparacion entre las señales
subplot(2,1,1)
stem(n,h_h,'filled','b')
title('SOLUCION IV.6.2.4')
ylabel('señal modificada_4')
grid on
grid minor
subplot(2,1,2)
stem(n,x_h,'filled','b')
ylabel('señal original')
xlabel('tiempo discreto')
grid on
grid minor
figure()
%Solucion IV.6.2.5
%Al desplazar los valores de x[n] y los plasmamos en s[n] obtenemos que n
%empieza de n=-5 entonces para el primer valor tenemos s[-5]=x[-(-5)-
2]=x[3]=7,s[0]=x[-(0)-2]=x[-2]=2 y el
%ultimo valor es h[5]=x[-7]=0
s_h=[7 6 5 4 3 2 zeros(1,5)];
%Generando la comparacion entre las señales
subplot(2,1,1)
stem(n,s_h,'filled','g')
title('SOLUCION IV.6.2.5')
ylabel('señal modificada_5')
grid on
grid minor
subplot(2,1,2)
stem(n,x_h,'filled','g')
ylabel('señal original')
xlabel('tiempo discreto')
grid on
grid minor
figure()
% Definir la señal
x = [4, -2, 4, -6];
% Punto de inicio
inicio = -2; % El segundo elemento (índice 2) es un 4.
% Determinar la parte par
parte_par = (x + fliplr(x)) / 2;
% Determinar la parte impar
parte_impar = (x - fliplr(x)) / 2;
% Graficar la señal original y las partes par e impar
n = inicio:(inicio+length(x)-1);
%Comprobando:
comproba=(parte_par)+parte_impar;
%Primera grafica:
subplot(4, 1, 1);
stem(n, x, 'r', 'Marker', 'o', 'LineWidth', 1.5);
title('Señal Original');
xlabel('n');
ylabel('x[n]');
grid on;
%Segunda grafica:
subplot(4, 1, 2);
stem(n, parte_par, 'b', 'Marker', 'x', 'LineWidth', 1.5);
title('Parte Par');
xlabel('n');
ylabel('P[n]');
grid on;
%Tercera grafica:
subplot(4, 1, 3);
stem(n, parte_impar, 'g', 'Marker', '+', 'LineWidth', 1.5);
title('Parte Impar');
xlabel('n');
ylabel('I[n]');
grid on;
%Cuarta grafica:
subplot(4, 1, 4);
stem(n,comproba, 'r', 'Marker', 'o', 'LineWidth', 1.5);
title('Comprobación');
xlabel('n');
ylabel('x[n]');
grid on;
% Añadir un título general
sgtitle('Señal Original y sus Partes Par e Impar');
function [x]=impulso(nmin,nmax)
x=[zeros(1,abs(nmin)) 1 zeros(1,nmax)];
end
function [y]=escalon(nmin,nmax)
y=[zeros(1,abs(nmin)) ones(1,nmax+1)];
end
function [z]=rampa(nmin,nmax)
for i=1:nmax
d_n(i)=i;
end
z=[zeros(1,abs(nmin)+1) d_n];
end
function [w]=exponencial(nmin,nmax)
w=[exp(nmin:nmax)];
end
V. CONCLUSIONES:
• Se observa que existe una versatilidad de representar una señal y en este caso
de ingresar los valores de esta.