Está en la página 1de 12

TRABAJO N°1: Señales y sistemas en tiempo discreto

Teoría de procesamiento digital de señales

Luna Alama Michelle - 16190105

FUNCIONES BASICAS:

- La función sigadd realiza la suma de dos secuencias de


cualquier longitud.
function [y,n] = sigadd(x1,n1,x2,n2)
% y(n) = x1(n)+x2(n)
% -----------------------------
% y = suma de secuencias
% x1 = primera secuencia
% x2 = segunda secuencia
%n1= primer vector de posicion
%n2= segundo vector de posicion
n = min(min(n1),min(n2)):max(max(n1),max(n2)); %n incluye tanto
n1 como n2
y1 = zeros(1,length(n)) ; %y1=y2 vectores
con n ceros
y2 = y1;
%x1 y x2 deben tener la misma duracion o tamaño de y1 y/o y2
para ser sumadas
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1; % reemplazamos a x1
en y1 en su posicion respectiva
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2 ;% reemplazamos a x2
en y2 en su posicion original
y = y1+y2;% adicion de señales de la misma longitud

- La función sigmult multiplica dos secuencias de cualquier


longitud.
function [m,n] = sigmult(x1,n1,x2,n2)
% y(n) = x1(n)*x2(n)
% m = multiplicación de secuencias
% x1 = primera secuencia , x2 = segunda secuencia
%n1= primer vector posición , n2= segundo vector posicion
n = min(min(n1),min(n2)):max(max(n1),max(n2)); % tamaño unión
entre n1 y n2
y1 = zeros(1,length(n)); y2 = y1; %y1 y y2 son vectores cero de
tamaño n
%x1 y x2 deben tener la misma duracion o tamaño de y1 y/o y2
para ser multiplicadas
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;
m = y1 .* y2; %’m’ representa la multiplicación elemento a
elemento de las secuencias
- La función sigshift realiza el desplazamiento de la
secuencia
function [y,n]=sigshift(x,n1,k)
%La funcion y(n)=x(n-k)
%k = desplazamiento
%y = vector secuencia
%n= vector posicion desplazado
y=x; n=n1+k;

- La función sigfold refleja la secuencia en el eje y


function [y,n] = sigfold(x,n)
% la funcion definida es
% y(n) = x(-n)
%La funcion fliplr reordena los elementos del ultimo
%al primero
y = fliplr(x); n = -fliplr(n);

EJERCICIO N°4
EJERCICIO N°4.1

%Ejercicio 4.1
%Sea x(n) = {2, 4,-3, 1,-5, 4, 7}
% ?
%Hallar y(n) = 2x(n-3)+3x(n+4)-x(n)
%Para el desplazamiento usaremos "sigshift"
x=[ 2 4 -3 1 -5 4 7]; %Declaramos el vector de secuencia x
n=-3:3; %n es el vector posicion
[x1,n1]=sigshift(2*x,n,3); %declaramos 2x(n-3)
[x2,n2]=sigshift(3*x,n,-4); %definimos 3x(n+4)
%x(n) no presenta desplazamiento
%---------------------------------
%Para realizar las variable de suma y resta usaremos "sigadd"
%[y,n] = sigadd(x1,n1,x2,n2)
[y1,ns]=sigadd(x1,n1,x2,n2); %y1=2x(n-3)+3x(n+4)
[y,nf]=sigadd(y1,ns,-1*x,n); %y(n)=y1-x(n)
%Agregamos parametros a las graficas
subplot(3,1,1);
xlabel('Eje n');
ylabel(' x(n),y1(n),y2(n),-x(n)');
title('Graficas de x(n)');
hold on
grid on
axis([-7.5 6.5 -17 25]);
stem(n,x,'k','filled'); %Grafica de x(n)
%-----------------------------------------------------
subplot(3,1,2);
xlabel('Eje n');
ylabel('y1(n),y2(n),-x(n)');
title('Graficas de 2x(n-3),3x(n+4)y -x(n)');
hold on
grid on
axis([-7.5 6.5 -17 25]);
stem(n1,x1,'b','filled'); %Grafica de 2x(n-3)
%-------------------------------
stem(n2,x2,'g','filled'); %Grafica de 3x(n+4)
%------------------------------
stem(n,-1*x,'r','filled'); %Grafica de -x(n)
legend('2x(n-3)','3x(n+4)','-x(n)');
%--------------------------------------------------
subplot(3,1,3);
stem(nf,y,'m','filled');
axis([-7.5 6.5, -20 26]);
grid on;
title('Grafica de la funcion x1(n)=2x(n-3)+3x(n + 4)-x(n)');
xlabel('Eje n');
ylabel('y(n)');
EJERCICIO N°4.2
%Tenemos x(n) = {2, 4,-3, 1,-5, 4, 7}
%Hallar y(n)=4x(4+n)+5x(n+5)+2x(n)
x=[ 2 4 -3 1 -5 4 7]; %Declaramos el vector de secuencia x
n=-3:3; %n es el vector posicion
%------------------------------------------------------------
[x1,n1]=sigshift(x,n,-4); %declaramos x(n+4)
[x2,n2]=sigshift(x,n,-5); %definimos x(n+5)
%------------------------------------------------------------
%Para realizar las variable de suma y resta usaremos "sigadd"
%[y,n] = sigadd(x1,n1,x2,n2)
[y1,ns]=sigadd(4*x1,n1,5*x2,n2); %y1=4x(4+n)+5x(n+5)
[y,nf]=sigadd(y1,ns,2*x,n); %y(n)=y1+2x(n)
%_-----------------------------------------------------------
%Usamos la funcion subplot para obtener las señales original y
desplazadas
subplot(3,1,1);
%Inicio de los parametros de graficas ----
xlabel('Eje n');
ylabel(' x(n)');
hold on
grid on
title('Grafica de x(n)')
axis([-7.5 4 -5 10]);
%Fin de los parametros de graficas -------
stem(n,x,'k','filled'); %Graficamos x(n)
%--------------------------------------------------------------
subplot(3,1,2);
%Inicio de los parametros de graficas ----
xlabel('Eje n');
ylabel('x1(n),x2(n),2x(n)');
hold on
grid on
title('Graficas de las funciones "2x(n)","4x(n+4)" y
"5x(n+5)"');
axis([-7.5 4 -25 45]);
%Fin de los parametros de graficas -------
stem(n1,4*x1,'b','filled'); %Graficamos 4x(n+4)
%-------------------------------
stem(n2,5*x2,'g','filled'); %Grafica de 5x(n+5)
%------------------------------
stem(n,2*x,'r','filled'); %Grafica de 2x(n)
%--------------------------------
legend('4x(4+n)','5x(n+5)','2x(n)');
%--------------------------------
subplot(3,1,3);
stem(nf,y,'m','filled'); %Grafica de y(n)= 4x(n+4)+5x(n+5)+2x(n)
%Parametros de la grafica
axis([-7.5 4, -25 65]);
grid on;
title('Grafica de la funcion y(n)=4x(4+n)+5x(n+5)+2x(n)');
xlabel('Eje n'); ylabel('y(n)');
EJERCICIO N°4.3
%Ejercicio 4.3
%Sea x(n) = {2, 4,-3, 1,-5, 4, 7}
% ?
%x3(n) = x(n + 3)x(n-2) + x(1-n)x(n + 1)
%----------------------------------------------
x=[ 2 4 -3 1 -5 4 7]; %Declaramos el vector de secuencia x
n=-3:3; %n es el vector posicion
%Para el desplazamiento usaremos "sigshift"
[x1,n1]=sigshift(x,n,-3); %Declaramos x(n+3)
[x2,n2]=sigshift(x,n,2); %Declaramos x(n-2)
[x3,n3]=sigshift(x,n,-1); %Declaramos x(n+1)
%x(1-n)=x(-(n-1)) usaremos la funcion sigfold
%para reflejar la funcion y luego sigshift para el
desplazamiento
[x41,n41]=sigfold(x,n); %Tenemos x(-n)
[x4,n4]=sigshift(x41,n41,1); %Ahora tenemos x(-(n-1))
%-------------------------------------------------
%Denominamos y1(n) y y2(n) como las multiplicaciones
% y1(n)=x(n + 3)x(n-2) y2(n)=x(1-n)x(n + 1)
%Piden y(n)= x(n + 3)x(n-2) + x(1-n)x(n + 1)
%Finalemente y(n)=y1(n)+y2(n)
%Usaremos sigadd y sigshift para la multiplicacion y suma
respectivamente
%---------------------------------------------------------------
----------
[y1,ny1]=sigmult(x1,n1,x2,n2);
[y2,ny2]=sigmult(x3,n3,x4,n4);
%Sumamos los valores finales
[y,n]=sigadd(y1,ny1,y2,ny2);
%Graficamos las señales
subplot(3,1,1);
hold on;
grid on;
axis([-8 8 -40 60]);
stem(n,y,'b','filled');
xlabel('eje n');
ylabel('y(n)');
title(' Grafica de y(n) = x(n+3)x(n-2)+x(1-n)x(n+1)');
grid on;
%-----------------------------
subplot(3,2,3);
hold on;
grid on ;
axis([-8 8 0 30]);
ylabel('y1(n)');
title('y1 = x(n+3)x(n-2)');
stem(ny1,y1,'g','filled');
%-----------------------------
subplot(3,2,4);
hold on;
grid on;
axis([-5 5 -25 30]);
ylabel('y2(n)');
title('y2 = x(1-n)x(n+1)');
stem(ny2,y2,'r','filled');
%------------------------------
subplot(3,2,5);
hold on
grid on
axis([-8 8 -10 10]);
xlabel('eje n');
ylabel('x(n+3)^ x(n-2)');
title('Grafica de "x(n+3)" y "x(n-2)"');
stem(n1,x1,'b','filled');
stem(n2,x2,'k','filled');
legend('x(n+3)','x(n-2)');
%-----------------------------
subplot(3,2,6);
hold on ;
grid on ;
axis([-5 5 -10 10]);
xlabel('eje n');
ylabel('x(n+1) ^ x(-n+1)');
title('Graficas de "x(n+1)" y "x(-n+1)"');
z= stem(n3,x3,'g');
set(z,'markersize',8);
w=stem(n4,x4,'m','filled');
set(w,'markersize',5);
legend('x(n+1)','x(1-n)');
EJERCICIO N°4.4
%Ejercicio 4.1
%Sea x(n) = {2, 4,-3, 1,-5, 4, 7}
%
% Hallar x4(n) = 2exp(0.5n)*x(n)+cos(0.1*?*n)x(n+2) , -10<=n ?
10
x=[ 2 4 -3 1 -5 4 7]; %Declaramos el vector de secuencia x
nx= -3:3; %n es el vector posicion
n= -10:10; %n esta definido para las funciones
%---------------------------------------------------------------
----
%Definimos las señales por separado
%Para el desplazamiento usaremos "sigshift"
[x1,n1]=sigshift(x,nx,-2); %Declaramos x(n+2)
x2=2*exp(0.5*n); %Definimos 2exp(0.5n) donde n esta en el
rango -10:10
x3=cos(0.1*pi*n); %Definimos cos(0.1*pi*n) con rango -10:10
para n
%---------------------------------------------------------------
------
%Multiplicacion de señales
%2exp(0.5n)*x(n) = y1(n) ^ cos(0.1*pi*n)x(n+2)= y2(n)
[y1,ny1]=sigmult(x2,n,x,nx);
[y2,ny2]=sigmult(x3,n,x1,n1);
%Suma de señales
[y,n] = sigadd(y1,ny1,y2,ny2);
%Grafica de las señales
subplot(3,1,1);
hold on;
grid on;
axis([-10 10 -20 80])
xlabel('eje n');
ylabel('y(n)');
title('y=2exp(0.5n)*x(n)+cos(0.1*pi*n)x(n+2)');
stem(n,y,'m','filled');
%-----------------------------
subplot(3,2,3);
hold on;
grid on ;
axis([-10 10 -22 70]);
ylabel('y1(n)');
title('y1= 2exp(0.5n) * x(n)');
stem(ny1,y1,'g','filled');
%-----------------------------
subplot(3,2,4);
hold on;
grid on;
axis([-10 10 -6 10]);
ylabel('y2(n)');
title('y2 = cos(0.1*pi*n) * x(n+2)');
stem(ny2,y2,'y','filled');
%------------------------------
subplot(3,2,5);
hold on
grid on
axis([-10 10 -10 25]);
xlabel('eje n');
ylabel('x(n) , x2(n)');
title('Grafica de "x(n)" y "2*exp(0.5*n)"');
stem(n,x2,'b','filled');
stem(nx,x,'k','filled');
legend('2*exp(0.5*n)','x(n)');
%-----------------------------
subplot(3,2,6);
hold on ;
grid on ;
axis([-10 10 -6 10]);
xlabel('eje n');
ylabel('x1(n) ^ x3(n)');
title('Graficas de "cos(0.1*pi*n)" y "x(n+2)"');
stem(n,x3,'r','filled');
stem(n1,x,'o','filled');
legend('cos(0.1*pi*n)','x(n+2)');

También podría gustarte