Señales en Matlab basico

10
Procesamiento Digital de Se˜ nales Laboratorio 01 Jose Quintanilla, Sebasti´ an Tobar, Pedro Torres [email protected], [email protected], [email protected] Resumen El prop´ osito de este laboratorio es introducir conceptos b´ asicos de procesamiento digital de se˜ nales as´ ı como tambi´ en se˜ nales en tiempo discreto, incluyendo aspectos asociados al muestreo, generaci´ on, manipulaci´ on, tipos de gr´ aficos, y an´ alisis b´ asico de se˜ nales en Matlab. Se espera que esta experiencia contribuya hacia la identificaci´ on de las propiedades de se˜ nales y sistemas en tiempo discreto utilizando herramientas de an´ alisis. 1. I NTRODUCCI ´ ON En el presente informe de laboratorio se utilizar´ an conceptos de procesamiento digital de se˜ nales y se˜ nales en el tiempo o se˜ nales en tiempo discreto, con la ayuda de herramientas como lo es el muestreo, generaci´ on de diferentes tipos de gr´ aficos,ya sea por puntos( forma discreta) o entregando la uno de ellos (forma continua) ayudado del software matem´ atico Matlab.Para presentar dichos conceptos se realizo una tarea , la cual contribuyo una introducci´ on al procesamiento digital de se˜ nales, para as´ ı poder detectar los elementos b´ asicos de un sistema de procesamiento digital de se˜ nales, y sus principales propiedades, como lo son el muestreo, la conversi´ on an´ aloga-digital y viceversa. Adem´ as, se aprendi´ o en la tarea algunos comandos b´ asicos de Matlab ya sea para graficar funciones en distintas dimensiones y con diferentes configuraciones, escribir y operar con vectores y matrices, entre otros.Todo esto para introducirse en lo que es en laboratorio en si, que consta de dos partes: A) representaci´ on gr´ afica de muestreo: se utiliza y aplica lo aprendido sobre el comando stem y subplot para graficar se˜ nales discretas.B)Muestreo: Se grafica la se˜ nal discreta a partir de una se˜ nal continua, a diferentes tiempos de muestreo, para as´ ı comparar con la se˜ nal continua y analizar las diferencias y poner en practica la teor´ ıa de muestreo.Es muy importante conocer como funciona la graficaci´ on, manipulaci´ on y an´ alisis b´ asicos de se˜ nales digitales, de esta forma facilitar la identificaci´ on de las propiedades de se˜ nales en tiempo discreto, la buena elecci´ on de un tiempo de muestreo para que la se˜ nal manipulada represente lo que queramos utilizando Matlab, lo cual es muy importante para lo que sigue del curso. 2. DESARROLLO 2-A. REPRESENTACI ´ ON GR ´ AFICA DE SE ˜ NALES Considere la siguiente se˜ nal discreta 1 t = 0:2:60; 2 y = sin(t/6); 3 subplot 311 4 stem(t,y) 5 grid on 6 subplot 312 7 plot(t,y)

description

aspectos asociados al muestreo, generación, manipulación, tipos de gráficos, yanálisis básico de señales en Matlab

Transcript of Señales en Matlab basico

Page 1: Señales en Matlab basico

Procesamiento Digital de Senales

Laboratorio 01

Jose Quintanilla, Sebastian Tobar, Pedro Torres

[email protected], [email protected], [email protected]

Resumen

El proposito de este laboratorio es introducir conceptos basicos de procesamiento digital de senales ası como tambien

senales en tiempo discreto, incluyendo aspectos asociados al muestreo, generacion, manipulacion, tipos de graficos, y

analisis basico de senales en Matlab. Se espera que esta experiencia contribuya hacia la identificacion de las propiedades

de senales y sistemas en tiempo discreto utilizando herramientas de analisis.

1. INTRODUCCION

En el presente informe de laboratorio se utilizaran conceptos de procesamiento digital de senales y senales en el

tiempo o senales en tiempo discreto, con la ayuda de herramientas como lo es el muestreo, generacion de diferentes

tipos de graficos,ya sea por puntos( forma discreta) o entregando la uno de ellos (forma continua) ayudado del software

matematico Matlab.Para presentar dichos conceptos se realizo una tarea , la cual contribuyo una introduccion al

procesamiento digital de senales, para ası poder detectar los elementos basicos de un sistema de procesamiento digital

de senales, y sus principales propiedades, como lo son el muestreo, la conversion analoga-digital y viceversa. Ademas,

se aprendio en la tarea algunos comandos basicos de Matlab ya sea para graficar funciones en distintas dimensiones

y con diferentes configuraciones, escribir y operar con vectores y matrices, entre otros.Todo esto para introducirse en

lo que es en laboratorio en si, que consta de dos partes: A) representacion grafica de muestreo: se utiliza y aplica lo

aprendido sobre el comando stem y subplot para graficar senales discretas.B)Muestreo: Se grafica la senal discreta

a partir de una senal continua, a diferentes tiempos de muestreo, para ası comparar con la senal continua y analizar

las diferencias y poner en practica la teorıa de muestreo.Es muy importante conocer como funciona la graficacion,

manipulacion y analisis basicos de senales digitales, de esta forma facilitar la identificacion de las propiedades de

senales en tiempo discreto, la buena eleccion de un tiempo de muestreo para que la senal manipulada represente lo

que queramos utilizando Matlab, lo cual es muy importante para lo que sigue del curso.

2. DESARROLLO

2-A. REPRESENTACION GRAFICA DE SENALES

Considere la siguiente senal discreta

1 t = 0:2:60;

2 y = sin(t/6);

3 subplot 311

4 stem(t,y)

5 grid on

6 subplot 312

7 plot(t,y)

Page 2: Señales en Matlab basico

1. Genere una senal con 5 veces menos muestras en el mismo intervalo [0 60]. Grafique esta senal en el tercer

espacio del grafico combinando plot y stem en el mismo grafico.

2. Agregue tıtulos y nombres a cada subgrafico y presente cada uno con un distinto color y tamano de lınea.

Para generar una senal con 5 veces menos muestras en el intervalo senalado, primero debemos saber cuantas

muestras ocurren en el intervalo que ya existe, esto es:

t = Ts ∗ n

Donde t es el tiempo de la senal, Ts es el tiempo de muestro de la senal, y n el numero de muestras.

n =t

Ts=

60

2= 30

Como son 30 muestras las que se pueden apreciar en el primer vector de tiempo que se definio, debemos reducir

de 30 a 6 muestras a graficar. Esto quiere decir que el intervalo entre cada muestra debe ser de 10 [s] y no 2 [s]

como estaba indicado en un comienzo. [1]

Para agregar tıtulo a cada subgrafico es necesario usar el comando title este permite dar nombre a un grafico

y su uso es de la forma title(’nombre’); . Para cambiar el color y tamano de la lınea debemos cambiar

el argumento tanto de la funcion plot como la stem. Esto significa en el argumento agregar primero el color;

para ello se escribe entre comillas simples la inicial del color a utilizar, luego con el argumento makersize y

luego un numero entero se define el tamano de la lınea o puntos de la representacion grafica. Para ver de mejor

manera el uso de estos comandos se presenta a continuacion el codigo utilizado:

1 t = 0:2:60;

2 y = sin(t/6);

3

4 subplot 311

5 plot(t,y,'r','markersize',3)

6 title('Grafica Continua');

7

8 grid on

9

10 subplot 312

11 stem(t,y,'b','markersize',5)

12 title('Grafica Discreta con 30 muestras');

13 grid on

14

15 t1=0:10:60;

16 y1=sin(t1/6);

17

18 subplot 313

19 stem(t1,y1,'g','markersize',8)

20 title('Grafica Discreta con 6 muestras');

21 grid on

La grafica resultante al compilar el codigo anteriormente representada, es la que se aprecia en la siguiente figura.

Page 3: Señales en Matlab basico

0 10 20 30 40 50 60−1

0

1Gráfica Continua

0 10 20 30 40 50 60−1

0

1Gráfica Discreta con 30 muestras

0 10 20 30 40 50 60−1

0

1Gráfica Discreta con 6 muestras

Figura 1. Ejecucion del codigo .

3. Presente una copia impresa del grafico final y comente el efecto de:.

-plot vs. stem. :

Primero hay que mencionar que ambos comandos sirven para generar una representacion grafica de alguna funcion

o relacion entre vectores. Ahora bien existe una diferencia entre ambas, esta es que el comando plot genera una

grafica de caracter continua; para la cual, intuitivamente, para puntos cercanos del dominio se producen pequenas

variaciones en los valores de la funcion. En el caso del comando stem la grafica es de un tipo discreta, las que

representan valores en puntos especıficos a lo largo de la recta numerica, conocidas como muestras.

-La cantidad de muestras en las senales resultantes:

Para poder saber la cantidad de muestras de cada una de las senales resultantes, usaremos la siguiente relacion:

t = Ts ∗ n

Donde t es el tiempo de la senal, Ts es el tiempo de muestro de la senal, y n el numero de muestras. Ahora para

la segunda grafica el numero de muestras serıa:

n =t

Ts=

60

2= 30

Y para la tercera grafica serıa:

n =t

Ts=

60

10= 6

-¿Que representa el intervalo de [0 60]? :

Este intervalo lo que representa es el rango de tiempo en el cual se grafica la senal sin(t/6).

-¿Que duracion [s] y frecuencia [Hz] tienen estas senales?.

La duracion de estas senales es de 60 segundos, tal y como lo representa el intervalo definido en un comienzo.

Para calcular la frecuencia debemos fijarnos en el argumento de la funcion sin(t/6), donde por convencion los

Page 4: Señales en Matlab basico

argumentos son de ωt donde ω es la frecuencia angular y t es el tiempo de la senal. Ahora para conocer f se

conoce la siguiente igualdad:

ω = 2πf −→ f =ω

Por tanto la frecuencia(Hz) de estas senales seria:

1

12π

3. MUESTREO

1. Considere la senal continua en tiempo s(t) = sin(2πt), la cual se muestrea en intervalos uniformes de tiempos

Ts, de modo que s[n] = s(Tsn) = sin(2πTn) . Grafique la senal utilizando el comando stem para los siguientes

casos:

0 2 4 6 8 10−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Tiempo [t]

y(t)

Señal continua

señal

Figura 2. Senal continua a muestrear.

a) Ts = 1/10, 0 6 n 6 100, ejes en [0:100, -1:1].

1 n=1:1:100;

2 Ts=1/10;

3 s=sin(2*pi*Ts*n);

4 stem(n,s);

5 axis([0,100,-1,1]);

6 grid on

7 xlabel('Tiempo [N]');

8 ylabel('y(t)');

9 title('senal muestreada Ts=(1/10)');

10 legend('muestreo 1')

Como se ve en la figura 3, la senal queda graficada de forma acertada, cabe destacar que en la grafica anterior,

Page 5: Señales en Matlab basico

el tiempo no esta en funcion de los segundos, si no mas bien de los n puntos que se quiere graficar en el stem,

es decir la senal graficada es s(n) = (2πTsn) dnde Ts es el tiempo de muestreo, y n los puntos en el eje x, asi

de esta forma, se grafica la funcion discreta en funcion de los n puntos.

0 20 40 60 80 100−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Tiempo [N]

y(t)

señal muestreada Ts=(1/10)

muestreo 1

Figura 3. Muestreo 1 con Ts = 1/10.

b) Ts = 1/3, 0 6 n 6 30, ejes en [0:30, -1:1].

1 n=1:1:30;

2 Ts=1/3;

3 s=sin(2*pi*Ts*n);

4 stem(n,s);

5 axis([0,30,-1,1]);

6 grid on

7 xlabel('Tiempo [N]');

8 ylabel('y(t)');

9 title('senal muestreada Ts=(1/3)');

10 legend('muestreo 2')

En la senal de la figura 4, se ve claramente que la senal queda mal graficada , ya que si bien se cumple el teorema

de nyquist, el periodo de muestreo no es el apropiado, ya que este muestrea en intervalos que son iguales y la

funcion no alcanza a mostrarse con precision.

Page 6: Señales en Matlab basico

0 5 10 15 20 25 30−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Tiempo [N]

y(t)

señal muestreada Ts=(1/3)

muestreo 2

Figura 4. Muestreo 2 con Ts = 1/3.

c) Ts = 1/2, 0 6 n 6 20, ejes en [0:20, -1:1].

1 n=1:1:20;

2 Ts=1/2;

3 s=sin(2*pi*Ts*n);

4 stem(n,s);

5 axis([0,20,-1,1]);

6 grid on

7 xlabel('Tiempo [N]');

8 ylabel('y(t)');

9 title('senal muestreada Ts=(1/2)');

10 legend('muestreo 3')

En el caso de la figura 5, el teorema de Nyquist no se cumple, es evidente que la funcion no muetrea la senal

real, ya que a un periodo de muestreo de 0,5 segundos, justo en esos tiempos la senal pasa por 0, por ende no es

conveniente este periodo para representar la senal continua.

Page 7: Señales en Matlab basico

0 5 10 15 20−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Tiempo [N]

y(t)

señal muestreada Ts=(1/2)

muestreo 3

Figura 5. Muestreo 3 con Ts = 1/2.

d) Ts = 10/9, 0 6 n 6 100, ejes en [0:9, -1:1].

1 n=1:1:9;

2 Ts=10/9;

3 s=sin(2*pi*Ts*n);

4 stem(n,s);

5 axis([0,9,-1,1]);

6 grid on

7 xlabel('Tiempo [N]');

8 ylabel('y(t)');

9 title('senal muestreada Ts=(10/9)');

10 legend('muestreo 4')

Para el caso de la figura 6, la senal pareciera que esta bien graficada, pero presenta aliasing, es decir, la senal que

se muestra no representa la realidad ya que la frecuencia de muestreo no es mayor al doble de la frecuencia de

la senal analoga, y se puede comprobar viendo que en todo el tiempo graficado representarıa 10 segundos de la

senal original.

Page 8: Señales en Matlab basico

0 1 2 3 4 5 6 7 8 9−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Tiempo [N]

y(t)

señal muestreada Ts=(10/9)

muestreo 4

Figura 6. Muestreo 4 con Ts = 10/9.

2. ¿Cual es la frecuencia de esta senal?

La frecuencia de una senal analoga seno, se expresa y busca de la siguiente forma:

y(t) = sen(At)

donde A es la frecuencia angular de la senal analoga, definida como:

A = 2πf (1)

una vez sabiendo esto y sabiendo que la senal tiene como funcion y(t) = sen(2πt), entonces la frecuencia angular

corresponde a 2 ∗ pi, igualando esto a la formula (1) , se tiene que la frecuencia de la senal es 1 Hz.

3. ¿Cuantas muestras por periodo hay para cada caso?

Las muestras por periodo corresponden a la frecuencia de muestreo, cuya formula es:

Fs =1

Ts(2)

Por lo que ocupando la formula 2 se hace muy facil el calculo de las frecuencias de muestreo- Para cada caso:

a) 10 muestras por periodo.

b) 3 muestras por periodo.

c) 2 muestras por periodo.

d) 9/10 muestras por periodo.

4. ¿Son estas senales equivalentes?

Las 3 ultimas senales mencionadas no son equivalentes, ya que no todas representan la realidad de la senal

continua, esto ya que al unir los puntos , es decir, de pasar de senal digital a senal analoga nuevamente, las

funciones no quedarıan igual, esto es porque se produce aliasing o porque el tiempo de muestreo elegido no

Page 9: Señales en Matlab basico

es el correcto para la funcion seno. Como se puede apreciar el muetreo a Ts = 1/3, existen 3 muestras por

oscilacion de onda completo, y en el plano del tiempo esto significa 1 segundo, es decir, 3 muestras por segundo,

pero no se parecen demasiado los graficos al unir los puntos de la senal muestreada, lo mismo ocurre con los

siguientes tiempos de muestreo, donde la senal continua no tiene mucha similitud con las senales con muestreo

correspondientes. Diferencia sustancial de la primera muestra de Ts = 1/10 , se muestreo a velocidad de 10

muestras por segundo, no es coincidencia que al graficar en los primeros 10 segundos en forma continua (figura

1), obtuviera la misma cantidad de oscilacilacioes de esta, esto porque en un segundo se realiza un periodo entero

de onda.

5. ¿Cual es la frecuencia de muestreo de la senal y como afecta la resolucion del muestreo a este valor?

como se vio en la pregunta 2, las frecuencias de muestreo son para cada muestreo respectivamente: a) 10 muestras

por periodo.

b) 3 muestras por periodo.

c) 2 muestras por periodo.

d) 9/10 muestras por periodo.

Para el primer caso, la senal se muestra en forma correcta, no presenta fallos . En la senal b si se quisiera unir

los puntos, la senal resultante dicta mucho de la senal real, ya que la senal justo muestrea en el punto donde

no alcanza a llegar a la amplitud, negando toda la informacion que esta arriba del punto maximo de muestreo

para este caso, que en la realidad seria 1 y -1. Para el caso c, es mas critico aun y el periodo de muestra es el

menos indicado, ya que la funcion muestreo a 2 ciclos por periodo, lo que calza casi justo con el 0 del eje y de

la funcion seno, por lo que es muy inexacta la senal analoga para un tiempo de muestreo de 0.5. Para el caso d,

que pareciera estar correcto, pero se da que la frecuencia de muestreo no es mayor al doble de la frecuencia de

la senal analoga.

6. ¿Como se llama este fenomeno? El fenomeno para los casos donde el tiempo de muestreo es 1/2 y 10/9 se

llaman aliasing. Efecto que se causa a senales continuas al ser muestreadas digitalmente, donde la senal discreta

no es correspondiente a la realidad , en algunos casos, debido a que cuando se obtienen las mismas muestras

periodicas a una senoide, en ocasiones se obtiene las mismas muestras que se obtendrıan de una senal sinusidal

de frecuencia mas baja,en general para que no ocurra aliasing se debe tener una frecuencia de muestreo Fs >

frecuenciaanaloga.

CONCLUSIONES

Hacer este trabajo se hace muy necesario al empezar un curso como el de procesamiento digital de senales, ya que

muchas veces no estan claros o no se ha tenido algun modulo anterior sobre el tema. Algunos conceptos sobre senales,

tales como la forma de digitalizar una senal, la relacion entre el tiempo discreto con el tiempo continuo entre otros

topicos, en senales, son fundamentales para empezar algun tratamiento digital. Por otra parte el reconocimiento de las

funciones de MATLAB permite informarnos y tener nociones sobre cuales seran los procesos y lecturas que se haran

sobre las senales, en el transcurso del curso.

Page 10: Señales en Matlab basico

REFERENCIAS

[1] M. D. G. Proakis, J. G., “Digital signal processing,” Industrial Electronics, IEEE Transactions on, no. 3, 1996.