Está en la página 1de 9

Practica 3

Filtros en Matlab.
Gonzlez Arevalo Elfrich, Reyes Lpez Misael, Ruiz Prez Christian (chritianjord@hotmail.com).

Resumen
En esta prctica se hizo uso de las funciones filter y function. La primera utilizada para simular un filtro el cual necesita como entradas las constantes de la ecuacin en diferencias, y la segunda es utilizada para la flexibidad del programa pues permite que las variables (datos) utilizadas en el programa puedan ser introducidos por el usuario.

Introduccin
Matlab es una gran herramienta que proporciona una ampla gamma de aplicaciones para el manejo de seales discretas. Los filtros suavizantes se emplean para que la imagen aparezca algo borrosa y tambin para reducir ruido. Es til que la imagen aparezca algo borrosa en algunas etapas de preprocesado, como la eliminacin de los pequeos detalles de una imagen antes de la extraccin de un objeto, y el relleno de pequeos espacios entre lneas o curvas. Se utiliza para reducir ruido en una imagen, igual que en el caso del filtrado por la media. Sin embargo suele funcionar mejor ya que conserva detalles significativos de la imagen. La mediana m de un conjunto de valores es tal que la mitad de los valores del conjunto quedan por debajo de m y la otra mitad por encima.

Problema 1
La ecuacin en diferencias:
N M

aky n
K0

k 
K0

bkx n

es la forma general de representar filtros. Indicando los coeficientes de ambas sumatorias como A  [a0 a1 a2 . . . aM] B  [b0 b1 b2 . . . bN] se puede encontrar la respuesta de cualquier filtro a una entrada x[n], utilizando la instruccin filter de matlab. La ecuacin:
M 1

y[n]

1 M k0

xn

representa un filtro suavizante de M puntos (tambin conocido como filtro moving average). Suponiendo que se tiene una sinusoide compuesta como entrada x[n] 

cos(1n)  cos(2n), a) Escriba una funcin en matlab que acepte como entradas el nmero de puntos M del filtro, el valor de 1 y 2, y como salida debe regresar el vector y[n]. Por ejemplo, pruebe con los valores 1  /10 y 2  0,94. Representando grficamente (utilizando la instruccin subplot) cada una de las seales que conforman la seal compuesta, la seal compuesta, y la respuesta del filtro. b)Ejecute el programa para varios valores de M (para los mismos valores de 1 y 2). Qu componente de la entrada es eliminado?, Cul es el valor ptimo de M?, Por qu?

Figura 1. Seales componentes, compuesta y respuesta del filtro, para w1pi/10 y w20.94pi, M100.

Figura 2. Seales componentes, compuesta y respuesta del filtro, para w1pi/10 y w20.94pi, M300.

Figura 3. Seales componentes, compuesta y respuesta del filtro, para w1pi/10 y w20.94pi, M10.

En las figuras anteriores es posible apreciar que ninguna de las componentes de la seal de entrada es eliminada, pues el efecto que sufre al aplicarle el filtro es la reduccin en amplitud de la seal. El valor optimo de M para la seal se encuentra apartir de 150 puntos.

Problema 2
Qu sucede si se utiliza la ecuacin.

y[n] 1 x n 2

xn

Figura 4. Seales componentes, compuesta y respuesta del filtro, para w1pi/10 y w20.94pi, M100.

Figura 5. Seales componentes, compuesta y respuesta del filtro, para w1pi/10 y w20.94pi, M200.

Figura 6. Seales componentes, compuesta y respuesta del filtro, para w1pi/10 y w20.94pi, M10. En las figuras mostradas anteriormente es posible observar que la seal de salida (aplicando el filtro) tiene la forma de la seal componente con frecuencia W2, de esto podemos concluir que la componente de entrada que se elimina es la seal con frecuencia W1. El punto ptimo para M se encuentra apartir de 150 puntos.

Problema 3
Sea la ecuacin. y n  x2 n x n donde x n  cos n 1 x n1

* Escriba una funcin en matlab que acepte como entrada el valor de , y como salida debe regresar el vector y[n].b) Ejecute el programa para varios valores de . Cmo es la dependencia entre la seal de salida de la frecuencia de la seal de entrada? Despejando un poco la funcin analticamente obtenemos:

y n  x 2 n x n 1 x n  1  Cos wn 2 Cos wn 1 usando cos a  b cos a b  1 Cos 2a  Cos 2b 2 1 y n  1 Cos 2wn  1 Cos 2wn  Cos 2 2 2 1 y n  2 1 Cos 2  Sen 1 2

Cos wn  1

Lo cual es una constante, por lo tanto la seal de salida no depende de la fecuencia de la seal de entrada.

* Utilice x[n]  cos(n)  K. Cmo depende y[n] del valor de K (valor DC)? Si x n  cos n  K entonces:
y n  x2 n 1 x n  1  Cos wn  K 2 Cos wn KCos wn  K
2

xn
2

1 K

Cos wn  1  K Cos wn 1  KCos wn  1  K 2 1  Cos wn  1

y n  Cos wn 2

Cos wn 1

Cos wn  1  K

y n  Cos wn 2 2KCos wn

Cos wn

Cos wn  1  K

Cos wn

usando Cos a
2

b  Cos a  b  2
Cos wn
1 2

Cos a

Cos b
K Cos wn 1  Cos wn  1 Cos 1

y n  Cos wn 2K

Cos wn  Cos 2

1 y n  1 Cos 2wn  1 2K Cos wn Cos wn  Cos 2  2K 2 2 2 1 1 y n  2 2K Cos wn Cos 2  2K Cos wn Cos 1 2

Cos wn

y n  1 1 Cos 2 2 2 y n  Sen 1 2K

 2K

Cos wn 1 Cos 1

Cos 1

Cos wn 1

Ahora con el valor de K incluido la seal de salida depende la frecuencia de entrada. Si K es cero entonces y[n] es una constante como se mostr en el inciso a). Para graficar esta ecuacin se utiliz el siguiente cdigo: function yprac4_3(w,K,max) n0:max; y(1)sin(1)^22*K*[1-cos(1)]; for i1:max1 y(i)sin(1)^22*K*cos(w*i)*[1-cos(1)]; end stem(n,y); title(Seal y(n) con K); Donde  es la frecuencia. K es el valor de DC max es la longitud mxima del vector Para  50,K  10 y max  100, obtenemos la seal de la imagen mostrada en la figura 7. Para  50,K  0 y max  100, obtenemos la seal de la imagen mostrada en la figura 8. Para  25,K  10 y max  100, obtenemos la seal de la imagen mostrada en la figura 9.

Figura 8. Seal de salida y(n) con K0. En la imagen de la figura 8 podemos observar el caso del inciso a) donde K es igual a cero y la seal de salida y(n) es una constante. Usando una frecuencia diferente y K10.

Figura 9. Seal de salida y(n) con frecuencia diferente Por ltimo usando la misma frecuencia anterior pero con K0.

Figura 10. Seal de salida y(n) con K0. Observamos que la seal de salida an con una fecuencia diferente si K0 entonces ser una constante.

Conclusiones
Se pudo comprobar el comportamiento de la seal discreta al aplicarle un filtro suavizante. Cabe mencionar tambien que en la parte del software (Matlab) el manejo de los ndices en los vectores son tratados de forma diferente a la que tericamente es usada, pues mientras nosotros utilizamos un indice inferior igual a cero, matlab lo maneja como uno. Para el ltimo ejercicio se pudo observar que una seal que puede parecer periodica o incluso otra seal senoidal por estar multiplicada por dos cosenos puede llegar a dar por respuesta una constante y que al contrario de las seales en tiempo continuo, un aumento de DC o una constante puede dar como resultado no solo un incremento de offset si no tambin el aumento o decremento de la amplitud de la seal senoidal de salida.

Bilbliografa.
TRATAMIENTO DIGITAL DE SEALES PROAKIS, JOHN G. \ MANOLAKIS DIMITRIS G. 1998 http://www2.udec.cl/~guipereira/semiconductores/ejemplo_de_informe.pdf

También podría gustarte