PDS Eq 01 Prac 08 17O
PDS Eq 01 Prac 08 17O
PDS Eq 01 Prac 08 17O
8
Muestreo de señales y su DFT.
Ángel de Jesús Eslava Castro *, Mario Alberto Ambrosio González **
e Israel Bautista
Bautista ***
11 de diciembre de 2017
Resumen
Se usó el teorema de muestreo de Nyquist-Shannon, el cual nos dice que dada una señal de banda
limitada podemos reconstruirla a partir de valores muestra de la misma señal, solo si, la frecuencia de
muestreo es mayor que el doble del ancho de banda. Para el primer ejercicio usamos la función que
ya se había definido en prácticas anteriores de “desplazamiento en el tiempo” y se grafica las señales
obtenidas. Para los demás se utilizó funciones precargadas de Matlab y un código que la práctica nos
recomendaba usar. Y para lo último usamos el teorema de muestreo de Nyquist-Shannon, como ya se
mencionó anteriormente. Además comprobamos que la reconstrucción exacta de una señal periódica
continua en banda base a partir de sus muestras, es matemáticamente posible si la señal está limitada
en banda y la tasa de muestreo es superior al doble de su ancho de banda.
1. Objetivos
1. Comprender la graficación de señales compuestas.
3. Usando un código de Matlab/FreeMat que se proporciona, analizar las gráficas resultantes de la señal
análoga, la frecuencia, y el comportamiento de la transformada de Fourier continua en el tiempo de
este caso.
4. Entender los efectos del muestreo en cantidades sobre el dominio de la frecuencia, muestree la misma
señal del objetivo 1, xa (t), para 2 diferentes frecuencias de muestreo y grafique X(e jω ) para cada caso.
* a.eslava.castro@gmail.com
** mmaambrosio@gmail.com
*** israel.bta94@gmail.com
1
2. Introducción
Una señal es cualquier perturbación física medible que transporta información.
1. Una señal de audio afecta a la presión que el aire ejerce sobre la membrana de un micrófono. Una
señal de audio puede medirse como el desplazamiento que sufre la membrana respecto de su posición
de equilibro.
2. En el caso de una imagen, una señal luminosa afecta al tipo y cantidad de radiación electromagnética
que alcanza un dispositivo sensible a la luz.
En general, una señal expresa variaciones continuas de una magnitud física y se habla, en este caso,
de señal analógica.
La naturaleza analógica de las señales hace imposible su manipulación mediante sistemas digitales.
Por este motivo previamente se digitalizan. El muestreo es la primera etapa que se realiza cuando
digitalizamos señales según [1].
3. Una señal de audio muestreada es igual a la señal de audio original en aquellos puntos donde se toma
cada muestra.
4. En el caso de una imagen estática (la que tomamos con una cámara de fotos), el muestreo produce una
matriz bidimensional de muestras recogidas en diferentes puntos espaciales. Para una señal de vídeo
muestreamos tanto en el dominio del espacio como en el del tiempo. Así lo que obtendríamos sería
una secuencia de imágenes como las del caso anterior.
2
3. Desarrollo
3.1. Ejercicio 1.- Para comprender mejor la graficacion de señales compuestas
Defina un programa la señal x[n], para 3 ≤ n ≤ 11, tal que:
2 si n = 0
1 si n = 2
x[n] = −1 si n = 3 (1)
3 si n = 4
0 otros
Grafique x[n]. A continuación, defina las siguientes funciones con base a x[n]:
y1 = y[n − 2]
y2 = y[n + 1]
(2)
y3 = y[−n]
y4 = y[−n + 1]
Finalmene realice una ventana 5x1 donde grafique x[n] y las 5 señales resultantes.
1 % limpiamos ventana de comando y variables , ademas de cerrar las
ventanas
2 close all ;
3 clear all ;
4 clc ;
5
6 % generamos vector de muestras y la funcion x [ n]
7 n =[ -3:11] ;
8 x =[ zeros (1 ,3) 2 0 1 -1 3 zeros (1 ,7) ];
9
10 % calculamos lasfunciones y1 [ n ] , y2 [ n ] , y3 [ n ] , y4 [ n ] con base en la
funcion x [ n ]
11 [ y1 , n1 ]= sigshift (x ,n ,2) ;
12 [ y2 , n2 ]= sigshift (x ,n , -1) ;
13 [ y3 , n3 ]= sigfold (x , n ) ;
14 [ y4 , n4 ]= sigshift ( y3 , n3 ,3) ;
15
16 % graficamos la funcion x [ n ]
17 figure ;
18 subplot (5 ,1 ,1) ;
19 stem (n ,x ) ;
20 title ( ' funcion original ') ;
21 xlabel ( 'n ') ;
22 ylabel ( 'x [ n ] ') ;
23 grid on ;
24 axis ([ -3 11 , -2 3]) ;
25
26 % graficamos la funcion y1 [ n]
3
27 subplot (5 ,1 ,2) ;
28 stem ( n1 , y1 ) ;
29 title ( ' funcion y1 [ n ] ') ;
30 xlabel ( 'n ') ;
31 ylabel ( ' y1 [ n] ') ;
32 grid on ;
33 axis ([ -3 11 , -2 3]) ;
34
35 % graficamos la funcion y2 [ n]
36 subplot (5 ,1 ,3) ;
37 stem ( n2 , y2 ) ;
38 title ( ' funcion y2 [ n ] ') ;
39 xlabel ( 'n ') ;
40 ylabel ( ' y2 [ n] ') ;
41 grid on ;
42 axis ([ -3 11 , -2 3]) ;
43
44 % graficamos la funcion y3 [ n]
45 subplot (5 ,1 ,4) ;
46 stem ( n3 , y3 ) ;
47 title ( ' funcion y3 [ n ] ') ;
48 xlabel ( 'n ') ;
49 ylabel ( ' y3 [ n] ') ;
50 grid on ;
51 axis ([ -3 11 , -2 3]) ;
52
53 % graficamos la funcion y4 [ n]
54 subplot (5 ,1 ,5) ;
55 stem ( n4 , y4 ) ;
56 title ( ' funcion y4 [ n ] ') ;
57 xlabel ( 'n ') ;
58 ylabel ( ' y4 [ n] ') ;
59 grid on ;
60 axis ([ -3 11 , -2 3]) ;
3.2. Ejercicio 2.- Para comprender mejor las señales pares e impares
Para cada una de las señales cuya expresón se muestra a continuación, obtener suspares par y su parte
impar(hint: use fliplr ). En una ventana 3x2 represente las tres señales ( orignal, par e impar), en el rango
−10 ≤ n ≤ 10.
1 si 0 ≤ n ≤ 5
x1 [n] = −1 si − 5 ≤ n ≤ 0 (3)
0 otros
4
funcion original
2
x[n]
0
-2
-2 0 2 4 6 8 10
n
funcion y1[n]
2
y1[n]
0
-2
-2 0 2 4 6 8 10
n
funcion y2[n]
2
y2[n]
0
-2
-2 0 2 4 6 8 10
n
funcion y3[n]
2
y3[n]
0
-2
-2 0 2 4 6 8 10
n
funcion y4[n]
2
y4[n]
0
-2
-2 0 2 4 6 8 10
n
Compruebe que el ejercicio es correcto observando la simetría de las señales pares e impares obtenidas.
Analice el vector de índices obtenido para cada caso. Cree un programa que reciba de entrada una señal
x[n] y devuelva dos señales: la parte par x p [n] y la parte impar xi [n]. Compruebe su funionamiento con las
mismas funciones dadas en esta práctica (incluyendo la señal del ejercicio 3).
1 clear all ;
2 close all ;
3 clc ;
4
5 %definimos rango de la senal original y de su forma par e impar
6 n = -10:10;
7 x1 = zeros ( size ( n ) ) ;
8 x1 = x1 - stepseq ( -5 , min ( n ) , max ( n) ) +2* stepseq (0 , min ( n ) , max ( n ) ) - stepseq
(6 , min (n ) , max ( n ) ) ;
9 x1im =( x1 /2) - fliplr ( x1 /2) ;
10 x1pa =( x1 /2) + fliplr ( x1 /2) ;
11
12 % 0 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 0
5
13 % 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
14 x2 =[0 0 0 0 0 0 0 0 1 2 3 0 0 0 0 0 0 1 0 0 0];
15 x2pa =( x2 /2) + fliplr ( x2 /2) ;
16 x2im =( x2 /2) - fliplr ( x2 /2) ;
17
18 % 0 9 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8 9 0
19 % 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
20 x3 =[0 0 0 0 0 0 -1 2 2 1 1 2 1 -1 0 0 0 0 0 0 0];
21 x3pa =( x3 /2) + fliplr ( x3 /2) ;
22 x3im =( x3 /2) - fliplr ( x3 /2) ;
23 %
---- ------ ------- ------ ------- ------ ------- ------ ------- ------ ------
24 figure (1) ;
25 %graficamos la senal x1 [n ] original , y su forma par e impar
26 subplot (3 ,3 ,1) , stem (n , x1 );
27 xlabel ( 'n ') ; ylabel ( ' X1 [ n] ') ;
28 title ( ' Funcion original x1 [n ] ') ;
29 grid on ;
30 axis ([ -10 10 , -1 1]) ;
31 %graficamos la forma par
32 subplot (3 ,3 ,2) , stem (n , x1pa ) ;
33 xlabel ( 'n ') ; ylabel ( ' X1 [ n] ') ;
34 title ( ' Forma par de x1 [ n] ') ;
35 grid on ;
36 axis ([ -10 10 , -1 1]) ;
37 %graficamos la forma impar
38 subplot (3 ,3 ,3) , stem (n , x1im ) ;
39 xlabel ( 'n ') ; ylabel ( ' X1 [ n] ') ;
40 title ( ' Forma impar de x1 [ n ] ') ;
41 grid on ;
42 axis ([ -10 10 , -1 1]) ;
43 %graficamos la senal x2 [n ] original , y su forma par e impar
44 subplot (3 ,3 ,4) , stem (n , x2 );
45 xlabel ( 'n ') ; ylabel ( ' X2 [ n] ') ;
46 title ( ' Funcion original x2 [n ] ') ;
47 grid on ;
48 axis ([ -10 10 , 0 3]) ;
49 %graficamos la forma par
50 subplot (3 ,3 ,5) , stem (n , x2pa ) ;
51 xlabel ( 'n ') ; ylabel ( ' X2 [ n] ') ;
52 title ( ' Forma par de x2 [ n] ') ;
53 grid on ;
54 axis ([ -10 10 , -1 3]) ;
55 %graficamos la forma impar
56 subplot (3 ,3 ,6) , stem (n , x2im ) ;
57 xlabel ( 'n ') ; ylabel ( ' X2 [ n] ') ;
6
58 title ( ' Forma impar de x2 [ n ] ') ;
59 grid on ;
60 axis ([ -10 10 , -2 2]) ;
61 %graficamos la senal x3 [n ] original , y su forma par e impar
62 subplot (3 ,3 ,7) , stem (n , x3 );
63 xlabel ( 'n ') ; ylabel ( ' X3 [ n] ') ;
64 title ( ' Funcion original x3 [n ] ') ;
65 grid on ;
66 axis ([ -10 10 , -1 2]) ;
67 %graficamos la forma par
68 subplot (3 ,3 ,8) , stem (n , x3pa ) ;
69 xlabel ( 'n ') ; ylabel ( ' X3 [ n] ') ;
70 title ( ' Forma par de x3 [ n] ') ;
71 grid on ;
72 axis ([ -10 10 , -1 2]) ;
73 %graficamos la forma impar
74 subplot (3 ,3 ,9) , stem (n , x3im ) ;
75 xlabel ( 'n ') ; ylabel ( ' X3 [ n] ') ;
76 title ( ' Forma impar de x3 [ n ] ') ;
77 grid on ;
78 axis ([ -10 10 , -1 2]) ;
X1[n]
X1[n]
0 0 0
-1 -1 -1
-10 -5 0 5 10 -10 -5 0 5 10 -10 -5 0 5 10
n n n
Funcion original x2[n] Forma par de x2[n] Forma impar de x2[n]
3 4 4
2 2
2
X2[n]
X2[n]
X2[n]
0 0
1
-2 -2
0 -4 -4
-10 -5 0 5 10 -10 -5 0 5 10 -10 -5 0 5 10
n n n
Funcion original x3[n] Forma par de x3[n] Forma impar de x3[n]
4 4 4
2 2 2
X3[n]
X3[n]
X3[n]
0 0 0
-2 -2 -2
-4 -4 -4
-10 -5 0 5 10 -10 -5 0 5 10 -10 -5 0 5 10
n n n
3.3. Ejercicio 3.
Sea xa (t) = e−1000|t|
7
Z 0
0,002
Z ∞ Z ∞
Xa ( jΩ) = xa (t)e− jΩt dt = e1000t e− jΩt dt + e−1000t e− jΩt dt = Ω 2
−∞ −∞ 0 1 + ( 1000 )
Para evaluar su transformada de Fourier numéricamente, primero tenemos que aproximar xa (t) por
medio de una sucesión de tamaño de paso muy fino que cubra el dominio, sea xG (m). Considerando
la aproximación de que e−5 = 0, tenemos que xa (t) puede aproximarse usando una señal de duración
finita para −0,005 ≤ t ≤ 0,005, o su equivalente para [−5, 5]msec, análogamente Xa ( jΩ) = 0 para Ω ≥
2π(2000). Entoces tomando esta elección:
4t = 5x10−5 1
2(200) = 25x10−5
Podemos obtener xG (m) para aproximar la transformada de Fourier. Usando el código de MatLab analice
las gráficas resultantes de la señal análoga, la frecuencia, y el comportamiento de la serie de Fourier
continua en el tiempo de este caso.
1 % Senal analoga
2 Dt = 0.00005;
3 t = -0.005: Dt :0.005;
4 xa = exp ( -1000* abs ( t ) ) ;
5 % Transformada de Fourier continua en el tiempo
6 Wmax = 2* pi *2000;
7 K = 500;
8 k = 0:1: K ;
9 W = k* Wmax / K ;
10 Xa = xa * exp ( - j*t '* W ) * Dt ;
11 Xa = real ( Xa ) ;
12 W = [- fliplr ( W ) , W (2:501) ]; % Omega desde - Wmax hasta Wmax
13 Xa = [ fliplr ( Xa ) , Xa (2:501) ]; % Xa sobre - Wmax hasta Wmax
14 %graficamos
15 subplot (2 ,1 ,1) ; plot ( t *1000 , xa ) ;
16 xlabel ( 't in msec . ') ;
17 ylabel ( ' xa ( t) ')
18 title ( ' Senal Analoga ')
19 subplot (2 ,1 ,2) ;
20 plot ( W /(2* pi *1000) ,Xa *1000) ;
21 xlabel ( ' Frecuencia en KHz ') ;
22 ylabel ( ' Xa ( jW ) *1000 ') ;
23 title ( ' Transformada de Fourier continua en el tiempo ')
3.4. Ejercicio 4.
Ahora, para estudiar los efectos del muestreo en cantidades sobre el dominio de la frecuencia, mues-
tree la misma señal del ejercicio I, xa (t)
a) Muestreo de xa (t) para Fs = 5000 muestras/ segundo para tener x1 (n). Determine y grafique X1 (e jΩ )
b) Muestreo de xa (t) para Fs = 1000 muestras/ segundo para tener x2 (n). Determine y grafique X2 (e jΩ )
8
Senal Analoga
1
0.8
xa(t) 0.6
0.4
0.2
0
-5 -4 -3 -2 -1 0 1 2 3 4 5
t in msec.
1.5
Xa(jW)*1000
0.5
0
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Frecuencia en KHz
1 %Nota : para cumplir los dos incisos del ejercicio desde el mismo
codigo es
2 %necesario cambiar el parametro Fs al que se requiera .
3
4 % limpiamos ventana de comando y variables , ademas de cerrar las
ventanas
5 clear all ;
6 close all ;
7 clc ;
8 %
9 Dt =0.00005;
10 t = -0.005: Dt :0.005 ;
11 xa = exp ( -1000* abs ( t ) ) ;
12
13 %Senal discreta
14 Fs =1000;
15 Ts =1/ Fs ;
16 n = -25:1:25;
17 x = exp ( -1000* abs (n * Ts ) ) ;
18
19 %Transformada Discreta de Fourier
20 K =500;
21 k =0:1: K ;
22 W = pi * k/ K ;
23 X = x * exp ( -1* i *n '* W ) * Dt ;
24 X = real ( X );
25 W =[ - fliplr ( W ) ,W (2:501) ]; %omega de sde Wmax hasta Wmax
9
26 X =[ fliplr ( X ) ,X (2:501) ]; %Xa sobre Wmax hasta Wmax
27
28 % graficamos la funcion en tiempo y frecuencia
29 subplot (2 ,1 ,1) ;
30 plot ( t *1000 , xa ) ;
31 grid on ;
32 xlabel ( 't [ msec ] ') ;
33 ylabel ( ' xa ( t) ')
34 title ( ' Senal Discreta ') ;
35 hold on ;
36 stem ( n * Ts *1000 , x ) ;
37 subplot (2 ,1 ,2) ;
38 plot ( W /(2* pi ) ,X ) ;
39 grid on ;
40 xlabel ( ' Frecuencia en pi radianes ') ;
41 ylabel ( ' Xa ( jw ) *1000 ') ;
42 title ( ' DFT ') ;
Senal Discreta
1
0.8
0.6
xa(t)
0.4
0.2
0
-5 -4 -3 -2 -1 0 1 2 3 4 5
t[msec]
×10 -4 DFT
5
4
Xa(jw)*1000
0
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
Frecuencia en pi radianes
4. Conclusiones
Podemos observar como al utilizar el muestro de Nysquist-Shannon, nos facilita el muestreo de una
señal , así al cumplirse este teorema , la reconstrucción de la señal fue la adecuada, además de observó
cómo la transformada de Fourier ayuda en la representación de una señal. Así podemos utilizar esta
transformada de Fourier para mejorar la calidad de la señal al momento de procesarla.
10
Senal Discreta
1
0.8
xa(t) 0.6
0.4
0.2
0
-25 -20 -15 -10 -5 0 5 10 15 20 25
t[msec]
×10 -5 DFT
12
10
Xa(jw)*1000
2
-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5
Frecuencia en pi radianes
Referencias
[1] A.V. Oppenheim and R.W. Shafer. Discrete-Time Signal Processing. Prentice-Hall, 1989.
[2] B.P. Lathi. Introducci’on a la Teoría y Sistemas de Comunicación. Limusa Noriega Editores, 1994
[3] R.C. Gonzalez and R.E. Woods. Digital Image Processing. Addison Wesley, 1992.
11