Senales y Sistemas Practica 1.10

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 10

Universidad Politecnica Salesiana

PRÁCTICA 1 – SEÑALES Y SISTEMAS - GENERACIÓN Y TRANSFORMACIÓN DE SEÑALES

Integrantes:

Luis Andres Urgilez

Paolo Javier Romero

Jean Pierre Andrede

Cristopher Elias Lopez

OBJETIVO GENERAL
Implementar una aplicación de señales con diferentes variaciones y operaciones en la interfaz gráfica de
Matlab (guide) dando como resultado graficas mostrando sus comportamientos.

RESUMEN
En la siguiente practica se puso a consideración los conocimientos adquiridos en las clases de señales y
sistemas para realizar un programa donde se coteje, se resuelva y se realicen operaciones múltiples de
señales distintas, mostrando su comportamiento mediante un grupo de graficas realizadas por el
programa en cuestión, para lograr analizar el comportamiento de sus señales en diferentes ambientes.

MARCO TEÓRICO
Software Matlab

Un programa computacional para el análisis interactivo y procesos de diseños matemáticos con un


lenguaje de programación especifico, una herramienta para la ingeniería capaz de reducir el tiempo de
calculo de un sin numero de problemas, basado en un algoritmo matemático matricial y arrays
directamente. Con un uso en especifico de apps que permiten ver diferentes datos con sus algoritmos
establecidos.

Escalón unitario.

Es usado en señales y sistemas ya que este puede ser ocupado para representar matemáticamente
hablando a una acción muy común en sistemas físicos reales, con un rápido cambien de un estado a
otro.

Señal signo

Esta muy relacionada con la función anterior, para valores distintos a cero, el resultado de esta función
tiene una magnitud de uno o un signo que sea igual a su relación.

Rampa unitaria.

Un tipo de señal que funciona y varia en un tiempo lineal, y a partir de aquel instante de tiempo variado
su linealidad para desactivarse al instante.
Pulso rectangular unitario

Un tipo de señal de las mas identificadas, ocurre en un sistema en el que una señal X(t) se activa en un
momento en el tiempo y se desactiva casi inmediatamente. Todas las dimensiones de la señal son
iguales a 1.

Pulso triangular unitario.

Se le nombra de esta manera ya que sus dimensiones son iguales es decir su área y su altura variando
únicamente su base.

Señal Sinc

Esta función también está relacionada con la función triangulo. Ya que viene siendo una transformada
de Fourier de la señal inicial en cuestión. Y es llamada de esta manera ya que sus dimensiones como su
altura y su área son equivalentes a 1

DESARROLLO DEL CÓDIGO EN EL SOFTWARE MATLAB


Código para la Rampa unitaria
elseif Seleccion =="Rampa unitaria"

Mo= (A*(t.*((heaviside(Et*(t-(Dt))))))) + off;

valorpar= (Mo-(A*(t.*((heaviside(-Et*(t-(Dt)))))))+ off)/2;

valorimpar= (Mo+(A*(t.*((heaviside(-Et*(t-(Dt)))))))+ off)/2;


plot(app.UIAxes_sum,t,valorimpar);
plot(app.UIAxes_ori,t.*heaviside(t));
plot(app.UIAxes_tras,t,Mo);
plot(app.UIAxes_par,t,valorpar);

p=0;
app.PFT.Value=num2str(p);

Codigo para la señal Sing


elseif Seleccion =="Señal signo"

Mo=(2*A*(heaviside(Et*(t-Dt))))-1 + off;

valorpar= (Mo+ (2*A*(heaviside(-Et*(t-Dt))))-1 + off)/2;


valorimpar= (Mo- (2*A*(heaviside(-Et*(t-Dt))))-1 + off)/2;
plot(app.UIAxes_ori,2.*(heaviside(t))-1);
plot(app.UIAxes_sum,t,valorimpar);
plot(app.UIAxes_tras,t,Mo);
plot(app.UIAxes_par,t,valorpar);

syms t
syms T
p=0;
app.PFT.Value=num2str(p);
e=limit((int(Mo.^2,-T,T)),T,inf);
e=e(1);
app.EFT.Value=sprintf('%2.f',e);

código para la señal rectangular


elseif Seleccion =="Rectangular unitario"

rec=(A*rectangularPulse(Et*(t-Dt)))+ off;

valorpar= (rec+ (A*rectangularPulse(-Et*(t-Dt))+ off))/2;

valorimpar= (rec- (A*rectangularPulse(-Et*(t-Dt)))+ off)/2;

plot(app.UIAxes_sum,t,valorimpar);
plot(app.UIAxes_ori,rectangularPulse(t));
plot(app.UIAxes_par,t,valorpar);
plot(app.UIAxes_tras,t,rec);

syms t
Npinf=(-1/2+Dt)*1/abs(Et);
Npsup=(1/2+Dt)*1/abs(Et);

Amplitudd=A+off;

p=0;
app.PFT.Value=num2str(p);
e= int((Amplitudd)^2,t,Npinf,Npsup);
e=e(1);
app.EFT.Value=sprintf('%2.f',e);
código para la señal triangular
elseif Seleccion =="Triangular Unitario"

Mo=(A*triangularPulse(Et*(t-Dt)))+ off;

valorpar= (Mo+ ((A*triangularPulse(-Et*(t-Dt))))+ off)/2;

valorimpar= (Mo- ((A*triangularPulse(-Et*(t-Dt))))+ off)/2;


plot(app.UIAxes_sum,t,valorimpar);
plot(app.UIAxes_ori,triangularPulse(t));
plot(app.UIAxes_par,t,valorpar);
plot(app.UIAxes_tras,t,Mo);

syms t
Npinf=(-1+Dt)*1/abs(Et);
Npsup=(1+Dt)*1/abs(Et);

% Amplitud y-y1=((y2-y1)/(x2-x1))*(x-x1);
E2=((((A+off)-off)/(((Npsup+Npinf)/2)-Npinf))*(t-Npinf))+off;
E3=((((A+off)-off)/(((Npsup+Npinf)/2)-Npsup))*(t-Npsup))+off;

Energia1= int(E2.^2,t,Npinf,(Npsup+Npinf)/2);
Energia2= int(E3.^2,t,(Npsup+Npinf)/2,Npsup);
e=Energia1+Energia2;
e=e(1);
app.EFT.Value=sprintf('%2.f',e);

p=0;
app.PFT.Value=num2str(p);
código para la señal sinc
%Sinc
elseif Seleccion =="Sinc"

Mo=(A*(sin(Et*pi*(t-Dt))./(Et*pi*(t-Dt))))+off;

valorpar= (Mo+
((A*(sin(-Et*pi*(t-Dt)))./(-Et*pi*(t-Dt))))+off)/2;

valorimpar= (Mo-
(A*(sin(-Et*pi*(t-Dt))./(-Et*pi*(t-Dt))))+off)/2;
plot(app.UIAxes_sum,t,valorimpar);
plot(app.UIAxes_par,t,valorpar);
plot(app.UIAxes_ori,sin(pi*t)./(pi*t));
plot(app.UIAxes_tras,t,Mo);
e='inf';
app.EFT.Value=e;

syms t;
syms T;
p=limit((1/(2*T))*(int(Mo.^2,-T,T)),T,inf);
p=p(1);
app.PFT.Value=num2str(double(p));

código para la señal seno


elseif Seleccion =="Seno"

Mo=(A*sin(Et*(t-Dt)))+off;

valorpar= (Mo+ (A*sin(-Et*(t-Dt)))+off)/2;

valorimpar= (Mo- (A*sin(-Et*(t-Dt)))+off)/2;


plot(app.UIAxes_sum,t,valorimpar);
plot(app.UIAxes_ori,sin(t));
plot(app.UIAxes_tras,t,Mo);
plot(app.UIAxes_par,t,valorpar);
e='inf';
app.EFT.Value=e;
syms t;
syms T;
p=limit((1/(2*T))*(int(Mo.^2,-T,T)),T,inf);
p=p(1);
app.PFT.Value=num2str(double(p));

código para la señal coseno


elseif Seleccion =="Coseno"

Mo=(A*cos(Et*(t-Dt)))+off;

valorpar= (Mo + (A*cos(-Et*(t-Dt)))+off)/2;

valorimpar=(Mo- (A*cos(-Et*(t-Dt)))+off)/2;
plot(app.UIAxes_sum,t,valorimpar);
plot(app.UIAxes_ori,cos(t));
plot(app.UIAxes_tras,t,Mo);
plot(app.UIAxes_par,t,valorpar);
e='inf';
app.EFT.Value=e;

syms t;
syms T;
p=limit((1/(2*T))*(int(Mo.^2,-T,T)),T,inf);
p=p(1);
app.PFT.Value=num2str(double(p));

codigo para la suma de funciones


function SumadeFuncionesButtonPushed(app, event)
Seleccion = app.SealesDropDown.Value
ti=app.ti.Value;
tf=app.tf.Value;
t=ti:0.01:tf;
A=app.Amplitud.Value;
Et=app.Escalamientot.Value;
Dt=-1*app.Desplazamientoti.Value;
off=app.offset.Value;
if Seleccion =="Seleccione la señal"
elseif Seleccion =="Escalon unitario"
Esc= heaviside(t);
Mo= ((A)*(heaviside(Et*(t-(Dt)))))+ off;
Suma= Esc+Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Rampa unitaria"
Ramp=t.*heaviside(t);
Mo= ((A)*(heaviside(Et*(t-(Dt)))))+ off;
Suma= Ramp+Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Señal signo"
Sig=2.*(heaviside(t))-1;
Mo= (2*A*(heaviside(Et*(t-Dt))))-1 + off;
Suma= Sig+Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Rectangular unitario"
Rec=rectangularPulse(t);
Mo= (A*rectangularPulse(Et*(t-Dt)))+ off;
Suma= Rec+Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Triangular Unitario"
Tri=triangularPulse(t);
Mo= (A*triangularPulse(Et*(t-Dt)))+ off;
Suma= Tri+Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Sinc"
Mo=(A*(sin(Et*pi*(t-Dt))./(Et*pi*(t-Dt))))+off;
Sinc=sin(pi*t)./(pi*t);
Suma= Sinc+Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Seno"
Mo=(A*sin(Et*(t-Dt)))+off;
Sen=sin(t);
Suma= Sen+Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Coseno"
Mo=(A*cos(Et*(t-Dt)))+off;
Co=cos(t);
Suma= Co+Mo;
plot(app.UIAxes_impar,Suma);

Codigo para el product de funciones


function ProductodeFuncionesButtonPushed(app, event)
Seleccion = app.SealesDropDown.Value
ti=app.ti.Value;
tf=app.tf.Value;
t=ti:0.01:tf;
A=app.Amplitud.Value;
Et=app.Escalamientot.Value;
Dt=-1*app.Desplazamientoti.Value;
off=app.offset.Value;
if Seleccion =="Seleccione la señal"
elseif Seleccion =="Escalon unitario"
Esc= heaviside(t);
Mo= ((A).*(heaviside(Et.*(t-(Dt)))))+ off;
Suma= Esc.*Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Rampa unitaria"
Ramp=t.*heaviside(t);
Mo= ((A)*(heaviside(Et*(t-(Dt)))))+ off;
Suma= Ramp.*Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Señal signo"
Sig=2.*(heaviside(t))-1;
Mo= (2.*A.*(heaviside(Et.*(t-Dt))))-1 + off;
Suma= Sig.*Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Rectangular unitario"
Rec=rectangularPulse(t);
Mo= (A.*rectangularPulse(Et*(t-Dt)))+ off;
Suma= Rec.*Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Triangular Unitario"
Tri=triangularPulse(t);
Mo= (A.*triangularPulse(Et.*(t-Dt)))+ off;
Suma= Tri.*Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Sinc"
Mo=(A.*(sin(Et.*pi.*(t-Dt))./(Et.*pi.*(t-Dt))))+off;
Sinc=sin(pi*t)./(pi*t);
Suma= Sinc.*Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Seno"
Mo=(A.*sin(Et.*(t-Dt)))+off;
Sen=sin(t);
Suma= Sen.*Mo;
plot(app.UIAxes_impar,Suma);
elseif Seleccion =="Coseno"
Mo=(A.*cos(Et.*(t-Dt)))+off;
Co=cos(t);
Suma= Co.*Mo;
plot(app.UIAxes_impar,Suma);
Grafica de la aplicación

Conclusiones
Para terminar con el siguiente informe, al momento de realizar la programación y ver el resultado final
nos dimos cuente que la aplicación realizada nos reduce considerablemente el tiempo de análisis y de
cálculo para todo tipo de señales, maximizando el resultado y agilitando el tiempo de respuesta para
una señal, dándonos así un ahorro de tiempo considerable al momento de descubrir el comportamiento
de diversas señales que se nos puedan presentar. Tenemos que tomar en consideración los conceptos
estudiados para que el uso del programa sea lo mas aceptable posible, ya que esto es una herramienta
mas en nuestra materia.

Referencias.
file:///C:/Users/Asus/Desktop/programas/programa/Universidad/senales%20y
%20sistemas/Cap1_1_Signals__Systems_Tiempo_Continuo.pdf.

También podría gustarte