Está en la página 1de 57

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 o atenuar 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 que mejor aproximan las
especificaciones de la respuesta en frecuencia deseada:
• ¿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(ejΩ). 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:

Conceptualmente sencillos y fácilmente implementables.

Pueden implementarse vía convolución.

Siempre son estables.

Poco sensibles a la cuantización de la amplitud.

Pueden tener fase lineal (mismo retardo temporal para todas las frec.).

Se usan cuando se requiere fase lineal.

Ventajas de los filtros IIR:



Más adecuados para la aproximación/adaptación de diseños analógicos.

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).

Se usan cuando no se requiere fase lineal pero sí ahorrar costes.

Tienen lóbulos secundarios menores en la banda de rechazo que un FIR con el mismo número
de parámetros.

Si se tolera distorsión de fase, mejor un IIR porque requiere menos parámetros que un FIR →
menos memoria y menor complejidad.
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


( )

una recta en la banda de


paso (Passband) ,
también sirven

En ese caso, su retardo de grupo (la pendiente de la recta en negativo) 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


¿Por qué la fase lineal es importante?
Para mantener la “estructura” original de la señal en las frecuencias de la banda de paso.
17
Se entiende muy bien viendo el módulo y la fase de la DFT de una imagen
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{Hd(ejΩ)}?


 h[n] = sin(Ωcn)/(πn)  h[n] es infinito y no causal

Problema: el filtro ideal no es causal (h[n] no es 0 para todo n < 0), pero podemos
desplazar h[n] hacia la derecha (simplemente introduciría una fase lineal en la TF) y
truncar la señal para quedarnos con un número finito de valores (introduciría una
19
pequeña distorsión en el módulo y la fase de la TF (ringing))
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
(ejΩ)|
|Hd

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?
– 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…

20 log 10|W (e )|
20 log 10|W (e )|


Ω Ω
20 log 10|W (e )|

20 log 10|W (e )|

Ω
Ω

(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:

Ωp Ωs

• A mayor anchura del lóbulo principal, más ancha será la banda de transición
• A mayor amplitud de los lóbulos secundarios, mayor será el rizado en las
bandas de paso/rechazo.
→ 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

- Son la alternativa a los FIR para conseguir


mejores prestaciones. Para el mismo número
de parámetros, obtienen mejor compromiso
entre ringing y banda de transición.

- Consiguen cumplir unas determinadas


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

- Si el sistema tienen polos es un sistema IIR


→ pueden ser inestables. Si no tienen polos
(exceptuando los polos en z=0 y z=∞), el
sistema es FIR.

- 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(e jΩ) 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 Ω )=

Transformaciones típicas del módulo son:


{ Fase

ϕ ⟨H (e )⟩=arctan [
H I (e j Ω )
H R (e j Ω )
] }
→ 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.
Cuando se calcula la fase de forma numérica con un ordenador, éste devuelve el valor principal de la
fase en el rango [-π ,+π ] obteniéndose una función de fase discontinua equivalente a la fase continua
obtenida en el cálculo analítico.

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 35
de
Matlab).
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 medida se denomina Retardo de Grupo y se define como
la derivada de la fase continua:

Si la fase es lineal, r(Ω) es constante y de valor igual al retardo.

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.

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

Ω/p
H(ejΩ) H(ejΩ)

Ω/p Ω/p

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 37
exponenciales son atenuadas.
Diseño de filtros digitales con Matlab

Uso de la transformada Z aplicada a ecuaciones en diferencias

Suponga h[n]=anu[n], entonces su transformada Z es:

de donde la ecuación en diferencias del sistema es: y[n]=x[n]+ay[n-1] → ecuación fácilmente


programable en un microprocesador:

Adicionalmente, la H(z) nos facilita el análisis del sistema:


1. Cómo el denominador tienen raíces → tiene polos → el sistema es IIR.
2. Cómo el polo esta en z=a, si abs(a)<1, entonces el círculo unidad esta dentro de la región de
convergencia hacia el exterior del polo y el sistema puede ser causal y estable.
3. Es sencillo determinar el tipo de sistema (paso-alto, paso-bajo, etc.) a partir de sus polos y ceros. Por
ejemplo, obsérvese cómo si a tiene fase cero el filtro es paso bajo, y conforme aumenta su ángulo hacia π
el filtro se transforma en paso banda hasta paso alto.

38
Diseño de filtros digitales con Matlab

Uso de la transformada Z aplicada a ecuaciones en diferencias (cont.)

Ejemplo de determinación de magnitud de

H(ejΩ)

Ω/p

39
Diseño de filtros digitales con Matlab

Uso de la transformada Z aplicada a ecuaciones en diferencias (cont.)


Suponiendo que tenemos los coeficientes del numerador y denominador en los vectores b=[b 0, b1 ,...., bM],
y a=[a0 , a1 ,....,aN] respectivamente:

→ sus polos y ceros se pueden representar mediante zplane(b,a)


→ sus polos y ceros se pueden obtener a partir de b y a con la función roots
→ los coeficientes a y b pueden obtenerse a partir de los polos y ceros con la función poly
→ su magnitud y fase se puede dibujar mediante la función freqz(b,a)
→ su retardo de grupo con la función grpdelay(b,a)
→ y se puede filtrar una entrada x[n] por dicho filtro mediante la función y=filter(b,a,x)

Las funciones freqz y grpdelay devuelven muestras de la función de transferencia y retardo de grupo,
respectivamente. Hay que tener en cuenta que si la función de transferencia o retardo de grupo tienen
alguna discontinuidad o valor infinito (caso de cero sobre el circulo unidad) y se solicita el valor en dicho
punto ambas funciones devolverán mensajes de warning.

40
Diseño de filtros digitales con Matlab
Uso de la transformada Z aplicada a ecuaciones en diferencias (cont.)

Ejemplos para obtener la magnitud y la fase a partir de los polos y ceros de la TZ del sistema.
jθ j π/3
Para un polo en c k =r e =0.6 e :

r=0.6;
% radio del cero o polo
O=pi/3;
% ángulo del cero o polo
a=r*exp(j*O); % valor del cero o polo
% Calculo de la función de transferencia
[Hpolo,w]=freqz(1,poly(a),256,'whole');
[Hcero,w]=freqz(poly(a),1,256,'whole');
% calculo del retardo de grupo
Gdpolo=grpdelay(1,poly(a),256,'whole');
Gdcero=grpdelay(poly(a),1,256,'whole');
% representación gráfica
subplot(141),zplane(poly(a),poly(a)),title('Situación del polo/cero')
subplot(142),semilogy(w/pi,abs(Hcero).^2,w/pi,abs(Hpolo).^2);grid
title('Magnitud cero/polo')
subplot(143),plot(w/pi,phase(Hcero),w/pi,phase(Hpolo));grid
title('fase cero/polo')
subplot(144);plot(w/pi,Gdcero,w/pi,Gdpolo);grid
title('retardo de grupo de cero/polo')

Si se mueve el polo de θ= π/ 3 a θ=5∗π/8 y el radio a r=0.9, ¿qué se obtiene?


41
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−az −1
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
(Matlab):

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

En cambio, 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. P.e.:
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' ); 42
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. Estos 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.

43
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. 44


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 un 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.

45
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);
46
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);
47
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

Ω/p 48
Diseño de filtros digitales con Matlab

Diseño de filtros FIR: método del enventanado.

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

H d (e )=
{
e
− jΩ

0
2
|Ω|<Ω c ; faseLineal
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, h d [n] y w[n] deben tener el mismo
eje de simetría. 49
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:

∆Ω

50
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.

51
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?


52
Diseño de filtros digitales con Matlab

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.

53
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)

54
Diseño de filtros digitales con Matlab

Abriendo fdatool

55
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, …)

56
Diseño de filtros digitales con Matlab

Editando el filtro

57

También podría gustarte