Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Discretos
Stalin Garcia, Michelle Herrera
Universidad de las Fuerzas Armadas ESPE
Departamento de Eléctrica y Electrónica
Sangolquı́-Ecuador
sagarcia3@espe.edu.ec, mcherrera6@espe.edu.ec
II. O BJETIVOS
Familiarizar al estudiante con el tratamiento de señales
discretas en Matlab.
Entender la funcionalidad de los diversos comandos Fig. 1: Ejemplo comando stem, Matlab R2015a
existentes en Matlab para el procesamiento de señales
discretas.
En el estudio de señales y sistemas discretos MATLAB es una
herramienta muy útil y eficiente.
conv: Desarrolla la convolución de dos secuencias, se
necesita escribir las secuencias como valores de vectores.
III. M ÉTODOS Y M ATERIALES La respuesta de este comando será un vector con el
Computador con Matlab versión R2015a resultado de la convolución de las señales.
Ejemplo:
IV. P ROCEDIMIENTO DE LA PR ÁCTICA
A. Señales y Sistemas en tiempo Discreto con Matlab
1 a =[1 1 1 1 1 ] ;
stem: stem(t, x), bosqueja los datos contenidos en el 2 b =[1 2 3 4 5 6 7 8 9 ] ;
vector x como una señal de tiempo discreto con los 3 c= conv ( a , b ) ;
valores de tiempo definidos por el vector t. Los vectores t 4 stem ( c , ’ g ’ ) ;
y x deben tener dimensiones compatibles, es decir deben 5 t i t l e ( ’ Comando conv ’ ) ;
tener el mismo número de elementos. En la figura 1 se 6 g r i d on
puede ver la gráfica que produce de comando stem en
Matlab.
Ejemplo:
Fig. 4: Ejemplo comando filter, Matlab R2015a
1 a = [ 1 −0.22 −0.21 0 . 0 1 7 0 . 0 1 ] ;
2 b =[1 2 1 ] ;
El muestreo consiste en el proceso de conversión de señales
3 h=impz ( b , a , 2 0 ) ;
continuas a señales discretas en el tiempo. Este proceso se rea-
4 stem ( h , ’ g ’ ) ;
lizada midiendo la señal en momentos periódicos del tiempo.
5 t i t l e ( ’ Comando impz ’ )
Considere en 3-Hz de la función coseno f1 (t) = cos (2π3t) y
6 g r i d on ;
la función de 7-Hz f2 (t) = cos (2π7t) ambas muestreadas a
fs = 10 muestras por cada segundo.
Ejemplo:
1 time = 0 : 0 . 1 : 0 . 9 ;
2 f 1 = cos (2∗ pi ∗3.∗ time ) ;
3 f 2 = cos (2∗ pi ∗7.∗ time ) ;
4 time aux = 0:0.001:(1 −0.001) ;
5 figure (1) ;
6 stem ( time , f 1 ) ;
7 h o l d on ;
8 p l o t ( time aux , cos (2∗ p i ∗3.∗ time aux ) ) ;
9 hold off ;
10 figure (2) ;
11 stem ( time , f 2 ) ;
Fig. 3: Ejemplo comando impz, Matlab R2015a
12 h o l d on ;
13 p l o t ( time aux , cos (2∗ p i ∗7.∗ time aux ) ) ;
B. Sistemas recursivos 14 hold off ;
15 % s u b p l o t ( 2 , 1 , 1 ) ; stem ( time , f 1 ) ;
filter: Se utiliza para aplicar un filtro digital unidimen-
16 % h o l d on ;
sional a una señal.
17 % p l o t ( time aux , cos (2∗ p i ∗3.∗ time aux ) ) ;
Ejemplo: Encuentra la respuesta al impulso del sistema
18 % hold off ;
y[n] − 1/αy[n − 1] = x[n], suponiendo que el sistema
19 % s u b p l o t ( 2 , 1 , 2 ) ; stem ( time , f 2 ) ;
está inicialmente relajado. Para α = 1,15 y 0 ≤ n ≤ 30.
20 % h o l d on ;
1 alpha = 1 . 1 5 ; N = 100; 21 % p l o t ( time aux , cos (2∗ p i ∗7.∗ time aux ) ) ;
2 x = [ 1 z e r o s ( 1 ,N) ] ; 22 % hold off ;
3 y = f i l t e r ( 1 , [ 1 −1/ a l p h a ] , x ) ; 23 g r i d on
4 stem ( y , ’ g ’ ) ;
5 t i t l e ( ’ Comando f i l t e r ’ ) ;
Fig. 5: Señal f1 (t) = cos (2π3t) muestrada a fs = 10Hz,
Matlab R2015a
Fig. 6: Señal sin ruido, Matlab R2015a
1 x =[1 1 0 0 0 0 1 1 0 0 0 0 ] ;
2 h =[1 2 3 4 0 0 0 0 0 0 0 0 ] ;
3 y= conv ( x , h ) ;
4 stem ( y , ’ b ’ ) ;
5 t i t l e ’ y [ n ]= x [ n ]∗ h [ n ] ’
6 g r i d on ;
Este ejercicio se muestra los comandos de Matlab nece-
sarios para realizar una convolución y su gráfica. Con el
comando conv generamos los valores de la convolución
y por último graficamos la salida y[n] mostrado en la
figura8 usando el comando stem.
Fig. 9: Salida al sistema y[n], Matlab R2015a
1 A= [ 1 , 2 , 1 ] ;
2 B=[0 ,0 ,0];
3 z= z e r o s ( 1 , 2 0 ) ;
4 i n i = f i l t i c (B,A, [ 1 , 0 ] ) ;
5 y= f i l t e r ( B , A, z , i n i ) ;
6 stem ( 1 : 2 0 , y , ’ p ’ ) ;
7 t i t l e ’ Salida y[n] ’
8 g r i d on ;
1 x =[1 1 0 0 ] ;
2 x1 = [ 1 1 0 0 ] ;
3 y= conv ( x , x1 ) ;
4 x2 = [ 1 1 0 0 ] ;
5 x3 = [ 1 1 0 0 ] ;
6 y1= conv ( x2 , x3 ) ; Fig. 10: Salida del Sistema y[n], Matlab R2015a
y[n] + y[n − 1] + 2y[n − 2] = 0
1 K= [ 1 , 1 , 2 ] ;
2 S= [ 0 , 0 , 0 ] ;
3 v= z e r o s ( 1 , 2 0 ) ;
4 i n i = f i l t i c ( S ,K, [ 1 , 0 ] ) ;
5 y = f i l t e r ( S , K, v , i n i ) ;
6 stem ( 1 : 2 0 , y )
7 t i t l e ’ Salida y[n] ’ ;
8 g r i d on ; Fig. 12: Respuesta al impulso, Matlab R2015a
Generamos los vectores para poder trabajar , en este 4y[n] + y[n − 1] + 3y[n − 2] = x[n] + x[n − 4]
ejercicio el coeficiente de la ecuación de diferencia nos
dara el valor del vector. Con el comando filtic nos per- 1 N= 2 0 ; a = [ 4 1 3 ] ; b = [ 1 0 0 1 ] ;
mite dar los valores iniciales de reposo. Con el comando 2 z=impz ( b , a , N) ;
filter y utilizando una función de transferencia racional 3 figure (1) ;
definida por el numerador y denominador coeficientes 4 stem ( z ) ;
B y A respectivamente. Tenemos la salida del sistema 5 g r i d on
caracterizado por y[n] y como se observa en la figura 6 xlabel ( ’n ’ ) ; ylabel ( ’h [ n ] ’ ) ;
10 y 11. 7 aux = [ 1 z e r o s ( 1 , N−1) ] ;
8 y= f i l t e r ( b , a , aux ) ;
9 figure (2) ;
10 stem ( y ) ;
y[n] + y[n − 1] + y[n − 2] = x[n] En los dos códigos anteriores, tanto el comando impz,
como el comando filter, nos producen la misma respues-
ta al impulso, pero recordando que se aplican diferentes
1 N= 2 0 ; a = [ 1 1 1 ] ; b = 1 ; parámetros para cada una.
2 z=impz ( b , a , N) ; 5. Escriba un programa en Matlab para graficar la res-
3 figure (1) ; puesta de estado estacionario para la entrada x[n] =
4 stem ( z , ’ g ’ ) ; sin (ωn)µ[n] de los filtros descritos por las siguientes
5 xlabel ( ’n ’ ) ; ylabel ( ’h [ n ] ’ ) ; tres ecuaciones. Considere ω = π/3 y ω = π.
6 aux = [ 1 z e r o s ( 1 , N−1) ] ; y[n] = x[n − 2] + x[n − 1] + x[n]
7 y= f i l t e r ( b , a , aux ) ;
8 t i t l e ( ’ Respuesta a l Impulso ’ ) ; 1 N= 2 0 ;
9 g r i d on ; 2 f o r i = 1 :N
3 x a ( i ) = s i n ( p i / 3 ∗ ( i −1) ) ;
4 end
5 f o r i = 1 :N
6 x b ( i ) = s i n ( p i ∗ ( i −1) ) ;
7 end
8 y a= f i l t e r ( [ 1 1 1 ] , 1 , x a ) ;
9 y b= f i l t e r ( [ 1 1 1 ] , 1 , x b ) ;
10 subplot (2 ,1 ,1) ;
11 stem ( 0 : 1 9 , y a , ’ r ’ ) ;
12 t i t l e ( ’Y[ n ] p a r a x [ n ] = s i n ( p i / 3 ) u [ n ]
’) ;
13 g r i d on
14 subplot (2 ,1 ,2) ;
15 stem ( 0 : 1 9 , y b , ’ b ’ ) ;
16 t i t l e ( ’Y[ n ] p a r a x [ n ] = s i n ( p i ) u [ n ] ’ )
; Fig. 15: Respuestas a la señal x[n] para π/3 y π, Matlab
17 g r i d on R2015a
1 t =30;
2 f o r i =1: t
3 x 1 ( i ) = s i n ( p i / 3 ∗ ( i −1) ) ;
4 end
5 f o r i =1: t
6 x 2 ( i ) = s i n ( p i ∗ ( i −1) ) ;
7 end
8 y 1= f i l t e r ( [ 1 2 1 ] , 1 , x 1 ) ;
9 y 2= f i l t e r ( [ 1 2 1 ] , 1 , x 2 ) ;
10 s u b p l o t ( 2 , 1 , 1 ) ; stem ( 0 : 2 9 , y 1 , ’ r ’ ) ;
11 t i t l e ( ’ P a r a w1= p i / 3 ’ ) ;
12 g r i d on
13 s u b p l o t ( 2 , 1 , 2 ) ; stem ( 0 : 2 9 , y 2 , ’ b ’ ) ,
14 t i t l e ( ’ P a r a w2= p i ’ ) ;
Fig. 14: Respuestas a la señal x[n] para π/3 y π 15 g r i d on
1
y[n] − y[n − 1] = x[n]
2
1 N= 3 0 ;
2 f o r i = 1 :N
3 x 1 ( i ) = s i n ( p i / 3 ∗ ( i −1) ) ;
4 end
5 f o r i = 1 :N
6 x 2 ( i ) = s i n ( p i ∗ ( i −1) ) ;
7 end
8 y 1= f i l t e r ( [ 1 1 1 ] , 1 , x 1 ) ;
9 y 2= f i l t e r ( [ 1 1 1 ] , 1 , x 2 ) ;
10 s u b p l o t ( 2 , 1 , 1 ) ; stem ( 0 : 2 9 , y 1 , ’ r ’ ) ; Fig. 16: Respuestas a la señal x[n] para π/3 y π, Matlab
11 g r i d on R2015a
12 t i t l e ’ P a r a w1= p i / 3 ’ ;
13 s u b p l o t ( 2 , 1 , 2 ) ; stem ( 0 : 2 9 , y 2 , ’ b ’ ) ; 6. Suponga que se quiere procesar una señal contı́nua
14 t i t l e ’ P a r a w2= p i ’ ; xa (t) = 3 cos (2π1000t) + 7 sin (2π1100t) usado un
15 g r i d on sistema discreto. La frecuencia de muestreo usada es
4000 muestras por segundo. El sistema que se usa para
procesar la señal es y[n] = x[n] + x[n − 2]. Después del
procesamiento, las muestras de la señal y[n] se convierte
de vuelta a una señal continua. Escriba un programa
en Matlab para simular la solución de este problema e
interprete el efecto que este procesamiento tiene sobre
la señal de entrada.
1 na = 0 : 1 0 0 0 0 ;
2 xa =3∗ c o s ( 2 ∗ p i ∗ 0 . 0 0 2 5 ∗ na ) +7∗ s i n ( 2 ∗ p i
∗ 0 . 0 0 2 7 5 ∗ na ) ;
3 x= xa ( 1 : 1 0 0 : l e n g t h ( xa ) ) ;
4 y= f i l t e r ( [ 1 0 1 ] , 1 , x ) ;
5 n = 0 : 1 0 0 : l e n g t h ( na ) ;
6 h= s i n c ( − 1 0 : . 0 1 : 1 0 ) ;
7 f o r i =1: l e n g t h ( n ) ,
8 ya ( i , 1 0 0 ∗ i −99:100∗ i −100+ l e n g t h ( h ) ) =h∗
y( i ) ;
9 end ;
10 yc =sum ( ya ) ; Fig. 18: Señales analógicas x[n] e y[n] respectivamente,
11 ya = yc ( 1 0 0 1 : l e n g t h ( yc ) −1000) ; Matlab R2015a
12 figure (1) ;
13 subplot (2 ,1 ,1) ;
14 s t e m ( x , ’m’ ) ; R EFERENCIAS
15 g r i d on [1] Paulo Diniz, Eduardo da Silva, and Sergio Netto. Digital Signal Proces-
16 subplot (2 ,1 ,2) ; sing: System Analysis and Design, 2nd Edition. Cambridge University
Press, ISBN 978-0-521-88775-5, 2010.
17 stem ( y , ’ k ’ ) ;
18 g r i d on
19 Ta = 1 / 4 0 0 0 0 0 ;
20 figure (2) ;
21 subplot (2 ,1 ,1) ;
22 p l o t ( na . ∗ Ta , xa , ’ y ’ ) ;
23 g r i d on
24 subplot (2 ,1 ,2) ;
25 p l o t ( na ∗Ta , ya , ’ c ’ ) ;
26 g r i d on