Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Zapata Informe 01

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 43

Procesamiento Digital de Señales - Semestre 8

Práctica de Laboratorio N° 1

Nombres y Apellidos: Cesar Augusto Zapata Zuñiga

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:

IV.2.1 Representar la señal x[n] definida por:

%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]')

IV.2.2. Represente la misma señal en un intervalo [-7,7]

%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]')

IV.2.4. Grafique las señales generadas en ventanas diferentes y simultaneas.

%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.1. Primero grafique las señales directamente desde la ventana de comandos.

%Solución IV.3.1 - Señal impulso unitario


figure()
%Generamos el vector de tiempo discreto
n=-5:5;
%Generamos el vector de señal discreta
dn=[0 0 0 0 0 1 0 0 0 0 0];
%Generamos la gráfica de señal discreta con una cuadrícula pequeña
stem(n,dn,"filled",'gr')
grid on
grid minor
%Redimensionamos la gráfica con el comando axis
axis([min(n) max(n) (min(dn)-1) (max(dn)+1)])
%Añadimos título a ejes y gráfica
title('Solución IV.3.1 - Señal impulso unitario')
xlabel('n')
ylabel('d[n]')
%Solución IV.3.1 - Señal escalon unitario
%Generamos el vector de tiempo discreto
n=-3:3;
%Generamos el vector de señal discreta
dn=[zeros(1,3) ones(1,4)];
%Generamos la gráfica de señal discreta con una cuadrícula pequeña
stem(n,dn,"filled",'p')
grid on
grid minor
%Redimensionamos la gráfica con el comando axis
axis([min(n) max(n) (min(dn)-1) (max(dn)+1)])
%Añadimos título a ejes y gráfica
title('Solución IV.3.1 - Señal Escalon unitario')
xlabel('n')
ylabel('d[n]')
%Solución IV.3.1 - Señal rampa
%Generamos el vector de tiempo discreto
n=-4:4;
%Generamos el vector de señal discreta
dn=[zeros(1,5) 1 2 3 4];
%Generamos la gráfica de señal discreta con una cuadrícula pequeña
stem(n,dn,"filled",'s')
grid on
grid minor
%Redimensionamos la gráfica con el comando axis
axis([min(n) max(n) (min(dn)-1) (max(dn)+1)])
%Añadimos título a ejes y gráfica
title('Solución IV.3.1 - Señal Rampa')
xlabel('n')
ylabel('d[n]')

%Solución IV.3.1 - Señal exponencial


%Generamos el vector de tiempo discreto
n=-5:5;
%Generamos el vector de señal discreta
dn=[exp(-5:5)];
%Generamos la gráfica de señal discreta con una cuadrícula pequeña
stem(n,dn,"filled",'b')
grid on
grid minor
%Redimensionamos la gráfica con el comando axis
axis([min(n) max(n) (min(dn)-1) (max(dn)+1)])
%Añadimos título a ejes y gráfica
title('Solución IV.3.1 - Señal exponencial')
xlabel('n')
ylabel('d[n]')

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.

%Solución IV.3.2-Impulso unitario


%Definimos las variables de ingreso
nmin=input("Ingrese el n minimo, nmin=");
nmax=input("Ingrese el n maximo, nmax=");
%Generamos el vector de tiempo discreto en base a los datos obtenidos
n=nmin:nmax;
%Generamos la condición de la señal discreta (comportamiento)
dn=[zeros(1,abs(nmin)) 1 zeros(1,nmax)];
%Graficamos la señal en base a los datos de entrada
stem(n,dn,"filled",'p')
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(dn)-1) (max(dn)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.3.2-Impulso unitario')
xlabel('n')
ylabel('d[n]')
%Solución IV.3.2-Escalon unitario
%Definimos las variables de ingreso
nmin=input("Ingrese el n minimo, nmin=");
nmax=input("Ingrese el n maximo, nmax=");
%Generamos el vector de tiempo discreto en base a los datos obtenidos
n=nmin:nmax;
%Generamos la condición de la señal discreta (comportamiento)
dn=[zeros(1,abs(nmin)) ones(1,nmax+1)];
%Graficamos la señal en base a los datos de entrada
stem(n,dn,"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(dn)-1) (max(dn)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.3.2-Escalon Unitario')
xlabel('n')
ylabel('d[n]')
%Solución IV.3.2-Rampa
%Definimos las variables de ingreso
nmin=input("Ingrese el n minimo, nmin=");
nmax=input("Ingrese el n maximo, nmax=");
%Generamos el vector de tiempo discreto en base a los datos obtenidos
n=nmin:nmax;
%Generamos la condición de la señal discreta (comportamiento)
%Generamos la condicion adicional del sistema
for i=1:nmax
d_n(i)=i
end
dn=[zeros(1,abs(nmin)+1) d_n];
%Graficamos la señal en base a los datos de entrada
stem(n,dn,"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(dn)-1) (max(dn)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.3.2-Rampa')
xlabel('n')
ylabel('d[n]')
%Solución IV.3.2-Exponencial
%Definimos las variables de ingreso
nmin=input("Ingrese el n minimo, nmin=");
nmax=input("Ingrese el n maximo, nmax=");
%Generamos el vector de tiempo discreto en base a los datos obtenidos
n=nmin:nmax;
%Generamos la condición de la señal discreta (comportamiento)
dn=[exp(n)];
%Graficamos la señal en base a los datos de entrada
stem(n,dn,"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(dn)-1) (max(dn)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.3.2-Exponencial')
xlabel('n')
ylabel('d[n]')
IV.3.3. Tercero, escriba funciones que grafiquen las señales indicadas previo ingreso de los valores
inicial y final del intervalo a graficar.

%Solución IV.3.3-Impulso unitario


%Definimos las variables de ingreso
nmin=input("Ingrese el n minimo, nmin=");
nmax=input("Ingrese el n maximo, nmax=");
%Generamos el vector de tiempo discreto en base a los datos obtenidos
n=nmin:nmax;
%Generamos la condición de la señal discreta (comportamiento)
%Hacemos uso de la función "impulso" para generar nuestra señal
[dn]=impulso(nmin,nmax);
stem(n,dn,"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(dn)-1) (max(dn)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.3.3-Impulso unitario')
xlabel('n')
ylabel('d[n]')
%Solución IV.3.3-Escalon unitario
%Definimos las variables de ingreso
nmin=input("Ingrese el n minimo, nmin=");
nmax=input("Ingrese el n maximo, nmax=");
%Generamos el vector de tiempo discreto en base a los datos obtenidos
n=nmin:nmax;
%Generamos la condición de la señal discreta (comportamiento)
%Hacemos uso de la función "escalon" para generar nuestra señal
[dn]=escalon(nmin,nmax);
%Graficamos la señal en base a los datos de entrada
stem(n,dn,"filled",'b')
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(dn)-1) (max(dn)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.3.3-Escalon Unitario')
xlabel('n')
ylabel('d[n]')
%Solución IV.3.3-Rampa
%Definimos las variables de ingreso
nmin=input("Ingrese el n minimo, nmin=");
nmax=input("Ingrese el n maximo, nmax=");
%Generamos el vector de tiempo discreto en base a los datos obtenidos
n=nmin:nmax;
%Generamos la condición de la señal discreta (comportamiento)
%Hacemos uso de la función "rampa" para generar nuestra señal
[dn]=rampa(nmin,nmax);
%Graficamos la señal en base a los datos de entrada
stem(n,dn,"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(dn)-1) (max(dn)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.3.3-Rampa')
xlabel('n')
ylabel('d[n]')
%Solución IV.3.3-Exponencial
%Definimos las variables de ingreso
nmin=input("Ingrese el n minimo, nmin=");
nmax=input("Ingrese el n maximo, nmax=");
%Generamos el vector de tiempo discreto en base a los datos obtenidos
n=nmin:nmax;
%Generamos la condición de la señal discreta (comportamiento)
%Hacemos uso de la función "exponencial" para generar nuestra señal
[dn]=exponencial(nmin,nmax);
%Graficamos la señal en base a los datos de entrada
stem(n,dn,"filled",'b')
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(dn)-1) (max(dn)+1)])
% Añadimos los titulos correspondientes de la gráfica para diferenciarla
title('Solución IV.3.3-Exponencial')
xlabel('n')
ylabel('d[n]')
IV.4.1. Defina las siguientes señales:

x1[𝑛] = 𝑠𝑒𝑛(𝜋𝑛/3) ; 𝑛𝜖[0 ∶ 30]

x2[𝑛] = 𝑐𝑜𝑠(𝜋𝑛/4) ; 𝑛𝜖[0 ∶ 30]

%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. Realice las siguientes operaciones:

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);

IV.4.3. Explique cada una de ellas y grafique su resultado en ventanas independientes.

%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')

Seleccione una operación:


1. Suma
2. Resta
3. Multiplicación
4. División
5. Duplicar
6. Exponencial

ANALIZANDO LA PERIODICIDAD DE UNA OPERACION CON SEÑALES DISCRETAS

%Definiendo las señales constantes y periodicas


%Generando la señal discreta x1
n=0:60;
x1=sin(pi*n/3);
%Generando la señal discreta x2
x2=sin(pi*n/4);
%Generando el tiempo discreto
n=0:60;

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

PERIODICIDAD DE SEÑALES ARMÓNICAS DE TIEMPO CONTINUO

%Definimos los parametros para una señal continua


A=1;
fase=0;
f_A=1000;%Herzios(Hz)
T=1/f_A;
t=0:T/100:3*T;
xt=A*sin(2*pi*f_A*t+fase);
plot(t,xt,'g');
title('Periodicidad de una señal de tiempo continuo')
grid on
grid minor
PERIODICIDAD DE SEÑALES ARMÓNICAS DE TIEMPO DISCRETO

%Realizamos la transformacion hacia una señal discreta


A=1;
fase=0;
F=1/10;
n=0:30;
xn=A*sin(2*pi*F*n+fase);
stem(n,xn,"filled");
title('Periodicidad de una señal de tiempo discreto')
grid on
grid minor
ANALIZANDO LA PERIODICIDAD DE UNA OPERACION CON SEÑALES DISCRETAS

%Generando la señal discreta x1


n=0:60;
x1=sin(pi*n/3);
%Generando la señal discreta x2
x2=sin(pi*n/4);
%Generando el tiempo discreto
n=0:60;
%Realizando la operación de señales
y_1=x1+x2;
subplot(3,1,1)
stem(n,x1,'filled');
title('Comprobacion de la periodicidad de una operacion de señales discretas')
ylabel('señal_1')
grid on
grid minor
subplot(3,1,2)
stem(n,x2,'filled');
ylabel('señal_2')
grid on
grid minor
subplot(3,1,3)
stem(n,y_1,'filled');
ylabel('operacion de señales')
xlabel('tiempo discreto')
grid on
grid minor

TRANSFORMACIONES

IV.6.1. Defina la siguiente función discreta, 𝑥[𝑛] = {2,3,4,5,6,7}, en el intervalo −5 < 𝑛 < 5

%Definiendo la señal original


figure()
x_h=[0 0 0 2 3 4 5 6 7 0 0];
n=-5:1:5;
stem(n,x_h,'filled')
title('Señal discreta original')
grid on
grid minor
IV.6.2. A partir de la señal 𝑥[𝑛] defina las siguientes señales:

IV.6.2.1. 𝑦[𝑛] = 𝑥[𝑛 − 3]

IV.6.2.2. 𝑓[𝑛] = 𝑥[𝑛 + 2]

IV.6.2.3. 𝑔[𝑛] = 𝑥[−𝑛]

IV.6.2.4. ℎ[𝑛] = 𝑥[−𝑛 + 1]

IV.6.2.5. 𝑠[𝑛] = 𝑥[−𝑛 − 2]

%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

IV.7.Sea la señal 𝑥[𝑛]={4,−2,4^,−6} Determine y grafique sus partes par e impar.

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');

%Finalmente procedemos a generar todas las funciones de las señales

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 concluye que la forma de analizar las señales continuas y transformarlas a


discretas es bastante completa y logra generar un entendimiento muy preciso de
las mismas.

• Se observa que es necesario reconocer las magnitudes y características de la


señal para poder reconocer ciertas propiedades de la misma.

• Se concluye que es necesario establecer parámetros adecuados para realizar la


discretización de las señales para poder realizar un buen análisis.

• Se observa que existe una versatilidad de representar una señal y en este caso
de ingresar los valores de esta.

• Se concluye que existe una gran variedad de procesos o algoritmos mediante


los cuales analizamos una señal en concreto para reconocerla y clasificarla.

También podría gustarte