practica 1_generacion de señales continuas y discretas_matlab

23
PRACTICA 1: GENERACIÓN Y GRAFICACIÓN DE SEÑALES CONTINUAS Y DISCRETAS OBJETIVOS 1. Comprender como se simulan señales continuas y discretas en el tiempo usando MATLAB 2. Generar señales exponenciales, sinusoidales, cuadrada, diente de sierra y escalón, visualizarlas en forma continua y discreta 3. Revisar las diferentes modalidades que existen para graficar una señal MARCO TEORICO MATLAB Matlab es un programa interactivo para cálculo numérico y tratamiento de datos. Contiene muchas herramientas y utilidades que permiten además diversas funcionalidades, como la presentación gráfica en 2 y 3 dimensiones. Esos útiles están agrupados en "paquetes" (toolboxes). A Matlab se le pueden añadir paquetes especializados para algunas tareas (por ejemplo, para tratamiento de imágenes). Trabajar con Matlab comporta aprender un lenguaje simple. En esta introducción se explican los elementos básicos de este lenguaje. Matlab es un programa command-driven, es decir, que se introducen las órdenes escribiéndolas una a una a continuación del símbolo » (prompt) que aparece en una interfaz de usuario (una ventana). Esta introducción contiene ejemplos que se pueden escribir directamente en la línea de comandos de Matlab. Para distinguir esos comandos, junto con la respuesta del programa, se emplean un tipo de letra diferente: »2+2 ans = 1 TALAHUA REMACHE JONATHAN SAUL

Upload: jonathan-talahua

Post on 08-Feb-2016

45 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

PRACTICA 1: GENERACIÓN Y GRAFICACIÓN DE SEÑALES CONTINUAS Y DISCRETAS

OBJETIVOS

1. Comprender como se simulan señales continuas y discretas en el tiempo usando MATLAB2. Generar señales exponenciales, sinusoidales, cuadrada, diente de sierra y escalón,

visualizarlas en forma continua y discreta3. Revisar las diferentes modalidades que existen para graficar una señal

MARCO TEORICO

MATLAB

Matlab es un programa interactivo para cálculo numérico y tratamiento de datos. Contiene muchas herramientas y utilidades que permiten además diversas funcionalidades, como la presentación gráfica en 2 y 3 dimensiones. Esos útiles están agrupados en "paquetes" (toolboxes). A Matlab se le pueden añadir paquetes especializados para algunas tareas (por ejemplo, para tratamiento de imágenes). Trabajar con Matlab comporta aprender un lenguaje simple. En esta introducción se explican los elementos básicos de este lenguaje.

Matlab es un programa command-driven, es decir, que se introducen las órdenes escribiéndolas una a una a continuación del símbolo » (prompt) que aparece en una interfaz de usuario (una ventana). Esta introducción contiene ejemplos que se pueden escribir directamente en la línea 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 instrucción y ejecútela 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 ejecución usando la instrucción pause.

SEÑALES CONTINUAS

Antes de obtener una señal 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.

1 TALAHUA REMACHE JONATHAN SAUL

Page 2: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

Por ejemplo para generar señales en el intervalo, con muestras tomadas cada 0.05 s, escriba en la línea de comandos:>>T=0.05Para definir la separación 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(;) después de cada instrucción.Para generar la función real decreciente x(t)=e-t, escriba:>>x=exp(-t);Dibuje x(t) vs. T:>>plot (t,x,’-y’)

El símbolo ‘-y’ indica las características del trazo: “-” es el tipo de trazo e “y” es el color (en este caso yellow o amarillo). Puede obtener mas información de cualquier comando utilice help; por ejemplo si Ud. Quiere saber mas detalles del comando plot escriba:>>help plotPruebe con las diferentes combinaciones de trazos y colores.Calcule la exponencial creciente w(t)=et:>>w=exp(t);

2 TALAHUA REMACHE JONATHAN SAUL

Page 3: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

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. También puede dibujarlas simultáneamente con el comando:

>>hold on

En cualquiera de los tres casos, dibuje después 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;

Cada vez que Ud. desee graficar una nueva figura debe usar la instrucción:

3 TALAHUA REMACHE JONATHAN SAUL

Page 4: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

>>figure o figure(k) donde k es el número 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.

Dibújelas junto a la señal original x(t).

>> x1=exp(-2*t);

>> x2=exp(-t/2);

>> plot (t, x1 , ’-y’ , t , x2 , ’--g’ )

Observe los siguientes símbolos: ’*’ para la multiplicación y ‘/ ’ para la división. Proceda de igual manera para la señal x3(t)= e-2|t|.El valor absoluto de t se calcula con el comando:

>>abs(t);

Por lo tanto la señal x3 se genera con el siguiente comando:

>> x3=exp(-2*abs(t));

>>plot(t,x3,’:m’)

4 TALAHUA REMACHE JONATHAN SAUL

Page 5: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

Ahora graficaremos varias señales en una misma figura pero en espacios diferentes. Para eso se divide primero la figura en una matriz de subgráficos de las dimensiones que uno desee. Imagine que queremos graficar 4 funciones. Dividimos la figura como una matriz de 2x2 y en cada subgráfico aparecerá una de las señales.

>> 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 señal exponencial compleja y (t )=e j2πt escriba en la línea de

comandos:

>>y=exp(j*2*pi*t);

Observe que ‘j’ y ‘pi’ son valores internamente definidos en MATLAB. Corresponden a la unidad imaginaria y al número ȣ respectivamente. ‘i’ también puede emplearse en un lugar de ‘j’. Para evitar confusiones se recomienda no usar ‘i’ ni ‘j’ como variables. La señal ‘y’ es compleja, a diferencia de las señales anteriores. Para comprobarlo escriba:

>>whos

5 TALAHUA REMACHE JONATHAN SAUL

Page 6: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

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 presentación:

>>figure(2)

Luego dibuje las partes real e imaginaria.

>>plot(t,real(y),’-b’,t,imag(y),’:r’)

Las sinusoides reales también 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);

Ahora generara una señal cuadrada periódica usando la siguiente instrucción:

6 TALAHUA REMACHE JONATHAN SAUL

Page 7: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

cuad=square(2*pi*t);

Grafíquela:

plot(t,cuad,'r');

Observe que las pendientes no son infinitas. Esto ocurre porque el número de puntos es bajo. Haga una prueba usando más puntos de tiempo (debe definir otro vector de tiempo y volver a graficar). Revise el help de la función square.

Ahora generará una señal diente de sierra periódica usado la siguiente instrucción:

>>saw=sawtooth(2*pi*t);Grafiquela:>>plot(t,saw);

Revise el help de esta instrucción. Para finalizar la práctica generaremos un escalón

7 TALAHUA REMACHE JONATHAN SAUL

Page 8: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

>>escalon=[zeros(1,20) ones(1,21)];>>plot(t,escalon);

SEÑALES DISCRETASSe 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 instrucción también puede emplearse para borrar una sola variable. Por ejemplo:>>clear w o más de una variable>>clear x, v1, v2.Para genera una señal 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]

La curva exponencial decreciente x[n] se obtiene escribiendo:>>x=(0.9).^n;

8 TALAHUA REMACHE JONATHAN SAUL

Page 9: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

Donde ‘.^’ representa la operación de elevar 0.9 a cada uno de los elementos de n. A continuación grafíquela.>>stem(n,x)

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

Grafíquela:>>stem(n,w)

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

9 TALAHUA REMACHE JONATHAN SAUL

Page 10: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

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

Grafique las partes real e imaginarias de y[n]. ¿Cuál es al periodo de la señal? Justifique su respuesta grafica y analítica.

10 TALAHUA REMACHE JONATHAN SAUL

Page 11: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

REAL IMAGINARIA

El periodo de la señal es 10, ya que en ese periodo la señal se vuelve a repetirCalcule la función z[n]=x[n]y[n]>>z=x.*y;

CALCULO DE Z

11 TALAHUA REMACHE JONATHAN SAUL

Page 12: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

>> 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 cómo 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

Page 13: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

Obtenga las funciones par e impar de cada una.Toda señal puede ser descompuesta en su parte par y su parte impar de la forma siguiente:

x (t )=x p (t )+x i (t )donde

x p ( t )=12

[ x ( t )+x (−t ) ]

x i ( t )=12

[ x (t )−x (−t ) ]

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

Page 14: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

ASIGNACIONLuego 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 señal: -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 señal cuadrada periódica 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

Page 15: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

4) Genere una señal diente de sierra periódica 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 señal 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 señales en una hoja usando subplot y plot; a la ultima grafica fíjele un tiempo entre -2 y 2 y un eje de amplitudes entre -2 y 2. A la tercera póngale grilla. A la segunda póngale titulo. A la primera póngale nombre a los ejes

%EJERCICIO 2t=-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 3T=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 ('Señal Cuadrada Periodica', 'FontName', 'Cambria', 'Fontsize', 10) %EJERCICIO 4T=0.001;t=-0.5:T:1;saw=sawtooth(20*pi*t);subplot(2,2,3);grid on;

15 TALAHUA REMACHE JONATHAN SAUL

Page 16: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

plot(t,saw,'r');axis ([0 1 -1.5 1.5])grid %EJERCICIO 5u=[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('Escalón Unitaría');xlabel ('Variable independiente t', 'FontName', 'Times', 'Fontsize', 12);ylabel ('u(t)', 'FontName', 'Times', 'Fontsize', 12)

8) Determine la parte par e impar del escalon

16 TALAHUA REMACHE JONATHAN SAUL

Page 17: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

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 onstem(t,escalonpar,'g')hold onstem(t,escalonimp,'r')

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

17 TALAHUA REMACHE JONATHAN SAUL

Page 18: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

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 señal 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; endendComo no se genero ningún dato en el vector ‘x’, significa que no hay valores enteros donde la señal cumple el rango dado

CONCLUSIONES:

18 TALAHUA REMACHE JONATHAN SAUL

Page 19: PRACTICA 1_generacion de Señales Continuas y Discretas_MATLAB

Con ayuda de la herramienta Matlab pudimos graficar los distintos tipos de señales intervienen en la asignatura de Señales y Sistemas

Utilizando los comandos adecuados, pudimos aprender a modelar de una manera práctica y clara los distintos métodos que existen en Matlab para graficar cualquier tipo de señal

La importancia de esta práctica, es que además de lograr visualizar las graficas de señales 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 información sobre el como usar dicho comando

BIBLIOGRAFIA: http://fisica.unav.es/~angel/matlab/matlab0.html

19 TALAHUA REMACHE JONATHAN SAUL