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)
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.
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
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 =ω
2π
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,
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.
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.
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.
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
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.
REFERENCIAS
[1] M. D. G. Proakis, J. G., “Digital signal processing,” Industrial Electronics, IEEE Transactions on, no. 3, 1996.
Top Related