600 likes | 757 Views
Digital Image Processing Chapter 5 Filter Design. Dr. Mario Chacón DSP & Vision Lab. Filter Design Theory. FIR Filters Son fáciles de representar como matrices de coeficientes. Lo cual es muy apropiado para la aplicación del filtro como kernel.
E N D
Digital Image Processing Chapter 5Filter Design Dr. Mario Chacón DSP & Vision Lab
Filter Design Theory • FIR Filters • Son fáciles de representar como matrices de coeficientes. Lo cual es • muy apropiado para la aplicación del filtro como kernel. • Son extensiones naturales de filtros FIR de 1-D. El diseño de un filtro • FIR en una dimensión puede ser extendido a 2-D y usado para • procesar una imagen. • Existen varios métodos confiables de diseño. • Son fáciles de implementar. • Es posible implementar filtros con fase cero, lo cual mantiene la • integridad de los datos de la imagen filtrada. No genera distorsión en • la imagen. • Son estables
Filter Design Steps • Definir las especificaciones del filtro. • Seleccionar un método de diseño. • Usar el método seleccionado y diseñar el filtro. • Una vez diseñado el filtro se procede a su implementación en software o en • hardware.
Filter Design Implementation • PC Software • DSP • FPGAs
Rizo de Pasa Banda Banda de Transición Pasa Banda Rizo de Banda de paro Basic Concepts
FIR Filter Design Impulse response Difference equation Output using convolution
FIR Filter Design Transfer function Frequency response
FIR Filter design Using Windows Consideremos que el filtro deseado corresponde a
FIR Filter design Using Windows Rectangular Barlett Hanning
FIR Filter design Using Windows Hamming Blackman
FIR Filter design Using Windows • La similitud entre el filtro deseado y el obtenido dependerá de dos factores de la ventana: • El ancho del lóbulo principal. • La amplitud pico del lóbulo lateral.
Magnitud lóbulo lateral Lóbulo principal FIR Filter design Using Windows Figura 5. 2 Respuesta a la frecuencia de la ventana rectangular
FIR Filter design Using Windows Para obtener un filtro con características más parecidas al deseado se requiere que el lóbulo principal sea lo más angosto posible y la amplitud de lóbulo lateral sea pequeño
FIR Filter design Using Windows • Propiedades de las ventanas: • El ancho del lóbulo principal es inversamente proporcional a la longitud de la ventana. Si N aumenta el ancho del lóbulo principal disminuye lo cual resultará en una disminución del ancho de transición entre la pasa banda y la rechaza banda, expresado como N = C donde es el ancho de transición y C es un parámetro dependiente del tipo de ventana. • El ancho de transición de filtro pasa bajas diseñado es aproximadamente igual al ancho del lóbulo principal de la ventana usada en el diseño. • El tipo de ventana determina el pico máximo del lóbulo lateral y no se modifica por la longitud de la ventana, es decir es independiente de N . • Si queremos disminuir el pico máximo del lóbulo lateral usando una ventana distinta, el ancho del lóbulo principal generalmente aumenta.
Ventana Amplitud de lóbulo lateral dB Ancho de transición Atenuación en la banda de paro dB Rectangular -13 0.9/N -21 Hanning -31 3.1/N -44 Hamming -41 3.3/N -53 Blackman -57 5.5/N -74 FIR Filter design Using Windows
FIR Filter design Using WindowsExample Filtro pasa bajas de orden N=33 . El filtro deseado tiene las siguientes características:
FIR Filter design Using WindowsExample El retraso del filtro h(n) es La respuesta ideal del filtro pasa bajas es
FIR Filter design Using WindowsExample La banda de transición considerando una ventana rectangular será Con atenuación de –21dB El filtro resultante será
FIR Filter design Using WindowsExample If we want to improve the stop band attenuation, -53dB we can use a Hamming window And the new filter is However the new transition bandwidth is
FIR Filter design Bilinear Transformation Design steps Pre-warp Design an analog filter that meet the frequency specifications Apply the bilinear transformation
FIR Filter design Bilinear TransformationExample Low pass filter, -3db @ 0.5 rad, at least 15dB @ 0.75 rad, monotonic
FIR Filter design Bilinear TransformationExample Butterworth
FIR Filter design Bilinear TransformationExample Bilinear tranformation
FIR Filter design With Matlab Stable Zero phase
9 10 -8 15 7 20 22 21 -6 9 5 14 -4 19 23 22 10 3 -2 15 1 21 24 23 9 14 22 25 24 11 15 20 26 25 FIR Filter design With MatlabFiltering by convolution Filter Convolution kernel Image
10 15 20 22 21 9 14x9 19x-8 23x7 22 10 15x-6 21x5 24x-4 23 9 14x3 22x-2 25x1 24 11 15 20 26 25 FIR Filter design With MatlabFiltering by convolution
FIR Filter design With MatlabFiltering by convolution shape full, default, regresa la convolución completa same, regresa la parte central de la convolución can el mismo tamaño que A. valid, regresa solo las partes de la convolución que son calculadas sin el relleno de ceros en los bordes. Sobre esto daremos una mayor descripción más adelante.
FIR Filter design With MatlabFiltering by convolution filter2 filtra los datos de I con el filtro FIR 2-D en h(n) . full tiene dimensiones mayores que I. same, tiene las mismas dimensiones que I valid tiene dimensiones menores que I.
-2 -3 -3 -3 -3 -3 -3 -2 0 0 0 0 0 0 0 0 0 -99 -198 -297 -198 -99 0 0 0 -99 -198 -297 -198 -99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 198 297 198 99 0 0 0 99 198 297 198 99 0 0 0 0 0 0 0 0 0 0 2 3 3 3 3 3 3 2 FIR Filter design With MatlabFiltering by convolution I = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 100 1 1 1 1 1 100 100 100 1 1 1 1 1 100 100 100 1 1 1 1 1 100 100 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 h = 1 1 1 0 0 0 -1 -1 -1
FIR Filter design With MatlabFiltering by convolution h3 = 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 h7 = 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204 0.0204
FIR Filter design With MatlabFiltering by convolution Figura 5. 5 a) Original, b) promediado 3x3, c) promediado 7x7.
w1 0xw1 10xw1 25xw1 w2 0xw2 10xw2 11xw2 w3 w3x0 15xw3 15xw3 21xw4 10xw4 0xw4 w4 10xw5 10xw5 10xw5 10xw5 15xw6 15xw6 15xw6 15xw6 20 20 20 20 22 22 22 22 21 21 21 21 0xw7 9xw7 22xw7 w7 9xw8 9xw8 9xw8 9xw8 14xw9 14xw9 14xw9 14xw9 19 19 19 19 23 23 23 23 22 22 22 22 10 10 10 10 15 15 15 15 21 21 21 21 24 24 24 24 23 23 23 23 9 9 9 9 14 14 14 14 22 22 22 22 25 25 25 25 24 24 24 24 11 11 11 11 15 15 15 15 20 20 20 20 26 26 26 26 25 25 25 25 FIR Filter design Limit problem Zero padding mirror circular Figura 5. 6 a)Valores sin resolver, b) relleno de ceros, c) réplica, d) circular, e) simétrica.
FIR Filter design Limit problem Una gran ventaja que tiene la función imfilter, es la de poder procesar imágenes multidimensionales con filtros multidimensionales. Una posible aplicación es la de procesar una imagen de tres dimensiones con un filtro de dos, esto puede ser útil cuando se procesan imágenes a color en su representación RGB. Cada plano de la imagen, es procesada por el mismo filtro 2D
FIR Filter design Predefined filters donde type puede ser gaussian filtro pasa bajas Gausiano sobel filtro Sobel horizontal prewitt filtro Prewitt horizontal laplacian filtro Laplaciano de 2-D log filtro Laplacian Gausiano average filtro de promediado unsharp filtro para mejorar contraste de detalles
FIR Filter design Predefined filters B G R RGB R G B Figura 5. 7 a) Imagen RGB original, b),c),d)planos rojo, verde, azul ,e)f)g) planos rojo, verde, azul procesados, h) imagen RGB procesada.
FIR Filter designFrequency transformation La primera función que veremos es ftrans2. Esta función implementa el método de transformación de frecuencia el cual transforma un filtro FIR de 1-D a otro de 2-D. Una característica del filtro generado es que presenta una simetría casi circular. Para diseñar el filtro primero hay que diseñar el filtro en 1-D el cual se puede hacer con la función remez, cuya sintaxis es
FIR Filter designFrequency transformation Diseñe un filtro pasa banda de dos dimensiones de orden 12 que cumpla con la siguiente respuesta a la frecuencia. El diseño sería f=[0 0.2 0.4 0.6 0.8 1]; a=[0 0 1 1 0 0]; b=remez(12,f,a); h=ftrans2(b); [H,w]=freqz(b,1,64,'whole');
FIR Filter designFrequency transformation Figura 5. 8 a) Respuesta del filtro 1-D, b) Respuesta del filtro diseñado en 2-D.
FIR Filter designFrequency sampling Muestreo en la frecuencia, se implementa mediante la función fsamp2. Esta función diseña un filtro generando una función que pasa por los puntos de la respuesta a la frecuencia especificados en el diseño. Como vemos esta función no requiere del diseño previo de un filtro de 1-D
FIR Filter designFrequency sampling Uso de fsamp2 para diseñar un filtro pasa bajas de orden 15, con respuesta a la frecuencia mostrada en la Figura 5.9a. Hd =zeros(15,15);Hd(5:9,5:9)=1; h2 =fsamp2(Hd) Una de las desventajas de este método es el rizado que se observa el la Figura 5.9b. Esto se debe a la discontinuidad presente en el filtro ideal. Si este rizo ocasiona problemas en la aplicación se recomienda usar el método de transformación de frecuencia o el de ventana.
FIR Filter designWindow Método de ventana el cual se implementa en Matlab mediante las funciones fwind1 y fwind2. El método de ventana corresponde a obtener un filtro La función fwind1 de Matlab diseña el filtro deseado en 2-D utilizando una ventana de 2-D. La ventana 2-D se obtiene a partir de una ventana de 1-D o de una de 2-D. En cambio fwind2 realiza el diseño con una ventana de 2-D. La sintaxis básica de fwind1 es
FIR Filter designWindow El diseño de un filtro pasabanda con simetría circular aproximada es de la siguiente manera. La banda de paso del filtro es de 0.2 a 0.4. En esta ocasión se utiliza una ventana Blackman de 19 puntos para el diseño. El proceso es como sigue. Genere el filtro ideal [f1,f2] = freqspace(10,'meshgrid'); Hd = ones(19); r = sqrt(f1.^2 + f2.^2); Hd((r<0.2)|(r>0.4)) = 0; luego diseñe el filtro h = fwind1(Hd,blackman(19))
FIR Filter designWindow Figura 5. 10 a) Respuesta a la frecuencia deseada, b) respuesta a la frecuencia del filtro diseñado. Un punto importante a considerar es que en el uso de funciones de Matlab relacionadas a filtros las frecuencias se expresan normalizadas, donde 1 corresponde a la mitad de la frecuencia de muestreo.