Está en la página 1de 18

eman ta zabal zazu

Universidad del Pas Vasco Departamento de Arquitectura y Tecnologa de Computadores


upv ehu

Procesado digital de imagen y sonido Tema 6_ Diseo de filtros LTI


Fases del diseo Especificacin Clasificacin y reduccin a tipo paso bajo Diseo de filtros FIR Diseo de filtros IIR Estructuras

PDI 2007-08

6.1

Filtros LTI: fases del diseo


Pasos para disear filtros LTI selectivos en frecuencia: 1. Especificacin del comportamiento deseado Bandas de frecuencia deseadas Tolerancias Clculo aproximado de los coeficientes del filtro (el filtro ideal no es realizable) Sistema causal? Hay que elegir entre FIR e IIR Realizacin del filtro Puede utilizarse diferentes estructuras

2.

3.

PDI 2007-08

6.2

Filtros LTI: especificacin


Se suele realizar en el dominio de la frecuencia, especificando la H(F) deseada. En teora deberamos definirla tanto en magnitud como en fase, pero es posible? El requerimiento de que h(n) sea causal impone limitaciones a H(F) H(F) slo puede ser 0 en un nmero finito de puntos. |H(F)| no puede ser constante en un rango finito de frecuencias. |H(F)| no puede cambiar abruptamente de valor. HR(F) y HI(F) no son independientes, estn relacionadas por la transformada de Hilbert. Los parmetros utilizados en la especificacin suelen ser:
H (F )
Bandas de transicin

1 + 1 1 1 1
Banda de rechazo Banda de paso Banda de rechazo

2
Fq1 Fp1
PDI 2007-08

Fp 2 Fq 2

0.5

6.3

Filtros LTI: clasificacin segn la banda de paso


H (F )
1

Paso Bajo
1

H (F )

Paso Alto

F
0.5 0.5

H (F )
1

Paso Banda

H (F )
1

Rechazo Banda

F
0.5 0.5

En la prctica, los mtodos de diseo se desarrollan para filtros paso bajo, porque los otro tres tipos se pueden obtener a partir de este

PDI 2007-08

6.4

Filtros LTI: conversin de un filtro paso bajo en paso alto


H (F )

Paso Bajo
1

H ( F 0 .5 )

Paso Alto

FC

F
0 .5

0 .5 FC

F
0 .5

Para convertir un filtro paso bajo en otro paso alto basta aplicar un desplazamiento de 0.5 a la respuesta frecuencial del filtro paso bajo. Esto por la propiedad del desplazamiento frecuencial de la DTFT equivale en el dominio del tiempo a:

H ( F 0.5) IDTFT e j 2 0.5 n h( n) = ( 1) h( n)


n

Es decir, que basta cambiar de signo los elementos impares de la respuesta a impulso para obtener un filtro paso alto con frecuencia de corte 0.5-FC

PDI 2007-08

6.5

Filtros LTI: obtencin de filtros banda


Paso banda:

x(n) h1(n) h2(n)

y(n)

x(n) h1(n)h2(n)

y(n)

Rechazo banda:

h1(n) x(n) + y(n)

x(n) h1(n)+h2(n)

y(n)

h2(n)

PDI 2007-08

6.6

Diseo de filtros FIR


Son filtros de la forma:
k =0 Ventajas: Pueden disearse de forma que tengan fase lineal. Basta que cumplan:

y (n) = hk x(n k )

h(n) = h( M n) n = 0,1, K , M
Siempre son estables. Mtodos de diseo generalmente lineales. Simples de realizar. Mtodos: Enventanado: Se basa en calcular la IDTFT de la H(F) deseada y truncarla utilizando alguna ventana a elegir para suavizar su efecto. MATLAB: fir1, fir2 No se suele especificar la banda de transicin. ptimos: Se basan en minimizar el error entre la H(F) deseada y la obtenida con el filtro segn algn criterio: Mnimos cuadrados (minimiza error cuadrtico) MATLAB: firls Parks-McClellan o equiripple (rizado uniforme) MATLAB: remez Otros. MATLAB: fircls, cremez,firrcos
Ojo! En las funciones MATLAB se usa una frecuencia normalizada en el rango 0-0.5. Es decir, la frecuencia 1 corresponde a 0.5 ciclos/muestra. PDI 2007-08

6.7

Ejemplo de diseo de filtro FIR mediante enventanado

1.5 1 0.5 0 -0.5

1.5 1 0.5 0 -0.5

1.5 1 0.5 0 -0.5

0.1

0.2

0.3

0.4

0.5

0.1

0.2

0.3

0.4

0.5

0.1

0.2

0.3

0.4

0.5

0.5

0.5

0.5

x
0 0 0

-0.2 -50 -40 -30 -20 -10 0 10 20 30 40 50

-0.2

0 10 20 30 40 50 60 70 80 90 100

-0.2 0 10 20 30 40 50 60 70 80 90 100

0 -0.2 0 10 20 30 40 50 60 70 80 90 100

PDI 2007-08

6.8

Diseo de filtros FIR en MATLAB

FIR1 FIR filter design using the window method. B = FIR1(N,Wn) designs an N'th order lowpass FIR digital filter and returns the filter coefficients in length N+1 vector B. The cut-off frequency Wn must be between 0 < Wn < 1.0, with 1.0 corresponding to half the sample rate. The filter B is real and has linear phase, i.e., even symmetric coefficients obeying B(k) = B(N+2-k), k = 1,2,...,N+1. . . By default FIR1 uses a Hamming window. Other available windows, including Boxcar, Hanning, Bartlett, Blackman, Kaiser and Chebwin can be specified with an optional trailing argument. For example, B = FIR1(N,Wn,kaiser(N+1,4)) uses a Kaiser window with beta=4. B = FIR1(N,Wn,'high',chebwin(N+1,R)) uses a Chebyshev window. . . See also KAISERORD, FIRCLS1, FIR2, FIRLS, FIRCLS, CREMEZ, REMEZ, FREQZ, FILTER.

FIRLS Linear-phase FIR filter design using least-squares error minimization. B=FIRLS(N,F,A) returns a length N+1 linear phase (real, symmetric coefficients) FIR filter which has the best approximation to the desired frequency response described by F and A in the least squares sense. F is a vector of frequency band edges in pairs, in ascending order between 0 and 1. 1 corresponds to the Nyquist frequency or half the sampling frequency. A is a real vector the same size as F which specifies the desired amplitude of the frequency response of the resultant filter B. The desired response is the line connecting the points (F(k),A(k)) and (F(k+1),A(k+1)) for odd k; FIRLS treats the bands between F(k+1) and F(k+2) for odd k as "transition bands" or "don't care" regions. Thus the desired amplitude is piecewise linear with transition bands. The integrated squared error is minimized. . . See also REMEZ, FIR1, FIR2, FREQZ and FILTER.

PDI 2007-08

6.9

Diseo de filtros IIR


Son filtros de la forma:

a
k =0

y (n k ) = bk x(n k )
k =0

Propiedades: Consiguen cumplir unas determinadas especificaciones con un orden mucho menor que el necesario con filtros FIR. Pueden ser inestables. No pueden tener fase lineal.. Mtodos: Derivados de mtodos para filtros analgicos: se basan en utilizar los mtodos existentes para disear filtros analgicos y luego transformarlos en digitales: Ejemplos: Funciones MATLAB: Butterworth butter Chebyshev (1 y 2) cheby1, cheby2 Elptico ellip Bessel besself Directos: Se basan en minimizar el error entre la H(F) deseada y la obtenida con el filtro por algn criterio, por ejemplo, el de mnimos cuadrados: MATLAB: yulewalk

PDI 2007-08

6.10

Diseo de filtros IIR en MATLAB

CHEBY1 Chebyshev type I digital and analog filter design. [B,A] = CHEBY1(N,R,Wn) designs an Nth order lowpass digital Chebyshev filter with R decibels of ripple in the passband. CHEBY1 returns the filter coefficients in length N+1 vectors B (numerator) and A (denominator). The cut-off frequency Wn must be 0.0 < Wn < 1.0, with 1.0 corresponding to half the sample rate. Use R=0.5 as a starting point, if you are unsure about choosing R. . . See also CHEB1ORD, CHEBY2, BUTTER, ELLIP, FREQZ, FILTER.

YULEWALK Recursive filter design using a least-squares method. [B,A] = YULEWALK(N,F,M) finds the N-th order recursive filter coefficients B and A such that the filter: -1 B(z) -(n-1)

b(1) + b(2)z + .... + b(n)z

---- = ---------------------------1 A(z) 1 -(n-1)

+ a(1)z + .... + a(n)z

matches the magnitude frequency response given by vectors F and M. Vectors F and M specify the frequency and magnitude breakpoints for the filter such that PLOT(F,M) would show a plot of the desired frequency response. The frequencies in F must be between 0.0 and 1.0, with 1.0 corresponding to half the sample rate. They must be in increasing order and start with 0.0 and end with 1.0.

See also FIR1, BUTTER, CHEBY1, CHEBY2, ELLIP, FREQZ and FILTER.

PDI 2007-08

6.11

Filtros LTI bidimensionales: especificacin y diseo


Todo lo dicho para filtros unidmensionales, puede generalizarse al caso bidimensional La especificacin se hace en el plano de frecuencias:

F2
0.5

F2

H ( F1 , F2 )
0.5

0.5

H ( F1 , F2 )
0.5

F1

F1

Filtro paso-bajo

Filtro paso-banda

Existen mtodos de diseo que son una extensin de los de 1 dimensin Pueden ser IIR o FIR, pero en la prctica slo se usan los FIR (por simplicidad y porque en imagen es importante que el filtro sea de fase lineal). Por ello, en MATLAB slo hay mtodos para sistemas FIR: fsamp2, ftrans2, fwind1, fwind2.

PDI 2007-08

6.12

Estructuras para sistemas LTI


Existen muchas formas de realizar las operaciones en un sistema LTI discreto El objetivo al utilizar unas u otras suele ser minimizar:: Tiempo de clculo Memoria Nmero de bits de los coeficientes. Nmero de bits de las muestras ....

PDI 2007-08

6.13

Estructuras bsicas para sistemas FIR


La ms usada es la forma directa: M-1 posiciones de memoria M multiplicaciones M-1 sumas
h(M-1)
+ y(n)

x(n) h(0)

z-1 h(1)
+

z-1 h(2)
+

z-1 h(3)
+

L L
+

z-1 h(M-2)

Si el sistema es de fase lineal (h(n) simtrico o antisimtrico)


x(n) z-1 z-1

L
+

z-1

z-1 h(0)
+

z-1 h(1)

L L
+

z-1
M 3 h 2
+

M-1 posiciones de memoria M/2 multiplicaciones M-1 sumas


M 1 h 2
y(n)

PDI 2007-08

6.14

Estructuras en cascada para sistemas FIR


Se usan menos Cuando se hace, lo ms habitual es usar sistemas de orden 2:

H ( z ) = (b0 k + b1k z 1 + b2 k z 2 )
k =1

x(n)

b01

b02

+
z-1 b11 z-1 b12

+
z-1 b21 z-1 b22

PDI 2007-08

6.15

Estructuras bsicas para sistemas IIR


Hay muchas implementaciones posibles. Directas I y II En cascada En paralelo En celosa En filtros con muchos coeficientes se suele preferir la implementacin en cascada, porque es ms inmune a la cuantificacin de coeficientes.

PDI 2007-08

6.16

Sistemas IIR: formas directas I y II


x(n) z-1 b1 + z-1 b2 + + z-1 -a3 + + + -a3 -a2 + z-1 b3 + + z-1 -a2 -a1 + z-1 b2 + b0 + + z-1 -a1 y(n) x(n) b0 + z-1 b1 + + y(n)

M
bM-1 z-1 bM

M M

M
-aN-1

M
-aN-1 +

M
bN-1 z-1 -aN bN

M
+

+ Sistema todo ceros -aN Sistema todo polos z-1

Forma directa I

Forma directa II (N=M)

PDI 2007-08

6.17

Sistemas IIR: forma directa II transpuesta


Es la forma ms usada La funcin filter de MATLAB la usa
FILTER One-dimensional digital filter. Y = FILTER(B,A,X) filters the data in vector X with the filter described by vectors A and B to create the filtered data Y. The filter is a "Direct Form II Transposed" implementation of the standard difference equation: . . [Y,Zf] = FILTER(B,A,X,Zi) gives access to initial and final conditions, Zi and Zf, of the delays. Zi is a vector of length MAX(LENGTH(A),LENGTH(B))-1 or an array of such vectors, one for each column of X.

y(n)

b0
+

x(n)

z-1 -a1
+

b1 z-1

-a2
+

b2 z-1

-a3
+

b3

FILTIC Make initial conditions for 'filter' function. Z = filtic( B, A, Y, X ) converts past input X and output Y into initial conditions for the state variables Z needed in the TRANSPOSED DIRECT FORM II filter structure. The vectors of past inputs & outputs are stored with more recent values first, i.e. X = [ x[-1] x[-2] x[-3] ... x[-nb] ... ] Y = [ y[-1] y[-2] y[-3] ... y[-na] ... ]

M
-aN-1

M
+

M
bN-1

z-1 -aN
+

bN

PDI 2007-08

6.18