Está en la página 1de 58

DFT

ASS

Ampliación de Señales y Sistemas

Tema 6:
Introducción al diseño
de filtros digitales

La presentación contiene material del OCW del MIT (6.003 Signals and Systems S10, F11), así como material de A.
Guerrero, A. Wilsky y Antonio García Marqués.
Esquema
Tema 1: Señales y sistemas discretos en el dominio del tiempo.
Tema 2: Señales y sistemas discretos en el dominio de la frecuencia.
Tema 3: Muestreo.
Tema 4: Fundamentos de la Transformada Discreta de Fourier.
Tema 5: Transformada Z.
Tema 6: Introducción al diseño de filtros discretos.
- 6.1. Fundamentos del filtrado digital.
- 6.2. Diseño de filtros digitales:
- 6.2.1. Diseño de filtros FIR.
- 6.2.2. Diseño de filtros IIR.
- 6.3. Diseño de filtros digitales con Matlab.

Comentarios:
- Biblio: [BB3: McC&Sch&Yod] Cap. 5, Cap. 10; [BB2: Opp&Sch] Cap. 7;
[BB4: Lathi] Cap. 12;

2
Ubicándonos
Tema 6: Introducción al diseño de filtros discretos.
- 6.1. Fundamentos del filtrado digital.
- 6.2. Diseño de filtros digitales:
- 6.2.1. Diseño de filtros FIR.
- 6.2.2. Diseño de filtros IIR.
- 6.3. Diseño de filtros digitales con Matlab.

Comentarios:
- Biblio: [BB3: McC&Sch&Yod] Cap. 5, Cap. 10; [BB2: Opp&Sch] Cap. 7;
[BB4: Lathi] Cap. 12;

3
Fundamentos del filtrado digital

En procesado de señal, la función de un filtro es la de eliminar partes no


deseadas de la señal (como ruido), amplificar o extraer partes útiles, como las
componentes en una determinada banda de frecuencias.

Señal original FILTRO Señal filtrada

Aplicaciones:

Comunicaciones Sismología

Procesado de voz Tratamiento de imagen y vídeo

Radar/Teledetección Bio-Ingeniería

Minería de datos Reconocimiento de patrones

4
Fundamentos del filtrado digital

Filtros digitales vs filtros analógicos


Existen dos categorías de filtros, analógicos y digitales, que son bastante
diferentes tanto en su fabricación física como en sus principios de
funcionamiento.

Filtros analógicos:
•Utilizan componentes electrónicos analógicos (R, C, L, Amp).

Filtros digitales:
•Utilizan un sistema digital que realiza cálculos numéricos (micro,
DSP, FPGA, GPU…).

FILTRO
Los filtros digitales pueden
utilizarse también para
procesar señales anológicas
(muestreando previamente)

5
Fundamentos del filtrado digital

Principales ventajas de los filtros digitales


Un filtro digital es programable, por lo que puede ser modificado con facilidad.
• Los filtros digitales se diseñan, prueban e implementan de manera sencilla.

• Los filtros digitales son muy versátiles (filtros adaptativos).


• El comportamiento de los filtros digitales no cambia en el tiempo por derivas
o deterioro de sus componentes.

• Las necesidades hardware son relativamente simples y homogéneas.

• Los filtros digitales trabajan con señales de baja frecuencia de forma


precisa.

• Con el aumento de la velocidad de procesamiento, hoy en día los filtros


digitales pueden utilizarse también para señales de alta frecuencia.

6
Ubicándonos
Tema 6: Introducción al diseño de filtros discretos.
- 6.1. Fundamentos del filtrado digital.
- 6.2. Diseño de filtros digitales:
- 6.2.1. Diseño de filtros FIR.
- 6.2.2. Diseño de filtros IIR.
- 6.3. Diseño de filtros digitales con Matlab.

Comentarios:
- Biblio: [BB3: McC&Sch&Yod] Cap. 5, Cap. 10; [BB2: Opp&Sch] Cap. 7;
[BB4: Lathi] Cap. 12;

7
Diseño de filtros digitales

Los filtros digitales son SLTI  podemos utilizar todas las herramientas estudiadas en
esta asignatura para analizar el comportamiento de los filtros. Sin embargo, como
ingenieros, también estamos interesados en diseñar filtros.

Procedimiento genérico para el diseño de filtros digitales:

Paso 1. Determinación de las especificaciones del filtro a partir de los


requisitos de la aplicación para la que se diseña el filtro:
• Bandas de frecuencia deseadas.
• Tolerancias.

Paso 2. Cálculo de los coeficientes del filtro:


• ¿Sistema causal?
• Decidir qué tipo de filtro se ha de utilizar: FIR o IIR.

Paso 3. Implementación del filtro:


• Pueden utilizarse diferentes estructuras.

8
Diseño de filtros digitales
Paso 1: Especificaciones
Se suele realizar en el dominio de la frecuencia, especificando la respuesta en
frecuencia deseada. En teoría deberíamos definirla tanto en magnitud como en
fase, pero ¿es posible?
• El requerimiento de que h[n] sea causal impone limitaciones a H(e jΩ). P.e.:
- H(ejΩ) sólo puede ser 0 en un número finito de puntos.
- |H(ejΩ)| no puede ser constante en un rango finito de frecuencias.
- |H(ejΩ)| no puede cambiar abruptamente de valor.

Los parámetros utilizados en la especificación suelen ser:


|H(ejΩ)|

Ω 9
Ωq1 Ωp1 Ωp2 Ωq2
Diseño de filtros digitales
Paso 1. Respuesta en frecuencia deseada
|H(ejΩ)| |H(ejΩ)|

Ω Ω

|H(ejΩ)| |H(ejΩ)|

Ω Ω

Los principales tipos de filtros son: paso-bajo, paso-alto, paso-banda y


banda-rechazada.

En la práctica, se diseñan filtros paso bajo, porque los otro tres tipos se
pueden obtener a partir de él.
10
Diseño de filtros digitales
Paso 2: Elegir un tipo de filtro

Hay dos tipos básicos de filtros digitales:


IIR: Infinite Impulse Response (h[n] tiene longitud infinita).
FIR: Infinite Impulse Response (h[n] tiene longitud finita).

Obtener h[n] es
trivial  la
Es difícil obtener
convolución es una
h[n] de forma
opción para calcular
analítica
y[n]

Otro parámetro muy importante en un filtro es el orden del filtro:


IIR: número máximo de retardos.
FIR: número máximo de retardos (i.e., longitud de la respuesta al
impulso).
11
Diseño de filtros digitales

Paso 3: Estructuras

Existen muchas formas de realizar las operaciones en un sistema LTI discreto.

El objetivo al utilizar unas u otras suele ser minimizar:


• Tiempo de cálculo
• Memoria
• Número de bits de los coeficientes
• Número de bits de las muestras
• ....

12
Diseño de filtros digitales
Estructuras de FIR

Si el sistema es de fase lineal:

13
Diseño de filtros digitales

Estructuras de IIR

Forma directa II
transpuesta

14
Diseño de filtros digitales

FIR vs IIR
Las herramientas para diseñar filtros FIR y filtros IIR son muy diferentes,
como también su comportamiento.

Ventajas de los filtros FIR:


1. Conceptualmente sencillos y fácilmente implementables.
2. Pueden implementarse vía convolución.
3. Siempre son estables.
4. Poco sensibles a la cuantización de la amplitud.
5. Pueden tener fase lineal (mismo retardo temporal para todas las frec.).

Ventajas de los filtros IIR:


1. Más adecuados para la aproximación/adaptación de diseños analógicos.
2. Para una respuesta en frecuencia dada, los filtros IIR necesitan
típicamente muchos menos cálculos teóricos que su equivalente FIR,
especialmente para bandas de transición estrechas (filtros abruptos).

15
Ubicándonos
Tema 6: Introducción al diseño de filtros discretos.
- 6.1. Fundamentos del filtrado digital.
- 6.2. Diseño de filtros digitales:
- 6.2.1. Diseño de filtros FIR.
- 6.2.2. Diseño de filtros IIR.
- 6.3. Diseño de filtros digitales con Matlab.

Comentarios:
- Biblio: [BB3: McC&Sch&Yod] Cap. 5, Cap. 10; [BB2: Opp&Sch] Cap. 7;
[BB4: Lathi] Cap. 12;

16
Diseño de filtros digitales
DISEÑO DE FILTROS FIR
M −1
Son de la forma: y [ n ] = ∑ h [ k ] x [ n−k ]
k= 0

Ventajas: Se pueden diseñar para que su respuesta en fase sea lineal. Si


H ( e j Ω )=|H ( e j Ω )|e jΦ Ω ,
( )
Φ ( Ω )=±A Ω +B
En ese caso, su retardo de grupo es cte → ¡Una respuesta en fase lineal
genera el mismo retardo temporal para todas las frecuencias! (Recuérdese
la propiedad de desplazamiento en la TF.) Esta es una característica
deseable cuando la forma temporal de la señal es importante (p.e. para su
visualización/sincronismo en un osciloscopio).

¿Qué debe cumplir h[n] para que tenga una fase lineal?:
Simetría en los coeficientes del filtro: h [ n ] =±h [ M −n ] ,n= 0,⋯,M −1

Dado que el número de coeficientes del filtro puede ser par o impar, y que
los coeficientes pueden ser simétricos o antisimétricos se originan cuatro
tipos de filtro FIR de fase lineal. Veremos ejemplos en el último punto del
tema (Diseño de filtros digitales en Matlab). 17
Diseño de filtros digitales
DISEÑO DE FILTROS FIR (cont.)
Métodos para el diseño de filtros FIR:

- Enventanado: se basa en calcular la IDTFT de la respuesta en frecuencia y


truncarla utilizando alguna ventana para suavizar su efecto. En MATLAB:
fir1, fir2.

- Basado en el muestreo de la respuesta en frecuencia: se especifica la


respuesta en frecuencia deseada del filtro en M puntos equiespaciados y se
calcula h[n] como la DFT inversa de esas muestras. Como existen cuatro
posibles respuestas en frecuencia para los filtros FIR de fase lineal aparecerán
cuatro expresiones distintas para el cálculo de h[n].

- Por optimización: se basan en minimizar el error entre la respuesta en


frecuencia deseada y la obtenida con el filtro según algún criterio:
• Mínimos cuadrados (minimiza error cuadrático). MATLAB: firls
• Parks-McClellan o “equiripple” (rizado uniforme). MATLAB: remez
• Otros.

Pese a que en situaciones específicas, para alguno de los casos anteriores pueda
encontrarse una expresión cerrada para h[n], en general el diseño del filtro
(dada una máscara de frecuencia encontrar la respuesta al impulso óptima) 18
no puede resolverse de forma analítica.
Diseño de filtros digitales
DISEÑO DE FILTROS FIR (cont.)
Enventanado
Consideremos el caso en el que queremos diseñar un filtro paso-bajo ideal.

¿Qué ocurre si calculamos h[n] como TF-1{H(ejΩ)}?  h[n] = sin(Ωcn)/(πn)


 h[n] es infinito y no causal

Pero podríamos desplazar h[n] hacia la derecha (simplemente introduciría una


fase lineal) y truncar la señal para quedarnos con un número finito de valores
(introduciría una pequeña distorsión en el módulo y la fase)

19
Diseño de filtros digitales
DISEÑO DE FILTROS FIR (cont.)
Enventanado (cont.)

Pasos a seguir:
1. Decidir la respuesta en frecuencia deseada: Hd(ejΩ)

2. Calcular hd[n] haciendo la TF inversa de Hd(ejΩ).

3. Truncar hd[n] para hacer que tenga longitud finita multiplicando por una
ventana w[n].
Diseño de filtros digitales
DISEÑO DE FILTROS FIR (cont.)
Enventanado (cont.)
Versión desplazada
Truncando la versión desplazada tenemos
|Hd(ejΩ)|

Alternativamente, podemos definir


-Ωc Ωc

Hd(ejΩ)

donde w[n] recibe el nombre de ventana


(más específicamente, ventana rectangular)
y la h[n] real puede obtenerse como la
multiplicación de la h[n] deseada y la
ventana w[n]:

21
Diseño de filtros digitales
DISEÑO DE FILTROS FIR (cont.)
Enventanado (cont.)
¿Cómo de bueno es este diseño?  Analicémoslo  Si multiplicamos
en tiempo estamos convolucionando en el dominio de la frecuencia
sin (Ω ( M −1)/ 2)
| |
sin (Ω/ 2)

Mejor
cuanto más
parecido a
H ( e jΩ ) =H d ( e j Ω )∗W ( e jΩ )
Ω
una delta
∆Ωm

La forma de la sinc (y especialmente los lóbulos secundarios) provoca


que aparezcan ligeras ondulaciones (rizado) en la amplitud del filtro, así
como cambios bruscos de fase (debido al cambio de signo en la sinc).
|H(ejΩ)| |H(ejΩ)|

-Ωc Ωc
22
Diseño de filtros digitales

DISEÑO DE FILTROS FIR (cont.)


Tipos de ventanas

Barlett (triangular)

Hanning

Hamming

23
Diseño de filtros digitales
DISEÑO DE FILTROS FIR (cont.)
Tipos de ventanas (cont.)
Respuesta en frecuencia…

Ω Ω

Ω
Ω

(a) Rectangular (b) Triangular (c) Hanning (d) Hamming


24
Diseño de filtros digitales

DISEÑO DE FILTROS FIR (cont.)


Enventanado: comparación

Comparación de las ventanas:

La ventana rectangular es la más estrecha (más cercana a una delta),


pero también la que tienene unos lóbulos secundarios más altos

Nótese que todas las ventanas son simétricas  Fase lineal


25
Ubicándonos
Tema 6: Introducción al diseño de filtros discretos.
- 6.1. Fundamentos del filtrado digital.
- 6.2. Diseño de filtros digitales:
- 6.2.1. Diseño de filtros FIR.
- 6.2.2. Diseño de filtros IIR.
- 6.3. Diseño de filtros digitales con Matlab.

Comentarios:
- Biblio: [BB3: McC&Sch&Yod] Cap. 5, Cap. 10; [BB2: Opp&Sch] Cap. 7;
[BB4: Lathi] Cap. 12;

26
Diseño de filtros digitales

DISEÑO DE FILTROS IIR


N −1 M −1
Son filtros de la forma: ∑ ak y [ n−k ]= ∑ b k x [ n−k ]
k= 0 k=0

- Consiguen cumplir unas


determinadas especificaciones con
un orden mucho menor que el
necesario con filtros FIR.

- Tienen polos y ceros → pueden


ser inestables.

- NO pueden tener fase lineal.

El diseño de filtros IIR se reduce a: elegir los {ai} y {bi} que mejor aproximan
la respuesta |Hd(ejΩ)| deseada.
27
Diseño de filtros digitales

DISEÑO DE FILTROS IIR (cont.)

Métodos para el diseño de filtros IIR.

- Indirectos o derivados de métodos para filtros analógicos: se basan en


diseñar filtros analógicos que verifiquen las especificaciones y luego
transformarlos en digitales preservando estas características.
– Butterworth. MATLAB: butter
– Chebyshev 1 y 2. MATLAB: cheby1, cheby2
– Elíptico. MATLAB: ellip
– Bessel. MATLAB: besself
- Directos: se obtienen a partir de la salida deseada para una entrada dada. Se
basan en determinar los coeficientes del filtro minimizando el error entre la
respuesta en frecuencia deseada y la obtenida por algún criterio, p.e., el de
mínimos cuadrados. Se utilizan cuando conocemos la respuesta al impulso de
un sistema y queremos determinar la función de transferencia que mejor se
ajusta. Ejemplo en MATLAB: yulewalk. No los vamos a ver.
28
Diseño de filtros digitales

DISEÑO DE FILTROS IIR (cont.)


Método Indirecto: transformación bilineal y filtros analógicos
El diseño de filtros analógicos se basa en la
transformada de Laplace:

Desde principios del s. XX, ha habido un gran esfuerzo investigador en el


diseño de filtros analógicos de la forma

Procedimiento para el diseño:


1. Diseño del filtro analógico
2. Transformación del filtro analógico en el filtro digital:
– Transformación bilineal: asegura la estabilidad del filtro digital y
mantiene el orden 1+s
T
2 z −1 2
s= ⇒ z=
T z+ 1 T
1− s
2 2
tg Ω
ω=
T ( )
2 29
Diseño de filtros digitales

DISEÑO DE FILTROS IIR (cont.)

Diseñando un filtro analógico

Puesto que un filtro IIR causal no puede tener fase lineal (no existe
ningún punto posible de simetría)  La investigación en el diseño de filtros
analógicos se ha concentrado en obtener filtros que acoten el rizado de la
respuesta en frecuencia del filtro.

Tipos tradicionales de filtros IIR analógicos:


Butterworth
Chebyshev
Elliptic

Otros tipos más específicos son: filtro de Bessel, filtro Gaussiano, filtro
óptimo de Legendre, filtro Linkwitz-Riley…
30
Diseño de filtros digitales
DISEÑO DE FILTROS IIR (cont.)

Filtros analógicos tradicionales


Los filtros de Butterworth se diseñan de manera que la respuesta en
frecuencia en la banda de paso sea tan plana como matemáticamente sea
posible, y decaiga hasta cero en la banda de rechazo. Estos filtros también
reciben el nombre de ‘filtros de respuesta máximamente plana’.
El filtro de tipo Butterworth fue propuesto por el ingeniero británico
Stephen Butterworth.

Los filtros de Chebyshev tienen la propiedad de minimizar el error entre la


respuesta ideal del filtro y la respuesta real sobre el rango del filtro, pero
acotando el rizado en la banda de paso o en la de rechazo.

El nombre de este filtro se debe al matemático Pafnuty Chebyshev puesto


que el diseño del mismo se basa en los polinomios de Chebyshev.
Hay dos variantes: Tipo I (rizado en la banda de paso) y Tipo II (rizado en
la banda de rechazo). 31
Diseño de filtros digitales

DISEÑO DE FILTROS IIR (cont.)

Filtros analógicos tradicionales (cont.)

Los filtros elípticos (también


conocidos como filtros de Cauer)
acotan el rizado tanto en la banda
de paso como en la de rechazo. El
nivel de rizado en cada banda se
puede ajustar de forma
independiente y, entre los filtros de
igual orden, tiene la transición de
ganancia más rápida entre la banda
de paso y la banda de rechazo.

(Si se desea, pueden converger a


los filtros de Chebyschev).
32
Ubicándonos
Tema 6: Introducción al diseño de filtros discretos.
- 6.1. Fundamentos del filtrado digital.
- 6.2. Diseño de filtros digitales:
- 6.2.1. Diseño de filtros FIR.
- 6.2.2. Diseño de filtros IIR.
- 6.3. Diseño de filtros digitales con Matlab.

Comentarios:
- Biblio: [BB3: McC&Sch&Yod] Cap. 5, Cap. 10; [BB2: Opp&Sch] Cap. 7;
[BB4: Lathi] Cap. 12;

33
Diseño de filtros digitales con Matlab
Análisis de sistemas LTI descritos mediante su respuesta al
impulso.
Como ya se vió en los primeros temas de la asignatura, a partir de la h[n] es
posible determinar si el sistema es FIR o IIR, si es causal o si es estable.
Conocer más propiedades de un sistema a partir de su h[n] es complicado. Es
más sencillo hacerlo a partir de su función de trasferencia H(e jΩ)=TF{h[n]}
pues las exponenciales complejas son autofunciones de un sistema lineal, es
decir, la salida de un sistema LTI a una exponencial compleja es la misma
exponencial compleja con módulo y fase diferente.

así, a la salida del sistema LTI nunca obtendremos señales de frecuencias


distintas de las de entrada.

34
Diseño de filtros digitales con Matlab
Análisis de sistemas LTI descritos mediante su respuesta al
impulso.
Los parámetros de la función de transferencia H(ejΩ) con los que se trabaja son:

{ }
Módulo |H (e j Ω )|=√ H 2R (e j Ω )+ H 2I (e j Ω )
H (e j Ω )=H R (e j Ω )+ jH I (e j Ω )= jΩ H I (e j Ω )
Fase ϕ ⟨H (e )⟩=arctan [ ]
H R (e j Ω )
Transformaciones típicas del módulo son:
→ la Ganancia en dB = 20 log10 |H(ejΩ)|
→ la Atenuación en dB = - 20 log10 |H(ejΩ)|
→ la Magnitud : |H(ejΩ)|2

La magnitud indica el carácter selectivo del filtro en frecuencia, esto es, la amplificación o atenuación
que el filtro da a cada exponencial compleja (frecuencia). Según la forma de la magnitud, el filtro puede
ser pasobajo, pasoalto, pasobanda o banda eliminada.

La fase, esta íntimamente ligada al retraso que introduce el sistema en cada frecuencia. Supuesto que
cualquier entrada x[n] puede descomponerse como una combinación lineal de exponenciales complejas,
la fase indica cuanto retrasa el sistema cada exponencial compleja en radianes.
Cuando se calcula la fase de forma numérica con un ordenador (en vez de calcularla de forma analítica
como en el anterior párrafo), éste devuelve el valor principal de la fase en el rango [-π ,+π ]
obteniéndose una función de fase discontinua (denominada ARG[H(ejΩ)]) equivalente a la fase continua
(denominada arg[H(ejΩ)]) obtenida en el cálculo analítico. 35
Diseño de filtros digitales con Matlab
Análisis de sistemas LTI descritos mediante su respuesta al
impulso.

Por tanto, en el cálculo numérico de fase, se deben realizar dos pasos: primero calcular la fase
discontinua (funcion angle de matlab) y a partir de ella obtener la fase continua (función unwrap
de matlab).

Ejercicio: Represente la magnitud, la fase continua y la fase discontinua de la TF de h[n]= δ[n –


5]. Comente los resultados obtenidos.

36
Diseño de filtros digitales con Matlab
Análisis de sistemas LTI descritos mediante su respuesta al
impulso.
Un sistema con fase lineal tan sólo retrasa la señal manteniendo la relación de fase entre las
exponenciales de las diferentes frecuencias. Por tanto un sistema de fase lineal no tiene distorsión de
fase. Puede ser útil una medida de la linealidad de la fase. Esta media se denomina Retardo de Grupo y
se define como la derivada de la fase continua:
−d
r (Ω)= arg [ H (e j Ω ) ]

Si la fase es lineal, r(Ω) es constante y de valor igual al retardo (la n0=5 del ejemplo anterior) que
produce el sistema.

Si el sistema no es de fase lineal e introduce distorsión de fase se puede ver en qué frecuencias hay más
distorsión de fase y en qué frecuencias la distorsión de fase es más reducida.

37
Diseño de filtros digitales con Matlab
Análisis de sistemas LTI descritos mediante su respuesta al
impulso.
H(ejΩ)
Ejemplo:

Ω/
H(ejΩ) H(ejΩ)

Ω/ Ω/

En la gráfica tenemos la respuesta al impulso, magnitud, fase y retardo de grupo de un sistema


paso bajo. Como puede observarse, a pesar de que la fase puede parecer lineal a tramos. El retardo
de grupo revela una fuerte distorsión de fase en la banda de transición. Al final de la banda
atenuada el sistema es de fase casi lineal, aunque esto no reporta ninguna ventaja pues dichas 38
exponenciales son atenuadas.
Diseño de filtros digitales con Matlab

Sistemas racionales particulares: Paso Todo, Fase Mínima y de Fase Lineal.


Se trata de sistemas descritos por una H(z) que presentan unas características muy útiles como hemos visto
en el Tema 5.

Sistema Paso Todo

Son sistemas que no cambian la amplitud de ninguna exponencial compleja, es decir, dejan pasar todas las
frecuencias por igual. Sólo modifican la fase. Su función de transferencia es de la forma:
−1 ∗
z −a
H ap ( z)= −1
1−az

que tiene un polo en z=a y un cero en z=1/a*


Gráficamente, los polos y ceros de un sistema paso todo se representan:

r=0.8; 
angulo=pi/3; 
polo=r*exp(j*angulo); 
zplane([­conj(polo) 1],[1 ­polo]) 
title('ceros y polos de Hap(z)')

La expresión del mismo sistema en función de su cero c=1/a * es:

z −1−a∗ c∗ 1−c z −1 Al dejar pasar todas las frecuencias por igual, se debe cumplir que:
H ap ( z)= = · −1 ∗
c z −c |H(z)|z=ejΩ=|H(ejΩ)| = 1
−1
1−az 39
Diseño de filtros digitales con Matlab

Sistemas racionales particulares: Paso Todo, Fase Mínima y de Fase Lineal.


Los sistemas paso todo si afectan a la fase. Se puede afirmar que la fase continua de un sistema paso todo
tiene pendiente negativa y que su retardo de grupo es siempre positivo.

Un ejemplo de lo anterior lo tenemos en:

a=0.9*exp(2*j*pi/3); 
% calculo de la magnitud y fase 
[Hap,w]=freqz([­conj(a) 1],[1 ­a],256,'whole'); 
% calculo del retardo de grupo 
Gdap=grpdelay([­conj(a) 1],[1 ­a],256,'whole' ); 

40
Diseño de filtros digitales con Matlab

Sistemas racionales particulares: Paso Todo, Fase Mínima y de Fase Lineal.


Sistema de Fase Mínima

Un sistema de fase mínima Hmin(z) es el que tiene sus polos y ceros dentro del círculo unidad, lo cual
garantiza mínimo retardo o fase mínima. Éstos sistemas cumplen la propiedad de que el sistema H min(z) y
su inverso 1/Hmin(z) son causales y estables.

Todo sistema H(z) tienen un equivalente Hmin(z): misma magnitud, mínimo retardo. Su cálculo es muy
usado para la ecualización de canales de comunicación, donde el canal se modela con un filtro de fase
mínima para que su inverso en la ecualización del receptor sea causal y estable.

41
Diseño de filtros digitales con Matlab
Sistemas racionales particulares: Paso Todo, Fase Mínima y de Fase Lineal.
Sistema de Fase Lineal

Se trata de sistemas que no introducen distorsión de fase. Como vimos en el apartado anterior, para que un
sistema no introduzca distorsión de fase debe ser de fase cero o de fase lineal. Un sistema de fase cero,
tiene la respuesta al impulso h[n] par, esto es h[n]=h[- n], y función de transferencia
H(ejΩ) = |H(ejΩ)| ej0

Un sistema con respuesta al impulso igual a la h[n] anterior retardada n d muestras, esto es h[n - nd], será
simétrica con eje de simetría en nd y función de transferencia:
jΩ − j Ω nd jΩ − j Ωnd
H (e )e =|H (e )|e
de donde su fase y retardo de grupo valdrán:
- fase: arg[H(ejΩ)] = - Ω nd
- retardo de grupo: τ(Ω)= nd

donde se aprecia que es de fase lineal (sin distorsión de fase) y que el retardo de grupo coincide con el eje
de simetría de la respuesta al impulso. Se puede realizar el mismo razonamiento en sentido contrario
llegando a la conclusión de que todo sistema con h[n] simétrica es de fase lineal.

Para que mi sistema sea de fase lineal y causal, se deben cumplir dos condiciones:
1. h[n] debe ser simétrica.
2. h[n]=0 n<0.

de donde un sistema de fase lineal y causal será FIR. 42


Diseño de filtros digitales con Matlab
Sistemas racionales particulares: Paso Todo, Fase Mínima y de Fase Lineal.
Sistema de Fase Lineal

Un sistema FIR causal de fase lineal con respuesta al impulso de M+1 muestras, esto es: h[n]=0 n<0, y
n>M, con M∈‫( א‬número entero positivo) tendrá una h[n] simétrica con eje de simetría en M/2 →
h[n]=h[M-n] y tendrá:

- fase: arg[H(ejΩ)] = - Ω (M/2)

- retardo de grupo: τ(Ω)= M/2

Dependiendo del tipo de simetría de h[n] (par o impar) y del valor de M (par o impar), podemos definir
cuatro tipos de sistemas FIR de fase lineal.

43
Diseño de filtros digitales con Matlab
Sistemas racionales particulares: Paso Todo, Fase Mínima y de Fase Lineal.
Tipos de sistemas FIR de fase lineal:

Tipo I. M par y simetría par

ceros=[0.8*exp(­j*pi*2/3),0.8*exp(j*pi*/3),1/0.8*exp(­j*2*pi/3), 
1/0.8*exp(j*pi*2/3)]; 
h=poly(ceros); 
[H,w]=freqz(h,1,255); 
Gd=grpdelay(h,1,255);

Tipo II. M impar y simetría par

Tiene un cero en z= -1. Consecuencia práctica de lo anterior es la imposibilidad de realizar filtros paso alto
de fase lineal tipo II.

Ejemplo:

ceros=[0.8*exp(­j*pi*4/3),0.8*exp(j*pi*4/3),1/0.8*exp(­j*pi*4/3), 
1/0.8*exp(j*pi*4/3) ­1]; 
h=poly(ceros); 
[H,w]=freqz(h,1,255); 
Gd=grpdelay(h,1,255); 
  44
Diseño de filtros digitales con Matlab
Sistemas racionales particulares: Paso Todo, Fase Mínima y de Fase Lineal.
Tipos de sistemas FIR de fase lineal:

Tipo III. M par y Simetría impar

En este caso tiene ceros en z=1 y z=-1.

ceros=[0.8*exp(­j*4*pi/3),0.8*exp(j*4*pi/3),1/0.8*exp(­j*4*pi/3), 
1/0.8*exp(j*4*pi/3) 1 ­1]; 
h=poly(ceros); 
[H,w]=freqz(h,1,255); 
Gd=grpdelay(h,1,255);

Tipo IV. M impar y Simetría impar

Tiene un cero en z=1, por lo tanto no es recomendable realizar filtros paso bajo de fase lineal Tipo IV.

ceros=[0.9*exp(­j*2*pi/3) 
1/0.9*exp(j*2*pi/3) 1]; 
h=poly(ceros); 
[H,w]=freqz(h,1,255); 
Gd=grpdelay(h,1,255);
45
Diseño de filtros digitales con Matlab

Diseño de filtros discretos a partir de sus especificaciones.


Se propone habilitar al alumno para el diseño de filtros discretos IIR, FIR a partir de sus especificaciones,
las cuales son:
1. Tipo de respuesta al impulso (FIR o IIR). Se supone que debe ser causal y estable.
2. Si el filtro es FIR, si debe ser de fase lineal.
3. Las banda de frecuencia a dejar pasar (banda de paso), rechazar (banda eliminada) y sus tolerancias.

Por tolerancias entendemos tanto el ancho de las bandas de transición de banda de paso a banda eliminada
como el rizado de las bandas de paso y eliminada. Un ejemplo de dichas especificaciones puede
observarse en el siguiente gráfico:
H(ejΩ)

banda de paso Ωp

Ωs banda eliminada

Ω/ 46
Diseño de filtros digitales con Matlab
Diseño de filtros discretos IIR a partir de sus especificaciones.
El procedimiento de diseño de filtros discretos IIR utilizará el conocimiento de diseño de filtros IIR
analógicos para obtener los filtros discretos como transformaciones de los filtros continuos.

Se describen los filtros IIR discretos más utilizadas.

Filtros de Butterworth

Se define por la propiedad de que la magnitud es monótonamente decreciente y tan sólo depende del orden
N del filtro y la frecuencia de corte.
2 1
Un ejemplo lo tenemos a continuación: |H a ( j ω)| =
1+(ω/ω c )2 N
N=5; 
wc=0.4;  N: orden del filtro
[b,a]=butter(N,wc);  ωC: frec. corte (en la que la respuesta cae a 3dB por
[H,w]=freqz(b,a);  debajo de la banda pasante)
Mag=H.*conj(H);  ω: frec. analógica (la asociada a señales continuas)
fase=unwrap(angle(H)); 
c=roots(b); %ceros 
d=roots(a); %polos 
h=filter(b,a,[1; zeros(149,1)]);

Observar que según aumenta el parámetro N, aumenta la pendiente de la magnitud de la banda atenuada. 47
Diseño de filtros digitales con Matlab
Diseño de filtros discretos IIR a partir de sus especificaciones.
Filtros de Chebyshev

En este tipo de filtros la magnitud tiene rizado en la banda de paso y es decreciente en la banda atenuada
(tipo I), o decreciente en la banda de paso y rizado en la banda atenuada (tipo II) → depende del orden del
filtro, de la frecuencia de corte y del rizado de la banda de paso (tipo I) o la banda atenuada (tipo II).

Un ejemplo es el siguiente:

N=5; 
wc=0.4; 
dlta1=5; 
[b,a]=cheby1(N,dlta1,wc);

Y un ejemplo de tipo II:

N=5; 
wc=0.4; 
dlta2=40; 
[b,a]=cheby2(N,dlta2,wc);

Al aumentar los grados de libertad en relación a los filtros de Butterworth, con un filtro de menor orden se
consigue una mejor respuesta.
48
Diseño de filtros digitales con Matlab
Diseño de filtros discretos IIR a partir de sus especificaciones.
Filtros Elípticos

Son parecidos a los de Chebyshev, pero tienen rizado en la banda de paso y la banda atenuada. Un ejemplo
de un filtro elíptico continuo es:

N=5; 
wc=0.4; 
dlta1=5; 
dlta2=40; 
[b,a]=ellip(N,dlta1,dlta2,wc); 

Para unas especificaciones dadas, Chebyshev necesita un orden mayor que el elíptico, pero menor que el
Butterworth.

49
Diseño de filtros digitales con Matlab
Diseño de filtros FIR: método del enventanado.
El método usual de diseño del filtros FIR es diferente del método utilizado para filtros IIR.

En este caso, los pasos a realizar son:


1. Se especifica en discreto el filtro ideal a aproximar con sus márgenes Ωs , Ωp, δ1, δ2 . Por ejemplo:

{ }
M
jΩ e− j Ω |Ω|<Ω c ; faseLineal
H d (e )= 2
0 resto

2. Se calcula la respuesta del filtro ideal. En el caso del ejemplo tenemos:

3. Se aproxima la respuesta al impulso ideal, siendo el método más habitual de aproximar el enventanado,
esto es:

para que h[n] mantenga la simetría propia de los filtros de fase lineal, hd [n] y w[n] deben tener el mismo
eje de simetría. 50
Diseño de filtros digitales con Matlab
Diseño de filtros FIR: método del enventanado.
El problema a resolver es relacionar las especificaciones del filtro Ωs , Ωp, δ1, δ2,con la ventana (altura de
los lóbulos laterales Δ y la anchura del lóbulo principal Δω ) y la frecuencia de corte Ωc del filtro ideal.
Para ello se parte de los siguientes hechos:

1. ΔΩ < Ωs - Ωp

2. Ωc = (Ωp + Ωs)/2

3. ∆ =20 log10min(δ1, δ2)

La ventana la podemos calcular mediante tabla. A partir de δ1 y δ2 obtenemos ∆, la cual determina en la


tabla la ventana que se debe usar, y con la ∆Ω dada calculamos la longitud M+1 de la ventana. Un ejemplo
de tabla se presenta a continuación:

∆Ω

51
Diseño de filtros digitales con Matlab
Diseño de filtros FIR: método del enventanado.
Notar que al disminuir Δ aumenta ΔΩ. Téngase también en cuenta que la amplitud de los lóbulos laterales
no dependen de M. En cambio, aumentando M se consigue estrechar el lóbulo principal.

Dadas las especificaciones: paso bajo con Ωs =0.3 π , Ωp =0.2π, δ1 = δ2 =0.05, se obtiene ΔΩ < 0.1π,
Ωc =0.25π , y ∆ =20log100.05= -26.0206

Por tanto, la ventana a utilizar debe ser la que tenga un Δ menor a –26.0206, esto es, una ventana de
Hanning. Y el valor de M debe cumplir 8π /M < Ωs - Ωp = 0.1π de donde M > 80. Una vez obtenida la M
hay que tener en cuenta qué tipo de filtro de fase lineal es para evitar, por ejemplo, filtros paso alto de tipo
II.

En el caso anterior, puede observarse cómo el filtro siempre sobredimensiona la Δ. Para evitar este
sobredimensionamiento se puede utilizar una ventana ajustable como la de Kaiser, con la cual se pueden
controlar los valores de Δ y ΔΩ. No vamos a entrar en las expresiones matemáticas concretas.

52
Diseño de filtros digitales con Matlab
Diseño de filtros FIR: método del enventanado.
Ejemplo de diseño de un filtro FIR de fase lineal paso alto con una ventana de Kaiser:

Ωs = 0.35 π, Ωp = 0.5π, δ = δ1 = δ2 = 0.05

El diseño puede realizarse con la funcion kaiserord de Matlab. La ventana de Kaiser puede obtenerse
con la función kaiser de Matlab.

Una vez obtenida la ventana y la respuesta al impulso ideal, se multiplican ambas haciendo coincidir su
centro de simetría para obtener la h[n] buscada. En Matlab, esta operación puede realizarse con la función
fir1.

ws=0.35; 
wp=0.5; 
d=0.05; 
[M,wn,beta,tipo]= kaiserord([0.35 0.5],[0 1],[d d],2) 
h=fir1(M,wn,tipo,kaiser(M+1,beta),'noscale'); 
freqz(h,1) 
% otra opcion sin controlar los valores de M y beta 
%c= kaiserord([0.35 0.5],[0 1],[d d],2,'cell'); 
%h=fir1(c{:});

Observar la fase obtenida, ¿cómo es?


53
Diseño de filtros digitales con Matlab

Hemos visto que Matlab ofrece múltiples herramientas para el análisis y diseño
de filtros digitales:

Toolboxes (librerías): Signal Processing y Filter Design

Funciones matemáticas genéricas: filter(), conv(),

Funciones específicas: hamming(), window(), butter(),


cheb1ord(), cheb2ord(), ellipord(), …

Además, Matlab ofrece una interfaz gráfica para el diseño y análisis de filtros
digitales: FDATOOL.

Ejercicio: utilizar fdatool para realizar los filtros propuestos en las


transparencias anteriores.
54
Diseño de filtros digitales con Matlab

fdatool

Syntax: fdatool

Descripción básica:
Esta herramienta se utiliza para:
-Diseñar filtros
-Cuantizar filtros
-Analizar filtros
-Modificar diseños de filtros ya existentes
-Crear filtros multitasa
-Realizar modelos de Simulink de filtros FIR
-Importar filtros a FDATool
-Realizar transformaciones de frecuencia para filtros digitales

La descripción detallada puede encontrarse en la ayuda de Matlab (contiene


incluso tutoriales y demostraciones gráficas de su funcionamiento)

55
Diseño de filtros digitales con Matlab

Abriendo fdatool

56
Diseño de filtros digitales con Matlab

fdatool: opciones

Eligiendo el tipo de respuesta


Eligiendo el método de diseño del filtro
Fijando las especificaciones del filtro
Calculando los coeficientes del filtro
Analizando el filtro
Editando el filtro utilizando el editor de polos y ceros
Modificando el filtro a través de la modificación de polos y ceros
Importando un filtro
Exportando un filtro (.m, C, …)

57
Diseño de filtros digitales con Matlab

Editando el filtro

58

También podría gustarte