Vous êtes sur la page 1sur 19

PRACTICA 1: GENERACIN Y GRAFICACIN DE SEALES CONTINUAS Y DISCRETAS

OBJETIVOS 1. Comprender como se simulan seales continuas y discretas en el tiempo usando MATLAB 2. Generar seales exponenciales, sinusoidales, cuadrada, diente de sierra y escaln, visualizarlas en forma continua y discreta 3. Revisar las diferentes modalidades que existen para graficar una seal MARCO TEORICO

MATLAB
Matlab es un programa interactivo para clculo numrico y tratamiento de datos. Contiene muchas herramientas y utilidades que permiten adems diversas funcionalidades, como la presentacin grfica en 2 y 3 dimensiones. Esos tiles estn agrupados en "paquetes" (toolboxes). A Matlab se le pueden aadir paquetes especializados para algunas tareas (por ejemplo, para tratamiento de imgenes). Trabajar con Matlab comporta aprender un lenguaje simple. En esta introduccin se explican los elementos bsicos de este lenguaje. Matlab es un programa command-driven, es decir, que se introducen las rdenes escribindolas una a una a continuacin del smbolo (prompt) que aparece en una interfaz de usuario (una ventana). Esta introduccin contiene ejemplos que se pueden escribir directamente en la lnea de comandos de Matlab. Para distinguir esos comandos, junto con la respuesta del programa, se emplean un tipo de letra diferente: 2+2 ans = 4 EXPERIMENTO Genere un archivo .m nuevo. Escriba cada instruccin y ejectela para ver su funcionamiento. Al terminar la practica podr ejecutar todas las instrucciones y mostrar los resultados a su profesor. Se le sugiere separe zonas de ejecucin usando la instruccin pause. SEALES CONTINUAS Antes de obtener una seal continua en el tiempo, primero se debe crear un vector que represente la secuencia temporal, teniendo el cuidado de elegir un espaciamiento entre muestras apropiado. TALAHUA REMACHE JONATHAN SAUL

Por ejemplo para generar seales en el intervalo, con muestras tomadas cada 0.05 s, escriba en la lnea de comandos: >>T=0.05 Para definir la separacin temporal (en segundos) entre las muestras. Exprese la secuencia temporal que va desde -1 a 1 en pasos T: >>t=[-1:T:1] Observe que todos los elementos del vector t fueron mostrados en la pantalla. Para evitarlo, Usualmente se coloca un punto y coma(;) despus de cada instruccin. Para generar la funcin real decreciente x(t)=e-t, escriba: >>x=exp(-t); Dibuje x(t) vs. T: >>plot (t,x,-y)

El smbolo -y indica las caractersticas del trazo: - es el tipo de trazo e y es el color (en este caso yellow o amarillo). Puede obtener mas informacin de cualquier comando utilice help; por ejemplo si Ud. Quiere saber mas detalles del comando plot escriba: >>help plot Pruebe con las diferentes combinaciones de trazos y colores. Calcule la exponencial creciente w(t)=et: >>w=exp(t);

TALAHUA REMACHE JONATHAN SAUL

Para graficar w(t) existen tres posibilidades: puede dar el comando >>clf Para borrar la figura anterior, o puede dibujar directamente en el espacio disponible lo cual borrara la figura que estaba anteriormente. Tambin puede dibujarlas simultneamente con el comando: >>hold on En cualquiera de los tres casos, dibuje despus w(t) >>plot(t,w,:r )

Si desea incluir una cuadricula en el grafico escriba, luego de hacer el plot: >>grid; para eliminarla escriba nuevamente: >>grid;

TALAHUA REMACHE JONATHAN SAUL

Cada vez que Ud. desee graficar una nueva figura debe usar la instruccin: >>figure o figure(k) donde k es el nmero que ser asignado a la figura. Calcule y grafique las siguientes funciones con cambios lineales en la escala temporal: x1(t)=e-2t y x2(t)= e t/2. Dibjelas junto a la seal original x(t). >> x1=exp(-2*t); >> x2=exp(-t/2); >> plot (t, x1 , -y , t , x2 , --g )

Observe los siguientes smbolos: * para la multiplicacin y / para la divisin. Proceda de igual manera para la seal x3(t)= e-2|t|.El valor absoluto de t se calcula con el comando: >>abs(t); Por lo tanto la seal x3 se genera con el siguiente comando: >> x3=exp(-2*abs(t)); >>plot(t,x3,:m)

TALAHUA REMACHE JONATHAN SAUL

Ahora graficaremos varias seales en una misma figura pero en espacios diferentes. Para eso se divide primero la figura en una matriz de subgrficos de las dimensiones que uno desee. Imagine que queremos graficar 4 funciones. Dividimos la figura como una matriz de 2x2 y en cada subgrfico aparecer una de las seales. >> subplot(2,2,1); plot(t, x1, -y); >> subplot(2,2,2); plot(t, x2, --g ); >> subplot(2,2,3); plot(t, x3, r ); >> subplot(2,2,4); plot(t, x, -b);

Para generar una seal exponencial compleja comandos: >>y=exp(j*2*pi*t);

escriba en la lnea de

Observe que j y pi son valores internamente definidos en MATLAB. Corresponden a la unidad imaginaria y al nmero respectivamente. i tambin puede emplearse en un lugar de j. Para evitar confusiones se recomienda no usar i ni j como variables. La seal y es compleja, a diferencia de las seales anteriores. Para comprobarlo escriba: >>whos

TALAHUA REMACHE JONATHAN SAUL

Observe que todas las funciones y valores que se han definido se encuentran disponibles en la memoria. Esto no hace falta si Ud. tiene en la pantalla abierto el workspace. Para observar las partes real e imaginaria de y, primero cree una nueva figura o espacio de presentacin: >>figure(2) Luego dibuje las partes real e imaginaria. >>plot(t,real(y),-b,t,imag(y),:r)

Las sinusoides reales tambin pueden ser generadas directamente en MATLAB, por ejemplo si se quieren generar sinusoides se puede usar sin (para SENO) y cos (PARA COSENO). >>v1=sin(pi*t-pi/6); >>v2=cos(pi*t+pi/4);

TALAHUA REMACHE JONATHAN SAUL

Ahora generara una seal cuadrada peridica usando la siguiente instruccin: cuad=square(2*pi*t); Grafquela: plot(t,cuad,'r');

Observe que las pendientes no son infinitas. Esto ocurre porque el nmero de puntos es bajo. Haga una prueba usando ms puntos de tiempo (debe definir otro vector de tiempo y volver a graficar). Revise el help de la funcin square. Ahora generar una seal diente de sierra peridica usado la siguiente instruccin: >>saw=sawtooth(2*pi*t); Grafiquela: >>plot(t,saw);

TALAHUA REMACHE JONATHAN SAUL

Revise el help de esta instruccin. Para finalizar la prctica generaremos un escaln >>escalon=[zeros(1,20) ones(1,21)]; >>plot(t,escalon);

SEALES DISCRETAS Se recomienda hacer una parte de la practica en archivo *.m. Antes de continuar borre todos los valores que se encuentran almacenados en memoria: >>clear Esta instruccin tambin puede emplearse para borrar una sola variable. Por ejemplo: >>clear w o ms de una variable >>clear x, v1, v2. Para genera una seal discreta en el tiempo X[n], primero se debe definir un vector ndice temporal n apropiado. Por ejemplo, para producir una curva exponencial decreciente x[n]=0.9n en el intervalo escriba: >>n=[-10:10]

TALAHUA REMACHE JONATHAN SAUL

La curva exponencial decreciente x[n] se obtiene escribiendo: >>x=(0.9).^n; Donde .^ representa la operacin de elevar 0.9 a cada uno de los elementos de n. A continuacin grafquela. >>stem(n,x)

Obtenga una exponencial creciente: >>w=(1.11).^n; Grafquela: >>stem(n,w)

Genere y grafique la seal par x3[n]=0.9|n| >>x3=(0.9).^abs(n); >>stem(n,x3);

TALAHUA REMACHE JONATHAN SAUL

Calcule y grafique la senoidal compleja y[n]=ejn/5-/3. >>y=exp(j*pi*n/5-pi/3); >>stem(n,y);

Grafique las partes real e imaginarias de y[n]. Cul es al periodo de la seal? Justifique su respuesta grafica y analtica.

10

TALAHUA REMACHE JONATHAN SAUL

REAL

IMAGINARIA

El periodo de la seal es 10, ya que en ese periodo la seal se vuelve a repetir Calcule la funcin z[n]=x[n]y[n] >>z=x.*y; CALCULO DE Z

11

TALAHUA REMACHE JONATHAN SAUL

>> x=(0.9).^n; >> y=exp(j*pi*n/5-pi/3); >> stem_handles = stem(n,x.*y); >> hold on >>plot_handles = plot(n,x,'--r',n,y,'--g'); Warning: Imaginary parts of complex X and/or Y arguments ignored >> grid

Explique cmo se interpretan las partes real e imaginaria de z[n]. De modo similar a la parte A, genere dos senoidales reales. >>v1=cos(pi*n/5-pi/3); >>v2=sin(pi*n/5+pi/4);

12

TALAHUA REMACHE JONATHAN SAUL

Obtenga las funciones par e impar de cada una. Toda seal puede ser descompuesta en su parte par y su parte impar de la forma siguiente:
xt x p t xi t

donde

x p t

1 xt x t 2 1 xi t xt x t 2

>>v1par=0.5*(v1+fliplr(v1)); >>v1imp=0.5*( v1-fliplr(v1));

>>v2par=0.5*(v2+fliplr(v2)); >>v2imp=0.5*( v2-fliplr(v2));

13

TALAHUA REMACHE JONATHAN SAUL

ASIGNACION
Luego de haber aprendido algunos comandos Ud. Debe realizar a siguiente actividad 1) Genere un vector de tiempo(que se inicie en t=-1) de 2000 en pasos de 1/10000
T=1/10000; t=-1:T:1; y=exp(-t);; plot(t,y,'r');

2) Genere la siguiente seal: -2+ 3*cos(20*pi*t)+sin(40*pi*t)


t=-0.5:0.001:1; y=2+3*cos(20*pi*t)+sin(40*pi*t); grid; plot(t,y,':r');

3) Genere una seal cuadrada peridica con periodo igual a 1/10 segundos
t=-0.5:0.01:1; cuad=square(20*pi*t); plot(t,cuad,'b') axis([-0.5 1 -1.5 1.5]);

14

TALAHUA REMACHE JONATHAN SAUL

4) Genere una seal diente de sierra peridica con periodo igual a 1/10 segundos
t=-0.5:0.001:1; saw=sawtooth(20*pi*t); plot(t,saw,':r');

5) Genere una seal iguala sgn(t-0.5)


u=[zeros(1,50),ones(1,151)]; t=-0:0.01:2; plot(t,u,'b'); axis ([0, 2, 0, 1.5]);

6) Grafique estas 4 seales en una hoja usando subplot y plot; a la ultima grafica fjele un tiempo entre -2 y 2 y un eje de amplitudes entre -2 y 2. A la tercera pngale grilla. A la segunda pngale titulo. A la primera pngale nombre a los ejes
%EJERCICIO 2 t=-1:0.05:1; x=-2+3*cos(20*pi*t)+sin(40*pi*t); subplot(2,2,1);plot(t,x,'b'); xlabel ('Tiempo ', 'FontName', 'Cambria', 'Fontsize', 10); ylabel ('Amplitud ', 'FontName', 'Cambria', 'Fontsize', 10); %EJERCICIO 3 T=0.01; t=-0.5:T:1; cuad=square(20*pi*t); grid off; subplot(2,2,2);plot(t,cuad,'g') axis ([0 1 -1.5 1.5]) title ('Seal Cuadrada Periodica', 'FontName', 'Cambria', 'Fontsize', 10) %EJERCICIO 4 T=0.001; t=-0.5:T:1; saw=sawtooth(20*pi*t);

15

TALAHUA REMACHE JONATHAN SAUL

subplot(2,2,3);grid on; plot(t,saw,'r'); axis ([0 1 -1.5 1.5]) grid %EJERCICIO 5 u=[zeros(1,50),ones(1,151)]; t=0:0.01:2; subplot(2,2,4);plot(t,u,'r'); axis ([-2, 2, -2, 2]);

7) Genere un escalon unitario


T=0.05; t=-1:T:1; escalon=[zeros(1,20),ones(1,21)]; plot(t,escalon,'b'); grid on; axis ([-1.5, 1.5, -0.5, 1.5]); title('Escaln Unitara'); xlabel ('Variable independiente t', 'FontName', 'Times', 'Fontsize', 12); ylabel ('u(t)', 'FontName', 'Times', 'Fontsize', 12)

16

TALAHUA REMACHE JONATHAN SAUL

8) Determine la parte par e impar del escalon


T=0.05; t=-1:T:1; escalon=[zeros(1,20),ones(1,21)]; escalonpar=0.5*(escalon+fliplr(escalon)); escalonimp=0.5*(escalon-fliplr(escalon)); subplot(2,2,1);plot(t,escalonpar,'b'); title ('ESCALON PARTE PAR', 'FontName', 'Cambria', 'Fontsize', 10) grid on; subplot(2,2,2);plot(t,escalonimp,'r'); title ('ESCALON PARTE IMPAR', 'FontName', 'Cambria', 'Fontsize', 10) grid on;

9) Grafique estas 3 funciones una sobre la otra en tres figuras y colores distintos (use stem)
T=0.05; t=-1:T:1; escalon=[zeros(1,20),ones(1,21)]; escalonpar=0.5*(escalon+fliplr(escalon)); escalonimp=0.5*(escalon-fliplr(escalon)); stem(t,escalon,'b') hold on stem(t,escalonpar,'g') hold on stem(t,escalonimp,'r')

17

TALAHUA REMACHE JONATHAN SAUL

10) Grafique ahora en una misma hoja usando subplot y plot


T=0.05; t=-1:T:1; escalon=[zeros(1,20),ones(1,21)]; escalonpar=0.5*(escalon+fliplr(escalon)); escalonimp=0.5*(escalon-fliplr(escalon)); subplot(3,1,1);plot(t,escalon,'m') title ('ESCALON', 'FontName', 'Cambria', 'Fontsize', 10) axis ([-1 1 -0.5 1.5]); subplot(3,1,2);plot(t,escalonpar,'r') title ('ESCALON PARTE PAR', 'FontName', 'Cambria', 'Fontsize', 10) axis ([-1 1 0 1.5]); subplot(3,1,3);plot(t,escalonimp,'g') title ('ESCALON PARTE IMPAR', 'FontName', 'Cambria', 'Fontsize', 10) axis ([-1 1 -1 1.5]);

11) Determine los ndices donde la seal diente de sierra toma valores menores a 0.005 y mayor a -0.005
t=1:0.0005:10; saw=sawtooth(20*pi*t); plot(t,saw,'r'); a=0; for i=1:1:10, aux=saw(i); a=a+1; if (aux>=-0.005)&&(aux<=0.005) x(i)=a; y(i)=aux; end end

Como no se genero ningn dato en el vector x, significa que no hay valores enteros donde la seal cumple el rango dado

18

TALAHUA REMACHE JONATHAN SAUL

CONCLUSIONES: Con ayuda de la herramienta Matlab pudimos graficar los distintos tipos de seales intervienen en la asignatura de Seales y Sistemas Utilizando los comandos adecuados, pudimos aprender a modelar de una manera prctica y clara los distintos mtodos que existen en Matlab para graficar cualquier tipo de seal La importancia de esta prctica, es que adems de lograr visualizar las graficas de seales continuas y discretas, comprendimos el procedimiento para realizarlo RECOMENDACIONES: Tener cuidado al momento de ingresar los comandos, ya que si existe un error de escritura el programa no correra correctamente Si se tiene alguna dificultad sobre como usar ciertos comandos, se puede utilizar el comando HELP seguido del comando a investigar, e inmediatamente se desplegara toda la informacin sobre el como usar dicho comando BIBLIOGRAFIA: http://fisica.unav.es/~angel/matlab/matlab0.html

19

TALAHUA REMACHE JONATHAN SAUL

Vous aimerez peut-être aussi