% Las señales, son cantidades o variables fisicas detectables, a %traves de las cuales, se pueden transmitir mensajes o informacion. Una % amplia gama de señales, son de gran importancia en la descripcion %de fenomenos fisicos. % % Matematicamente, las señales son representadas como funciones %de una o mas variables independientes. Por ejemplo, una señal de %corriente o voltaje variable en el tiempo son funciones de una variable %(el tiempo). La intensidad del Campo Electrico es una funcion de dos %variables (espacio y tiempo). % % En este pequeño tutorial, se enfocan las señales elementales, que %no solo ocurren con frecuencia en la naturaleza, sino que tambien sirven %como bloques basicos a partir de los cuales se pueden construir muchas %otras señales, como se observara en los ejemplos. % % Si por alguna razon debe interrumpir el programa, pulse las teclas: % "control C" % % % home, clear sesion,close figure(gcf), cplxroot(3), axis off, text(-1.7, -1, 2.9, 'Analisis De Señales','FontSize',[18],'color','r') text(-1.5, 1, -1.2, 'Copyright@.1998','FontSize',[11],'color','y') text(-1.9, 0.5, -1.3, 'Br. Catalano Carla','FontSize',[11],'color','y') text(-1.9, 0.5, -1.5, 'Br. Duran Nelson','FontSize',[11],'color','y') text(-1.9, 0.5, -1.7, 'Br. Ramírez José','FontSize',[11],'color','y') spinmap(6), close(1) m=1; while m~=5 m=menu('MENU DE OPCIONES', 'Señal en Función de Señales Elementales',... 'Señal Puerta','Señal Pulso','Acerca de...','Salir'); if m==1 n=menu('Señal en Función de Señales Elementales','Ejemplo 1','Ejemplo 2'); if n==1 home figure(clf), clf subplot(121); axis([-3,9,-7,7]); grid hold on disp('Ejemplo 1: ') disp(blanks(2)') disp(' En el grafico de la ventana ') disp('izquierda se observa, una señal,') disp('cualquiera. ') disp(blanks(1)') disp(' En el grafico de la ventana ') disp('derecha se construira la señal ') disp('a partir de las señales elementales. ') disp('') disp(blanks(1)') disp(' Debe presionar "enter" varias ') disp('veces, y podra observar cada vez ') disp('que lo haga, que aparecera una ') disp('señal elemental, primero en el ') disp('origen (como la rampa roja que ') disp('se observa inicialmente), luego ') disp('desplazadas y/o escaladas y final_') disp('mente, un segmento amarillo, que ') disp('se obtiene al sumar las señales') disp('elementales.') disp(blanks(4)') t=-2:0.01:0; y=t+2; plot(t,y,'.'), a=0:0.01:2; b=2+a-a; plot(a,b,'.'); a=2:0.01:4; b=4+a-a; plot(a,b,'.'); t=4:0.01:6; y=t-6; plot(t,y,'.'), a=6:0.01:8; b=0+a-a; plot(a,b,'.'); subplot(122); axis([-3,9,-7,7]); grid hold on t=-2:0.01:10; y=t+2; plot(t,y,'r'), pause t=-2:0.01:0; y=t+2; plot(t,y,'.'), pause t=0:0.01:10; y=-t+2; plot(t,y,'b'), pause a=0:0.01:10; b=2+a-a; plot(a,b,'m'); pause a=0:0.01:2; b=2+a-a; plot(a,b,'.'); pause a=2:0.01:10; b=2+a-a; plot(a,b,'w'); pause a=2:0.01:10; b=4+a-a; plot(a,b,'g'); pause a=2:0.01:4; b=4+a-a; plot(a,b,'.'); pause a=4:0.01:10; b=-6+a-a; plot(a,b,'r'); pause a=4:0.01:10; b=-2+a-a; plot(a,b,'b'); pause t=4:0.01:10; y=t-4; plot(t,y,'m'), pause t=4:0.01:10; y=t-6; plot(t,y,'w'), pause t=4:0.01:6; y=t-6; plot(t,y,'.'), pause t=6:0.01:10; y=-t+6; plot(t,y,'g'), pause a=6:0.01:10; b=0+a-a; plot(a,b,'r'); pause a=6:0.01:8; b=0+a-a; plot(a,b,'.'); pause close(1) elseif n==2 home figure(clf), clf disp(blanks(2)') disp('Ejemplo 2: ') disp(blanks(2)') disp(' En el grafico de la ventana ') disp('izquierda se observara, una señal,') disp('cualquiera a medida que ud. presione ') disp('"enter". ') disp(blanks(1)') disp(' En el grafico de la ventana ') disp('derecha se construira la señal ') disp('a partir de las señales elementales. ') disp('') disp(blanks(1)') disp(' Debe presionar "enter" varias ') disp('veces, y podra observar cada vez ') disp('que lo haga, que aparecera una ') disp('señal elemental, primero en el ') disp('origen (como la rampa roja que ') disp('se observa inicialmente), luego ') disp('desplazadas y/o escaladas y final_') disp('mente, un segmento amarillo, que ') disp('se obtiene al sumar las señales') disp('elementales.') subplot(121); axis([-5,11,-7,7]); grid hold on t=-4:0.01:-2; y=-t-4; hold on plot(t,y,'.'), pause a=-2:0.01:0; b=4+a-a; plot(a,b,'.'); pause t=0:0.01:2; y=t+0; plot(t,y,'.'), pause a=2:0.01:4; b=4+a-a; plot(a,b,'.'); pause t=4:0.01:8; y=t-6; plot(t,y,'.'), pause a=8:0.01:11; b=0+a-a; plot(a,b,'.'); pause subplot(122); axis([-5,11,-7,7]); grid hold on t=-4:0.01:11; y=-t-4; plot(t,y,'r'), pause t=-4:0.01:-2; y=-t-4; plot(t,y,'.'), pause t=-2:0.01:11; y=t+0; plot(t,y,'m'), pause a=-2:0.01:11; b=-2+a-a; plot(a,b,'b'); pause a=-2:0.01:11; b=6+a-a; plot(a,b,'w'); pause a=-2:0.01:11; b=4+a-a; plot(a,b,'g'); pause a=-2:0.01:0; b=4+a-a; plot(a,b,'.'); pause a=0:0.01:11; b=-4+a-a; plot(a,b,'m'); pause a=0:0.01:11; b=0+a-a; plot(a,b,'r'); pause t=0:0.01:11; y=t+0; plot(t,y,'r'), pause t=0:0.01:2; y=t+0; plot(t,y,'.'), pause t=2:0.01:11; y=-t+4; plot(t,y,'b'), pause a=2:0.01:11; b=2+a-a; plot(a,b,'g'); pause a=2:0.01:11; b=2+a-a; plot(a,b,'r'); pause a=2:0.01:11; b=4+a-a; plot(a,b,'m'); pause a=2:0.01:4; b=4+a-a; plot(a,b,'.'); pause a=4:0.01:11; b=-6+a-a; plot(a,b,'w'); pause a=4:0.01:11; b=-2+a-a; plot(a,b,'r'); pause t=4:0.01:11; y=t-4; plot(t,y,'w'), pause t=4:0.01:11; y=t-6; plot(t,y,'b'), pause t=4:0.01:8; y=t-6; plot(t,y,'.'), pause t=8:0.01:11; y=-t+10; plot(t,y,'m'), pause a=8:0.01:11; b=2+a-a; plot(a,b,'b'); pause a=8:0.01:11; b=-2+a-a; plot(a,b,'m'); pause a=8:0.01:11; b=0+a-a; plot(a,b,'.'); spinmap, pause, close(1) end sen elseif m==2 clear home disp(blanks(1)') disp(' SEÑAL PUERTA ') disp(blanks(3)') disp(' La señal puerta tiene la siguiente definición: ') disp(blanks(1)') disp(' g(t1,t2) = 1 t1 para continuar. ') disp(blanks(2)') pause t=0:0.05:8; y=1+t-t; figure(gcf) clf axis([-7 7 0 3]); grid hold on plot(t,y,'.'); text(-3.75,3.2,'Ejemplo de Señal Escalon','FontName','Arial','FontSize',[16],'color','y') xlabel('Tiempo') ylabel('Amplitud') text(-1.3,0.2,'t1 = 0','FontName','Arial','FontSize',[10],'color','y') pause, close(1) disp(blanks(5)') disp(' Cuando se suman dos señales escalon de la misma magnitud pero de') disp('signo contrario se forma la señal puerta, como por ejemplo:') disp(blanks(3)') disp(' Pulse para continuar. ') disp(blanks(2)') pause ta=0:0.05:7; y1=1+ta-ta; figure(gcf) clf axis([-7 7 -3 3]); grid hold on plot(ta,y1,'.'); tb=2:0.05:7; y2=-1+tb-tb; plot(tb,y2,'r'); text(-6,3.4,'Ejemplo de la suma de dos señales Escalon','FontName','Arial','FontSize',[16],'color','y') xlabel('Tiempo') ylabel('Amplitud') text(-1.3,0.2,'t1 = 0','FontName','Arial','FontSize',[10],'color','y') text(2.3,-1.3,'t1 = 0','FontName','Arial','FontSize',[10],'color','y') pause, t=0:0.05:2; y=1+t-t; figure(gcf), clf axis([-7 7 0 3]); grid hold on plot(t,y,'.'); text(-4,3.2,'Ejemplo de la Señal Puerta','FontName','Arial','FontSize',[16],'color','y') xlabel('Tiempo') ylabel('Amplitud') text(-1.3,0.2,'t1 = 0','FontName','Arial','FontSize',[10],'color','y') text(2.2,0.2,'t2 = 2','FontName','Arial','FontSize',[10],'color','y') text(0.25,1.25,'g ( 0,2 )','FontName','Arial','FontSize',[10],'color','y') pause, close(1) disp(blanks(5)') disp(' La señal puerta reflejada queda de la siguiente manera: ') disp(blanks(3)') disp(' Pulse para continuar. ') disp(blanks(2)') pause, t=-2:0.05:0; y=1+t-t; figure(gcf), clf axis([-7 7 0 3]); grid hold on plot(t,y,'.'); text(-6,3.2,'Ejemplo de la Reflexión de la Señal Puerta','FontName','Arial','FontSize',[16],'color','y') xlabel('Tiempo'), ylabel('Amplitud'), text(-3.6,0.2,'t1 = -2','FontName','Arial','FontSize',[10],'color','y') text(0.2,0.2,'t2 = 0','FontName','Arial','FontSize',[10],'color','y') text(-1.85,1.25,'g ( -2,0 )','FontName','Arial','FontSize',[10],'color','y') pause, close(1) disp(blanks(2)'); disp(' D E S P L A Z A M I E N T O'); disp(blanks(2)'); disp(' Esta señal se puede desplazar hacia la derecha o hacia la izquierda cuando:') disp(' d(t+To)'); disp(' donde To es una constante, y según las caracteristicas de esta señal, ella') disp('aparecerá, cuando:') disp(blanks(1)') disp(' t + To = 0') disp(blanks(2)') disp(' La señal puerta desplazada queda de la siguiente manera: ') disp(blanks(3)') disp(' Pulse para continuar. ') disp(blanks(2)') pause t=2:0.05:4; y=1+t-t; figure(gcf), clf axis([-7 7 0 3]); grid hold on plot(t,y,'.'); text(-7,3.2,'Ejemplo del desplazamiento de La Señal Puerta','FontName','Arial','FontSize',[16],'color','y') xlabel('Tiempo') ylabel('Amplitud') text(0.8,0.2,'t1 = 2','FontName','Arial','FontSize',[10],'color','y') text(4.2,0.2,'t2 = 4','FontName','Arial','FontSize',[10],'color','y') text(2.25,1.25,'g ( 2,4 )','FontName','Arial','FontSize',[10],'color','y') pause, close(1) disp(blanks(2)') disp(' La señal puerta se usa para delimitar otra señal, se multiplica') disp('por la señal a delimitar. Por ejemplo la cuadratica, queda de la ') disp(' siguiente manera: ') disp(blanks(3)') disp(' Pulse para continuar. ') disp(blanks(2)') pause t=-5:0.004:5; y=0.5.*t.^2; figure(gcf), clf axis([-7 7 0 3]); grid hold on plot(t,y,'.'); text(-4,3.2,'Ejemplo La Señal Cuadratica','FontName','Arial','FontSize',[16],'color','y') xlabel('Tiempo') ylabel('Amplitud') pause t=0:0.004:2; y=0.5.*t.^2; figure(gcf), clf axis([-7 7 0 3]); grid hold on plot(t,y,'.'); text(-6.5,3.2,'Ejemplo La Señal Cuadratica multiplicada por La Señal Pulso','FontName','Arial','FontSize',[12],'color','y') xlabel('Tiempo') ylabel('Amplitud') spinmap, close(1) sen elseif m==3 clear home disp(' '); disp(' LA SEÑAL IMPULSO'); disp(' ***********************'); disp(blanks(2)'); disp(' Matemáticamente, la señal impulso tiene la siguiente expresión:'); disp(blanks(2)'); disp(' Integral desde t1 hasta t2 de X(t)que multiplica a d(t) = X(0) '); disp(blanks(2)'); disp(' Donde d es la letra griega delta, que denota la señal'); disp(' '); disp(' La forma gráfica de la señal es la siguiente: '); disp(' '); disp(blanks(5)'); disp(' pulse para continuar'); pause t=-10:0.001:10; a=0.01; y=a*(1./(pi*t).*sin(pi.*t/a)).^2; plot(t,y); axis([-10 10 0 100]); xlabel('tiempo'),ylabel('d(t)');text(2,90,'d(t)'); pause close(1) home disp(blanks(2)'); disp(' Observamos en esta señal, que existe solo cuando su argumento es cero 0 '); disp(blanks(2)'); pause home disp(' Una de las formas de ver como se genera esta señal'); disp(blanks(2)'); disp(' es mediante la siguiente expresión:'); disp(blanks(4)'); disp(' y=E*(1/(pi*t)*sen(pi*t/E))^2'); disp(blanks(4)'); disp(' la cual genera la siguiente grafica:'); disp(blanks(3)'); disp(' pulse para continuar'); pause a=1; y=a*(1./(pi*t).*sin(pi.*t/a)).^2; plot(t,y); pause close(1) home disp(blanks(2)'); disp('Si hacemos que E sea mas pequeño, la señal se contraerá'); disp(blanks(2)'); disp('y la amplitud aumentará, obteniendose la siguiente grafica :'); disp(blanks(12)'); disp(' pulse para continuar'); pause a=0.1; y=a*(1./(pi*t).*sin(pi.*t/a)).^2; plot(t,y); axis([-3 3 0 10]); pause close(1) home disp(blanks(2)'); disp(' Si ahora hacemos que E tienda a cero, se obtiene la señal, ya que esta se contraerá tanto,'); disp(blanks(2)'); disp(' que se formará una linea vertical, y su amplitud será infinita,'); disp(blanks(2)'); disp(' quedando la señal deseada:'); disp(blanks(10)'); disp(' pulse para continuar'); pause a=0.01; y=a*(1./(pi*t).*sin(pi.*t/a)).^2; plot(t,y); axis([-10 10 0 100]); xlabel('tiempo'),ylabel('d(t)'); pause close(1) disp(' '); home disp(' Algunas de las propiedades de esta señal son:'); disp(blanks(2)'); disp(' - La señal impulso tiende a infinito, cuando su argumento es cero.'); disp(' d(0) => oo'); disp(blanks(2)'); disp(' - La señal es cero, cuando su argumento es distinto de cero'); disp(' d(0) = 0 {para t distinto de 0}'); disp(blanks(2)'); disp(' - Si realizamos la suma del area bajo la curva, desde menos infinito,'); disp(' hasta infinito, su resultado seria igual a cero'); disp(blanks(2)'); disp(' pulse para continuar'); pause home disp(blanks(2)'); disp(' D E S P L A Z A M I E N T O'); disp(blanks(2)'); disp(' Esta señal se puede desplazar hacia la derecha o hacia la izquierda cuando:'); disp(' d(t+To)'); disp(' donde To es una constante, y según las caracteristicas de esta señal, ella aparecerá,'); disp(' cuando:'); disp(blanks(1)'); disp(' t + To = 0'); disp(blanks(2)'); disp(' Como ejemplo se mostrará d(t - 5 )'); disp(' Esto nos indica, que la señal aparecerá, cuando t - 5 = 0'); disp(' despejando, quedaría que t = 5'); disp(blanks(2)'); disp(' Gráficamente quedaría de la siguiente manera:'); disp(' '); disp(' '); disp(' pulse para continuar'); pause a=0.01; y=a*(1./(pi*(t-5)).*sin(pi.*(t-5)/a)).^2; plot(t,y); axis([-10 10 0 100]); xlabel('tiempo'),ylabel('d(t)'); grid; pause close(1) home disp(blanks(2)'); disp(' Ahora graficaremos d( t + 5) '); disp(blanks(2)'); disp(' La señal existirá, cuando t + 5 = 0'); disp(blanks(2)'); disp(' Al despejar, queda que t = -5'); disp(blanks(2)'); disp(' Quedando la gráfica de la señal, de la siguiente manera '); disp(' '); disp(blanks(2)'); disp(' '); disp(blanks(2)'); disp(blanks(2)'); disp(' '); disp(' pulse para continuar'); pause a=0.01; y=a*(1./(pi*(t+5)).*sin(pi.*(t+5)/a)).^2; plot(t,y); axis([-10 10 0 100]); grid; xlabel('tiempo'),ylabel('d(t)'); pause close(1) home disp(' E S C A L A M I E N T O'); disp(blanks(2)'); disp(' Existen dos tipos de escalamiento:'); disp(blanks(2)'); disp(' - Escalamiento en magnitud'); disp(blanks(2)'); disp(' - Escalamiento en tiempo'); disp(' '); disp(blanks(2)'); disp(blanks(2)'); disp(' '); disp(blanks(2)'); disp(blanks(2)'); disp(' '); disp(' '); disp(' pulse para continuar'); pause home disp(blanks(2)'); disp(' ESCALAMIENTO EN MAGNITUD'); disp(blanks(2)'); disp(' Ocurre cuando a la señal impulso, es multiplicada por una constante'); disp(' Ad(t)'); disp(blanks(2)'); disp(blanks(2)'); disp(' como ejemplo, mostraremos -5d(t)'); disp(blanks(2)'); disp(' Observese que es negativa y que está multiplicada por cinco'); disp(blanks(2)'); disp(' quedando la siguiente grafica:'); disp(' '); disp(' '); disp(' '); disp(' '); disp(' pulse para continuar'); pause a=0.01; y=-5*(a*(1./(pi*t).*sin(pi.*t/a)).^2); plot(t,y); grid; axis([-10 10 -100 0]); pause close(1) home disp(blanks(2)'); disp(' Otro ejemplo, mostraremos 3d(t)'); disp(blanks(2)'); disp(' Observese que es positiva y que está multiplicada por tres'); disp(blanks(2)'); disp(' quedando la siguiente grafica:'); disp(' '); disp(blanks(2)'); disp(blanks(2)'); disp(' '); disp(' '); disp(' '); disp(' pulse para continuar'); pause a=0.01; y=3*(a*(1./(pi*t).*sin(pi.*t/a)).^2); plot(t,y); axis([-10 10 0 100]); grid; pause close(1) home disp(blanks(2)'); disp(' Notese que la señal en cero tiende a infinito, y si multiplicamos'); disp(blanks(2)'); disp(' una constante por infinito, nos sigue dando infinito, solo el signo'); disp(blanks(2)'); disp(' de la constante, hará que la señal tienda hacia mas infinito o hacia'); disp(blanks(2)'); disp(' menos infinito'); disp(' '); disp(' '); disp(blanks(2)'); disp(' '); disp(' '); disp(' pulse para continuar'); pause home disp(blanks(2)'); disp(' ESCALAMIENTO EN TIEMPO'); disp(blanks(2)'); disp(' Ocurre cuando el argumento, es multiplicada por una constante'); disp(' d(At)'); disp(' como ejemplo, mostraremos d(-3t)'); disp(blanks(2)'); disp(' Observese que es negativa y que está multiplicada por tres'); disp(blanks(2)'); disp(' quedando la siguiente grafica:'); disp(' '); disp(' '); disp(' '); disp(' '); disp(' pulse para continuar'); pause a=0.01; y=a*(1./(pi*(-3.*t)).*sin(-3*pi.*t/a)).^2; plot(t,y); axis([-10 10 0 100]); grid; pause close(1) home disp(' Se puede hacer convinación de escalamiento y desplazamiento al mismo tiempo'); disp(' Ad(t - To)'); pause disp(blanks(2)'); disp(' Como ejemplo -2d(t-3)'); disp(blanks(2)'); disp(' quedando la gráfica de la señal de la siguiente manera'); disp(' '); disp(' '); disp(blanks(2)'); disp(blanks(2)'); disp(' '); disp(' '); disp(' pulse para continuar'); pause a=0.01; y=-2.*(a*(1./(pi*(t-3)).*sin(pi.*(t-3)/a)).^2); plot(t,y); axis([-10 10 -100 0]); grid; xlabel('tiempo'),ylabel('d(t)'); spinmap, pause, close(1), sen elseif m==4 n=menu('AYUDA','Acerca de...','Contenido'); if n==1 x=-7.5:0.5:7.5; y=x; [X,Y]=meshgrid(x,y); R=sqrt(X.*X+Y.*Y); z=exp(R); figure(gcf),meshc(X,Y,z),axis off, text(-5, -10, -1e4,'Pulse cualquier tecla para continuar...','FontSize',[11],'color','y') text(-4, 11,6.5e4,'TUTORIAL CON MATLAB ','FontSize',[18],'color','r') text(-10, 5, 7e4,'SEÑALES ELEMENTALES','FontSize',[18],'color','r') spinmap,pause, close(1) elseif n==2 disp(blanks(1)'); home,disp([blanks(25) 'CONTENIDO DE LA AYUDA']), disp([blanks(25) '.....................']) help spi, disp(' Pulse cualquier tecla para continuar.... '),pause home end end end